#  The following code example is described in the book "Introduction
#  to Geometric Computing" by Sherif Ghali, Springer-Verlag, 2008.
#  
#  Copyright (C) 2008 Sherif Ghali. This code may be freely copied,
#  modified, or republished electronically or in print provided that
#  this copyright notice appears in all copies. This software is
#  provided "as is" without express or implied warranty; not even for
#  merchantability or fitness for a particular purpose.

GLIBS = geometry_lib raster_image

CDIRS = 01 03 04 05 06 07 08 09 11 12 15 19 20 21 24 25 26 27 31 32 42 43

GDIRS = \
       geometry_E1 geometry_E2 geometry_E3 \
       geometry_P1 geometry_P2 geometry_P3 \
       geometry_S1 geometry_S2 \
       geometry_T1 geometry_T2 geometry_T3 \
       graph misc raster_image solid_bsp solid_csg solid_heds solid_ifs \
       tree_draw visibility_E2

# geometry_S3

all: mlibs chaps test

clean: clean_chaps clean_geom

dclean: libclean dclean_chaps dclean_geom

mlibs:
	for f in $(GLIBS); do \
	  (echo "----" $$f "----" && cd $$f && $(MAKE) mlib) || exit; \
	done

libclean: 
	for f in $(GLIBS); do \
	  (echo "----" $$f "----" && cd $$f && $(MAKE) libclean) || exit; \
	done

chaps:
	for f in $(CDIRS); do \
	   (echo "----" $$f "----" && cd $$f && $(MAKE) ) || exit; \
	done

clean_chaps:
	for f in $(CDIRS); do \
	   (echo "----" $$f "----" && cd $$f && $(MAKE) clean) || exit; \
	done

dclean_chaps:
	for f in $(CDIRS); do \
	   (echo "----" $$f "----" && cd $$f && $(MAKE) dclean) || exit; \
	done

test:
	for f in $(GDIRS); do \
	   (echo "----" $$f "----" && cd $$f && $(MAKE) test) || exit; \
	done

clean_geom:
	for f in $(GDIRS); do \
	   (echo "----" $$f "----" && cd $$f && $(MAKE) clean) || exit; \
	done

dclean_geom:
	for f in $(GDIRS); do \
	   (echo "----" $$f "----" && cd $$f && $(MAKE) dclean) || exit; \
	done
