src = $(wildcard src/*.c) ssrc = $(wildcard src/*.s) #dataobj = data/data.o obj = $(src:.c=.o) $(ssrc:.s=.o) $(dataobj) dep = $(src:.c=.d) name = blender elf = $(name).elf bin = $(name).gba 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 CFLAGS = $(opt) $(dbg) -pedantic -Wall -MMD 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/bg.raw data/bg.pal data/sprites.raw data/sprites.pal tools/pngdump/pngdump: $(MAKE) -C tools/pngdump %.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 $< >$@