Files
ortools-clone/makefiles/Makefile.java.mk

424 lines
15 KiB
Makefile
Raw Normal View History

2017-01-10 21:05:56 +01:00
# ---------- Java support using SWIG ----------
2018-03-02 13:41:00 +01:00
.PHONY: help_java # Generate list of Java targets with descriptions.
2018-02-23 14:55:24 +01:00
help_java:
2018-03-02 13:41:00 +01:00
@echo Use one of the following Java targets:
2018-02-27 14:49:18 +01:00
ifeq ($(SYSTEM),win)
2018-07-05 16:08:54 +02:00
@$(GREP) "^.PHONY: .* #" $(CURDIR)/makefiles/Makefile.java.mk | $(SED) "s/\.PHONY: \(.*\) # \(.*\)/\1\t\2/"
2018-03-06 15:03:19 +01:00
@echo off & echo(
2018-02-27 14:49:18 +01:00
else
2018-07-05 16:08:54 +02:00
@$(GREP) "^.PHONY: .* #" $(CURDIR)/makefiles/Makefile.java.mk | $(SED) "s/\.PHONY: \(.*\) # \(.*\)/\1\t\2/" | expand -t24
@echo
2018-02-27 14:49:18 +01:00
endif
2017-01-10 21:05:56 +01:00
2018-08-31 18:13:31 +02:00
JAVA_OR_TOOLS_LIBS= $(LIB_DIR)/com.google.ortools$J
JAVA_OR_TOOLS_NATIVE_LIBS := $(LIB_DIR)/$(LIB_PREFIX)jniortools.$(JNI_LIB_EXT)
2018-07-06 21:03:33 +02:00
JAVAFLAGS = -Djava.library.path=$(LIB_DIR)
HAS_JAVA = true
ifndef JAVAC_BIN
HAS_JAVA =
endif
ifndef JAR_BIN
HAS_JAVA =
endif
ifndef JAVA_BIN
HAS_JAVA =
endif
# Main target
.PHONY: java # Build Java OR-Tools.
.PHONY: test_java # Test Java OR-Tools using various examples.
2018-07-06 21:03:33 +02:00
ifndef HAS_JAVA
java:
2018-07-17 15:02:26 +02:00
@echo JAVA_HOME = $(JAVA_HOME)
@echo JAVAC_BIN = $(JAVAC_BIN)
@echo JAR_BIN = $(JAR_BIN)
@echo JAVA_BIN = $(JAVA_BIN)
$(warning Cannot find 'java' command which is needed for build. Please make sure it is installed and in system path. Check Makefile.local for more information.)
test_java: java
else
java: $(JAVA_OR_TOOLS_LIBS)
2018-08-31 18:13:31 +02:00
test_java: \
test_java_samples \
test_java_examples
BUILT_LANGUAGES +=, Java
endif
$(GEN_DIR)/com/google/ortools/algorithms:
$(MKDIR_P) $(GEN_PATH)$Scom$Sgoogle$Sortools$Salgorithms
$(GEN_DIR)/com/google/ortools/constraintsolver:
$(MKDIR_P) $(GEN_PATH)$Scom$Sgoogle$Sortools$Sconstraintsolver
$(GEN_DIR)/com/google/ortools/graph:
$(MKDIR_P) $(GEN_PATH)$Scom$Sgoogle$Sortools$Sgraph
$(GEN_DIR)/com/google/ortools/linearsolver:
$(MKDIR_P) $(GEN_PATH)$Scom$Sgoogle$Sortools$Slinearsolver
$(GEN_DIR)/com/google/ortools/flatzinc:
$(MKDIR_P) $(GEN_PATH)$Scom$Sgoogle$Sortools$Sflatzinc
$(GEN_DIR)/com/google/ortools/sat:
$(MKDIR_P) $(GEN_PATH)$Scom$Sgoogle$Sortools$Ssat
2018-07-06 21:03:33 +02:00
$(CLASS_DIR):
$(MKDIR_P) $(CLASS_DIR)
$(CLASS_DIR)/com: | $(CLASS_DIR)
$(MKDIR) $(CLASS_DIR)$Scom
$(CLASS_DIR)/com/google: | $(CLASS_DIR)/com
$(MKDIR) $(CLASS_DIR)$Scom$Sgoogle
2018-07-06 21:03:33 +02:00
$(CLASS_DIR)/com/google/ortools: | $(CLASS_DIR)/com/google
$(MKDIR) $(CLASS_DIR)$Scom$Sgoogle$Sortools
2018-08-31 18:13:31 +02:00
################
## JAVA JNI ##
################
$(GEN_DIR)/ortools/constraint_solver/constraint_solver_java_wrap.cc: \
$(SRC_DIR)/ortools/constraint_solver/java/constraint_solver.i \
$(SRC_DIR)/ortools/constraint_solver/java/routing.i \
$(SRC_DIR)/ortools/base/base.i \
$(SRC_DIR)/ortools/util/java/vector.i \
$(SRC_DIR)/ortools/base/base.i \
$(SRC_DIR)/ortools/util/java/proto.i \
$(CP_DEPS) \
$(SRC_DIR)/ortools/constraint_solver/routing.h \
| $(GEN_DIR)/ortools/constraint_solver $(GEN_DIR)/com/google/ortools/constraintsolver
2018-08-31 18:13:31 +02:00
$(SWIG_BINARY) -I$(INC_DIR) -c++ -java \
-o $(GEN_PATH)$Sortools$Sconstraint_solver$Sconstraint_solver_java_wrap.cc \
-package com.google.ortools.constraintsolver \
-module operations_research_constraint_solver \
-outdir $(GEN_PATH)$Scom$Sgoogle$Sortools$Sconstraintsolver \
$(SRC_DIR)$Sortools$Sconstraint_solver$Sjava$Srouting.i
$(OBJ_DIR)/swig/constraint_solver_java_wrap.$O: \
$(GEN_DIR)/ortools/constraint_solver/constraint_solver_java_wrap.cc \
$(CP_DEPS) \
$(SRC_DIR)/ortools/constraint_solver/routing.h \
| $(OBJ_DIR)/swig
2018-08-31 18:13:31 +02:00
$(CCC) $(JNIFLAGS) $(JAVA_INC) \
-c $(GEN_PATH)$Sortools$Sconstraint_solver$Sconstraint_solver_java_wrap.cc \
$(OBJ_OUT)$(OBJ_DIR)$Sswig$Sconstraint_solver_java_wrap.$O
$(GEN_DIR)/ortools/algorithms/knapsack_solver_java_wrap.cc: \
$(SRC_DIR)/ortools/algorithms/java/knapsack_solver.i \
$(SRC_DIR)/ortools/base/base.i \
$(SRC_DIR)/ortools/util/java/vector.i \
$(SRC_DIR)/ortools/algorithms/knapsack_solver.h \
| $(GEN_DIR)/ortools/algorithms $(GEN_DIR)/com/google/ortools/algorithms
2018-08-31 18:13:31 +02:00
$(SWIG_BINARY) -I$(INC_DIR) -c++ -java \
-o $(GEN_PATH)$Sortools$Salgorithms$Sknapsack_solver_java_wrap.cc \
-package com.google.ortools.algorithms \
-module operations_research_algorithms \
-outdir $(GEN_PATH)$Scom$Sgoogle$Sortools$Salgorithms \
$(SRC_DIR)$Sortools$Salgorithms$Sjava$Sknapsack_solver.i
$(OBJ_DIR)/swig/knapsack_solver_java_wrap.$O: \
$(GEN_DIR)/ortools/algorithms/knapsack_solver_java_wrap.cc \
| $(OBJ_DIR)/swig
2018-08-31 18:13:31 +02:00
$(CCC) $(JNIFLAGS) $(JAVA_INC) \
-c $(GEN_PATH)$Sortools$Salgorithms$Sknapsack_solver_java_wrap.cc \
$(OBJ_OUT)$(OBJ_DIR)$Sswig$Sknapsack_solver_java_wrap.$O
$(GEN_DIR)/ortools/graph/graph_java_wrap.cc: \
$(SRC_DIR)/ortools/graph/java/graph.i \
$(SRC_DIR)/ortools/base/base.i \
$(GRAPH_DEPS) \
| $(GEN_DIR)/ortools/graph $(GEN_DIR)/com/google/ortools/graph
2018-08-31 18:13:31 +02:00
$(SWIG_BINARY) -I$(INC_DIR) -c++ -java \
-o $(GEN_PATH)$Sortools$Sgraph$Sgraph_java_wrap.cc \
-package com.google.ortools.graph \
-module operations_research_graph \
-outdir $(GEN_PATH)$Scom$Sgoogle$Sortools$Sgraph \
$(SRC_DIR)$Sortools$Sgraph$Sjava$Sgraph.i
$(OBJ_DIR)/swig/graph_java_wrap.$O: \
$(GEN_DIR)/ortools/graph/graph_java_wrap.cc \
$(GRAPH_DEPS) \
| $(OBJ_DIR)/swig
$(CCC) $(JNIFLAGS) $(JAVA_INC) \
-c $(GEN_PATH)$Sortools$Sgraph$Sgraph_java_wrap.cc \
$(OBJ_OUT)$(OBJ_DIR)$Sswig$Sgraph_java_wrap.$O
$(GEN_DIR)/ortools/linear_solver/linear_solver_java_wrap.cc: \
$(SRC_DIR)/ortools/linear_solver/java/linear_solver.i \
$(SRC_DIR)/ortools/base/base.i \
$(SRC_DIR)/ortools/util/java/vector.i \
$(LP_DEPS) \
| $(GEN_DIR)/ortools/linear_solver $(GEN_DIR)/com/google/ortools/linearsolver
2018-08-31 18:13:31 +02:00
$(SWIG_BINARY) $(SWIG_INC) -I$(INC_DIR) -c++ -java \
-o $(GEN_PATH)$Sortools$Slinear_solver$Slinear_solver_java_wrap.cc \
-package com.google.ortools.linearsolver \
-module operations_research_linear_solver \
-outdir $(GEN_PATH)$Scom$Sgoogle$Sortools$Slinearsolver \
$(SRC_DIR)$Sortools$Slinear_solver$Sjava$Slinear_solver.i
2018-08-01 14:10:19 -07:00
$(OBJ_DIR)/swig/linear_solver_java_wrap.$O: \
$(GEN_DIR)/ortools/linear_solver/linear_solver_java_wrap.cc \
$(LP_DEPS) \
| $(OBJ_DIR)/swig
2018-08-31 18:13:31 +02:00
$(CCC) $(JNIFLAGS) $(JAVA_INC) \
-c $(GEN_PATH)$Sortools$Slinear_solver$Slinear_solver_java_wrap.cc \
$(OBJ_OUT)$(OBJ_DIR)$Sswig$Slinear_solver_java_wrap.$O
2018-08-31 18:13:31 +02:00
$(GEN_DIR)/ortools/sat/sat_java_wrap.cc: \
$(SRC_DIR)/ortools/sat/java/sat.i \
$(SRC_DIR)/ortools/base/base.i \
$(SAT_DEPS) \
| $(GEN_DIR)/ortools/sat $(GEN_DIR)/com/google/ortools/sat
$(SWIG_BINARY) -I$(INC_DIR) -c++ -java \
-o $(GEN_PATH)$Sortools$Ssat$Ssat_java_wrap.cc \
-package com.google.ortools.sat \
-module operations_research_sat \
-outdir $(GEN_PATH)$Scom$Sgoogle$Sortools$Ssat \
$(SRC_DIR)$Sortools$Ssat$Sjava$Ssat.i
2018-08-01 14:10:19 -07:00
$(OBJ_DIR)/swig/sat_java_wrap.$O: \
$(GEN_DIR)/ortools/sat/sat_java_wrap.cc \
$(SAT_DEPS) \
| $(OBJ_DIR)/swig
2018-08-31 18:13:31 +02:00
$(CCC) $(JNIFLAGS) $(JAVA_INC) \
-c $(GEN_PATH)$Sortools$Ssat$Ssat_java_wrap.cc \
$(OBJ_OUT)$(OBJ_DIR)$Sswig$Ssat_java_wrap.$O
$(JAVA_OR_TOOLS_NATIVE_LIBS): \
$(OR_TOOLS_LIBS) \
2018-08-31 18:13:31 +02:00
$(OBJ_DIR)/swig/constraint_solver_java_wrap.$O \
$(OBJ_DIR)/swig/knapsack_solver_java_wrap.$O \
$(OBJ_DIR)/swig/graph_java_wrap.$O \
$(OBJ_DIR)/swig/linear_solver_java_wrap.$O \
$(OBJ_DIR)/swig/sat_java_wrap.$O
2018-08-31 18:13:31 +02:00
$(DYNAMIC_LD) $(LD_OUT)$(LIB_DIR)$S$(LIB_PREFIX)jniortools.$(JNI_LIB_EXT) \
$(OBJ_DIR)$Sswig$Sconstraint_solver_java_wrap.$O \
$(OBJ_DIR)$Sswig$Sknapsack_solver_java_wrap.$O \
$(OBJ_DIR)$Sswig$Sgraph_java_wrap.$O \
$(OBJ_DIR)$Sswig$Slinear_solver_java_wrap.$O \
$(OBJ_DIR)$Sswig$Ssat_java_wrap.$O \
$(OR_TOOLS_LNK) \
$(OR_TOOLS_LDFLAGS)
############
## JAVA ##
############
$(LIB_DIR)/protobuf.jar: \
dependencies/install/lib/protobuf.jar \
| $(LIB_DIR)
$(COPY) dependencies$Sinstall$Slib$Sprotobuf.jar $(LIB_DIR)
2018-08-01 14:10:19 -07:00
$(GEN_DIR)/com/google/ortools/constraintsolver/SearchLimitProtobuf.java: \
$(SRC_DIR)/ortools/constraint_solver/search_limit.proto \
| $(GEN_DIR)/com/google/ortools/constraintsolver
$(PROTOC) --proto_path=$(SRC_DIR) --java_out=$(GEN_PATH) $(SRC_DIR)$Sortools$Sconstraint_solver$Ssearch_limit.proto
$(GEN_DIR)/com/google/ortools/constraintsolver/SolverParameters.java: \
$(SRC_DIR)/ortools/constraint_solver/solver_parameters.proto \
| $(GEN_DIR)/com/google/ortools/constraintsolver
$(PROTOC) --proto_path=$(SRC_DIR) --java_out=$(GEN_PATH) $(SRC_DIR)$Sortools$Sconstraint_solver$Ssolver_parameters.proto
$(GEN_DIR)/com/google/ortools/constraintsolver/RoutingParameters.java: \
$(SRC_DIR)/ortools/constraint_solver/routing_parameters.proto \
| $(GEN_DIR)/com/google/ortools/constraintsolver
$(PROTOC) --proto_path=$(SRC_DIR) --java_out=$(GEN_PATH) $(SRC_DIR)$Sortools$Sconstraint_solver$Srouting_parameters.proto
$(GEN_DIR)/com/google/ortools/constraintsolver/RoutingEnums.java: \
$(SRC_DIR)/ortools/constraint_solver/routing_enums.proto \
| $(GEN_DIR)/com/google/ortools/constraintsolver
$(PROTOC) --proto_path=$(SRC_DIR) --java_out=$(GEN_PATH) $(SRC_DIR)$Sortools$Sconstraint_solver$Srouting_enums.proto
2018-08-01 14:10:19 -07:00
$(GEN_DIR)/com/google/ortools/sat/CpModel.java: \
$(SRC_DIR)/ortools/sat/cp_model.proto \
| $(GEN_DIR)/com/google/ortools/sat
$(PROTOC) --proto_path=$(SRC_DIR) --java_out=$(GEN_PATH) $(SRC_DIR)$Sortools$Ssat$Scp_model.proto
$(GEN_DIR)/com/google/ortools/sat/SatParameters.java: \
$(SRC_DIR)/ortools/sat/sat_parameters.proto \
| $(GEN_DIR)/com/google/ortools/sat
$(PROTOC) --proto_path=$(SRC_DIR) --java_out=$(GEN_PATH) $(SRC_DIR)$Sortools$Ssat$Ssat_parameters.proto
2018-08-31 18:13:31 +02:00
$(JAVA_OR_TOOLS_LIBS): \
$(JAVA_OR_TOOLS_NATIVE_LIBS) \
$(LIB_DIR)/protobuf.jar \
$(GEN_DIR)/com/google/ortools/constraintsolver/SolverParameters.java \
$(GEN_DIR)/com/google/ortools/constraintsolver/SearchLimitProtobuf.java \
$(GEN_DIR)/com/google/ortools/constraintsolver/RoutingParameters.java \
2018-08-01 14:10:19 -07:00
$(GEN_DIR)/com/google/ortools/constraintsolver/RoutingEnums.java \
$(GEN_DIR)/com/google/ortools/sat/SatParameters.java \
$(GEN_DIR)/com/google/ortools/sat/CpModel.java | \
2018-07-06 21:03:33 +02:00
$(CLASS_DIR)/com/google/ortools
$(JAVAC_BIN) -d $(CLASS_DIR) \
-cp $(LIB_DIR)$Sprotobuf.jar \
$(SRC_DIR)$Sortools$Scom$Sgoogle$Sortools$Sconstraintsolver$S*.java \
2018-08-01 14:10:19 -07:00
$(SRC_DIR)$Sortools$Scom$Sgoogle$Sortools$Ssat$S*.java \
$(GEN_PATH)$Scom$Sgoogle$Sortools$Sconstraintsolver$S*.java \
2018-08-01 14:10:19 -07:00
$(GEN_PATH)$Scom$Sgoogle$Sortools$Ssat$S*.java \
$(GEN_PATH)$Scom$Sgoogle$Sortools$Salgorithms$S*.java \
$(GEN_PATH)$Scom$Sgoogle$Sortools$Sgraph$S*.java \
$(GEN_PATH)$Scom$Sgoogle$Sortools$Slinearsolver$S*.java
2018-07-06 21:03:33 +02:00
$(JAR_BIN) cvf $(LIB_DIR)$Scom.google.ortools.jar -C $(CLASS_DIR) com$Sgoogle$Sortools$S
2014-01-16 01:23:35 +00:00
2018-08-31 18:13:31 +02:00
#############################
## Java Examples/Samples ##
#############################
.PHONY: test_java_examples # Build and Run all Java Examples (located in examples/java)
test_java_examples: $(JAVA_OR_TOOLS_LIBS)
$(MAKE) rjava_AllDifferentExcept0
$(MAKE) rjava_AllInterval
$(MAKE) rjava_CapacitatedVehicleRoutingProblemWithTimeWindows
$(MAKE) rjava_Circuit
$(MAKE) rjava_CoinsGridMIP
$(MAKE) rjava_ColoringMIP
$(MAKE) rjava_CoveringOpl
$(MAKE) rjava_Crossword
$(MAKE) rjava_DeBruijn
$(MAKE) rjava_Diet
$(MAKE) rjava_DietMIP
$(MAKE) rjava_DivisibleBy9Through1
$(MAKE) rjava_FlowExample
$(MAKE) rjava_GolombRuler
$(MAKE) rjava_IntegerProgramming
$(MAKE) rjava_Knapsack
$(MAKE) rjava_KnapsackMIP
$(MAKE) rjava_LeastDiff
$(MAKE) rjava_LinearAssignmentAPI
$(MAKE) rjava_LinearProgramming
$(MAKE) rjava_LsApi
$(MAKE) rjava_MagicSquare
$(MAKE) rjava_Map2
$(MAKE) rjava_Map
$(MAKE) rjava_Minesweeper
$(MAKE) rjava_MultiThreadTest
$(MAKE) rjava_NQueens2
$(MAKE) rjava_NQueens
$(MAKE) rjava_Partition
$(MAKE) rjava_QuasigroupCompletion
$(MAKE) rjava_RabbitsPheasants
$(MAKE) rjava_SendMoreMoney2
$(MAKE) rjava_SendMoreMoney
$(MAKE) rjava_SendMostMoney
$(MAKE) rjava_Seseman
$(MAKE) rjava_SetCovering2
$(MAKE) rjava_SetCovering3
$(MAKE) rjava_SetCovering4
$(MAKE) rjava_SetCoveringDeployment
$(MAKE) rjava_SetCovering
$(MAKE) rjava_SimpleRoutingTest
$(MAKE) rjava_StableMarriage
$(MAKE) rjava_StiglerMIP
$(MAKE) rjava_Strimko2
$(MAKE) rjava_Sudoku
$(MAKE) rjava_SurvoPuzzle
$(MAKE) rjava_ToNum
$(MAKE) rjava_Tsp
$(MAKE) rjava_Vrp
$(MAKE) rjava_WhoKilledAgatha
$(MAKE) rjava_Xkcd
$(MAKE) rjava_YoungTableaux
.PHONY: test_java_samples # Build and Run all Java Samples (located in ortools/*/samples)
test_java_samples: $(JAVA_OR_TOOLS_LIBS)
$(MAKE) rjava_BinPackingProblem
$(MAKE) rjava_BoolOrSample
$(MAKE) rjava_ChannelingSample
$(MAKE) rjava_CodeSample
$(MAKE) rjava_IntervalSample
$(MAKE) rjava_LiteralSample
$(MAKE) rjava_NoOverlapSample
$(MAKE) rjava_OptionalIntervalSample
$(MAKE) rjava_RabbitsAndPheasants
$(MAKE) rjava_RankingSample
$(MAKE) rjava_ReifiedSample
$(MAKE) rjava_SimpleSolve
$(MAKE) rjava_SolveAllSolutions
$(MAKE) rjava_SolveWithIntermediateSolutions
$(MAKE) rjava_SolveWithTimeLimit
$(MAKE) rjava_StopAfterNSolutions
2017-01-11 19:12:16 +01:00
2018-07-06 21:03:33 +02:00
$(CLASS_DIR)/%: $(JAVA_EX_DIR)/%.java $(JAVA_OR_TOOLS_LIBS) | $(CLASS_DIR)
-$(DELREC) $(CLASS_DIR)$S$*
-$(MKDIR_P) $(CLASS_DIR)$S$*
$(JAVAC_BIN) -d $(CLASS_DIR)$S$* \
-cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \
$(JAVA_EX_PATH)$S$*.java
2018-09-02 09:24:24 +02:00
$(CLASS_DIR)/%: $(JAVA_TEST_DIR)/%.java $(JAVA_OR_TOOLS_LIBS) | $(CLASS_DIR)
-$(DELREC) $(CLASS_DIR)$S$*
-$(MKDIR_P) $(CLASS_DIR)$S$*
$(JAVAC_BIN) -d $(CLASS_DIR)$S$* \
-cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \
$(JAVA_TEST_PATH)$S$*.java
2018-08-01 15:29:10 -07:00
$(CLASS_DIR)/%: $(SRC_DIR)/ortools/sat/samples/%.java $(JAVA_OR_TOOLS_LIBS) | $(CLASS_DIR)
-$(DELREC) $(CLASS_DIR)$S$*
-$(MKDIR_P) $(CLASS_DIR)$S$*
$(JAVAC_BIN) -d $(CLASS_DIR)$S$* \
-cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \
2018-08-31 18:13:31 +02:00
ortools$Ssat$Ssamples$S$*.java
2018-08-01 15:29:10 -07:00
2018-07-17 15:02:26 +02:00
$(LIB_DIR)/%$J: $(CLASS_DIR)/% | $(LIB_DIR)
2018-07-06 21:03:33 +02:00
-$(DEL) $(LIB_DIR)$S$*.jar
$(JAR_BIN) cvf $(LIB_DIR)$S$*.jar -C $(CLASS_DIR)$S$* .
2018-08-28 18:33:47 +02:00
rjava_%: $(LIB_DIR)/%$J
2018-07-06 21:03:33 +02:00
$(JAVA_BIN) -Xss2048k $(JAVAFLAGS) \
-cp $(LIB_DIR)$S$*.jar$(CPSEP)$(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \
$* $(ARGS)
2018-08-31 18:13:31 +02:00
ifeq ($(EX),) # Those rules will be used if EX variable is not set
.PHONY: rjava cjava
rjava cjava:
@echo No java file was provided, the $@ target must be used like so: \
make $@ EX=examples/java/example.java
else # This generic rule will be used if EX variable is set
EX_NAME = $(basename $(notdir $(EX)))
.PHONY: cjava
cjava: $(CLASS_DIR)/$(EX_NAME)
.PHONY: rjava
rjava: $(LIB_DIR)/$(EX_NAME)$J
@echo running $<
$(MAKE) rjava_$(EX_NAME)
endif # ifeq ($(EX),)
2018-07-17 15:02:26 +02:00
################
## Cleaning ##
################
2018-02-23 14:55:24 +01:00
.PHONY: clean_java # Clean Java output from previous build.
2017-01-11 19:12:16 +01:00
clean_java:
2018-07-06 21:03:33 +02:00
-$(DELREC) $(GEN_PATH)$Scom
-$(DELREC) $(OBJ_DIR)$Scom
-$(DEL) $(CLASS_DIR)$S*.class
-$(DELREC) $(CLASS_DIR)
-$(DEL) $(GEN_PATH)$Sortools$Salgorithms$S*java_wrap*
-$(DEL) $(GEN_PATH)$Sortools$Sconstraint_solver$S*java_wrap*
-$(DEL) $(GEN_PATH)$Sortools$Sgraph$S*java_wrap*
-$(DEL) $(GEN_PATH)$Sortools$Slinear_solver$S*java_wrap*
2018-08-01 14:10:19 -07:00
-$(DEL) $(GEN_PATH)$Sortools$Ssat$S*java_wrap*
-$(DEL) $(OBJ_DIR)$Sswig$S*_java_wrap.$O
2018-07-06 21:03:33 +02:00
-$(DEL) $(LIB_DIR)$S$(LIB_PREFIX)jni*.$(JNI_LIB_EXT)
-$(DEL) $(LIB_DIR)$S*.jar
2018-02-23 14:55:24 +01:00
2018-07-17 15:02:26 +02:00
#############
## DEBUG ##
#############
2018-02-23 14:55:24 +01:00
.PHONY: detect_java # Show variables used to build Java OR-Tools.
detect_java:
2018-03-06 14:34:17 +01:00
@echo Relevant info for the Java build:
2018-02-23 14:55:24 +01:00
@echo JAVA_INC = $(JAVA_INC)
2018-07-06 21:03:33 +02:00
@echo JNIFLAGS = $(JNIFLAGS)
@echo JAVA_HOME = $(JAVA_HOME)
2018-02-23 14:55:24 +01:00
@echo JAVAC_BIN = $(JAVAC_BIN)
2018-07-06 21:03:33 +02:00
@echo CLASS_DIR = $(CLASS_DIR)
2018-02-23 14:55:24 +01:00
@echo JAR_BIN = $(JAR_BIN)
2018-07-06 21:03:33 +02:00
@echo JAVA_BIN = $(JAVA_BIN)
@echo JAVAFLAGS = $(JAVAFLAGS)
@echo JAVA_OR_TOOLS_LIBS = $(JAVA_OR_TOOLS_LIBS)
2018-03-06 14:34:17 +01:00
ifeq ($(SYSTEM),win)
2018-03-06 15:03:19 +01:00
@echo off & echo(
2018-03-06 14:34:17 +01:00
else
@echo
endif