Makefile 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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/riscv64gc-unknown-none-elf.json
  9. else ifeq ($(ARCH), loongarch64)
  10. export TARGET_JSON=arch/loongarch64/loongarch64-unknown-none.json
  11. else
  12. $(error "Unsupported ARCH: $(ARCH)")
  13. endif
  14. export CARGO_ZBUILD=-Z build-std=core,alloc,compiler_builtins -Z build-std-features=compiler-builtins-mem
  15. .PHONY: ECHO
  16. ECHO:
  17. @echo "$@"
  18. all:
  19. $(MAKE) -C ../build-scripts all
  20. $(MAKE) -C src all ARCH=$(ARCH) || (sh -c "echo 内核编译失败" && exit 1)
  21. clean:
  22. $(MAKE) -C src clean ARCH=$(ARCH)
  23. .PHONY: fmt
  24. fmt:
  25. RUSTFLAGS="$(RUSTFLAGS)" cargo fmt --all $(FMT_CHECK)
  26. ifeq ($(ARCH), x86_64)
  27. RUSTFLAGS="$(RUSTFLAGS)" cargo +nightly-2024-11-05 clippy --all-features --target x86_64-unknown-none
  28. endif
  29. .PHONY: check
  30. check: ECHO
  31. $(MAKE) -C src check ARCH=$(ARCH)
  32. test:
  33. # 测试内核库
  34. RUSTFLAGS="$(RUSTFLAGS)" cargo +nightly-2024-11-05 test --workspace --exclude dragonos_kernel rbpf
  35. test-rbpf:
  36. cd crates/rbpf && RUSTFLAGS="$(RUSTFLAGS)" cargo +nightly-2024-11-05 test --features=std,user,cranelift