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.0 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. ifdef TARGET_CORE
  2. TARGET = $(TARGET_CORE)
  3. endif
  4. TOPDIR = ..
  5. include $(TOPDIR)/Makefile.system
  6. ifdef TARGET_CORE
  7. ifeq ($(TARGET_CORE), SKYLAKEX)
  8. override CFLAGS += -DBUILD_KERNEL -DTABLE_NAME=gotoblas_$(TARGET_CORE) -march=skylake-avx512
  9. ifeq ($(OSNAME), CYGWIN_NT)
  10. override CFLAGS += -fno-asynchronous-unwind-tables
  11. endif
  12. ifeq ($(OSNAME), WINNT)
  13. ifeq ($(C_COMPILER), GCC)
  14. override CFLAGS += -fno-asynchronous-unwind-tables
  15. endif
  16. endif
  17. else ifeq($(TARGET_CORE), HASWELL)
  18. override CFLAGS += -DBUILD_KERNEL -DTABLE_NAME=gotoblas_$(TARGET_CORE) -march=core2-avx
  19. else
  20. override CFLAGS += -DBUILD_KERNEL -DTABLE_NAME=gotoblas_$(TARGET_CORE)
  21. endif
  22. BUILD_KERNEL = 1
  23. KDIR =
  24. TSUFFIX = _$(TARGET_CORE)
  25. else
  26. TARGET_CORE = $(CORE)
  27. KDIR =
  28. TSUFFIX =
  29. endif
  30. -include $(KERNELDIR)/KERNEL.$(TARGET_CORE)
  31. include $(KERNELDIR)/KERNEL
  32. include Makefile.L1
  33. include Makefile.L2
  34. include Makefile.L3
  35. include Makefile.LA
  36. HPLOBJS = \
  37. dgemm_kernel.$(SUFFIX) \
  38. $(DGEMMINCOPYOBJ) $(DGEMMITCOPYOBJ) \
  39. $(DGEMMONCOPYOBJ) $(DGEMMOTCOPYOBJ) \
  40. dtrsm_kernel_LN.$(SUFFIX) dtrsm_kernel_LT.$(SUFFIX) \
  41. dtrsm_kernel_RN.$(SUFFIX) dtrsm_kernel_RT.$(SUFFIX) \
  42. daxpy_k.$(SUFFIX) dcopy_k.$(SUFFIX) ddot_k.$(SUFFIX) \
  43. dger_k.$(SUFFIX) dscal_k.$(SUFFIX) idamax_k.$(SUFFIX) \
  44. dgemv_n.$(SUFFIX) dgemv_t.$(SUFFIX) dgemm_beta.$(SUFFIX) \
  45. dtrsm_iunucopy.$(SUFFIX) dtrsm_iunncopy.$(SUFFIX) \
  46. dtrsm_ilnucopy.$(SUFFIX) dtrsm_ilnncopy.$(SUFFIX) \
  47. dtrsm_iutucopy.$(SUFFIX) dtrsm_iutncopy.$(SUFFIX) \
  48. dtrsm_iltucopy.$(SUFFIX) dtrsm_iltncopy.$(SUFFIX) \
  49. dtrsm_ounucopy.$(SUFFIX) dtrsm_ounncopy.$(SUFFIX) \
  50. dtrsm_olnucopy.$(SUFFIX) dtrsm_olnncopy.$(SUFFIX) \
  51. dtrsm_outucopy.$(SUFFIX) dtrsm_outncopy.$(SUFFIX) \
  52. dtrsm_oltucopy.$(SUFFIX) dtrsm_oltncopy.$(SUFFIX)
  53. COMMONOBJS += lsame.$(SUFFIX) scabs1.$(SUFFIX) dcabs1.$(SUFFIX)
  54. ifeq ($(DYNAMIC_ARCH), 1)
  55. SBLASOBJS += setparam$(TSUFFIX).$(SUFFIX)
  56. CCOMMON_OPT += -DTS=$(TSUFFIX)
  57. endif
  58. KERNEL_INTERFACE = ../common_level1.h ../common_level2.h ../common_level3.h
  59. ifneq ($(NO_LAPACK), 1)
  60. KERNEL_INTERFACE += ../common_lapack.h
  61. endif
  62. ifeq ($(ARCH), x86)
  63. COMMONOBJS += cpuid.$(SUFFIX)
  64. endif
  65. ifdef EXPRECISION
  66. COMMONOBJS += qconjg.$(SUFFIX) qcabs1.$(SUFFIX)
  67. endif
  68. ifdef QUAD_PRECISION
  69. COMMONOBJS += qconjg.$(SUFFIX) qcabs1.$(SUFFIX)
  70. endif
  71. all : libs
  72. scabs1.$(SUFFIX): $(KERNELDIR)/$(SCABS_KERNEL)
  73. $(CC) -c $(CFLAGS) -DCOMPLEX -UDOUBLE -DF_INTERFACE $< -o $(@F)
  74. dcabs1.$(SUFFIX): $(KERNELDIR)/$(DCABS_KERNEL)
  75. $(CC) -c $(CFLAGS) -DCOMPLEX -DDOUBLE -DF_INTERFACE $< -o $(@F)
  76. qcabs1.$(SUFFIX): $(KERNELDIR)/$(QCABS_KERNEL)
  77. $(CC) -c $(CFLAGS) -DCOMPLEX -DXDOUBLE -DF_INTERFACE $< -o $(@F)
  78. qconjg.$(SUFFIX): $(KERNELDIR)/qconjg.S
  79. $(CC) -c $(CFLAGS) -DCOMPLEX -DXDOUBLE -DF_INTERFACE $< -o $(@F)
  80. lsame.$(SUFFIX): $(KERNELDIR)/$(LSAME_KERNEL)
  81. $(CC) -c $(CFLAGS) -DF_INTERFACE $< -o $(@F)
  82. setparam$(TSUFFIX).$(SUFFIX): setparam$(TSUFFIX).c kernel$(TSUFFIX).h
  83. ifeq ($(USE_GEMM3M), 1)
  84. $(CC) -c $(CFLAGS) -DUSE_GEMM3M $< -o $@
  85. else
  86. $(CC) -c $(CFLAGS) $< -o $@
  87. endif
  88. setparam$(TSUFFIX).c : setparam-ref.c
  89. sed 's/TS/$(TSUFFIX)/g' $< > $(@F)
  90. kernel$(TSUFFIX).h : $(KERNEL_INTERFACE)
  91. sed 's/\ *(/$(TSUFFIX)(/g' $^ > $(@F)
  92. cpuid.$(SUFFIX): $(KERNELDIR)/cpuid.S
  93. $(CC) -c $(CFLAGS) $< -o $(@F)
  94. scabs1.$(PSUFFIX): $(KERNELDIR)/$(SCABS_KERNEL)
  95. $(CC) -c $(PFLAGS) -DCOMPLEX -UDOUBLE -DF_INTERFACE $< -o $(@F)
  96. dcabs1.$(PSUFFIX): $(KERNELDIR)/$(DCABS_KERNEL)
  97. $(CC) -c $(PFLAGS) -DCOMPLEX -DDOUBLE -DF_INTERFACE $< -o $(@F)
  98. qcabs1.$(PSUFFIX): $(KERNELDIR)/$(QCABS_KERNEL)
  99. $(CC) -c $(PFLAGS) -DCOMPLEX -DXDOUBLE -DF_INTERFACE $< -o $(@F)
  100. qconjg.$(PSUFFIX): $(KERNELDIR)/qconjg.S
  101. $(CC) -c $(PFLAGS) -DCOMPLEX -DXDOUBLE -DF_INTERFACE $< -o $(@F)
  102. lsame.$(PSUFFIX): $(KERNELDIR)/$(LSAME_KERNEL)
  103. $(CC) -c $(PFLAGS) -DF_INTERFACE $< -o $(@F)
  104. cpuid.$(PSUFFIX): $(KERNELDIR)/cpuid.S
  105. $(CC) -c $(PFLAGS) $< -o $(@F)
  106. #ifdef DYNAMIC_ARCH
  107. clean ::
  108. @rm -f setparam_*.c kernel_*.h setparam.h kernel.h
  109. #endif
  110. include $(TOPDIR)/Makefile.tail