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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. #
  2. # The Makefile compiles c wrappers and testers for CBLAS.
  3. #
  4. TOPDIR = ..
  5. include $(TOPDIR)/Makefile.system
  6. override CFLAGS += -DADD$(BU) -DCBLAS
  7. ifeq ($(F_COMPILER),GFORTRAN)
  8. override FFLAGS += -fno-tree-vectorize
  9. endif
  10. override TARGET_ARCH=
  11. override TARGET_MACH=
  12. LIB = $(TOPDIR)/$(LIBNAME)
  13. stestl1o = c_sblas1.o
  14. stestl2o = c_sblas2.o c_s2chke.o auxiliary.o c_xerbla.o constant.o
  15. stestl3o = c_sblas3.o c_s3chke.o auxiliary.o c_xerbla.o constant.o
  16. dtestl1o = c_dblas1.o
  17. dtestl2o = c_dblas2.o c_d2chke.o auxiliary.o c_xerbla.o constant.o
  18. dtestl3o = c_dblas3.o c_d3chke.o auxiliary.o c_xerbla.o constant.o
  19. ctestl1o = c_cblas1.o
  20. ctestl2o = c_cblas2.o c_c2chke.o auxiliary.o c_xerbla.o constant.o
  21. ctestl3o = c_cblas3.o c_c3chke.o auxiliary.o c_xerbla.o constant.o
  22. ctestl3o_3m = c_cblas3_3m.o c_c3chke_3m.o auxiliary.o c_xerbla.o constant.o
  23. ztestl1o = c_zblas1.o
  24. ztestl2o = c_zblas2.o c_z2chke.o auxiliary.o c_xerbla.o constant.o
  25. ztestl3o = c_zblas3.o c_z3chke.o auxiliary.o c_xerbla.o constant.o
  26. ztestl3o_3m = c_zblas3_3m.o c_z3chke_3m.o auxiliary.o c_xerbla.o constant.o
  27. all :: all1 all2 all3
  28. ifeq ($(BUILD_SINGLE),1)
  29. all1targets += xscblat1
  30. endif
  31. ifeq ($(BUILD_DOUBLE),1)
  32. all1targets += xdcblat1
  33. endif
  34. ifeq ($(BUILD_COMPLEX),1)
  35. all1targets += xccblat1
  36. endif
  37. ifeq ($(BUILD_COMPLEX16),1)
  38. all1targets += xzcblat1
  39. endif
  40. all1: $(all1targets)
  41. ifneq ($(CROSS), 1)
  42. ifeq ($(USE_OPENMP), 1)
  43. ifeq ($(BUILD_SINGLE),1)
  44. OMP_NUM_THREADS=2 ./xscblat1
  45. endif
  46. ifeq ($(BUILD_DOUBLE),1)
  47. OMP_NUM_THREADS=2 ./xdcblat1
  48. endif
  49. ifeq ($(BUILD_COMPLEX),1)
  50. OMP_NUM_THREADS=2 ./xccblat1
  51. endif
  52. ifeq ($(BUILD_COMPLEX16),1)
  53. OMP_NUM_THREADS=2 ./xzcblat1
  54. endif
  55. else
  56. ifeq ($(BUILD_SINGLE),1)
  57. OPENBLAS_NUM_THREADS=2 ./xscblat1
  58. endif
  59. ifeq ($(BUILD_DOUBLE),1)
  60. OPENBLAS_NUM_THREADS=2 ./xdcblat1
  61. endif
  62. ifeq ($(BUILD_COMPLEX),1)
  63. OPENBLAS_NUM_THREADS=2 ./xccblat1
  64. endif
  65. ifeq ($(BUILD_COMPLEX16),1)
  66. OPENBLAS_NUM_THREADS=2 ./xzcblat1
  67. endif
  68. endif
  69. endif
  70. ifeq ($(BUILD_SINGLE),1)
  71. all2targets += xscblat2
  72. endif
  73. ifeq ($(BUILD_DOUBLE),1)
  74. all2targets += xdcblat2
  75. endif
  76. ifeq ($(BUILD_COMPLEX),1)
  77. all2targets += xccblat2
  78. endif
  79. ifeq ($(BUILD_COMPLEX16),1)
  80. all2targets += xzcblat2
  81. endif
  82. all2: $(all2targets)
  83. ifneq ($(CROSS), 1)
  84. ifeq ($(USE_OPENMP), 1)
  85. ifeq ($(BUILD_SINGLE),1)
  86. OMP_NUM_THREADS=2 ./xscblat2 < sin2
  87. endif
  88. ifeq ($(BUILD_DOUBLE),1)
  89. OMP_NUM_THREADS=2 ./xdcblat2 < din2
  90. endif
  91. ifeq ($(BUILD_COMPLEX),1)
  92. OMP_NUM_THREADS=2 ./xccblat2 < cin2
  93. endif
  94. ifeq ($(BUILD_COMPLEX16),1)
  95. OMP_NUM_THREADS=2 ./xzcblat2 < zin2
  96. endif
  97. else
  98. ifeq ($(BUILD_SINGLE),1)
  99. OPENBLAS_NUM_THREADS=2 ./xscblat2 < sin2
  100. endif
  101. ifeq ($(BUILD_DOUBLE),1)
  102. OPENBLAS_NUM_THREADS=2 ./xdcblat2 < din2
  103. endif
  104. ifeq ($(BUILD_COMPLEX),1)
  105. OPENBLAS_NUM_THREADS=2 ./xccblat2 < cin2
  106. endif
  107. ifeq ($(BUILD_COMPLEX16),1)
  108. OPENBLAS_NUM_THREADS=2 ./xzcblat2 < zin2
  109. endif
  110. endif
  111. endif
  112. ifeq ($(BUILD_SINGLE),1)
  113. all3targets += xscblat3
  114. endif
  115. ifeq ($(BUILD_DOUBLE),1)
  116. all3targets += xdcblat3
  117. endif
  118. ifeq ($(BUILD_COMPLEX),1)
  119. all3targets += xccblat3
  120. endif
  121. ifeq ($(BUILD_COMPLEX16),1)
  122. all3targets += xzcblat3
  123. endif
  124. all3: $(all3targets)
  125. ifneq ($(CROSS), 1)
  126. ifeq ($(USE_OPENMP), 1)
  127. ifeq ($(BUILD_SINGLE),1)
  128. OMP_NUM_THREADS=2 ./xscblat3 < sin3
  129. endif
  130. ifeq ($(BUILD_DOUBLE),1)
  131. OMP_NUM_THREADS=2 ./xdcblat3 < din3
  132. endif
  133. ifeq ($(BUILD_COMPLEX),1)
  134. OMP_NUM_THREADS=2 ./xccblat3 < cin3
  135. endif
  136. ifeq ($(BUILD_COMPLEX16),1)
  137. OMP_NUM_THREADS=2 ./xzcblat3 < zin3
  138. endif
  139. else
  140. ifeq ($(BUILD_SINGLE),1)
  141. OPENBLAS_NUM_THREADS=2 ./xscblat3 < sin3
  142. endif
  143. ifeq ($(BUILD_DOUBLE),1)
  144. OPENBLAS_NUM_THREADS=2 ./xdcblat3 < din3
  145. endif
  146. ifeq ($(BUILD_COMPLEX),1)
  147. OPENBLAS_NUM_THREADS=2 ./xccblat3 < cin3
  148. endif
  149. ifeq ($(BUILD_COMPLEX16),1)
  150. OPENBLAS_NUM_THREADS=2 ./xzcblat3 < zin3
  151. endif
  152. endif
  153. endif
  154. all3_3m: xzcblat3_3m xccblat3_3m
  155. ifeq ($(USE_OPENMP), 1)
  156. ifeq ($(BUILD_SINGLE),1)
  157. OMP_NUM_THREADS=2 ./xccblat3_3m < cin3_3m
  158. endif
  159. ifeq ($(BUILD_COMPLEX16),1)
  160. OMP_NUM_THREADS=2 ./xzcblat3_3m < zin3_3m
  161. endif
  162. else
  163. ifeq ($(BUILD_COMPLEX),1)
  164. OPENBLAS_NUM_THREADS=2 ./xccblat3_3m < cin3_3m
  165. endif
  166. ifeq ($(BUILD_COMPLEX16),1)
  167. OPENBLAS_NUM_THREADS=2 ./xzcblat3_3m < zin3_3m
  168. endif
  169. endif
  170. clean ::
  171. rm -f x*
  172. FLDFLAGS = $(FFLAGS:-fPIC=) $(LDFLAGS)
  173. ifeq ($(USE_OPENMP), 1)
  174. ifeq ($(F_COMPILER), GFORTRAN)
  175. ifeq ($(C_COMPILER), CLANG)
  176. CEXTRALIB += -lomp
  177. endif
  178. endif
  179. ifeq ($(F_COMPILER), NAG)
  180. CEXTRALIB = -lgomp
  181. endif
  182. ifeq ($(F_COMPILER), IBM)
  183. ifeq ($(C_COMPILER), GCC)
  184. CEXTRALIB += -lgomp
  185. endif
  186. endif
  187. endif
  188. ifeq ($(BUILD_SINGLE),1)
  189. # Single real
  190. ifeq ($(NOFORTRAN), $(filter 0 2,$(NOFORTRAN)))
  191. xscblat1: $(stestl1o) c_sblat1.o $(TOPDIR)/$(LIBNAME)
  192. $(FC) $(FLDFLAGS) -o xscblat1 c_sblat1.o $(stestl1o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
  193. xscblat2: $(stestl2o) c_sblat2.o $(TOPDIR)/$(LIBNAME)
  194. $(FC) $(FLDFLAGS) -o xscblat2 c_sblat2.o $(stestl2o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
  195. xscblat3: $(stestl3o) c_sblat3.o $(TOPDIR)/$(LIBNAME)
  196. $(FC) $(FLDFLAGS) -o xscblat3 c_sblat3.o $(stestl3o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
  197. else
  198. xscblat1: $(stestl1o) c_sblat1c.o $(TOPDIR)/$(LIBNAME)
  199. $(CC) $(CFLAGS) -o xscblat1 c_sblat1c.o $(stestl1o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
  200. xscblat2: $(stestl2o) c_sblat2c.o $(TOPDIR)/$(LIBNAME)
  201. $(CC) $(CFLAGS) -o xscblat2 c_sblat2c.o $(stestl2o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
  202. xscblat3: $(stestl3o) c_sblat3c.o $(TOPDIR)/$(LIBNAME)
  203. $(CC) $(CFLAGS) -o xscblat3 c_sblat3c.o $(stestl3o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
  204. endif
  205. endif
  206. ifeq ($(BUILD_DOUBLE),1)
  207. # Double real
  208. ifeq ($(NOFORTRAN), $(filter 0 2,$(NOFORTRAN)))
  209. xdcblat1: $(dtestl1o) c_dblat1.o $(TOPDIR)/$(LIBNAME)
  210. $(FC) $(FLDFLAGS) -o xdcblat1 c_dblat1.o $(dtestl1o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
  211. xdcblat2: $(dtestl2o) c_dblat2.o $(TOPDIR)/$(LIBNAME)
  212. $(FC) $(FLDFLAGS) -o xdcblat2 c_dblat2.o $(dtestl2o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
  213. xdcblat3: $(dtestl3o) c_dblat3.o $(TOPDIR)/$(LIBNAME)
  214. $(FC) $(FLDFLAGS) -o xdcblat3 c_dblat3.o $(dtestl3o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
  215. else
  216. xdcblat1: $(dtestl1o) c_dblat1c.o $(TOPDIR)/$(LIBNAME)
  217. $(CC) $(CFLAGS) -o xdcblat1 c_dblat1c.o $(dtestl1o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
  218. xdcblat2: $(dtestl2o) c_dblat2c.o $(TOPDIR)/$(LIBNAME)
  219. $(CC) $(CFLAGS) -o xdcblat2 c_dblat2c.o $(dtestl2o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
  220. xdcblat3: $(dtestl3o) c_dblat3c.o $(TOPDIR)/$(LIBNAME)
  221. $(CC) $(CFLAGS) -o xdcblat3 c_dblat3c.o $(dtestl3o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
  222. endif
  223. endif
  224. ifeq ($(BUILD_COMPLEX),1)
  225. # Single complex
  226. ifeq ($(NOFORTRAN), $(filter 0 2,$(NOFORTRAN)))
  227. xccblat1: $(ctestl1o) c_cblat1.o $(TOPDIR)/$(LIBNAME)
  228. $(FC) $(FLDFLAGS) -o xccblat1 c_cblat1.o $(ctestl1o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
  229. xccblat2: $(ctestl2o) c_cblat2.o $(TOPDIR)/$(LIBNAME)
  230. $(FC) $(FLDFLAGS) -o xccblat2 c_cblat2.o $(ctestl2o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
  231. xccblat3: $(ctestl3o) c_cblat3.o $(TOPDIR)/$(LIBNAME)
  232. $(FC) $(FLDFLAGS) -o xccblat3 c_cblat3.o $(ctestl3o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
  233. xccblat3_3m: $(ctestl3o_3m) c_cblat3_3m.o $(TOPDIR)/$(LIBNAME)
  234. $(FC) $(FLDFLAGS) -o xccblat3_3m c_cblat3_3m.o $(ctestl3o_3m) $(LIB) $(EXTRALIB) $(CEXTRALIB)
  235. else
  236. xccblat1: $(ctestl1o) c_cblat1c.o $(TOPDIR)/$(LIBNAME)
  237. $(CC) $(CFLAGS) -o xccblat1 c_cblat1c.o $(ctestl1o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
  238. xccblat2: $(ctestl2o) c_cblat2c.o $(TOPDIR)/$(LIBNAME)
  239. $(CC) $(CFLAGS) -o xccblat2 c_cblat2c.o $(ctestl2o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
  240. xccblat3: $(ctestl3o) c_cblat3c.o $(TOPDIR)/$(LIBNAME)
  241. $(CC) $(CFLAGS) -o xccblat3 c_cblat3c.o $(ctestl3o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
  242. endif
  243. endif
  244. ifeq ($(BUILD_COMPLEX16),1)
  245. # Double complex
  246. ifeq ($(NOFORTRAN), $(filter 0 2,$(NOFORTRAN)))
  247. xzcblat1: $(ztestl1o) c_zblat1.o $(TOPDIR)/$(LIBNAME)
  248. $(FC) $(FLDFLAGS) -o xzcblat1 c_zblat1.o $(ztestl1o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
  249. xzcblat2: $(ztestl2o) c_zblat2.o $(TOPDIR)/$(LIBNAME)
  250. $(FC) $(FLDFLAGS) -o xzcblat2 c_zblat2.o $(ztestl2o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
  251. xzcblat3: $(ztestl3o) c_zblat3.o $(TOPDIR)/$(LIBNAME)
  252. $(FC) $(FLDFLAGS) -o xzcblat3 c_zblat3.o $(ztestl3o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
  253. xzcblat3_3m: $(ztestl3o_3m) c_zblat3_3m.o $(TOPDIR)/$(LIBNAME)
  254. $(FC) $(FLDFLAGS) -o xzcblat3_3m c_zblat3_3m.o $(ztestl3o_3m) $(LIB) $(EXTRALIB) $(CEXTRALIB)
  255. else
  256. xzcblat1: $(ztestl1o) c_zblat1c.o $(TOPDIR)/$(LIBNAME)
  257. $(CC) $(CFLAGS) -o xzcblat1 c_zblat1c.o $(ztestl1o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
  258. xzcblat2: $(ztestl2o) c_zblat2c.o $(TOPDIR)/$(LIBNAME)
  259. $(CC) $(CFLAGS) -o xzcblat2 c_zblat2c.o $(ztestl2o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
  260. xzcblat3: $(ztestl3o) c_zblat3c.o $(TOPDIR)/$(LIBNAME)
  261. $(CC) $(CFLAGS) -o xzcblat3 c_zblat3c.o $(ztestl3o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
  262. endif
  263. endif
  264. include $(TOPDIR)/Makefile.tail