mittos65/Makefile

48 lines
942 B
Makefile

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:
toolchain/build-musl.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
endif
clean:
rm -rf $(DIST)
$(MAKE.kernel) clean
$(MAKE.libmittos) clean
distclean:
$(MAKE) clean
rm -rf $(SYSROOT)
.PHONY: all dist sysroot FORCE