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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. TOPDIR = .
  2. include ./Makefile.system
  3. BLASDIRS = interface driver/level2 driver/level3 driver/others
  4. ifndef DYNAMIC_ARCH
  5. BLASDIRS += kernel
  6. endif
  7. ifdef UTEST_CHECK
  8. SANITY_CHECK = 1
  9. endif
  10. ifdef SANITY_CHECK
  11. BLASDIRS += reference
  12. endif
  13. SUBDIRS = $(BLASDIRS) lapack
  14. SUBDIRS_ALL = $(SUBDIRS) test ctest utest exports benchmark ../laswp ../bench
  15. .PHONY : all libs netlib test ctest shared
  16. .NOTPARALLEL : all libs prof lapack-test
  17. all :: libs netlib tests shared
  18. @echo
  19. @echo " GotoBLAS build complete."
  20. @echo
  21. @echo " OS ... $(OSNAME) "
  22. @echo " Architecture ... $(ARCH) "
  23. ifndef BINARY64
  24. @echo " BINARY ... 32bit "
  25. else
  26. @echo " BINARY ... 64bit "
  27. endif
  28. @echo " C compiler ... $(C_COMPILER) (command line : $(CC))"
  29. @echo " Fortran compiler ... $(F_COMPILER) (command line : $(FC))"
  30. ifneq ($(OSNAME), AIX)
  31. @echo -n " Library Name ... $(LIBNAME)"
  32. else
  33. @echo " Library Name ... $(LIBNAME)"
  34. endif
  35. ifndef SMP
  36. @echo " (Single threaded) "
  37. else
  38. @echo " (Multi threaded; Max num-threads is $(NUM_THREADS))"
  39. endif
  40. @echo
  41. shared :
  42. ifeq ($(OSNAME), Linux)
  43. $(MAKE) -C exports so
  44. -ln -fs $(LIBSONAME) libopenblas.so
  45. endif
  46. ifeq ($(OSNAME), FreeBSD)
  47. $(MAKE) -C exports so
  48. -ln -fs $(LIBSONAME) libopenblas.so
  49. endif
  50. ifeq ($(OSNAME), NetBSD)
  51. $(MAKE) -C exports so
  52. -ln -fs $(LIBSONAME) libopenblas.so
  53. endif
  54. ifeq ($(OSNAME), Darwin)
  55. $(MAKE) -C exports dyn
  56. -ln -fs $(LIBDYNNAME) libopenblas.dylib
  57. endif
  58. ifeq ($(OSNAME), WINNT)
  59. $(MAKE) -C exports dll
  60. # -ln -fs $(LIBDLLNAME) libopenblas.dll
  61. endif
  62. ifeq ($(OSNAME), CYGWIN_NT)
  63. $(MAKE) -C exports dll
  64. -ln -fs $(LIBDLLNAME) libopenblas.dll
  65. endif
  66. tests :
  67. ifndef NOFORTRAN
  68. ifndef TARGET
  69. ifndef CROSS
  70. touch $(LIBNAME)
  71. ifndef NO_FBLAS
  72. $(MAKE) -C test all
  73. ifdef UTEST_CHECK
  74. $(MAKE) -C utest all
  75. endif
  76. endif
  77. ifndef NO_CBLAS
  78. $(MAKE) -C ctest all
  79. endif
  80. endif
  81. endif
  82. endif
  83. libs :
  84. -ln -fs $(LIBNAME) libopenblas.$(LIBSUFFIX)
  85. for d in $(SUBDIRS) ; \
  86. do if test -d $$d; then \
  87. $(MAKE) -C $$d $(@F) || exit 1 ; \
  88. fi; \
  89. done
  90. ifdef DYNAMIC_ARCH
  91. $(MAKE) -C kernel commonlibs || exit 1
  92. for d in $(DYNAMIC_CORE) ; \
  93. do $(MAKE) GOTOBLAS_MAKEFILE= -C kernel TARGET_CORE=$$d kernel || exit 1 ;\
  94. done
  95. endif
  96. prof : prof_blas prof_lapack
  97. prof_blas :
  98. ln -fs $(LIBNAME_P) libopenblas_p.$(LIBSUFFIX)
  99. for d in $(SUBDIRS) ; \
  100. do if test -d $$d; then \
  101. $(MAKE) -C $$d prof || exit 1 ; \
  102. fi; \
  103. done
  104. ifdef DYNAMIC_ARCH
  105. $(MAKE) -C kernel commonprof || exit 1
  106. endif
  107. blas :
  108. ln -fs $(LIBNAME) libopenblas.$(LIBSUFFIX)
  109. for d in $(BLASDIRS) ; \
  110. do if test -d $$d; then \
  111. $(MAKE) -C $$d libs || exit 1 ; \
  112. fi; \
  113. done
  114. hpl :
  115. ln -fs $(LIBNAME) libopenblas.$(LIBSUFFIX)
  116. for d in $(BLASDIRS) ../laswp exports ; \
  117. do if test -d $$d; then \
  118. $(MAKE) -C $$d $(@F) || exit 1 ; \
  119. fi; \
  120. done
  121. ifdef DYNAMIC_ARCH
  122. $(MAKE) -C kernel commonlibs || exit 1
  123. for d in $(DYNAMIC_CORE) ; \
  124. do $(MAKE) GOTOBLAS_MAKEFILE= -C kernel TARGET_CORE=$$d kernel || exit 1 ;\
  125. done
  126. endif
  127. hpl_p :
  128. ln -fs $(LIBNAME_P) libopenblas_p.$(LIBSUFFIX)
  129. for d in $(SUBDIRS) ../laswp exports ; \
  130. do if test -d $$d; then \
  131. $(MAKE) -C $$d $(@F) || exit 1 ; \
  132. fi; \
  133. done
  134. netlib : lapack-3.1.1 patch.for_lapack-3.1.1 lapack-3.1.1/make.inc
  135. ifndef NOFORTRAN
  136. -@$(MAKE) -C lapack-3.1.1 lapacklib
  137. endif
  138. prof_lapack : lapack-3.1.1 lapack-3.1.1/make.inc
  139. -@$(MAKE) -C lapack-3.1.1 lapack_prof
  140. lapack-3.1.1/make.inc :
  141. ifndef NOFORTRAN
  142. -@echo "FORTRAN = $(FC)" > lapack-3.1.1/make.inc
  143. -@echo "OPTS = $(FFLAGS)" >> lapack-3.1.1/make.inc
  144. -@echo "POPTS = $(FPFLAGS)" >> lapack-3.1.1/make.inc
  145. -@echo "NOOPT = $(FFLAGS) -O0" >> lapack-3.1.1/make.inc
  146. -@echo "PNOOPT = $(FPFLAGS) -O0" >> lapack-3.1.1/make.inc
  147. -@echo "LOADOPTS = $(FFLAGS) $(EXTRALIB)" >> lapack-3.1.1/make.inc
  148. -@echo "ARCH = $(AR)" >> lapack-3.1.1/make.inc
  149. -@echo "RANLIB = $(RANLIB)" >> lapack-3.1.1/make.inc
  150. -@echo "LAPACKLIB = ../$(LIBNAME)" >> lapack-3.1.1/make.inc
  151. -@echo "LAPACKLIB_P = ../$(LIBNAME_P)" >> lapack-3.1.1/make.inc
  152. -@echo "SUFFIX = $(SUFFIX)" >> lapack-3.1.1/make.inc
  153. -@echo "PSUFFIX = $(PSUFFIX)" >> lapack-3.1.1/make.inc
  154. # -@echo "CEXTRALIB = $(CEXTRALIB)" >> lapack-3.1.1/make.inc
  155. -@cat make.inc >> lapack-3.1.1/make.inc
  156. endif
  157. lapack-3.1.1 : lapack-3.1.1.tgz
  158. ifndef NOFORTRAN
  159. @if test `$(MD5SUM) lapack-3.1.1.tgz | $(AWK) '{print $$1}'` = 00b21551a899bcfbaa7b8443e1faeef9; then \
  160. echo $(TAR) zxf $< ;\
  161. $(TAR) zxf $< && (cd lapack-3.1.1; $(PATCH) -p1 < ../patch.for_lapack-3.1.1) ;\
  162. else \
  163. echo " lapack-3.1.1.tgz check sum is wrong (Please use orignal)." ;\
  164. rm -rf lapack-3.1.1 ;\
  165. fi
  166. endif
  167. lapack-3.1.1.tgz :
  168. ifndef NOFORTRAN
  169. -wget http://www.netlib.org/lapack/lapack-3.1.1.tgz
  170. endif
  171. large.tgz :
  172. ifndef NOFORTRAN
  173. -wget http://www.netlib.org/lapack/timing/large.tgz
  174. endif
  175. timing.tgz :
  176. ifndef NOFORTRAN
  177. -wget http://www.netlib.org/lapack/timing/timing.tgz
  178. endif
  179. lapack-timing : lapack-3.1.1 large.tgz timing.tgz
  180. ifndef NOFORTRAN
  181. (cd lapack-3.1.1; $(TAR) zxf ../timing.tgz TIMING)
  182. (cd lapack-3.1.1/TIMING; $(TAR) zxf ../../large.tgz )
  183. make -C lapack-3.1.1 tmglib
  184. make -C lapack-3.1.1/TIMING
  185. endif
  186. lapack-test :
  187. $(MAKE) -C lapack-3.1.1 tmglib
  188. $(MAKE) -C lapack-3.1.1/TESTING xeigtstc xeigtstd xeigtsts xeigtstz xlintstc xlintstd xlintstds xlintsts xlintstz xlintstzc
  189. @rm -f lapack-3.1.1/TESTING/*.out
  190. $(MAKE) -j 1 -C lapack-3.1.1/TESTING
  191. $(GREP) failed lapack-3.1.1/TESTING/*.out
  192. dummy :
  193. clean ::
  194. @for d in $(SUBDIRS_ALL) ; \
  195. do if test -d $$d; then \
  196. $(MAKE) -C $$d $(@F) || exit 1 ; \
  197. fi; \
  198. done
  199. ifdef DYNAMIC_ARCH
  200. @$(MAKE) -C kernel clean
  201. endif
  202. @rm -f *.$(LIBSUFFIX) *.so *~ *.exe getarch getarch_2nd *.dll *.lib *.$(SUFFIX) *.dwf libopenblas.$(LIBSUFFIX) libopenblas_p.$(LIBSUFFIX) *.lnk myconfig.h
  203. @rm -f Makefile.conf config.h Makefile_kernel.conf config_kernel.h st* *.dylib
  204. @if test -d lapack-3.1.1; then \
  205. echo deleting lapack-3.1.1; \
  206. rm -rf lapack-3.1.1 ;\
  207. fi
  208. @echo Done.

OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.