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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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. ifeq ($(TARGET), CK860FV)
  45. TARGET_FLAGS = -march=ck860v -mcpu=ck860fv -mfdivdu -mhard-float
  46. endif
  47. all: getarch_2nd
  48. ./getarch_2nd 0 >> $(TARGET_MAKE)
  49. ./getarch_2nd 1 >> $(TARGET_CONF)
  50. $(TARGET_CONF): c_check$(SCRIPTSUFFIX) f_check$(SCRIPTSUFFIX) getarch
  51. ./c_check$(SCRIPTSUFFIX) $(TARGET_MAKE) $(TARGET_CONF) "$(CC)" $(TARGET_FLAGS) $(CFLAGS)
  52. ifneq ($(ONLY_CBLAS), 1)
  53. ./f_check$(SCRIPTSUFFIX) $(TARGET_MAKE) $(TARGET_CONF) "$(FC)" $(TARGET_FLAGS)
  54. else
  55. #When we only build CBLAS, we set NOFORTRAN=2
  56. echo "NOFORTRAN=2" >> $(TARGET_MAKE)
  57. echo "NO_FBLAS=1" >> $(TARGET_MAKE)
  58. echo "F_COMPILER=GFORTRAN" >> $(TARGET_MAKE)
  59. echo "BU=_" >> $(TARGET_MAKE)
  60. echo "#define BUNDERSCORE _" >> $(TARGET_CONF)
  61. echo "#define NEEDBUNDERSCORE 1" >> $(TARGET_CONF)
  62. endif
  63. ./getarch 0 >> $(TARGET_MAKE)
  64. ./getarch 1 >> $(TARGET_CONF)
  65. getarch : getarch.c cpuid.S dummy $(CPUIDEMU)
  66. avx512=$$(./c_check$(SCRIPTSUFFIX) - - "$(CC)" $(TARGET_FLAGS) $(CFLAGS) | grep NO_AVX512); \
  67. rv64gv=$$(./c_check$(SCRIPTSUFFIX) - - "$(CC)" $(TARGET_FLAGS) $(CFLAGS) | grep NO_RV64GV); \
  68. $(HOSTCC) $(HOST_CFLAGS) $(EXFLAGS) $${avx512:+-D$${avx512}} $${rv64gv:+-D$${rv64gv}} -o $(@F) getarch.c cpuid.S $(CPUIDEMU)
  69. getarch_2nd : getarch_2nd.c $(TARGET_CONF) dummy
  70. ifndef TARGET_CORE
  71. $(HOSTCC) -I. $(HOST_CFLAGS) -o $(@F) getarch_2nd.c
  72. else
  73. $(HOSTCC) -I. $(HOST_CFLAGS) -DBUILD_KERNEL -o $(@F) getarch_2nd.c
  74. endif
  75. dummy:
  76. .PHONY: dummy