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