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 3.9 kB

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