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