aboutsummaryrefslogtreecommitdiff
path: root/Makefile.all
blob: a92631f019fbf434b08d00fa3ce96aa27c7a465d (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
59
60
61
# =====================================================================
#  spdx-license-identifier: ISC
#  glitch kernel binary and image generation
# =====================================================================

include Makefile.config

${ARCH}_LDFLAGS += -T ${ARCH}/linker.ld

TARGETBIN += glitch
glitch.OBJS += ${ARCH}/arch.a src/kernel.a devices/devs.a lib/libk.a

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:        ${${ARCH}_CC}"
	@echo "    CCID:      ${${ARCH}_CCID}"
	@echo "    CFLAGS:    ${${ARCH}_CFLAGS}"
	@echo "    CXX:       ${${ARCH}_CXX}"
	@echo "    CXXID:     ${${ARCH}_CXXID}"
	@echo "    CXXFLAGS:  ${${ARCH}_CXXFLAGS}"
	@echo "    LD:        ${${ARCH}_LD}"
	@echo "    LDID:      ${${ARCH}_LDID}"
	@echo "    LDFLAGS:   ${${ARCH}_LDFLAGS}"
	@echo "- host:"
	@echo "    CC:        ${HOST_CC}"
	@echo "    CFLAGS:    ${HOST_CFLAGS}"
	@echo "    CXX:       ${HOST_CXX}"
	@echo "    CXXFLAGS:  ${HOST_CXXFLAGS}"
	@echo "    QEMU:      ${QEMU}"

# build targets

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