49 lines
967 B
Makefile
49 lines
967 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
|
|
$(MAKE) $(MAKECMDGOALS)
|
|
endif
|
|
|
|
|
|
clean:
|
|
rm -rf $(DIST)
|
|
$(MAKE.kernel) clean
|
|
$(MAKE.libmittos) clean
|
|
|
|
distclean:
|
|
$(MAKE) clean
|
|
rm -rf $(SYSROOT)
|
|
|
|
.PHONY: all dist sysroot FORCE |