initial commit
[armsys] / Makefile
1 csrc = $(wildcard src/boot/*.c) $(wildcard src/*.c) $(wildcard src/klibc/*.c)
2 asmsrc = $(wildcard src/boot/*.S) $(wildcard src/*.S) $(wildcard src/klibc/*.S)
3 dep = $(asmsrc:.S=.d) $(csrc:.c=.d)
4 obj = $(asmsrc:.S=.o) $(csrc:.c=.o)
5
6 inc = -Isrc -Isrc/klibc -Isrc/boot -Iinclude
7
8 CFLAGS = $(ccemu) -Wall -g -nostdinc -fno-builtin $(inc) -DKERNEL
9 ASFLAGS = $(ccemu) -g -nostdinc -fno-builtin $(inc)
10
11 bin = kernel.elf
12
13 $(bin): $(obj)
14         ld $(ldemu) -o $@ -Ttext 0x8000 -e kentry $(obj) -Map link.map
15
16 %.s: %.c
17         $(CC) $(CFLAGS) -S -o $@ $<
18
19 -include $(dep)
20
21 %.d: %.c
22         @$(CPP) $(CFLAGS) -MM -MT $(@:.d=.o) $< >$@
23
24 %.d: %.S
25         @$(CPP) $(ASFLAGS) -MM -MT $(@:.d=.o) $< >$@
26
27 .PHONY: clean
28 clean:
29         rm -f $(obj) $(bin)
30
31 .PHONY: cleandep
32 cleandep:
33         rm -f $(dep)