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) euler.o $(EXAMPLE_DIR)/example_1.o
	g++ -o example_1 euler.o $(EXAMPLE_DIR)/example_1.o $(LIB)

example_2: $(OBJ) euler.o $(EXAMPLE_DIR)/example_2.o
	g++ -o example_2 euler.o $(EXAMPLE_DIR)/example_2.o $(LIB)

example_3: $(OBJ) euler.o $(EXAMPLE_DIR)/example_3.o
	g++ -o example_3 euler.o $(EXAMPLE_DIR)/example_3.o $(LIB)

example_4: $(OBJ) euler.o $(EXAMPLE_DIR)/example_4.o
	g++ -o example_4 euler.o $(EXAMPLE_DIR)/example_4.o $(LIB)

example_5: $(OBJ) euler.o $(EXAMPLE_DIR)/example_5.o
	g++ -o example_5 euler.o $(EXAMPLE_DIR)/example_5.o $(LIB)

example_6: $(OBJ) euler.o $(EXAMPLE_DIR)/example_6.o
	g++ -o example_6 euler.o $(EXAMPLE_DIR)/example_6.o $(LIB)

example_7: $(OBJ) euler.o $(EXAMPLE_DIR)/example_7.o
	g++ -o example_7 euler.o $(EXAMPLE_DIR)/example_7.o $(LIB)

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

clean:
	(rm euler 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
