blob: ae7bbbaa37e02bf3da73af2f1b3dba71ca3d36ea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
# =====================================================================
# spdx-license-identifier: ISC
# glitch kernel binary and image generation
# =====================================================================
include Makefile.config
LDFLAGS += -T ${ARCH}/linker.ld
TARGETS += glitch.elf
include rules.mk
.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
|