reorganize source
[com32] / Makefile
1 csrc = $(wildcard src/*.c) $(wildcard src/kern/*.c) $(wildcard src/libc/*.c)
2 ssrc = $(wildcard src/*.asm) $(wildcard src/kern/*.asm) $(wildcard src/libc/*.asm)
3 obj = $(csrc:.c=.o) $(ssrc:.asm=.o)
4 dep = $(csrc:.c=.d)
5 bin = test.com
6
7 warn = -pedantic -Wall
8 opt = -O2
9 inc = -Isrc -Isrc/kern -Isrc/libc
10
11 AS = nasm
12
13 ASFLAGS = -Isrc/ -Isrc/kern/
14 CFLAGS = -m32 -march=i386 $(warn) $(opt) $(dbg) -fno-pic -ffreestanding \
15                  -fno-stack-protector -mpreferred-stack-boundary=2 -nostdinc -ffast-math \
16                  -fno-asynchronous-unwind-tables $(inc) $(def) -MMD
17 LDFLAGS = -m elf_i386 -nostdlib -T com32.ld -Map test.map
18
19 $(bin): $(obj)
20         $(LD) -o $@ $(obj) $(LDFLAGS)
21
22 -include $(dep)
23
24 %.o: %.asm
25         $(AS) -o $@ -f elf $(ASFLAGS) $<
26
27 %.s: %.c
28         $(CC) $(CFLAGS) -masm=intel -S $< -o $@
29
30 .PHONY: clean
31 clean:
32         rm -f $(obj) $(bin)
33
34 .PHONY: cleandep
35 cleandep:
36         rm -f $(dep)
37
38 disasm: $(bin)
39         ndisasm -o 0x100 -b 16 $< >$@