CFLAGS:=-g3 -ffreestanding -fno-builtin -I../src -ansi -Wall -Werror

%.o: %.c
	gcc $(CFLAGS) -c -o $@ $<
	for file in $$(cat $$(echo $@ | sed 's/\.o$$//').deps); do \
		gcc $(CFLAGS) -c -o ./$${file}.o ../src/$$file.c ; \
	done

%.elf: %.o
	gcc $(CFLAGS) -o $@ $^ $$(cat $$(echo $@ | sed 's/\.elf$$//').deps | sed 's/$$/\.o/g')


all_targets:=$(shell ls *c | sed 's/\.c$$/\.elf/g')

all: $(all_targets)

.PHONY: clean
clean:
	rm -f *o
	rm -f *elf
