Build chain tweaks and cleanup
This commit is contained in:
32
Makefile
32
Makefile
@@ -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
|
||||
Reference in New Issue
Block a user