Makefile 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. .PHONY: all clean crt kernel library manager tests generate
  2. GENERATED_SOURCES = sdk/syscall_enum.h kernel/src/syscall_table.inl library/src/wrappers.c
  3. all: livecd.iso tests
  4. crt:
  5. $(MAKE) -C crt all
  6. kernel: generate crt
  7. $(MAKE) -C kernel all
  8. library: generate crt
  9. $(MAKE) -C library all
  10. manager: library
  11. $(MAKE) -C manager all
  12. tests:
  13. $(MAKE) -C tests all
  14. generate: $(GENERATED_SOURCES)
  15. sdk/syscall_enum.h: $(wildcard sdk/*.h) syscalls.awk
  16. @echo 'Generating system call sources/headers...'
  17. sort sdk/* | awk -v enum_file=sdk/syscall_enum.h -v table_file=kernel/src/syscall_table.inl -v wrappers_file=library/src/wrappers.c -f syscalls.awk
  18. kernel/src/syscall_table.inl: sdk/syscall_enum.h
  19. library/src/wrappers.c: sdk/syscall_enum.h
  20. livecd.iso: kernel library manager
  21. mkdir -p livecd/boot/grub
  22. cp kernel/monolithium livecd/boot/monolithium
  23. cp manager/manager livecd/manager
  24. cp grub.cfg livecd/boot/grub/grub.cfg
  25. grub-mkrescue -o $@ livecd
  26. clean:
  27. $(MAKE) -C crt clean
  28. $(MAKE) -C kernel clean
  29. $(MAKE) -C library clean
  30. $(MAKE) -C manager clean
  31. $(MAKE) -C tests clean
  32. rm -f $(GENERATED_SOURCES) livecd.iso