malloc/calloc/free and minimal allocator testing
[lugburz] / Makefile.amiga
1 src = $(wildcard src/*.c) \
2           $(wildcard src/amiga/*.c) \
3           $(wildcard src/amiga/libc/*.c)
4 asrc = $(wildcard src/*.s) \
5            $(wildcard src/amiga/*.s) \
6            $(wildcard src/amiga/libc/*.s)
7 obj = $(src:.c=.o) $(asrc:.s=.o) 
8 dep = $(src:.c=.d)
9
10 name = lugburz
11 elf = $(name).elf
12 bin = $(name).bin
13 adf = $(name).adf
14 bootblock = boot.bin
15
16 tool_prefix = m68k-elf-
17
18 CC = $(tool_prefix)gcc
19 AS = $(tool_prefix)as
20 LD = $(tool_prefix)gcc
21 OBJCOPY = $(tool_prefix)objcopy
22
23 inc = -Isrc -Isrc/amiga -Isrc/amiga/libc
24
25 ASFLAGS = -m68000 $(inc)
26 CFLAGS = -m68000 -ffreestanding -nostdinc -fno-builtin -pedantic -Wall -Os $(inc)
27 LDFLAGS = -m68000 -T amiga.ld -Wl,-print-gc-sections -Wl,-Map,link.map -ffreestanding \
28                   -nostdlib -lgcc
29
30 $(adf): $(bin) $(bootblock)
31         tools/mk_adf.py $(bootblock) $(bin) $@
32
33 $(bin): $(elf)
34         $(OBJCOPY) -O binary $< $@
35
36 $(elf): $(obj)
37         $(LD) -o $@ $(obj) $(LDFLAGS)
38
39 $(bootblock): src/amiga/boot/boot.o
40         $(OBJCOPY) -O binary $< $@
41
42 -include $(dep)
43
44 %.d: %.c
45         @$(CPP) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@
46
47 .PHONY: clean
48 clean:
49         rm -f $(obj) src/amiga/boot/boot.o $(bin) $(elf)
50
51 .PHONY: cleandep
52 cleandep:
53         rm -f $(dep)
54
55 .PHONY: run
56 run:
57         fs-uae
58
59 disasm: $(elf)
60         $(tool_prefix)objdump -d $< >$@