all:: examples

#
# Build the example programs
examples:
	@echo "----------------------------------------------"
	@echo "--------- Building Example Programs ----------"
	@echo "----------------------------------------------"
	@$(MAKE) -C ex0  $(MAKECMDGOALS)
	@$(MAKE) -C ex1  $(MAKECMDGOALS)
	@$(MAKE) -C ex2  $(MAKECMDGOALS)
	@$(MAKE) -C ex3  $(MAKECMDGOALS)
	@$(MAKE) -C ex4  $(MAKECMDGOALS)
	@$(MAKE) -C ex5  $(MAKECMDGOALS)
	@$(MAKE) -C ex6  $(MAKECMDGOALS)
	@$(MAKE) -C ex7  $(MAKECMDGOALS)
	@$(MAKE) -C ex8  $(MAKECMDGOALS)
	@$(MAKE) -C ex9  $(MAKECMDGOALS)
	@$(MAKE) -C ex10 $(MAKECMDGOALS)
	@$(MAKE) -C ex11 $(MAKECMDGOALS)
	@$(MAKE) -C ex12 $(MAKECMDGOALS)
	@$(MAKE) -C ex13 $(MAKECMDGOALS)
	@$(MAKE) -C ex14 $(MAKECMDGOALS)
	@$(MAKE) -C ex15 $(MAKECMDGOALS)
	@$(MAKE) -C ex16 $(MAKECMDGOALS)
	@$(MAKE) -C ex17 $(MAKECMDGOALS)
	@$(MAKE) -C ex18 $(MAKECMDGOALS)
	@echo "----------------------------------------------"
	@echo "------- Done Building Example Programs -------"
	@echo "----------------------------------------------"


.PHONY: clean clobber distclean

#
# Clean up the example programs
clean:
	@$(MAKE) -C ex0  $(MAKECMDGOALS)
	@$(MAKE) -C ex1  $(MAKECMDGOALS)
	@$(MAKE) -C ex2  $(MAKECMDGOALS)
	@$(MAKE) -C ex3  $(MAKECMDGOALS)
	@$(MAKE) -C ex4  $(MAKECMDGOALS)
	@$(MAKE) -C ex5  $(MAKECMDGOALS)
	@$(MAKE) -C ex6  $(MAKECMDGOALS)
	@$(MAKE) -C ex7  $(MAKECMDGOALS)
	@$(MAKE) -C ex8  $(MAKECMDGOALS)
	@$(MAKE) -C ex9  $(MAKECMDGOALS)
	@$(MAKE) -C ex10 $(MAKECMDGOALS)
	@$(MAKE) -C ex11 $(MAKECMDGOALS)
	@$(MAKE) -C ex12 $(MAKECMDGOALS)
	@$(MAKE) -C ex13 $(MAKECMDGOALS)
	@$(MAKE) -C ex14 $(MAKECMDGOALS)
	@$(MAKE) -C ex15 $(MAKECMDGOALS)
	@$(MAKE) -C ex16 $(MAKECMDGOALS)
	@$(MAKE) -C ex17 $(MAKECMDGOALS)
	@$(MAKE) -C ex18 $(MAKECMDGOALS)

#
# Really clean up the example programs
clobber:
	@$(MAKE) -C ex0  $(MAKECMDGOALS)
	@$(MAKE) -C ex1  $(MAKECMDGOALS)
	@$(MAKE) -C ex2  $(MAKECMDGOALS)
	@$(MAKE) -C ex3  $(MAKECMDGOALS)
	@$(MAKE) -C ex4  $(MAKECMDGOALS)
	@$(MAKE) -C ex5  $(MAKECMDGOALS)
	@$(MAKE) -C ex6  $(MAKECMDGOALS)
	@$(MAKE) -C ex7  $(MAKECMDGOALS)
	@$(MAKE) -C ex8  $(MAKECMDGOALS)
	@$(MAKE) -C ex9  $(MAKECMDGOALS)
	@$(MAKE) -C ex10 $(MAKECMDGOALS)
	@$(MAKE) -C ex11 $(MAKECMDGOALS)
	@$(MAKE) -C ex12 $(MAKECMDGOALS)
	@$(MAKE) -C ex13 $(MAKECMDGOALS)
	@$(MAKE) -C ex14 $(MAKECMDGOALS)
	@$(MAKE) -C ex15 $(MAKECMDGOALS)
	@$(MAKE) -C ex16 $(MAKECMDGOALS)
	@$(MAKE) -C ex17 $(MAKECMDGOALS)
	@$(MAKE) -C ex18 $(MAKECMDGOALS)
