Files
ortools-clone/makefiles/Makefile.win
2016-07-25 17:47:20 +02:00

138 lines
5.4 KiB
Makefile
Executable File

# Windows specific definitions
PROTOBUF_DIR = $(WINDOWS_PROTOBUF_DIR)
SWIG_BINARY = $(WINDOWS_SWIG_BINARY)
LIB_DIR = $(OR_ROOT)lib
LIB_PREFIX =
STATIC_LIB_SUFFIX = lib
LIB_SUFFIX = lib
BIN_DIR = $(OR_ROOT)bin
GEN_DIR = $(OR_ROOT)src\\gen
OBJ_DIR = $(OR_ROOT)objs
SRC_DIR = $(OR_ROOT)src
EX_DIR = $(OR_ROOT)examples
INC_DIR = $(OR_ROOT)src
LINK_CMD = lib
LINK_PREFIX = /OUT:
STATIC_LINK_CMD = lib
STATIC_LINK_PREFIX = /OUT:
PRE_LIB = $(OR_ROOT)lib\\
POST_LIB = .lib
STATIC_PRE_LIB = $(OR_ROOT)lib\\
STATIC_POST_LIB = .lib
O=obj
E=.exe
OBJ_OUT = /Fo
EXE_OUT = /Fe
SWIG_LIB_SUFFIX = dll
JNI_LIB_EXT = dll
LDOUT = /OUT:
DYNAMIC_LD = link /DLL /LTCG /debug
S = \\
CPSEP =;
DEL = del
DELREC = tools\rm.exe -rf
RENAME = rename
MKDIR = md
MKDIR_P = tools\mkdir.exe -p
COPY = copy
TOUCH = tools\touch.exe
SED = tools\sed.exe
BISON = dependencies\install\bin\win_bison.exe
FLEX = dependencies\install\bin\win_flex.exe
CMAKE = cmake
# Compilation macros.
DEBUG=/O2 -DNDEBUG
ifeq ("$(VISUAL_STUDIO_YEAR)","2015")
CCC=cl /EHsc /MD /nologo /D_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
else
CCC=cl /EHsc /MD /nologo
endif
CSC=csc
GFLAGS_INC = /I$(WINDOWS_GFLAGS_DIR)\\include /DGFLAGS_DLL_DECL= /DGFLAGS_DLL_DECLARE_FLAG= /DGFLAGS_DLL_DEFINE_FLAG=
ZLIB_INC = /I$(WINDOWS_ZLIB_DIR)\\include
PROTOBUF_INC = /I$(WINDOWS_PROTOBUF_DIR)\\include
SPARSEHASH_INC = /I$(WINDOWS_SPARSEHASH_DIR)\\include
PYTHON_VERSION = $(WINDOWS_PYTHON_VERSION)
PYTHON_INC=/I$(WINDOWS_PYTHON_PATH)\\include
PYTHON_LNK=$(WINDOWS_PYTHON_PATH)\\libs\\python$(PYTHON_VERSION).lib
# Define CLP_DIR if unset and if CBC_DIR is set.
ifdef WINDOWS_CBC_DIR
ifndef WINDOWS_CLP_DIR
WINDOWS_CLP_DIR=$(WINDOWS_CBC_DIR)
endif
endif
# This is needed to find Coin LP include files and libraries.
ifdef WINDOWS_CLP_DIR
CLP_INC = /I$(WINDOWS_CLP_DIR)\\include /DUSE_CLP
CLP_SWIG = -DUSE_CLP
DYNAMIC_CLP_LNK = $(WINDOWS_CLP_DIR)\\lib\\coin\\libClp.lib $(WINDOWS_CLP_DIR)\\lib\\coin\\libCoinUtils.lib
STATIC_CLP_LNK = $(WINDOWS_CLP_DIR)\\lib\\coin\\libClp.lib $(WINDOWS_CLP_DIR)\\lib\\coin\\libCoinUtils.lib
endif
# This is needed to find Coin Branch and Cut include files and libraries.
ifdef WINDOWS_CBC_DIR
CBC_INC = /I$(WINDOWS_CBC_DIR)\\include /DUSE_CBC
CBC_SWIG = -DUSE_CBC
DYNAMIC_CBC_LNK = $(WINDOWS_CBC_DIR)\\lib\\coin\\libCbcSolver.lib $(WINDOWS_CBC_DIR)\\lib\\coin\\libCbc.lib $(WINDOWS_CBC_DIR)\\lib\\coin\\libCgl.lib $(WINDOWS_CBC_DIR)\\lib\\coin\\libOsi.lib $(WINDOWS_CBC_DIR)\\lib\\coin\\libOsiClp.lib
STATIC_CBC_LNK = $(WINDOWS_CBC_DIR)\\lib\\coin\\libCbcSolver.lib $(WINDOWS_CBC_DIR)\\lib\\coin\\libCbc.lib $(WINDOWS_CBC_DIR)\\lib\\coin\\libCgl.lib $(WINDOWS_CBC_DIR)\\lib\\coin\\libOsi.lib $(WINDOWS_CBC_DIR)\\lib\\coin\\libOsiClp.lib
endif
# This is needed to find GLPK include files and libraries.
ifdef WINDOWS_GLPK_DIR
GLPK_INC = /I$(WINDOWS_GLPK_DIR)\\include /DUSE_GLPK
GLPK_SWIG = -DUSE_GLPK
DYNAMIC_GLPK_LNK = $(WINDOWS_GLPK_DIR)\\lib\\glpk.lib
STATIC_GLPK_LNK = $(WINDOWS_GLPK_DIR)\\lib\\glpk.lib
endif
# This is needed to find SCIP include files and libraries.
ifdef WINDOWS_SCIP_DIR
SCIP_LNK_DIR = $(OR_ROOT)dependencies\\install
SCIP_INC = /I$(WINDOWS_SCIP_DIR)\\include\\scip /DUSE_SCIP
SCIP_SWIG = -DUSE_SCIP
STATIC_SCIP_LNK = $(SCIP_LNK_DIR)\\lib\\scip.lib $(SCIP_LNK_DIR)\\lib\\soplex.lib
DYNAMIC_SCIP_LNK = $(SCIP_LNK_DIR)\\lib\\scip.lib $(SCIP_LNK_DIR)\\lib\\soplex.lib
endif
# This is needed to find SULUM include files and libraries.
ifdef WINDOWS_SLM_DIR
SLM_INC = /I$(WINDOWS_SLM_DIR)\\header /DUSE_SLM
SLM_SWIG = -DUSE_SLM
DYNAMIC_SLM_LNK = $(WINDOWS_SLM_DIR)\\win$(PTRLENGTH)\\bin\\sulum$(WINDOWS_SULUM_VERSION).lib
STATIC_SLM_LNK = $(WINDOWS_SLM_DIR)\\win$(PTRLENGTH)\\bin\\sulum$(WINDOWS_SULUM_VERSION).lib
endif
ifdef WINDOWS_GUROBI_DIR
ifeq ($(PTRLENGTH),64)
GUROBI_INC = /I$(WINDOWS_GUROBI_DIR)\win64\include /DUSE_GUROBI
GUROBI_SWIG = -I$(WINDOWS_GUROBI_DIR)/win64/include -DUSE_GUROBI
DYNAMIC_GUROBI_LNK = $(WINDOWS_GUROBI_DIR)\win64\lib\gurobi$(GUROBI_LIB_VERSION).lib
STATIC_GUROBI_LNK = $(DYNAMIC_GUROBI_LNK)
else
GUROBI_INC = /I$(WINDOWS_GUROBI_DIR)\win32\include /DUSE_GUROBI
GUROBI_SWIG = -I$(WINDOWS_GUROBI_DIR)/win32/include -DUSE_GUROBI
DYNAMIC_GUROBI_LNK = $(WINDOWS_GUROBI_DIR)\\win32\lib\gurobi$(GUROBI_LIB_VERSION).lib
STATIC_GUROBI_LNK = $(DYNAMIC_GUROBI_LNK)
endif
endif
SWIG_INC = $(GLPK_SWIG) $(CLP_SWIG) $(CBC_SWIG) $(SCIP_SWIG) $(SLM_SWIG) $(GUROBI_SWIG) -DUSE_GLOP -DUSE_BOP
JAVA_INC=/I"$(WINDOWS_JDK_DIR)\\include" /I"$(WINDOWS_JDK_DIR)\\include\\win32"
JAVAC_BIN="$(WINDOWS_JDK_DIR)/bin/javac"
JAVA_BIN="$(WINDOWS_JDK_DIR)/bin/java"
JAR_BIN="$(WINDOWS_JDK_DIR)/bin/jar"
CFLAGS= -nologo $(SYSCFLAGS) $(DEBUG) /I$(INC_DIR) /I$(EX_DIR) /I$(GEN_DIR) \
$(GFLAGS_INC) $(ZLIB_INC) $(MINISAT_INC) $(PROTOBUF_INC) $(CBC_INC) \
$(CLP_INC) $(GLPK_INC) $(SCIP_INC) $(SLM_INC) $(GUROBI_INC) /DUSE_GLOP /DUSE_BOP \
/D__WIN32__ $(SPARSEHASH_INC) /DPSAPI_VERSION=1 $(ARCH)
JNIFLAGS=$(CFLAGS) $(JAVA_INC)
DYNAMIC_GFLAGS_LNK = $(WINDOWS_GFLAGS_DIR)\\lib\\gflags_static.lib
STATIC_GFLAGS_LNK = $(WINDOWS_GFLAGS_DIR)\\lib\\gflags_static.lib
ZLIB_LNK = $(WINDOWS_ZLIB_DIR)\\lib\\$(WINDOWS_ZLIB_NAME)
DYNAMIC_PROTOBUF_LNK = $(PROTOBUF_DIR)\\lib\\libprotobuf.lib
STATIC_PROTOBUF_LNK = $(PROTOBUF_DIR)\\lib\\libprotobuf.lib
SYS_LNK=psapi.lib ws2_32.lib shlwapi.lib
DEPENDENCIES_LNK = $(STATIC_CBC_LNK) $(STATIC_CLP_LNK) $(STATIC_GLPK_LNK) $(STATIC_SCIP_LNK) $(STATIC_SLM_LNK) $(STATIC_GUROBI_LNK) $(STATIC_GFLAGS_LNK) $(STATIC_PROTOBUF_LNK)
OR_TOOLS_LD_FLAGS = $(ZLIB_LNK) $(SYS_LNK)