Build chain tweaks and cleanup

This commit is contained in:
2022-01-11 18:12:57 +01:00
parent 6c36d3dd40
commit fc54366eec
5 changed files with 36 additions and 26 deletions

View File

@@ -3,25 +3,26 @@ $(error BUILDROOT IS NOT SET!)
endif
TARGET := x86_64-elf
KERNELMAKE := TARGET=${TARGET} $(MAKE) -C src/kernel
LIBMAKE := TARGET=${TARGET} $(MAKE) -C src/libmittos
MAKE.kernel := TARGET=${TARGET} $(MAKE) -C src/kernel
MAKE.libmittos := 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)
all: kernel
dist: $(DIST)
$(DIST): $(SYS_ITEMS)
$(DIST): kernel
$(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
$(SYSROOT)/kernel: musllib libmittos FORCE
ifeq ($(shell $(MAKE.kernel) -sq install || echo 1), 1)
$(MAKE.kernel) install
endif
musllib: $(SYSROOT)/usr/lib/libc.a
@@ -30,17 +31,18 @@ $(SYSROOT)/usr/lib/libc.a:
libmittos: $(SYSROOT)/usr/lib/libmittos.a
$(SYSROOT)/usr/lib/libmittos.a: FORCE
ifeq ($(shell make -sqC src/libmittos install || echo 1), 1)
$(LIBMAKE) install
ifeq ($(shell $(MAKE.libmittos) -sq install || echo 1), 1)
$(MAKE.libmittos) install
endif
.PHONY: all dist sysroot FORCE
clean:
rm -rf $(DIST)
$(KERNELMAKE) clean
$(LIBMAKE) clean
$(MAKE.kernel) clean
$(MAKE.libmittos) clean
distclean:
$(MAKE) clean
rm -rf $(SYSROOT)
rm -rf $(SYSROOT)
.PHONY: all dist sysroot FORCE