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