2023-11-25 04:07:39 +00:00
|
|
|
# 导入环境变量
|
2024-03-25 05:04:53 +00:00
|
|
|
include ./env.mk
|
2023-11-25 04:07:39 +00:00
|
|
|
|
2025-12-26 10:36:13 +00:00
|
|
|
# Nix environment doesn't support rustup-style toolchain selection
|
|
|
|
|
ifeq ($(USING_DRAGONOS_NIX_ENV),1)
|
|
|
|
|
export TOOLCHAIN =
|
|
|
|
|
else
|
|
|
|
|
export TOOLCHAIN := +nightly-2025-08-10
|
|
|
|
|
endif
|
|
|
|
|
|
2024-03-25 05:04:53 +00:00
|
|
|
# export ARCH ?= x86_64
|
2023-11-25 04:07:39 +00:00
|
|
|
# 如果是x86_64, 则使用x86_64-unknown-none.json作为target
|
|
|
|
|
ifeq ($(ARCH), x86_64)
|
|
|
|
|
export TARGET_JSON=arch/x86_64/x86_64-unknown-none.json
|
|
|
|
|
else ifeq ($(ARCH), riscv64)
|
2024-11-19 13:55:22 +00:00
|
|
|
export TARGET_JSON=arch/riscv64/riscv64gc-unknown-none-elf.json
|
2025-04-20 10:51:45 +00:00
|
|
|
else ifeq ($(ARCH), loongarch64)
|
|
|
|
|
export TARGET_JSON=arch/loongarch64/loongarch64-unknown-none.json
|
|
|
|
|
else
|
|
|
|
|
$(error "Unsupported ARCH: $(ARCH)")
|
2023-11-25 04:07:39 +00:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
export CARGO_ZBUILD=-Z build-std=core,alloc,compiler_builtins -Z build-std-features=compiler-builtins-mem
|
|
|
|
|
|
|
|
|
|
.PHONY: ECHO
|
|
|
|
|
ECHO:
|
|
|
|
|
@echo "$@"
|
2022-01-21 05:49:09 +00:00
|
|
|
|
2025-12-26 10:36:13 +00:00
|
|
|
all:
|
2025-04-14 01:56:14 +00:00
|
|
|
$(MAKE) -C ../build-scripts all
|
2023-11-25 04:07:39 +00:00
|
|
|
$(MAKE) -C src all ARCH=$(ARCH) || (sh -c "echo 内核编译失败" && exit 1)
|
2025-12-26 10:36:13 +00:00
|
|
|
|
2022-05-18 10:27:00 +00:00
|
|
|
|
2022-11-11 07:35:37 +00:00
|
|
|
clean:
|
2023-11-25 04:07:39 +00:00
|
|
|
$(MAKE) -C src clean ARCH=$(ARCH)
|
2023-08-26 13:36:13 +00:00
|
|
|
|
|
|
|
|
.PHONY: fmt
|
|
|
|
|
fmt:
|
2024-07-27 09:34:05 +00:00
|
|
|
RUSTFLAGS="$(RUSTFLAGS)" cargo fmt --all $(FMT_CHECK)
|
2024-03-23 03:51:30 +00:00
|
|
|
ifeq ($(ARCH), x86_64)
|
2025-12-26 10:36:13 +00:00
|
|
|
RUSTFLAGS="$(RUSTFLAGS)" cargo $(TOOLCHAIN) clippy -Zbuild-std=core,alloc,compiler_builtins --all-features --target x86_64-unknown-none
|
2024-03-23 03:51:30 +00:00
|
|
|
endif
|
|
|
|
|
|
2023-11-07 12:32:06 +00:00
|
|
|
|
2023-11-25 04:07:39 +00:00
|
|
|
.PHONY: check
|
|
|
|
|
check: ECHO
|
2024-11-25 08:28:05 +00:00
|
|
|
$(MAKE) -C src check ARCH=$(ARCH)
|
2023-11-07 12:32:06 +00:00
|
|
|
|
2023-12-25 15:12:27 +00:00
|
|
|
test:
|
|
|
|
|
# 测试内核库
|
2025-12-26 10:36:13 +00:00
|
|
|
RUSTFLAGS="$(RUSTFLAGS)" cargo $(TOOLCHAIN) test --workspace --exclude dragonos_kernel
|