diff options
author | Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org> | 2014-10-01 03:30:11 +0200 |
---|---|---|
committer | Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org> | 2014-10-16 14:08:32 +0200 |
commit | 311384fec340a7f2f76ca7f45599987df4341d5b (patch) | |
tree | 4f7aead4e537f92d2462973f91b183f29241bacc | |
parent | 35dd358cc4fccb062bd90cb1f9404a582b4facd4 (diff) | |
download | build-311384fec340a7f2f76ca7f45599987df4341d5b.tar.gz build-311384fec340a7f2f76ca7f45599987df4341d5b.tar.bz2 build-311384fec340a7f2f76ca7f45599987df4341d5b.zip |
Fix Java detection on some Linux distributions
On some Linux distributions (spotted here on OpenMandriva Lx, but I'm
pretty sure some others do the same thing), "which javac" returns
/usr/bin/javac, which is a symlink to "../../etc/alternatives/javac",
which in turn points at whatever the JDK the user picked as his default.
Given "../../etc/alternatives/javac" is a relative symlink, the next
iteration of LSLINE=$(ls -l "$JAVAC") fails (no ../../etc/alternatives/java
relative to the build directory), causing tools.jar not to be found.
Using realpath and readlink where possible should work in all cases.
Change-Id: Ic60ac84a5b263dc1c1f2960092a7549d1024ed2e
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
-rwxr-xr-x | core/find-jdk-tools-jar.sh | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/core/find-jdk-tools-jar.sh b/core/find-jdk-tools-jar.sh index f150a9abd..02248295f 100755 --- a/core/find-jdk-tools-jar.sh +++ b/core/find-jdk-tools-jar.sh @@ -2,7 +2,13 @@ if [ "x$ANDROID_JAVA_HOME" != x ] && [ -e "$ANDROID_JAVA_HOME/lib/tools.jar" ] ; then echo $ANDROID_JAVA_HOME/lib/tools.jar else - JAVAC=$(which javac) + JAVAC=$(realpath $(which javac) 2>/dev/null) + if [ -z "$JAVAC" ]; then + JAVAC=$(readlink -f $(which javac) 2>/dev/null) + fi + if [ -z "$JAVAC" ]; then + JAVAC=$(which javac) + fi if [ -z "$JAVAC" ] ; then exit 1 fi |