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.prebuild 2.2 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. # This is triggered by Makefile.system and runs before any of the code is built.
  2. export BINARY
  3. export USE_OPENMP
  4. ifdef DYNAMIC_ARCH
  5. override HOST_CFLAGS += -DDYNAMIC_ARCH
  6. endif
  7. ifdef TARGET_CORE
  8. TARGET_MAKE = Makefile_kernel.conf
  9. TARGET_CONF = config_kernel.h
  10. else
  11. TARGET_MAKE = Makefile.conf
  12. TARGET_CONF = config.h
  13. endif
  14. ifdef USE_PERL
  15. SCRIPTSUFFIX = .pl
  16. else
  17. SCRIPTSUFFIX =
  18. endif
  19. # CPUIDEMU = ../../cpuid/table.o
  20. ifdef CPUIDEMU
  21. EXFLAGS = -DCPUIDEMU -DVENDOR=99
  22. endif
  23. ifeq ($(TARGET), MIPS24K)
  24. TARGET_FLAGS = -mips32r2
  25. endif
  26. ifeq ($(TARGET), MIPS1004K)
  27. TARGET_FLAGS = -mips32r2
  28. endif
  29. ifeq ($(TARGET), P5600)
  30. TARGET_FLAGS = -mips32r5
  31. endif
  32. ifeq ($(TARGET), I6400)
  33. TARGET_FLAGS = -mips64r6
  34. endif
  35. ifeq ($(TARGET), P6600)
  36. TARGET_FLAGS = -mips64r6
  37. endif
  38. ifeq ($(TARGET), I6500)
  39. TARGET_FLAGS = -mips64r6
  40. endif
  41. ifeq ($(TARGET), C910V)
  42. TARGET_FLAGS = -march=rv64gcv0p7_zfh_xtheadc -mabi=lp64d
  43. endif
  44. all: getarch_2nd
  45. ./getarch_2nd 0 >> $(TARGET_MAKE)
  46. ./getarch_2nd 1 >> $(TARGET_CONF)
  47. $(TARGET_CONF): c_check$(SCRIPTSUFFIX) f_check$(SCRIPTSUFFIX) getarch
  48. ./c_check$(SCRIPTSUFFIX) $(TARGET_MAKE) $(TARGET_CONF) "$(CC)" $(TARGET_FLAGS) $(CFLAGS)
  49. ifneq ($(ONLY_CBLAS), 1)
  50. ./f_check$(SCRIPTSUFFIX) $(TARGET_MAKE) $(TARGET_CONF) "$(FC)" $(TARGET_FLAGS)
  51. else
  52. #When we only build CBLAS, we set NOFORTRAN=2
  53. echo "NOFORTRAN=2" >> $(TARGET_MAKE)
  54. echo "NO_FBLAS=1" >> $(TARGET_MAKE)
  55. echo "F_COMPILER=GFORTRAN" >> $(TARGET_MAKE)
  56. echo "BU=_" >> $(TARGET_MAKE)
  57. echo "#define BUNDERSCORE _" >> $(TARGET_CONF)
  58. echo "#define NEEDBUNDERSCORE 1" >> $(TARGET_CONF)
  59. endif
  60. ./getarch 0 >> $(TARGET_MAKE)
  61. ./getarch 1 >> $(TARGET_CONF)
  62. getarch : getarch.c cpuid.S dummy $(CPUIDEMU)
  63. avx512=$$(./c_check$(SCRIPTSUFFIX) - - "$(CC)" $(TARGET_FLAGS) $(CFLAGS) | grep NO_AVX512); \
  64. rv64gv=$$(./c_check$(SCRIPTSUFFIX) - - "$(CC)" $(TARGET_FLAGS) $(CFLAGS) | grep NO_RV64GV); \
  65. $(HOSTCC) $(HOST_CFLAGS) $(EXFLAGS) $${avx512:+-D$${avx512}} $${rv64gv:+-D$${rv64gv}} -o $(@F) getarch.c cpuid.S $(CPUIDEMU)
  66. getarch_2nd : getarch_2nd.c $(TARGET_CONF) dummy
  67. ifndef TARGET_CORE
  68. $(HOSTCC) -I. $(HOST_CFLAGS) -o $(@F) getarch_2nd.c
  69. else
  70. $(HOSTCC) -I. $(HOST_CFLAGS) -DBUILD_KERNEL -o $(@F) getarch_2nd.c
  71. endif
  72. dummy:
  73. .PHONY: dummy