aboutsummaryrefslogtreecommitdiff
path: root/Makefile.all
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile.all')
-rw-r--r--Makefile.all59
1 files changed, 59 insertions, 0 deletions
diff --git a/Makefile.all b/Makefile.all
new file mode 100644
index 0000000..efd7386
--- /dev/null
+++ b/Makefile.all
@@ -0,0 +1,59 @@
+# =====================================================================
+# spdx-license-identifier: ISC
+# glitch kernel binary and image generation
+# =====================================================================
+
+include Makefile.config
+
+LDFLAGS += -T ${ARCH}/linker.ld
+
+all: glitch.elf
+ @echo "built $^"
+
+.PHONY: run info
+run: glitch.iso
+ @${QEMU} -cdrom $^ -d cpu_reset -display gtk,zoom-to-fit=on
+
+info:
+ @echo "- target:"
+ @echo " ARCH: ${ARCH}"
+ @echo " CC: ${CC}"
+ @echo " CCID: ${CCID}"
+ @echo " CFLAGS: ${CFLAGS}"
+ @echo " CXX: ${CXX}"
+ @echo " CXXID: ${CXXID}"
+ @echo " CXXFLAGS: ${CXXFLAGS}"
+ @echo " LD: ${LD}"
+ @echo " LDID: ${LDID}"
+ @echo " LDFLAGS: ${LDFLAGS}"
+ @echo "- test:"
+ @echo " CXX: ${TEST_CXX}"
+ @echo " CXXFLAGS: ${TEST_CXXFLAGS}"
+ @echo " QEMU: ${QEMU}"
+
+# build targets
+glitch.elf: ${ARCH}/arch.a src/kernel.a devices/devs.a lib/libk.a
+
+glitch.iso: glitch.elf grub/grub.cfg
+ @grub-file --is-x86-multiboot2 glitch.elf
+ @mkdir -p isodir/boot/grub
+ @mkdir -p isodir/boot/glitch
+ @grub-script-check grub/grub.cfg
+ @cp grub/grub.cfg isodir/boot/grub/grub.cfg
+ @cp glitch.elf isodir/boot/glitch/glitch.elf
+ @i686-elf-strip isodir/boot/glitch/glitch.elf
+ @rm -f isodir/boot/glitch/checksums
+ @sha512sum isodir/boot/glitch/* > isodir/boot/glitch/checksums
+ @sed -i s/isodir// isodir/boot/glitch/checksums
+ @grub-mkrescue -o glitch.iso isodir
+
+lib/libk.a: FORCE
+ @${MAKE} -C lib libk.a
+i686/arch.a: FORCE
+ @${MAKE} -C ${ARCH} arch.a
+devices/devs.a: FORCE
+ @${MAKE} -C devices devs.a
+src/kernel.a: FORCE
+ @${MAKE} -C src kernel.a
+
+include rules.mk