
CC=gcc
LD=gcc
CPPFLAGS=-g

BUILD=build

src=main.c

objects=$(patsubst %.c,$(BUILD)/obj/%.o,$(src))

$(objects): | $(BUILD)/obj

test:$(BUILD)/binary
	mkdir -p $@
	./$(BUILD)/binary test.binary >test/parse1.binary
	./$(BUILD)/binary parse1.binary >test/parse2.binary
	diff test/parse1.binary test/parse2.binary

$(BUILD)/binary: $(objects)
	@echo link objects $(objects)
	$(LD) $(LDFLAGS) $^ -o $@

$(BUILD)/obj:
	mkdir -p $@

$(BUILD)/obj/%.o: %.c
	@echo compile $< 
	@$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@

clean:
	rm -f $(objects)

.PHONY:clean test
