1 # This is triggered by Makefile.system and runs before any of the code is built.
7 override HOST_CFLAGS += -DDYNAMIC_ARCH
11 TARGET_MAKE = Makefile_kernel.conf
12 TARGET_CONF = config_kernel.h
14 TARGET_MAKE = Makefile.conf
15 TARGET_CONF = config.h
18 # CPUIDEMU = ../../cpuid/table.o
21 EXFLAGS = -DCPUIDEMU -DVENDOR=99
24 ifeq ($(TARGET), MIPS24K)
25 TARGET_FLAGS = -mips32r2
28 ifeq ($(TARGET), MIPS1004K)
29 TARGET_FLAGS = -mips32r2
32 ifeq ($(TARGET), P5600)
33 TARGET_FLAGS = -mips32r5
36 ifeq ($(TARGET), I6400)
37 TARGET_FLAGS = -mips64r6
40 ifeq ($(TARGET), P6600)
41 TARGET_FLAGS = -mips64r6
44 ifeq ($(TARGET), I6500)
45 TARGET_FLAGS = -mips64r6
48 ifeq ($(TARGET), C910V)
49 TARGET_FLAGS = -march=rv64gcvxthead -mabi=lp64v
53 ./getarch_2nd 0 >> $(TARGET_MAKE)
54 ./getarch_2nd 1 >> $(TARGET_CONF)
56 $(TARGET_CONF): c_check f_check getarch
57 perl ./c_check $(TARGET_MAKE) $(TARGET_CONF) $(CC) $(TARGET_FLAGS) $(CFLAGS)
58 ifneq ($(ONLY_CBLAS), 1)
59 perl ./f_check $(TARGET_MAKE) $(TARGET_CONF) $(FC) $(TARGET_FLAGS)
61 #When we only build CBLAS, we set NOFORTRAN=2
62 echo "NOFORTRAN=2" >> $(TARGET_MAKE)
63 echo "NO_FBLAS=1" >> $(TARGET_MAKE)
64 echo "F_COMPILER=GFORTRAN" >> $(TARGET_MAKE)
65 echo "BU=_" >> $(TARGET_MAKE)
66 echo "#define BUNDERSCORE _" >> $(TARGET_CONF)
67 echo "#define NEEDBUNDERSCORE 1" >> $(TARGET_CONF)
69 ./getarch 0 >> $(TARGET_MAKE)
70 ./getarch 1 >> $(TARGET_CONF)
73 getarch : getarch.c cpuid.S dummy $(CPUIDEMU)
74 avx512=$$(perl c_check - - $(CC) $(TARGET_FLAGS) $(CFLAGS) | grep NO_AVX512); \
75 rv64gv=$$(perl c_check - - $(CC) $(TARGET_FLAGS) $(CFLAGS) | grep NO_RV64GV); \
76 $(HOSTCC) $(HOST_CFLAGS) $(EXFLAGS) $${avx512:+-D$${avx512}} $${rv64gv:+-D$${rv64gv}} -o $(@F) getarch.c cpuid.S $(CPUIDEMU)
78 getarch_2nd : getarch_2nd.c $(TARGET_CONF) dummy
80 $(HOSTCC) -I. $(HOST_CFLAGS) -o $(@F) getarch_2nd.c
82 $(HOSTCC) -I. $(HOST_CFLAGS) -DBUILD_KERNEL -o $(@F) getarch_2nd.c