-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile
179 lines (147 loc) · 6.38 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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
#@file Makefile
#@brief Makefile for SCIP-GNN
#@author Christopher Hojny
#-----------------------------------------------------------------------------
# path
#-----------------------------------------------------------------------------
SCIPDIR = $(SCIP_PATH)
#----------------------------------------------------------------------------
# include default project Makefile from SCIP (need to do this twice, once to
# find the correct binary, then, after getting the correct flags from the
# binary (which is necessary since the ZIMPL flags differ from the default
# if compiled with the SCIP Optsuite instead of SCIP), we need to set the
# compile flags, e.g., for the ZIMPL library, which is again done in make.project
#----------------------------------------------------------------------------
include $(SCIPDIR)/make/make.project
-include $(SCIPDIR)/make/local/make.$(HOSTNAME)
-include $(SCIPDIR)/make/local/make.$(HOSTNAME).$(COMP)
-include $(SCIPDIR)/make/local/make.$(HOSTNAME).$(COMP).$(OPT)
SCIPVERSION :=$(shell $(SCIPDIR)/bin/scip.$(BASE).$(LPS).$(TPI)$(EXEEXTENSION) -v | sed -e 's/$$/@/')
override ARCH :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* ARCH=\([^@]*\).*/\1/')
override EXPRINT :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* EXPRINT=\([^@]*\).*/\1/')
override GAMS :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* GAMS=\([^@]*\).*/\1/')
override GMP :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* GMP=\([^@]*\).*/\1/')
override SYM :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* SYM=\([^@]*\).*/\1/')
override IPOPT :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* IPOPT=\([^@]*\).*/\1/')
override IPOPTOPT :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* IPOPTOPT=\([^@]*\).*/\1/')
override LPSCHECK :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* LPSCHECK=\([^@]*\).*/\1/')
override LPSOPT :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* LPSOPT=\([^@]*\).*/\1/')
override NOBLKBUFMEM :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* NOBLKBUFMEM=\([^@]*\).*/\1/')
override NOBLKMEM :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* NOBLKMEM=\([^@]*\).*/\1/')
override NOBUFMEM :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* NOBUFMEM=\([^@]*\).*/\1/')
override PARASCIP :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* PARASCIP=\([^@]*\).*/\1/')
override READLINE :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* READLINE=\([^@]*\).*/\1/')
override SANITIZE :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* SANITIZE=\([^@]*\).*/\1/')
override ZIMPL :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* ZIMPL=\([^@]*\).*/\1/')
override ZIMPLOPT :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* ZIMPLOPT=\([^@]*\).*/\1/')
override ZLIB :=$(shell echo "$(SCIPVERSION)" | sed -e 's/.* ZLIB=\([^@]*\).*/\1/')
include $(SCIPDIR)/make/make.project
-include $(SCIPDIR)/make/local/make.$(HOSTNAME)
-include $(SCIPDIR)/make/local/make.$(HOSTNAME).$(COMP)
-include $(SCIPDIR)/make/local/make.$(HOSTNAME).$(COMP).$(OPT)
#-----------------------------------------------------------------------------
# default settings
#-----------------------------------------------------------------------------
LIBPATH = lib
USRCFLAGS += -isystem$(LIBPATH)
USRCXXFLAGS += -isystem$(LIBPATH)
OPT = opt
LPS = spx2
VERSION = 1.0
CONTINUE = false
LOCK = false
TEST = simple
SETTINGS = default
TIME = 3600
NODES = 2100000000
MEM = 20000
DISPFREQ = 10000
PERMUTE = 0
ONLYPRE = false
SETCUTOFF = false
#-----------------------------------------------------------------------------
# Programs
#-----------------------------------------------------------------------------
SCIPGNN = scipgnn
SCIPGNNOBJ = gnn.o \
gnn_bounds.o \
gnn_bounds_nodeclassify.o \
gnn_bounds_robustclassify.o \
main.o \
probdata_nodeclassify.o \
probdata_robustclassify.o \
problem_gnn.o \
read_gnn.o \
sepa_relu_nodeclassify.o \
sepa_relu_robustclassify.o \
scipgnn_params.o \
scipgnn_plugins.o
SCIPGNNSRC = gnn.c \
gnn_bounds.c \
gnn_bounds_nodeclassify.c \
gnn_bounds_robustclassify.c \
main.cpp \
probdata_nodeclassify.c \
probdata_robustclassify.c \
problem_gnn.c \
read_gnn.cpp \
sepa_relu_nodeclassify.c \
sepa_relu_robustclassify.c \
scipgnn_params.c \
scipgnn_plugins.c
SCIPGNNOBJFILES = $(addprefix $(OBJDIR)/,$(SCIPGNNOBJ))
SCIPGNNSRCFILES = $(addprefix $(SRCDIR)/,$(SCIPGNNSRC))
SCIPGNNDEP = $(SRCDIR)/depend.$(SCIPGNNSRC)
SCIPGNNFILE = $(BINDIR)/$(SCIPGNN).$(BASE).$(LPS)$(EXEEXTENSION)
#-----------------------------------------------------------------------------
# Rules
#-----------------------------------------------------------------------------
ifeq ($(VERBOSE),false)
.SILENT: $(SCIPGNNFILE) $(SCIPGNNOBJFILES)
endif
.PHONY: all
all: $(LIBDIR) $(SCIPDIR) $(SCIPGNNFILE)
# ----------- others -------------
.PHONY: doc
doc:
cd doc; $(DOXY) scipgnn.dxy
$(OBJDIR):
@-mkdir -p $(OBJDIR)
$(BINDIR):
@-mkdir -p $(BINDIR)
$(LIBDIR):
@-mkdir -p lib;
.PHONY: tags
tags:
rm -f TAGS; ctags -e src/*.c src/*.cpp src/*.h $(SCIPDIR)/src/scip/*.c $(SCIPDIR)/src/scip/*.h;
.PHONY: clean
clean: $(OBJDIR)
ifneq ($(OBJDIR),)
@-(rm -f $(OBJDIR)/*.o $(OBJDIR)/*.d && rmdir $(OBJDIR));
@echo "-> remove main objective files"
endif
@-rm -f $(MAINFILE) $(MAINLINK) $(MAINSHORTLINK)
@echo "-> remove binary"
.PHONY: depend
depend: $(SCIPDIR)
$(SHELL) -ec '$(DCXX) $(FLAGS) $(DFLAGS) $(SCIPGNNSRCFILES) \
| sed '\''s|^\([0-9A-Za-z\_]\{1,\}\)\.o *: *$(SRCDIR)/\([0-9A-Za-z_/]*\).c|$$\(OBJDIR\)/\2.o: $(SRCDIR)/\2.c|g'\'' \
>$(SCIPGNNDEP)'
# include dependencies
-include $(SCIPGNN)
# link targets
$(SCIPGNNFILE): $(BINDIR) $(OBJDIR) $(SCIPLIBFILE) $(LPILIBFILE) $(SCIPGNNOBJFILES)
@echo "-> linking $@"
ifdef LINKCCSCIPALL
-$(CXX) $(SCIPGNNOBJFILES) $(LINKCCSCIPALL) -o $@
else
-$(CXX) $(SCIPGNNOBJFILES) -L$(SCIPDIR)/lib -l$(SCIPLIB) -l$(OBJSCIPLIB) -l$(LPILIB) -l$(NLPILIB) $(OFLAGS) $(LPSLDFLAGS) $(LDFLAGS) -o $@
endif
# ----------------------------------------------------------------------------
$(OBJDIR)/%.o: $(SRCDIR)/%.c
@echo "-> compiling $@"
$(CC) $(FLAGS) $(OFLAGS) $(BINOFLAGS) $(CFLAGS) $(CC_c) $< $(CC_o)$@
$(OBJDIR)/%.o: $(SRCDIR)/%.cpp
@echo "-> compiling $@"
$(CXX) $(FLAGS) $(OFLAGS) $(LIBOFLAGS) $(CXXFLAGS) $(CXX_c)$< $(CXX_o)$@
# --- EOF ---------------------------------------------------------------------