aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: e0dba8f849c714ade21e3188cfdbc92e2fecc935 (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
MAKE   = make
ARCH   = i686
include ${ARCH}/toolchain.mk

info:
	@echo "this is the all target"
	@echo "ARCH    ${ARCH}"
	@echo "BUILD   ${BUILD}"
	@echo "  MAKE  ${MAKE}"
	@${MAKE} --version | head -n1
	@echo "  CC    ${CC} ${CCFLAGS}"
	@${CC} --version | head -n1
	@echo "  LD    ${LD} ${LDFLAGS}"
	@${LD} --version | head -n1

all: lib/libk.a ${ARCH}/arch.a devices/devs.a src/kernel.a

lib/libk.a:
	${MAKE} ARCH=${ARCH} -C lib libk.a
i686/arch.a:
	${MAKE} ARCH=${ARCH} -C i686 arch.a
devices/devs.a:
	${MAKE} ARCH=${ARCH} -C devices devs.a
src/kernel.a:
	${MAKE} ARCH=${ARCH} -C src kernel.a

glitch.elf: ${ARCH}/arch.a devices/devs.a lib/libk.a src/kernel.a
	${LD} ${LDFLAGS} -T ${ARCH}/linker.ld -o $@\
		$(wildcard i686/*.o) \
		src/kernel.a \
		-Llib -lk devices/devs.a

glitch.iso: glitch.elf grub/grub.cfg
	mkdir -p isodir/boot/grub
	mkdir -p isodir/boot/glitch
	cp grub/grub.cfg isodir/boot/grub/grub.cfg
	cp glitch.elf isodir/boot/glitch/glitch.elf
	grub-mkrescue -o glitch.iso isodir

run: glitch.iso
	qemu-system-i386 -cdrom glitch.iso -accel kvm

clean:
	${MAKE} ARCH=${ARCH} -C lib clean
	${MAKE} ARCH=${ARCH} -C ${ARCH} clean
	${MAKE} ARCH=${ARCH} -C devices clean
	${MAKE} ARCH=${ARCH} -C src clean
purge: clean
	rm -f lib/libk.a ${ARCH}/arch.a devices/devs.a src/kernel.a
	rm -rf isodir