Makefile 857 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. mkdir -p bin/tmp/
  14. @list='$(SUBDIRS)'; for subdir in $$list; do \
  15. echo "make all in $$subdir";\
  16. cd $$subdir;\
  17. $(MAKE) all;\
  18. cd ..;\
  19. done
  20. .PHONY: user
  21. user:
  22. mkdir -p bin/user/
  23. mkdir -p bin/tmp/
  24. @list='./user'; for subdir in $$list; do \
  25. echo "make all in $$subdir";\
  26. cd $$subdir;\
  27. $(MAKE) all;\
  28. cd ..;\
  29. done
  30. .PHONY: clean
  31. clean:
  32. @list='$(SUBDIRS)'; for subdir in $$list; do \
  33. echo "Clean in dir: $$subdir";\
  34. cd $$subdir && $(MAKE) clean;\
  35. cd .. ;\
  36. done
  37. gdb:
  38. gdb -n -x tools/.gdbinit