46 lines
1.1 KiB
Makefile
46 lines
1.1 KiB
Makefile
ifeq ($(BUILDROOT),)
|
|
$(error BUILDROOT IS NOT SET!)
|
|
endif
|
|
|
|
TARGET := x86_64-elf
|
|
KERNELMAKE := TARGET=${TARGET} $(MAKE) -C src/kernel
|
|
LIBMAKE := 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)
|
|
|
|
dist: $(DIST)
|
|
|
|
$(DIST): $(SYS_ITEMS)
|
|
$(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
|
|
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 -sqC src/libmittos install || echo 1), 1)
|
|
$(LIBMAKE) install
|
|
endif
|
|
|
|
.PHONY: all dist sysroot FORCE
|
|
|
|
clean:
|
|
rm -rf $(DIST)
|
|
$(KERNELMAKE) clean
|
|
$(LIBMAKE) clean
|
|
|
|
distclean:
|
|
$(MAKE) clean
|
|
rm -rf $(SYSROOT)
|