# Makefile for DAPPLE library and test programs
#
# David Kotz 1995
#
# $Id: Makefile,v 1.7 95/12/17 00:08:06 dfk release Locker: dfk $

CC=g++	# should be a C++ compiler; in AIX, use xlC

# ok to use -g and -O together
# don't use "-Wall -DUSING_GNU_CPP" except with g++
IFLAGS=-I../lib
CFLAGS = $(IFLAGS) -g -Wall -DUSING_GNU_CPP

############################################
LIBS = ../lib/dapple.a

SRC =   tester.cc oddeven.cc oddeven2.cc qsort0.cc qsort.cc \
	prime.cc autom.cc pascal.cc prefix.cc life.cc life2.cc \
    	bisection.cc trapezoid.cc pi.cc dirichlet.cc gauss.cc \
    	grades.cc canny.cc canny2.cc matmul.cc matmul2.cc nbody.cc strings.cc

PROGS = tester grades oddeven oddeven2 qsort0 qsort \
	prime autom pascal prefix life \
    	bisection trapezoid pi dirichlet gauss \
	canny canny2 matmul matmul2 nbody \

TESTS = tester.out oddeven.out oddeven2.out qsort0.out qsort.out \
	prime.out autom.out pascal.out prefix.out life.out \
	bisection.out trapezoid.out pi.out dirichlet.out gauss.out \
	matmul.out matmul2.out nbody.out

MOSTDATA = gauss.data grades.data matmul.data prefix.data nbody.data/10

FILES = Makefile $(SRC) $(MOSTDATA)

############################################
.SUFFIXES : .C .cc

.C.o:
	$(CC) -c $(CFLAGS) $<
				   
.cc.o:
	$(CC) -c $(CFLAGS) $<

############################################
all: $(PROGS) TAGS

tests: $(TESTS)

############################################
tester:  tester.o $(LIBS)
	$(CC)  -o tester tester.o $(LIBS)

tester.out: tester
	tester

oddeven:  oddeven.o $(LIBS)
	$(CC)  -o oddeven oddeven.o $(LIBS)

oddeven.out: oddeven
	oddeven

oddeven2:  oddeven2.o $(LIBS)
	$(CC)  -o oddeven2 oddeven2.o $(LIBS)

oddeven2.out: oddeven2
	oddeven2

qsort0:  qsort0.o $(LIBS)
	$(CC)  -o qsort0 qsort0.o $(LIBS)

qsort0.out: qsort0
	qsort0

qsort:  qsort.o $(LIBS)
	$(CC)  -o qsort qsort.o $(LIBS)

qsort.out: qsort
	qsort

prime:  prime.o $(LIBS)
	$(CC)  -o prime prime.o $(LIBS)

prime.out: prime
	prime 

autom:  autom.o $(LIBS)
	$(CC)  -o autom autom.o $(LIBS)

autom.out: autom
	autom 

pascal:  pascal.o $(LIBS)
	$(CC)  -o pascal pascal.o $(LIBS)

pascal.out: pascal
	pascal

prefix:  prefix.o $(LIBS)
	$(CC)  -o prefix prefix.o $(LIBS)

prefix.out: prefix
	cat prefix.data
	prefix < prefix.data

life:  life.o $(LIBS)
	$(CC) -o life life.o $(LIBS)

life.out: life
	life

bisection:  bisection.o $(LIBS)
	$(CC)  -o bisection bisection.o $(LIBS)

bisection.out: bisection
	bisection

trapezoid:  trapezoid.o $(LIBS)
	$(CC)  -o trapezoid trapezoid.o $(LIBS)

trapezoid.out: trapezoid
	trapezoid

pi:  pi.o $(LIBS)
	$(CC)  -o pi pi.o $(LIBS)

pi.out: pi
	pi

dirichlet:  dirichlet.o $(LIBS)
	$(CC)  -o dirichlet dirichlet.o $(LIBS)

dirichlet.out: dirichlet
	dirichlet

gauss:  gauss.o $(LIBS)
	$(CC)  -o gauss gauss.o $(LIBS)

gauss.out: gauss
	cat gauss.data
	gauss < gauss.data

# sorry, no automatic tests for canny and canny2

canny:  canny.o $(LIBS)
	$(CC)  -o canny canny.o $(LIBS) -lm

canny2:  canny2.o $(LIBS)
	$(CC)  -o canny2 canny2.o $(LIBS) -lm

matmul:  matmul.o $(LIBS)
	$(CC)  -o matmul matmul.o $(LIBS)

matmul.out: matmul
	cat matmul.data
	matmul < matmul.data

matmul2:  matmul2.o $(LIBS)
	$(CC)  -o matmul2 matmul2.o $(LIBS)

matmul2.out: matmul2
	cat matmul.data
	matmul2 < matmul.data

nbody:  nbody.o $(LIBS)
	$(CC)  -o nbody nbody.o $(LIBS) -lm

