Rework Java Makefile

This commit is contained in:
Corentin Le Molgat
2018-02-23 14:55:24 +01:00
parent 1b41a7a240
commit 671cf273b1
2 changed files with 26 additions and 13 deletions

View File

@@ -4,7 +4,7 @@ help:
@echo " - Prerequisite: third_party third_party_check clean_third_party"
@echo " - C++: cc test_cc clean_cc"
@echo " - Python: python help_python test_python clean_python"
@echo " - Java: java test_java clean_java"
@echo " - Java: java help_java test_java clean_java"
@echo " - .NET (CSharp): csharp test_csharp clean_csharp"
@echo " - .NET (FSharp): fsharp fsharp-help fsharp-clean"
@echo " - all: all test clean"
@@ -30,9 +30,11 @@ else
endif
endif
.PHONY : help detect cc python java csharp sat third_party_check
.PHONY : help cc python java csharp sat third_party_check
all: third_party_check cc java python csharp
@echo Or-tools have been built for $(BUILT_LANGUAGES)
.PHONY: clean
clean: clean_cc clean_java clean_python clean_csharp clean_compat
# Read version.
@@ -74,4 +76,7 @@ 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
.PHONY: detect
detect: detect_port detect_python detect_java detect_csharp
print-% : ; @echo $* = $($*)

View File

@@ -1,6 +1,10 @@
# ---------- Java support using SWIG ----------
.PHONY: help_java # Generate list of targets with descriptions.
help_java:
@echo Use one of the following targets:
@grep "^.PHONY: .* #" $(CURDIR)/makefiles/Makefile.java.mk | sed "s/\.PHONY: \(.*\) # \(.*\)/\1\t\2/" | expand -t24
.PHONY: java rjava cjava
.PHONY: rjava cjava
JAVA_ORTOOLS_LIBS= $(LIB_DIR)/com.google.ortools.jar $(LIB_DIR)/$(LIB_PREFIX)jniortools.$(JNI_LIB_EXT)
@@ -374,25 +378,21 @@ endif
endif # ifeq ($(EX),)
# Main target
.PHONY: java # Build Java OR-Tools.
.PHONY: test_java # Test Java OR-Tools using various examples.
CANONIC_JDK_DIRECTORY = $(subst $(SPACE),$(BACKSLASH_SPACE),$(subst \,/,$(subst \\,/,$(JDK_DIRECTORY))))
ifeq ($(wildcard $(CANONIC_JDK_DIRECTORY)),)
java:
@echo "The java executable was not set properly. Check Makefile.local for more information."
$@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_ORTOOLS_LIBS)
test_java: test_java_examples
BUILT_LANGUAGES +=, java
BUILT_LANGUAGES +=, Java
endif
detect_java:
@echo JDK_DIRECTORY = $(JDK_DIRECTORY)
@echo JAVA_BIN = $(JAVA_BIN)
@echo JAVA_INC = $(JAVA_INC)
@echo JAVAC_BIN = $(JAVAC_BIN)
@echo JAR_BIN = $(JAR_BIN)
# Clean target
.PHONY: clean_java # Clean Java output from previous build.
clean_java:
-$(DEL) $(LIB_DIR)$S$(LIB_PREFIX)jni*.$(JNI_LIB_EXT)
-$(DEL) $(LIB_DIR)$S*.jar
@@ -410,3 +410,11 @@ clean_java:
-$(DEL) $(OBJ_DIR)$Scom$Sgoogle$Sortools$Slinearsolver$S*.class
-$(DEL) $(OBJ_DIR)$Scom$Sgoogle$Sortools$Ssamples$S*.class
-$(DEL) $(OBJ_DIR)$Sswig$S*java_wrap.$O
.PHONY: detect_java # Show variables used to build Java OR-Tools.
detect_java:
@echo JDK_DIRECTORY = $(JDK_DIRECTORY)
@echo JAVA_BIN = $(JAVA_BIN)
@echo JAVA_INC = $(JAVA_INC)
@echo JAVAC_BIN = $(JAVAC_BIN)
@echo JAR_BIN = $(JAR_BIN)