-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
103 lines (76 loc) · 3.56 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
####################################################
###################### MAKE ########################
####################################################
PATHPROBLEM = ./src/problem
PATHEXACT = ./src/exato
PATHEXEC = ./bin
PATHSRC = ./src
EXECUTAVEL = MCPP.run
PATHTEMP = ./.temp
all:
mkdir -p $(PATHEXEC)
mkdir -p $(PATHTEMP)
make $(EXECUTAVEL)
# Juntando todos os objetos e gerando o programa
$(EXECUTAVEL): $(PATHTEMP)/Exato.o $(PATHTEMP)/Solution.o $(PATHTEMP)/BitArray.o $(PATHTEMP)/NodeList.o $(PATHTEMP)/Node.o $(PATHTEMP)/EdgeList.o $(PATHTEMP)/Edge.o $(PATHTEMP)/Instance.o $(PATHTEMP)/main.o
$(CPP) $(CCFLAGS) $(PATHTEMP)/Exato.o $(PATHTEMP)/Solution.o $(PATHTEMP)/BitArray.o $(PATHTEMP)/NodeList.o $(PATHTEMP)/Node.o $(PATHTEMP)/EdgeList.o $(PATHTEMP)/Edge.o $(PATHTEMP)/Instance.o $(PATHTEMP)/main.o $(CCLNFLAGS) $(LSFLAGS) -o $(PATHEXEC)/$(EXECUTAVEL) -lrt
# Compiling main file:
$(PATHTEMP)/main.o: $(PATHSRC)/main.cpp
$(CPP) $(CCFLAGS) -c $(PATHSRC)/main.cpp -o $(PATHTEMP)/main.o
# Compiling problem package:
$(PATHTEMP)/Instance.o: $(PATHPROBLEM)/Instance.cpp
$(CPP) $(CCFLAGS) -c $(PATHPROBLEM)/Instance.cpp -o $(PATHTEMP)/Instance.o
$(PATHTEMP)/Edge.o: $(PATHPROBLEM)/Edge.cpp
$(CPP) $(CCFLAGS) -c $(PATHPROBLEM)/Edge.cpp -o $(PATHTEMP)/Edge.o
$(PATHTEMP)/EdgeList.o: $(PATHPROBLEM)/EdgeList.cpp
$(CPP) $(CCFLAGS) -c $(PATHPROBLEM)/EdgeList.cpp -o $(PATHTEMP)/EdgeList.o
$(PATHTEMP)/Node.o: $(PATHPROBLEM)/Node.cpp
$(CPP) $(CCFLAGS) -c $(PATHPROBLEM)/Node.cpp -o $(PATHTEMP)/Node.o
$(PATHTEMP)/NodeList.o: $(PATHPROBLEM)/NodeList.cpp
$(CPP) $(CCFLAGS) -c $(PATHPROBLEM)/NodeList.cpp -o $(PATHTEMP)/NodeList.o
$(PATHTEMP)/BitArray.o: $(PATHPROBLEM)/BitArray.cpp
$(CPP) $(CCFLAGS) -c $(PATHPROBLEM)/BitArray.cpp -o $(PATHTEMP)/BitArray.o
$(PATHTEMP)/Solution.o: $(PATHPROBLEM)/Solution.cpp
$(CPP) $(CCFLAGS) -c $(PATHPROBLEM)/Solution.cpp -o $(PATHTEMP)/Solution.o
# Compiling exact package:
$(PATHTEMP)/Exato.o: $(PATHEXACT)/Exato.cpp
$(CPP) $(CCFLAGS) -c $(PATHEXACT)/Exato.cpp -o $(PATHTEMP)/Exato.o
####################################################
###################### CLEAN #######################
####################################################
clean:
rm -rf $(PATHEXEC)
rm -rf $(PATHTEMP)
####################################################
####################### CPLEX ######################
####################################################
##### CPLEX CONFIGURATION's
# System architecture
SYSTEM = x86-64_linux
# Static library format for Cplex
LIBFORMAT = static_pic
# Cplex directory
CPLEXDIR = /opt/ibm/ILOG/CPLEX_Studio1210/cplex
# Concert directory
CONCERTDIR = /opt/ibm/ILOG/CPLEX_Studio1210/concert
##### CPLEX DIRECTIVE's
# Cplex static libraries directory
CPLEXLIBDIR = $(CPLEXDIR)/lib/$(SYSTEM)/$(LIBFORMAT)
# Concert static libraries directory
CONCERTLIBDIR = $(CONCERTDIR)/lib/$(SYSTEM)/$(LIBFORMAT)
# Cplex header's directory
CPLEXINCDIR = $(CPLEXDIR)/include
# Concert header's directory
CONCERTINCDIR = $(CONCERTDIR)/include
####################################################
##################### COMPILER #####################
####################################################
##### COMPILER CONFIGURATION's
# Compiler
CPP = g++ -std=c++11
# Compilation parameters
CCOPT = -m64 -O3 -g -fPIC -fexceptions -DIL_STD #-DDEBUG
## Include libraries identifiers
CCLNFLAGS = -L$(CPLEXLIBDIR) -lilocplex -lcplex -L$(CONCERTLIBDIR) -lconcert -m64 -lm -pthread -ldl
# Header's include path
CCFLAGS = $(CCOPT) -I$(CPLEXINCDIR) -I$(CONCERTINCDIR)