nbody.out: nbody
	cat nbody.data/10
	nbody nbody.data/10 1000 10

grades:  grades.o $(LIBS)
	$(CC)  -o grades grades.o $(LIBS) -lm

grades.out: grades
	grades  < grades.data

############################################
TAGS:  $(SRC)
	etags  $(SRC)

depend:
	makedepend $(IFLAGS) $(SRC)

sharlist: Makefile
	echo " "$(FILES) > sharlist

clean:
	rm -f *.o *~ *.out core Makefile.bak

spotless: clean
	rm -f $(PROGS) TAGS

############################################
# DO NOT DELETE THIS LINE -- make depend depends on it.

tester.o: /usr/include/stdlib.h /usr/include/ansi_compat.h ../lib/dapple.h
tester.o: ../lib/macros.h ../lib/errors.h /usr/include/stdio.h ../lib/Shape.h
tester.o: ../lib/BigSmall.h /usr/include/math.h ../lib/Collection.h
tester.o: ../lib/Vector.h ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
oddeven.o: /usr/include/stdlib.h /usr/include/ansi_compat.h ../lib/dapple.h
oddeven.o: ../lib/macros.h ../lib/errors.h /usr/include/stdio.h
oddeven.o: ../lib/Shape.h ../lib/BigSmall.h /usr/include/math.h
oddeven.o: ../lib/Collection.h ../lib/Vector.h ../lib/Slice.h ../lib/Matrix.h
oddeven.o: ../lib/ActiveSet.h
oddeven2.o: /usr/include/stdlib.h /usr/include/ansi_compat.h ../lib/dapple.h
oddeven2.o: ../lib/macros.h ../lib/errors.h /usr/include/stdio.h
oddeven2.o: ../lib/Shape.h ../lib/BigSmall.h /usr/include/math.h
oddeven2.o: ../lib/Collection.h ../lib/Vector.h ../lib/Slice.h
oddeven2.o: ../lib/Matrix.h ../lib/ActiveSet.h
qsort0.o: /usr/include/stdlib.h /usr/include/ansi_compat.h ../lib/dapple.h
qsort0.o: ../lib/macros.h ../lib/errors.h /usr/include/stdio.h ../lib/Shape.h
qsort0.o: ../lib/BigSmall.h /usr/include/math.h ../lib/Collection.h
qsort0.o: ../lib/Vector.h ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
qsort.o: /usr/include/stdlib.h /usr/include/ansi_compat.h ../lib/dapple.h
qsort.o: ../lib/macros.h ../lib/errors.h /usr/include/stdio.h ../lib/Shape.h
qsort.o: ../lib/BigSmall.h /usr/include/math.h ../lib/Collection.h
qsort.o: ../lib/Vector.h ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
prime.o: /usr/include/stdlib.h /usr/include/ansi_compat.h /usr/include/math.h
prime.o: ../lib/dapple.h ../lib/macros.h ../lib/errors.h /usr/include/stdio.h
prime.o: ../lib/Shape.h ../lib/BigSmall.h ../lib/Collection.h ../lib/Vector.h
prime.o: ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
autom.o: /usr/include/stdlib.h /usr/include/ansi_compat.h /usr/include/math.h
autom.o: ../lib/dapple.h ../lib/macros.h ../lib/errors.h /usr/include/stdio.h
autom.o: ../lib/Shape.h ../lib/BigSmall.h ../lib/Collection.h ../lib/Vector.h
autom.o: ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
pascal.o: /usr/include/stdlib.h /usr/include/ansi_compat.h ../lib/dapple.h
pascal.o: ../lib/macros.h ../lib/errors.h /usr/include/stdio.h ../lib/Shape.h
pascal.o: ../lib/BigSmall.h /usr/include/math.h ../lib/Collection.h
pascal.o: ../lib/Vector.h ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
prefix.o: /usr/include/stdlib.h /usr/include/ansi_compat.h
prefix.o: /usr/include/math.h ../lib/dapple.h ../lib/macros.h ../lib/errors.h
prefix.o: /usr/include/stdio.h ../lib/Shape.h ../lib/BigSmall.h
prefix.o: ../lib/Collection.h ../lib/Vector.h ../lib/Slice.h ../lib/Matrix.h
prefix.o: ../lib/ActiveSet.h
life.o: /usr/include/stdlib.h /usr/include/ansi_compat.h ../lib/dapple.h
life.o: ../lib/macros.h ../lib/errors.h /usr/include/stdio.h ../lib/Shape.h
life.o: ../lib/BigSmall.h /usr/include/math.h ../lib/Collection.h
life.o: ../lib/Vector.h ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
life2.o: /usr/include/stdlib.h /usr/include/ansi_compat.h ../lib/dapple.h
life2.o: ../lib/macros.h ../lib/errors.h /usr/include/stdio.h ../lib/Shape.h
life2.o: ../lib/BigSmall.h /usr/include/math.h ../lib/Collection.h
life2.o: ../lib/Vector.h ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
bisection.o: /usr/include/stdlib.h /usr/include/ansi_compat.h
bisection.o: /usr/include/math.h ../lib/dapple.h ../lib/macros.h
bisection.o: ../lib/errors.h /usr/include/stdio.h ../lib/Shape.h
bisection.o: ../lib/BigSmall.h ../lib/Collection.h ../lib/Vector.h
bisection.o: ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
trapezoid.o: /usr/include/stdlib.h /usr/include/ansi_compat.h
trapezoid.o: /usr/include/math.h ../lib/dapple.h ../lib/macros.h
trapezoid.o: ../lib/errors.h /usr/include/stdio.h ../lib/Shape.h
trapezoid.o: ../lib/BigSmall.h ../lib/Collection.h ../lib/Vector.h
trapezoid.o: ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
pi.o: /usr/include/stdlib.h /usr/include/ansi_compat.h /usr/include/math.h
pi.o: ../lib/dapple.h ../lib/macros.h ../lib/errors.h /usr/include/stdio.h
pi.o: ../lib/Shape.h ../lib/BigSmall.h ../lib/Collection.h ../lib/Vector.h
pi.o: ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
dirichlet.o: /usr/include/stdlib.h /usr/include/ansi_compat.h
dirichlet.o: /usr/include/math.h ../lib/dapple.h ../lib/macros.h
dirichlet.o: ../lib/errors.h /usr/include/stdio.h ../lib/Shape.h
dirichlet.o: ../lib/BigSmall.h ../lib/Collection.h ../lib/Vector.h
dirichlet.o: ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
gauss.o: /usr/include/stdlib.h /usr/include/ansi_compat.h /usr/include/math.h
gauss.o: ../lib/dapple.h ../lib/macros.h ../lib/errors.h /usr/include/stdio.h
gauss.o: ../lib/Shape.h ../lib/BigSmall.h ../lib/Collection.h ../lib/Vector.h
gauss.o: ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
grades.o: /usr/include/stdlib.h /usr/include/ansi_compat.h ../lib/dapple.h
grades.o: ../lib/macros.h ../lib/errors.h /usr/include/stdio.h ../lib/Shape.h
grades.o: ../lib/BigSmall.h /usr/include/math.h ../lib/Collection.h
grades.o: ../lib/Vector.h ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
canny.o: /usr/include/stdlib.h /usr/include/ansi_compat.h /usr/include/math.h
canny.o: ../lib/dapple.h ../lib/macros.h ../lib/errors.h /usr/include/stdio.h
canny.o: ../lib/Shape.h ../lib/BigSmall.h ../lib/Collection.h ../lib/Vector.h
canny.o: ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
canny2.o: /usr/include/stdlib.h /usr/include/ansi_compat.h
canny2.o: /usr/include/math.h ../lib/dapple.h ../lib/macros.h ../lib/errors.h
canny2.o: /usr/include/stdio.h ../lib/Shape.h ../lib/BigSmall.h
canny2.o: ../lib/Collection.h ../lib/Vector.h ../lib/Slice.h ../lib/Matrix.h
canny2.o: ../lib/ActiveSet.h
matmul.o: /usr/include/stdlib.h /usr/include/ansi_compat.h
matmul.o: /usr/include/math.h ../lib/dapple.h ../lib/macros.h ../lib/errors.h
matmul.o: /usr/include/stdio.h ../lib/Shape.h ../lib/BigSmall.h
matmul.o: ../lib/Collection.h ../lib/Vector.h ../lib/Slice.h ../lib/Matrix.h
matmul.o: ../lib/ActiveSet.h
matmul2.o: /usr/include/stdlib.h /usr/include/ansi_compat.h
matmul2.o: /usr/include/math.h ../lib/dapple.h ../lib/macros.h
matmul2.o: ../lib/errors.h /usr/include/stdio.h ../lib/Shape.h
matmul2.o: ../lib/BigSmall.h ../lib/Collection.h ../lib/Vector.h
matmul2.o: ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
nbody.o: /usr/include/stdlib.h /usr/include/ansi_compat.h /usr/include/math.h
nbody.o: ../lib/dapple.h ../lib/macros.h ../lib/errors.h /usr/include/stdio.h
nbody.o: ../lib/Shape.h ../lib/BigSmall.h ../lib/Collection.h ../lib/Vector.h
nbody.o: ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
strings.o: /usr/include/stdlib.h /usr/include/ansi_compat.h
strings.o: /usr/include/string.h ../lib/dapple.h ../lib/macros.h
strings.o: ../lib/errors.h /usr/include/stdio.h ../lib/Shape.h
strings.o: ../lib/BigSmall.h /usr/include/math.h ../lib/Collection.h
strings.o: ../lib/Vector.h ../lib/Slice.h ../lib/Matrix.h ../lib/ActiveSet.h
