1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- .PHONY: all clean kernel drivers libraries programs tests generate
- TOOLSDIR := tools
- TOOLSROOTDIR := root
- PROJECT_ROOT := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
- export PATH := $(PROJECT_ROOT)/$(TOOLSDIR)/$(TOOLSROOTDIR)/bin:$(PATH)
- GENERATED_SOURCES := sdk/syscall_enum.h kernel/src/syscall_table.inl libraries/mlsys/src/wrappers.c
- all: livecd.iso tests
- kernel: generate libraries
- $(MAKE) -C kernel all
- drivers: kernel
- $(MAKE) -C drivers all
- libraries: generate
- $(MAKE) -C libraries all
- programs: libraries
- $(MAKE) -C programs all
- tests:
- $(MAKE) -C tests all
- generate: $(GENERATED_SOURCES)
- sdk/syscall_enum.h: $(wildcard sdk/*.h) syscalls.awk
- @echo 'Generating system call sources/headers...'
- sort sdk/* | awk -v enum_file=sdk/syscall_enum.h -v table_file=kernel/src/syscall_table.inl -v wrappers_file=libraries/mlsys/src/wrappers.c -f syscalls.awk
- kernel/src/syscall_table.inl: sdk/syscall_enum.h
- libraries/mlsys/src/wrappers.c: sdk/syscall_enum.h
- livecd.iso : kernel drivers libraries programs
- mkdir -p livecd/monolithium livecd/boot/grub livecd/monolithium/drivers
- cp kernel/monolithium livecd/monolithium/kernel
- cp drivers/bin/* livecd/monolithium/drivers/
- cp programs/bin/* livecd/monolithium/
- cp grub.cfg livecd/boot/grub/grub.cfg
- grub-mkrescue -o $@ livecd
- clean:
- $(MAKE) -C kernel clean
- $(MAKE) -C drivers clean
- $(MAKE) -C libraries clean
- $(MAKE) -C programs clean
- $(MAKE) -C tests clean
- rm -f $(GENERATED_SOURCES) livecd.iso
|