2013-01-21 04:53:52 +08:00
|
|
|
# This is triggered by Makefile.system and runs before any of the code is built.
|
|
|
|
|
|
2011-01-24 22:54:24 +08:00
|
|
|
export BINARY
|
|
|
|
|
export USE_OPENMP
|
|
|
|
|
|
2022-01-09 06:50:34 +08:00
|
|
|
ifdef DYNAMIC_ARCH
|
|
|
|
|
override HOST_CFLAGS += -DDYNAMIC_ARCH
|
|
|
|
|
endif
|
|
|
|
|
|
2011-01-24 22:54:24 +08:00
|
|
|
ifdef TARGET_CORE
|
|
|
|
|
TARGET_MAKE = Makefile_kernel.conf
|
|
|
|
|
TARGET_CONF = config_kernel.h
|
|
|
|
|
else
|
|
|
|
|
TARGET_MAKE = Makefile.conf
|
|
|
|
|
TARGET_CONF = config.h
|
|
|
|
|
endif
|
|
|
|
|
|
2022-05-23 00:27:02 +08:00
|
|
|
ifdef USE_PERL
|
|
|
|
|
SCRIPTSUFFIX = .pl
|
|
|
|
|
else
|
|
|
|
|
SCRIPTSUFFIX =
|
|
|
|
|
endif
|
|
|
|
|
|
2011-01-24 22:54:24 +08:00
|
|
|
# CPUIDEMU = ../../cpuid/table.o
|
|
|
|
|
|
|
|
|
|
ifdef CPUIDEMU
|
|
|
|
|
EXFLAGS = -DCPUIDEMU -DVENDOR=99
|
|
|
|
|
endif
|
|
|
|
|
|
2020-04-19 12:50:51 +08:00
|
|
|
ifeq ($(TARGET), MIPS24K)
|
|
|
|
|
TARGET_FLAGS = -mips32r2
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifeq ($(TARGET), MIPS1004K)
|
2018-05-03 02:17:26 +08:00
|
|
|
TARGET_FLAGS = -mips32r2
|
|
|
|
|
endif
|
|
|
|
|
|
2016-08-08 14:28:01 +08:00
|
|
|
ifeq ($(TARGET), P5600)
|
|
|
|
|
TARGET_FLAGS = -mips32r5
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifeq ($(TARGET), I6400)
|
|
|
|
|
TARGET_FLAGS = -mips64r6
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifeq ($(TARGET), P6600)
|
|
|
|
|
TARGET_FLAGS = -mips64r6
|
|
|
|
|
endif
|
|
|
|
|
|
2017-09-22 14:27:43 +08:00
|
|
|
ifeq ($(TARGET), I6500)
|
|
|
|
|
TARGET_FLAGS = -mips64r6
|
|
|
|
|
endif
|
|
|
|
|
|
2020-10-15 16:05:37 +08:00
|
|
|
ifeq ($(TARGET), C910V)
|
2022-02-28 20:33:11 +08:00
|
|
|
TARGET_FLAGS = -march=rv64gcv0p7_zfh_xtheadc -mabi=lp64d
|
2020-10-15 16:05:37 +08:00
|
|
|
endif
|
|
|
|
|
|
2024-01-16 23:45:06 +08:00
|
|
|
ifeq ($(TARGET), CK860FV)
|
|
|
|
|
TARGET_FLAGS = -march=ck860v -mcpu=ck860fv -mfdivdu -mhard-float
|
2024-02-01 18:26:02 +08:00
|
|
|
endif
|
2024-01-29 19:11:39 +08:00
|
|
|
|
2022-11-15 16:06:25 +08:00
|
|
|
ifeq ($(TARGET), x280)
|
2022-11-29 13:42:29 +08:00
|
|
|
TARGET_FLAGS = -march=rv64imafdcv_zba_zbb_zfh -mabi=lp64d
|
2022-11-15 16:06:25 +08:00
|
|
|
endif
|
|
|
|
|
|
2023-04-07 16:13:23 +08:00
|
|
|
ifeq ($(TARGET), RISCV64_ZVL256B)
|
2025-08-27 18:15:09 +08:00
|
|
|
TARGET_FLAGS = -march=rv64imafdcv -mabi=lp64d
|
2023-04-07 16:13:23 +08:00
|
|
|
endif
|
|
|
|
|
|
2023-12-04 19:02:18 +08:00
|
|
|
ifeq ($(TARGET), RISCV64_ZVL128B)
|
2025-08-27 18:15:09 +08:00
|
|
|
TARGET_FLAGS = -march=rv64imafdcv -mabi=lp64d
|
2023-12-04 19:02:18 +08:00
|
|
|
endif
|
|
|
|
|
|
2022-11-15 16:06:25 +08:00
|
|
|
ifeq ($(TARGET), RISCV64_GENERIC)
|
|
|
|
|
TARGET_FLAGS = -march=rv64imafdc -mabi=lp64d
|
2024-01-16 23:45:06 +08:00
|
|
|
endif
|
|
|
|
|
|
2013-08-28 22:52:24 +08:00
|
|
|
all: getarch_2nd
|
2011-01-24 22:54:24 +08:00
|
|
|
./getarch_2nd 0 >> $(TARGET_MAKE)
|
|
|
|
|
./getarch_2nd 1 >> $(TARGET_CONF)
|
|
|
|
|
|
2022-05-23 00:27:02 +08:00
|
|
|
$(TARGET_CONF): c_check$(SCRIPTSUFFIX) f_check$(SCRIPTSUFFIX) getarch
|
2022-09-07 15:01:03 +08:00
|
|
|
./c_check$(SCRIPTSUFFIX) $(TARGET_MAKE) $(TARGET_CONF) "$(CC)" $(TARGET_FLAGS) $(CFLAGS)
|
2013-08-21 00:03:25 +08:00
|
|
|
ifneq ($(ONLY_CBLAS), 1)
|
2022-09-07 15:01:03 +08:00
|
|
|
./f_check$(SCRIPTSUFFIX) $(TARGET_MAKE) $(TARGET_CONF) "$(FC)" $(TARGET_FLAGS)
|
2013-08-21 00:03:25 +08:00
|
|
|
else
|
|
|
|
|
#When we only build CBLAS, we set NOFORTRAN=2
|
|
|
|
|
echo "NOFORTRAN=2" >> $(TARGET_MAKE)
|
|
|
|
|
echo "NO_FBLAS=1" >> $(TARGET_MAKE)
|
|
|
|
|
echo "F_COMPILER=GFORTRAN" >> $(TARGET_MAKE)
|
|
|
|
|
echo "BU=_" >> $(TARGET_MAKE)
|
|
|
|
|
echo "#define BUNDERSCORE _" >> $(TARGET_CONF)
|
|
|
|
|
echo "#define NEEDBUNDERSCORE 1" >> $(TARGET_CONF)
|
|
|
|
|
endif
|
2011-01-24 22:54:24 +08:00
|
|
|
./getarch 0 >> $(TARGET_MAKE)
|
|
|
|
|
./getarch 1 >> $(TARGET_CONF)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
getarch : getarch.c cpuid.S dummy $(CPUIDEMU)
|
2022-09-07 15:01:03 +08:00
|
|
|
avx512=$$(./c_check$(SCRIPTSUFFIX) - - "$(CC)" $(TARGET_FLAGS) $(CFLAGS) | grep NO_AVX512); \
|
|
|
|
|
rv64gv=$$(./c_check$(SCRIPTSUFFIX) - - "$(CC)" $(TARGET_FLAGS) $(CFLAGS) | grep NO_RV64GV); \
|
2022-05-04 05:29:55 +08:00
|
|
|
$(HOSTCC) $(HOST_CFLAGS) $(EXFLAGS) $${avx512:+-D$${avx512}} $${rv64gv:+-D$${rv64gv}} -o $(@F) getarch.c cpuid.S $(CPUIDEMU)
|
2011-01-24 22:54:24 +08:00
|
|
|
|
2022-03-21 18:16:49 +08:00
|
|
|
getarch_2nd : getarch_2nd.c $(TARGET_CONF) dummy
|
2011-01-24 22:54:24 +08:00
|
|
|
ifndef TARGET_CORE
|
2020-02-17 05:11:40 +08:00
|
|
|
$(HOSTCC) -I. $(HOST_CFLAGS) -o $(@F) getarch_2nd.c
|
2011-01-24 22:54:24 +08:00
|
|
|
else
|
2020-02-17 05:11:40 +08:00
|
|
|
$(HOSTCC) -I. $(HOST_CFLAGS) -DBUILD_KERNEL -o $(@F) getarch_2nd.c
|
2011-01-24 22:54:24 +08:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
dummy:
|
2022-03-21 18:16:49 +08:00
|
|
|
|
|
|
|
|
.PHONY: dummy
|