diff options
author | Rüdiger Timm <rt@openoffice.org> | 2005-01-31 14:53:51 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2005-01-31 14:53:51 +0000 |
commit | ff92e2431522fc69c64fefce4a3679bd999324fe (patch) | |
tree | 248dc2623bb5183345a05e6980e709710eda6206 /odk/configure.pl | |
parent | 29894bf9b88fac282fc6dab8c9277863da9c408b (diff) |
INTEGRATION: CWS sdksample (1.8.4); FILE MERGED
2005/01/11 11:00:15 jsc 1.8.4.10: #i28381# use head -n 1
2004/12/09 15:44:40 jsc 1.8.4.9: #i38747# take care of compiler verison and adjust link option, solaris only
2004/11/25 09:50:47 jsc 1.8.4.8: #i29308# remove UNO Java framework variables (temporary)
2004/11/11 10:31:50 jsc 1.8.4.7: #i29308# clean up compiler option
2004/10/22 09:40:47 jsc 1.8.4.6: #i35871# adapt for Java 5.0
2004/08/24 14:59:05 jsc 1.8.4.5: #i29308# improved
2004/06/25 15:49:21 jsc 1.8.4.4: #i29308# updated
2004/06/14 09:51:27 jsc 1.8.4.3: #26337# special work for gcc - GXX_INCLUDE_APTH
2004/06/11 12:52:21 jsc 1.8.4.2: #26337# special work for gcc - GXX_INCLUDE_APTH
2004/06/02 12:49:43 jsc 1.8.4.1: #i26335# #i26337# #i28381# prepare new scripts, configure zip tool
Diffstat (limited to 'odk/configure.pl')
-rw-r--r-- | odk/configure.pl | 220 |
1 files changed, 154 insertions, 66 deletions
diff --git a/odk/configure.pl b/odk/configure.pl index d4fce89f09c7..bd3db79342ee 100644 --- a/odk/configure.pl +++ b/odk/configure.pl @@ -16,20 +16,29 @@ $main::OO_SDK_HOME_SUGGESTION = $main::currentWorkingDir; $main::OFFICE_HOME = ""; $main::OFFICE_HOME_SUGGESTION = searchprog("soffice"); -$main::tmpOffice = readlink "$main::OFFICE_HOME_SUGGESTION/soffice"; -if ( ! $main::tmpOffice eq "" ) +if ( ! $main::OFFICE_HOME_SUGGESTION eq "" ) { - my $offset = rindex($main::tmpOffice, "/program/soffice"); - if ( $main::offset != -1 ) + my $tmpOffice = readlink "$main::OFFICE_HOME_SUGGESTION/soffice"; + + if ( $tmpOffice eq "" ) { - $main::OFFICE_HOME_SUGGESTION = substr($main::tmpOffice, 0, $offset); - } else + $tmpOffice = "$main::OFFICE_HOME_SUGGESTION/soffice"; + } + + my $offset = rindex($tmpOffice, "/program/soffice"); + if ( $offset != -1 ) { - $offset = rindex($main::tmpOffice, "/soffice"); - if ( $main::offset != -1 ) + $main::OFFICE_HOME_SUGGESTION = substr($tmpOffice, 0, $offset); + } else { - $main::OFFICE_HOME_SUGGESTION = substr($main::tmpOffice, 0, $offset); - } + $offset = rindex($tmpOffice, "/soffice"); + if ( $offset != -1 ) + { + $main::OFFICE_HOME_SUGGESTION = substr($tmpOffice, 0, $offset); + } else + { + $main::OFFICE_HOME_SUGGESTION = ""; + } } } @@ -38,6 +47,10 @@ $main::OO_SDK_MAKE_HOME_SUGGESTION = searchprog("make"); $main::makeVersion = "3.79.1"; $main::correctVersion = 0; +$main::OO_SDK_ZIP_HOME = ""; +$main::OO_SDK_ZIP_HOME_SUGGESTION = searchprog("zip"); +$main::zipVersion = "2.3"; + $main::OO_SDK_CPP_HOME = ""; $main::cppName = "gcc"; $main::cppVersion = "3.0.1"; @@ -46,7 +59,7 @@ if ( $main::operatingSystem eq "SunOS" ) $main::cppName = "CC"; $main::cppVersion = "5.2"; } - +$main::OO_SDK_CC_55_OR_HIGHER = ""; $main::OO_SDK_CPP_HOME_SUGGESTION = searchprog($main::cppName); $main::OO_SDK_JAVA_HOME = ""; @@ -144,12 +157,6 @@ while ( (!$main::correctVersion) && my $testVersion = `$OO_SDK_MAKE_HOME/make --version`; if ( $testVersion eq "") { - $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); -} - print " The 'make' command found at $main::OO_SDK_MAKE_HOME/make is not GNU Make\n"; print " Set the environment variable OO_SDK_MAKE_HOME to your GNU build tools directory.\n"; print " GNU make version $main::makeVersion can be obtained at ftp://ftp.gnu.org/gnu/make/\n"; } else @@ -158,7 +165,7 @@ if ( $main::offset != -1 ) { $testVersion = $1; } - $main::correctVersion = testVersion($main::makeVersion, $testVersion, "$main::OO_SDK_MAKE_HOME/make"); + $main::correctVersion = testVersion($main::makeVersion, $testVersion, "$main::OO_SDK_MAKE_HOME/make", 1); if ( !$main::correctVersion ) { print " The 'make' command found at '$main::OO_SDK_MAKE_HOME' has a wrong version\n"; @@ -168,6 +175,49 @@ if ( $main::offset != -1 ) } } +# prepare zip path +$main::correctVersion = 0; +while ( (!$main::correctVersion) && + ((! -d "$main::OO_SDK_ZIP_HOME" ) || + ((-d "$main::OO_SDK_ZIP_HOME") && (! -e "$main::OO_SDK_ZIP_HOME/zip"))) ) +{ + print " Enter zip ($main::zipVersion or higher) tool directory [$main::OO_SDK_ZIP_HOME_SUGGESTION]: "; + $main::OO_SDK_ZIP_HOME = readStdIn(); + chop($main::OO_SDK_ZIP_HOME); + if ( $main::OO_SDK_ZIP_HOME eq "" ) + { + $main::OO_SDK_ZIP_HOME = $main::OO_SDK_ZIP_HOME_SUGGESTION; + } + if ( (! -d "$main::OO_SDK_ZIP_HOME") || + ((-d "$main::OO_SDK_ZIP_HOME") && (! -e "$main::OO_SDK_ZIP_HOME/zip")) ) + { + $main::OO_SDK_ZIP_HOME = ""; + print " Error: zip tool is required, please specify a zip tool directory.\n"; + } else + { + #check version + my $testVersion = `$OO_SDK_ZIP_HOME/zip -h 2>&1 | egrep Zip | head -n 1`; + $testVersion =~ s#Zip ([\d.]+) .*#$1#go; + if ( $testVersion eq "") + { + print " Set the environment variable OO_SDK_ZIP_HOME to your zip tool directory.\n"; + print " zip version $main::zipVersion can be obtained at ftp://www.info-zip.org/\n"; + } else + { + if ($testVersion =~ m#((\d+\.)+\d+)# ) + { + $testVersion = $1; + } + $main::correctVersion = testVersion($main::zipVersion, $testVersion, "$main::OO_SDK_MAKE_HOME/zip", 1); + if ( !$main::correctVersion ) + { + print " The 'zip' command found at '$main::OO_SDK_ZIP_HOME' has a wrong version\n"; + $main::OO_SDK_ZIP_HOME = ""; + } + } + } +} + # prepare C++ compiler path $main::correctVersion = 0; while ( (!$main::correctVersion) && @@ -185,11 +235,7 @@ while ( (!$main::correctVersion) && if ( $main::OO_SDK_CPP_HOME eq "" ) { $main::OO_SDK_CPP_HOME = $main::OO_SDK_CPP_HOME_SUGGESTION; - }$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); -} + } if ( ! $main::OO_SDK_CPP_HOME eq "" ) { @@ -216,7 +262,7 @@ if ( $main::offset != -1 ) print " ftp://ftp.gnu.org/gnu/gcc/\n"; } else { - $main::correctVersion = testVersion($main::cppVersion, $testVersion, "$main::OO_SDK_CPP_HOME/$main::cppName"); + $main::correctVersion = testVersion($main::cppVersion, $testVersion, "$main::OO_SDK_CPP_HOME/$main::cppName", 1); if ( !$main::correctVersion ) { print " The '$main::cppName' command found at '$main::OO_SDK_CPP_HOME' has a wrong version\n"; @@ -244,7 +290,7 @@ if ( $main::offset != -1 ) { $testVersion = $1; } - $main::correctVersion = testVersion($main::cppVersion, $testVersion, "$main::OO_SDK_CPP_HOME/$main::cppName"); + $main::correctVersion = testVersion($main::cppVersion, $testVersion, "$main::OO_SDK_CPP_HOME/$main::cppName", 1); if ( !$main::correctVersion ) { print " The '$main::cppName' command found at '$main::OO_SDK_CPP_HOME' has a wrong version\n"; @@ -254,6 +300,11 @@ if ( $main::offset != -1 ) } $main::OO_SDK_CPP_HOME = ""; + } else { + $main::correctVersion = testVersion("5.5", $testVersion, "$main::OO_SDK_CPP_HOME/$main::cppName", 2); + if ( $main::correctVersion ) { + $main::OO_SDK_CC_55_OR_HIGHER = $testVersion; + } } } } @@ -279,29 +330,44 @@ while ( (!$main::correctVersion) && ((! -d "$main::OO_SDK_JAVA_HOME" ) || ((-d "$main::OO_SDK_JAVA_HOME") && (! -e "$main::OO_SDK_JAVA_HOME/bin/javac"))) ) { - print " Enter JAVA SDK (1.4.1_01 or higher) installation directory [$Main::OO_SDK_JAVA_HOME_SUGGESTION]: "; + print " Enter Java SDK (1.4.1_01 or higher) installation directory (optional) [$Main::OO_SDK_JAVA_HOME_SUGGESTION]: "; $main::OO_SDK_JAVA_HOME = readStdIn(); chop($main::OO_SDK_JAVA_HOME); if ( $main::OO_SDK_JAVA_HOME eq "" ) { $main::OO_SDK_JAVA_HOME = $main::OO_SDK_JAVA_HOME_SUGGESTION; } - if ( (! -d "$main::OO_SDK_JAVA_HOME") || - ((-d "$main::OO_SDK_JAVA_HOME") && (! -e "$main::OO_SDK_JAVA_HOME/bin/javac")) ) + if ( ! $main::OO_SDK_JAVA_HOME eq "" ) { - $main::OO_SDK_JAVA_HOME = ""; - print " Error: A Java SDK is required, please specify a valid Java SDK directory.\n"; - } else - { - #check version - my $testVersion = `$main::OO_SDK_JAVA_HOME/bin/java -version 2>&1 | egrep "java version" | head -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/bin/java"); - if ( !$main::correctVersion ) + if ( (! -d "$main::OO_SDK_JAVA_HOME") || + ((-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/bin/javac'.\n"; + if ( skipChoice("JAVA SDK") == 1 ) + { + $main::correctVersion = 1; + } $main::OO_SDK_JAVA_HOME = ""; + } else + { + #check version + 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/bin/java", 1); + if ( !$main::correctVersion ) + { + if ( skipChoice("JAVA SDK") == 1 ) + { + $main::correctVersion = 1; + } + $main::OO_SDK_JAVA_HOME = ""; + } } + }else + { + # the Java SDK is optional + $main::correctVersion = 1; } } @@ -351,34 +417,21 @@ while ( $main::SDK_AUTO_DEPLOYMENT eq "" || } } +prepareScriptFile("setsdkenv_unix.sh.in", "setsdkenv_unix.sh", 1); +chmod 0644, "$main::currentWorkingDir/setsdkenv_unix.sh"; -open ( FILEIN, "$main::currentWorkingDir/setsdkenv_unix.in" ) || die "\nERROR: could not open '$main::currentWorkingDir/setsdkenv_unix.in' for reading"; -open ( FILEOUT, ">$main::currentWorkingDir/setsdkenv_unix" ) || die "\nERROR: could not open '$main::currentWorkingDir/setsdkenv_unix' for writing"; - -while ( <FILEIN> ) -{ - $_ =~ s#\@OO_SDK_NAME\@#$main::OO_SDK_NAME#go; - $_ =~ s#\@OO_SDK_HOME\@#$main::OO_SDK_HOME#go; - $_ =~ s#\@OFFICE_HOME\@#$main::OFFICE_HOME#go; - $_ =~ s#\@OO_SDK_MAKE_HOME\@#$main::OO_SDK_MAKE_HOME#go; - $_ =~ s#\@OO_SDK_CPP_HOME\@#$main::OO_SDK_CPP_HOME#go; - $_ =~ s#\@OO_SDK_JAVA_HOME\@#$main::OO_SDK_JAVA_HOME#go; - $_ =~ s#\@SDK_AUTO_DEPLOYMENT\@#$main::SDK_AUTO_DEPLOYMENT#go; - $_ =~ s#\@OO_SDK_OUTPUT_DIR\@#$main::OO_SDK_OUTPUT_DIR#go; - - print FILEOUT $_; -} - -close FILEIN; -close FILEOUT; -chmod 0755, "$main::currentWorkingDir/setsdkenv_unix"; +prepareScriptFile("setsdkenv_unix.csh.in", "setsdkenv_unix.csh", 2); +chmod 0644, "$main::currentWorkingDir/setsdkenv_unix.csh"; print "\n"; -print " *****************************************************************\n"; -print " * ... \"setsdkenv_unix\" has been prepared. *\n"; -print " * For each time you want to use this configured SDK environment *\n"; -print " * environment, please run the \"setsdkenv_unix\" script file! *\n"; -print " *****************************************************************\n\n"; +print " *********************************************************************\n"; +print " * ... your SDK environment has been prepared.\n"; +print " * For each time you want to use this configured SDK environment, you\n"; +print " * have to run the \"setsdkenv_unix\" script file!\n"; +print " * Alternatively can you source one of the scripts \"setsdkenv_unix.sh\"\n"; +print " * or \"setsdkenv_unix.csh\" to get an environment without starting\n"; +print " * a new shell.\n"; +print " *********************************************************************\n\n"; exit $return; @@ -430,6 +483,8 @@ sub testVersion my $tmpMustBeVersion = shift; my $tmpTestVersion = shift; my $toolName = shift; + # 1=check + message 2=check only + my $checkOnly = shift; my @mustBeVersion = split(/\.|_|-/,$tmpMustBeVersion); my @testVersion = split(/\.|_|-/,$tmpTestVersion); my $length = $#mustBeVersion; @@ -442,8 +497,10 @@ sub testVersion { if ( @testVersion->[$i] < @mustBeVersion->[$i] ) { - print " The command '$toolName' has the version $tmpTestVersion.\n"; - print " The SDK requires at least the version $tmpMustBeVersion.\n"; + if ( $#checkOnly == 1 ) { + print " The command '$toolName' has the version $tmpTestVersion.\n"; + print " The SDK requires at least the version $tmpMustBeVersion.\n"; + } return 0; } else { if ( @testVersion->[$i] > @mustBeVersion->[$i] ) @@ -465,7 +522,7 @@ sub readSDKName close( FILEIN ); foreach $_ (@lines) { - if( s#(SDKNAME=([\w]+)\n)#$1#go ) + if( s#(SDKNAME=([\w\._]+)\n)#$1#go ) { return $2; break; @@ -485,3 +542,34 @@ sub readStdIn return $tmpstdin; } + +sub prepareScriptFile() +{ + my $inputFile = shift; + my $outputFile = shift; + # shell mode 1 = sh + # 2 = csh + my $shellMode = shift; + + open ( FILEIN, "$main::currentWorkingDir/$inputFile" ) || die "\nERROR: could not open '$main::currentWorkingDir/$inputFile' for reading"; + open ( FILEOUT, ">$main::currentWorkingDir/$outputFile" ) || die "\nERROR: could not open '$main::currentWorkingDir/$outputFile' for writing"; + + while ( <FILEIN> ) + { + $_ =~ s#\@OO_SDK_NAME\@#$main::OO_SDK_NAME#go; + $_ =~ s#\@OO_SDK_HOME\@#$main::OO_SDK_HOME#go; + $_ =~ s#\@OFFICE_HOME\@#$main::OFFICE_HOME#go; + $_ =~ s#\@OO_SDK_MAKE_HOME\@#$main::OO_SDK_MAKE_HOME#go; + $_ =~ s#\@OO_SDK_ZIP_HOME\@#$main::OO_SDK_ZIP_HOME#go; + $_ =~ s#\@OO_SDK_CPP_HOME\@#$main::OO_SDK_CPP_HOME#go; + $_ =~ s#\@OO_SDK_CC_55_OR_HIGHER\@#$main::OO_SDK_CC_55_OR_HIGHER#go; + $_ =~ s#\@OO_SDK_JAVA_HOME\@#$main::OO_SDK_JAVA_HOME#go; + $_ =~ s#\@SDK_AUTO_DEPLOYMENT\@#$main::SDK_AUTO_DEPLOYMENT#go; + $_ =~ s#\@OO_SDK_OUTPUT_DIR\@#$main::OO_SDK_OUTPUT_DIR#go; + + print FILEOUT $_; + } + + close FILEIN; + close FILEOUT; +} |