CC = gcc
CFLAGS = -std=c99 -Wall -pedantic

src = $(wildcard *.c)
src += $(wildcard ../*.c)
obj = $(src:.c=.o)
dep = $(obj:.o=.d) 

.PHONY: build all clean

build: example-01.exe example-02.exe example-03.exe

all: clean build

clean::
	rm -rf $(dep)
	rm -rf $(obj)
	rm -rf *.exe

	
example-01.exe: example-01.o ../tiny-json.o
	gcc $(CFLAGS) -o $@ $^

example-02.exe: example-02.o ../tiny-json.o
	gcc $(CFLAGS) -o $@ $^

example-03.exe: example-03.o ../tiny-json.o
	gcc $(CFLAGS) -o $@ $^	

-include $(dep)

%.d: %.c
	$(CC) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@