SOURCE = wnk_exp.cc wnk_func.cc wnk_lookup.cc wnk_matrix.cc 

OBJS = $(SOURCE:.cc=.o)

SRC= 	matrix.o \
	utilities.combinatorics.o\
        utilities.linalg.o $(OBJS)

CXX = g++ -pedantic -Wall

triangulate: triangulate.o $(SRC)
	$(CXX) triangulate.o $(SRC) -o triangulate

xtriangulate: xtriangulate.o $(SRC)
	$(CXX) xtriangulate.o $(SRC) -o xtriangulate

cocircs: cocircs.o $(SRC)
	$(CXX) cocircs.o $(SRC) -o cocircs

chambers: chambers.o $(SRC)
	$(CXX) chambers.o $(SRC) -o chambers

wnk_exp.o: wnk_exp.cc exp.h
	g++ -c -fhandle-exceptions wnk_exp.cc 

wnk_func.o: wnk_func.cc exp.h
	g++ -c -fhandle-exceptions wnk_func.cc 

wnk_lookup.o: wnk_lookup.cc exp.h
	g++ -c -fhandle-exceptions wnk_lookup.cc 

wnk_matrix.o: wnk_matrix.cc exp.h
	g++ -c -fhandle-exceptions wnk_matrix.cc

cocircs.o: cocircs.cc
	g++ -c cocircs.cc -o cocircs.o

chambers.o: chambers.cc
	g++ -c chambers.cc -o chambers.o

set_test: set_test.o $(SRC)
	g++ set_test.o $(SRC) -o set_test

decode: decode.o $(SRC)
	g++ decode.o $(SRC) -o decode

encode: encode.o $(SRC)
	g++ encode.o $(SRC) -o encode

matrix.o: matrix.cc
	g++ -pedantic -c matrix.cc -o matrix.o

utilities.linalg.o: utilities.linalg.cc utilities.linalg.h matrix.h utilities.combinatorics.h samset.h debug.h
	g++ -pedantic -c utilities.linalg.cc -o utilities.linalg.o

utilities.combinatorics.o: utilities.combinatorics.cc  utilities.combinatorics.h matrix.h samset.h debug.h
	g++ -pedantic -c utilities.combinatorics.cc -o utilities.combinatorics.o

triangulate.o: triangulate.cc matrix.h utilities.combinatorics.h samset.h utilities.linalg.h debug.h
	g++ -pedantic -c triangulate.cc -o triangulate.o

xtriangulate.o: xtriangulate.cc matrix.h utilities.combinatorics.h samset.h utilities.linalg.h debug.h
	g++ -pedantic -c xtriangulate.cc -o xtriangulate.o

set_test.o: set_test.cc int_set.h utilities.combinatorics.h matrix.h samset.h
	g++ -c set_test.cc -o set_test.o

decode.o: decode.cc ls
	g++ -c decode.cc -o decode.o

encode.o: encode.cc 
	g++ -c encode.cc -o encode.o

.cc.o:
	g++  -c $*.cc

