Makefile 634 B

123456789101112131415161718192021222324252627282930313233343536
  1. SUBDIRS = kernel user
  2. export ARCH=x86_64
  3. export ROOT_PATH=$(shell pwd)
  4. export DEBUG=DEBUG
  5. export GLOBAL_CFLAGS := -mcmodel=large -fno-builtin -m64 -O0 -fno-stack-protector -D $(ARCH)
  6. ifeq ($(DEBUG), DEBUG)
  7. GLOBAL_CFLAGS += -g
  8. endif
  9. .PHONY: all
  10. all:
  11. mkdir -p bin/kernel/
  12. mkdir -p bin/user/
  13. @list='$(SUBDIRS)'; for subdir in $$list; do \
  14. echo "make all in $$subdir";\
  15. cd $$subdir;\
  16. $(MAKE) all;\
  17. cd ..;\
  18. done
  19. .PHONY: clean
  20. clean:
  21. @list='$(SUBDIRS)'; for subdir in $$list; do \
  22. echo "Clean in dir: $$subdir";\
  23. cd $$subdir && $(MAKE) clean;\
  24. cd .. ;\
  25. done
  26. gdb:
  27. gdb -n -x tools/.gdbinit