1 src = $(wildcard src/*.c) $(wildcard src/gba/*.c)
2 ssrc = $(wildcard src/*.s) $(wildcard src/gba/*.s) data/lut.s
3 obj = $(src:.c=.arm.o) $(ssrc:.s=.arm.o)
9 data = data/color.raw data/color.pal data/height.raw
11 libs = libs/maxmod/libmm.a
13 TCPREFIX = arm-none-eabi-
18 OBJCOPY = $(TCPREFIX)objcopy
19 OBJDUMP = $(TCPREFIX)objdump
22 opt = -O3 -fomit-frame-pointer -mcpu=arm7tdmi -mtune=arm7tdmi -mthumb -mthumb-interwork
24 inc = -I. -Isrc -Isrc/gba -Ilibs/maxmod
25 warn = -pedantic -Wall
27 CFLAGS = $(opt) $(dbg) $(warn) -MMD $(def) $(inc)
28 ASFLAGS = -mthumb-interwork
29 LDFLAGS = -mthumb -mthumb-interwork $(libs) -lm
37 $(OBJCOPY) -O binary $(elf) $(bin)
40 $(elf): $(obj) $(libs)
41 $(CC) -o $(elf) $(obj) -specs=gba.specs -Wl,-Map,link.map $(LDFLAGS)
46 $(CC) -o $@ $(CFLAGS) -c $<
49 $(AS) -o $@ $(ASFLAGS) $<
51 src/data.o: src/data.s $(data)
52 src/data.arm.o: src/data.s $(data)
54 tools/pngdump/pngdump:
55 $(MAKE) -C tools/pngdump
57 tools/lutgen: tools/lutgen.c
60 tools/vistab: tools/vistab.c
64 $(MAKE) -C tools/mmutil
66 %.sraw: %.png tools/pngdump/pngdump
67 tools/pngdump/pngdump -o $@ -oc $(subst .sraw,.spal,$@) -os $(subst .sraw,.shade,$@) -s 8 $<
69 %.raw: %.png tools/pngdump/pngdump
70 tools/pngdump/pngdump -o $@ -n $<
72 %.pal: %.png tools/pngdump/pngdump
73 tools/pngdump/pngdump -o $@ -c $<
75 data/lut.s: tools/lutgen
78 data/snd.bin: $(audata) tools/mmutil/mmutil
79 tools/mmutil/mmutil -o$@ -hdata/snd.h $(audata)
81 data/snd.h: data/snd.bin
85 rm -f $(obj) $(bin) $(bin_mb) $(elf) $(elf_mb)
93 $(MAKE) -C libs/maxmod clean
101 mgba -3 --log-level=16 $(bin)
106 $(TCPREFIX)gdb -x gdbmgba $<
116 $(MAKE) -C libs/maxmod
121 $(MAKE) -f Makefile.pc