ifeq ($(BUILDROOT),) $(error BUILDROOT IS NOT SET!) endif TARGET := x86_64-elf KERNELMAKE := TARGET=${TARGET} $(MAKE) -C src/kernel LIBMAKE := TARGET=${TARGET} $(MAKE) -C src/libmittos DIST := $(BUILDROOT)/mittos.iso SYSROOT := $(BUILDROOT)/sysroot SYS_ITEMS := $(SYSROOT)/kernel $(SYSROOT)/usr/lib/libc.a $(SYSROOT)/usr/lib/libmittos.a all: $(SYSROOT)/kernel $(SYS_ITEMS) dist: $(DIST) $(DIST): $(SYS_ITEMS) $(BUILDROOT)/toolchain/setup-grub.sh grub-mkrescue -o $@ $(SYSROOT) kernel: $(SYSROOT)/kernel $(SYSROOT)/kernel: $(SYSROOT)/usr/lib/libc.a $(SYSROOT)/usr/lib/libmittos.a FORCE ifeq ($(shell make -sqC src/kernel install || echo 1), 1) $(KERNELMAKE) install endif musllib: $(SYSROOT)/usr/lib/libc.a $(SYSROOT)/usr/lib/libc.a: toolchain/build-musl.sh libmittos: $(SYSROOT)/usr/lib/libmittos.a $(SYSROOT)/usr/lib/libmittos.a: FORCE ifeq ($(shell make -sqC src/libmittos install || echo 1), 1) $(LIBMAKE) install endif .PHONY: all dist sysroot FORCE clean: rm -rf $(DIST) $(KERNELMAKE) clean $(LIBMAKE) clean distclean: $(MAKE) clean rm -rf $(SYSROOT)