CC = cc
CC = gcc
 
CFLAGS = -Wall -g
CFLAGS = -Wall -pg
CFLAGS = -Wall -O4
CFLAGS = -O

PURIFY = /usr/local/purify-3.2/purify
PURIFY = 
 
.SUFFIXES : .o .c .a
 
#-----------------------------------------------------------------------

LIBS = \
       ../src/MSMD.a \
       ../../ETree/src/ETree.a \
       ../../DSTree/src/DSTree.a \
       ../../Tree/src/Tree.a \
       ../../Graph/src/Graph.a \
       ../../DInpMtx/src/DInpMtx.a \
       ../../IIheap/src/IIheap.a \
       ../../IVL/src/IVL.a \
       ../../Perm/src/Perm.a \
       ../../IV/src/IV.a \
       ../../DV/src/DV.a \
       ../../Utilities/src/Utilities.a \
       ../../Drand/src/Drand.a \
       -lm

DRIVERS = orderViaMMD \
          orderViaMS \
          orderViaND \
          orderViaStages 
 
libs :
	cd ../src ; make MSMD.a
	cd ../../ETree/src ; make ETree.a
	cd ../../DSTree/src ; make DSTree.a
	cd ../../Tree/src ; make Tree.a
	cd ../../Graph/src ; make Graph.a
	cd ../../DInpMtx/src ; make DInpMtx.a
	cd ../../IIheap/src ; make IIheap.a
	cd ../../IVL/src ; make IVL.a
	cd ../../Perm/src ; make Perm.a
	cd ../../IV/src ; make IV.a
	cd ../../DV/src ; make DV.a
	cd ../../Utilities/src ; make Utilities.a
	cd ../../Drand/src ; make Drand.a

all : ${DRIVERS}

clean :
	rm -f *.a *.o ${DRIVERS}

orderViaStages : orderViaStages.o libs
	${PURIFY} ${CC} $@.o -o $@ ${LIBS}

orderViaMMD : orderViaMMD.o libs
	${PURIFY} ${CC} $@.o -o $@ ${LIBS}

orderViaND : orderViaND.o libs
	${PURIFY} ${CC} $@.o -o $@ ${LIBS}

orderViaMS : orderViaMS.o libs
	${PURIFY} ${CC} $@.o -o $@ ${LIBS}
