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
i f e q ( $( SYSTEM ) , w i n )
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
e l s e
2018-07-05 16:08:54 +02:00
@$( GREP) "^.PHONY: .* #" $( CURDIR) /makefiles/Makefile.java.mk | $( SED) "s/\.PHONY: \(.*\) # \(.*\)/\1\t\2/" | expand -t24
2018-03-06 13:58:23 +01:00
@echo
2018-02-27 14:49:18 +01:00
e n d i f
2017-01-10 21:05:56 +01:00
2018-07-17 15:02:26 +02:00
JAVA_OR_TOOLS_LIBS = $( LIB_DIR) /com.google.ortools$J $( LIB_DIR) /$( LIB_PREFIX) jniortools.$( JNI_LIB_EXT)
2018-07-06 21:03:33 +02:00
JAVAFLAGS = -Djava.library.path= $( LIB_DIR)
JAR = \
2018-07-17 15:02:26 +02:00
$( LIB_DIR ) / A l l D i f f e r e n t E x c e p t 0 $ J \
$( LIB_DIR ) / A l l I n t e r v a l $ J \
$( LIB_DIR ) / C a p a c i t a t e d V e h i c l e R o u t i n g P r o b l e m W i t h T i m e W i n d o w s $ J \
$( LIB_DIR ) / C i r c u i t $ J \
$( LIB_DIR ) / C o i n s G r i d $ J \
$( LIB_DIR ) / C o i n s G r i d M I P $ J \
$( LIB_DIR ) / C o l o r i n g M I P $ J \
$( LIB_DIR ) / C o v e r i n g O p l $ J \
$( LIB_DIR ) / C r o s s w o r d $ J \
$( LIB_DIR ) / D e B r u i j n $ J \
$( LIB_DIR ) / D i e t $ J \
$( LIB_DIR ) / D i e t M I P $ J \
$( LIB_DIR ) / D i v i s i b l e B y 9 T h r o u g h 1 $ J \
$( LIB_DIR ) / F l o w E x a m p l e $ J \
$( LIB_DIR ) / G o l o m b R u l e r $ J \
$( LIB_DIR ) / I n t e g e r P r o g r a m m i n g $ J \
$( LIB_DIR ) / I s s u e 1 7 3 $ J \
$( LIB_DIR ) / K n a p s a c k $ J \
$( LIB_DIR ) / K n a p s a c k M I P $ J \
$( LIB_DIR ) / L e a s t D i f f $ J \
$( LIB_DIR ) / L i n e a r A s s i g n m e n t A P I $ J \
$( LIB_DIR ) / L i n e a r P r o g r a m m i n g $ J \
$( LIB_DIR ) / L s A p i $ J \
$( LIB_DIR ) / M a g i c S q u a r e $ J \
$( LIB_DIR ) / M a p 2 $ J \
$( LIB_DIR ) / M a p $ J \
$( LIB_DIR ) / M i n e s w e e p e r $ J \
$( LIB_DIR ) / M u l t i T h r e a d T e s t $ J \
$( LIB_DIR ) / N Q u e e n s 2 $ J \
$( LIB_DIR ) / N Q u e e n s $ J \
$( LIB_DIR ) / P a r t i t i o n $ J \
$( LIB_DIR ) / Q u a s i g r o u p C o m p l e t i o n $ J \
$( LIB_DIR ) / R a b b i t s P h e a s a n t s $ J \
$( LIB_DIR ) / S e n d M o r e M o n e y 2 $ J \
$( LIB_DIR ) / S e n d M o r e M o n e y $ J \
$( LIB_DIR ) / S e n d M o s t M o n e y $ J \
$( LIB_DIR ) / S e s e m a n $ J \
$( LIB_DIR ) / S e t C o v e r i n g 2 $ J \
$( LIB_DIR ) / S e t C o v e r i n g 3 $ J \
$( LIB_DIR ) / S e t C o v e r i n g 4 $ J \
$( LIB_DIR ) / S e t C o v e r i n g D e p l o y m e n t $ J \
$( LIB_DIR ) / S e t C o v e r i n g $ J \
$( LIB_DIR ) / S i m p l e R o u t i n g T e s t $ J \
$( LIB_DIR ) / S t a b l e M a r r i a g e $ J \
$( LIB_DIR ) / S t i g l e r M I P $ J \
$( LIB_DIR ) / S t r i m k o 2 $ J \
$( LIB_DIR ) / S u d o k u $ J \
$( LIB_DIR ) / S u r v o P u z z l e $ J \
$( LIB_DIR ) / T o N u m $ J \
$( LIB_DIR ) / T s p $ J \
$( LIB_DIR ) / W h o K i l l e d A g a t h a $ J \
$( LIB_DIR ) / X k c d $ J \
$( LIB_DIR ) / Y o u n g T a b l e a u x $ J
2018-07-06 21:03:33 +02:00
HAS_JAVA = true
i f n d e f J A V A C _ B I N
HAS_JAVA =
e n d i f
i f n d e f J A R _ B I N
HAS_JAVA =
e n d i f
i f n d e f J A V A _ B I N
HAS_JAVA =
e n d i f
2016-10-06 12:08:29 +02:00
2018-06-29 18:00:32 +02:00
# 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
i f n d e f H A S _ J A V A
2018-06-29 18:00:32 +02:00
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)
2018-06-29 18:00:32 +02:00
$( 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
e l s e
2018-07-06 21:03:33 +02:00
java : ortoolslibs $( JAVA_OR_TOOLS_LIBS ) $( JAR )
2018-06-29 18:00:32 +02:00
test_java : test_java_examples
BUILT_LANGUAGES += , Java
e n d i f
2016-02-03 15:15:58 +01:00
2018-06-29 18:00:32 +02:00
$(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-06-29 18:00:32 +02:00
2018-07-06 21:03:33 +02:00
$(CLASS_DIR)/com/google/ortools : | $( CLASS_DIR ) /com /google
$( MKDIR) $( CLASS_DIR) $Scom $Sgoogle $Sortools
2018-06-29 18:00:32 +02:00
$(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
$( 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
$( 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
$( 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
$( 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
$( 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
$(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
$( 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
$(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-06-29 18:00:32 +02:00
$(OBJ_DIR)/swig/linear_solver_java_wrap.$O : \
$( GEN_DIR) /ortools/linear_solver/linear_solver_java_wrap.cc \
$( LP_DEPS) \
| $( OBJ_DIR) /swig
$( 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
$(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
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
$( CCC) $( JNIFLAGS) $( JAVA_INC) -c $( GEN_PATH) $Sortools $Ssat $Ssat_java_wrap .cc $( OBJ_OUT) $( OBJ_DIR) $Sswig $Ssat_java_wrap .$O
2018-06-29 18:00:32 +02: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-06-29 18:00:32 +02:00
$(LIB_DIR)/protobuf.jar : dependencies /install /lib /protobuf .jar | $( LIB_DIR )
2016-02-03 16:07:11 +01:00
$( COPY) dependencies$Sinstall $Slib $Sprotobuf .jar $( LIB_DIR)
2014-01-16 01:23:35 +00:00
$(LIB_DIR)/com.google.ortools.jar : \
2018-06-29 18:00:32 +02:00
$( LIB_DIR) /protobuf.jar \
$( GEN_DIR) /ortools/constraint_solver/constraint_solver_java_wrap.cc \
$( GEN_DIR) /ortools/algorithms/knapsack_solver_java_wrap.cc \
$( GEN_DIR) /ortools/graph/graph_java_wrap.cc \
$( GEN_DIR) /ortools/linear_solver/linear_solver_java_wrap.cc \
$( 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 \
2018-06-29 18:00:32 +02:00
$( 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 \
2018-06-29 18:00:32 +02:00
$( GEN_PATH) $Scom $Sgoogle $Sortools $Sconstraintsolver $S *.java \
2018-08-01 14:10:19 -07:00
$( GEN_PATH) $Scom $Sgoogle $Sortools $Ssat $S *.java \
2018-06-29 18:00:32 +02:00
$( 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
2016-06-27 22:32:11 +02:00
$(LIB_DIR)/$(LIB_PREFIX)jniortools.$(JNI_LIB_EXT) : \
2018-06-29 18:00:32 +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 \
2018-08-01 14:10:19 -07:00
$( OBJ_DIR) /swig/sat_java_wrap.$O \
2018-06-29 18:00:32 +02:00
$( OR_TOOLS_LIBS)
$( DYNAMIC_LD) $( LD_OUT) $( LIB_DIR) $S $( LIB_PREFIX) jniortools.$( JNI_LIB_EXT) \
$( OBJ_DIR) $Sswig $Sconstraint_solver_java_wrap .$O \
2018-07-06 21:03:33 +02:00
$( OBJ_DIR) $Sswig $Sknapsack_solver_java_wrap .$O \
$( OBJ_DIR) $Sswig $Sgraph_java_wrap .$O \
$( OBJ_DIR) $Sswig $Slinear_solver_java_wrap .$O \
2018-08-01 14:10:19 -07:00
$( OBJ_DIR) $Sswig $Ssat_java_wrap .$O \
2018-06-29 18:00:32 +02:00
$( OR_TOOLS_LNK) \
$( OR_TOOLS_LDFLAGS)
2011-04-06 13:37:23 +00:00
2018-07-06 21:03:33 +02:00
#####################
## Java Examples ##
#####################
2016-10-06 12:08:29 +02:00
i f e q ( $( EX ) , ) # Those rules will be used if EX variable is not set
2018-07-06 21:03:33 +02:00
.PHONY : rjava cjava
rjava cjava :
2018-07-17 15:02:26 +02:00
@echo No java file was provided, the $@ target must be used like so: \
make $@ EX = examples/java/example.java
2016-10-06 12:08:29 +02:00
e l s e # This generic rule will be used if EX variable is set
2018-07-06 21:03:33 +02:00
EX_NAME = $( basename $( notdir $( EX) ) )
2016-09-29 18:50:59 +02:00
2018-06-29 18:00:32 +02:00
.PHONY : cjava
2018-07-06 21:03:33 +02:00
cjava : $( CLASS_DIR ) /$( EX_NAME )
2016-09-29 18:50:59 +02:00
2018-06-29 18:00:32 +02:00
.PHONY : rjava
2018-07-17 15:02:26 +02:00
rjava : $( LIB_DIR ) /$( EX_NAME ) $J
2018-07-06 21:03:33 +02:00
@echo running $<
$( MAKE) run_$( EX_NAME)
2017-01-11 19:12:16 +01:00
e n d i f # ifeq ($(EX),)
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-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-07-17 15:02:26 +02:00
run_% : $( 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-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)
2018-06-29 18:00:32 +02:00
-$( 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*
2018-06-29 18:00:32 +02:00
-$( 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
i f e q ( $( SYSTEM ) , w i n )
2018-03-06 15:03:19 +01:00
@echo off & echo(
2018-03-06 14:34:17 +01:00
e l s e
@echo
e n d i f