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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. # This Makefile compiles the CBLAS routines
  2. TOPSRCDIR = ../..
  3. include $(TOPSRCDIR)/make.inc
  4. .SUFFIXES: .c .o
  5. .c.o:
  6. $(CC) $(CFLAGS) -I../include -c -o $@ $<
  7. .PHONY: all
  8. all: $(CBLASLIB)
  9. # Error handling routines for level 2 & 3
  10. errhand = cblas_globals.o cblas_xerbla.o xerbla.o
  11. #
  12. #
  13. # CBLAS routines
  14. #
  15. # Level 1
  16. #
  17. #
  18. # Files for level 1 single precision real
  19. slev1 = cblas_srotg.o cblas_srotmg.o cblas_srot.o cblas_srotm.o \
  20. cblas_sswap.o cblas_sscal.o cblas_scopy.o cblas_saxpy.o \
  21. cblas_sdot.o cblas_sdsdot.o cblas_snrm2.o cblas_sasum.o \
  22. cblas_isamax.o sdotsub.o sdsdotsub.o snrm2sub.o sasumsub.o \
  23. isamaxsub.o
  24. # Files for level 1 double precision real
  25. dlev1 = cblas_drotg.o cblas_drotmg.o cblas_drot.o cblas_drotm.o \
  26. cblas_dswap.o cblas_dscal.o cblas_dcopy.o cblas_daxpy.o \
  27. cblas_ddot.o cblas_dsdot.o cblas_dnrm2.o cblas_dasum.o \
  28. cblas_idamax.o ddotsub.o dsdotsub.o dnrm2sub.o \
  29. dasumsub.o idamaxsub.o
  30. # Files for level 1 single precision complex
  31. clev1 = cblas_cswap.o cblas_cscal.o cblas_csscal.o cblas_ccopy.o \
  32. cblas_caxpy.o cblas_cdotu_sub.o cblas_cdotc_sub.o \
  33. cblas_icamax.o cdotcsub.o cdotusub.o icamaxsub.o
  34. # Files for level 1 double precision complex
  35. zlev1 = cblas_zswap.o cblas_zscal.o cblas_zdscal.o cblas_zcopy.o \
  36. cblas_zaxpy.o cblas_zdotu_sub.o cblas_zdotc_sub.o cblas_dznrm2.o \
  37. cblas_dzasum.o cblas_izamax.o zdotcsub.o zdotusub.o \
  38. dzasumsub.o dznrm2sub.o izamaxsub.o
  39. # Common files for level 1 single precision
  40. sclev1 = cblas_scasum.o scasumsub.o cblas_scnrm2.o scnrm2sub.o
  41. .PHONY: slib1 dlib1 clib1 zlib1
  42. # Single precision real
  43. slib1: $(slev1) $(sclev1)
  44. $(AR) $(ARFLAGS) $(CBLASLIB) $^
  45. $(RANLIB) $(CBLASLIB)
  46. # Double precision real
  47. dlib1: $(dlev1)
  48. $(AR) $(ARFLAGS) $(CBLASLIB) $^
  49. $(RANLIB) $(CBLASLIB)
  50. # Single precision complex
  51. clib1: $(clev1) $(sclev1)
  52. $(AR) $(ARFLAGS) $(CBLASLIB) $^
  53. $(RANLIB) $(CBLASLIB)
  54. # Double precision complex
  55. zlib1: $(zlev1)
  56. $(AR) $(ARFLAGS) $(CBLASLIB) $^
  57. $(RANLIB) $(CBLASLIB)
  58. #
  59. #
  60. # CBLAS routines
  61. #
  62. # Level 2
  63. #
  64. #
  65. # Files for level 2 single precision real
  66. slev2 = cblas_sgemv.o cblas_sgbmv.o cblas_sger.o cblas_ssbmv.o cblas_sspmv.o \
  67. cblas_sspr.o cblas_sspr2.o cblas_ssymv.o cblas_ssyr.o cblas_ssyr2.o \
  68. cblas_stbmv.o cblas_stbsv.o cblas_stpmv.o cblas_stpsv.o cblas_strmv.o \
  69. cblas_strsv.o
  70. # Files for level 2 double precision real
  71. dlev2 = cblas_dgemv.o cblas_dgbmv.o cblas_dger.o cblas_dsbmv.o cblas_dspmv.o \
  72. cblas_dspr.o cblas_dspr2.o cblas_dsymv.o cblas_dsyr.o cblas_dsyr2.o \
  73. cblas_dtbmv.o cblas_dtbsv.o cblas_dtpmv.o cblas_dtpsv.o cblas_dtrmv.o \
  74. cblas_dtrsv.o
  75. # Files for level 2 single precision complex
  76. clev2 = cblas_cgemv.o cblas_cgbmv.o cblas_chemv.o cblas_chbmv.o cblas_chpmv.o \
  77. cblas_ctrmv.o cblas_ctbmv.o cblas_ctpmv.o cblas_ctrsv.o cblas_ctbsv.o \
  78. cblas_ctpsv.o cblas_cgeru.o cblas_cgerc.o cblas_cher.o cblas_cher2.o \
  79. cblas_chpr.o cblas_chpr2.o
  80. # Files for level 2 double precision complex
  81. zlev2 = cblas_zgemv.o cblas_zgbmv.o cblas_zhemv.o cblas_zhbmv.o cblas_zhpmv.o \
  82. cblas_ztrmv.o cblas_ztbmv.o cblas_ztpmv.o cblas_ztrsv.o cblas_ztbsv.o \
  83. cblas_ztpsv.o cblas_zgeru.o cblas_zgerc.o cblas_zher.o cblas_zher2.o \
  84. cblas_zhpr.o cblas_zhpr2.o
  85. .PHONY: slib2 dlib2 clib2 zlib2
  86. # Single precision real
  87. slib2: $(slev2) $(errhand)
  88. $(AR) $(ARFLAGS) $(CBLASLIB) $^
  89. $(RANLIB) $(CBLASLIB)
  90. # Double precision real
  91. dlib2: $(dlev2) $(errhand)
  92. $(AR) $(ARFLAGS) $(CBLASLIB) $^
  93. $(RANLIB) $(CBLASLIB)
  94. # Single precision complex
  95. clib2: $(clev2) $(errhand)
  96. $(AR) $(ARFLAGS) $(CBLASLIB) $^
  97. $(RANLIB) $(CBLASLIB)
  98. # Double precision complex
  99. zlib2: $(zlev2) $(errhand)
  100. $(AR) $(ARFLAGS) $(CBLASLIB) $^
  101. $(RANLIB) $(CBLASLIB)
  102. #
  103. #
  104. # CBLAS routines
  105. #
  106. # Level 3
  107. #
  108. #
  109. # Files for level 3 single precision real
  110. slev3 = cblas_sgemm.o cblas_ssymm.o cblas_ssyrk.o cblas_ssyr2k.o cblas_strmm.o \
  111. cblas_strsm.o
  112. # Files for level 3 double precision real
  113. dlev3 = cblas_dgemm.o cblas_dsymm.o cblas_dsyrk.o cblas_dsyr2k.o cblas_dtrmm.o \
  114. cblas_dtrsm.o
  115. # Files for level 3 single precision complex
  116. clev3 = cblas_cgemm.o cblas_csymm.o cblas_chemm.o cblas_cherk.o \
  117. cblas_cher2k.o cblas_ctrmm.o cblas_ctrsm.o cblas_csyrk.o \
  118. cblas_csyr2k.o
  119. # Files for level 3 double precision complex
  120. zlev3 = cblas_zgemm.o cblas_zsymm.o cblas_zhemm.o cblas_zherk.o \
  121. cblas_zher2k.o cblas_ztrmm.o cblas_ztrsm.o cblas_zsyrk.o \
  122. cblas_zsyr2k.o
  123. .PHONY: slib3 dlib3 clib3 zlib3
  124. # Single precision real
  125. slib3: $(slev3) $(errhand)
  126. $(AR) $(ARFLAGS) $(CBLASLIB) $^
  127. $(RANLIB) $(CBLASLIB)
  128. # Double precision real
  129. dlib3: $(dlev3) $(errhand)
  130. $(AR) $(ARFLAGS) $(CBLASLIB) $^
  131. $(RANLIB) $(CBLASLIB)
  132. # Single precision complex
  133. clib3: $(clev3) $(errhand)
  134. $(AR) $(ARFLAGS) $(CBLASLIB) $^
  135. $(RANLIB) $(CBLASLIB)
  136. # Double precision complex
  137. zlib3: $(zlev3) $(errhand)
  138. $(AR) $(ARFLAGS) $(CBLASLIB) $^
  139. $(RANLIB) $(CBLASLIB)
  140. alev1 = $(slev1) $(dlev1) $(clev1) $(zlev1) $(sclev1)
  141. alev2 = $(slev2) $(dlev2) $(clev2) $(zlev2)
  142. alev3 = $(slev3) $(dlev3) $(clev3) $(zlev3)
  143. .PHONY: all1 all2 all3
  144. # All level 1
  145. all1: $(alev1)
  146. $(AR) $(ARFLAGS) $(CBLASLIB) $^
  147. $(RANLIB) $(CBLASLIB)
  148. # All level 2
  149. all2: $(alev2) $(errhand)
  150. $(AR) $(ARFLAGS) $(CBLASLIB) $^
  151. $(RANLIB) $(CBLASLIB)
  152. # All level 3
  153. all3: $(alev3) $(errhand)
  154. $(AR) $(ARFLAGS) $(CBLASLIB) $^
  155. $(RANLIB) $(CBLASLIB)
  156. # All levels and precisions
  157. $(CBLASLIB): $(alev1) $(alev2) $(alev3) $(errhand)
  158. $(AR) $(ARFLAGS) $@ $^
  159. $(RANLIB) $@
  160. FRC:
  161. @FRC=$(FRC)
  162. .PHONY: clean cleanobj cleanlib
  163. clean: cleanobj cleanlib
  164. cleanobj:
  165. rm -f *.o
  166. cleanlib:
  167. rm -f $(CBLASLIB)