# Easiest to build this using `docker run -it --rm -v $(pwd):/code -w /code devkitpro/devkitarm:latest make
TOOLCHAIN := ${DEVKITARM}/bin/arm-none-eabi
CC := ${TOOLCHAIN}-gcc
OBJCOPY := ${TOOLCHAIN}-objcopy
OBJDUMP := ${TOOLCHAIN}-objdump

TARGET := test

CFLAGS := -O0 -g -std=c11 -march=armv4t -mthumb 
LDFLAGS := -Wl,-static


SOURCES := $(wildcard *.[cs])
OBJECTS := $(filter %.o,$(SOURCES:%.c=%.o))
OBJECTS += $(filter %.o,$(SOURCES:%.s=%.o))

all: ${TARGET}.bin objdump

${OBJECTS}: ${SOURCES}
	${CC} -c ${CFLAGS} $^

${TARGET}.elf ${TARGET}.map: ${OBJECTS} ${TARGET}.ld
	${CC} ${LDFLAGS} -Wl,-Map=${TARGET}.map -Wl,-T${TARGET}.ld ${OBJECTS} -o $@
	
${TARGET}.bin: ${TARGET}.elf
	$(OBJCOPY) -v -O binary $^ $@

objdump: ${TARGET}.elf
	${OBJDUMP} -d $^

clean:
	rm -f ${TARGET}.elf
	rm -f ${TARGET}.bin
	rm -f ${TARGET}.map
	rm -f *.o

.PHONY: all clean