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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. # CPUIDEMU = ../../cpuid/table.o
  15. ifdef CPUIDEMU
  16. EXFLAGS = -DCPUIDEMU -DVENDOR=99
  17. endif
  18. ifeq ($(TARGET), MIPS24K)
  19. TARGET_FLAGS = -mips32r2
  20. endif
  21. ifeq ($(TARGET), MIPS1004K)
  22. TARGET_FLAGS = -mips32r2
  23. endif
  24. ifeq ($(TARGET), P5600)
  25. TARGET_FLAGS = -mips32r5
  26. endif
  27. ifeq ($(TARGET), I6400)
  28. TARGET_FLAGS = -mips64r6
  29. endif
  30. ifeq ($(TARGET), P6600)
  31. TARGET_FLAGS = -mips64r6
  32. endif
  33. ifeq ($(TARGET), I6500)
  34. TARGET_FLAGS = -mips64r6
  35. endif
  36. ifeq ($(TARGET), C910V)
  37. TARGET_FLAGS = -march=rv64gcvxthead -mabi=lp64v
  38. endif
  39. all: getarch_2nd
  40. ./getarch_2nd 0 >> $(TARGET_MAKE)
  41. ./getarch_2nd 1 >> $(TARGET_CONF)
  42. $(TARGET_CONF): c_check f_check getarch
  43. ./c_check $(TARGET_MAKE) $(TARGET_CONF) $(CC) $(TARGET_FLAGS) $(CFLAGS)
  44. ifneq ($(ONLY_CBLAS), 1)
  45. ./f_check $(TARGET_MAKE) $(TARGET_CONF) $(FC) $(TARGET_FLAGS)
  46. else
  47. #When we only build CBLAS, we set NOFORTRAN=2
  48. echo "NOFORTRAN=2" >> $(TARGET_MAKE)
  49. echo "NO_FBLAS=1" >> $(TARGET_MAKE)
  50. echo "F_COMPILER=GFORTRAN" >> $(TARGET_MAKE)
  51. echo "BU=_" >> $(TARGET_MAKE)
  52. echo "#define BUNDERSCORE _" >> $(TARGET_CONF)
  53. echo "#define NEEDBUNDERSCORE 1" >> $(TARGET_CONF)
  54. endif
  55. ./getarch 0 >> $(TARGET_MAKE)
  56. ./getarch 1 >> $(TARGET_CONF)
  57. getarch : getarch.c cpuid.S dummy $(CPUIDEMU)
  58. avx512=$$(./c_check - - $(CC) $(TARGET_FLAGS) $(CFLAGS) | grep NO_AVX512); \
  59. rv64gv=$$(./c_check - - $(CC) $(TARGET_FLAGS) $(CFLAGS) | grep NO_RV64GV); \
  60. $(HOSTCC) $(HOST_CFLAGS) $(EXFLAGS) $${avx512:+-D$${avx512}} $${rv64gv:+-D$${rv64gv}} -o $(@F) getarch.c cpuid.S $(CPUIDEMU)
  61. getarch_2nd : getarch_2nd.c $(TARGET_CONF) dummy
  62. ifndef TARGET_CORE
  63. $(HOSTCC) -I. $(HOST_CFLAGS) -o $(@F) getarch_2nd.c
  64. else
  65. $(HOSTCC) -I. $(HOST_CFLAGS) -DBUILD_KERNEL -o $(@F) getarch_2nd.c
  66. endif
  67. dummy:
  68. .PHONY: dummy