From c306c444bfd3d0984741fd99ed4f29016ef14ee2 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Wed, 1 Feb 2017 14:53:19 +0100 Subject: Also on macOS use JDK's .../Home/bin/javac etc. Only on macOS, the SDK used to expect javac etc. in a Commands sub-dir (which Apple's JDK 1.6.0 has but Oracle's JDK 1.8.x don't). However, at least both Apple's latest JDK 1.6.0 (as available via "Download Java for OS X 2015-001") and any recent Oracle JDK 1.8.x (like jdk1.8.0_121.jdk) have a Home sub-dir that contains a "standard" sub-tree with bin sub-dir etc., like on other platforms. So consistently make the SDK use that instead. This removes the JAVABIN Make variable from settings.mk. It is assumed to not be used by client code. Change-Id: Ie0ad647f489528444dfd399c2f00500b772d3288 --- odk/config/configure.pl | 27 +++++++++++---------------- odk/config/setsdkenv_unix.sh.in | 4 +--- odk/settings/settings.mk | 3 --- odk/settings/std.mk | 8 ++++---- 4 files changed, 16 insertions(+), 26 deletions(-) (limited to 'odk') diff --git a/odk/config/configure.pl b/odk/config/configure.pl index c9505dc79084..bc56d8782944 100755 --- a/odk/config/configure.pl +++ b/odk/config/configure.pl @@ -74,11 +74,6 @@ $main::cppVersion = "4.0.1"; $main::OO_SDK_CPP_HOME_SUGGESTION = searchprog($main::cppName); $main::OO_SDK_JAVA_HOME = ""; -$main::OO_SDK_JAVA_BIN_DIR = "bin"; -if ( $main::operatingSystem =~ m/darwin/ ) -{ - $main::OO_SDK_JAVA_BIN_DIR="Commands"; -} $main::OO_SDK_JAVA_HOME_SUGGESTION = searchprog("javac"); $main::javaVersion = "1.5.0_01"; @@ -387,8 +382,8 @@ while ( (!$main::correctVersion) && # prepare Java path $main::correctVersion = 0; -# prepare Java suggestion (cut bin or Commands directory to be in the root of the Java SDK) -$main::offset = rindex($main::OO_SDK_JAVA_HOME_SUGGESTION, "/$main::OO_SDK_JAVA_BIN_DIR"); +# prepare Java suggestion (cut bin directory to be in the root of the Java SDK) +$main::offset = rindex($main::OO_SDK_JAVA_HOME_SUGGESTION, "/bin"); if ( $main::offset != -1 ) { $main::OO_SDK_JAVA_HOME_SUGGESTION = substr($main::OO_SDK_JAVA_HOME_SUGGESTION, 0, $main::offset); @@ -396,7 +391,7 @@ if ( $main::offset != -1 ) while ( (!$main::correctVersion) && ((! -d "$main::OO_SDK_JAVA_HOME" ) || - ((-d "$main::OO_SDK_JAVA_HOME") && (! -e "$main::OO_SDK_JAVA_HOME/$main::OO_SDK_JAVA_BIN_DIR/javac"))) ) + ((-d "$main::OO_SDK_JAVA_HOME") && (! -e "$main::OO_SDK_JAVA_HOME/bin/javac"))) ) { print " Enter Java SDK (1.5, recommendation is 1.6 or higher) installation directory (optional) [$main::OO_SDK_JAVA_HOME_SUGGESTION]: "; $main::OO_SDK_JAVA_HOME = readStdIn(); @@ -408,9 +403,9 @@ while ( (!$main::correctVersion) && if ( ! $main::OO_SDK_JAVA_HOME eq "" ) { if ( (! -d "$main::OO_SDK_JAVA_HOME") || - ((-d "$main::OO_SDK_JAVA_HOME") && (! -e "$main::OO_SDK_JAVA_HOME/$main::OO_SDK_JAVA_BIN_DIR/javac")) ) + ((-d "$main::OO_SDK_JAVA_HOME") && (! -e "$main::OO_SDK_JAVA_HOME/bin/javac")) ) { - print " Error: Could not find directory '$main::OO_SDK_JAVA_HOME' or '$main::OO_SDK_JAVA_HOME/$main::OO_SDK_JAVA_BIN_DIR/javac'.\n"; + print " Error: Could not find directory '$main::OO_SDK_JAVA_HOME' or '$main::OO_SDK_JAVA_HOME/bin/javac'.\n"; if ( skipChoice("JAVA SDK") == 1 ) { $main::correctVersion = 1; @@ -419,10 +414,10 @@ while ( (!$main::correctVersion) && } else { #check version - my $testVersion = `$main::OO_SDK_JAVA_HOME/$main::OO_SDK_JAVA_BIN_DIR/java -version 2>&1 | egrep "java version" | head -n 1 | sed -e 's#.*version "##' | sed -e 's#".*##'`; + my $testVersion = `$main::OO_SDK_JAVA_HOME/bin/java -version 2>&1 | egrep "java version" | head -n 1 | sed -e 's#.*version "##' | sed -e 's#".*##'`; $testVersion =~ s#([^\n]+)\n#$1#go; - $main::correctVersion = testVersion($main::javaVersion, $testVersion, "$main::OO_SDK_JAVA_HOME/$main::OO_SDK_JAVA_BIN_DIR/java", 1); + $main::correctVersion = testVersion($main::javaVersion, $testVersion, "$main::OO_SDK_JAVA_HOME/bin/java", 1); if ( !$main::correctVersion ) { if ( skipChoice("JAVA SDK") == 1 ) @@ -559,17 +554,17 @@ sub searchprog if ( $main::operatingSystem =~ m/darwin/ ) { $progDir = resolveLink("/System/Library/Frameworks/JavaVM.Framework/Versions", "CurrentJDK"); - if ( -e "$progDir/$main::OO_SDK_JAVA_BIN_DIR/javac" ) + if ( -e "$progDir/Home/bin/javac" ) { - return "$progDir/$main::OO_SDK_JAVA_BIN_DIR"; + return "$progDir/Home/bin"; } } if ( $main::operatingSystem =~ m/solaris/ ) { $progDir = resolveLink("/usr/jdk", "latest"); - if ( -e "$progDir/$main::OO_SDK_JAVA_BIN_DIR/javac" ) + if ( -e "$progDir/bin/javac" ) { - return "$progDir/$main::OO_SDK_JAVA_BIN_DIR"; + return "$progDir/bin"; } } } diff --git a/odk/config/setsdkenv_unix.sh.in b/odk/config/setsdkenv_unix.sh.in index 1ca7249cbea4..03644b58809a 100644 --- a/odk/config/setsdkenv_unix.sh.in +++ b/odk/config/setsdkenv_unix.sh.in @@ -81,12 +81,10 @@ sdk_platform=`/bin/sh ${OO_SDK_HOME}/config.guess | cut -d"-" -f3,4` # Set the directory name. programdir=program -javadir=bin sdk_lo_java_dir=program/classes case ${sdk_platform} in darwin*) programdir="Contents/MacOS" - javadir=Commands sdk_lo_java_dir=Contents/Resources/java ;; esac @@ -244,7 +242,7 @@ fi # Add directory of the Java tools to the path, if necessary. if [ -n "${OO_SDK_JAVA_HOME}" ] then - PATH=${OO_SDK_JAVA_HOME}/${javadir}:${PATH} + PATH=${OO_SDK_JAVA_HOME}/bin:${PATH} # JAVA_HOME=${OO_SDK_JAVA_HOME} # export JAVA_HOME export OO_SDK_JAVA_HOME diff --git a/odk/settings/settings.mk b/odk/settings/settings.mk index 74bd791c0462..b455a6b5d399 100644 --- a/odk/settings/settings.mk +++ b/odk/settings/settings.mk @@ -38,8 +38,6 @@ ifeq "$(DEBUG)" "yes" JAVAC_FLAGS+=-g endif -JAVABIN=bin - ########################################################################### # # Windows specific settings @@ -368,7 +366,6 @@ endif ifeq "$(PLATFORM)" "macosx" UNOPKG_PLATFORM=MacOSX_x86_64 -JAVABIN=Commands OS=MACOSX PS=/ diff --git a/odk/settings/std.mk b/odk/settings/std.mk index e69fc3ec4803..dfa01e66fa82 100644 --- a/odk/settings/std.mk +++ b/odk/settings/std.mk @@ -61,7 +61,7 @@ OFFICE_TYPE_LIBRARY="$(OFFICE_TYPES)" JAVA_OPTIONS= ifneq "$(OO_SDK_JAVA_HOME)" "" -JAVA_BITS := $(shell $(OO_SDK_JAVA_HOME)/$(JAVABIN)/java -version 2>&1 | tail -1 | cut -d " " -f3) +JAVA_BITS := $(shell $(OO_SDK_JAVA_HOME)/bin/java -version 2>&1 | tail -1 | cut -d " " -f3) ifeq "$(JAVA_BITS)" "64-Bit" ifneq "$(PROCTYPE)" "x86_64" JAVA_OPTIONS=-d32 @@ -70,9 +70,9 @@ endif endif DEPLOYTOOL="$(OFFICE_PROGRAM_PATH)$(PS)unopkg" add -f -SDK_JAVA="$(OO_SDK_JAVA_HOME)/$(JAVABIN)/java" $(JAVA_OPTIONS) -SDK_JAVAC="$(OO_SDK_JAVA_HOME)/$(JAVABIN)/javac" -SDK_JAR="$(OO_SDK_JAVA_HOME)/$(JAVABIN)/jar" +SDK_JAVA="$(OO_SDK_JAVA_HOME)/bin/java" $(JAVA_OPTIONS) +SDK_JAVAC="$(OO_SDK_JAVA_HOME)/bin/javac" +SDK_JAR="$(OO_SDK_JAVA_HOME)/bin/jar" ifneq "$(OO_SDK_ZIP_HOME)" "" SDK_ZIP="$(OO_SDK_ZIP_HOME)/zip" else -- cgit