LIBS =	-lg++ -lcurses -ltermcap
FLAGS = -O -Wall
OBJ = 	genstuff.o iku.o util.o Pattern.o Opponent.o

all:	iku smooth

iku:	$(OBJ)
	g++ $(FLAGS) -o iku $(OBJ) $(LIBS)

iku.o:	iku.h iku.cc
	g++ $(FLAGS) -c iku.cc

util.o: iku.h util.cc
	g++ $(FLAGS) -c util.cc

Pattern.o: iku.h Pattern.cc
	g++ $(FLAGS) -c Pattern.cc

Opponent.o: iku.h Opponent.cc
	g++ $(FLAGS) -c Opponent.cc

# genstuff.o ends up holding all the compiled code from libg++.
genstuff.o: iku.h
	genclass -2 Pattern val float val Map
	genclass -2 Pattern val float val CHMap
	genclass Pattern val defs
	genclass Pos val defs
	genclass Pos val SLList
	genclass Pos val SLSet
	genclass Pos val Set
	genclass Block val defs
	genclass Block val DLList
	g++ $(FLAGS) -c genstuff.cc

smooth: smooth.c
	cc -O -o smooth smooth.c

clean:
	rm -f iku *.o smooth watch *Set* *List* *defs* *Map*
