1# BEGIN LICENSE BLOCK 2# Version: CMPL 1.1 3# 4# The contents of this file are subject to the Cisco-style Mozilla Public 5# License Version 1.1 (the "License"); you may not use this file except 6# in compliance with the License. You may obtain a copy of the License 7# at www.eclipse-clp.org/license. 8# 9# Software distributed under the License is distributed on an "AS IS" 10# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 11# the License for the specific language governing rights and limitations 12# under the License. 13# 14# The Original Code is The ECLiPSe Constraint Logic Programming System. 15# The Initial Developer of the Original Code is Cisco Systems, Inc. 16# Portions created by the Initial Developer are 17# Copyright (C) 2006 Cisco Systems, Inc. All Rights Reserved. 18# 19# Contributor(s): 20# 21# END LICENSE BLOCK 22# 23# Makefile for icparc_solvers 24# $Id: Makefile.in,v 1.11 2014/10/25 04:11:53 kish_shen Exp $ 25# 26 27# The location of third party software releases, e.g. Cplex, Xpress 28THIRDPARTY=@ECLIPSETHIRDPARTY@ 29 30# Which eplex interface versions to build 31XPRESS_VERSIONS = @XPRESS_VERSIONS@ 32CPLEX_VERSIONS = @CPLEX_VERSIONS@ 33OSI_VERSIONS = @OSI_VERSIONS@ 34GUROBI_VERSION = @GUROBI_VERSION@ 35GUROBIDIR = @GUROBIDIR@ 36 37ARCH = @ARCH@ 38top_srcdir = @top_srcdir@ 39PREFIX = @prefix@ 40ECLIPSEDIR = $(PREFIX) 41MAKEFILE = Makefile.$(ARCH) 42OSCLASS = @OSCLASS@ 43 44CC = @CC@ 45CXX = @CXX@ 46AR = @AR@ 47CFLAGS = @CFLAGS@ @OPT_FLAGS@ 48OS_INCLUDES = @OS_INCLUDES@ 49LIB_PREFIX = @LIB_PREFIX@ 50OBJ_SUFFIX = @OBJECTS_SUFFIX@ 51DLIBDIR = @DLIBDIR@ 52DYNLDFLAGS = @DYNLDFLAGS@ 53DYLD = @DYLD@ 54EXEEXT = @EXEEXT@ 55GMP_LD = @GMP_LD@ 56FLOAT_ROUND_FLAGS = @FLOAT_ROUND_FLAGS@ 57 58CPPFLAGS = -I. -I$(ECLIPSEDIR)/include/$(ARCH) -I$(ECLIPSEDIR)/Kernel/src $(OS_INCLUDES) 59STDCXXLIB = @STDCXXLIB@ 60ECLIBS = -L$(ECLIPSEDIR)/lib/$(ARCH) -leclipse @LIBS@ 61 62 63PERM = a+r,u+w,go-w 64DIRPERM = 2755 65 66.SUFFIXES: $(SUFFIXES) .$(OBJ_SUFFIX) 67 68.c.o: 69 $(CC) $(CFLAGS) $(CPPFLAGS) -c $< 70 71 72# List of shared libraries to build 73 74OBJ_FILES = \ 75 $(OSI_VERSIONS:%=$(ARCH)/seosi%.$(OBJ_SUFFIX)) \ 76 $(XPRESS_VERSIONS:%=$(ARCH)/sexpress%.$(OBJ_SUFFIX)) \ 77 $(CPLEX_VERSIONS:%=$(ARCH)/secplex%.$(OBJ_SUFFIX)) \ 78 $(GUROBI_VERSION:%=$(ARCH)/segurobi%.$(OBJ_SUFFIX)) 79 80 81# install is configured as either install_eplex or nothing 82install: @INSTALL_EPLEX@ 83 84# install_eplex is configured as install_all or install_cross 85install_eplex: @MAKE_TARGET@ 86 87# Objects 88all: $(OBJ_FILES) 89 90 91#---------------------------------------------------------------------- 92# EPLEX/OSI 93#---------------------------------------------------------------------- 94 95CLPCBCDIR = @CLPCBCDIR@ 96SYMCLPDIR = @SYMCLPDIR@ 97OSIGLPKDIR = @OSIGLPKDIR@ 98 99CLPCBCARCHDIR = $(CLPCBCDIR)/$(ARCH) 100SYMCLPARCHDIR = $(SYMCLPDIR)/$(ARCH) 101OSIGLPKARCHDIR = $(OSIGLPKDIR)/$(ARCH) 102 103COINOSILIBS = -lOsi -lCoinUtils 104COINCLPLIBS = -lOsiClp -lCgl -lClp 105COINCBCLIBS = -lCbcSolver -lCbc 106 107$(ARCH)/seosiclpcbc.$(OBJ_SUFFIX): eplex.c coinplex.cpp eplex_coin.h eplex_coin.c eplex.h coinplex_params.h 108 $(CXX) -DCOIN -DCOIN_USE_CLP @OSICLP_ADDDEF@ $(CPPFLAGS) $(CFLAGS) -I$(CLPCBCARCHDIR)/include -c coinplex.cpp 109 $(CC) -DCOIN -DCOIN_USE_CLP -DC_TO_COIN $(CPPFLAGS) $(CFLAGS) -c eplex.c 110 $(DYLD) $(DYNLDFLAGS) eplex.o coinplex.o $(CLPCBCARCHDIR)/lib/CbcBranchUser.o $(CLPCBCARCHDIR)/lib/CbcCompareUser.o -L$(CLPCBCARCHDIR)/lib $(COINCBCLIBS) $(COINCLPLIBS) @OSICLP_ADDLIB@ $(COINOSILIBS) $(STDCXXLIB) $(ECLIBS) $(GMP_LD) -o seosiclpcbc.$(OBJ_SUFFIX) 111 [ -d $(ARCH) ] || mkdir $(ARCH) 112 mv seosiclpcbc.$(OBJ_SUFFIX) $(ARCH)/seosiclpcbc.$(OBJ_SUFFIX) 113 114$(ARCH)/seosisymclp.$(OBJ_SUFFIX): eplex.c coinplex.cpp eplex_coin.h eplex_coin.c eplex.h 115 $(CXX) -DCOIN -DCOIN_USE_SYM $(CPPFLAGS) $(CFLAGS) -I$(SYMCLPARCHDIR)/include -c coinplex.cpp 116 $(CC) -DCOIN -DC_TO_COIN $(CPPFLAGS) $(CFLAGS) -c eplex.c 117 $(DYLD) $(DYNLDFLAGS) eplex.o coinplex.o -L$(SYMCLPARCHDIR)/lib -lOsiSym -lSym $(COINCLPLIBS) $(COINOSILIBS) $(STDCXXLIB) $(ECLIBS) $(GMP_LD) -o seosisymclp.$(OBJ_SUFFIX) 118 [ -d $(ARCH) ] || mkdir $(ARCH) 119 mv seosisymclp.$(OBJ_SUFFIX) $(ARCH)/seosisymclp.$(OBJ_SUFFIX) 120 121$(ARCH)/seosiglpk.$(OBJ_SUFFIX): eplex.c coinplex.cpp eplex_coin.h eplex_coin.c eplex.h 122 $(CXX) -DCOIN -DCOIN_USE_GLPK $(CPPFLAGS) $(CFLAGS) -I$(OSIGLPKARCHDIR)/include -c coinplex.cpp 123 $(CC) -DCOIN -DC_TO_COIN $(CPPFLAGS) $(CFLAGS) -c eplex.c 124 $(DYLD) $(DYNLDFLAGS) eplex.o coinplex.o -L$(OSIGLPKARCHDIR)/lib -lOsiGlpk -lglpk $(COINOSILIBS) $(STDCXXLIB) $(ECLIBS) $(GMP_LD) -o seosiglpk.$(OBJ_SUFFIX) 125 [ -d $(ARCH) ] || mkdir $(ARCH) 126 mv seosiglpk.$(OBJ_SUFFIX) $(ARCH)/seosiglpk.$(OBJ_SUFFIX) 127 128#---------------------------------------------------------------------- 129# EPLEX/CPLEX 130#---------------------------------------------------------------------- 131 132CPLEX90_SUPPORT_i386_nt = $(THIRDPARTY)/cplex90/bin/i386_nt/cplex90.dll 133CPLEX102_SUPPORT_i386_nt = $(THIRDPARTY)/cplex102/bin/i386_nt/cplex102.dll 134CPLEX110_SUPPORT_i386_nt = $(THIRDPARTY)/cplex110/bin/i386_nt/cplex110.dll 135CPLEX121_SUPPORT_i386_nt = $(THIRDPARTY)/cplex121/bin/x86_win32/cplex121.dll 136CPLEX121_SUPPORT_x86_64_nt = $(THIRDPARTY)/cplex121/bin/x64_win64/cplex121.dll 137CPLEX122_SUPPORT_x86_64_nt = $(THIRDPARTY)/cplex122/bin/x64_win64/cplex122.dll 138CPLEX124_SUPPORT_x86_64_nt = $(THIRDPARTY)/cplex124/bin/x64_win64/cplex124.dll 139CPLEX1251_SUPPORT_x86_64_nt = $(THIRDPARTY)/cplex1251/bin/x64_win64/cplex1251.dll 140 141 142sparc_sunos5/secplex65.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 143 $(CC) -DCPLEX=6 -DCPLEXMINOR=5 $(CPPFLAGS) $(CFLAGS) -I/usr/local/cplex65 -c eplex.c 144 $(CC) -G eplex.o /usr/local/cplex65/libcplex.a $(ECLIBS) -o secplex.so 145 [ -d sparc_sunos5 ] || mkdir sparc_sunos5 146 mv secplex.so sparc_sunos5/secplex65.so 147 148sparc_sunos5/secplex75.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 149 $(CC) -DCPLEX=7 -DCPLEXMINOR=5 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex75/include/ilcplex -c eplex.c 150 $(CC) -G eplex.o $(THIRDPARTY)/cplex75/lib/sparc_sunos5/static_pic_mt/libcplex.a $(ECLIBS) -o secplex.so 151 [ -d sparc_sunos5 ] || mkdir sparc_sunos5 152 mv secplex.so sparc_sunos5/secplex75.so 153 154sparc_sunos5/secplex81.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 155 $(CC) -DCPLEX=8 -DCPLEXMINOR=1 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex81/include/ilcplex -c eplex.c 156 $(CC) -G eplex.o $(THIRDPARTY)/cplex811/lib/sparc_sunos5/static_pic_mt/libcplex.a $(ECLIBS) -lpthread -o secplex.so 157 [ -d sparc_sunos5 ] || mkdir sparc_sunos5 158 mv secplex.so sparc_sunos5/secplex81.so 159 160sparc_sunos5/secplex90.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 161 $(CC) -DCPLEX=9 -DCPLEXMINOR=0 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex90/include/ilcplex -c eplex.c 162 $(CC) -G eplex.o $(THIRDPARTY)/cplex90/lib/sparc_sunos5/static_pic_mt/libcplex.a $(ECLIBS) -lpthread -o secplex.so 163 [ -d sparc_sunos5 ] || mkdir sparc_sunos5 164 mv secplex.so sparc_sunos5/secplex90.so 165 166sparc_sunos5/secplex102.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 167 $(CC) -DCPLEX=10 -DCPLEXMINOR=2 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex102/include/ilcplex -c eplex.c 168 $(CC) -G eplex.o $(THIRDPARTY)/cplex102/lib/sparc_sunos5/static_pic_mt/libcplex.a $(ECLIBS) -lpthread -o secplex.so 169 [ -d sparc_sunos5 ] || mkdir sparc_sunos5 170 mv secplex.so sparc_sunos5/secplex102.so 171 172sparc_sunos5/secplex110.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 173 $(CC) -DCPLEX=11 -DCPLEXMINOR=0 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex110/include/ilcplex -c eplex.c 174 $(CC) -G eplex.o $(THIRDPARTY)/cplex110/lib/sparc_sunos5/static_pic_mt/libcplex.a $(ECLIBS) -lpthread -o secplex.so 175 [ -d sparc_sunos5 ] || mkdir sparc_sunos5 176 mv secplex.so sparc_sunos5/secplex110.so 177 178sparc_sunos5/secplex121.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 179 $(CC) -DCPLEX=12 -DCPLEXMINOR=1 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex121/include/ilcplex -c eplex.c 180 $(CC) -G eplex.o $(THIRDPARTY)/cplex121/lib/sparc_sunos5/static_pic_mt/libcplex.a $(ECLIBS) -lpthread -o secplex.so 181 [ -d sparc_sunos5 ] || mkdir sparc_sunos5 182 mv secplex.so sparc_sunos5/secplex121.so 183 184sparc_sunos5/secplex122.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 185 $(CC) -DCPLEX=12 -DCPLEXMINOR=2 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex122/include/ilcplex -c eplex.c 186 $(CC) -G eplex.o $(THIRDPARTY)/cplex122/lib/sparc_sunos5/static_pic_mt/libcplex.a $(ECLIBS) -lpthread -o secplex.so 187 [ -d sparc_sunos5 ] || mkdir sparc_sunos5 188 mv secplex.so sparc_sunos5/secplex122.so 189 190i386_linux/secplex65.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 191 $(CC) -DCPLEX=6 -DCPLEXMINOR=5 $(CPPFLAGS) $(CFLAGS) -I/usr/local/cplex -c eplex.c 192 $(DYLD) $(DYNLDFLAGS) eplex.o /usr/local/cplex/libcplex.a $(ECLIBS) -o secplex.so 193 [ -d i386_linux ] || mkdir i386_linux 194 mv secplex.so i386_linux/secplex65.so 195 196i386_linux/secplex75.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 197 $(CC) -DCPLEX=7 -DCPLEXMINOR=5 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex75/include/ilcplex -c eplex.c 198 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex75/lib/i386_linux/static_pic_mt/libcplex.a -lpthread $(ECLIBS) -o secplex.so 199 [ -d i386_linux ] || mkdir i386_linux 200 mv secplex.so i386_linux/secplex75.so 201 202i386_linux/secplex81.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 203 $(CC) -DCPLEX=8 -DCPLEXMINOR=1 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex811/include/ilcplex -c eplex.c 204 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex811/lib/i386_linux/static_pic_mt/libcplex.a $(ECLIBS) -lpthread -o secplex.so 205 [ -d i386_linux ] || mkdir i386_linux 206 mv secplex.so i386_linux/secplex81.so 207 208i386_linux/secplex90.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 209 $(CC) -DCPLEX=9 -DCPLEXMINOR=0 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex90/include/ilcplex -c eplex.c 210 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex90/lib/i386_linux/static_pic/libcplex.a $(ECLIBS) -lpthread -o secplex.so 211 [ -d i386_linux ] || mkdir i386_linux 212 mv secplex.so i386_linux/secplex90.so 213 214 215i386_linux/secplex102.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 216 $(CC) -DCPLEX=10 -DCPLEXMINOR=2 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex102/include/ilcplex -c eplex.c 217 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex102/lib/i386_linux/static_pic/libcplex.a $(ECLIBS) -lpthread -o secplex.so 218 [ -d i386_linux ] || mkdir i386_linux 219 mv secplex.so i386_linux/secplex102.so 220 221i386_linux/secplex110.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 222 $(CC) -DCPLEX=11 -DCPLEXMINOR=0 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex110/include/ilcplex -c eplex.c 223 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex110/lib/i386_linux/static_pic/libcplex.a $(ECLIBS) -lpthread -o secplex.so 224 [ -d i386_linux ] || mkdir i386_linux 225 mv secplex.so i386_linux/secplex110.so 226 227i386_linux/secplex121.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 228 $(CC) -DCPLEX=12 -DCPLEXMINOR=1 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex121/include/ilcplex -c eplex.c 229 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex121/lib/i386_linux/static_pic/libcplex.a $(ECLIBS) -lpthread -o secplex.so 230 [ -d i386_linux ] || mkdir i386_linux 231 mv secplex.so i386_linux/secplex121.so 232 233i386_linux/secplex122.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 234 $(CC) -DCPLEX=12 -DCPLEXMINOR=2 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex122/include/ilcplex -c eplex.c 235 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex122/lib/i386_linux/static_pic/libcplex.a $(ECLIBS) -lpthread -o secplex.so 236 [ -d i386_linux ] || mkdir i386_linux 237 mv secplex.so i386_linux/secplex122.so 238 239i386_nt/secplex90.dll: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 240 $(CC) -DCPLEX=9 -DCPLEXMINOR=0 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex90/include/ilcplex -c eplex.c 241 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex90/lib/i386_nt/stat_mda/cplex90.lib $(ECLIBS) -o secplex.dll 242 [ -d i386_nt ] || mkdir i386_nt 243 mv secplex.dll i386_nt/secplex90.dll 244 cp $(CPLEX90_SUPPORT_i386_nt) i386_nt/ 245 cp $(CPLEX90_SUPPORT_i386_nt) ../lib/i386_nt/ 246 247i386_nt/secplex102.dll: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 248 $(CC) -DCPLEX=10 -DCPLEXMINOR=2 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex102/include/ilcplex -c eplex.c 249 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex102/lib/i386_nt/cplex102.lib $(ECLIBS) -o secplex.dll 250 [ -d i386_nt ] || mkdir i386_nt 251 mv secplex.dll i386_nt/secplex102.dll 252 cp $(CPLEX102_SUPPORT_i386_nt) i386_nt/ 253 cp $(CPLEX102_SUPPORT_i386_nt) ../lib/i386_nt/ 254 255i386_nt/secplex110.dll: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 256 $(CC) -DCPLEX=11 -DCPLEXMINOR=0 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex110/include/ilcplex -c eplex.c 257 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex110/lib/i386_nt/cplex110.lib $(ECLIBS) -o secplex.dll 258 [ -d i386_nt ] || mkdir i386_nt 259 mv secplex.dll i386_nt/secplex110.dll 260 cp $(CPLEX110_SUPPORT_i386_nt) i386_nt/ 261 cp $(CPLEX110_SUPPORT_i386_nt) ../lib/i386_nt/ 262 263i386_nt/secplex121.dll: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 264 $(CC) -DCPLEX=12 -DCPLEXMINOR=1 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex121/include/ilcplex -c eplex.c 265 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex121/lib/x86_windows_vs2008/stat_mda/cplex121.lib $(ECLIBS) -o secplex.dll 266 [ -d i386_nt ] || mkdir i386_nt 267 mv secplex.dll i386_nt/secplex121.dll 268 cp $(CPLEX121_SUPPORT_i386_nt) i386_nt/ 269 cp $(CPLEX121_SUPPORT_i386_nt) ../lib/i386_nt/ 270 271i386_nt/secplex122.dll: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 272 $(CC) -DCPLEX=12 -DCPLEXMINOR=2 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex122/include/ilcplex -c eplex.c 273 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex122/lib/x86_windows_vs2008/stat_mda/cplex122.lib $(ECLIBS) -o secplex.dll 274 [ -d i386_nt ] || mkdir i386_nt 275 mv secplex.dll i386_nt/secplex122.dll 276 cp $(CPLEX122_SUPPORT_i386_nt) i386_nt/ 277 cp $(CPLEX122_SUPPORT_i386_nt) ../lib/i386_nt/ 278 279x86_64_nt/secplex121.dll: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 280 $(CC) -DCPLEX=12 -DCPLEXMINOR=1 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex121/include/ilcplex -c eplex.c 281 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex121/bin/x64_win64/cplex121.dll $(ECLIBS) -o secplex.dll 282 [ -d x86_64_nt ] || mkdir x86_64_nt 283 mv secplex.dll x86_64_nt/secplex121.dll 284 cp $(CPLEX121_SUPPORT_x86_64_nt) x86_64_nt/ 285 cp $(CPLEX121_SUPPORT_x86_64_nt) ../lib/x86_64_nt/ 286 287x86_64_nt/secplex122.dll: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 288 $(CC) -DCPLEX=12 -DCPLEXMINOR=2 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex122/include/ilcplex -c eplex.c 289 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex122/bin/x64_win64/cplex122.dll $(ECLIBS) -o secplex.dll 290 [ -d x86_64_nt ] || mkdir x86_64_nt 291 mv secplex.dll x86_64_nt/secplex122.dll 292 cp $(CPLEX122_SUPPORT_x86_64_nt) x86_64_nt/ 293 cp $(CPLEX122_SUPPORT_x86_64_nt) ../lib/x86_64_nt/ 294 295x86_64_nt/secplex124.dll: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 296 $(CC) -DCPLEX=12 -DCPLEXMINOR=4 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex124/include/ilcplex -c eplex.c 297 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex124/bin/x64_win64/cplex124.dll $(ECLIBS) -o secplex.dll 298 [ -d x86_64_nt ] || mkdir x86_64_nt 299 mv secplex.dll x86_64_nt/secplex124.dll 300 cp $(CPLEX124_SUPPORT_x86_64_nt) x86_64_nt/ 301 cp $(CPLEX124_SUPPORT_x86_64_nt) ../lib/x86_64_nt/ 302 303x86_64_nt/secplex1251.dll: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 304 $(CC) -DCPLEX=12 -DCPLEXMINOR=5 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex1251/include/ilcplex -c eplex.c 305 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex1251/bin/x64_win64/cplex1251.dll $(ECLIBS) -o secplex.dll 306 [ -d x86_64_nt ] || mkdir x86_64_nt 307 mv secplex.dll x86_64_nt/secplex1251.dll 308 cp $(CPLEX1251_SUPPORT_x86_64_nt) x86_64_nt/ 309 cp $(CPLEX1251_SUPPORT_x86_64_nt) ../lib/x86_64_nt/ 310 311x86_64_linux/secplex90.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 312 $(CC) -DCPLEX=9 -DCPLEXMINOR=0 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex90/include/ilcplex -c eplex.c 313 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex90/lib/x86_64_linux/static_pic/libcplex.a $(ECLIBS) -lpthread -o secplex.so 314 [ -d x86_64_linux ] || mkdir x86_64_linux 315 mv secplex.so x86_64_linux/secplex90.so 316 317x86_64_linux/secplex102.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 318 $(CC) -DCPLEX=10 -DCPLEXMINOR=2 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex102/include/ilcplex -c eplex.c 319 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex102/lib/x86_64_linux/static_pic/libcplex.a $(ECLIBS) -lpthread -o secplex.so 320 [ -d x86_64_linux ] || mkdir x86_64_linux 321 mv secplex.so x86_64_linux/secplex102.so 322 323x86_64_linux/secplex110.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 324 $(CC) -DCPLEX=11 -DCPLEXMINOR=0 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex110/include/ilcplex -c eplex.c 325 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex110/lib/x86_64_linux/static_pic/libcplex.a $(ECLIBS) -lpthread -o secplex.so 326 [ -d x86_64_linux ] || mkdir x86_64_linux 327 mv secplex.so x86_64_linux/secplex110.so 328 329x86_64_linux/secplex121.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 330 $(CC) -DCPLEX=12 -DCPLEXMINOR=1 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex121/include/ilcplex -c eplex.c 331 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex121/lib/x86_64_linux/static_pic/libcplex.a $(ECLIBS) -lpthread -o secplex.so 332 [ -d x86_64_linux ] || mkdir x86_64_linux 333 mv secplex.so x86_64_linux/secplex121.so 334 335x86_64_linux/secplex122.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 336 $(CC) -DCPLEX=12 -DCPLEXMINOR=2 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex122/include/ilcplex -c eplex.c 337 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex122/lib/x86_64_linux/static_pic/libcplex.a $(ECLIBS) -lpthread -o secplex.so 338 [ -d x86_64_linux ] || mkdir x86_64_linux 339 mv secplex.so x86_64_linux/secplex122.so 340 341x86_64_linux/secplex124.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 342 $(CC) -DCPLEX=12 -DCPLEXMINOR=4 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex124/include/ilcplex -c eplex.c 343 $(CC) -shared eplex.o $(THIRDPARTY)/cplex124/lib/x86_64_linux/static_pic/libcplex.a $(ECLIBS) -lpthread -o secplex.so 344 [ -d x86_64_linux ] || mkdir x86_64_linux 345 mv secplex.so x86_64_linux/secplex124.so 346 347x86_64_linux/secplex126.so: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 348 $(CC) -DCPLEX=12 -DCPLEXMINOR=6 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex126/include/ilcplex -c eplex.c 349 $(CC) -shared eplex.o $(THIRDPARTY)/cplex126/lib/x86_64_linux/static_pic/libcplex.a $(ECLIBS) -lpthread -o secplex.so 350 [ -d x86_64_linux ] || mkdir x86_64_linux 351 mv secplex.so x86_64_linux/secplex126.so 352 353i386_macosx/secplex110.dylib: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 354 $(CC) -DCPLEX=11 -DCPLEXMINOR=0 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex110/include/ilcplex -c eplex.c 355 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex110/lib/i386_macosx/static_pic/libcplex.a $(ECLIBS) $(GMP_LD) -lIOKit -lpthread -o secplex.dylib 356 [ -d i386_macosx ] || mkdir i386_macosx 357 mv secplex.dylib i386_macosx/secplex110.dylib 358 359i386_macosx/secplex121.dylib: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 360 $(CC) -DCPLEX=12 -DCPLEXMINOR=1 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex121/include/ilcplex -c eplex.c 361 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex121/lib/i386_macosx/static_pic/libcplex.a $(ECLIBS) $(GMP_LD) -lIOKit -lpthread -o secplex.dylib 362 [ -d i386_macosx ] || mkdir i386_macosx 363 mv secplex.dylib i386_macosx/secplex121.dylib 364 365i386_macosx/secplex122.dylib: eplex.c eplex_cplex.h eplex_cplex.c eplex.h 366 $(CC) -DCPLEX=12 -DCPLEXMINOR=2 $(CPPFLAGS) $(CFLAGS) -I$(THIRDPARTY)/cplex122/include/ilcplex -c eplex.c 367 $(DYLD) $(DYNLDFLAGS) eplex.o $(THIRDPARTY)/cplex122/lib/i386_macosx/static_pic/libcplex.a $(ECLIBS) $(GMP_LD) -lIOKit -lpthread -o secplex.dylib 368 [ -d i386_macosx ] || mkdir i386_macosx 369 mv secplex.dylib i386_macosx/secplex122.dylib 370 371#---------------------------------------------------------------------- 372# EPLEX/XPRESS 373#---------------------------------------------------------------------- 374 375XPRESS_VERSION_NAMES = $(XPRESS_VERSIONS:%=express%) 376XPRESS_WORKING_DIRS = $(XPRESS_VERSION_NAMES:%=$(ARCH)/%) 377XPRESS_DEST_DIRS = $(XPRESS_WORKING_DIRS:%=$(PREFIX)/lib/%) 378 379 380# Locations of XPRESS versions, list of support files, and 381# rules to copy them to their destination. 382# 383# For adding a new version: 384# - add new version number in toplevel configure.ac 385# - for XPRESS, add XPRESS<version>, SUPPORT_* below, and add 386# rules for copying the SUPPORT_* files from their actual location 387# - write the rules for compiling the eplex C code for each version 388 389# XPRESS 13 390XPRESS13 = $(THIRDPARTY)/xosl13 391XPRESS1326 = $(THIRDPARTY)/xosl1326 392XPRESS1326icp = $(THIRDPARTY)/xosl1326icp 393 394 395# XPRESS 14 396# the version of libxprs.so we link against has to be in the form .so.X.Y 397# for Solaris as Xpress always look for this name when loading 398XPRESS14 = $(THIRDPARTY)/xosl14 399XPRESS1427 = $(THIRDPARTY)/xosl1427 400XPRESS1427_SUPPORT_i386_nt = \ 401 $(XPRESS1427)/$(ARCH)/bin/xprs.dll \ 402 $(XPRESS1427)/$(ARCH)/bin/xprl.dll 403XPRESS1427_SUPPORT_sparc_sunos5 = \ 404 $(XPRESS1427)/$(ARCH)/lib/libxprs.so.14.27 \ 405 $(XPRESS1427)/$(ARCH)/lib/libxprl.so.1.1 406XPRESS1427_SUPPORT_i386_linux = \ 407 $(XPRESS1427_SUPPORT_sparc_sunos5) 408 409$(ARCH)/express1427: $(XPRESS1427) 410 mkdir -p $@ 411 @/bin/chmod $(DIRPERM) $@ 412 /bin/cp $(XPRESS1427_SUPPORT_$(ARCH)) $(XPRESS1427_SUPPORT) $@ 413 -@/bin/chmod $(PERM) $@/* 414 415$(PREFIX)/lib/$(ARCH)/express1427: $(ARCH)/express1427 416 mkdir -p $@ 417 @/bin/chmod $(DIRPERM) $@ 418 /bin/cp -pr $</* $@ 419 -@/bin/chmod $(PERM) $@ 420 421 422# XPRESS 14icp 423XPRESS1427icp = $(THIRDPARTY)/xosl1427icp 424XPRESS1427icp_SUPPORT = \ 425 $(XPRESS14)/lic_icp/xpress.lic 426XPRESS1427icp_SUPPORT_sparc_sunos5 = \ 427 $(XPRESS1427icp)/$(ARCH)/lib/libxprs.so.14.27 \ 428 $(XPRESS1427icp)/$(ARCH)/lib/libxprl.so.1.1 429XPRESS1427icp_SUPPORT_i386_linux = \ 430 $(XPRESS1427icp_SUPPORT_sparc_sunos5) 431 432$(ARCH)/express1427icp: $(XPRESS1427icp) 433 mkdir -p $@ 434 @/bin/chmod $(DIRPERM) $@ 435 /bin/cp $(XPRESS1427icp_SUPPORT_$(ARCH)) $(XPRESS1427icp_SUPPORT) $@ 436 -@/bin/chmod $(PERM) $@/* 437 438$(PREFIX)/lib/$(ARCH)/express1427icp: $(ARCH)/express1427icp 439 mkdir -p $@ 440 @/bin/chmod $(DIRPERM) $@ 441 /bin/cp -pr $</* $@ 442 -@/bin/chmod $(PERM) $@ 443 444 445# XPRESS 15 446XPRESS15 = $(THIRDPARTY)/xosl15 447XPRESS1525 = $(THIRDPARTY)/xosl1525 448XPRESS1525_SUPPORT = \ 449 $(XPRESS1525)/$(ARCH)/bin/dash$(EXEEXT) \ 450 $(XPRESS1525)/$(ARCH)/bin/lmgrd$(EXEEXT) 451XPRESS1525_SUPPORT_i386_nt = \ 452 $(XPRESS1525)/$(ARCH)/bin/xprs.dll \ 453 $(XPRESS1525)/$(ARCH)/bin/xprl.dll 454XPRESS1525_SUPPORT_sparc_sunos5 = \ 455 $(XPRESS1525)/$(ARCH)/lib/libxprs.so.15.25 \ 456 $(XPRESS1525)/$(ARCH)/lib/libxprl.so.2004 457XPRESS1525_SUPPORT_i386_linux = \ 458 $(XPRESS1525_SUPPORT_sparc_sunos5) 459 460$(ARCH)/express1525: $(XPRESS1525) 461 mkdir -p $@ 462 @/bin/chmod $(DIRPERM) $@ 463 /bin/cp $(XPRESS1525_SUPPORT_$(ARCH)) $(XPRESS1525_SUPPORT) $@ 464 -@/bin/chmod $(PERM) $@/* 465 466$(PREFIX)/lib/$(ARCH)/express1525: $(ARCH)/express1525 467 mkdir -p $@ 468 @/bin/chmod $(DIRPERM) $@ 469 /bin/cp -pr $</* $@ 470 -@/bin/chmod $(PERM) $@ 471 472 473# XPRESS 16 474XPRESS16 = $(THIRDPARTY)/xosl16 475XPRESS1601 = $(THIRDPARTY)/xosl1601 476XPRESS1601_SUPPORT = \ 477 $(XPRESS1601)/$(ARCH)/bin/dash$(EXEEXT) \ 478 $(XPRESS1601)/$(ARCH)/bin/lmgrd$(EXEEXT) 479XPRESS1601_SUPPORT_i386_nt = \ 480 $(XPRESS1601)/$(ARCH)/lib/xprs.dll \ 481 $(XPRESS1601)/$(ARCH)/lib/xprl.dll 482XPRESS1601_SUPPORT_sparc_sunos5 = \ 483 $(XPRESS1601)/$(ARCH)/lib/libxprs.so.16.01 \ 484 $(XPRESS1601)/$(ARCH)/lib/libxprl.so.2005 485XPRESS1601_SUPPORT_i386_linux = \ 486 $(XPRESS1601_SUPPORT_sparc_sunos5) 487 488$(ARCH)/express1601: $(XPRESS1601) 489 mkdir -p $@ 490 @/bin/chmod $(DIRPERM) $@ 491 /bin/cp $(XPRESS1601_SUPPORT_$(ARCH)) $(XPRESS1601_SUPPORT) $@ 492 -@/bin/chmod $(PERM) $@/* 493 494$(PREFIX)/lib/$(ARCH)/express1601: $(ARCH)/express1601 495 mkdir -p $@ 496 @/bin/chmod $(DIRPERM) $@ 497 /bin/cp -pr $</* $@ 498 -@/bin/chmod $(PERM) $@ 499 500 501# XPRESS 20 502XPRESS2000 = $(THIRDPARTY)/xosl2000 503XPRESS2000_SUPPORT= 504XPRESS2000_SUPPORT_x86_64_linux = \ 505 $(XPRESS2000)/$(ARCH)/lib/libxprs.so \ 506 $(XPRESS2000)/$(ARCH)/lib/libxprl.so 507 508$(ARCH)/express2000: $(XPRESS2000) 509 mkdir -p $@ 510 @/bin/chmod $(DIRPERM) $@ 511 /bin/cp $(XPRESS2000_SUPPORT_$(ARCH)) $(XPRESS2000_SUPPORT) $@ 512 -@/bin/chmod $(PERM) $@/* 513 514$(PREFIX)/lib/$(ARCH)/express2000: $(ARCH)/express2000 515 mkdir -p $@ 516 @/bin/chmod $(DIRPERM) $@ 517 /bin/cp -pr $</* $@ 518 -@/bin/chmod $(PERM) $@ 519 520 521# compile rules 522sparc_sunos5/sexpress1525.so: eplex.c $(ARCH)/express1525 523 $(CC) -DXPRESS=15 $(CPPFLAGS) $(CFLAGS) -I$(XPRESS1525)/$(ARCH)/include -c eplex.c 524 $(CC) -G eplex.o $(ARCH)/express1525/libxprs.so.15.25 $(ECLIBS) -o sexpress.so 525 [ -d sparc_sunos5 ] || mkdir sparc_sunos5 526 mv sexpress.so sparc_sunos5/sexpress1525.so 527 528sparc_sunos5/sexpress1427icp.so: eplex.c $(ARCH)/express1427icp 529 $(CC) -DXPRESS=14 -DXPRESS_OEM_ICPARC_2002 $(CPPFLAGS) $(CFLAGS) -I$(XPRESS1427)/$(ARCH)/include -c eplex.c 530 $(CC) -G eplex.o $(ARCH)/express1427icp/libxprs.so.14.27 $(ARCH)/express1427icp/libxprl.so.1.1 $(ECLIBS) -lpthread -o sexpress.so 531 [ -d sparc_sunos5 ] || mkdir sparc_sunos5 532 mv sexpress.so sparc_sunos5/sexpress1427icp.so 533 534sparc_sunos5/sexpress1427.so: eplex.c $(ARCH)/express1427 535 $(CC) -DXPRESS=14 $(CPPFLAGS) $(CFLAGS) -I$(XPRESS1427)/$(ARCH)/include -c eplex.c 536 $(CC) -G eplex.o $(ARCH)/express1427/libxprs.so.14.27 $(ECLIBS) -o sexpress.so 537 [ -d sparc_sunos5 ] || mkdir sparc_sunos5 538 mv sexpress.so sparc_sunos5/sexpress1427.so 539 540sparc_sunos5/sexpress1326icp.so: eplex.c 541 $(CC) -DXPRESS=13 -DXPRESS_OEM_ICPARC_2002 $(CPPFLAGS) $(CFLAGS) -I$(XPRESS1326icp)/$(ARCH)/include -c eplex.c 542 $(CC) -G eplex.o $(XPRESS1326icp)/$(ARCH)/lib/libxprs.a $(ECLIBS) -o sexpress.so 543 [ -d sparc_sunos5 ] || mkdir sparc_sunos5 544 mv sexpress.so sparc_sunos5/sexpress1326icp.so 545 546i386_linux/sexpress1326icp.so: eplex.c 547 $(CC) -DXPRESS=13 -DXPRESS_OEM_ICPARC_2002 $(CPPFLAGS) $(CFLAGS) -I$(XPRESS1326icp)/$(ARCH)/include -c eplex.c 548 $(DYLD) $(DYNLDFLAGS) eplex.o $(XPRESS1326icp)/$(ARCH)/lib/libxprs.a $(ECLIBS) -o sexpress.so 549 [ -d i386_linux ] || mkdir i386_linux 550 mv sexpress.so i386_linux/sexpress1326icp.so 551 552i386_linux/sexpress1427.so: eplex.c $(ARCH)/express1427 553 $(CC) -DXPRESS=14 $(CPPFLAGS) $(CFLAGS) -I$(XPRESS1427)/$(ARCH)/include -c eplex.c 554 $(DYLD) $(DYNLDFLAGS) eplex.o $(ARCH)/express1427/libxprs.so.14.27 $(ECLIBS) -o sexpress.so 555 [ -d i386_linux ] || mkdir i386_linux 556 mv sexpress.so i386_linux/sexpress1427.so 557 558i386_linux/sexpress1427icp.so: eplex.c $(ARCH)/express1427icp 559 $(CC) -DXPRESS=14 -DXPRESS_OEM_ICPARC_2002 $(CPPFLAGS) $(CFLAGS) -I$(XPRESS1427)/$(ARCH)/include -c eplex.c 560 $(DYLD) $(DYNLDFLAGS) eplex.o $(ARCH)/express1427icp/libxprs.so.14.27 $(ECLIBS) -o sexpress.so 561 [ -d i386_linux ] || mkdir i386_linux 562 mv sexpress.so i386_linux/sexpress1427icp.so 563 564i386_linux/sexpress1525.so: eplex.c $(ARCH)/express1525 565 $(CC) -DXPRESS=15 $(CPPFLAGS) $(CFLAGS) -I$(XPRESS1525)/$(ARCH)/include -c eplex.c 566 $(DYLD) $(DYNLDFLAGS) eplex.o $(ARCH)/express1525/libxprs.so.15.25 $(ECLIBS) -o sexpress.so 567 [ -d i386_linux ] || mkdir i386_linux 568 mv sexpress.so i386_linux/sexpress1525.so 569 570i386_linux/sexpress1601.so: eplex.c $(ARCH)/express1601 571 $(CC) -DXPRESS=16 $(CPPFLAGS) $(CFLAGS) -I$(XPRESS1601)/$(ARCH)/include -c eplex.c 572 $(DYLD) $(DYNLDFLAGS) eplex.o $(ARCH)/express1601/libxprs.so.16.01 $(ECLIBS) -o sexpress.so 573 [ -d i386_linux ] || mkdir i386_linux 574 mv sexpress.so i386_linux/sexpress1601.so 575 576x86_64_linux/sexpress2000.so: eplex.c $(ARCH)/express2000 577 $(CC) -DXPRESS=20 $(CPPFLAGS) $(CFLAGS) -I$(XPRESS2000)/$(ARCH)/include -c eplex.c 578 $(DYLD) $(DYNLDFLAGS) eplex.o $(ARCH)/express2000/libxprs.so $(ECLIBS) -o sexpress.so 579 [ -d x86_64_linux ] || mkdir x86_64_linux 580 mv sexpress.so x86_64_linux/sexpress2000.so 581 582 583i386_nt/sexpress1427.dll: eplex.c $(ARCH)/express1427 584 [ -d $(ARCH) ] || mkdir $(ARCH) 585 $(CC) -DXPRESS=14 $(CPPFLAGS) $(CFLAGS) \ 586 -I$(XPRESS1427)/$(ARCH)/include \ 587 -shared -o $@ \ 588 eplex.c \ 589 -L$(XPRESS1427)/$(ARCH)/lib -lxprs $(ECLIBS) 590 591i386_nt/sexpress1525.dll: eplex.c $(ARCH)/express1525 592 [ -d $(ARCH) ] || mkdir $(ARCH) 593 $(CC) -DXPRESS=15 $(CPPFLAGS) $(CFLAGS) \ 594 -I$(XPRESS1525)/$(ARCH)/include \ 595 -shared -o $@ \ 596 eplex.c \ 597 -L$(XPRESS1525)/$(ARCH)/lib -lxprs $(ECLIBS) 598 599 600# to compile bug reports for Dash 601bug14: bug.c 602 $(CC) -g -DXPRESS=14 $(CPPFLAGS) $(CFLAGS) -I$(XPRESS1427)/$(ARCH)/include bug.c $(XPRESS1427)/$(ARCH)/lib/libxprs.so -lm -o bug14 603 604bug65: bug.c 605 $(CC) -g -DCPLEX=6 -DCPLEXMINOR=5 $(CPPFLAGS) $(CFLAGS) -I/usr/local/cplex bug.c /usr/local/cplex/libcplex.a -lm -o bug65 606 607bugclp: bug.c 608 $(CXX) -g -DCOIN -DCOIN_USE_CLP @OSICLP_ADDDEF@ -DNOECLIPSE $(CPPFLAGS) $(CFLAGS) -I$(CLPCBCARCHDIR)/include -c coinplex.cpp 609 $(CC) -DCOIN -DC_TO_COIN $(CPPFLAGS) $(CFLAGS) -DNOECLIPSE -c bug.c 610 $(CC) -g coinplex.o bug.o $(CLPCBCARCHDIR)/lib/CbcBranchUser.o $(CLPCBCARCHDIR)/lib/CbcCompareUser.o -L$(CLPCBCARCHDIR)/lib $(COINCBCLIBS) $(COINCLPLIBS) @OSICLP_ADDLIB@ $(COINOSILIBS) $(STDCXXLIB) -DCOIN -o bugclp 611 612 613#---------------------------------------------------------------------- 614# EPLEX/Gurobi 615#---------------------------------------------------------------------- 616 617$(ARCH)/segurobi$(GUROBI_VERSION).$(OBJ_SUFFIX): eplex.c eplex.h eplex_gurobi.h eplex_gurobi.c 618 [ -d $(ARCH) ] || mkdir $(ARCH) 619 $(CC) -DGUROBI $(CPPFLAGS) $(CFLAGS) -I$(GUROBIDIR)/include -c eplex.c 620 $(DYLD) $(DYNLDFLAGS) eplex.o $(GUROBIDIR)/$(DLIBDIR)/$(LIB_PREFIX)gurobi$(GUROBI_VERSION).$(OBJ_SUFFIX) $(ECLIBS) -o $@ 621 cp $(GUROBIDIR)/$(DLIBDIR)/$(LIB_PREFIX)gurobi$(GUROBI_VERSION).$(OBJ_SUFFIX) $(ARCH) 622 cp $(GUROBIDIR)/$(DLIBDIR)/$(LIB_PREFIX)gurobi$(GUROBI_VERSION).$(OBJ_SUFFIX) ../lib/$(ARCH) 623 624 625#---------------------------------------------------------------------- 626# Installation 627#---------------------------------------------------------------------- 628 629ECLIPSE = $(ECLIPSEDIR)/bin/$(ARCH)/eclipse 630 631EXAMPLE_FILES = 632ECL_ECO_FILES = empty_language.ecl \ 633 bfs.ecl colgen.ecl dual_var.ecl \ 634 b_trees.ecl n_trees.ecl \ 635 eplex.ecl eplex_cplex.ecl eplex_xpress.ecl \ 636 eplex_gurobi.ecl eplex_osi.ecl eplex_osi_clpcbc.ecl \ 637 eplex_osi_symclp.ecl eplex_osi_glpk.ecl mip.ecl 638ECL_ONLY_FILES = eplex_lic_info.ecl 639INCLUDE_ONLY_FILES = colgen_.ecl eplex_.ecl 640ECL_ECI_FILES = bfs.ecl colgen.ecl \ 641 eplex.ecl eplex_xpress.ecl eplex_cplex.ecl \ 642 eplex_gurobi.ecl eplex_osi.ecl eplex_osi_clpcbc.ecl \ 643 eplex_osi_symclp.ecl eplex_osi_glpk.ecl mip.ecl 644 645EXAMPLE_DEST = $(EXAMPLE_FILES:%=$(PREFIX)/doc/examples/tutorial/%) 646ECO_DEST = $(ECL_ECO_FILES:%.ecl=$(PREFIX)/lib/%.eco) 647SOURCE_DEST = $(ECL_ECO_FILES:%.ecl=$(PREFIX)/lib/%.ecl) \ 648 $(ECL_ONLY_FILES:%=$(PREFIX)/lib/%) \ 649 $(INCLUDE_ONLY_FILES:%=$(PREFIX)/lib/%) 650ECI_DEST = $(ECL_ECI_FILES:%.ecl=$(PREFIX)/lib/%.eci) 651OBJ_DEST = $(OBJ_FILES:%=$(PREFIX)/lib/%) 652 653clean: archclean ecoclean 654 rm -f $(EXAMPLE_DEST) $(ECH_EXAMPLE_DEST) $(ECI_DEST) 655 656archclean: 657 rm -rf $(ARCH) $(OBJ_DEST) $(XPRESS_DEST_DIRS) 658 659ecoclean: 660 rm -rf *.eco $(ECO_DEST) 661 662install_all: install_cross $(ECO_DEST) $(ECI_DEST) 663 664install_cross: $(XPRESS_DEST_DIRS) $(OBJ_DEST) $(SOURCE_DEST) \ 665 $(EXAMPLE_DEST) $(ECH_EXAMPLE_DEST) 666 667 668%/.stamp: 669 mkdir -p $(@D) 670 @/bin/chmod $(DIRPERM) $(@D) 671 @touch $@; /bin/chmod $(PERM) $@ 672 673 674# general installation rules 675# 676# Note: 677# - before making eci/eco we recursively make the objects. One could have 678# precise dependencies on the relevant objects, but in fact eci/eco don't 679# really depend on the actual external object contents: a change in the 680# object does not require the eco/eci to be rebuilt, this is only necessary 681# if the ecl/pl file changed. 682# - we add . to the library path because some libraries might not yet 683# be installed in ECLIPSEDIR/lib at [fi]compile time 684 685objects: $(OBJ_FILES) 686 687$(PREFIX)/doc/examples/tutorial/%.ecl: %.ecl $(PREFIX)/doc/examples/tutorial/.stamp 688 /bin/cp $< $@ 689 -@/bin/chmod $(PERM) $@ 690 691$(PREFIX)/lib/%.eco: %.pl $(PREFIX)/lib/.stamp 692 @$(MAKE) -f $(MAKEFILE) objects 693 $(ECLIPSE) -e 'get_flag(library_path,P),set_flag(library_path,["."|P]),lib(fcompile), set_flag(variable_names,off), fcompile("$(*F)", [outdir:"$(@D)"])' 694 -@/bin/chmod $(PERM) $@ 695 696$(PREFIX)/lib/%.eco: %.ecl $(PREFIX)/lib/.stamp 697 @$(MAKE) -f $(MAKEFILE) objects 698 LD_LIBRARY_PATH=$(COINARCHDIR)/lib:$(LD_LIBRARY_PATH) $(ECLIPSE) -e 'get_flag(library_path,P),set_flag(library_path,["."|P]),lib(fcompile), set_flag(variable_names,off), fcompile("$(*F)", [outdir:"$(@D)"])' 699 -@/bin/chmod $(PERM) $@ 700 701$(PREFIX)/lib/%.eci: %.ecl $(PREFIX)/lib/.stamp 702 @$(MAKE) -f $(MAKEFILE) objects 703 LD_LIBRARY_PATH=$(COINARCHDIR)/lib:$(LD_LIBRARY_PATH) $(ECLIPSE) -e 'get_flag(library_path,P),set_flag(library_path,["."|P]),lib(document),icompile("$(*F)","$(@D)")' 704 -@/bin/chmod $(PERM) $@ 705 706$(PREFIX)/lib/%.ecl: %.ecl $(PREFIX)/lib/.stamp 707 /bin/cp $< $@ 708 -@/bin/chmod $(PERM) $@ 709 710$(PREFIX)/lib/$(ARCH)/%.$(OBJ_SUFFIX): $(ARCH)/%.$(OBJ_SUFFIX) $(PREFIX)/lib/$(ARCH)/.stamp 711 /bin/cp $< $@ 712 -@/bin/chmod $(PERM) $@ 713 714$(PREFIX)/lib/$(ARCH)/%.dll.a: $(ARCH)/%.dll $(PREFIX)/lib/$(ARCH)/.stamp 715 /bin/cp $< $@ 716 -@/bin/chmod $(PERM) $@ 717 718$(PREFIX)/lib/$(ARCH)/%.def: %.def $(PREFIX)/lib/$(ARCH)/.stamp 719 /bin/cp $< $@ 720 -@/bin/chmod $(PERM) $@ 721 722$(PREFIX)/lib/$(ARCH)/%.def: $(ARCH)/%.def $(PREFIX)/lib/$(ARCH)/.stamp 723 /bin/cp $< $@ 724 -@/bin/chmod $(PERM) $@ 725 726 727# 728# Pretty-print the sources 729# 730 731PRETTY_DIR = $(PREFIX)/doc_internal/lib 732 733HTML_DEST = $(ECL_ECO_FILES:%.ecl=$(PRETTY_DIR)/%.html) \ 734 $(ECL_ONLY_FILES:%.ecl=$(PRETTY_DIR)/%.html) 735 736pretty: $(PRETTY_DIR)/.stamp $(HTML_DEST) 737 738 739$(PRETTY_DIR)/%.html: %.ecl $(PRETTY_DIR)/.stamp 740 -@$(PREFIX)/bin/$(ARCH)/eclipse -e \ 741 "lib(pretty_printer),argv(all,[_,O|F]),pretty_print(F,[outdir:O])" \ 742 -- "$(PRETTY_DIR)" $< 743 744 745 746# additional dependencies for eplex 747 748$(PREFIX)/lib/eplex.eco: eplex.ecl eplex_.ecl 749 750$(PREFIX)/lib/eplex.eci: eplex.ecl eplex_.ecl eplex_comments.ecl 751 752$(PREFIX)/lib/colgen.eco: colgen.ecl colgen_.ecl 753$(PREFIX)/lib/colgen.eci: colgen.ecl colgen_.ecl colgen_comments.ecl 754 755$(PREFIX)/lib/bfs.eci: bfs.ecl bfs_comments.ecl 756 757 758#---------------------------------------------------------------------- 759# Rebuild configured files 760#---------------------------------------------------------------------- 761 762config.h: stamp-h 763stamp-h: config.h.in 764 @( cd $(top_srcdir); \ 765 if grep "hostname = `hostname`" config.log ; then \ 766 ./config.status ; \ 767 else \ 768 echo === Please re-run configure on this host ; \ 769 fi ) 770 771$(MAKEFILE): Makefile.in 772 @( cd $(top_srcdir); \ 773 if grep "hostname = `hostname`" config.log ; then \ 774 ./config.status ; \ 775 else \ 776 echo === Please re-run configure on this host ; \ 777 fi ) 778 779#---------------------------------------------------------------------- 780# Some helpful rules to build COIN-OR Cbc/SYMPHONY in $(THIRDPARTY) 781# We only build static libraries! 782#---------------------------------------------------------------------- 783 784ifeq ($(OSCLASS),win) 785 786# must use absolute path as there are configures for each COIN component 787CONFIG_PREFIX=CONFIG_SITE=$(shell pwd)/../config.$(ARCH) 788 789else 790 791CONFIG_PREFIX= 792 793endif 794 795 796COIN_CBC_VERSION=2.8 797THIRDPARTY_CBC_DEST=$(THIRDPARTY)/coinclpcbc$(COIN_CBC_VERSION)/$(ARCH) 798 799install_cbc: all_cbc 800 mkdir -p $(THIRDPARTY_CBC_DEST)/include 801 mkdir -p $(THIRDPARTY_CBC_DEST)/lib 802 /bin/cp -pr Cbc/$(ARCH)/include/coin/* $(THIRDPARTY_CBC_DEST)/include 803 /bin/cp -pr Cbc/$(ARCH)/lib/* $(THIRDPARTY_CBC_DEST)/lib 804 805all_cbc: basic_cbc 806 make -f Makefile.$(ARCH) Cbc/$(ARCH)/include/coin/CbcBranchUser.hpp 807 make -f Makefile.$(ARCH) Cbc/$(ARCH)/include/coin/CbcCompareUser.hpp 808 make -f Makefile.$(ARCH) Cbc/$(ARCH)/lib/CbcBranchUser.o 809 make -f Makefile.$(ARCH) Cbc/$(ARCH)/lib/CbcCompareUser.o 810 811basic_cbc: Cbc/$(ARCH)/Makefile 812 ( cd Cbc/$(ARCH) ; make install ) 813 814Cbc/$(ARCH)/Makefile: Cbc/configure 815 mkdir -p Cbc/$(ARCH) 816 ( cd Cbc/$(ARCH) ; $(CONFIG_PREFIX) ../configure --host=@host@ --enable-static --disable-shared --disable-zlib --disable-bzlib ADD_CXXFLAGS="$(CFLAGS) -DGENERAL_HANDLER_PRINTING" ADD_CFLAGS="$(CFLAGS) -DGENRAL_HANDLER_PRINTING" F77=unavailable ) 817 818Cbc/configure: 819 svn co https://projects.coin-or.org/svn/Cbc/stable/$(COIN_CBC_VERSION) Cbc 820 821Cbc/$(ARCH)/include/coin/%.hpp: Cbc/Cbc/examples/%.hpp basic_cbc 822 mkdir -p $(@D) 823 /bin/cp $< $@ 824 825Cbc/$(ARCH)/lib/%.o: Cbc/$(ARCH)/Cbc/examples/%.o 826 mkdir -p $(@D) 827 /bin/cp $< $@ 828 829Cbc/$(ARCH)/Cbc/examples/%.o: Cbc/Cbc/examples/%.cpp basic_cbc 830 ( cd $(@D) ; make $(@F) ) 831 832 833 834COIN_SYM_VERSION=5.3 835THIRDPARTY_SYM_DEST=$(THIRDPARTY)/coinsymclp$(COIN_SYM_VERSION)/$(ARCH) 836 837install_sym: all_sym 838 mkdir -p $(THIRDPARTY_SYM_DEST)/include 839 mkdir -p $(THIRDPARTY_SYM_DEST)/lib 840 /bin/cp -pr SYMPHONY/$(ARCH)/include/coin/* $(THIRDPARTY_SYM_DEST)/include 841 /bin/cp -pr SYMPHONY/$(ARCH)/lib/* $(THIRDPARTY_SYM_DEST)/lib 842 843all_sym: SYMPHONY/$(ARCH)/Makefile 844 ( cd SYMPHONY/$(ARCH) ; make install ) 845 846SYMPHONY/$(ARCH)/Makefile: SYMPHONY/configure 847 mkdir -p SYMPHONY/$(ARCH) 848 ( cd SYMPHONY/$(ARCH) ; $(CONFIG_PREFIX) ../configure --host=@host@ --enable-static --disable-shared ADD_CXXFLAGS="$(CFLAGS)" ADD_CFLAGS="$(CFLAGS)" F77=unavailable ) 849 850SYMPHONY/configure: 851 svn co https://projects.coin-or.org/svn/SYMPHONY/stable/$(COIN_SYM_VERSION) SYMPHONY 852 853 854