2024-03-25 13:04:53 +08:00
|
|
|
include ../env.mk
|
|
|
|
|
|
|
|
|
|
# 设置编译器
|
2025-12-26 18:36:13 +08:00
|
|
|
ifeq ($(USING_DRAGONOS_NIX_ENV),1) # Nix toolchain doesn't need to specify the prefix
|
|
|
|
|
CCPREFIX=
|
|
|
|
|
else ifeq ($(ARCH), x86_64)
|
2024-10-10 00:59:50 +08:00
|
|
|
CCPREFIX=x86_64-linux-gnu-
|
2024-03-25 13:04:53 +08:00
|
|
|
else ifeq ($(ARCH), riscv64)
|
2024-10-10 00:59:50 +08:00
|
|
|
CCPREFIX=riscv64-linux-gnu-
|
2025-04-20 18:51:45 +08:00
|
|
|
else ifeq ($(ARCH), loongarch64)
|
|
|
|
|
CCPREFIX=loongarch64-unknown-linux-gnu-
|
|
|
|
|
else
|
|
|
|
|
$(error "Unsupported ARCH: $(ARCH)")
|
2024-03-25 13:04:53 +08:00
|
|
|
endif
|
|
|
|
|
|
2024-10-10 00:59:50 +08:00
|
|
|
export CC=$(CCPREFIX)gcc
|
|
|
|
|
export LD=$(CCPREFIX)ld
|
|
|
|
|
export AS=$(CCPREFIX)as
|
|
|
|
|
export NM=$(CCPREFIX)nm
|
|
|
|
|
export AR=$(CCPREFIX)ar
|
|
|
|
|
export OBJCOPY=$(CCPREFIX)objcopy
|
2024-03-25 13:04:53 +08:00
|
|
|
|
|
|
|
|
export DEBUG=DEBUG
|
|
|
|
|
|
|
|
|
|
export CFLAGS_DEFINE_ARCH="__$(ARCH)__"
|
|
|
|
|
|
|
|
|
|
export GLOBAL_CFLAGS := -fno-builtin -fno-stack-protector -D $(CFLAGS_DEFINE_ARCH) -D $(EMULATOR) -O1
|
|
|
|
|
|
|
|
|
|
ifeq ($(ARCH), x86_64)
|
|
|
|
|
GLOBAL_CFLAGS += -mcmodel=large -m64
|
|
|
|
|
else ifeq ($(ARCH), riscv64)
|
2024-04-06 22:13:26 +08:00
|
|
|
GLOBAL_CFLAGS += -mcmodel=medany -march=rv64gc -mabi=lp64d
|
2025-04-20 18:51:45 +08:00
|
|
|
else ifeq ($(ARCH), loongarch64)
|
|
|
|
|
GLOBAL_CFLAGS += -mcmodel=large -march=loongarch64
|
2024-03-25 13:04:53 +08:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifeq ($(DEBUG), DEBUG)
|
2025-12-26 18:36:13 +08:00
|
|
|
GLOBAL_CFLAGS += -g
|
2024-03-25 13:04:53 +08:00
|
|
|
endif
|
2024-07-27 17:34:05 +08:00
|
|
|
|
|
|
|
|
export RUSTFLAGS := -C link-args=-znostart-stop-gc
|
2025-03-27 20:48:40 +08:00
|
|
|
export RUSTDOCFLAGS := -C link-args=-znostart-stop-gc
|