Refactoring of makefiles

This commit is contained in:
Driss Lahlou
2017-01-10 21:05:56 +01:00
parent 502d529fa3
commit 8b1cc2e407
13 changed files with 194 additions and 184 deletions

View File

@@ -36,6 +36,7 @@ endif
.PHONY : python cc java csharp sat third_party_check
all: third_party_check cc java python csharp
@echo Or-tools have been built for $(BUILT_LANGUAGES)
clean: clean_cc clean_java clean_python clean_csharp clean_compat
# First, we try to detect the platform.
@@ -59,7 +60,7 @@ include $(OR_ROOT)makefiles/Makefile.csharp.mk
include $(OR_ROOT)makefiles/Makefile.archive.mk
# Include test
include $(OR_ROOT)makefiles/Makefile.test.$(SYSTEM)
include $(OR_ROOT)makefiles/Makefile.test
# Finally include user makefile if it exists
-include $(OR_ROOT)Makefile.user
@@ -70,6 +71,4 @@ ifeq ($(wildcard dependencies/install/include/gflags/gflags.h),)
@echo "One of the third party files was not found! did you run 'make third_party'?" && exit 1
endif
print-% : ; @echo $* = $($*)
print-% : ; @echo $* = $($*)

View File

@@ -5,6 +5,8 @@
# Main target
cc: ortoolslibs ccexe
BUILT_LANGUAGES += C++
# Clean target
clean_cc:
@@ -646,4 +648,4 @@ printdir:
@echo GEN_DIR = $(GEN_DIR)
@echo OBJ_DIR = $(OBJ_DIR)
@echo SRC_DIR = $(SRC_DIR)
@echo EX_DIR = $(EX_DIR)
@echo EX_DIR = $(EX_DIR)

View File

