Merge pull request #3642 from nursik/develop
[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 ifdef USE_PERL
19 SCRIPTSUFFIX = .pl
20 else
21 SCRIPTSUFFIX =
22 endif
23
24 # CPUIDEMU = ../../cpuid/table.o
25
26 ifdef CPUIDEMU
27 EXFLAGS = -DCPUIDEMU -DVENDOR=99
28 endif
29
30 ifeq ($(TARGET), MIPS24K)
31 TARGET_FLAGS = -mips32r2
32 endif
33
34 ifeq ($(TARGET), MIPS1004K)
35 TARGET_FLAGS = -mips32r2
36 endif
37
38 ifeq ($(TARGET), P5600)
39 TARGET_FLAGS = -mips32r5
40 endif
41
42 ifeq ($(TARGET), I6400)
43 TARGET_FLAGS = -mips64r6
44 endif
45
46 ifeq ($(TARGET), P6600)
47 TARGET_FLAGS = -mips64r6
48 endif
49
50 ifeq ($(TARGET), I6500)
51 TARGET_FLAGS = -mips64r6
52 endif
53
54 ifeq ($(TARGET), C910V)
55 TARGET_FLAGS = -march=rv64gcv0p7_zfh_xtheadc -mabi=lp64d
56 endif
57
58 all: getarch_2nd
59         ./getarch_2nd  0 >> $(TARGET_MAKE)
60         ./getarch_2nd  1 >> $(TARGET_CONF)
61
62 $(TARGET_CONF): c_check$(SCRIPTSUFFIX) f_check$(SCRIPTSUFFIX) getarch
63         ./c_check$(SCRIPTSUFFIX) $(TARGET_MAKE) $(TARGET_CONF) $(CC) $(TARGET_FLAGS) $(CFLAGS)
64 ifneq ($(ONLY_CBLAS), 1)
65         ./f_check$(SCRIPTSUFFIX) $(TARGET_MAKE) $(TARGET_CONF) $(FC) $(TARGET_FLAGS)
66 else
67 #When we only build CBLAS, we set NOFORTRAN=2
68         echo "NOFORTRAN=2" >> $(TARGET_MAKE)
69         echo "NO_FBLAS=1" >> $(TARGET_MAKE)
70         echo "F_COMPILER=GFORTRAN"  >> $(TARGET_MAKE)
71         echo "BU=_"  >> $(TARGET_MAKE)
72         echo "#define BUNDERSCORE _" >> $(TARGET_CONF)
73         echo "#define NEEDBUNDERSCORE 1" >> $(TARGET_CONF)
74 endif
75         ./getarch 0 >> $(TARGET_MAKE)
76         ./getarch 1 >> $(TARGET_CONF)
77
78
79 getarch : getarch.c cpuid.S dummy $(CPUIDEMU)
80         avx512=$$(./c_check$(SCRIPTSUFFIX) - - $(CC) $(TARGET_FLAGS) $(CFLAGS) | grep NO_AVX512); \
81         rv64gv=$$(./c_check$(SCRIPTSUFFIX) - - $(CC) $(TARGET_FLAGS) $(CFLAGS) | grep NO_RV64GV); \
82         $(HOSTCC) $(HOST_CFLAGS) $(EXFLAGS) $${avx512:+-D$${avx512}} $${rv64gv:+-D$${rv64gv}} -o $(@F) getarch.c cpuid.S $(CPUIDEMU)
83
84 getarch_2nd : getarch_2nd.c $(TARGET_CONF) dummy
85 ifndef TARGET_CORE
86         $(HOSTCC) -I. $(HOST_CFLAGS) -o $(@F) getarch_2nd.c
87 else
88         $(HOSTCC) -I. $(HOST_CFLAGS) -DBUILD_KERNEL -o $(@F) getarch_2nd.c
89 endif
90
91 dummy:
92
93 .PHONY: dummy