Have getarch downgrade the RISCV C910V target to GENERIC if compiler lacks vector...
[platform/upstream/openblas.git] / Makefile.prebuild
1 # This is triggered by Makefile.system and runs before any of the code is built.
2
3 export BINARY
4 export USE_OPENMP
5
6 ifdef DYNAMIC_ARCH
7 override HOST_CFLAGS += -DDYNAMIC_ARCH
8 endif
9
10 ifdef TARGET_CORE
11 TARGET_MAKE = Makefile_kernel.conf
12 TARGET_CONF = config_kernel.h
13 else
14 TARGET_MAKE = Makefile.conf
15 TARGET_CONF = config.h
16 endif
17
18 # CPUIDEMU = ../../cpuid/table.o
19
20 ifdef CPUIDEMU
21 EXFLAGS = -DCPUIDEMU -DVENDOR=99
22 endif
23
24 ifeq ($(TARGET), MIPS24K)
25 TARGET_FLAGS = -mips32r2
26 endif
27
28 ifeq ($(TARGET), MIPS1004K)
29 TARGET_FLAGS = -mips32r2
30 endif
31
32 ifeq ($(TARGET), P5600)
33 TARGET_FLAGS = -mips32r5
34 endif
35
36 ifeq ($(TARGET), I6400)
37 TARGET_FLAGS = -mips64r6
38 endif
39
40 ifeq ($(TARGET), P6600)
41 TARGET_FLAGS = -mips64r6
42 endif
43
44 ifeq ($(TARGET), I6500)
45 TARGET_FLAGS = -mips64r6
46 endif
47
48 ifeq ($(TARGET), C910V)
49 TARGET_FLAGS = -march=rv64gcvxthead -mabi=lp64v
50 endif
51
52 all: getarch_2nd
53         ./getarch_2nd  0 >> $(TARGET_MAKE)
54         ./getarch_2nd  1 >> $(TARGET_CONF)
55
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)
60 else
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)
68 endif
69         ./getarch 0 >> $(TARGET_MAKE)
70         ./getarch 1 >> $(TARGET_CONF)
71
72
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)
77
78 getarch_2nd : getarch_2nd.c $(TARGET_CONF) dummy
79 ifndef TARGET_CORE
80         $(HOSTCC) -I. $(HOST_CFLAGS) -o $(@F) getarch_2nd.c
81 else
82         $(HOSTCC) -I. $(HOST_CFLAGS) -DBUILD_KERNEL -o $(@F) getarch_2nd.c
83 endif
84
85 dummy:
86
87 .PHONY: dummy