diff --git a/Makefile b/Makefile index 2dfcab8d27..0598adf83a 100755 --- a/Makefile +++ b/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 $* = $($*) \ No newline at end of file diff --git a/makefiles/Makefile.cpp.mk b/makefiles/Makefile.cpp.mk index 0dcb04e4f3..a44f310506 100755 --- a/makefiles/Makefile.cpp.mk +++ b/makefiles/Makefile.cpp.mk @@ -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) \ No newline at end of file diff --git a/makefiles/Makefile.csharp.mk b/makefiles/Makefile.csharp.mk index 132c025e91..88ce44801a 100755 --- a/makefiles/Makefile.csharp.mk +++ b/makefiles/Makefile.csharp.mk @@ -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 diff --git a/makefiles/Makefile.java.mk b/makefiles/Makefile.java.mk index efe362a912..9c0991eabf 100755 --- a/makefiles/Makefile.java.mk +++ b/makefiles/Makefile.java.mk @@ -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),) \ No newline at end of file diff --git a/makefiles/Makefile.port b/makefiles/Makefile.port index 9133375c67..cf968832bf 100755 --- a/makefiles/Makefile.port +++ b/makefiles/Makefile.port @@ -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 \ No newline at end of file diff --git a/makefiles/Makefile.python.mk b/makefiles/Makefile.python.mk index 69734fcf0d..0e4abbbd00 100755 --- a/makefiles/Makefile.python.mk +++ b/makefiles/Makefile.python.mk @@ -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: diff --git a/makefiles/Makefile.test b/makefiles/Makefile.test new file mode 100755 index 0000000000..77684e23fb --- /dev/null +++ b/makefiles/Makefile.test @@ -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 \ No newline at end of file diff --git a/makefiles/Makefile.test.unix b/makefiles/Makefile.test.unix deleted file mode 100755 index 8a00b08f4d..0000000000 --- a/makefiles/Makefile.test.unix +++ /dev/null @@ -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 diff --git a/makefiles/Makefile.test.win b/makefiles/Makefile.test.win deleted file mode 100755 index d7fbaa7b86..0000000000 --- a/makefiles/Makefile.test.win +++ /dev/null @@ -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 diff --git a/makefiles/Makefile.third_party.unix b/makefiles/Makefile.third_party.unix index 529b2a1b87..b42c42445a 100755 --- a/makefiles/Makefile.third_party.unix +++ b/makefiles/Makefile.third_party.unix @@ -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 \ No newline at end of file diff --git a/makefiles/Makefile.third_party.win b/makefiles/Makefile.third_party.win index 2e92da9d02..06156203f8 100755 --- a/makefiles/Makefile.third_party.win +++ b/makefiles/Makefile.third_party.win @@ -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 \ No newline at end of file diff --git a/makefiles/Makefile.unix b/makefiles/Makefile.unix index 01f0ea410b..e86b50a948 100755 --- a/makefiles/Makefile.unix +++ b/makefiles/Makefile.unix @@ -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) \ No newline at end of file diff --git a/makefiles/Makefile.win b/makefiles/Makefile.win index 0ae9fdf7a3..1809b7c015 100755 --- a/makefiles/Makefile.win +++ b/makefiles/Makefile.win @@ -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 := \\ \ No newline at end of file