You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

Makefile 4.2 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. TOPDIR = ..
  2. include $(TOPDIR)/Makefile.system
  3. SRC = $(wildcard src/*.c)
  4. SRC1 = \
  5. src/slauum.c src/clauum.c src/dlauum.c src/zlauum.c \
  6. src/strtri.c src/dtrtri.c src/ctrtri.c src/ztrtri.c \
  7. src/spotrf.c src/dpotrf.c src/cpotrf.c src/zpotrf.c \
  8. src/sgetrf.c src/dgetrf.c src/cgetrf.c src/zgetrf.c
  9. SRC2 = \
  10. src/cgbtrf.c src/cpbtrf.c src/dsytrf_rec2.c src/sgbtrf.c src/ssytrf_rook.c src/zhegst.c src/zsytrf_rec2.c \
  11. src/cgemmt.c src/dgbtrf.c src/dsytrf_rook.c src/sgemmt.c src/ssytrf_rook_rec2.c src/zhetrf.c src/zsytrf_rook.c \
  12. src/csytrf.c src/dgemmt.c src/dsytrf_rook_rec2.c src/stgsyl.c src/zhetrf_rec2.c src/zsytrf_rook_rec2.c \
  13. src/chegst.c src/csytrf_rec2.c src/dtgsyl.c src/strsyl.c src/zhetrf_rook.c src/ztgsyl.c \
  14. src/chetrf.c src/csytrf_rook.c src/dtrsyl.c src/spbtrf.c src/strsyl_rec2.c src/zhetrf_rook_rec2.c src/ztrsyl.c \
  15. src/chetrf_rec2.c src/csytrf_rook_rec2.c src/dpbtrf.c src/dtrsyl_rec2.c src/ztrsyl_rec2.c \
  16. src/chetrf_rook.c src/ctgsyl.c src/ssygst.c src/zgbtrf.c src/zpbtrf.c \
  17. src/chetrf_rook_rec2.c src/ctrsyl.c src/dsygst.c src/f2c.c src/ssytrf.c src/zgemmt.c \
  18. src/ctrsyl_rec2.c src/dsytrf.c src/lapack_wrappers.c src/ssytrf_rec2.c src/zsytrf.c
  19. SRCX = \
  20. src/cgbtrf.c src/cpbtrf.c src/ctrtri.c src/dsytrf_rec2.c src/sgbtrf.c src/ssytrf_rook.c src/zhegst.c src/zsytrf_rec2.c \
  21. src/cgemmt.c src/cpotrf.c src/dgbtrf.c src/dsytrf_rook.c src/sgemmt.c src/ssytrf_rook_rec2.c src/zhetrf.c src/zsytrf_rook.c \
  22. src/cgetrf.c src/csytrf.c src/dgemmt.c src/dsytrf_rook_rec2.c src/sgetrf.c src/stgsyl.c src/zhetrf_rec2.c src/zsytrf_rook_rec2.c \
  23. src/chegst.c src/csytrf_rec2.c src/dgetrf.c src/dtgsyl.c src/slauum.c src/strsyl.c src/zhetrf_rook.c src/ztgsyl.c \
  24. src/chetrf.c src/csytrf_rook.c src/dlauum.c src/dtrsyl.c src/spbtrf.c src/strsyl_rec2.c src/zhetrf_rook_rec2.c src/ztrsyl.c \
  25. src/chetrf_rec2.c src/csytrf_rook_rec2.c src/dpbtrf.c src/dtrsyl_rec2.c src/spotrf.c src/strtri.c src/zlauum.c src/ztrsyl_rec2.c \
  26. src/chetrf_rook.c src/ctgsyl.c src/dpotrf.c src/dtrtri.c src/ssygst.c src/zgbtrf.c src/zpbtrf.c src/ztrtri.c \
  27. src/chetrf_rook_rec2.c src/ctrsyl.c src/dsygst.c src/f2c.c src/ssytrf.c src/zgemmt.c src/zpotrf.c \
  28. src/clauum.c src/ctrsyl_rec2.c src/dsytrf.c src/lapack_wrappers.c src/ssytrf_rec2.c src/zgetrf.c src/zsytrf.c
  29. OBJS1 = $(SRC1:%.c=%.$(SUFFIX))
  30. OBJS2 = $(SRC2:%.c=%.o)
  31. OBJS = $(OBJS1) $(OBJS2)
  32. TEST_SUITS = \
  33. slauum dlauum clauum zlauum \
  34. spotrf dpotrf cpotrf zpotrf \
  35. spbtrf dpbtrf cpbtrf zpbtrf \
  36. ssygst dsygst chegst zhegst \
  37. ssytrf dsytrf csytrf chetrf zsytrf zhetrf \
  38. sgetrf dgetrf cgetrf zgetrf \
  39. sgbtrf dgbtrf cgbtrf zgbtrf \
  40. strsyl dtrsyl ctrsyl ztrsyl \
  41. stgsyl dtgsyl ctgsyl ztgsyl \
  42. sgemmt dgemmt cgemmt zgemmt
  43. TESTS = $(TEST_SUITS:%=test/%.pass) # dummies
  44. TEST_EXES = $(TEST_SUITS:%=test/%.x)
  45. LINK_TEST = -L$(TOPDIR) -lopenblas -lgfortran -lm
  46. .SECONDARY: $(TEST_EXES)
  47. .PHONY: test
  48. # ReLAPACK compilation
  49. libs: $(OBJS)
  50. @echo "Building ReLAPACK library $(LIBNAME)"
  51. $(AR) -r $(TOPDIR)/$(LIBNAME) $(OBJS)
  52. $(RANLIB) $(TOPDIR)/$(LIBNAME)
  53. %.$(SUFFIX): %.c config.h
  54. $(CC) $(CFLAGS) -c $< -o $@
  55. %.o: %.c config.h
  56. $(CC) $(CFLAGS) -c $< -o $@
  57. # ReLAPACK testing
  58. test: $(TEST_EXES) $(TESTS)
  59. @echo "passed all tests"
  60. test/%.pass: test/%.x
  61. @echo -n $*:
  62. @./$< > /dev/null && echo " pass" || (echo " FAIL" && ./$<)
  63. test/s%.x: test/x%.c test/util.$(SUFFIX) $(TOPDIR)/$(LIBNAME) test/config.h test/test.h
  64. $(CC) $(CFLAGS) -DDT_PREFIX=s $< test/util.$(SUFFIX) -o $@ $(LINK_TEST) $(TOPDIR)/$(LIBNAME) $(LINK_TEST)
  65. test/d%.x: test/x%.c test/util.$(SUFFIX) $(TOPDIR)/$(LIBNAME) test/config.h test/test.h
  66. $(CC) $(CFLAGS) -DDT_PREFIX=d $< test/util.$(SUFFIX) -o $@ $(LINK_TEST) $(TOPDIR)/$(LIBNAME) $(LINK_TEST)
  67. test/c%.x: test/x%.c test/util.$(SUFFIX) $(TOPDIR)/$(LIBNAME) test/config.h test/test.h
  68. $(CC) $(CFLAGS) -DDT_PREFIX=c $< test/util.$(SUFFIX) -o $@ $(LINK_TEST) $(TOPDIR)/$(LIBNAME) $(LINK_TEST)
  69. test/z%.x: test/x%.c test/util.$(SUFFIX) $(TOPDIR)/$(LIBNAME) test/config.h test/test.h
  70. $(CC) $(CFLAGS) -DDT_PREFIX=z $< test/util.$(SUFFIX) -o $@ $(LINK_TEST) $(TOPDIR)/$(LIBNAME) $(LINK_TEST)
  71. # cleaning up
  72. clean:
  73. rm -f $(OBJS) test/util.$(SUFFIX) test/*.x