ARM ?= ../arm-none-eabi/bin/arm-none-eabi

LD_SCRIPT := src/task.ld

.PHONY: all

all: dirs bin/init bin/speaker
	@echo "done!"

dirs:
	mkdir -p bin
	mkdir -p obj/utils

obj/helpers.o: src/helpers.c
	$(ARM)-gcc -fno-common -std=c99 -mcpu=arm1176jzf-s -o $@ -c $^

obj/utils.o: src/utils.c
	$(ARM)-gcc -fno-common -std=c99 -mcpu=arm1176jzf-s -I./src/ -o $@ -c $^

bin/init: src/init.c obj/utils.o
	$(ARM)-gcc -fno-common -std=c99 -mcpu=arm1176jzf-s -I./src/ -o obj/init.o -c src/init.c
	$(ARM)-ld -Map $@.map -T$(LD_SCRIPT) -o $@.elf obj/init.o obj/utils.o
	$(ARM)-objdump -d $@.elf > $@.lst

bin/speaker: obj/utils.o obj/helpers.o src/speaker.c
	$(ARM)-gcc -fno-common -std=c99 -mcpu=arm1176jzf-s -I./src/ -o obj/speaker.o -c src/speaker.c
	$(ARM)-ld -Map $@.map -T$(LD_SCRIPT) -o $@.elf obj/speaker.o obj/helpers.o obj/utils.o
	$(ARM)-objdump -d $@.elf > $@.lst

clean:
	rm -rf obj
	rm -rf bin

