SYSTEM     = x86-64_linux
LIBFORMAT  = static_pic
CC = g++ -O0

CCOPT = -m64 -O -fPIC -fno-strict-aliasing -fexceptions -DNDEBUG -DIL_STD -Wall
CPLEXDIR      = /opt/ibm/ILOG/CPLEX_Studio127/cplex
CONCERTDIR    = /opt/ibm/ILOG/CPLEX_Studio127/concert
CONCERTINCDIR = $(CONCERTDIR)/include
CPLEXINCDIR   = $(CPLEXDIR)/include
CCFLAGS = $(CCOPT) -I$(CPLEXINCDIR) -I$(CONCERTINCDIR) -I.
CPLEXLIBDIR   = $(CPLEXDIR)/lib/$(SYSTEM)/$(LIBFORMAT)
CONCERTLIBDIR = $(CONCERTDIR)/lib/$(SYSTEM)/$(LIBFORMAT)
LIBS = -L$(CPLEXLIBDIR) -L$(CONCERTLIBDIR)
CCLNFLAGS = -lm -m64 -lconcert -lilocplex -lcplex -pthread

all: solver

coqinstances: solver
	./solver 6 paw.graph
	mv cert.v ../instances/paw.v
	./solver 6 C5.graph
	mv cert.v ../instances/C5.v
	./solver 6 K5.graph
	mv cert.v ../instances/K5.v
	./solver 6 G.graph
	mv cert.v ../instances/G.v
	./solver 6 petersen.graph
	mv cert.v ../instances/petersen.v
	./solver 6 kneser7_3.graph
	mv cert.v ../instances/kneser7_3.v
	./solver 6 queen5_5.graph
	mv cert.v ../instances/queen5_5.v
	./solver 6 queen6_6.graph
	mv cert.v ../instances/queen6_6.v
	./solver 6 myciel4.graph
	mv cert.v ../instances/myciel4.v
	./solver 6 myciel5.graph
	mv cert.v ../instances/myciel5.v

examples: solver
	./solver 4 G.graph
	./solver 5 G.graph
	./solver 4 C5.graph C5.weight
	./solver 5 C5.graph C5.weight

solver: solver.o
	$(CC) $(CCFLAGS) -o $@ $^ $(LIBS) $(CCLNFLAGS)

solver.o: solver.cpp
	$(CC) $(CCFLAGS) -o $@ -c $<

.PHONY: clean

clean:
	rm -f *.o

