a312a030533a6f60479c0b2aa48ad56de26781e8
[gbajam21] / Makefile
1 src = $(wildcard src/*.c)
2 ssrc = $(wildcard src/*.s)
3 obj = $(src:.c=.o) $(ssrc:.s=.o)
4 dep = $(src:.c=.d)
5 name = gbajam21
6 elf = $(name).elf
7 bin = $(name).gba
8
9 TCPREFIX = arm-none-eabi-
10
11 CPP = $(TCPREFIX)cpp
12 CC = $(TCPREFIX)gcc
13 AS = $(TCPREFIX)as
14 OBJCOPY = $(TCPREFIX)objcopy
15 OBJDUMP = $(TCPREFIX)objdump
16 EMU = vbam
17
18 opt = -O3 -fomit-frame-pointer -mcpu=arm7tdmi -mtune=arm7tdmi -mthumb -mthumb-interwork
19 #dbg = -g
20
21 CFLAGS = $(opt) $(dbg) -pedantic -Wall -MMD $(def)
22 ASFLAGS = -mthumb-interwork
23 LDFLAGS = -mthumb -mthumb-interwork
24 EMUFLAGS = -T 100 -f 1 --agb-print
25
26 -include cfg.mk
27
28 .PHONY: all
29 all: $(bin) $(bin_mb)
30
31 $(bin): $(elf)
32         $(OBJCOPY) -O binary $(elf) $(bin)
33         gbafix -r0 $(bin)
34
35 $(elf): $(obj)
36         $(CC) -o $(elf) $(obj) -specs=gba.specs $(LDFLAGS)
37
38 -include $(dep)
39
40 tools/pngdump/pngdump:
41         $(MAKE) -C tools/pngdump
42
43 #data/sprites.raw: data/sprites1.png data/sprites2.png data/sprites3.png data/sprites4.png data/sprites5.png data/sprites6.png
44 #       tools/pngdump/pngdump -o $@ -n $^
45
46 %.raw: %.png tools/pngdump/pngdump
47         tools/pngdump/pngdump -o $@ -n $<
48
49 %.pal: %.png tools/pngdump/pngdump
50         tools/pngdump/pngdump -o $@ -c $<
51
52 .PHONY: clean
53 clean:
54         rm -f $(obj) $(bin) $(bin_mb) $(elf) $(elf_mb)
55
56 .PHONY: cleandep
57 cleandep:
58         rm -f $(dep)
59
60 .PHONY: install
61 install: $(bin)
62         if2a -n -f -W $<
63
64 .PHONY: run
65 run: $(bin_mb)
66         if2a -m $<
67
68 .PHONY: simrun
69 simrun: $(bin)
70         $(EMU) $(EMUFLAGS) $(bin)
71
72 .PHONY: disasm
73 disasm: $(elf)
74         $(OBJDUMP) -d $< >$@