Makefile 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # 导入环境变量
  2. include ../env.mk
  3. export ARCH ?= x86_64
  4. # 如果是x86_64, 则使用x86_64-unknown-none.json作为target
  5. ifeq ($(ARCH), x86_64)
  6. export TARGET_JSON=arch/x86_64/x86_64-unknown-none.json
  7. else ifeq ($(ARCH), riscv64)
  8. export TARGET_JSON=arch/riscv64/riscv64imac-unknown-none-elf.json
  9. endif
  10. export CARGO_ZBUILD=-Z build-std=core,alloc,compiler_builtins -Z build-std-features=compiler-builtins-mem
  11. .PHONY: ECHO
  12. ECHO:
  13. @echo "$@"
  14. all:
  15. @if [ -z $$DragonOS_GCC ]; then echo "\033[31m [错误]尚未安装DragonOS交叉编译器, 请使用tools文件夹下的build_gcc_toolchain.sh脚本安装 \033[0m"; exit 1; fi
  16. $(MAKE) -C src all ARCH=$(ARCH) || (sh -c "echo 内核编译失败" && exit 1)
  17. clean:
  18. rm -f Cargo.lock
  19. $(MAKE) -C src clean ARCH=$(ARCH)
  20. .PHONY: fmt
  21. fmt:
  22. cargo fmt --all $(FMT_CHECK)
  23. .PHONY: check
  24. check: ECHO
  25. # @echo "Checking kernel... ARCH=$(ARCH)"
  26. # @exit 1
  27. ifeq ($(ARCH), x86_64)
  28. @cargo +nightly-2023-08-15 check --workspace $(CARGO_ZBUILD) --message-format=json --target ./src/$(TARGET_JSON)
  29. else ifeq ($(ARCH), riscv64)
  30. @cargo +nightly-2023-08-15 check --workspace $(CARGO_ZBUILD) --message-format=json --target ./src/$(TARGET_JSON)
  31. endif