CC=gcc -Wall
USEFULFLAGS=-pipe

OBJECT=src/functions/*/*.o
SRC=src/functions/*/*.c

HEADERS=inc/*.h

LIBS=-lreadline

TREES=trees

all: functions trees_main

functions: $(SRC) $(HEADERS)
	for i in $(SRC); do $(CC) -c -o "$${i/.c}.o" $$i; echo "compiled $$i"; done

trees.o: functions src/trees.c $(HEADERS)
	$(CC) $(USEFULFLAGS) -c -o trees.o src/trees.c

clean:
	rm -f $(OBJECT) trees.o
	find . -name '*~' -exec rm -f {} \;

cleanall: clean
	rm -f $(TREES)

trees_main: functions trees.o
	$(CC) $(USEFULFLAGS) $(LIBS) -o $(TREES) $(OBJECT) trees.o
