reorg done
[eightysix] / kern / Makefile
1 csrc = $(wildcard src/*.c)
2 ssrc = $(wildcard src/*.asm)
3 obj = $(csrc:.c=.o) $(ssrc:.asm=.o)
4 dep = $(csrc:.c=.d)
5
6 disk_numsec = 720
7 #disk_numsec = 2880
8
9 bin = 86kern
10 img = 86kern.img
11
12 CC = ia16-elf-gcc
13 LD = ia16-elf-ld
14
15 CFLAGS = -march=i8088 -mtune=i8088 -MMD
16
17 $(img): $(bin)
18         dd if=/dev/zero of=$@ bs=512 count=$(disk_numsec)
19         dd if=$< of=$@ bs=512 conv=notrunc
20
21 $(bin): $(obj)
22         $(LD) -T kern.ld -Map kern.map -o $@ $(obj)
23
24 -include $(dep)
25
26 %.o: %.asm
27         nasm -o $@ -f elf $<
28
29 .PHONY: clean
30 clean:
31         rm -f $(obj) $(bin)
32
33 .PHONY: cleandep
34 cleandep:
35         rm -f $(dep)
36
37
38 .PHONY: run
39 run: $(img)
40         qemu-system-i386 -fda $(img) -serial file:serial.log
41
42 .PHONY: debug
43 debug: $(img)
44         qemu-system-i386 -fda $(img) -serial file:serial.log -s -S
45
46 .PHONY: disasm
47 disasm: $(bin)
48         ndisasm -o 0x7c00 $< >dis1
49         ndisasm -o 0x98000 -e 512 $< >dis2