# @(#) $Id: makefile,v 1.2 1993/04/29 16:08:19 leavens Exp leavens $

C = .C    # this works for both g++ and AT&T C++, but you can also use .cc
CXX = g++  # CC
CXXFLAGS = -Wall -I/usr/unsup/include
CXXLDFLAGS = -L/usr/unsup/lib -lL  # find LEDA libraries


# Tell make about our suffixes: (required to define rules)
.SUFFIXES: .C .cc # $(SUFFIXES)

$(C).o:
	$(CXX) $(CXXFLAGS) -c $<

### defs for this program
SOURCES = main$(C) World$(C) StdWorld$(C) WorldMaker$(C) Decision$(C)
OBJECTS = main.o World.o StdWorld.o WorldMaker.o Decision.o
HEADERS = Decision.h Prisoner.h StdWorld.h World.h PrisonerTypes.h
PROGRAM = prisoners-dilemma

# make targets for the program and its parts
all: $(PROGRAM)

main.o: $(HEADERS)

$(PROGRAM): $(OBJECTS)
	$(CXX) $(OBJECTS) -o $(PROGRAM) $(CXXLDFLAGS)

# extraction from noweb dependencies that aren't obvious
main.o: $(HEADERS)

Decision.o: Decision.h

World.o: World.h Prisoner.h

StdWorld.o:  StdWorld.h World.h Prisoner.h

WorldMaker.o: World.h Prisoner.h StdWorld.h PrisonerTypes.h \
		AllC.h AllD.h

# note that clean removes the files generated by noweb
clean: cleanbinary

cleanbinary:
	rm -f *.o core

cleanall: clean
	rm -f a.out $(PROGRAM)
