Refactoring of makefiles
This commit is contained in:
7
Makefile
7
Makefile
@@ -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 $* = $($*)
|
||||
@@ -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)
|
||||
@@ -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
|
||||
|
||||
@@ -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),)
|
||||
@@ -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
|
||||
@@ -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
42
makefiles/Makefile.test
Executable 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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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)
|
||||
@@ -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 := \\
|
||||
Reference in New Issue
Block a user