# Set here which version of libDAI to use:

#LIBDAIPATH = ${PWD}/libDAI-snapshot-20080922
LIBDAIPATH = ${PWD}/libdai/lib
INCLUDEDIR = ${PWD}/libdai/include

OPT     = -O3

LDADD    = -L../gsl-1.8/lib -L${LIBDAIPATH} -L${HOME}/lib -lboost_program_options -ldai -lm -lgsl -lgslcblas -Wno-deprecated -lgmp -lgmpxx #-lmpfrcpp -lmpfr 
LDSTATIC = -L../gsl-1.8/lib -L${LIBDAIPATH} -L${HOME}/lib -lboost_program_options -ldai -lm -lgmp -lgsl -lgslcblas -Wno-deprecated -lgmp -lgmpxx #-lmpfrcpp -lmpfr 
#CC       = g++ -g -Wall -fPIC -I${LIBDAIPATH} -I${HOME}/include  -Wno-deprecated
CC       = g++ ${OPT} -g -Wall -fPIC -I${LIBDAIPATH} -I${INCLUDEDIR} -Wno-deprecated
HEADERS  = bipgraph.h diffs.h index.h var.h factor.h varset.h prob.h daialg.h properties.h alldai.h enum.h x2x.h

all: test_z2 create_pstar create_phex create_ppoly create_wheel create_grid

test_z2: test_z2.o vprob.o fgraph.o ttoc.o global.o real.o
	${CC} -o test_z2 test_z2.o vprob.o fgraph.o ttoc.o global.o real.o ${LDADD}

create_pstar: create_pstar.o
	${CC} -o create_pstar create_pstar.o ${LDADD}

create_phex: create_phex.o
	${CC} -o create_phex create_phex.o ${LDADD}

create_ppoly: create_ppoly.o
	${CC} -o create_ppoly create_ppoly.o ${LDADD}

create_wheel: create_wheel.o
	${CC} -o create_wheel create_wheel.o ${LDADD}

create_grid: create_grid.o
	${CC} -o create_grid create_grid.o ${LDADD}

test_z2.o : test_z2.cc
	${CC} -c test_z2.cc ${CFLAGS}

vprob.o : vprob.cc
	${CC} -c vprob.cc ${CFLAGS}

fgraph.o : fgraph.cc
	${CC} -c fgraph.cc ${CFLAGS}

ttoc.o : ttoc.cpp
	${CC} -c ttoc.cpp ${CFLAGS}

global.o : global.cc
	${CC} -c global.cc ${CFLAGS}

graph.o : graph.cpp
	${CC} -c graph.cpp ${CFLAGS}

real.o : real.cc
	${CC} -c real.cc ${CFLAGS}

create_pstar.o : create_pstar.cpp
	${CC} -c create_pstar.cpp ${CFLAGS}

create_phex.o : create_phex.cpp
	${CC} -c create_phex.cpp ${CFLAGS}

create_ppoly.o : create_ppoly.cpp
	${CC} -c create_ppoly.cpp ${CFLAGS}

create_wheel.o : create_wheel.cpp
	${CC} -c create_wheel.cpp ${CFLAGS}

create_grid.o : create_grid.cpp
	${CC} -c create_grid.cpp ${CFLAGS}

clean:
	rm *o create_pstar create_phex create_ppoly create_wheel create_grid test_z2
