include ../Makefile.inc

example-DIR=../examples

all: example-1 example-2 example-3 example-4 example-5 example-6 example-7

%.o: %.c
	$(CXX) $(CXXFLAGS) -c -o $*.o $*.c

example-1: $(OBJ) picard.o $(example-DIR)/example-1.o
	g++ -o example-1 picard.o $(example-DIR)/example-1.o $(LIB)

example-2: $(OBJ) picard.o $(example-DIR)/example-2.o
	g++ -o example-2 picard.o $(example-DIR)/example-2.o $(LIB)

example-3: $(OBJ) picard.o $(example-DIR)/example-3.o
	g++ -o example-3 picard.o $(example-DIR)/example-3.o $(LIB)

example-4: $(OBJ) picard.o $(example-DIR)/example-4.o
	g++ -o example-4 picard.o $(example-DIR)/example-4.o $(LIB)

example-5: $(OBJ) picard.o $(example-DIR)/example-5.o
	g++ -o example-5 picard.o $(example-DIR)/example-5.o $(LIB)

example-6: $(OBJ) picard.o $(example-DIR)/example-6.o
	g++ -o example-6 picard.o $(example-DIR)/example-6.o $(LIB)

example-7: $(OBJ) picard.o $(example-DIR)/example-7.o
	g++ -o example-7 picard.o $(example-DIR)/example-7.o $(LIB)

testrun:
	@for file in $(shell ls example**); do \
	echo "======================================================="; \
	time ./$$file; \
	echo "======================================================="; \
	done

clean:
	(rm picard a.out *.o core* example* > /dev/null 2>&1; exit 0)

cleanall: clean
	cd $(example-DIR); \
	make clean

dep:
	$(CXX) -MM $(CXXFLAGS) $(shell ls **.c) > dependencies
