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 \
10 data/spr_game.raw data/spr_game.pal
12 libs = libs/maxmod/libmm.a
14 TCPREFIX = arm-none-eabi-
19 OBJCOPY = $(TCPREFIX)objcopy
20 OBJDUMP = $(TCPREFIX)objdump
23 opt = -O3 -fomit-frame-pointer -mcpu=arm7tdmi -mtune=arm7tdmi -mthumb -mthumb-interwork
25 inc = -I. -Isrc -Isrc/gba -Ilibs/maxmod
26 warn = -pedantic -Wall
28 CFLAGS = $(opt) $(dbg) $(warn) -MMD $(def) $(inc)
29 ASFLAGS = -mthumb-interwork
30 LDFLAGS = -mthumb -mthumb-interwork $(libs) -lm
38 $(OBJCOPY) -O binary $(elf) $(bin)
41 $(elf): $(obj) $(libs)
42 $(CC) -o $(elf) $(obj) -specs=gba.specs -Wl,-Map,link.map $(LDFLAGS)
47 $(CC) -o $@ $(CFLAGS) -c $<
50 $(AS) -o $@ $(ASFLAGS) $<
52 src/data.o: src/data.s $(data)
53 src/data.arm.o: src/data.s $(data)
55 tools/pngdump/pngdump:
56 $(MAKE) -C tools/pngdump
58 tools/lutgen: tools/lutgen.c
61 tools/vistab: tools/vistab.c
65 $(MAKE) -C tools/mmutil
67 %.sraw: %.png tools/pngdump/pngdump
68 tools/pngdump/pngdump -o $@ -oc $(subst .sraw,.spal,$@) -os $(subst .sraw,.shade,$@) -s 8 $<
70 %.raw: %.png tools/pngdump/pngdump
71 tools/pngdump/pngdump -o $@ -n $<
73 %.pal: %.png tools/pngdump/pngdump
74 tools/pngdump/pngdump -o $@ -c $<
76 data/lut.s: tools/lutgen
79 data/snd.bin: $(audata) tools/mmutil/mmutil
80 tools/mmutil/mmutil -o$@ -hdata/snd.h $(audata)
82 data/snd.h: data/snd.bin
86 rm -f $(obj) $(bin) $(bin_mb) $(elf) $(elf_mb)
94 $(MAKE) -C libs/maxmod clean
102 mgba -3 --log-level=16 $(bin)
107 $(TCPREFIX)gdb -x gdbmgba $<
117 $(MAKE) -C libs/maxmod
122 $(MAKE) -f Makefile.pc