Makefile 939 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. SUBDIRS = kernel user
  2. # ifndef $(EMULATOR)
  3. ifeq ($(EMULATOR), )
  4. export EMULATOR=__NO_EMULATION__
  5. endif
  6. export ARCH=__x86_64__
  7. export ROOT_PATH=$(shell pwd)
  8. export DEBUG=DEBUG
  9. export GLOBAL_CFLAGS := -mcmodel=large -fno-builtin -m64 -fno-stack-protector -D $(ARCH) -D $(EMULATOR) -O1
  10. ifeq ($(DEBUG), DEBUG)
  11. GLOBAL_CFLAGS += -g
  12. endif
  13. .PHONY: all
  14. all: kernel user
  15. .PHONY: kernel
  16. kernel:
  17. mkdir -p bin/kernel/
  18. @list='./kernel'; for subdir in $$list; do \
  19. echo "make all in $$subdir";\
  20. cd $$subdir;\
  21. $(MAKE) all;\
  22. cd ..;\
  23. done
  24. .PHONY: user
  25. user:
  26. mkdir -p bin/user/
  27. mkdir -p bin/tmp/
  28. @list='./user'; for subdir in $$list; do \
  29. echo "make all in $$subdir";\
  30. cd $$subdir;\
  31. $(MAKE) all;\
  32. cd ..;\
  33. done
  34. .PHONY: clean
  35. clean:
  36. @list='$(SUBDIRS)'; for subdir in $$list; do \
  37. echo "Clean in dir: $$subdir";\
  38. cd $$subdir && $(MAKE) clean;\
  39. cd .. ;\
  40. done
  41. gdb:
  42. gdb -n -x tools/.gdbinit