@@ -64,22 +64,17 @@ CSHARPEXE = \
csharpexe: $(CSHARPEXE)
# Main target.
ifeq ("$(SYSTEM)","unix")
ifeq ($(MCS),)
ifneq ($(REAL_MCS),)
csharp: warn_mcs
else # REAL_MCS
CANONIC_PATH_TO_CSHARP_COMPILER = $(subst $(SPACE),$(BACKSLASH_SPACE),$(subst \,/,$(subst \\,/,$(PATH_TO_CSHARP_COMPILER))))
ifeq ($(wildcard $(CANONIC_PATH_TO_CSHARP_COMPILER)),)
csharp:
endif # REAL_MCS
else # MCS
csharp: csharpsolution csharportools csharpexe
endif # MCS
else # Windows
csharp: csharpsolution csharportools csharpexe
endif # Windows
@echo "The chsarp compiler was not set properly. Check Makefile.local for more information."
test_csharp: csharp
warn_mcs:
$(warning mcs version 4.2.0.0 or greater is required, csharp files will not be compiled)
else
csharp: csharpsolution csharportools csharpexe
test_csharp: test_csharp_examples
BUILT_LANGUAGES +=, C\#
endif
# Clean target.
clean_csharp:
@@ -458,9 +453,9 @@ examples/csharp/solution/%.csproj: examples/csharp/%.cs tools/template.csproj
# Replace all "EXECUTABLE" instances with the name of the executable. the first letter is capitalized.
$(SED) -i -e "s/SOURCEFILE/$*.cs/" -e "s/EXECUTABLE/\u$*/" examples$Scsharp$Ssolution$S$(@F)
all_csproj: $(patsubst examples/csharp/%.cs, examples/csharp/solution/%.csproj, $(wildcard examples/csharp/*.cs))
ALL_CSPROJ= $(patsubst examples/csharp/%.cs, examples/csharp/solution/%.csproj, $(wildcard examples/csharp/*.cs))
examples/csharp/Csharp_examples.sln: tools/template.sln all_csproj
examples/csharp/Csharp_examples.sln: tools/template.sln $(ALL_CSPROJ)
-$(DEL) examples$Scsharp$SCsharp_examples.sln
$(COPY) tools$Stemplate.sln examples$Scsharp$SCsharp_examples.sln
#Add the *csproj files to the solution

View File

@@ -1,7 +1,19 @@
# Main target
java: javaortools
# ---------- Java support using SWIG ----------
.PHONY: java rjava cjava
CANONIC_JDK_DIRECTORY = $(subst $(SPACE),$(BACKSLASH_SPACE),$(subst \,/,$(subst \\,/,$(JDK_DIRECTORY))))
# Main target
ifeq ($(wildcard $(CANONIC_JDK_DIRECTORY)),)
java:
@echo "The java executable was not set properly. Check Makefile.local for more information."
test_java: java
else
java: $(JAVA_ORTOOLS_LIBS)
test_java: test_java_examples
BUILT_LANGUAGES +=, java
endif
.PHONY: java javaortools rjava cjava
# Clean target
clean_java:
@@ -22,13 +34,8 @@ clean_java:
-$(DEL) $(OBJ_DIR)$Scom$Sgoogle$Sortools$Ssamples$S*.class
-$(DEL) $(OBJ_DIR)$Sswig$S*java_wrap.$O
# ---------- Java support using SWIG ----------
JAVA_ORTOOLS_LIBS= $(LIB_DIR)/com.google.ortools.jar $(LIB_DIR)/$(LIB_PREFIX)jniortools.$(JNI_LIB_EXT)
javaortools: $(JAVA_ORTOOLS_LIBS)
$(GEN_DIR)/constraint_solver/constraint_solver_java_wrap.cc: $(SRC_DIR)/constraint_solver/java/constraint_solver.swig $(SRC_DIR)/constraint_solver/java/routing.swig $(SRC_DIR)/base/base.swig $(SRC_DIR)/util/java/vector.swig $(SRC_DIR)/base/base.swig $(SRC_DIR)/util/java/proto.swig $(ROUTING_DEPS)
$(SWIG_BINARY) -I$(INC_DIR) -c++ -java -o $(GEN_DIR)$Sconstraint_solver$Sconstraint_solver_java_wrap.cc -package com.google.ortools.constraintsolver -module operations_research_constraint_solver -outdir $(GEN_DIR)$Scom$Sgoogle$Sortools$Sconstraintsolver $(SRC_DIR)$Sconstraint_solver$Sjava$Srouting.swig
@@ -396,6 +403,4 @@ rjava: $(EX_class_file) $(JAVA_ORTOOLS_LIBS)
$(JAVA_BIN) -Djava.library.path=$(LIB_DIR) -cp $(OBJ_DIR)$(CPSEP)$(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar $(EX_class) $(ARGS)
endif
endif # ifeq ($(EX),)
endif # ifeq ($(EX),)

View File

@@ -1,3 +1,7 @@
# Util variables
SPACE := $(empty) $(empty)
BACKSLASH_SPACE := $(empty)\ $(empty)
# Let's discover something about where we run
ifeq "$(SHELL)" "cmd.exe"
SYSTEM = win
@@ -36,7 +40,7 @@ ifeq ("$(SYSTEM)","unix")
/usr/local/buildtools/java/jdk-64 \
/usr/lib/jvm/java-1.7.0-openjdk.x86_64 \
/usr/lib64/jvm/java-1.6.0-openjdk-1.6.0 \
/usr/lib64/jvm/java-6-sun-1.6.0.26 \
/usr/lib64/jvm/java-6-sun-1.6.0.26 \
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64 \
/usr/lib/jvm/java-6-openjdk-amd64 \
/usr/lib/jvm/java-7-openjdk-amd64 \
@@ -51,13 +55,13 @@ ifeq ("$(SYSTEM)","unix")
/usr/local/buildtools/java/jdk-32 \
/usr/lib/jvm/java-1.7.0-openjdk-i386 \
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0 \
/usr/lib/jvm/java-6-sun-1.6.0.26 \
/usr/lib/jvm/java-6-sun-1.6.0.26 \
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86 \
/usr/lib/jvm/java-6-openjdk-i386 \
/usr/lib/jvm/java-7-openjdk-i386
endif
SELECTED_JDK_DEF = LINUX_JDK_ROOT = $(firstword $(wildcard $(CANDIDATE_JDK_ROOTS)))
SELECTED_JDK_DEF = JDK_DIRECTORY = $(firstword $(wildcard $(CANDIDATE_JDK_ROOTS)))
endif
ifeq ($(OS),Darwin) # Assume Mac Os X
PLATFORM = MACOSX
@@ -68,25 +72,27 @@ ifeq ("$(SYSTEM)","unix")
PTRLENGTH = 64
GUROBI_PLATFORM=mac64
ifeq ($(wildcard /usr/libexec/java_home),)
SELECTED_JDK_DEF = MAC_JDK_HEADERS = \\\# /usr/libexec/java_home could not be found on your system. did you install JDK?
SELECTED_JDK_DEF = JDK_DIRECTORY = \\\# /usr/libexec/java_home could not be found on your system. Set this variable to the path to jdk to build the java files.
else
SELECTED_JDK_DEF = MAC_JDK_HEADERS = $(shell /usr/libexec/java_home)/include
SELECTED_JDK_DEF = JDK_DIRECTORY = $(shell /usr/libexec/java_home)/include
endif
MAC_MIN_VERSION = 10.8
endif
# Look at mono compiler.
REAL_MCS = $(shell which mcs)
MINIMUM_REQUIRED_MCS_VERSION = 4.2
ifneq ($(REAL_MCS),)
ifeq ($(PLATFORM),LINUX)
MCS_VERSION = $(shell $(REAL_MCS) --version | grep -P '\d\.\d' -o | head -1)
else # Mac OS X
MCS_VERSION = $(shell $(REAL_MCS) --Version | grep -E '\d\.\d' -o | head -1)
endif
ifneq ("4.2", "$(word 1,$(sort 4.2 $(MCS_VERSION)))")
MCS := $(null)
ifneq ("$(MINIMUM_REQUIRED_MCS_VERSION)", "$(word 1,$(sort $(MINIMUM_REQUIRED_MCS_VERSION) $(MCS_VERSION)))")
DETECTED_MCS_BINARY := \\\# The detected mcs version is $(MCS_VERSION) \
while the minimum required version is $(MINIMUM_REQUIRED_MCS_VERSION).
else
MCS := $(REAL_MCS)
DETECTED_MCS_BINARY := $(REAL_MCS)
endif
endif
endif
@@ -149,7 +155,31 @@ ifeq ("$(SYSTEM)","win")
SCIP_MAKEFILE = \# SCIP not compiled
# Java specific
SELECTED_JDK_DEF = WINDOWS_JDK_DIR = \# Please define JDK root.
ifeq ($(JAVA_HOME),)
SELECTED_JDK_DEF = JDK_DIRECTORY = \# JAVA_HOME is not set on your system. Set the JDK_DIRECTORY variable to the path to jdk to build the java files.
else
SELECTED_JDK_DEF = JDK_DIRECTORY = $(JAVA_HOME)
endif
# Detect Python
DETECTED_PATH_TO_PYTHON = $(shell python -c "from sys import executable; from os.path import sep; print(sep.join(executable.split(sep)[:-1]).rstrip())")
CANONIC_DETECTED_PATH_TO_PYTHON = $(subst $(SPACE),$(BACKSLASH_SPACE),$(subst \,/,$(subst \\,/,$(DETECTED_PATH_TO_PYTHON))))
ifeq ($(wildcard $(CANONIC_DETECTED_PATH_TO_PYTHON)),)
SELECTED_PATH_TO_PYTHON = WINDOWS_PATH_TO_PYTHON =\# python was not found. Set this variable to the path to python to build the python files. Don't include the name of the executable in the path! (ex: WINDOWS_PATH_TO_PYTHON = c:\\python27-64)
else
SELECTED_PATH_TO_PYTHON = WINDOWS_PATH_TO_PYTHON = $(DETECTED_PATH_TO_PYTHON)
endif
WINDOWS_PYTHON_VERSION = $(shell python -c "from sys import version_info as v; print (str(v[0]) + str(v[1]))")
#Detect csc
DETECTED_CSC_BINARY := $(shell where /F csc | tools\\sed.exe -n "/\".*\"/{p;q;}" | tools\\sed "s/\"//g")
ifeq ($(DETECTED_CSC_BINARY),)
SELECTED_CSC_BINARY = PATH_TO_CSHARP_COMPILER =\# csc was not found. Set this variable to the path of csc to build the chsarp files. (ex: PATH_TO_CSHARP_COMPILER = C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\csc.exe)
else
SELECTED_CSC_BINARY = PATH_TO_CSHARP_COMPILER = $(DETECTED_CSC_BINARY)
endif
CSC = "$(PATH_TO_CSHARP_COMPILER)"
endif
# Get github revision level
@@ -166,20 +196,20 @@ INSTALL_DIR=or-tools_$(PORT)_v$(OR_TOOLS_VERSION)
FZ_INSTALL_DIR=or-tools_flatzinc_$(PORT)_v$(OR_TOOLS_VERSION)
printport:
@echo SHELL = $(SHELL)
@echo OR_TOOLS_TOP = $(OR_TOOLS_TOP)
@echo SYSTEM = $(SYSTEM)
@echo PLATFORM = $(PLATFORM)
@echo PTRLENGTH = $(PTRLENGTH)
@echo GIT_REVISION = $(GIT_REVISION)
@echo GIT_HASH = $(GIT_HASH)
@echo PORT = $(PORT)
@echo OR_TOOLS_VERSION = $(OR_TOOLS_VERSION)
@echo OR_TOOLS_SHORT_VERSION = $(OR_TOOLS_SHORT_VERSION)
@echo SHELL = $(SHELL)
@echo OR_TOOLS_TOP = $(OR_TOOLS_TOP)
@echo SYSTEM = $(SYSTEM)
@echo PLATFORM = $(PLATFORM)
@echo PTRLENGTH = $(PTRLENGTH)
@echo GIT_REVISION = $(GIT_REVISION)
@echo GIT_HASH = $(GIT_HASH)
@echo PORT = $(PORT)
@echo OR_TOOLS_VERSION = $(OR_TOOLS_VERSION)
@echo OR_TOOLS_SHORT_VERSION = $(OR_TOOLS_SHORT_VERSION)
ifeq ("$(SYSTEM)","unix")
@echo MCS = $(MCS)
@echo DETECTED_PYTHON_VERSION = $(DETECTED_PYTHON_VERSION)
@echo SELECTED_JDK_DEF = $(SELECTED_JDK_DEF)
@echo PATH_TO_CSHARP_COMPILER = $(PATH_TO_CSHARP_COMPILER)
@echo DETECTED_PYTHON_VERSION = $(DETECTED_PYTHON_VERSION)
@echo SELECTED_JDK_DEF = $(SELECTED_JDK_DEF)
else
@echo CMAKE_PLATFORM = $(CMAKE_PLATFORM)
endif
@echo CMAKE_PLATFORM = $(CMAKE_PLATFORM)
endif

View File

@@ -28,15 +28,25 @@ endif
OR_TOOLS_PYTHONPATH = $(OR_ROOT_FULL)$Ssrc$(CPSEP)$(OR_ROOT_FULL)$Sdependencies$Ssources$Sprotobuf-$(PROTOBUF_TAG)$Spython
ifeq ($(SYSTEM),win)
PYTHON_EXECUTABLE = $(WINDOWS_PATH_TO_PYTHON)$Spython
PYTHON_EXECUTABLE = $(WINDOWS_PATH_TO_PYTHON)$Spython.exe
SET_PYTHONPATH = @set PYTHONPATH=$(OR_TOOLS_PYTHONPATH) &&
else #UNIX
PYTHON_EXECUTABLE = python$(UNIX_PYTHON_VER)
PYTHON_EXECUTABLE = $(shell which python$(UNIX_PYTHON_VER))
SET_PYTHONPATH = @PYTHONPATH=$(OR_TOOLS_PYTHONPATH)
endif
# Main target
CANONIC_PYTHON_EXECUTABLE = $(subst $(SPACE),$(BACKSLASH_SPACE),$(subst \,/,$(subst \\,/,$(PYTHON_EXECUTABLE))))
ifeq ($(wildcard $(CANONIC_PYTHON_EXECUTABLE)),)
python:
@echo "The python executable was not set properly. Check Makefile.local for more information."
test_python: python
else
python: install_python_modules pyinit pycp pyalgorithms pygraph pylp
test_python: test_python_examples
BUILT_LANGUAGES +=, python
endif
# Clean target
clean_python:

42
makefiles/Makefile.test Executable file
View File

@@ -0,0 +1,42 @@
.PHONY : test
test: test_cc test_python test_java test_csharp
@echo Or-tools have been built and tested for $(BUILT_LANGUAGES)
test_cc: cc
$(BIN_DIR)$Sgolomb$E --size=5
$(BIN_DIR)$Scvrptw$E
$(BIN_DIR)$Sflow_api$E
$(BIN_DIR)$Slinear_programming$E
$(BIN_DIR)$Sinteger_programming$E
$(BIN_DIR)$Stsp$E
test_python_examples: python
$(SET_PYTHONPATH) $(PYTHON_EXECUTABLE) $(EX_DIR)$Spython$Shidato_table.py
$(SET_PYTHONPATH) $(PYTHON_EXECUTABLE) $(EX_DIR)$Spython$Stsp.py
$(SET_PYTHONPATH) $(PYTHON_EXECUTABLE) $(EX_DIR)$Spython$Spyflow_example.py
$(SET_PYTHONPATH) $(PYTHON_EXECUTABLE) $(EX_DIR)$Spython$Sknapsack.py
$(SET_PYTHONPATH) $(PYTHON_EXECUTABLE) $(EX_DIR)$Spython$Slinear_programming.py
$(SET_PYTHONPATH) $(PYTHON_EXECUTABLE) $(EX_DIR)$Spython$Sinteger_programming.py
$(SET_PYTHONPATH) $(PYTHON_EXECUTABLE) $(EX_DIR)$Stests$Stest_cp_api.py
$(SET_PYTHONPATH) $(PYTHON_EXECUTABLE) $(EX_DIR)$Stests$Stest_lp_api.py
test_java_examples: java run_RabbitsPheasants run_FlowExample \
run_Tsp run_LinearProgramming run_IntegerProgramming \
run_Knapsack run_MultiThreadIntegerProgramming
# csharp test
test_csharp_examples: $(CSHARPEXE) $(BIN_DIR)/testlp$(CLR_EXE_SUFFIX).exe $(BIN_DIR)/testcp$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Scslinearprogramming$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Scsintegerprogramming$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Scsrabbitspheasants$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Scsflow$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Scsknapsack$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Sfurniture_moving_intervals$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Sorganize_day_intervals$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Sfurniture_moving_intervals$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Stechtalk_scheduling$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Scsls_api$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Scstsp$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Scscvrptw$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Stestlp$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)$Stestcp$(CLR_EXE_SUFFIX).exe

View File

@@ -1,45 +0,0 @@
.PHONY : test
test: test_cc test_python test_java test_csharp
test_cc: cc
$(BIN_DIR)/golomb --size=5
$(BIN_DIR)/cvrptw
$(BIN_DIR)/flow_api
$(BIN_DIR)/linear_programming
$(BIN_DIR)/integer_programming
test_python: python
PYTHONPATH=$(OR_TOOLS_PYTHONPATH) python$(PYTHON_VERSION) $(EX_DIR)/python/hidato_table.py
PYTHONPATH=$(OR_TOOLS_PYTHONPATH) python$(PYTHON_VERSION) $(EX_DIR)/python/tsp.py
PYTHONPATH=$(OR_TOOLS_PYTHONPATH) python$(PYTHON_VERSION) $(EX_DIR)/python/pyflow_example.py
PYTHONPATH=$(OR_TOOLS_PYTHONPATH) python$(PYTHON_VERSION) $(EX_DIR)/python/knapsack.py
PYTHONPATH=$(OR_TOOLS_PYTHONPATH) python$(PYTHON_VERSION) $(EX_DIR)/python/linear_programming.py
PYTHONPATH=$(OR_TOOLS_PYTHONPATH) python$(PYTHON_VERSION) $(EX_DIR)/python/integer_programming.py
PYTHONPATH=$(OR_TOOLS_PYTHONPATH) python$(PYTHON_VERSION) $(EX_DIR)/tests/test_cp_api.py
PYTHONPATH=$(OR_TOOLS_PYTHONPATH) python$(PYTHON_VERSION) $(EX_DIR)/tests/test_lp_api.py
test_java: java run_RabbitsPheasants run_FlowExample run_Tsp run_LinearProgramming run_IntegerProgramming run_Knapsack run_MultiThreadIntegerProgramming
# csharp test
ifneq ($(MCS),)
CSHARP_TEST = run_test_csharp
endif
test_csharp: $(CSHARP_TEST)
run_test_csharp: $(CSHARPEXE) $(BIN_DIR)/testlp$(CLR_EXE_SUFFIX).exe $(BIN_DIR)/testcp$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)/cslinearprogramming$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)/csintegerprogramming$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)/csrabbitspheasants$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)/csflow$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)/csknapsack$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)/furniture_moving_intervals$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)/organize_day_intervals$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)/furniture_moving_intervals$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)/techtalk_scheduling$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)/csls_api$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)/cstsp$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)/cscvrptw$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)/testlp$(CLR_EXE_SUFFIX).exe
$(MONO) $(BIN_DIR)/testcp$(CLR_EXE_SUFFIX).exe

View File

@@ -1,33 +0,0 @@
test: test_cc test_python test_java test_csharp
test_cc: cc
$(BIN_DIR)\\golomb.exe --size=5
$(BIN_DIR)\\cvrptw.exe
$(BIN_DIR)\\flow_api.exe
$(BIN_DIR)\\linear_programming.exe
$(BIN_DIR)\\integer_programming.exe
$(BIN_DIR)\\tsp.exe
test_python: python
set PYTHONPATH=$(OR_TOOLS_PYTHONPATH) && $(WINDOWS_PATH_TO_PYTHON)\\python $(EX_DIR)\\python\\hidato_table.py
set PYTHONPATH=$(OR_TOOLS_PYTHONPATH) && $(WINDOWS_PATH_TO_PYTHON)\\python $(EX_DIR)\\python\\tsp.py
set PYTHONPATH=$(OR_TOOLS_PYTHONPATH) && $(WINDOWS_PATH_TO_PYTHON)\\python $(EX_DIR)\\python\\pyflow_example.py
set PYTHONPATH=$(OR_TOOLS_PYTHONPATH) && $(WINDOWS_PATH_TO_PYTHON)\\python $(EX_DIR)\\python\\knapsack.py
set PYTHONPATH=$(OR_TOOLS_PYTHONPATH) && $(WINDOWS_PATH_TO_PYTHON)\\python $(EX_DIR)\\python\\linear_programming.py
set PYTHONPATH=$(OR_TOOLS_PYTHONPATH) && $(WINDOWS_PATH_TO_PYTHON)\\python $(EX_DIR)\python\\integer_programming.py
test_java: java run_RabbitsPheasants run_FlowExample run_Tsp run_LinearProgramming run_IntegerProgramming run_Knapsack run_MultiThreadIntegerProgramming
# csharp test
test_csharp: $(CSHARPEXE) $(BIN_DIR)/testlp$(CLR_EXE_SUFFIX).exe $(BIN_DIR)/testcp$(CLR_EXE_SUFFIX).exe
$(BIN_DIR)\\cslinearprogramming$(CLR_EXE_SUFFIX).exe
$(BIN_DIR)\\csintegerprogramming$(CLR_EXE_SUFFIX).exe
$(BIN_DIR)\\csrabbitspheasants$(CLR_EXE_SUFFIX).exe
$(BIN_DIR)\\csflow$(CLR_EXE_SUFFIX).exe
$(BIN_DIR)\\csknapsack$(CLR_EXE_SUFFIX).exe
$(BIN_DIR)\\furniture_moving_intervals$(CLR_EXE_SUFFIX).exe
$(BIN_DIR)\\organize_day_intervals$(CLR_EXE_SUFFIX).exe
$(BIN_DIR)\\cstsp$(CLR_EXE_SUFFIX).exe
$(BIN_DIR)\\cscvrptw$(CLR_EXE_SUFFIX).exe
$(BIN_DIR)\\testlp$(CLR_EXE_SUFFIX).exe
$(BIN_DIR)\\testcp$(CLR_EXE_SUFFIX).exe

View File

@@ -29,7 +29,7 @@ SULUM_TAG = 43
# Detect if SCIP archive is there.
ifeq ($(wildcard dependencies/archives/scipoptsuite-$(SCIP_TAG).tgz),)
SCIP_TARGET =
SCIP_MAKEFILE = "\# Please add scipoptsuite-$(SCIP_TAG).tgz to dependencies/archives to add support for SCIP."
SCIP_MAKEFILE = "\# Download and put scipoptsuite-$(SCIP_TAG).tgz in the dependencies/archives directory to add support for SCIP."
else
SCIP_TARGET = dependencies/install/scipoptsuite-$(SCIP_TAG)/scip-$(SCIP_TAG)/bin/scip
SCIP_MAKEFILE = UNIX_SCIP_DIR = $(OR_ROOT_FULL)/dependencies/install/scipoptsuite-$(SCIP_TAG)/scip-$(SCIP_TAG)
@@ -44,7 +44,7 @@ endif
# Detect if GLPK archive is there.
ifeq ($(wildcard dependencies/archives/glpk-$(GLPK_TAG).tar.gz),)
GLPK_TARGET =
GLPK_MAKEFILE = "\# Please add glpk-$(GLPK_TAG).tar.gz in dependencies/archives to add support for GLPK."
GLPK_MAKEFILE = "\# Download and put glpk-$(GLPK_TAG).tar.gz under dependencies/archives to add support for GLPK."
else
GLPK_TARGET = dependencies/install/bin/glpsol
GLPK_MAKEFILE = UNIX_GLPK_DIR = $(OR_ROOT_FULL)/dependencies/install
@@ -219,7 +219,7 @@ src/gen/sat:
# Install gflags. This uses cmake.
install_gflags: dependencies/install/bin/gflags_completions.sh
CMAKE_MISSING = "cmake not found in /Applications, nor in the PATH, please install the official version, or from brew"
CMAKE_MISSING = "cmake not found in /Applications, nor in the PATH. Install the official version, or from brew"
check_cmake:
ifeq ($(PLATFORM),MACOSX)
@@ -468,21 +468,25 @@ clean_third_party:
# Create Makefile.local
makefile_third_party: Makefile.local
Makefile.local:
Makefile.local: makefiles/Makefile.third_party.unix
-$(DEL) Makefile.local
@echo Generating Makefile.local
@echo UNIX_PYTHON_VER = $(DETECTED_PYTHON_VERSION) > Makefile.local
@echo UNIX_GFLAGS_DIR = $(OR_ROOT_FULL)/dependencies/install >> Makefile.local
@echo UNIX_PROTOBUF_DIR = $(OR_ROOT_FULL)/dependencies/install >> Makefile.local
@echo UNIX_SPARSEHASH_DIR = $(OR_ROOT_FULL)/dependencies/install >> Makefile.local
@echo UNIX_SWIG_BINARY = $(OR_ROOT_FULL)/dependencies/install/bin/swig >> Makefile.local
@echo UNIX_CLP_DIR = $(OR_ROOT_FULL)/dependencies/install >> Makefile.local
@echo UNIX_CBC_DIR = $(OR_ROOT_FULL)/dependencies/install >> Makefile.local
@echo $(GLPK_MAKEFILE) >> Makefile.local
@echo $(SCIP_MAKEFILE) >> Makefile.local
@echo UNIX_SCIP_TAG = $(SCIP_TAG) >> Makefile.local
@echo CLR_KEYFILE = bin/or-tools.snk >> Makefile.local
@echo UNIX_SULUM_VERSION = $(SULUM_TAG) >> Makefile.local
@echo \# Please define UNIX_SLM_DIR to use Sulum Optimization. >> Makefile.local
@echo \# Please define UNIX_GUROBI_DIR and GUROBI_LIB_VERSION to use Gurobi. >> Makefile.local
@echo \# Please define UNIX_CPLEX_DIR to use CPLEX. >> Makefile.local
@echo $(SELECTED_JDK_DEF) >> Makefile.local
@echo $(SELECTED_JDK_DEF)>> Makefile.local
@echo UNIX_PYTHON_VER = $(DETECTED_PYTHON_VERSION)>> Makefile.local
@echo PATH_TO_CSHARP_COMPILER = $(DETECTED_MCS_BINARY)>> Makefile.local
@echo >> Makefile.local
@echo $(GLPK_MAKEFILE)>> Makefile.local
@echo $(SCIP_MAKEFILE)>> Makefile.local
@echo \# Define UNIX_SLM_DIR to use Sulum Optimization.>> Makefile.local
@echo \# Define UNIX_GUROBI_DIR and GUROBI_LIB_VERSION to use Gurobi.>> Makefile.local
@echo \# Define UNIX_CPLEX_DIR to use CPLEX.>> Makefile.local
@echo>> Makefile.local
@echo UNIX_GFLAGS_DIR = $(OR_ROOT_FULL)/dependencies/install>> Makefile.local
@echo UNIX_PROTOBUF_DIR = $(OR_ROOT_FULL)/dependencies/install>> Makefile.local
@echo UNIX_SPARSEHASH_DIR = $(OR_ROOT_FULL)/dependencies/install>> Makefile.local
@echo UNIX_SWIG_BINARY = $(OR_ROOT_FULL)/dependencies/install/bin/swig>> Makefile.local
@echo UNIX_CLP_DIR = $(OR_ROOT_FULL)/dependencies/install>> Makefile.local
@echo UNIX_CBC_DIR = $(OR_ROOT_FULL)/dependencies/install>> Makefile.local
@echo UNIX_SCIP_TAG = $(SCIP_TAG)>> Makefile.local
@echo CLR_KEYFILE = bin/or-tools.snk>> Makefile.local
@echo UNIX_SULUM_VERSION = $(SULUM_TAG)>> Makefile.local

View File

@@ -431,22 +431,24 @@ clean_third_party:
# Create Makefile.local
makefile_third_party: Makefile.local
Makefile.local:
@echo Generating Makefile.local
@echo WINDOWS_ZLIB_DIR = $(OR_ROOT_FULL)\\dependencies\\install> Makefile.local
Makefile.local: makefiles/Makefile.third_party.win
-$(DEL) Makefile.local
@echo $(SELECTED_JDK_DEF)>> Makefile.local
@echo $(SELECTED_PATH_TO_PYTHON)>> Makefile.local
@echo $(SELECTED_CSC_BINARY)>> Makefile.local
@echo #>> Makefile.local
@echo $(GLPK_MAKEFILE)>> Makefile.local
@echo $(SCIP_MAKEFILE)>> Makefile.local
@echo CLR_KEYFILE = bin\\or-tools.snk>> Makefile.local
@echo WINDOWS_SULUM_VERSION = $(SULUM_TAG)>> Makefile.local
@echo # Define WINDOWS_SLM_DIR to use Sulum Optimization.>> Makefile.local
@echo # Define WINDOWS_GUROBI_DIR and GUROBI_LIB_VERSION to use Gurobi.>> Makefile.local
@echo #>> Makefile.local
@echo WINDOWS_ZLIB_DIR = $(OR_ROOT_FULL)\\dependencies\\install>> Makefile.local
@echo WINDOWS_ZLIB_NAME=zlib.lib>> Makefile.local
@echo WINDOWS_GFLAGS_DIR = $(OR_ROOT_FULL)\\dependencies\\install>> Makefile.local
@echo WINDOWS_PROTOBUF_DIR = $(OR_ROOT_FULL)\\dependencies\\install>> Makefile.local
@echo WINDOWS_SPARSEHASH_DIR = $(OR_ROOT_FULL)\\dependencies\\install>> Makefile.local
@echo WINDOWS_SWIG_BINARY = $(OR_ROOT_FULL)\\dependencies\\install\\swigwin-$(SWIG_TAG)\\swig.exe>> Makefile.local
@echo WINDOWS_CLP_DIR = $(OR_ROOT_FULL)\\dependencies\\install>> Makefile.local
@echo WINDOWS_CBC_DIR = $(OR_ROOT_FULL)\\dependencies\\install>> Makefile.local
@echo $(GLPK_MAKEFILE)>> Makefile.local
@echo $(SCIP_MAKEFILE)>> Makefile.local
@echo CLR_KEYFILE = bin\\or-tools.snk >> Makefile.local
@echo WINDOWS_SULUM_VERSION = $(SULUM_TAG) >> Makefile.local
@echo # Please define WINDOWS_SLM_DIR to use Sulum Optimization. >> Makefile.local
@echo # Please define WINDOWS_GUROBI_DIR and GUROBI_LIB_VERSION to use Gurobi. >> Makefile.local
@echo $(SELECTED_JDK_DEF)>> Makefile.local
@echo WINDOWS_PYTHON_VERSION = \# Please define the python version (27 by default)>> Makefile.local
@echo WINDOWS_PATH_TO_PYTHON = \# Please define WINDOWS_PATH_TO_PYTHON (c:\\python27 by default)>> Makefile.local
@echo WINDOWS_CBC_DIR = $(OR_ROOT_FULL)\\dependencies\\install>> Makefile.local

View File

@@ -123,7 +123,7 @@ ifeq ($(PLATFORM),LINUX)
else
ARCH =
endif
CSC = mcs
CSC = $(PATH_TO_CSHARP_COMPILER)
MONO = LD_LIBRARY_PATH=$(LIB_DIR):$(LD_LIBRARY_PATH) mono
# This is needed to find libgflags.a
@@ -171,10 +171,10 @@ ifeq ($(PLATFORM),LINUX)
endif
endif
SYS_LNK = -lrt -lpthread
JAVA_INC = -I$(LINUX_JDK_ROOT)/include -I$(LINUX_JDK_ROOT)/include/linux
JAVAC_BIN = $(LINUX_JDK_ROOT)/bin/javac
JAVA_BIN = $(LINUX_JDK_ROOT)/bin/java
JAR_BIN = $(LINUX_JDK_ROOT)/bin/jar
JAVA_INC = -I$(JDK_DIRECTORY)/include -I$(JDK_DIRECTORY)/include/linux
JAVAC_BIN = $(JDK_DIRECTORY)/bin/javac
JAVA_BIN = $(JDK_DIRECTORY)/bin/java
JAR_BIN = $(JDK_DIRECTORY)/bin/jar
JNI_LIB_EXT = so
LIB_SUFFIX = so
SWIG_LIB_SUFFIX = so
@@ -198,7 +198,7 @@ ifeq ($(PLATFORM),MACOSX)
endif
JNI_LIB_EXT = jnilib
CSC = mcs
CSC = $(PATH_TO_CSHARP_COMPILER)
MONO = DYLD_FALLBACK_LIBRARY_PATH=$(LIB_DIR):$(DYLD_LIBRARY_PATH) mono64
GFLAGS_LNK = $(UNIX_GFLAGS_DIR)/lib/libgflags.a
@@ -207,7 +207,7 @@ ifeq ($(PLATFORM),MACOSX)
ARCH = -DARCH_K8
SYS_LNK =
JAVA_INC = -I$(MAC_JDK_HEADERS) -I$(MAC_JDK_HEADERS)/darwin
JAVA_INC = -I$(JDK_DIRECTORY) -I$(JDK_DIRECTORY)/darwin
JAVAC_BIN = javac
JAVA_BIN = java
JAR_BIN = jar
@@ -246,10 +246,10 @@ ifeq ($(PLATFORM),MACOSX)
endif # MAC OS X
CFLAGS = $(DEBUG) -I$(INC_DIR) -I$(EX_DIR) -I$(GEN_DIR) $(GFLAGS_INC) $(ARCH) \
-Wno-deprecated $(PROTOBUF_INC) $(CBC_INC) $(CLP_INC) $(GLPK_INC) \
-Wno-deprecated $(PROTOBUF_INC) $(CBC_INC) $(CLP_INC) $(GLPK_INC) \
$(SCIP_INC) $(SLM_INC) $(GUROBI_INC) $(CPLEX_INC) -DUSE_GLOP -DUSE_BOP $(SPARSEHASH_INC)
JNIFLAGS = $(JNIDEBUG) -I$(INC_DIR) -I$(EX_DIR) -I$(GEN_DIR) $(GFLAGS_INC) $(ARCH) \
-Wno-deprecated $(PROTOBUF_INC) $(CBC_INC) $(CLP_INC) $(GLPK_INC) $(SCIP_INC) $(SLM_INC) $(GUROBI_INC) $(CPLEX_INC) -DUSE_GLOP -DUSE_BOP
DEPENDENCIES_LNK = $(GLPK_LNK) $(CBC_LNK) $(CLP_LNK) $(SCIP_LNK) $(LM_LNK) $(GUROBI_LNK) $(CPLEX_LNK) $(GFLAGS_LNK) $(PROTOBUF_LNK)
OR_TOOLS_LD_FLAGS = $(ZLIB_LNK) $(SYS_LNK)
OR_TOOLS_LD_FLAGS = $(ZLIB_LNK) $(SYS_LNK)

View File

@@ -50,7 +50,6 @@ 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
@@ -119,10 +118,10 @@ 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"
JAVA_INC=/I"$(JDK_DIRECTORY)\\include" /I"$(JDK_DIRECTORY)\\include\\win32"
JAVAC_BIN="$(JDK_DIRECTORY)/bin/javac"
JAVA_BIN="$(JDK_DIRECTORY)/bin/java"
JAR_BIN="$(JDK_DIRECTORY)/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) \
@@ -139,4 +138,4 @@ DEPENDENCIES_LNK = $(STATIC_CBC_LNK) $(STATIC_CLP_LNK) $(STATIC_GLPK_LNK) $(STAT
OR_TOOLS_LD_FLAGS = $(ZLIB_LNK) $(SYS_LNK)
COMMA := ,
BACK_SLASH := \\
BACK_SLASH := \\