#
# Make the example program directories look
# like a clean distribution
distclean:
	@$(MAKE) -C ex0  $(MAKECMDGOALS)
	@$(MAKE) -C ex1  $(MAKECMDGOALS)
	@$(MAKE) -C ex2  $(MAKECMDGOALS)
	@$(MAKE) -C ex3  $(MAKECMDGOALS)
	@$(MAKE) -C ex4  $(MAKECMDGOALS)
	@$(MAKE) -C ex5  $(MAKECMDGOALS)
	@$(MAKE) -C ex6  $(MAKECMDGOALS)
	@$(MAKE) -C ex7  $(MAKECMDGOALS)
	@$(MAKE) -C ex8  $(MAKECMDGOALS)
	@$(MAKE) -C ex9  $(MAKECMDGOALS)
	@$(MAKE) -C ex10 $(MAKECMDGOALS)
	@$(MAKE) -C ex11 $(MAKECMDGOALS)
	@$(MAKE) -C ex12 $(MAKECMDGOALS)
	@$(MAKE) -C ex13 $(MAKECMDGOALS)
	@$(MAKE) -C ex14 $(MAKECMDGOALS)
	@$(MAKE) -C ex15 $(MAKECMDGOALS)
	@$(MAKE) -C ex16 $(MAKECMDGOALS)
	@$(MAKE) -C ex17 $(MAKECMDGOALS)
	@$(MAKE) -C ex18 $(MAKECMDGOALS)

#
# Link the example programs
link: $(wildcard examples/ex*/*.C)
	@$(MAKE) -C ex0  ex0  
	@$(MAKE) -C ex1  ex1  
	@$(MAKE) -C ex2  ex2  
	@$(MAKE) -C ex3  ex3  
	@$(MAKE) -C ex4  ex4  
	@$(MAKE) -C ex5  ex5  
	@$(MAKE) -C ex6  ex6  
	@$(MAKE) -C ex7  ex7  
	@$(MAKE) -C ex8  ex8  
	@$(MAKE) -C ex9  ex9  
	@$(MAKE) -C ex10 ex10 
	@$(MAKE) -C ex11 ex11 
	@$(MAKE) -C ex12 ex12 
	@$(MAKE) -C ex13 ex13 
	@$(MAKE) -C ex14 ex14 
	@$(MAKE) -C ex15 ex15 
	@$(MAKE) -C ex16 ex16 
	@$(MAKE) -C ex17 ex17 
	@$(MAKE) -C ex18 ex18 

#
# Run the example programs to see if shared lib's get properly loaded
run: $(wildcard examples/ex*/*.C)
	@$(MAKE) -C ex0  $(MAKECMDGOALS)
	@$(MAKE) -C ex1  $(MAKECMDGOALS)
	@$(MAKE) -C ex2  $(MAKECMDGOALS)
	@$(MAKE) -C ex3  $(MAKECMDGOALS)
	@$(MAKE) -C ex4  $(MAKECMDGOALS)
	@$(MAKE) -C ex5  $(MAKECMDGOALS)
	@$(MAKE) -C ex6  $(MAKECMDGOALS)
	@$(MAKE) -C ex7  $(MAKECMDGOALS)
	@$(MAKE) -C ex8  $(MAKECMDGOALS)
	@$(MAKE) -C ex9  $(MAKECMDGOALS)
	@$(MAKE) -C ex10 $(MAKECMDGOALS)
	@$(MAKE) -C ex11 $(MAKECMDGOALS)
	#@$(MAKE) -C ex12 $(MAKECMDGOALS)
	@$(MAKE) -C ex13 $(MAKECMDGOALS)
	@$(MAKE) -C ex14 $(MAKECMDGOALS)
	@$(MAKE) -C ex15 $(MAKECMDGOALS)
	@$(MAKE) -C ex16 $(MAKECMDGOALS)
	@$(MAKE) -C ex17 $(MAKECMDGOALS)
	@$(MAKE) -C ex18 $(MAKECMDGOALS)

#
# Rebuild the dependencies for the examples
.depend: $(wildcard examples/ex*/*.C)
	@$(MAKE) -C ex0  $(MAKECMDGOALS)
	@$(MAKE) -C ex1  $(MAKECMDGOALS)
	@$(MAKE) -C ex2  $(MAKECMDGOALS)
	@$(MAKE) -C ex3  $(MAKECMDGOALS)
	@$(MAKE) -C ex4  $(MAKECMDGOALS)
	@$(MAKE) -C ex5  $(MAKECMDGOALS)
	@$(MAKE) -C ex6  $(MAKECMDGOALS)
	@$(MAKE) -C ex7  $(MAKECMDGOALS)
	@$(MAKE) -C ex8  $(MAKECMDGOALS)
	@$(MAKE) -C ex9  $(MAKECMDGOALS)
	@$(MAKE) -C ex10 $(MAKECMDGOALS)
	@$(MAKE) -C ex11 $(MAKECMDGOALS)
	@$(MAKE) -C ex12 $(MAKECMDGOALS)
	@$(MAKE) -C ex13 $(MAKECMDGOALS)
	@$(MAKE) -C ex14 $(MAKECMDGOALS)
	@$(MAKE) -C ex15 $(MAKECMDGOALS)
	@$(MAKE) -C ex16 $(MAKECMDGOALS)
	@$(MAKE) -C ex17 $(MAKECMDGOALS)
	@$(MAKE) -C ex18 $(MAKECMDGOALS)
