summaryrefslogtreecommitdiff
path: root/odk
diff options
context:
space:
mode:
authorJuergen Schmidt <jsc@openoffice.org>2010-10-28 14:20:34 +0200
committerJuergen Schmidt <jsc@openoffice.org>2010-10-28 14:20:34 +0200
commitfa59c73830964b2add1443f5b081982342802eca (patch)
tree18b8b608d0eb0299795aeb51c46f1e1f86d1c286 /odk
parent34ed8946e9fac7b881122b8566b1fd865bc1232d (diff)
jsc340: fix problem in resolveLink
Diffstat (limited to 'odk')
-rwxr-xr-xodk/configure.pl21
1 files changed, 17 insertions, 4 deletions
diff --git a/odk/configure.pl b/odk/configure.pl
index ea5b58452b1c..e1a1cfb99924 100755
--- a/odk/configure.pl
+++ b/odk/configure.pl
@@ -5,6 +5,7 @@
#
use IO::File;
+use File::Basename;
$main::hostname= $ARGV[0];
$main::sdkpath= $ARGV[1];
@@ -554,15 +555,26 @@ sub resolveLink
{
my $base= shift;
my $link= shift;
- my $linktarget = readlink "$base/$link";
+
+ my $resolvedpath = "$base/$link";
+ my $linktarget = readlink "$resolvedpath";
my $resolvedlink = "";
while ( $linktarget ne "") {
- $link = $linktarget;
- $linktarget = readlink "$base/$link";
+
+ if ( $linktarget =~ m/^\/.*/ )
+ {
+ $resolvedpath = "$linktarget";
+ } else {
+ $resolvedpath = `cd $base/$linktarget; pwd`;
+ chop $resolvedpath;
}
+ $base = dirname("$resolvedpath");
- $resolvedlink = `cd $base/$link; pwd`;
+ $linktarget = readlink "$resolvedpath";
+ }
+
+ $resolvedlink = `cd $resolvedpath; pwd`;
chop $resolvedlink;
return $resolvedlink;
}
@@ -578,6 +590,7 @@ 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" )
{
return "$progDir/$main::OO_SDK_JAVA_BIN_DIR";