src = $(wildcard src/*.c) ssrc = $(wildcard src/*.s) obj = $(src:.c=.o) $(ssrc:.s=.o) $(dataobj) dep = $(src:.c=.d) name = blender elf = $(name).elf bin = $(name).gba data = data/bg.raw data/bg.pal \ data/sprites.raw \ data/sprites1.pal \ data/sprites2.pal \ data/sprites3.pal \ data/sprites4.pal \ data/sprites5.pal \ data/sprites6.pal ARCH = arm-none-eabi- CPP = $(ARCH)cpp CC = $(ARCH)gcc AS = $(ARCH)as OBJCOPY = $(ARCH)objcopy EMU = vbam opt = -O3 -fomit-frame-pointer -mcpu=arm7tdmi -mtune=arm7tdmi -mthumb -mthumb-interwork #dbg = -g def = -DALT_LCLIP CFLAGS = $(opt) $(dbg) -pedantic -Wall -MMD $(def) ASFLAGS = -mthumb-interwork LDFLAGS = -mthumb -mthumb-interwork -lm EMUFLAGS = -T 100 -f 1 --agb-print .PHONY: all all: $(bin) $(bin_mb) $(bin): $(elf) $(OBJCOPY) -O binary $(elf) $(bin) gbafix $(bin) $(elf): $(obj) $(CC) -o $(elf) $(obj) -specs=gba.specs $(LDFLAGS) -include $(dep) src/data.o: src/data.s $(data) tools/pngdump/pngdump: $(MAKE) -C tools/pngdump data/sprites.raw: data/sprites1.png data/sprites2.png data/sprites3.png data/sprites4.png data/sprites5.png data/sprites6.png tools/pngdump/pngdump -o $@ -n $^ %.raw: %.png tools/pngdump/pngdump tools/pngdump/pngdump -o $@ -n $< %.pal: %.png tools/pngdump/pngdump tools/pngdump/pngdump -o $@ -c $< .PHONY: clean clean: rm -f $(obj) $(bin) $(bin_mb) $(elf) $(elf_mb) .PHONY: cleandep cleandep: rm -f $(dep) .PHONY: install install: $(bin) if2a -n -f -W $< .PHONY: run run: $(bin_mb) if2a -m $< .PHONY: simrun simrun: $(bin) $(EMU) $(EMUFLAGS) $(bin) .PHONY: disasm disasm: $(elf) $(ARCH)objdump -d $< >$@