make: Rework archive_java

This commit is contained in:
Mizux Seiha
2020-09-21 18:15:13 +02:00
parent 4da3ce51d3
commit 8af93de5c5
3 changed files with 167 additions and 117 deletions

View File

@@ -36,26 +36,36 @@ clean_archive:
-$(DEL) $(DATA_INSTALL_DIR)$(ARCHIVE_EXT)
$(TEMP_ARCHIVE_DIR):
-$(MKDIR_P) $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)
$(MKDIR_P) $(TEMP_ARCHIVE_DIR)
$(TEMP_ARCHIVE_DIR)/$(INSTALL_DIR): | $(TEMP_ARCHIVE_DIR)
$(MKDIR) $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)
$(TEMP_ARCHIVE_DIR)/$(INSTALL_DIR)/examples: | $(TEMP_ARCHIVE_DIR)/$(INSTALL_DIR)
$(MKDIR) $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples
$(INSTALL_DIR)$(ARCHIVE_EXT): archive_cc archive_java archive_dotnet \
tools/README.cc.java.dotnet tools/Makefile.cc.java.dotnet
$(COPY) tools$SREADME.cc.java.dotnet $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$SREADME.md
$(COPY) tools$SMakefile.cc.java.dotnet $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$SMakefile
$(SED) -i -e 's/@PROJECT_VERSION@/$(OR_TOOLS_VERSION)/' $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$SMakefile
ifeq ($(SYSTEM),win)
-$(MKDIR_P) $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Stools$Swin
$(COPY) tools$Smake.exe $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Stools
$(COPY) $(WHICH) $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Stools$Swin
$(COPY) $(TOUCH) $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Stools$Swin
cd $(TEMP_ARCHIVE_DIR) && ..$S$(ZIP) -r ..$S$(INSTALL_DIR)$(ARCHIVE_EXT) $(INSTALL_DIR)
else
$(TAR) -C $(TEMP_ARCHIVE_DIR) --no-same-owner -czvf $(INSTALL_DIR)$(ARCHIVE_EXT) $(INSTALL_DIR)
endif
# -$(DELREC) $(TEMP_ARCHIVE_DIR)
$(TEMP_ARCHIVE_DIR)/$(INSTALL_DIR)/examples/cpp: | $(TEMP_ARCHIVE_DIR)/$(INSTALL_DIR)/examples
$(MKDIR) $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Scpp
.PHONY: archive_cc # Add C++ OR-Tools to archive.
archive_cc: cc | $(TEMP_ARCHIVE_DIR)
archive_cc: cc | $(TEMP_ARCHIVE_DIR)/$(INSTALL_DIR)/examples/cpp
$(MAKE) install_cc prefix=$(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)
-$(MKDIR_P) $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Scpp
-$(COPY) $(CC_EX_PATH)$S*.h $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Scpp
-$(COPY) $(CC_EX_PATH)$S*.cc $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Scpp
-$(COPY) $(CC_EX_PATH)$SREADME.md $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Scpp
@@ -68,34 +78,64 @@ archive_cc: cc | $(TEMP_ARCHIVE_DIR)
-$(COPY) ortools$Srouting$Ssamples$S*.cc $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Scpp
-$(COPY) ortools$Ssat$Ssamples$S*.cc $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Scpp
$(TEMP_ARCHIVE_DIR)/$(INSTALL_DIR)/examples/java: | $(TEMP_ARCHIVE_DIR)/$(INSTALL_DIR)/examples
$(MKDIR) $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava
define java-sample-archive
$$(TEMP_ARCHIVE_DIR)/$$(INSTALL_DIR)/examples/java/%/pom.xml: \
$$(TEMP_JAVA_DIR)/$1/%/pom.xml \
ortools/$1/samples/%.java \
| $$(TEMP_ARCHIVE_DIR)$$S$$(INSTALL_DIR)$$Sexamples$$Sjava
-$$(MKDIR_P) $$(TEMP_ARCHIVE_DIR)$$S$$(INSTALL_DIR)$$Sexamples$$Sjava$$S$$*$$S$$(JAVA_SRC_PATH)
$$(COPY) $$(SRC_DIR)$$Sortools$$S$1$$Ssamples$$S$$*.java \
$$(TEMP_ARCHIVE_DIR)$$S$$(INSTALL_DIR)$$Sexamples$$Sjava$$S$$*$$S$$(JAVA_SRC_PATH)
$$(COPY) $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml \
$$(TEMP_ARCHIVE_DIR)$$S$$(INSTALL_DIR)$$Sexamples$$Sjava$$S$$*
endef
$(foreach sample,$(SAMPLES),$(eval $(call java-sample-archive,$(sample))))
define java-example-archive
$$(TEMP_ARCHIVE_DIR)/$$(INSTALL_DIR)/examples/java/%/pom.xml: \
$$(TEMP_JAVA_DIR)/$1/%/pom.xml \
examples/$1/%.java \
| $$(TEMP_ARCHIVE_DIR)$$S$$(INSTALL_DIR)$$Sexamples$$Sjava
-$$(MKDIR_P) $$(TEMP_ARCHIVE_DIR)$$S$$(INSTALL_DIR)$$Sexamples$$Sjava$$S$$*$$S$$(JAVA_SRC_PATH)
$$(COPY) $$(SRC_DIR)$$Sexamples$$S$1$$S$$*.java \
$$(TEMP_ARCHIVE_DIR)$$S$$(INSTALL_DIR)$$Sexamples$$Sjava$$S$$*$$S$$(JAVA_SRC_PATH)
$$(COPY) $$(TEMP_JAVA_DIR)$$S$1$$S$$*$$Spom.xml \
$$(TEMP_ARCHIVE_DIR)$$S$$(INSTALL_DIR)$$Sexamples$$Sjava$$S$$*
endef
$(foreach example,$(EXAMPLES),$(eval $(call java-example-archive,$(example))))
SAMPLE_JAVA_FILES = $(addsuffix /pom.xml,$(addprefix $(TEMP_ARCHIVE_DIR)/$(INSTALL_DIR)/examples/java/,$(basename $(notdir $(wildcard ortools/*/samples/*.java)))))
EXAMPLE_JAVA_FILES = \
$(addsuffix /pom.xml,$(addprefix $(TEMP_ARCHIVE_DIR)/$(INSTALL_DIR)/examples/java/,$(basename $(notdir $(wildcard examples/contrib/*.java))))) \
$(addsuffix /pom.xml,$(addprefix $(TEMP_ARCHIVE_DIR)/$(INSTALL_DIR)/examples/java/,$(basename $(notdir $(wildcard examples/java/*.java)))))
.PHONY: archive_java # Add Java OR-Tools to archive.
archive_java: java | $(TEMP_ARCHIVE_DIR)
$(COPY) $(LIB_DIR)$Scom.google.ortools.jar $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Slib
$(COPY) $(LIB_DIR)$Sprotobuf.jar $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Slib
$(COPY) $(LIB_DIR)$S$(LIB_PREFIX)jniortools.$(JNI_LIB_EXT) $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Slib
-$(MKDIR_P) $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava
-$(COPY) $(JAVA_EX_PATH)$S*.java $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava
-$(COPY) $(JAVA_EX_PATH)$SREADME.md $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava
-$(COPY) $(CONTRIB_EX_PATH)$S*.java $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava
-$(SED) -i -e 's/ortools.contrib/ortools.examples/' $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava$S*.java
-$(COPY) ortools$Salgorithms$Ssamples$S*.java $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava
-$(SED) -i -e 's/algorithms.samples/examples/' $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava$S*.java
-$(COPY) ortools$Sgraph$Ssamples$S*.java $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava
-$(SED) -i -e 's/graph.samples/examples/' $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava$S*.java
-$(COPY) ortools$Slinear_solver$Ssamples$S*.java $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava
-$(SED) -i -e 's/linearsolver.samples/examples/' $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava$S*.java
-$(COPY) ortools$Sconstraint_solver$Ssamples$S*.java $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava
-$(SED) -i -e 's/constraintsolver.samples/examples/' $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava$S*.java
-$(COPY) ortools$Srouting$Ssamples$S*.java $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava
-$(SED) -i -e 's/routing.samples/examples/' $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava$S*.java
-$(COPY) ortools$Ssat$Ssamples$S*.java $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava
-$(SED) -i -e 's/sat.samples/examples/' $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava$S*.java
archive_java: java \
$(SAMPLE_JAVA_FILES) \
$(EXAMPLE_JAVA_FILES) \
| $(TEMP_ARCHIVE_DIR)/$(INSTALL_DIR)/examples/java
$(COPY) $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_NATIVE_PROJECT)$Starget$Sortools-*.jar $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)
$(COPY) $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_NATIVE_PROJECT)$Spom.xml $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Spom-runtime.xml
$(COPY) $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_PROJECT)$Starget$Sortools-*.jar $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)
$(COPY) $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_PROJECT)$Spom.xml $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Spom-local.xml
$(COPY) $(JAVA_EX_PATH)$SREADME.md $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sjava
$(TEMP_ARCHIVE_DIR)/$(INSTALL_DIR)/examples/dotnet: | $(TEMP_ARCHIVE_DIR)/$(INSTALL_DIR)/examples
$(MKDIR) $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sdotnet
.PHONY: archive_dotnet # Add .Net OR-Tools to archive.
archive_dotnet: dotnet | $(TEMP_ARCHIVE_DIR)
archive_dotnet: dotnet | $(TEMP_ARCHIVE_DIR)/$(INSTALL_DIR)/examples/dotnet
-$(MKDIR_P) $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Spackages
$(COPY) packages$S*.nupkg $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Spackages
-$(MKDIR_P) $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sdotnet
-$(COPY) $(DOTNET_EX_PATH)$S*.cs* $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sdotnet
-$(COPY) $(DOTNET_EX_PATH)$S*.fs* $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sdotnet
-$(COPY) $(DOTNET_EX_PATH)$SREADME.md $(TEMP_ARCHIVE_DIR)$S$(INSTALL_DIR)$Sexamples$Sdotnet

View File

@@ -49,10 +49,10 @@ check_java: java
test_java: java
package_java: java
else
java: $(JAVA_ORTOOLS_JAR)
java: java_package
check_java: check_java_pimpl
test_java: test_java_pimpl
package_java: package_java_pimpl
package_java: java
BUILT_LANGUAGES +=, Java
endif
@@ -378,8 +378,6 @@ clean_java:
###################
## Maven package ##
###################
package_java_pimpl: java_package
$(TEMP_JAVA_DIR):
-$(MKDIR) $(TEMP_JAVA_DIR)
@@ -404,7 +402,7 @@ $(TEMP_JAVA_DIR)/$(JAVA_ORTOOLS_NATIVE_PROJECT)/pom.xml: \
java_runtime: $(TEMP_JAVA_DIR)/$(JAVA_ORTOOLS_NATIVE_PROJECT)/timestamp
$(TEMP_JAVA_DIR)/$(JAVA_ORTOOLS_NATIVE_PROJECT)/timestamp: \
$(JAVA_ORTOOLS_JAR) \
$(JAVA_ORTOOLS_NATIVE_LIBS) \
$(TEMP_JAVA_DIR)/$(JAVA_ORTOOLS_NATIVE_PROJECT)/pom.xml
$(MKDIR_P) $(JAVA_NATIVE_PATH)$Sresources$S$(JAVA_NATIVE_IDENTIFIER)
$(COPY) $(subst /,$S,$(JAVA_ORTOOLS_NATIVE_LIBS)) $(JAVA_NATIVE_PATH)$Sresources$S$(JAVA_NATIVE_IDENTIFIER)
@@ -435,6 +433,14 @@ java_package: $(TEMP_JAVA_DIR)/$(JAVA_ORTOOLS_PROJECT)/timestamp
$(TEMP_JAVA_DIR)/$(JAVA_ORTOOLS_PROJECT)/timestamp: \
$(TEMP_JAVA_DIR)/$(JAVA_ORTOOLS_NATIVE_PROJECT)/timestamp \
$(GEN_DIR)/java/com/google/ortools/constraintsolver/SolverParameters.java \
$(GEN_DIR)/java/com/google/ortools/constraintsolver/SearchLimitProtobuf.java \
$(GEN_DIR)/java/com/google/ortools/constraintsolver/RoutingParameters.java \
$(GEN_DIR)/java/com/google/ortools/constraintsolver/RoutingEnums.java \
$(GEN_DIR)/java/com/google/ortools/linearsolver/MPModelProto.java \
$(GEN_DIR)/java/com/google/ortools/sat/SatParameters.java \
$(GEN_DIR)/java/com/google/ortools/util/OptionalBoolean.java \
$(GEN_DIR)/java/com/google/ortools/sat/CpModel.java \
$(TEMP_JAVA_DIR)/$(JAVA_ORTOOLS_PROJECT)/pom.xml
$(MKDIR_P) $(JAVA_PATH)$Sjava
ifeq ($(SYSTEM),unix)

View File

@@ -1,3 +1,4 @@
VERSION := @PROJECT_VERSION@
# Let's discover something about where we run
ifeq ($(OS),Windows_NT)
OS = Windows
@@ -27,6 +28,7 @@ BIN_DIR = bin
# Unix specific part.
ifeq ($(SYSTEM),unix)
OS = $(shell uname -s)
TOUCH = touch
# C++
ifeq ($(OS),Linux)
CXX = g++
@@ -102,6 +104,7 @@ endif # SYSTEM == unix
# Windows specific part.
ifeq ($(SYSTEM),win)
WHICH = tools\\win\\which.exe
TOUCH = tools\\win\\touch.exe
ifeq ("$(Platform)","X64")
PLATFORM = Win64
endif
@@ -180,6 +183,7 @@ clean:
.PHONY: detect_port
detect_port:
@echo VERSION = $(VERSION)
@echo SHELL = $(SHELL)
@echo SYSTEM = $(SYSTEM)
@echo PORT = $(PORT)
@@ -325,62 +329,6 @@ endif
############
## JAVA ##
############
JAR = \
$(LIB_DIR)/LinearProgramming$J \
$(LIB_DIR)/IntegerProgramming$J \
$(LIB_DIR)/RabbitsPheasants$J \
$(LIB_DIR)/Tsp$J \
$(LIB_DIR)/Vrp$J \
$(LIB_DIR)/Knapsack$J \
\
$(LIB_DIR)/AllDifferentExcept0$J \
$(LIB_DIR)/AllInterval$J \
$(LIB_DIR)/CapacitatedVehicleRoutingProblemWithTimeWindows$J \
$(LIB_DIR)/Circuit$J \
$(LIB_DIR)/CoinsGrid$J \
$(LIB_DIR)/CoinsGridMIP$J \
$(LIB_DIR)/ColoringMIP$J \
$(LIB_DIR)/CoveringOpl$J \
$(LIB_DIR)/Crossword$J \
$(LIB_DIR)/DeBruijn$J \
$(LIB_DIR)/Diet$J \
$(LIB_DIR)/DietMIP$J \
$(LIB_DIR)/DivisibleBy9Through1$J \
$(LIB_DIR)/FlowExample$J \
$(LIB_DIR)/GolombRuler$J \
$(LIB_DIR)/Issue173$J \
$(LIB_DIR)/KnapsackMIP$J \
$(LIB_DIR)/LeastDiff$J \
$(LIB_DIR)/LinearAssignmentAPI$J \
$(LIB_DIR)/MagicSquare$J \
$(LIB_DIR)/Map2$J \
$(LIB_DIR)/Map$J \
$(LIB_DIR)/Minesweeper$J \
$(LIB_DIR)/MultiThreadTest$J \
$(LIB_DIR)/NQueens2$J \
$(LIB_DIR)/NQueens$J \
$(LIB_DIR)/Partition$J \
$(LIB_DIR)/QuasigroupCompletion$J \
$(LIB_DIR)/SendMoreMoney2$J \
$(LIB_DIR)/SendMoreMoney$J \
$(LIB_DIR)/SendMostMoney$J \
$(LIB_DIR)/Seseman$J \
$(LIB_DIR)/SetCovering2$J \
$(LIB_DIR)/SetCovering3$J \
$(LIB_DIR)/SetCovering4$J \
$(LIB_DIR)/SetCoveringDeployment$J \
$(LIB_DIR)/SetCovering$J \
$(LIB_DIR)/SimpleRoutingTest$J \
$(LIB_DIR)/StableMarriage$J \
$(LIB_DIR)/StiglerMIP$J \
$(LIB_DIR)/Strimko2$J \
$(LIB_DIR)/Sudoku$J \
$(LIB_DIR)/SurvoPuzzle$J \
$(LIB_DIR)/ToNum$J \
$(LIB_DIR)/WhoKilledAgatha$J \
$(LIB_DIR)/Xkcd$J \
$(LIB_DIR)/YoungTableaux$J
HAS_JAVA = true
ifndef JAVAC_BIN
HAS_JAVA =
@@ -401,52 +349,107 @@ java test_java:
@echo the command 'java', 'javac', 'jar' or 'mvn' was not found in your PATH
exit 127
else
java: $(JAR)
java:
$(MAKE) run SOURCE=examples/java/LinearProgramming/src/main/java/com/google/ortools/LinearProgramming.java
$(MAKE) run SOURCE=examples/java/IntegerProgramming/src/main/java/com/google/ortools/IntegerProgramming.java
$(MAKE) run SOURCE=examples/java/RabbitsPheasants/src/main/java/com/google/ortools/RabbitsPheasants.java
$(MAKE) run SOURCE=examples/java/Tsp/src/main/java/com/google/ortools/Tsp.java
$(MAKE) run SOURCE=examples/java/Vrp/src/main/java/com/google/ortools/Vrp.java
$(MAKE) run SOURCE=examples/java/Knapsack/src/main/java/com/google/ortools/Knapsack.java
$(MAKE) run SOURCE=examples/java/AllDifferentExcept0/src/main/java/com/google/ortools/AllDifferentExcept0.java
$(MAKE) run SOURCE=examples/java/AllInterval/src/main/java/com/google/ortools/AllInterval.java
$(MAKE) run SOURCE=examples/java/CapacitatedVehicleRoutingProblemWithTimeWindows/src/main/java/com/google/ortools/CapacitatedVehicleRoutingProblemWithTimeWindows.java
$(MAKE) run SOURCE=examples/java/Circuit/src/main/java/com/google/ortools/Circuit.java
$(MAKE) run SOURCE=examples/java/CoinsGrid/src/main/java/com/google/ortools/CoinsGrid.java
$(MAKE) run SOURCE=examples/java/CoinsGridMIP/src/main/java/com/google/ortools/CoinsGridMIP.java
$(MAKE) run SOURCE=examples/java/ColoringMIP/src/main/java/com/google/ortools/ColoringMIP.java
$(MAKE) run SOURCE=examples/java/CoveringOpl/src/main/java/com/google/ortools/CoveringOpl.java
$(MAKE) run SOURCE=examples/java/Crossword/src/main/java/com/google/ortools/Crossword.java
$(MAKE) run SOURCE=examples/java/DeBruijn/src/main/java/com/google/ortools/DeBruijn.java
$(MAKE) run SOURCE=examples/java/Diet/src/main/java/com/google/ortools/Diet.java
$(MAKE) run SOURCE=examples/java/DietMIP/src/main/java/com/google/ortools/DietMIP.java
$(MAKE) run SOURCE=examples/java/DivisibleBy9Through1/src/main/java/com/google/ortools/DivisibleBy9Through1.java
$(MAKE) run SOURCE=examples/java/FlowExample/src/main/java/com/google/ortools/FlowExample.java
$(MAKE) run SOURCE=examples/java/GolombRuler/src/main/java/com/google/ortools/GolombRuler.java
$(MAKE) run SOURCE=examples/java/Issue173/src/main/java/com/google/ortools/Issue173.java
$(MAKE) run SOURCE=examples/java/KnapsackMIP/src/main/java/com/google/ortools/KnapsackMIP.java
$(MAKE) run SOURCE=examples/java/LeastDiff/src/main/java/com/google/ortools/LeastDiff.java
$(MAKE) run SOURCE=examples/java/LinearAssignmentAPI/src/main/java/com/google/ortools/LinearAssignmentAPI.java
$(MAKE) run SOURCE=examples/java/MagicSquare/src/main/java/com/google/ortools/MagicSquare.java
$(MAKE) run SOURCE=examples/java/Map2/src/main/java/com/google/ortools/Map2.java
$(MAKE) run SOURCE=examples/java/Map/src/main/java/com/google/ortools/Map.java
$(MAKE) run SOURCE=examples/java/Minesweeper/src/main/java/com/google/ortools/Minesweeper.java
$(MAKE) run SOURCE=examples/java/MultiThreadTest/src/main/java/com/google/ortools/MultiThreadTest.java
$(MAKE) run SOURCE=examples/java/NQueens2/src/main/java/com/google/ortools/NQueens2.java
$(MAKE) run SOURCE=examples/java/NQueens/src/main/java/com/google/ortools/NQueens.java
$(MAKE) run SOURCE=examples/java/Partition/src/main/java/com/google/ortools/Partition.java
$(MAKE) run SOURCE=examples/java/QuasigroupCompletion/src/main/java/com/google/ortools/QuasigroupCompletion.java
$(MAKE) run SOURCE=examples/java/SendMoreMoney2/src/main/java/com/google/ortools/SendMoreMoney2.java
$(MAKE) run SOURCE=examples/java/SendMoreMoney/src/main/java/com/google/ortools/SendMoreMoney.java
$(MAKE) run SOURCE=examples/java/SendMostMoney/src/main/java/com/google/ortools/SendMostMoney.java
$(MAKE) run SOURCE=examples/java/Seseman/src/main/java/com/google/ortools/Seseman.java
$(MAKE) run SOURCE=examples/java/SetCovering2/src/main/java/com/google/ortools/SetCovering2.java
$(MAKE) run SOURCE=examples/java/SetCovering3/src/main/java/com/google/ortools/SetCovering3.java
$(MAKE) run SOURCE=examples/java/SetCovering4/src/main/java/com/google/ortools/SetCovering4.java
$(MAKE) run SOURCE=examples/java/SetCoveringDeployment/src/main/java/com/google/ortools/SetCoveringDeployment.java
$(MAKE) run SOURCE=examples/java/SetCovering/src/main/java/com/google/ortools/SetCovering.java
$(MAKE) run SOURCE=examples/java/SimpleRoutingTest/src/main/java/com/google/ortools/SimpleRoutingTest.java
$(MAKE) run SOURCE=examples/java/StableMarriage/src/main/java/com/google/ortools/StableMarriage.java
$(MAKE) run SOURCE=examples/java/StiglerMIP/src/main/java/com/google/ortools/StiglerMIP.java
$(MAKE) run SOURCE=examples/java/Strimko2/src/main/java/com/google/ortools/Strimko2.java
$(MAKE) run SOURCE=examples/java/Sudoku/src/main/java/com/google/ortools/Sudoku.java
$(MAKE) run SOURCE=examples/java/SurvoPuzzle/src/main/java/com/google/ortools/SurvoPuzzle.java
$(MAKE) run SOURCE=examples/java/ToNum/src/main/java/com/google/ortools/ToNum.java
$(MAKE) run SOURCE=examples/java/WhoKilledAgatha/src/main/java/com/google/ortools/WhoKilledAgatha.java
$(MAKE) run SOURCE=examples/java/Xkcd/src/main/java/com/google/ortools/Xkcd.java
$(MAKE) run SOURCE=examples/java/YoungTableaux/src/main/java/com/google/ortools/YoungTableaux.java
test_java: detect_java
$(MAKE) run SOURCE=examples/java/SimpleLpProgram.java
$(MAKE) run SOURCE=examples/java/SimpleMipProgram.java
$(MAKE) run SOURCE=examples/java/SimpleSatProgram.java
$(MAKE) run SOURCE=examples/java/Tsp.java
$(MAKE) run SOURCE=examples/java/Vrp.java
$(MAKE) run SOURCE=examples/java/Knapsack.java
$(MAKE) run SOURCE=examples/java/SimpleLpProgram/src/main/java/com/google/ortools/SimpleLpProgram.java
$(MAKE) run SOURCE=examples/java/SimpleMipProgram/src/main/java/com/google/ortools/SimpleMipProgram.java
$(MAKE) run SOURCE=examples/java/SimpleSatProgram/src/main/java/com/google/ortools/SimpleSatProgram.java
$(MAKE) run SOURCE=examples/java/Tsp/src/main/java/com/google/ortools/Tsp.java
$(MAKE) run SOURCE=examples/java/Vrp/src/main/java/com/google/ortools/Vrp.java
$(MAKE) run SOURCE=examples/java/Knapsack/src/main/java/com/google/ortools/Knapsack.java
###################
## Java SOURCE ##
###################
ifeq ($(SOURCE_SUFFIX),.java) # Those rules will be used if SOURCE contain a .java file
$(CLASS_DIR)/$(SOURCE_NAME): $(SOURCE) | $(CLASS_DIR)
-$(MKDIR) $(CLASS_DIR)$S$(SOURCE_NAME)
"$(JAVAC_BIN)" -encoding UTF-8 -d $(CLASS_DIR)$S$(SOURCE_NAME) \
-cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \
$(SOURCE_PATH)
$(LIB_DIR)/$(SOURCE_NAME)$J: $(CLASS_DIR)/$(SOURCE_NAME) | $(LIB_DIR)
-$(DEL) $(LIB_DIR)$S$(SOURCE_NAME)$J
"$(JAR_BIN)" cvf $(LIB_DIR)$S$(SOURCE_NAME)$J -C $(CLASS_DIR)$S$(SOURCE_NAME) .
.PHONY: build # Build a Java program.
build: $(LIB_DIR)/$(SOURCE_NAME)$J
build: $(SOURCE) examples/java/$(SOURCE_NAME)/pom.xml | java.log
cd examples$Sjava$S$(SOURCE_NAME) && "$(MVN_BIN)" compile
.PHONY: run # Run a Java program.
run: build
"$(JAVA_BIN)" -Xss2048k $(JAVAFLAGS) \
-cp $(LIB_DIR)$S$(SOURCE_NAME)$J$(CPSEP)$(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \
com.google.ortools.examples.$(SOURCE_NAME) $(ARGS)
cd examples$Sjava$S$(SOURCE_NAME) && "$(MVN_BIN)" exec:java $(ARGS)
endif # ifeq ($(SOURCE_SUFFIX),.java)
endif # ifndef HAS_JAVA
$(CLASS_DIR):
-$(MKDIR) $(CLASS_DIR)
ifeq ($(OS),Windows)
JAVA_NATIVE_IDENTIFIER=win32-x86-64
else
ifeq ($(OS),Linux)
JAVA_NATIVE_IDENTIFIER=linux-x86-64
else
ifeq ($(OS),Darwin)
JAVA_NATIVE_IDENTIFIER=darwin
else
$(error OS unknown !)
endif
endif
endif
$(CLASS_DIR)/%: $(JAVA_EX_DIR)/%.java | $(CLASS_DIR)
-$(MKDIR) $(CLASS_DIR)$S$*
"$(JAVAC_BIN)" -d $(CLASS_DIR)$S$* \
-cp $(LIB_DIR)$Scom.google.ortools$J$(CPSEP)$(LIB_DIR)$Sprotobuf$J \
$(JAVA_EX_PATH)$S$*.java
JAVA_NATIVE_PROJECT := ortools-$(JAVA_NATIVE_IDENTIFIER)-@PROJECT_VERSION@.jar
JAVA_PROJECT := ortools-java-@PROJECT_VERSION@.jar
$(LIB_DIR)/%$J: $(CLASS_DIR)/% | $(LIB_DIR)
"$(JAR_BIN)" cvf $(LIB_DIR)$S$*$J -C $(CLASS_DIR)$S$* .
java.log: pom-runtime.xml pom-local.xml
"$(MVN_BIN)" org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \
-Dfile=$(JAVA_NATIVE_PROJECT) -DpomFile=pom-runtime.xml
"$(MVN_BIN)" org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \
-Dfile=$(JAVA_PROJECT) -DpomFile=pom-local.xml
@$(TOUCH) $@
.PHONY: detect_java
detect_java:
@@ -456,6 +459,7 @@ detect_java:
@echo JAR_BIN = $(JAR_BIN)
@echo JAVA_BIN = $(JAVA_BIN)
@echo JAVAFLAGS = $(JAVAFLAGS)
@echo MVN_BIN = $(MVN_BIN)
ifeq ($(SYSTEM),win)
@echo off & echo(
else