diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2010-04-16 10:09:51 +0200 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2010-04-16 10:09:51 +0200 |
commit | 14ce085d58d78e5527e2e1679a0df7846810dffc (patch) | |
tree | a85546be99ec8331d1f6425c9a7ff85bdb1a618a /solenv | |
parent | cd7911010e47bdf53f8ec2cff248b850cd9fa436 (diff) | |
parent | 19087e3ef7793983f244d1d5265fefe746ef7727 (diff) |
CWS-TOOLING: integrate CWS sb118
Diffstat (limited to 'solenv')
45 files changed, 496 insertions, 2403 deletions
diff --git a/solenv/bin/addsym.awk b/solenv/bin/addsym.awk index c7b02e15db35..52efcb4ab740 100644 --- a/solenv/bin/addsym.awk +++ b/solenv/bin/addsym.awk @@ -25,29 +25,17 @@ # #************************************************************************* -# Add symbol patterns _ZTI* and _ZTS* to the global section of version UDK_3_0_0 -# (and if that version is not yet present, add it). For C++ exception handling -# to work across libraries, it is important that all libraries use those symbols -# with the same version name. -# -# The below code fails with 'perverted' mapfiles (using a strange line layout, -# or containing version UDK_3_0_0 without a global section, ...). +# Add certain symbol patterns to the first global section. BEGIN { state = 0 } -END { - if (state == 0) { - print "# Weak RTTI symbols for C++ exceptions:" - print "UDK_3_0_0 {" - print "\tglobal:" - print "\t_ZTI*; _ZTS*;" - print "};" - } -} +/\{/ && state == 1 { exit 1 } #TODO: print error explanation to stderr? +/^[\t ]*UDK_3_0_0[\t ]*\{/ && state == 0 { state = 1 } +/^[\t ]*global[\t ]*:/ && state == 1 { state = 2 } +{ print } state == 2 { - print " _ZTI*; _ZTS*; # weak RTTI symbols for C++ exceptions" + print "_ZTI*; _ZTS*; # weak RTTI symbols for C++ exceptions" + if (ENVIRON["USE_SYSTEM_STL"] != "YES") + print "_ZN4_STL7num_put*; # for STLport" state = 3 } -# #i66636# - ??? -/^[\t ]*UDK_3_0_0[\t ]*\{/ { state = 1 } -/^[\t ]*global[\t ]*:/ && state == 1 { state = 2 } -{ print } +END { if (state != 3) exit 1 } #TODO: print error explanation to stderr? diff --git a/solenv/bin/checkapi b/solenv/bin/checkapi deleted file mode 100755 index f86fcefb93d1..000000000000 --- a/solenv/bin/checkapi +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash - -PS=":" -# cygwin: -if [ "$GUI" = "WNT" ]; then - PS=";" -fi - -JARFOLDER=$SOLARVERSION/$INPATH/bin$UPDMINOREXT -SOLVER_LIB=$SOLARVERSION/$INPATH/lib$UPDMINOREXT - -# it is possible to give an other OOoRunner.jar -if [ -n "$RUNNERJAR" ]; then - myCLASSPATH=$RUNNERJAR -else - myCLASSPATH=$JARFOLDER/OOoRunner.jar -fi - -myCLASSPATH=$myCLASSPATH${PS}${JARFOLDER}/ridl.jar${PS}\ -${JARFOLDER}/unoil.jar${PS}\ -${JARFOLDER}/jurt.jar${PS}\ -${JARFOLDER}/juh.jar${PS}\ -${JARFOLDER}/java_uno.jar - -myCLASSPATH=$myCLASSPATH${PS}\ -/net/unoapi/export/unoapi/bin/mysql.jar${PS}\ -$SOLVER_LIB - -if [ -n "$JAVAI" ]; then - JAVABIN=$JAVAI -elif [ -n "$JAVA_HOME" ]; then - if [ "$OS$CPUNAME$CPU" = SOLARISSPARCU ]; then - JAVABIN=$JAVA_HOME/bin/sparcv9/java - else - JAVABIN=$JAVA_HOME/bin/java - fi -else - # there seems to be some machines without real java - JAVABIN=$(which java) - if [ -z "$JAVABIN" ]; then - echo "please set environment variable JAVA_HOME" - exit 1 - fi -fi - -if [ x${USER}x = xx ]; then - if [ x${LOGNAME}x = xx ]; then - echo "ERROR: could not determine username. Please export variable USER" >&2 - exit $EXIT_FAILURE - else - USER=$LOGNAME - export USER - fi -fi - -PARAM="-cs pipe,name=$USER -SRC_ROOT $SRC_ROOT" - -if [ -n "$RUNNERPROPS" ]; then - PARAM="$PARAM -runnerini $RUNNERPROPS" -fi - -DEBUG_THE_API="" -if [ -n "$DEBUGAPI" ]; then - export DEBUGAPI="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9002,suspend=y" - DEBUG_THE_API=$DEBUGAPI -fi - -COMMAND="$JAVABIN -Xmx120m $DEBUG_THE_API -cp $myCLASSPATH org.openoffice.Runner $PARAM $*" -echo $COMMAND -$COMMAND -# if COMMAND fails, it returns also the exitcode diff --git a/solenv/bin/checkapi.btm b/solenv/bin/checkapi.btm deleted file mode 100644 index 7af444eb601f..000000000000 --- a/solenv/bin/checkapi.btm +++ /dev/null @@ -1,44 +0,0 @@ -@echo off - -setlocal - -SET JARFOLDER=%SOLARVERSION%\%INPATH%\bin%UPDMINOREXT% - -IFF "%RUNNERJAR%" != "" THEN - SET APICLASSPATH=%RUNNERJAR% -ELSE - SET APICLASSPATH=%JARFOLDER%\OOoRunner.jar -ENDIFF - -SET APICLASSPATH=%APICLASSPATH%;%JARFOLDER%\ridl.jar;%JARFOLDER%\unoil.jar;%JARFOLDER%\jurt.jar;%JARFOLDER%\juh.jar;%JARFOLDER%\java_uno.jar;\\unoapi\export\unoapi\bin\mysql.jar - -IFF "%JAVAI%" != "" THEN - SET JAVABIN=%JAVAI% -ELSEIFF "%JAVA_HOME%" != "" THEN - SET JAVABIN=%JAVA_HOME%\bin\java -ELSE - echo please set environment variable JAVA_HOME - exit 1 -ENDIFF - -SET PARAM=-cs pipe,name=%USERNAME% -SRC_ROOT %SRC_ROOT% - -IFF "%RUNNERPROPS%" != "" THEN - SET PARAM=%PARAM% -runnerini %RUNNERPROPS% -ENDIFF - -rem SET MYXDEBUG="" -IFF "%XDEBUG%" != "" THEN - REM SET XDEBUG=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8001 - SET MYXDEBUG=%XDEBUG% -ENDIFF - -set COMMAND=%JAVABIN% -Xmx120m %MYXDEBUG% -cp %APICLASSPATH% org.openoffice.Runner %PARAM% %& - - -echo %COMMAND -%COMMAND - -endlocal - -quit diff --git a/solenv/bin/cwscheckapi b/solenv/bin/cwscheckapi deleted file mode 100755 index 63712be76623..000000000000 --- a/solenv/bin/cwscheckapi +++ /dev/null @@ -1,361 +0,0 @@ -#!/bin/bash -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#***********************************************************************/ - - -EXIT_SUCCESS=0 -EXIT_FAILURE=1 -EXIT_ERROR=2 -EXIT_BUG=10 - -# report the given error parameter to cwstestresult if the is one. -# 0: no error send ok or parameter $2 -# 1: failure -# 2...: incomplete -function reportError() -{ - ERRORCODE=$1 - if [ -e $SOLARENV/bin/cwstestresult.pl ]; then - if [ $ERRORCODE -eq 0 ]; then - PT_STATUS=${2:-ok} # use default 'ok' or $2 - elif [ $ERRORCODE -eq 1 ]; then - PT_STATUS=failed - else - PT_STATUS=incomplete - fi - - if [ "$OSTYPE" == "cygwin" ]; then - CWSENV=Windows - elif [ "$OSTYPE" == "linux" ]; then - CWSENV=Linux - elif [ "$OSTYPE" == "solaris" ]; then - CWSENV=SolarisX86 - else - CWSENV=Unknown - fi - perl $SOLARENV/bin/cwstestresult.pl -c $CWS_WORK_STAMP -n CWSCheckAPI -p $CWSENV $PT_STATUS - else - echo "No cwstestresult.pl found." - fi -} - -usage() { - echo "Usage: $SCRIPTNAME [-m MODULE1[,MODULEn]] [-k] [-o] [-h] [-d] [-u] [-t] [-s] [-a]" >&2 - echo "" >&2 - echo "[-m] list of modules to test like: '-m sw,sc,sd' or '-m all' for all modules" >&2 - echo "" >&2 - echo "[-k] keep Office installation, otherwise it will be removed after test" >&2 - echo "" >&2 - echo "[-o] force OpenOffice.org installation instead of StarOffice" >&2 - echo "" >&2 - echo "[-d] debug installation and UnoAPI-Tests" >&2 - # echo "" >&2 - # echo "[-i] debug installation" >&2 - echo "" >&2 - echo "[-t] debug UnoAPI-Tests" >&2 - echo "" >&2 - echo "[-s] skip installation of Office" >&2 - echo "" >&2 - echo "[-a] NoCwsAttach: do not attach UnoAPI-Test result to EIS database" >&2 - echo "" >&2 - echo "[-u] UseInstalledOffice: do not install an office" >&2 - echo "" >&2 - echo "further informations: http://wiki.services.openoffice.org/wiki/Cwscheckapi" >&2 - echo "" >&2 - exit $EXIT_FAILURE -} - -# we start cwscheckapi -reportError 0 running - -if [ "$PROEXT" != ".pro" ]; then - echo "ERROR: cwscheckapi works only on pro-versions" >&2 - reportError 2 - exit $EXIT_FAILURE -fi - -if [ x${USER}x = xx ]; then - if [ x${LOGNAME}x = xx ]; then - echo "ERROR: could not determine username. Please export variable USER" >&2 - reportError 2 - exit $EXIT_FAILURE - else - USER=$LOGNAME - export USER - fi -fi - - - -#DEBUG_I=false -DEBUG_T=false -INSTALL=true -ATTACH=true -MODULES="auto" -OOO=false -KEEPOFFICE=false -USE_INSTALLED_OFFICE=false - -while getopts ':m:dkutsaho' OPTION ; do - case $OPTION in - d) -# DEBUG_I=true - DEBUG_T=true - ;; - m) - MODULES="$OPTARG" - ;; - k) - KEEPOFFICE=true - ;; - o) - OOO=true - ;; -# i) -# DEBUG_I=true -# ;; - t) - DEBUG_T=true - ;; - s) - INSTALL=false - ;; - a) - ATTACH=false - ;; - u) - USE_INSTALLED_OFFICE=true - INSTALL=false - KEEPOFFICE=true - echo "make sure your office is started with parameter -accept=pipe,name=$USER;urp;" - ;; - h) - usage $EXIT_SUCCESS - ;; - \?) - echo "unkown option \"-$OPTARG\"." >&2 - usage $EXIT_ERROR - ;; - *) - echo "this is not possible...">&2 - usage $EXIT_BUG - ;; - esac -done - -shift `expr $OPTIND - 1` - -if [ -d /export/home/$USER ]; then - CWSCHECKAPIPATH=/export/home/$USER/cwscheckapi -else - if [ -w /export/home ]; then - mkdir /export/home/$USER - CWSCHECKAPIPATH=/export/home/$USER/cwscheckapi - else - CWSCHECKAPIPATH=/tmp/$USER/cwscheckapi - fi -fi - -# the following line is to cleanup old cwscheckapi-installations. It results form the first version of cwscheckapi -# The disk space on /tmp is limited. If a lot of users run cwscheckapi a lot of installed offices are in /tmp -# The new concept is to remove the offices after test. But old unused installations should be removed... -if [ $CWSCHECKAPIPATH != /tmp/$USER/cwscheckapi ]; then - rm -rf /tmp/$USER/cwscheckapi -fi - -LOCALINSTALLDIR=$CWSCHECKAPIPATH/office -LOCALUNPACKDIR=$CWSCHECKAPIPATH/unpack -export LOCALINSTALLDIR -export LOCALUNPACKDIR - -unset FORCE2ARCHIVE - -if [ $INSTALL = true ]; then - - date 2>&1 - -# if [ $DEBUG_I = true ]; then -# echo "start installation: `date`" -# echo call "$SOLARENV/bin/installoffice.pl -cwscheckapi true -dest $LOCALINSTALLDIR -debug $DEBUG_I" -# fi - perl -w $SOLARENV/bin/installoffice.pl -cwscheckapi true -dest $LOCALINSTALLDIR -ooo $OOO -debug $DEBUG_I - - EXITVAL=$? - - if [ $EXITVAL -ne 0 ]; then - echo "ERROR: could not install office" - reportError 2 - exit $EXITVAL - fi - echo "`date` installation successfull, start testing...." -fi - -SOFFICE="soffice" -PS=":" -CYGWIN="" - -SHELL="/bin/bash" -# cygwin: -if [ "$GUI" = "WNT" ]; then - SOFFICE="soffice.exe" - PS=";" - CYGWIN="-Cygwin true" - SHELL=$(which bash) - SHELL=$(cygpath -w $SHELL) - if [ ! -f $SHELL ]; then - echo "could not determine bash shell" - reportError 2 - exit 1 - fi -fi - -# if [ $DEBUG_T = true ]; then -# echo find $LOCALINSTALLDIR -name $SOFFICE -# fi - -if [ $USE_INSTALLED_OFFICE = false ]; then - - OFFICEBIN=`find $LOCALINSTALLDIR -name $SOFFICE` - - if [ ! -f "$OFFICEBIN" ]; then - echo "could not find 'soffice' in subfolders of $LOCALINSTALLDIR" - reportError 2 - exit 1 - fi - - if [ "$GUI" = "WNT" ]; then - # transform /tmp/... -> c:\tmp\... - OFFICEBIN=`cygpath -w $OFFICEBIN` - fi -else - OFFICEBIN=$SOFFICE - echo "Use already installed and running office." -fi - -JARFOLDER=$SOLARVERSION/$INPATH/bin$UPDMINOREXT -SOLVER_LIB=$SOLARVERSION/$INPATH/lib$UPDMINOREXT - -myCLASSPATH=${PS}${JARFOLDER}/ridl.jar${PS}\ -${JARFOLDER}/unoil.jar${PS}\ -${JARFOLDER}/jurt.jar${PS}\ -${JARFOLDER}/juh.jar${PS}\ -${JARFOLDER}/java_uno.jar - -myCLASSPATH=$myCLASSPATH${PS}\ -${JARFOLDER}/OOoRunner.jar - -myCLASSPATH=$myCLASSPATH${PS}\ -/net/unoapi/export/unoapi/bin/mysql.jar${PS}\ -$SOLVER_LIB - -PARAM="" -if [ -n "$JAVAI" ]; then - JAVABIN=$JAVAI -elif [ -n "$JAVA_HOME" ]; then - if [ "$OS$CPUNAME$CPU" = SOLARISSPARCU ]; then - JAVABIN=$JAVA_HOME/bin/sparcv9/java - else - JAVABIN=$JAVA_HOME/bin/java - fi -else - echo "please set environment variable JAVA_HOME" - reportError 2 - exit 1 -fi - -if [ -n "$WORK_STAMP" ]; then - if [ -n "$CWS_WORK_STAMP" ]; then - PARAM="$PARAM -Version cws_${CWS_WORK_STAMP}" - else - echo "######" - echo CAUTION! You are working on the MWS - echo "######" - PARAM="$PARAM -Version ${WORK_STAMP}_${UPDMINOR}" - fi -fi - -PARAM="$PARAM -cmd '$OFFICEBIN -nofirststartwizard -accept=pipe,name=$USER;urp; -norestore -nocrashreport -nolockcheck -enableautomation'" -PARAM="$PARAM -cs pipe,name=$USER" -PARAM="$PARAM -NoOffice true" -PARAM="$PARAM -SRC_ROOT $SRC_ROOT" -PARAM="$PARAM -COMP_ENV $OUTPATH" -PARAM="$PARAM -Shell $SHELL" -PARAM="$PARAM $CYGWIN" -PARAM="$PARAM -tb java_complex" -PARAM="$PARAM -TimeOut 90000" -PARAM="$PARAM -o complex.unoapi.CheckModuleAPI::module($MODULES)" -if [ $ATTACH = false ]; then - PARAM="$PARAM -nca true" -fi -if [ $DEBUG_T = true ]; then - PARAM="$PARAM -debug true -log true" -fi - -# Sample command -# /so/env/Linux_JDK_1.5.0_06/bin/java -# -Xmx120m $XDEBUG -# -cp :/net/so-cwsserv02/export/cws/unoapi04/DEV300/unxlngi6.pro/bin.m50/ridl.jar:/net/so-cwsserv02/export/cws/unoapi04/DEV300/unxlngi6.pro/bin.m50/unoil.jar:/net/so-cwsserv02/export/cws/unoapi04/DEV300/unxlngi6.pro/bin.m50/jurt.jar:/net/so-cwsserv02/export/cws/unoapi04/DEV300/unxlngi6.pro/bin.m50/juh.jar:/net/so-cwsserv02/export/cws/unoapi04/DEV300/unxlngi6.pro/bin.m50/java_uno.jar:/net/so-cwsserv02/export/cws/unoapi04/DEV300/unxlngi6.pro/bin.m50/OOoRunner.jar:/net/unoapi/export/unoapi/bin/mysql.jar:/net/so-cwsserv02/export/cws/unoapi04/DEV300/unxlngi6.pro/lib.m50 -# org.openoffice.Runner -# -Version cws_unoapi04 -# -cmd '/tmp/ll93751/cwscheckapi/office/staroffice9/program/soffice -nofirststartwizard -accept=pipe,name=ll93751;urp; -norestore -nocrashreport -nolockcheck -enableautomation' -# -cs pipe,name=ll93751 -# -NoOffice true -# -SRC_ROOT /net/so-cwsserv02/export/cws/unoapi04/DEV300/src.m50 -# -COMP_ENV unxlngi6 -# -Shell /bin/bash -# -tb java_complex -# -TimeOut 90000 -# -o 'complex.unoapi.CheckModuleAPI::module(auto)' - -# XDEBUG=" -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y " - -# set DEBUGAPI if you want to debug the checkapi -# DEBUGAPI=t - -COMMAND="$JAVABIN -Xmx120m $XDEBUG -cp $myCLASSPATH org.openoffice.Runner $PARAM $*" -echo "$COMMAND" - -LOGFILE=$CWSCHECKAPIPATH/cwscheckapi.log -$COMMAND | tee $LOGFILE -EXITVAL=$? - -if [ $KEEPOFFICE = false ]; then - echo "remove office instrallation in $LOCALINSTALLDIR..." - rm -rf $LOCALINSTALLDIR -fi - -echo -echo A logfile could be found here: $LOGFILE - -date 2>&1 - -# send the results via cwstestresult.pl to EIS -if [ $EXITVAL -eq 0 ]; then - reportError 0 ok -else - reportError 1 -fi diff --git a/solenv/bin/cwscheckapi.btm b/solenv/bin/cwscheckapi.btm deleted file mode 100755 index 73f8da0e6d39..000000000000 --- a/solenv/bin/cwscheckapi.btm +++ /dev/null @@ -1,206 +0,0 @@ -@echo off -REM ************************************************************************** -REM * -REM * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -REM * -REM * Copyright 2000, 2010 Oracle and/or its affiliates. -REM * -REM * OpenOffice.org - a multi-platform office productivity suite -REM * -REM * This file is part of OpenOffice.org. -REM * -REM * OpenOffice.org is free software: you can redistribute it and/or modify -REM * it under the terms of the GNU Lesser General Public License version 3 -REM * only, as published by the Free Software Foundation. -REM * -REM * OpenOffice.org is distributed in the hope that it will be useful, -REM * but WITHOUT ANY WARRANTY; without even the implied warranty of -REM * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -REM * GNU Lesser General Public License version 3 for more details -REM * (a copy is included in the LICENSE file that accompanied this code). -REM * -REM * You should have received a copy of the GNU Lesser General Public License -REM * version 3 along with OpenOffice.org. If not, see -REM * <http://www.openoffice.org/license.html> -REM * for a copy of the LGPLv3 License. -REM * -REM ************************************************************************/ - -rem echo on - -call reportErrorCheckAPI.btm 0 running - -iff "%PROEXT" != ".pro" THEN - echo ERROR: cwscheckapi works only on pro-versions >&2 - call reportErrorCheckAPI.btm 2 - quit 1 -endiff - -SET DEBIG_I=false -SET DEBUG_T=false -SET INSTALL=true -SET ATTACH=true -SET MODULES=auto -SET OOO=false -SET KEEPOFFICE=false -SET USE_INSTALLED_OFFICE=false - -for %opt in (%&%) DO ( - if "%opt%" == "-d" (SET DEBUG_I=true ^ SET DEBUG_T=true ^ shift) - if "%opt%" == "-o" (SET OOO=true ^ shift) - if "%opt%" == "-k" (SET KEEPOFFICE=true ^ shift) - if "%opt%" == "-i" (SET DEBUG_I=true ^ shift) - if "%opt%" == "-m" (SET MODULES=%2 ^ shift ^ shift) - if "%opt%" == "-t" (SET DEBUG_T=true ^ shift) - if "%opt%" == "-s" (SET INSTALL=false ^ shift) - if "%opt%" == "-u" (SET USE_INSTALLED_OFFICE=true ^ SET INSTALL=false ^ SET KEEPOFFICE=true ^ shift) - if "%opt%" == "-a" (SET attach=false ^ shift) - if "%opt%" == "-h" goto usage - if "%opt%" == "/h" goto usage -) - -set tmppath=not_set -for %LW in (e:\,d:\,c:\) DO ( - iff NOT ISDIR %tmppath% then - iff ISDIR %LW then - iff ISDIR %LW%temp then - set tmppath=%LW%temp - elseiff ISDIR %LW%tmp then - set tmppath=%LW%tmp - else - mkdir %LW%temp - set tmppath=%LW%temp - endiff - endiff - endiff -) - -SET CWSCHECKAPIPATH=%tmppath%\%USERNAME%\cwscheckapi -SET LOCALINSTALLDIR=%CWSCHECKAPIPATH%\office -SET LOCALUNPACKDIR=%CWSCHECKAPIPATH%\unpack - -iff "%INSTALL%" == "true" THEN - call perl5 %SOLARENV%/bin/installoffice.pl -cwscheckapi true -dest %LOCALINSTALLDIR% -ooo %OOO% -debug %DEBUG_I% - - IFF %? NE 0 THEN - echo ERROR: coud not install office >&2 - call reportErrorCheckAPI.btm 2 - quit %? - ENDIFF -ENDIFF - -setlocal - -IFF %USE_INSTALLED_OFFICE% == "false" then - - SET CWD=%_CWD% - cdd %LOCALINSTALLDIR% - SET ffindtxt="ffind.txt" - ffind /s /f /m soffice.exe > %ffindtxt - SET FindFile=%@FILEOPEN[%ffindtxt%, READ] - SET OfficeBin=%@FILEREAD[%FindFile] - set dummy=%@FILECLOSE[%FindFile] - DEL /q %ffindtxt - cdd %CWD - - IFF NOT EXIST %OFFICEBIN% THEN - echo could not find 'soffice.exe' in subfolders of %OFFICEBIN% >&2 - call reportErrorCheckAPI.btm 2 - quit 1 - ENDIFF -ELSE - SET OFFICEBIN=soffice.exe - echo "Use already installed office." -ENDIFF - -SET JARFOLDER=%SOLARVERSION%\%INPATH%\bin%UPDMINOREXT% -SET MYCLASSPATH=%JARFOLDER%\OOoRunner.jar;%JARFOLDER%\ridl.jar;%JARFOLDER%\unoil.jar;%JARFOLDER%\jurt.jar;%JARFOLDER%\juh.jar;%JARFOLDER%\java_uno.jar - -IFF "%JAVAI%" != "" THEN - SET JAVABIN=%JAVAI% -ELSEIFF "%JAVA_HOME%" != "" THEN - SET JAVABIN=%JAVA_HOME%\bin\java -ELSE - echo please set environment variable JAVA_HOME >&2 - call reportErrorCheckAPI.btm 2 - quit 1 -ENDIFF - -IFF "%CWS_WORK_STAMP%" != "" THEN - SET PARAM=-Version cws_%CWS_WORK_STAMP% -ELSEIFF "%WORK_STAMP%" != "" THEN - echo ###### >&2 - echo CAUTION! You\'re working on the MWS >&2 - echo ###### >&2 - SET PARAM=-Version %WORK_STAMP%_%UPDMINOR% -ELSE - echo ###### >&2 - echo ERROR: could not determine your CWS or MWS version >&2 - echo ###### >&2 - call reportErrorCheckAPI.btm 2 - quit 1 -ENDIFF - -SET KILLCOMMAND="%SOLARVERSION%\%INPATH%\bin%UPDMINOREXT%\kill.exe -9 soffice.bin^%SOLARVERSION%\%INPATH%\bin%UPDMINOREXT%\kill.exe -9 soffice.exe" - -SET PARAM=%PARAM% -cmd '\"%OFFICEBIN%\" -nofirststartwizard -norestore -nocrashreport -nolockcheck -enableautomation -accept=pipe,name=%USERNAME%;urp;' -SET PARAM=%PARAM% -cs pipe,name=%USERNAME% -SET PARAM=%PARAM% -NoOffice true -SET PARAM=%PARAM% -SRC_ROOT %SRC_ROOT% -SET PARAM=%PARAM% -COMP_ENV %OUTPATH% -SET PARAM=%PARAM% -Shell %COMSPEC% -SET PARAM=%PARAM% -tb java_complex -SET PARAM=%PARAM% -o complex.unoapi.CheckModuleAPI::module(%MODULES%) -SET PARAM=%PARAM% -TimeOut 200000 -SET PARAM=%PARAM% -AppKillCommand %KILLCOMMAND% -IF "%ATTACH%" == "false" SET PARAM=%PARAM% -nca true -IF "%DEBUG_T%" == "true" SET PARAM=%PARAM -debug true -log true - -set COMMANDO=%JAVABIN% -Xmx120m -cp %MYCLASSPATH% org.openoffice.Runner %PARAM% %& - -echo %COMMANDO -SET LOGFILE=%CWSCHECKAPIPATH%\cwscheckapi.log -%COMMANDO |& tee %LOGFILE% -set EXITVAL=%? - -IFF %KEEPOFFICE% == "false" THEN - echo remove office instrallation in %LOCALINSTALLDIR%... - DEL /E/F/Q/K/S/X/Y/Z %LOCALINSTALLDIR% -fi - -echo . -echo A logfile could be found here: %LOGFILE% - -IFF %EXITVAL% NE 0 THEN - call reportErrorCheckAPI.btm 1 -ELSE - call reportErrorCheckAPI.btm 0 ok -ENDIFF - -endlocal - -quit 0 - -:usage - echo. - echo Usage: %0% [-m MODULE1[,MODULEn]] [-o] [-k] [-h] [-d] [-i] [-t] [-s] [-a] >&2 - echo. - echo [-m] list of modules to test like: '-m "sw,sc,sd"' or '-m all' for all modules >&2 - echo. >&2 - echo [-o] force OpenOffice.org installation instead of StarOffice >&2 - echo. >&2 - echo [-k] keep Office installation, otherwise it will be removed after test >&2 - echo. >&2 - echo [-d] debug installation and UnoAPI-Tests >&2 - echo. >&2 - echo [-i] debug installation >&2 - echo. >&2 - echo [-t] debug UnoAPI-Tests >&2 - echo. >&2 - echo [-s] skip installation of Office >&2 - echo. >&2 - echo [-a] NoCwsAttach: do not attach UnoAPI-Test result to EIS database >&2 - echo. >&2 - echo further informations: http://wiki.services.openoffice.org/wiki/Cwscheckapi >&2 - echo. >&2 - quit 1 diff --git a/solenv/bin/dbgsv.ini b/solenv/bin/dbgsv.ini new file mode 100644 index 000000000000..006dadf98a40 --- /dev/null +++ b/solenv/bin/dbgsv.ini @@ -0,0 +1,29 @@ +=************************************************************************* += += DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. += += Copyright 2000, 2010 Oracle and/or its affiliates. += += OpenOffice.org - a multi-platform office productivity suite += += This file is part of OpenOffice.org. += += OpenOffice.org is free software: you can redistribute it and/or modify += it under the terms of the GNU Lesser General Public License version 3 += only, as published by the Free Software Foundation. += += OpenOffice.org is distributed in the hope that it will be useful, += but WITHOUT ANY WARRANTY; without even the implied warranty of += MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the += GNU Lesser General Public License version 3 for more details += (a copy is included in the LICENSE file that accompanied this code). += += You should have received a copy of the GNU Lesser General Public License += version 3 along with OpenOffice.org. If not, see += <http://www.openoffice.org/license.html> += for a copy of the LGPLv3 License. += +=***********************************************************************/ + +[output] +error=shell diff --git a/solenv/bin/installoffice b/solenv/bin/installoffice deleted file mode 100755 index 59ad271ee142..000000000000 --- a/solenv/bin/installoffice +++ /dev/null @@ -1,107 +0,0 @@ -#!/bin/bash -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#***********************************************************************/ - -EXIT_SUCCESS=0 -EXIT_FAILURE=1 -EXIT_ERROR=2 -EXIT_BUG=10 - -if [ x${SOLARENV}x = xx ]; then - echo No environment found, please use 'configure' or 'setsolar' - exit $EXIT_FAILURE -fi -usage() { - echo "Usage: $SCRIPTNAME [-t DESTPATH] [-o] [-d] [-a]" >&2 - echo "" >&2 - echo "[-t] target path: path wehre tho office should installed to. The default is '$DESTPATH'" >&2 - echo "" >&2 - echo "[-o] force OpenOffice.org installation instead of StarOffice" >&2 - echo "" >&2 - echo "[-d] installation with debug output" >&2 - echo "" >&2 - echo "[-a] the office will be patched to run without FirstStartWizard" >&2 - echo "" >&2 - echo "[-i] impress should open documents without autopilot" >&2 - exit $EXIT_FAILURE -} - -if [ x${USER}x = xx ]; then - if [ x${LOGNAME}x = xx ]; then - echo "ERROR: could not determine username. Please export variable USER" >&2 - exit $EXIT_FAILURE - else - USER=$LOGNAME - export USER - fi -fi - -DESTPATH=/tmp/$USER -PARAM="" - -while getopts ':mt:aicdhot' OPTION ; do - case $OPTION in - d) PARAM="$PARAM -debug true" - ;; - c) PARAM="$PARAM -cwscheckapi true" - ;; - o) PARAM="$PARAM -ooo true" - ;; - a) PARAM="$PARAM -autorun true" - ;; - i) PARAM="$PARAM -autoimpress true" - ;; - t) DESTPATH="$OPTARG" - ;; - h) usage $EXIT_SUCCESS - ;; - \?) echo "unkown option \"-$OPTARG\"." >&2 - usage $EXIT_ERROR - ;; - *) echo "this is not possible...">&2 - usage $EXIT_BUG - ;; - esac -done - -shift `expr $OPTIND - 1` - -LOCALINSTALLDIR=$DESTPATH/office -LOCALUNPACKDIR=$DESTPATH/unpack - -export LOCALINSTALLDIR -export LOCALUNPACKDIR -echo "export LOCALINSTALLDIR" -echo "export LOCALUNPACKDIR" - -unset LD_LIBRARY_PATH -unset FORCE2ARCHIVE - -echo "### $SOLARENV/bin/installoffice.pl $PARAM -cleanup true $@" -exec perl -w $SOLARENV/bin/installoffice.pl $PARAM -cleanup true $@ - -exit $? diff --git a/solenv/bin/installoffice.btm b/solenv/bin/installoffice.btm deleted file mode 100755 index a77f8defeb45..000000000000 --- a/solenv/bin/installoffice.btm +++ /dev/null @@ -1,120 +0,0 @@ -@echo off -REM ************************************************************************** -REM * -REM * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -REM * -REM * Copyright 2000, 2010 Oracle and/or its affiliates. -REM * -REM * OpenOffice.org - a multi-platform office productivity suite -REM * -REM * This file is part of OpenOffice.org. -REM * -REM * OpenOffice.org is free software: you can redistribute it and/or modify -REM * it under the terms of the GNU Lesser General Public License version 3 -REM * only, as published by the Free Software Foundation. -REM * -REM * OpenOffice.org is distributed in the hope that it will be useful, -REM * but WITHOUT ANY WARRANTY; without even the implied warranty of -REM * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -REM * GNU Lesser General Public License version 3 for more details -REM * (a copy is included in the LICENSE file that accompanied this code). -REM * -REM * You should have received a copy of the GNU Lesser General Public License -REM * version 3 along with OpenOffice.org. If not, see -REM * <http://www.openoffice.org/license.html> -REM * for a copy of the LGPLv3 License. -REM * -REM ************************************************************************/ - - -SET DESTPATH=%USERNAME% -SET DEBUG=false -SET OOO=false -SET PARAM= - -for %opt in (%&%) DO ( - iff "%opt%" == "-d" THEN - SET PARAM=%PARAM% -debug true - shift - - elseiff "%opt%" == "-o" THEN - SET PARAM=%PARAM% -ooo true - shift - - elseiff "%opt%" == "-c" THEN - SET PARAM=%PARAM% -cwscheckapi true - shift - - elseiff "%opt%" == "-a" THEN - SET PARAM=%PARAM% -autorun true - shift - - elseiff "%opt%" == "-i" THEN - SET PARAM=%PARAM% -autoimpress true - shift - - elseiff "%opt%" == "-t" THEN - SET DESTPATH=%2 - shift - shift - - elseiff "%opt%" == "-h" THEN - goto usage - - elseiff "%opt%" == "/h" THEN - goto usage - - elseiff "%opt%" == "%DESTPATH%" THEN - shift - - else - echo wrong param: %opt% - goto usage - endiff -) - -iff "%DESTPATH%" == "%USERNAME%" THEN -iff EXIST e:\ then - iff EXIST e:\temp then - set temppath=e:\temp - elseiff EXIST e:\tmp then - set temppath=c:\tmp - else - mkdir e:\temp - set tmppath=c:\temp - endiff -elseiff EXIST c:\tmp then - set temppath=c:\tmp -elseiff EXIST c:\temp then - set temppath=c:\temp -else - set temppath=%TMP% -endiff - DESTPATH=%temppath%\%USERNAME% -endiff - -SET LOCALINSTALLDIR=%DESTPATH%\office -SET LOCALUNPACKDIR=%DESTPATH%\unpack -echo LOCALINSTALLDIR=%LOCALINSTALLDIR% -echo LOCALUNPACKDIR=%LOCALUNPACKDIR% - -echo call perl5 %SOLARENV%\bin\installoffice.pl -dest %LOCALINSTALLDIR% %PARAM% -cleanup true %& -call perl5 %SOLARENV%\bin\installoffice.pl -dest %LOCALINSTALLDIR% %PARAM% -cleanup true %& - -quit %? - -:usage - echo. - echo Usage: %0% [-t DESTPATH] [-o] [-d] >&2 - echo. - echo [-d] installation with debug output>&2 - echo. - echo [-o] force OpenOffice.org installation instead of StarOffice>&2 - echo. - echo [-t] target path: path where the office should installed to. The default is '%DESTPATH%'>&2 - echo. - echo [-a] the office will be patched to run without FirstStartWizard >&2 - echo. - echo [-i] impress should open documents without autopilot - echo. - quit 1 diff --git a/solenv/bin/installoffice.pl b/solenv/bin/installoffice.pl deleted file mode 100755 index b6c852ae8624..000000000000 --- a/solenv/bin/installoffice.pl +++ /dev/null @@ -1,933 +0,0 @@ -: -eval 'exec perl -wS $0 ${1+"$@"}' - if 0; - -#************************************************************************* -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#***********************************************************************/ - -use strict; -use File::Find; -use File::Path; -my $script = $0; - -( our $script_name = $script ) =~ s/^.*\b(\w+)\.pl$/$1/; -( our $script_path = $script ) =~ s/$script_name.*//; - -# Prototypes -sub installOffice(); - -our $debug = 0; # run without executing commands - -our $is_command_infos = 1; # print command details before exec -our $show_NoMessage = 0; -our $show_Message = 1; - -# special handling for cwschackapi -our $cwsCheckApi = 0; - -# remove existant office installation -our $cleanup = 0; - -# should the office be startable without user interaction -our $autorun = 0; - -# should impress open documents without autopilot -our $autoimpress = 0; - -# force openOffice.org installation if StarOffice is available -our $is_ooo = 0; - -parseArgs(); - -our $is_admin_installation = 1; - -our $gui = $ENV{GUI}; -our $temp_path = $ENV{TEMP}; -if (!defined($temp_path)) { - $temp_path = $ENV{TMP}; -} - -our $vcsid = $ENV{VCSID}; -our $sversion_saved = 0; -our $FileURLPrefix = "file:///"; -our $userinstalldir = "UserInstallation"; -our $cygwin = "cygwin"; -our $prefered_lang = "en-US"; -our $global_instset_mask = ""; -#$smoketest_install = $ENV{SMOKETESTINSTALLSET}; - -if (!defined($gui)) { - print "The workstamp is missing. Please use setsolar\n"; - exit(1); -} - -our $OfficeDestinationPath; -our $is_do_deinstall; -our $CygwinLineends; -our $WinLineends; -our $PS ; -our $NewPathSeparator ; -our $shell ; -our $shellSetEnvVar; -our $shellCommandSep; -our $cdCommand; -our $PERL ; -our $REMOVE_DIR ; -our $REMOVE_FILE ; -our $LIST_DIR ; -our $COPY_FILE ; -our $COPY_DIR ; -our $MK_DIR ; -our $RENAME_FILE ; -our $nul ; -our $RESPFILE; -our $SVERSION_INI ; -our $SOFFICEBIN ; -our $UNOPKGBIN; -our $bootstrapini ; -our $bootstrapiniTemp ; -our $packpackage ; -our $user; - -if ($gui eq "WNT") { - $gui = $cygwin; -} - -if ($gui eq "WNT") { - $user = $ENV{USERNAME}; - $PS = '\\'; - $NewPathSeparator = ';'; - $shell = "$ENV{COMSPEC} -c "; - $shellSetEnvVar = "set "; - $shellCommandSep = "& "; - $cdCommand="cd /d "; - $PERL = "$shell $ENV{PERL}"; - $REMOVE_DIR = "$shell del /qsxyz"; - $REMOVE_FILE = "$shell del /q"; - $LIST_DIR = "$shell ls"; - $COPY_FILE = "$shell copy"; - $COPY_DIR = "$shell copy /s"; - $MK_DIR = "md"; - $RENAME_FILE = "ren"; - $nul = '> NUL'; - $RESPFILE="response_fat_wnt"; - $SVERSION_INI = $ENV{USERPROFILE} . $PS . "Anwendungsdaten" . $PS . "sversion.ini"; - $SOFFICEBIN = "soffice.exe"; - $bootstrapini = "bootstrap.ini"; - $UNOPKGBIN="unopkg.exe"; - $bootstrapiniTemp = $bootstrapini . "_"; - $packpackage = "msi"; - if (!defined($temp_path)) { - print "temp value is missing. Please set temp-variable\n"; - exit(1); - } -} -elsif ($gui eq "UNX") { - $user = $ENV{USER}; - $is_do_deinstall = 0; - $PS = '/'; - $shell = "/bin/sh -c "; - $shellSetEnvVar = "export "; - $shellCommandSep = ";"; - $cdCommand="cd "; - $NewPathSeparator = ':'; - $shell = ""; - $PERL = "$ENV{PERL}"; - $REMOVE_DIR = "rm -rf"; - $REMOVE_FILE = "rm -f"; - $LIST_DIR = "ls"; - $COPY_FILE = "cp -f"; - $COPY_DIR = "cp -rf"; - $MK_DIR = "mkdir"; - $RENAME_FILE = "mv"; - $nul = '> /dev/null'; - $RESPFILE="response_fat_unx"; - $SVERSION_INI = $ENV{HOME} . $PS . ".sversionrc"; - $SOFFICEBIN = "soffice"; - $bootstrapini = "bootstraprc"; - $UNOPKGBIN="unopkg"; - $bootstrapiniTemp = $bootstrapini . "_"; - $packpackage = $ENV{PKGFORMAT}; - if (!defined($temp_path)) { - $temp_path="/tmp"; - if (! -e $temp_path){ - print "temp value is missing. Please set temp-variable\n"; - exit(1); - } - } -} -elsif ($gui eq $cygwin) { - - $PS = '/'; - $NewPathSeparator = ':'; - $shell = "/bin/sh -c "; - $shellSetEnvVar = "export "; - $shellCommandSep = ";"; - $cdCommand = "cd "; - $PERL = "$ENV{PERL}"; - $REMOVE_DIR = "rm -rf"; - $REMOVE_FILE = "rm -f"; - $LIST_DIR = "ls"; - $COPY_FILE = "cp -f"; - $COPY_DIR = "cp -rf"; - $MK_DIR = "mkdir"; - $RENAME_FILE = "mv"; - $nul = '> /dev/null'; - $RESPFILE="response_fat_wnt"; - $SVERSION_INI = $ENV{USERPROFILE} . $PS . "Anwendungsdaten" . $PS . "sversion.ini"; - $SOFFICEBIN = "soffice"; - $bootstrapini = "bootstrap.ini"; - $bootstrapiniTemp = $bootstrapini . "_"; - $CygwinLineends = $/; - $WinLineends = "\r\n"; - &SetWinLineends(); - $packpackage = "msi"; - if (!defined($temp_path)) { - $temp_path="/tmp"; - if (! -e $temp_path){ - print "temp value is missing. Please set temp-variable\n"; - exit(1); - } - } -} -else { - print_error ("not supported system\n",1); -} - -my %PRODUCT1 = (Name => "StarOffice", instset => "instset_native"); -my %PRODUCT2 = (Name => "OpenOffice", instset => "instsetoo_native"); -our @PRODUCT = (\%PRODUCT1, \%PRODUCT2); - -our $SHIP = defined $ENV{SHIPDRIVE} ? $ENV{SHIPDRIVE} . $PS : "shipdrive_not_set"; - -if (defined($ENV{CWS_WORK_STAMP})){ - print " found CWS\n"; -} -elsif (isLocalEnv()){ - print " local environment\n"; -} -elsif (defined $ENV{SHIPDRIVE}) { - print " master version\n"; -} -elsif (defined $ENV{SOLARSRC}) { - print " OpenOffice master version\n"; -} -else { - print "Could not determine environment. Exit\n"; - exit 1 -} - - -our @error_messages = ( '', - 'lock flag for pkgadd still exist. Installation not possible!', - 'Error during installation!', - 'Error: patching configuration failed!', - 'Error: starting office failed or office crashed!', - 'Error during testing', - 'can not copy extension', - 'Error in setup log', - 'installationsset is not complete', - 'can not copy all basic scripts', - 'can not patch bottstrapini', - 'msiexec failed. Maybe you have got an installed version', - 'deinstallation is incomplete' -); - - -my $success = 0; -$success = installOffice(); - -if ($success != 0){ - exit(1); -} -exit(0); - -sub installOffice(){ - - # <DISABLED> - # my ($officeVersion, $instsetPath)= getInstset(); - # print "OFFICEVERSION:$officeVersion INSTSETPATH:$instsetPath\n" if $debug; - # my $sourcePath=$instsetPath.$PS.$officeVersion; - # </DISABLED> - # - # currently this installer does not install an office, it do pack a runnable office. - # Therefore we do not need to search for an instSet - my $sourcePath="dummy"; - my $officeVersion="dummy"; - - my $destinationPath = getDestinationPath($officeVersion); - print "destinationPath: $destinationPath\n" if $debug; - - removeOffice($destinationPath); - mkdirs($destinationPath); - - my $installCommand = getInstallCommand($sourcePath, $destinationPath, $officeVersion); - print "installCommand: $installCommand\n" if $debug; - - my $success=0; - $success = system($installCommand); - print "installoofice.pl::installoffice::success $success\n" if ($debug); - - if ($autorun) { - makeAutoRun($destinationPath); - } - - if ($autoimpress) { - makeAutoImpress($destinationPath); - } - - return $success; -} - -sub makeAutoImpress(){ - my $destinationPath = shift; - - if (patchXCU ($destinationPath, $script_path.$script_name."_impress.oxt") != 0) { - print_error("could not register ".$script_path.$script_name."_impress.oxt", "1"); - } - return 0; -} - - -sub makeAutoRun(){ - - my $destinationPath = shift; - - patchBootstraprc($destinationPath); - - if (patchXCU ($destinationPath, $script_path.$script_name.".oxt") != 0) { - print_error("could not register ".$script_path.$script_name.".oxt", "1"); - } - return 0; -} - - -sub patchBootstraprc(){ - my $destinationPath = shift; - my $bootstraprc=""; - - find sub { $bootstraprc=$File::Find::name if -e _ && /$bootstrapini$/ }, $destinationPath; - - print_error("could not find $bootstrapini", "1") if ( ! -e $bootstraprc ); - - open(BSRC, "<$bootstraprc") or errorFromOpen(" for reading " .$bootstraprc); - my @content = <BSRC>; - close(BSRC); - my @newContent; - foreach(@content) { - if ( /UserInstallation=./ ) { - push(@newContent, "UserInstallation=\$ORIGIN/../UserInstallation\n"); - } - else { - push(@newContent,$_); - } - } - - chmod(0755,$bootstraprc); - - open OUTFILE, ">$bootstraprc" or return errorFromOpen (" for writing " . $bootstraprc); - print OUTFILE @newContent; - close OUTFILE; - -} - -sub patchXCU(){ - my $destinationPath = shift; - my $oxt = shift; - my $unopkg=""; - - find sub { $unopkg=$File::Find::name if -e _ && /$UNOPKGBIN$/ }, $destinationPath; - - print_error("could not find $UNOPKGBIN", "1") if ( !-e $unopkg ); - print "unopkg: '$unopkg'\n" if $debug; - - if ($gui eq "WNT") { - $unopkg = "\"$unopkg\""; - } - - my $unopkgCommand = "$unopkg add $oxt"; - print "register oxt file ...\n" if $debug; - print "call $unopkgCommand\n" if $debug; - my $success=0; - $success = system($unopkgCommand); - - return $success; -} - -sub writeFile(){ - my $fileName = shift; - my @content = @_; - - open OUTFILE, ">$fileName" or return errorFromOpen (" for writing " . $fileName); - - my $lf; - if ($packpackage eq "msi"){ - $lf = "\r\n"; - } else { - $lf = "\n"; - } - - my $line; - foreach $line(@content) { - print "LINE: $line\n" if $debug; - print OUTFILE $line.$lf; - } - close(OUTFILE); - return 0; -} - -sub mkdirs(){ - my $directory = shift; - my $splitter=$PS; - if ( $PS eq "\\" ){ - $splitter="\\\\"; - } - my @aFolder=split($splitter,$directory); - - my $dir; - my $folder; - foreach $folder(@aFolder){ - if ( (! defined($dir)) && ($PS eq "\\")){ - $dir=$folder; - } else { - $dir=$dir.$PS.$folder; - } - if (! -e $dir ){ - print "try to create $dir\n" if $debug; - mkdir($dir); - } - } -} - -sub removeOffice(){ - - my $destPath=shift; - - if ($cleanup){ - print "remove old office installation...\n"; - - print "remove $destPath...\n" if $debug; - rmtree($destPath); - - } -} - -sub getInstallCommand() { - my $command; - $command = getDmakeInstalledCommand(@_); - # if ($packpackage eq "msi"){ - # $command = getWindowsInallCommand(@_); - # } else { - # $command = getUnixInstallCommand(@_); - # } - return $command; -} - -sub getDmakeInstalledCommand(){ - my ($sourcePath, $destPath, $officeVersion) = @_; - my $RootDir=$ENV{SRC_ROOT}; - - my $ProductName; - my $instset; - - # check if instset_native could be found - foreach my $pointer (@PRODUCT) { - $instset = $pointer->{'instset'}; - $ProductName = $pointer->{'Name'}; - my $instsetDir = "$RootDir$PS$instset"; - print "instsetDir: $instsetDir \n" if $debug; - - last if ($is_ooo && $ProductName eq "OpenOffice"); - last if ( ! $is_ooo && -e "$instsetDir"); - } - print "Product: $ProductName\n" if $debug;; - - my $dmakeTarget=lc($ProductName)."_en-US"; - - my $utilFolder = getInstsetUtilFolder($instset, $destPath, $RootDir); - my $dmakeCommand = " $cdCommand \"$utilFolder\" $shellCommandSep dmake $dmakeTarget PKGFORMAT=installed -vt"; - my $envset; - if ($gui eq "WNT") { - $envset="set LOCALINSTALLDIR=$destPath & set LOCALUNPACKDIR=$destPath &"; - }else { - $envset="LOCALINSTALLDIR=$destPath ; LOCALUNPACKDIR=$destPath ; export LOCALINSTALLDIR ; export LOCALUNPACKDIR ; "; - } - #my $command=$envset.$dmakeCommand; - my $command=$dmakeCommand; - return $command; -} - -sub getInstsetUtilFolder(){ - my $instset = shift; - my $destPath = shift; - my $RootDir = shift; - - my $instsetFolder = $RootDir.$PS.$instset; - my $utilFolder=""; - - if( open(DATEI, ">$instsetFolder".$PS."touch")) - { - close(DATEI); - unlink($instsetFolder.$PS."touch"); - print "$instsetFolder is writable \n" if $debug; - $utilFolder = $RootDir.$PS.$instset.$PS."util"; - } - else - { - print "$instsetFolder is NOT writable \n" if $debug; - print "copy $instset to $destPath$PS..\n" if $debug; - my $prjPath=$destPath.$PS.".."; - - my $command = "$ENV{COPYPRJ} -x $instset $prjPath"; - print $command if $debug; - system($command); - $utilFolder=$prjPath.$PS.$ENV{WORK_STAMP}.$PS.$instset.$PS."util"; - } - print "utilFolder: $utilFolder\n" if $debug; - return $utilFolder; -} - -# sub getInstsetFomInstsetNative(){ -# my (@DirArray, $TestDir1, $TestDir2); -# my $instset; -# my $ProductName; -# my $instDir=""; -# my $lang; -# my $RootDir=$ENV{SRC_ROOT}; -# my $StandDir = $ENV{SOLARSRC} . $PS; -# #$RootDir=~s/\w+$//; - -# foreach my $pointer (@PRODUCT) { -# $instset = $pointer->{'instset'}; -# $ProductName = $pointer->{'Name'}; -# @DirArray=(); -# $TestDir1 = "$RootDir$PS$instset$PS$ENV{INPATH}$PS$ProductName$PS$packpackage$PS" . "install$PS"; -# $TestDir2 = "$StandDir$instset$PS$ENV{INPATH}$PS$ProductName$PS$packpackage$PS" . "install$PS"; -# print "TestDir1: $TestDir1 \n"; -# print "TestDir2: $TestDir2 \n"; -# if (-e "$TestDir1") { -# $instDir= $TestDir1; -# } -# elsif (-e "$TestDir2") { -# $instDir="$TestDir2"; -# } -# if ($instDir eq "") { -# next; -# } - -# getSubDirs ("$instDir", \@DirArray); -# $lang = findSubDir (\@DirArray); -# print "Lang-Sel: $lang\n" if $is_command_infos; -# ; -# if (($instDir ne "") and (-e $instDir)) { -# return ($lang, $instDir, $ProductName, $instset); -# } -# } -# print_error ("no installationset found\n",2); - -# } - -sub getWindowsInallCommand(){ - my ($sourcePath, $destPath) = @_; - my $mask = "\\.msi\$"; - #my $DirArray; - my @DirArray = (); - getSubFiles ("$sourcePath", \@DirArray, $mask); - if ($#DirArray == -1) { - print_error ("Installationset in $sourcePath is incomplete", 2); - } - if ($#DirArray >= 1) { - print_error ("Installationset in $sourcePath hat too many msi-files", 2); - print "found the following msi-files: @DirArray\n" if $debug; - } - my $command = "msiexec.exe /a $sourcePath$PS$DirArray[0] -qn ALLUSERS=2 INSTALLLOCATION=$destPath"; - - return $command; -} - -sub getUnixInstallCommand() { - my ($sourcePath, $destPath, $officeVersion) = @_; - - my $userland="unknown"; - - if (defined($ENV{CWS_WORK_STAMP})){ - print " found CWS\n"; - $userland=$ENV{SOLARVERSION}.$PS.$ENV{INPATH}.$PS."bin".$ENV{UPDMINOREXT}.$PS."userscripts".$PS."install"; - } - elsif (isLocalEnv()){ - print " local environment\n"; - } - elsif (defined $ENV{SHIPDRIVE}) { - print " master version\n"; - $userland=$ENV{SHIPDRIVE}.$PS.$ENV{INPATH}.$PS."UserScripts".$PS.$ENV{PKGFORMAT}.$PS.$officeVersion.$PS."install"; - } - elsif (defined $ENV{SOLARSRC}) { - print " OpenOffice master version\n"; - print " command to install Office not implementet yet\n"; - exit(1); - } - else { - print "Could not determine environment. Exit\n"; - exit(1); - } - return "$userland $sourcePath $destPath"; -; - -} - -sub getDestinationPath { - # if (defined $ENV{SOLARROOT}){ - # # seems to be a Sun environment - # if (! -e $OfficeDestinationPath){ - - # } - # } - my $officeVersion = shift; - my $officename; - - if (defined($ENV{LOCALINSTALLDIR})){ - $OfficeDestinationPath=$ENV{LOCALINSTALLDIR}; - if(index($OfficeDestinationPath," ") >= 0) { - my $msg="You environemt variable '\$LOCALINSTALLDIR=$OfficeDestinationPath' contains white spaces."; - $msg = $msg." This is not allowed!"; - print_error($msg, "1"); - } - } - if (!defined($OfficeDestinationPath)){ - $officename = $officeVersion; - if (defined($ENV{CWS_WORK_STAMP})){ - $officename=$ENV{CWS_WORK_STAMP}; - } - $OfficeDestinationPath=$temp_path.$PS.$user.$PS."office".$PS.$officename; - } - - return $OfficeDestinationPath; -} - -# sub getInstset { - -# my ($INSTSET, $NEWINSTSET, $ProductName); - -# if (defined ($ENV{EPM}) && ($ENV{EPM} eq 'NO') && ($gui eq "UNX")) { # we do the install ourselves ... -# return (); -# } - -# print "get Instset\n" if $debug; -# $NEWINSTSET = ""; - -# if (!isLocalEnv() and !defined($ENV{CWS_WORK_STAMP}) and (-e $SHIP) and ($gui ne $cygwin)) { -# ($NEWINSTSET, $INSTSET) = getSetFromServer(); -# } -# else { -# ($NEWINSTSET, $INSTSET, $ProductName) = getInstsetFomInstsetNative(); -# } -# return ($NEWINSTSET, $INSTSET); -# } - -# sub getSetFromServer { -# my ($DirName, $SetupFullPath); -# my $workspace = $ENV{WORK_STAMP}; -# my $platform = $ENV{INPATH}; -# my $latestset; -# my (@DirArray, $mask, $buildid, $milestone); - -# foreach my $pointer (@PRODUCT) { -# my $ProductName = $pointer->{'Name'}; - -# print "##PRODUCT: $ProductName\n"; -# my $SetupFullPath = "$SHIP$ENV{INPATH}$PS$ProductName$PS$packpackage$PS"; -# if ( ! ( $workspace && $platform ) ) { -# print_error ( "Error: environment not set correctly.", 1); -# } -# # get latest broadcastet milestone and pack number -# ($milestone, $buildid) = get_milestoneAndBuildID( $workspace, $platform ); - -# if (defined $ENV{CWS_WORK_STAMP}) { -# # /unxlngi6.pro/StarOffice/rpm/ SRC680_m245_native_packed-2_en-US.9267/ -# $mask = "^$workspace" . "_" . $milestone . "_native_packed-(\\d+)_en-US\\.$buildid"; -# } else { -# # cws03/os110/OOH680/src.m4/instset_native/unxlngi6.pro/StarOffice/rpm install/en-US/RPMS -# $mask = "^$workspace" . "_" . $milestone . "_native_packed-(\\d+)_en-US\\.$buildid"; -# } -# print "MASK: $mask\n"; -# $global_instset_mask = $mask; -# getSubFiles ($SetupFullPath, \@DirArray, $mask); -# @DirArray = sort InstsetSort @DirArray; - -# if ($#DirArray > -1) { -# $latestset = $DirArray [$#DirArray]; -# $DirName = $latestset; -# } -# else { -# print_error ("Cannot find install set $SetupFullPath for $workspace $milestone", 2); -# } - -# print "Latest install sets: $latestset\n" if $debug; - -# print "$DirName\t $SetupFullPath\n" if $debug; -# # compare with file system -# # at the moment just the existence is checked. For security reasons it might be -# # better to additionally check whether there are newer sets (this must not happen, -# # but who knows ...) -# if ( -d $SetupFullPath ) { -# # if found => return and don't continue searching -# # this is usefull to set a priority to find installsets in @PRODUCT -# # first comes, first wins -# return ($DirName, $SetupFullPath); -# } -# } - -# # compare with file system -# # at the moment just the existence is checked. For security reasons it might be -# # better to additionally check whether there are newer sets (this must not happen, -# # but who knows ...) -# if ( -d $SetupFullPath ) { -# return ($DirName, $SetupFullPath); -# } else { -# print_error ("Cannot find install set $SetupFullPath for $workspace $milestone", 2); -# } -# } - -# sub get_milestoneAndBuildID { -# my ( $ws, $pf ) = @_; -# my ($milestone, $buildid, $upd, $path, $updext, $line); - -# if ( $ws =~ /^\D+(\d+)$/) { -# $upd = $1; -# } - -# if (defined ($ENV{UPDMINOREXT})) { -# $updext = $ENV{UPDMINOREXT}; -# } -# else { -# $updext = ""; -# } - -# $path = "$ENV{SOLARVER}$PS$pf$PS" . "inc$updext$PS$upd" . "minor.mk"; -# print "$path\n" if $debug; -# local *MINORMK; - -# if ( !open(MINORMK,$path) ) { -# print "FATAL: can't open $path\n"; -# return (0,0); -# } - -# if (!eof(MINORMK)) { -# while ($line = <MINORMK>) { -# chomp($line); -# if ( $line =~ /LAST_MINOR=(\w+)/ ) { -# $milestone = $1; -# } -# elsif ( $line =~ /BUILD=(\d+)/ ) { -# $buildid = $1; -# } -# } - -# close(MINORMK); -# } -# if (!defined($milestone)) { -# print_error ("Milestone ist not defined!", 2); -# } -# if (!defined($buildid)) { -# print_error ("Build-ID ist not defined!", 2); -# } - -# return ($milestone, $buildid); -# } - -sub print_error -{ - my $message = shift; - my $error_code = shift; - - print STDERR "ERROR: $message\n"; - doExit($error_code); -} - -sub getSubFiles { - my ($startDir, $DirArray_ref, $mask) = @_; - my ($dir); - local *DIR; - opendir(DIR,"$startDir"); - while($dir = readdir(DIR)) { - if (($dir =~ /\.$/) or ($dir !~ /$mask/)) { - next; - } - push (@{$DirArray_ref}, "$dir"); - } - closedir(DIR); - -} - -sub InstsetSort { - my ($a1, $b1); - if ($a =~ /$global_instset_mask/) { - $a1 = $1; - } - if ($b =~ /$global_instset_mask/) { - $b1 = $1; - } - $a1 <=> $b1; -} - -sub isLocalEnv { - my $returnvalue = 0; - if (defined ($ENV{SOL_TMP}) && defined ($ENV{SOLARVERSION})) { - my $mask = $ENV{SOL_TMP}; - $mask =~ s/\\/\\\\/; - print "Mask: $mask\n" if $debug; - if ($ENV{SOLARVERSION}=~ /$mask/) { - $returnvalue = 1; - } - } - return $returnvalue; -} - -sub getSubDirs { - my ($startDir, $DirArray_ref) = @_; - my ($dir); - opendir(DIR,"$startDir"); - while($dir = readdir(DIR)) { - if (($dir !~ /\.$/) and ( -d "$startDir$dir") ) { - push (@{$DirArray_ref}, "$dir"); - } - } - closedir(DIR); - -} - -sub findSubDir { - my ($DirArray_ref) = @_; - my (@sortedArray, $dir, $instdir); - @sortedArray = sort langsort @{$DirArray_ref}; - print "Langs: @sortedArray\n" if $is_command_infos; - foreach $dir (@sortedArray) { - if ($dir =~ /log$/) { - next; - } - $instdir = "$dir"; - return $instdir; - } - return ""; -} - -sub langsort { - if ($a eq $prefered_lang) { - return -1; - } - elsif ($b eq $prefered_lang) { - return 1; - } - else { - $a cmp $b; - } -} - -sub doExit -{ - my $error_code = shift; - # if ($sversion_saved) { - # restore_sversion ($SVERSION_INI); - # } - # if ($is_remove_on_error) { - # if ($is_do_deinstall) { - # deinstallInstallation ($installpath); - # } - # removeInstallation($installpath); - # } - # else { - # print_notRemoved ($installpath); - # } - if ( $error_code ) { - print STDERR "\nFAILURE: $script_name aborted.\n"; - } - exit($error_code); - -} - - -sub parseArgs -{ - for (my $i=0; $i<=$#ARGV; $i++) { - if ( $ARGV[$i] =~ /^-cwscheckapi$/ ) { - my $value = $ARGV[++$i]; - if ($value =~ /^true$/ || ($value =~ /^1$/) ) { - $cwsCheckApi = 1; - $cleanup = 1; - $autorun = 1; - }; - - } - - if ( $ARGV[$i] =~ /^-dest$/ ) { - $OfficeDestinationPath = $ARGV[++$i]; - } - - if ( $ARGV[$i] =~ /^-cleanup$/ ) { - my $value = $ARGV[++$i]; - if ($value =~ /^true$/ || ($value =~ /^1$/ )) { $cleanup = 1 }; - } - - if ( $ARGV[$i] =~ /^-autorun$/ ) { - my $value = $ARGV[++$i]; - if ($value =~ /^true$/ || ($value =~ /^1$/ )) { $autorun = 1 }; - } - - if ( $ARGV[$i] =~ /^-autoimpress$/ ) { - my $value = $ARGV[++$i]; - if ($value =~ /^true$/ || ($value =~ /^1$/ )) { $autoimpress = 1 }; - } - - if ( $ARGV[$i] =~ /^-debug$/ ) { - my $value = $ARGV[++$i]; - if ($value =~ /^true$/ || ($value =~ /^1$/ )) { $debug = 1 }; - } - - if ( $ARGV[$i] =~ /^-ooo$/ ) { - my $value = $ARGV[++$i]; - if ($value =~ /^true$/ || ($value =~ /^1$/ )) { $is_ooo = 1 }; - } - } - -} - -sub getSubDirsFullPath { - my ($startDir, $DirArray_ref) = @_; - my ($dir); - opendir(DIR,"$startDir"); - while($dir = readdir(DIR)) { - if (($dir !~ /\.$/) and ( -d "$startDir$dir") ) { - push (@{$DirArray_ref}, "$startDir$dir"); - } - } - closedir(DIR); -} - -sub errorFromOpen { - my ($file) = @_; - print_error( "can not open $file", "1"); -} - diff --git a/solenv/bin/macosx-change-install-names.pl b/solenv/bin/macosx-change-install-names.pl index b7530e4f5e98..6f824f34ff0c 100644 --- a/solenv/bin/macosx-change-install-names.pl +++ b/solenv/bin/macosx-change-install-names.pl @@ -39,13 +39,17 @@ sub action($$$) 'app/BRAND/OOO' => '@executable_path/../basis-link/program', 'app/NONE/URELIB' => '@__VIA_LIBRARY_PATH__', 'app/NONE/OOO' => '@__VIA_LIBRARY_PATH__', + 'app/NONE/NONE' => '@__VIA_LIBRARY_PATH__', 'shl/URELIB/URELIB' => '@loader_path', 'shl/OOO/URELIB' => '@loader_path/../ure-link/lib', 'shl/OOO/OOO' => '@loader_path', - 'shl/OXT/URELIB' => '@executable_path/urelibs'); + 'shl/OXT/URELIB' => '@executable_path/urelibs', + 'shl/NONE/URELIB' => '@__VIA_LIBRARY_PATH__', + 'shl/NONE/OOO' => '@__VIA_LIBRARY_PATH__', + 'shl/NONE/NONE' => '@__VIA_LIBRARY_PATH__'); my ($type, $loc1, $loc2) = @_; my $act = $action{"$type/$loc1/$loc2"}; - die "illegal combination $type/$loc/$2" unless defined $act; + die "illegal combination $type/$loc1/$loc2" unless defined $act; return $act; } diff --git a/solenv/bin/modules/installer/globals.pm b/solenv/bin/modules/installer/globals.pm index 5e30b8aefd91..72ab0215dbcf 100644 --- a/solenv/bin/modules/installer/globals.pm +++ b/solenv/bin/modules/installer/globals.pm @@ -235,7 +235,7 @@ BEGIN $mergefiles_added_into_collector = 0; $creating_windows_installer_patch = 0; - $strip = 1; + $strip = $ENV{DISABLE_STRIP} eq ''; $solarjava = 0; $jdklib = ""; $jrepath = ""; @@ -515,13 +515,12 @@ BEGIN if ( $plat =~ /darwin/i ) { $libextension = "\.dylib"; - $archiveformat = ".dmg"; } else { $libextension = "\.so"; - $archiveformat = ".tar.gz"; } + $archiveformat = ".tar.gz"; $quote = "\'"; $isunix = 1; $iswin = 0; diff --git a/solenv/bin/modules/installer/parameter.pm b/solenv/bin/modules/installer/parameter.pm index e95df98e64cc..0961b598902f 100644 --- a/solenv/bin/modules/installer/parameter.pm +++ b/solenv/bin/modules/installer/parameter.pm @@ -276,7 +276,6 @@ sub setglobalvariables if ( $installer::globals::compiler =~ /wnt(msc|gcc)i/ ) { $installer::globals::iswindowsbuild = 1; - if ( $installer::globals::installertypedir eq "" ) { $installer::globals::installertypedir = "msi"; } } if ( $installer::globals::compiler =~ /unxso[lg][siux]/ ) diff --git a/solenv/bin/modules/installer/simplepackage.pm b/solenv/bin/modules/installer/simplepackage.pm index f151846445c1..9666ef3e1af5 100644 --- a/solenv/bin/modules/installer/simplepackage.pm +++ b/solenv/bin/modules/installer/simplepackage.pm @@ -354,13 +354,16 @@ sub replace_variables_in_scriptfile ############################################# # Creating the "simple" package. # "zip" for Windows -# "dmg" on Mac OS X # "tar.gz" for all other platforms +# additionally "dmg" on Mac OS X ############################################# sub create_package { - my ( $installdir, $packagename, $allvariables, $includepatharrayref, $languagestringref ) = @_; + my ( $installdir, $archivedir, $packagename, $allvariables, $includepatharrayref, $languagestringref, $format ) = @_; + + installer::logger::print_message( "... creating $installer::globals::packageformat file ...\n" ); + installer::logger::include_header_into_logfile("Creating $installer::globals::packageformat file:"); # moving dir into temporary directory my $pid = $$; # process id @@ -372,9 +375,9 @@ sub create_package installer::systemactions::rename_directory($installdir, $tempdir); # creating new directory with original name - installer::systemactions::create_directory($installdir); + installer::systemactions::create_directory($archivedir); - my $archive = $installdir . $installer::globals::separator . $packagename . $installer::globals::archiveformat; + my $archive = $archivedir . $installer::globals::separator . $packagename . $format; if ( $archive =~ /zip$/ ) { @@ -391,7 +394,6 @@ sub create_package } elsif ( $archive =~ /dmg$/ ) { - installer::worker::put_scpactions_into_installset("$tempdir/$packagename"); my $folder = (( -l "$tempdir/$packagename/Applications" ) or ( -l "$tempdir/$packagename/opt" )) ? $packagename : "\."; if ( $allvariables->{'PACK_INSTALLED'} ) { @@ -606,10 +608,22 @@ sub create_simple_package } } + # Work around Windows problems with long pathnames (see issue 50885) by + # putting the to-be-archived installation tree into the temp directory + # instead of the module output tree (unless LOCALINSTALLDIR dictates + # otherwise, anyway); can be removed once issue 50885 is fixed: + my $tempinstalldir = $installdir; + if ( $installer::globals::iswindowsbuild && + $installer::globals::packageformat eq "archive" && + !$installer::globals::localinstalldirset ) + { + $tempinstalldir = File::Temp::tempdir; + } + # Creating subfolder in installdir, which shall become the root of package or zip file my $subfolderdir = ""; - if ( $packagename ne "" ) { $subfolderdir = $installdir . $installer::globals::separator . $packagename; } - else { $subfolderdir = $installdir; } + if ( $packagename ne "" ) { $subfolderdir = $tempinstalldir . $installer::globals::separator . $packagename; } + else { $subfolderdir = $tempinstalldir; } if ( ! -d $subfolderdir ) { installer::systemactions::create_directory($subfolderdir); } @@ -756,23 +770,19 @@ sub create_simple_package installer::logger::include_header_into_logfile("Registering extensions:"); register_extensions($subfolderdir, $languagestringref); - # Adding scpactions for mac installations sets, that use not dmg format. Without scpactions the - # office does not start. - - if (( $installer::globals::packageformat eq "installed" ) && ( $installer::globals::compiler =~ /^unxmacx/ )) + if ( $installer::globals::compiler =~ /^unxmacx/ ) { installer::worker::put_scpactions_into_installset("$installdir/$packagename"); } # Creating archive file - if (( $installer::globals::packageformat eq "archive" ) || ( $installer::globals::packageformat eq "dmg" )) + if ( $installer::globals::packageformat eq "archive" ) + { + create_package($tempinstalldir, $installdir, $packagename, $allvariables, $includepatharrayref, $languagestringref, $installer::globals::archiveformat); + } + elsif ( $installer::globals::packageformat eq "dmg" ) { - # creating a package - # -> zip for Windows - # -> tar.gz for all other platforms - installer::logger::print_message( "... creating $installer::globals::packageformat file ...\n" ); - installer::logger::include_header_into_logfile("Creating $installer::globals::packageformat file:"); - create_package($installdir, $packagename, $allvariables, $includepatharrayref, $languagestringref); + create_package($installdir, $installdir, $packagename, $allvariables, $includepatharrayref, $languagestringref, ".dmg"); } # Analyzing the log file diff --git a/solenv/bin/receditor b/solenv/bin/receditor index 1011aeb5d826..1b4046010485 100755 --- a/solenv/bin/receditor +++ b/solenv/bin/receditor @@ -3,4 +3,4 @@ if [ x${SOLARENV}x = xx ]; then echo No environment found, please use 'configure' or 'setsolar' exit 1 fi -exec java -DSOLARSRC=${SOLARSRC} -DWORK_STAMP=${WORK_STAMP} -DUSE_SHELL= -jar ${SOLARVER}/${INPATH}/bin${UPDMINOREXT}/receditor.jar +exec java -DSOLARSRC=${SOLARSRC} -DWORK_STAMP=${WORK_STAMP} -jar ${SOLARVER}/${INPATH}/bin${UPDMINOREXT}/receditor.jar diff --git a/solenv/bin/reportErrorCheckAPI.btm b/solenv/bin/reportErrorCheckAPI.btm deleted file mode 100755 index 4340ad347259..000000000000 --- a/solenv/bin/reportErrorCheckAPI.btm +++ /dev/null @@ -1,17 +0,0 @@ -set ERRORCODE=%1% -iff exist %SOLARENV%/bin/cwstestresult.pl then - iff %ERRORCODE% EQ 0 then - set PT_STATUS=%2% - else - iff %ERRORCODE% EQ 1 then - set PT_STATUS=failed - else - set PT_STATUS=incomplete - endiff - endiff - - set CWSENV=Windows - call perl5 %SOLARENV%/bin/cwstestresult.pl -c %CWS_WORK_STAMP% -n CWSCheckAPI -p %CWSENV% %PT_STATUS% -else - echo "No cwstestresult.pl found." -endiff diff --git a/solenv/bin/subsequenttests b/solenv/bin/subsequenttests new file mode 100755 index 000000000000..f0d86db89101 --- /dev/null +++ b/solenv/bin/subsequenttests @@ -0,0 +1,131 @@ +eval 'exec "$PERL" -Sw "$0" "$@"' + if 0; +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#***********************************************************************/ + +use lib("$ENV{SOLARENV}/bin/modules"); +use SourceConfig; + +my $max_running = 1; +while (@ARGV) { + my $arg = shift(@ARGV); + if ($arg =~ /^-P([1-9]\d*)$/) { + $max_running = $1; + } elsif ($arg eq '--') { + last; + } else { + print STDERR "unknown argument \"$arg\"\n"; + print STDERR "usage: $0 [-P<n>] [-- <args>]\n"; + print STDERR " -P<n> number of parallel dmake invocations\n"; + print STDERR " <args> are passed to dmake invocations\n"; + exit(1); + } +} + +my @testpaths = (); +my $sc = SourceConfig->new(); +my $module; +foreach $module ($sc->get_active_modules()) { + my $buildlst = $sc->get_module_build_list($module); + next unless defined($buildlst); + my %deps = (); + open(BUILDLST, $buildlst) or die("cannot open $buildlst"); + while (<BUILDLST>) { + next unless + /^\s*\w+\s+(\S+)\s+nmake\s+-\s+all\s+(\S+)(\s+(:?\S+\s+)*)NULL\s*$/; + my ($dir, $id, $ids) = ($1, $2, $3); + $dir =~ s|\\|/|g; + $dir =~ s|^[^/]+||; + my $path = $sc->get_module_path($module) . $dir; + my $makefile = $path . '/makefile.mk'; + open(MAKEFILE, $makefile) or die("cannot open $makefile"); + while (<MAKEFILE>) { + if (/\bOOO_SUBSEQUENT_TESTS\b/) { + push(@testpaths, $path); + $deps{$id} = $ids; + last; + } + } + close(MAKEFILE); + } + close(BUILDLST); + my $id1; + foreach $id1 (keys(%deps)) { + my ($id2, $ids); + while (($id2, $ids) = each(%deps)) { + $ids !~ /\s\Q$id1\E\s/ or die("$module: $id2 depends on $id1"); + } + } +} + +my $cmd = 'dmake'; +foreach (@ARGV) { + s/'/'\''/g; + $cmd .= " '" . $_ . "'"; +} +$cmd .= ' 2>&1 |'; + +my %pids = (); +my @failedpaths = (); +my $running = 0; +my $counter = 0; +while (@testpaths || $running > 0) { + while (@testpaths && $running < $max_running) { + my $testpath = shift(@testpaths); + ++$counter; + print("$counter: make $testpath\n"); + my $pid = fork(); + defined($pid) or die("$counter: $!"); + if ($pid == 0) { + chdir($testpath) or die("$counter: $!"); + $ENV{'OOO_SUBSEQUENT_TESTS'} = 'x'; + open(OUTPUT, $cmd) or die("$counter: $!"); + while (<OUTPUT>) { + s/\r?\n$//; + print("$counter: $_\n"); + } + close(OUTPUT); + exit($? == 0 ? 0 : 1); + } + $pids{$pid} = $testpath; + ++$running; + } + my $pid = wait(); + $pid != -1 or die($!); + my $testpath = delete($pids{$pid}); + defined($testpath) or die("unmatched PID $pid"); + if ($? != 0) { + @testpaths = (); + push(@failedpaths, $testpath); + } + --$running; +} +my $failedpath; +foreach $failedpath (@failedpaths) { + print STDERR "failed in $failedpath\n"; +} +exit(scalar(@failedpaths) == 0 ? 0 : 1); diff --git a/solenv/config/sdev300.ini b/solenv/config/sdev300.ini index f91d003dc25e..878ae45c99f0 100644 --- a/solenv/config/sdev300.ini +++ b/solenv/config/sdev300.ini @@ -8,7 +8,7 @@ common BIG_SVX TRUE BMP_WRITES_FLAG TRUE BUILD_SPECIAL TRUE - BUILD_TYPE SO OOo EXT BINFILTER BITSTREAM_VERA_FONTS BSH CURL DICTIONARIES HSQLDB HUNSPELL HYPHEN JPEG LIBXML2 LIBXMLSEC LPSOLVE MOZ NEON TWAIN PYTHON ZLIB SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM QADEVOOO ODK MSFONTEXTRACT MATHMLDTD BOOST EXPAT CRASHREP BERKELEYDB LIBXSLT SUN AGG GTK ICU SYSTRAY_GTK JAVAINSTALLER2 VIGRA OPENSSL JFREEREPORT APACHE_COMMONS TOMCAT REPORTBUILDER SDEXT SWEXT XPDF LUCENE REDLAND SAXON WRITER2LATEX NSS L10N GRAPHITE MYSQLCPPCONN MYSQLC + BUILD_TYPE SO OOo EXT BINFILTER BITSTREAM_VERA_FONTS BSH CURL DICTIONARIES HSQLDB HUNSPELL HYPHEN JPEG LIBXML2 LIBXMLSEC LPSOLVE MOZ NEON TWAIN PYTHON ZLIB SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM QADEVOOO ODK MSFONTEXTRACT MATHMLDTD BOOST EXPAT CRASHREP BERKELEYDB LIBXSLT SUN AGG GTK ICU SYSTRAY_GTK JAVAINSTALLER2 VIGRA OPENSSL JFREEREPORT APACHE_COMMONS TOMCAT REPORTBUILDER SDEXT SWEXT XPDF LUCENE REDLAND SAXON WRITER2LATEX NSS L10N GRAPHITE MYSQLCPPCONN MYSQLC CPPUNIT common_build TRUE COMMON_OUTDIR common CONFIG_PROJECT config_office @@ -36,6 +36,7 @@ common NEW_JAR_PACK TRUE NO_REC_RES TRUE OOODMAKEMODE YES + OOO_SHELL /bin/bash PCLEAN_PATH xxx RES_ENUS TRUE RES_GER TRUE @@ -105,11 +106,6 @@ common { LU_RFLAG r_only } - shell - { - SHELL %STAR_USE_SHELL% - USE_SHELL %STAR_USE_SHELL% - } tmp { SOL_TMP %SOL_TMP_DIR% @@ -126,7 +122,7 @@ common SRC_ROOT UPDATER } - order minorext common:2 common:3 pro:0 pro:1 common common:0 cwsname common:1 shell tmp crashdump maxproc hg r_only nosource + order minorext common:2 common:3 pro:0 pro:1 common common:0 cwsname common:1 tmp crashdump maxproc hg r_only nosource reset { ALT_L10N_MODULE @@ -170,7 +166,6 @@ common pro maxproc MAXPROCESS r_only - shell STAR_USE_SHELL tmp SOL_TMP_DIR verbose VERBOSE } @@ -205,6 +200,7 @@ finish BISON_HAIRY %SOLARROOT%$/btools$/bison.hairy BISON_SIMPLE %SOLARROOT%$/btools$/bison.simple DPKG %BUILD_TOOLS%$/dpkg + OOO_JUNIT_JAR %SOLARROOT%$/btools$/junit-4.8.1.jar PATH .$:$cp(%SOLARENV%$/bin)$:$cp(%COMMON_BUILD_TOOLS%)$:$cp(%BUILD_TOOLS%$/dmake412)$:$cp(%BUILD_TOOLS%)$:$cp(%COMMON_ENV_TOOLS%)$:$cp(%ENV_TOOLS%)$:$cp(%COMPATH%$/bin)$:$cp(%JDKPATH%)$:$cp(%PATHEXTRA%)$:%PATH% PATH_SEPERATOR $; SOLARINC -I%SOLAR_STLPATH% -I%SOLARVERSION%$/%INPATH%$/inc%UPDMINOREXT%$/external %SOLARINCLUDES% @@ -212,6 +208,7 @@ finish SOLARSRC %SRC_ROOT% SOURCE_ROOT_DIR $expand(%SOLARSRC%/..) ANT_HOME %COMMON_BUILD_TOOLS%$/apache-ant-1.7.1 + DBGSV_INIT %SOLARENV%/bin/dbgsv.ini } common_2:0 IF X%CWS_WORK_STAMP%X == XX { @@ -2217,7 +2214,6 @@ unxubti8 SOLAR_PLUGIN TRUE SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP% SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT% - USE_SHELL tcsh VBA_EXTENSION NO WITH_LANG en-US de XAU_LIBS -lXau @@ -2297,10 +2293,6 @@ unxubti8 { PROSWITCH -DPRODUCT } - shell - { - USE_SHELL STAR_USE_SHELL - } sourceroot:0 IF X%SOURCE_ROOT%X != XX { SOLAR_SOURCE_ROOT %SOURCE_ROOT% @@ -2442,7 +2434,6 @@ wntgcci1 { SOLAR_ENV_ROOT r: SOLAR_SOURCE_ROOT o: - USE_SHELL bash } common1 { @@ -2548,10 +2539,6 @@ wntgcci1 { PSDK %STAR_PSDK% } - shell - { - USE_SHELL STAR_USE_SHELL - } sourceroot:0 if X%SOURCE_ROOT%X != XX { SOLAR_SOURCE_ROOT %SOURCE_ROOT% @@ -2629,7 +2616,6 @@ wntgcci1 l10n L10N_framework pro psdk STAR_PSDK - shell STAR_USE_SHELL sourceroot } } @@ -2718,7 +2704,6 @@ wntmsci11 BS_ROOT n: SOLAR_ENV_ROOT r: SOLAR_SOURCE_ROOT o: - USE_SHELL 4nt } common1 { @@ -2728,6 +2713,7 @@ wntmsci11 DSDK %SOLAR_ENV_ROOT%$/msvc8p$/DirectXSDK FSDK %SOLAR_ENV_ROOT%$/msvc8p$/Sdk$/v2.0 PERL %SOLAR_ENV_ROOT%$/btw$/perl$/bin$/perl + PKGFORMAT msi PSDK %SOLAR_ENV_ROOT%$/msvc8p$/PlatformSDK SHARED_COM_SDK_PATH %SOLAR_ENV_ROOT%$/msvc8p$/Common7$/ide SHARED_SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv @@ -2827,10 +2813,6 @@ wntmsci11 { PSDK %STAR_PSDK% } - shell - { - use_shell STAR_USE_SHELL - } sourceroot:0 if X%SOURCE_ROOT%X != XX { SOLAR_SOURCE_ROOT %SOURCE_ROOT% @@ -2883,7 +2865,6 @@ wntmsci11 l10n L10N_framework pro psdk STAR_PSDK - shell STAR_USE_SHELL sourceroot } } @@ -2992,8 +2973,6 @@ wntmsci12 BS_ROOT n: SOLAR_ENV_ROOT r: SOLAR_SOURCE_ROOT o: - USE_SHELL bash - STAR_USE_SHELL bash BTOOLDIR %WORK_STAMP%$/cygtools PERLDIR btw$/%WORK_STAMP%$/cygtools$/perl } @@ -3011,6 +2990,7 @@ wntmsci12 F20SDK %SOLAR_ENV_ROOT%$/msvc9p$/Sdk$/v2.0 NSIS_PATH %SOLAR_ENV_ROOT%$/NSIS_242_unicode PERL %SOLAR_ENV_ROOT%$/%PERLDIR% + PKGFORMAT msi PSDK %SOLAR_ENV_ROOT%$/msvc9p$/PlatformSDK$/V6.1 SHARED_COM_SDK_PATH %SOLAR_ENV_ROOT%$/msvc9p$/Common7$/ide SHARED_SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv @@ -3226,7 +3206,6 @@ wntmsci12 ojdk16path pro psdk STAR_PSDK - shell STAR_USE_SHELL sourceroot tmp SOL_TMP_DIR } @@ -3336,8 +3315,6 @@ wntmsci13 BS_ROOT n: SOLAR_ENV_ROOT r: SOLAR_SOURCE_ROOT o: - USE_SHELL bash - STAR_USE_SHELL bash BTOOLDIR %WORK_STAMP%$/cygtools PERLDIR btw$/%WORK_STAMP%$/cygtools$/perl } @@ -3355,6 +3332,7 @@ wntmsci13 F20SDK %SOLAR_ENV_ROOT%$/msvc9p$/Sdk$/v2.0 NSIS_PATH %SOLAR_ENV_ROOT%$/NSIS_242_unicode PERL %SOLAR_ENV_ROOT%$/%PERLDIR% + PKGFORMAT msi PSDK %SOLAR_ENV_ROOT%$/msvc9p$/PlatformSDK$/V6.1 SHARED_COM_SDK_PATH %SOLAR_ENV_ROOT%$/msvc9p$/Common7$/ide SHARED_SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv @@ -3569,7 +3547,6 @@ wntmsci13 ojdk16path pro psdk STAR_PSDK - shell STAR_USE_SHELL sourceroot tmp SOL_TMP_DIR } diff --git a/solenv/config/ssolar.cmn b/solenv/config/ssolar.cmn index e8c0a71feaa6..54eda38b47f9 100644 --- a/solenv/config/ssolar.cmn +++ b/solenv/config/ssolar.cmn @@ -101,6 +101,7 @@ common ENABLE_NAS ENABLE_PCH SYSTEM_CURL + SYSTEM_CPPUNIT SYSTEM_FREETYPE FREETYPE_CFLAGS FREETYPE_LIBS @@ -161,6 +162,8 @@ common ODBCPATH ODBCVER OLD_CHAOS + OOO_JUNIT_JAR + OOO_SHELL PACKMS PCLEAN_PATH PKGCONFIG_ROOT @@ -243,7 +246,6 @@ common USE_MAPFILES USE_NEW_SDK USE_PCH - USE_SHELL USE_SYSTEM_STL use_cygcp use_shl_versions @@ -273,6 +275,7 @@ common HAVE_LD_HASH_STYLE JAVACOMPILER JAVADOC + JAVAIFLAGS JDK NO_HIDS PAM_LINK @@ -283,7 +286,6 @@ common SOLAR_PLUGIN URE_BOOTSTRAP USE_FT_EMBOLDEN - USE_SHELL USE_XINERAMA VBA_EXTENSION XINERAMA_LINK diff --git a/solenv/inc/_cppunit.mk b/solenv/inc/_cppunit.mk index 7aab2b0cdb13..8d9e45d33331 100644 --- a/solenv/inc/_cppunit.mk +++ b/solenv/inc/_cppunit.mk @@ -1,290 +1,120 @@ # unroll begin # ---- create the test libraries ------------------------------------ -TEST1LIB=$(SHL1TARGETN) -.IF "$(TESTOPT)"=="" - TEST1OPT="-jobexclude" - TEST1OPT+=$(SHL1TARGET).xsce - TEST1OPT+="-sf" - TEST1OPT+=$(mktmp "foo") - TEST1OPT+="-onlyerrors" - TEST1OPT+=" " - TEST1OPT+=$(TESTOPTADD) -.ELSE - TEST1OPT=$(TESTOPT) -.ENDIF - .IF "$(SHL1TARGET)"!="" -test : test1 -test1: ALLTAR +ALLTAR : test1 +test1 .PHONY : $(SHL1TARGETN) @echo ---------------------------------------------------------- - @echo - start unit test \#1 on library $(TEST1LIB) + @echo - start unit test \#1 on library $(SHL1TARGETN) @echo ---------------------------------------------------------- -.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress: - `which testshl2` $(TEST1LIB) $(TEST1OPT) -.ELSE - testshl2 $(TEST1LIB) $(TEST1OPT) -.ENDIF + $(CPPUNITTESTER) $(SHL1TARGETN) .ENDIF # unroll begin # ---- create the test libraries ------------------------------------ -TEST2LIB=$(SHL2TARGETN) -.IF "$(TESTOPT)"=="" - TEST2OPT="-jobexclude" - TEST2OPT+=$(SHL2TARGET).xsce - TEST2OPT+="-sf" - TEST2OPT+=$(mktmp "foo") - TEST2OPT+="-onlyerrors" - TEST2OPT+=" " - TEST2OPT+=$(TESTOPTADD) -.ELSE - TEST2OPT=$(TESTOPT) -.ENDIF - .IF "$(SHL2TARGET)"!="" -test : test2 -test2: ALLTAR +ALLTAR : test2 +test2 .PHONY : $(SHL2TARGETN) @echo ---------------------------------------------------------- - @echo - start unit test \#2 on library $(TEST2LIB) + @echo - start unit test \#2 on library $(SHL2TARGETN) @echo ---------------------------------------------------------- -.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress: - `which testshl2` $(TEST2LIB) $(TEST2OPT) -.ELSE - testshl2 $(TEST2LIB) $(TEST2OPT) -.ENDIF + $(CPPUNITTESTER) $(SHL2TARGETN) .ENDIF # unroll begin # ---- create the test libraries ------------------------------------ -TEST3LIB=$(SHL3TARGETN) -.IF "$(TESTOPT)"=="" - TEST3OPT="-jobexclude" - TEST3OPT+=$(SHL3TARGET).xsce - TEST3OPT+="-sf" - TEST3OPT+=$(mktmp "foo") - TEST3OPT+="-onlyerrors" - TEST3OPT+=" " - TEST3OPT+=$(TESTOPTADD) -.ELSE - TEST3OPT=$(TESTOPT) -.ENDIF - .IF "$(SHL3TARGET)"!="" -test : test3 -test3: ALLTAR +ALLTAR : test3 +test3 .PHONY : $(SHL3TARGETN) @echo ---------------------------------------------------------- - @echo - start unit test \#3 on library $(TEST3LIB) + @echo - start unit test \#3 on library $(SHL3TARGETN) @echo ---------------------------------------------------------- -.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress: - `which testshl2` $(TEST3LIB) $(TEST3OPT) -.ELSE - testshl2 $(TEST3LIB) $(TEST3OPT) -.ENDIF + $(CPPUNITTESTER) $(SHL3TARGETN) .ENDIF # unroll begin # ---- create the test libraries ------------------------------------ -TEST4LIB=$(SHL4TARGETN) -.IF "$(TESTOPT)"=="" - TEST4OPT="-jobexclude" - TEST4OPT+=$(SHL4TARGET).xsce - TEST4OPT+="-sf" - TEST4OPT+=$(mktmp "foo") - TEST4OPT+="-onlyerrors" - TEST4OPT+=" " - TEST4OPT+=$(TESTOPTADD) -.ELSE - TEST4OPT=$(TESTOPT) -.ENDIF - .IF "$(SHL4TARGET)"!="" -test : test4 -test4: ALLTAR +ALLTAR : test4 +test4 .PHONY : $(SHL4TARGETN) @echo ---------------------------------------------------------- - @echo - start unit test \#4 on library $(TEST4LIB) + @echo - start unit test \#4 on library $(SHL4TARGETN) @echo ---------------------------------------------------------- -.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress: - `which testshl2` $(TEST4LIB) $(TEST4OPT) -.ELSE - testshl2 $(TEST4LIB) $(TEST4OPT) -.ENDIF + $(CPPUNITTESTER) $(SHL4TARGETN) .ENDIF # unroll begin # ---- create the test libraries ------------------------------------ -TEST5LIB=$(SHL5TARGETN) -.IF "$(TESTOPT)"=="" - TEST5OPT="-jobexclude" - TEST5OPT+=$(SHL5TARGET).xsce - TEST5OPT+="-sf" - TEST5OPT+=$(mktmp "foo") - TEST5OPT+="-onlyerrors" - TEST5OPT+=" " - TEST5OPT+=$(TESTOPTADD) -.ELSE - TEST5OPT=$(TESTOPT) -.ENDIF - .IF "$(SHL5TARGET)"!="" -test : test5 -test5: ALLTAR +ALLTAR : test5 +test5 .PHONY : $(SHL5TARGETN) @echo ---------------------------------------------------------- - @echo - start unit test \#5 on library $(TEST5LIB) + @echo - start unit test \#5 on library $(SHL5TARGETN) @echo ---------------------------------------------------------- -.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress: - `which testshl2` $(TEST5LIB) $(TEST5OPT) -.ELSE - testshl2 $(TEST5LIB) $(TEST5OPT) -.ENDIF + $(CPPUNITTESTER) $(SHL5TARGETN) .ENDIF # unroll begin # ---- create the test libraries ------------------------------------ -TEST6LIB=$(SHL6TARGETN) -.IF "$(TESTOPT)"=="" - TEST6OPT="-jobexclude" - TEST6OPT+=$(SHL6TARGET).xsce - TEST6OPT+="-sf" - TEST6OPT+=$(mktmp "foo") - TEST6OPT+="-onlyerrors" - TEST6OPT+=" " - TEST6OPT+=$(TESTOPTADD) -.ELSE - TEST6OPT=$(TESTOPT) -.ENDIF - .IF "$(SHL6TARGET)"!="" -test : test6 -test6: ALLTAR +ALLTAR : test6 +test6 .PHONY : $(SHL6TARGETN) @echo ---------------------------------------------------------- - @echo - start unit test \#6 on library $(TEST6LIB) + @echo - start unit test \#6 on library $(SHL6TARGETN) @echo ---------------------------------------------------------- -.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress: - `which testshl2` $(TEST6LIB) $(TEST6OPT) -.ELSE - testshl2 $(TEST6LIB) $(TEST6OPT) -.ENDIF + $(CPPUNITTESTER) $(SHL6TARGETN) .ENDIF # unroll begin # ---- create the test libraries ------------------------------------ -TEST7LIB=$(SHL7TARGETN) -.IF "$(TESTOPT)"=="" - TEST7OPT="-jobexclude" - TEST7OPT+=$(SHL7TARGET).xsce - TEST7OPT+="-sf" - TEST7OPT+=$(mktmp "foo") - TEST7OPT+="-onlyerrors" - TEST7OPT+=" " - TEST7OPT+=$(TESTOPTADD) -.ELSE - TEST7OPT=$(TESTOPT) -.ENDIF - .IF "$(SHL7TARGET)"!="" -test : test7 -test7: ALLTAR +ALLTAR : test7 +test7 .PHONY : $(SHL7TARGETN) @echo ---------------------------------------------------------- - @echo - start unit test \#7 on library $(TEST7LIB) + @echo - start unit test \#7 on library $(SHL7TARGETN) @echo ---------------------------------------------------------- -.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress: - `which testshl2` $(TEST7LIB) $(TEST7OPT) -.ELSE - testshl2 $(TEST7LIB) $(TEST7OPT) -.ENDIF + $(CPPUNITTESTER) $(SHL7TARGETN) .ENDIF # unroll begin # ---- create the test libraries ------------------------------------ -TEST8LIB=$(SHL8TARGETN) -.IF "$(TESTOPT)"=="" - TEST8OPT="-jobexclude" - TEST8OPT+=$(SHL8TARGET).xsce - TEST8OPT+="-sf" - TEST8OPT+=$(mktmp "foo") - TEST8OPT+="-onlyerrors" - TEST8OPT+=" " - TEST8OPT+=$(TESTOPTADD) -.ELSE - TEST8OPT=$(TESTOPT) -.ENDIF - .IF "$(SHL8TARGET)"!="" -test : test8 -test8: ALLTAR +ALLTAR : test8 +test8 .PHONY : $(SHL8TARGETN) @echo ---------------------------------------------------------- - @echo - start unit test \#8 on library $(TEST8LIB) + @echo - start unit test \#8 on library $(SHL8TARGETN) @echo ---------------------------------------------------------- -.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress: - `which testshl2` $(TEST8LIB) $(TEST8OPT) -.ELSE - testshl2 $(TEST8LIB) $(TEST8OPT) -.ENDIF + $(CPPUNITTESTER) $(SHL8TARGETN) .ENDIF # unroll begin # ---- create the test libraries ------------------------------------ -TEST9LIB=$(SHL9TARGETN) -.IF "$(TESTOPT)"=="" - TEST9OPT="-jobexclude" - TEST9OPT+=$(SHL9TARGET).xsce - TEST9OPT+="-sf" - TEST9OPT+=$(mktmp "foo") - TEST9OPT+="-onlyerrors" - TEST9OPT+=" " - TEST9OPT+=$(TESTOPTADD) -.ELSE - TEST9OPT=$(TESTOPT) -.ENDIF - .IF "$(SHL9TARGET)"!="" -test : test9 -test9: ALLTAR +ALLTAR : test9 +test9 .PHONY : $(SHL9TARGETN) @echo ---------------------------------------------------------- - @echo - start unit test \#9 on library $(TEST9LIB) + @echo - start unit test \#9 on library $(SHL9TARGETN) @echo ---------------------------------------------------------- -.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress: - `which testshl2` $(TEST9LIB) $(TEST9OPT) -.ELSE - testshl2 $(TEST9LIB) $(TEST9OPT) -.ENDIF + $(CPPUNITTESTER) $(SHL9TARGETN) .ENDIF # unroll begin # ---- create the test libraries ------------------------------------ -TEST10LIB=$(SHL10TARGETN) -.IF "$(TESTOPT)"=="" - TEST10OPT="-jobexclude" - TEST10OPT+=$(SHL10TARGET).xsce - TEST10OPT+="-sf" - TEST10OPT+=$(mktmp "foo") - TEST10OPT+="-onlyerrors" - TEST10OPT+=" " - TEST10OPT+=$(TESTOPTADD) -.ELSE - TEST10OPT=$(TESTOPT) -.ENDIF - .IF "$(SHL10TARGET)"!="" -test : test10 -test10: ALLTAR +ALLTAR : test10 +test10 .PHONY : $(SHL10TARGETN) @echo ---------------------------------------------------------- - @echo - start unit test \#10 on library $(TEST10LIB) + @echo - start unit test \#10 on library $(SHL10TARGETN) @echo ---------------------------------------------------------- -.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress: - `which testshl2` $(TEST10LIB) $(TEST10OPT) -.ELSE - testshl2 $(TEST10LIB) $(TEST10OPT) -.ENDIF + $(CPPUNITTESTER) $(SHL10TARGETN) .ENDIF diff --git a/solenv/inc/_tg_shl.mk b/solenv/inc/_tg_shl.mk index 93588874660f..3d91783988b9 100644 --- a/solenv/inc/_tg_shl.mk +++ b/solenv/inc/_tg_shl.mk @@ -143,7 +143,9 @@ SHL1VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL1VERSIONMAP) $(USE_SHL1VERSIONMAP): $(SHL1OBJS) $(SHL1LIBS) .ENDIF -$(USE_SHL1VERSIONMAP): $(SHL1VERSIONMAP) +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL1VERSIONMAP) .ERRREMOVE: $(SHL1VERSIONMAP) @@-$(RM) -f $@ # The following files will only be generated and needed on Mac OS X as temporary files # in order to generate exported symbols list out of Linux/Solaris map files @@ -693,7 +695,9 @@ SHL2VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL2VERSIONMAP) $(USE_SHL2VERSIONMAP): $(SHL2OBJS) $(SHL2LIBS) .ENDIF -$(USE_SHL2VERSIONMAP): $(SHL2VERSIONMAP) +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL2VERSIONMAP) .ERRREMOVE: $(SHL2VERSIONMAP) @@-$(RM) -f $@ # The following files will only be generated and needed on Mac OS X as temporary files # in order to generate exported symbols list out of Linux/Solaris map files @@ -1243,7 +1247,9 @@ SHL3VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL3VERSIONMAP) $(USE_SHL3VERSIONMAP): $(SHL3OBJS) $(SHL3LIBS) .ENDIF -$(USE_SHL3VERSIONMAP): $(SHL3VERSIONMAP) +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL3VERSIONMAP) .ERRREMOVE: $(SHL3VERSIONMAP) @@-$(RM) -f $@ # The following files will only be generated and needed on Mac OS X as temporary files # in order to generate exported symbols list out of Linux/Solaris map files @@ -1793,7 +1799,9 @@ SHL4VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL4VERSIONMAP) $(USE_SHL4VERSIONMAP): $(SHL4OBJS) $(SHL4LIBS) .ENDIF -$(USE_SHL4VERSIONMAP): $(SHL4VERSIONMAP) +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL4VERSIONMAP) .ERRREMOVE: $(SHL4VERSIONMAP) @@-$(RM) -f $@ # The following files will only be generated and needed on Mac OS X as temporary files # in order to generate exported symbols list out of Linux/Solaris map files @@ -2343,7 +2351,9 @@ SHL5VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL5VERSIONMAP) $(USE_SHL5VERSIONMAP): $(SHL5OBJS) $(SHL5LIBS) .ENDIF -$(USE_SHL5VERSIONMAP): $(SHL5VERSIONMAP) +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL5VERSIONMAP) .ERRREMOVE: $(SHL5VERSIONMAP) @@-$(RM) -f $@ # The following files will only be generated and needed on Mac OS X as temporary files # in order to generate exported symbols list out of Linux/Solaris map files @@ -2893,7 +2903,9 @@ SHL6VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL6VERSIONMAP) $(USE_SHL6VERSIONMAP): $(SHL6OBJS) $(SHL6LIBS) .ENDIF -$(USE_SHL6VERSIONMAP): $(SHL6VERSIONMAP) +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL6VERSIONMAP) .ERRREMOVE: $(SHL6VERSIONMAP) @@-$(RM) -f $@ # The following files will only be generated and needed on Mac OS X as temporary files # in order to generate exported symbols list out of Linux/Solaris map files @@ -3443,7 +3455,9 @@ SHL7VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL7VERSIONMAP) $(USE_SHL7VERSIONMAP): $(SHL7OBJS) $(SHL7LIBS) .ENDIF -$(USE_SHL7VERSIONMAP): $(SHL7VERSIONMAP) +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL7VERSIONMAP) .ERRREMOVE: $(SHL7VERSIONMAP) @@-$(RM) -f $@ # The following files will only be generated and needed on Mac OS X as temporary files # in order to generate exported symbols list out of Linux/Solaris map files @@ -3993,7 +4007,9 @@ SHL8VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL8VERSIONMAP) $(USE_SHL8VERSIONMAP): $(SHL8OBJS) $(SHL8LIBS) .ENDIF -$(USE_SHL8VERSIONMAP): $(SHL8VERSIONMAP) +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL8VERSIONMAP) .ERRREMOVE: $(SHL8VERSIONMAP) @@-$(RM) -f $@ # The following files will only be generated and needed on Mac OS X as temporary files # in order to generate exported symbols list out of Linux/Solaris map files @@ -4543,7 +4559,9 @@ SHL9VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL9VERSIONMAP) $(USE_SHL9VERSIONMAP): $(SHL9OBJS) $(SHL9LIBS) .ENDIF -$(USE_SHL9VERSIONMAP): $(SHL9VERSIONMAP) +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL9VERSIONMAP) .ERRREMOVE: $(SHL9VERSIONMAP) @@-$(RM) -f $@ # The following files will only be generated and needed on Mac OS X as temporary files # in order to generate exported symbols list out of Linux/Solaris map files @@ -5093,7 +5111,9 @@ SHL10VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL10VERSIONMAP) $(USE_SHL10VERSIONMAP): $(SHL10OBJS) $(SHL10LIBS) .ENDIF -$(USE_SHL10VERSIONMAP): $(SHL10VERSIONMAP) +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL10VERSIONMAP) .ERRREMOVE: $(SHL10VERSIONMAP) @@-$(RM) -f $@ # The following files will only be generated and needed on Mac OS X as temporary files # in order to generate exported symbols list out of Linux/Solaris map files diff --git a/solenv/inc/cppunit.mk b/solenv/inc/cppunit.mk index 0659e68adad7..2173f1a9ff9a 100644 --- a/solenv/inc/cppunit.mk +++ b/solenv/inc/cppunit.mk @@ -27,15 +27,12 @@ # Helper makefile additional, to support # dmake test -# for testshl2 (cppunit testing) +# for cppunittester (cppunit testing) # for simple start all generated libraries: # dmake test # # for library 1 & 2: # or dmake test1 test2 -# -# for library 2 with additional options to the testshl2 -# dmake test2 TESTOPT="-dntsf" # This file have to be unroll by # cat cppunit.mk | mkunroll >_cppunit.mk @@ -43,38 +40,17 @@ # $(TNR) is the number # $(SHL$(TNR)TARGETN) is the same like $(OUT)/bin/$(SHL1TARGET) for every number, within unix, "bin" is replaced by "lib" -#.IF "$(TESTOPT)"=="" -# TESTOPT="-onlyerrors" -#.ENDIF - ################################################################################ # unroll begin # ---- create the test libraries ------------------------------------ -TEST$(TNR)LIB=$(SHL$(TNR)TARGETN) -.IF "$(TESTOPT)"=="" - TEST$(TNR)OPT="-jobexclude" - TEST$(TNR)OPT+=$(SHL$(TNR)TARGET).xsce - TEST$(TNR)OPT+="-sf" - TEST$(TNR)OPT+=$(mktmp "foo") - TEST$(TNR)OPT+="-onlyerrors" - TEST$(TNR)OPT+=" " - TEST$(TNR)OPT+=$(TESTOPTADD) -.ELSE - TEST$(TNR)OPT=$(TESTOPT) -.ENDIF - .IF "$(SHL$(TNR)TARGET)"!="" -test : test$(TNR) -test$(TNR): ALLTAR +ALLTAR : test$(TNR) +test$(TNR) .PHONY : $(SHL$(TNR)TARGETN) @echo ---------------------------------------------------------- - @echo - start unit test \#$(TNR) on library $(TEST$(TNR)LIB) + @echo - start unit test \#$(TNR) on library $(SHL$(TNR)TARGETN) @echo ---------------------------------------------------------- -.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress: - `which testshl2` $(TEST$(TNR)LIB) $(TEST$(TNR)OPT) -.ELSE - testshl2 $(TEST$(TNR)LIB) $(TEST$(TNR)OPT) -.ENDIF + $(CPPUNITTESTER) $(SHL$(TNR)TARGETN) .ENDIF # unroll end diff --git a/solenv/inc/installationtest.mk b/solenv/inc/installationtest.mk new file mode 100644 index 000000000000..6aef79c1cd0f --- /dev/null +++ b/solenv/inc/installationtest.mk @@ -0,0 +1,121 @@ +#************************************************************************* +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +#***********************************************************************/ + +.IF "$(OS)" == "WNT" +my_file = file:/// +.ELSE +my_file = file:// +.END + +# The following conditional is an approximation of: UPDATER set to YES and +# SHIPDRIVE set and CWS_WORK_STAMP not set and either SOL_TMP not set or +# SOLARENV set to a pathname of which SOL_TMP is not a prefix: +.IF "$(UPDATER)" == "YES" && "$(SHIPDRIVE)" != "" && \ + "$(CWS_WORK_STAMP)" == "" && "$(SOLARENV:s/$(SOL_TMP)//" == "$(SOLARENV)" +my_instsets = $(shell ls -dt \ + $(SHIPDRIVE)/$(INPATH)/OpenOffice/archive/$(WORK_STAMP)_$(UPDMINOR)_native_packed-*_$(defaultlangiso).$(BUILD)) +installationtest_instset = $(installationtest_instsets:1) +.ELSE +installationtest_instset = \ + $(SOLARSRC)/instsetoo_native/$(INPATH)/OpenOffice/archive/install/$(defaultlangiso) +.END + +.IF "$(OS)" == "WNT" +installationtest_instpath = `cat $(MISC)/$(TARGET)/installation.flag` +.ELSE +installationtest_instpath = $(SOLARVERSION)/$(INPATH)/installation$(UPDMINOREXT) +.END + +.IF "$(OS)" == "MACOSX" +my_soffice = $(installationtest_instpath)/opt/OpenOffice.org.app/Contents/MacOS/soffice +.ELIF "$(OS)" == "WNT" +my_soffice = \ + $(installationtest_instpath)'/opt/OpenOffice.org 3/program/soffice.exe' +.ELSE +my_soffice = $(installationtest_instpath)/opt/openoffice.org3/program/soffice +.END + +.IF "$(OOO_LIBRARY_PATH_VAR)" != "" +my_cppenv = \ + -env:arg-env=$(OOO_LIBRARY_PATH_VAR)"$${{$(OOO_LIBRARY_PATH_VAR)+=$$$(OOO_LIBRARY_PATH_VAR)}}" +my_javaenv = \ + -Dorg.openoffice.test.arg.env=$(OOO_LIBRARY_PATH_VAR)"$${{$(OOO_LIBRARY_PATH_VAR)+=$$$(OOO_LIBRARY_PATH_VAR)}}" +.END + +# Work around Windows problems with long pathnames (see issue 50885) by +# installing into the temp directory instead of the module output tree (in which +# case $(TARGET).installation.flag contains the path to the temp installation, +# which is removed after smoketest); can be removed once issue 50885 is fixed; +# on other platforms, a single installation to solver is created in +# smoketestoo_native: +.IF "$(OS)" == "WNT" +$(MISC)/$(TARGET)/installation.flag : \ + $(shell ls $(installationtest_instset)/OOo_*_install.zip) + $(MKDIRHIER) $(@:d) + my_tmp=$$(cygpath -m $$(mktemp -dt ooosmoke.XXXXXX)) && \ + unzip $(installationtest_instset)/OOo_*_install.zip -d "$$my_tmp" && \ + mv "$$my_tmp"/OOo_*_install "$$my_tmp"/opt && \ + echo "$$my_tmp" > $@ +.END + +cpptest .PHONY : $(MISC)/$(TARGET)/services.rdb + $(RM) -r $(MISC)/$(TARGET)/user + $(MKDIRHIER) $(MISC)/$(TARGET)/user + $(CPPUNITTESTER) \ + -env:UNO_SERVICES=$(my_file)$(PWD)/$(MISC)/$(TARGET)/services.rdb \ + -env:UNO_TYPES=$(my_file)$(SOLARBINDIR)/types.rdb \ + -env:arg-path=$(my_soffice) -env:arg-user=$(MISC)/$(TARGET)/user \ + $(my_cppenv) $(OOO_CPPTEST_ARGS) + $(RM) -r $(MISC)/$(TARGET)/user +.IF "$(OS)" == "WNT" + $(RM) -r $(installationtest_instpath) $(MISC)/$(TARGET)/installation.flag +cpptest : $(MISC)/$(TARGET)/installation.flag +.END + +$(MISC)/$(TARGET)/services.rdb : + $(MKDIRHIER) $(@:d) + $(RM) $@ + $(REGCOMP) -register -r $@ -wop -c bridgefac.uno -c connector.uno \ + -c remotebridge.uno -c uuresolver.uno + +.IF "$(SOLAR_JAVA)" == "TRUE" && "$(OOO_JUNIT_JAR)" != "" +javatest .PHONY : $(JAVATARGET) + $(RM) -r $(MISC)/$(TARGET)/user + $(MKDIRHIER) $(MISC)/$(TARGET)/user + $(JAVAI) $(JAVAIFLAGS) $(JAVACPS) \ + '$(OOO_JUNIT_JAR)$(PATH_SEPERATOR)$(CLASSPATH)' \ + -Dorg.openoffice.test.arg.path=$(my_soffice) \ + -Dorg.openoffice.test.arg.user=$(my_file)$(PWD)/$(MISC)/$(TARGET)/user \ + $(my_javaenv) org.junit.runner.JUnitCore \ + $(foreach,i,$(JAVATESTFILES) $(subst,/,. $(PACKAGE)).$(i:s/.java//)) + $(RM) -r $(MISC)/$(TARGET)/user +.IF "$(OS)" == "WNT" + $(RM) -r $(installationtest_instpath) $(MISC)/$(TARGET)/installation.flag +javatest : $(MISC)/$(TARGET)/installation.flag +.END +.ELSE +javatest .PHONY : + echo 'javatest needs SOLAR_JAVA=TRUE and OOO_JUNIT_JAR' +.END diff --git a/solenv/inc/javaunittest.mk b/solenv/inc/javaunittest.mk index 8f9207fd3917..e129052a445e 100644 --- a/solenv/inc/javaunittest.mk +++ b/solenv/inc/javaunittest.mk @@ -80,8 +80,9 @@ $(TESTS): $(JAVACLASSFILES) .ENDIF %.test .PHONY: %.java - $(JAVAI) $(JAVACPS) $(CLASSPATH) org.openoffice.Runner -TestBase java_complex \ - -NoOffice yes -o $(subst,/,. $(subst,.test, $(PACKAGE).$@)) + $(JAVAI) $(JAVAIFLAGS) $(JAVACPS) $(CLASSPATH) org.openoffice.Runner \ + -TestBase java_complex -NoOffice yes \ + -o $(subst,/,. $(subst,.test, $(PACKAGE).$@)) .IF "$(IDLTESTFILES)" != "" diff --git a/solenv/inc/libs.mk b/solenv/inc/libs.mk index cbde1659ae5d..b835f526997f 100644 --- a/solenv/inc/libs.mk +++ b/solenv/inc/libs.mk @@ -266,8 +266,15 @@ JVMACCESSLIB = -ljvmaccess$(UDK_MAJOR)$(COMID) .ELSE # "$(GUI)$(COM)"=="WNTGCC" JVMACCESSLIB = -ljvmaccess$(COMID) .ENDIF # "$(GUI)$(COM)"=="WNTGCC" -CPPUNITLIB = -lcppunit$(DLLPOSTFIX) -TESTSHL2LIB = -ltestshl2$(DLLPOSTFIX) +.IF "$(OS)" == "WNT" +CPPUNITLIB = -lcygcppunit-1-12-1 +.ELSE +.IF "$(SYSTEM_CPPUNIT)"=="YES" +CPPUNITLIB = $(CPPUNIT_LIBS) +.ELSE +CPPUNITLIB = -lcppunit +.ENDIF +.ENDIF .IF "$(SYSTEM_LIBXSLT)"=="YES" XSLTLIB=$(LIBXSLT_LIBS) .ELSE @@ -341,6 +348,7 @@ LPSOLVELIB=-llpsolve55 SOFFICELIB=-lsofficeapp UNOPKGAPPLIB=-lunopkgapp CONFIGMGRLIB=-lconfigmgr +TESTLIB=-ltest .ELSE # ("$(GUI)"=="UNX" || "$(COM)"=="GCC") && "$(GUI)"!="OS2" @@ -475,8 +483,7 @@ FREETYPELIB=freetype.lib PKGCHKLIB=ipkgchk.lib HELPLINKERLIB=ihelplinker.lib JVMACCESSLIB = ijvmaccess.lib -CPPUNITLIB = cppunit.lib -TESTSHL2LIB = testshl2.lib +CPPUNITLIB = icppunit_dll.lib XSLTLIB = libxslt.lib $(LIBXML2LIB) .IF "$(GUI)"=="OS2" REDLANDLIB = raptor.a rasqal.a rdf.a $(LIBXML2LIB) $(OPENSSLLIB) pthread.lib @@ -523,5 +530,6 @@ LPSOLVELIB=lpsolve55.lib SOFFICELIB=isofficeapp.lib UNOPKGAPPLIB=iunopkgapp.lib CONFIGMGRLIB=iconfigmgr.lib +TESTLIB=itest.lib .ENDIF # ("$(GUI)"=="UNX" || "$(COM)"=="GCC") && "$(GUI)"!="OS2" diff --git a/solenv/inc/settings.mk b/solenv/inc/settings.mk index 98704e038a8e..495720f9d038 100644 --- a/solenv/inc/settings.mk +++ b/solenv/inc/settings.mk @@ -38,11 +38,6 @@ force_dmake_to_error # --- common tool makros -------------------------------------- -# moved temporary wrapper here as it is used in unitools.mk -.IF "$(USE_SHELL)"!="" -use_shell*=$(USE_SHELL) -.ENDIF - .IF "$(USE_PCH)"!="" ENABLE_PCH=TRUE .ENDIF # "$(USE_PCH)"!="" @@ -55,13 +50,6 @@ NETWORK_BUILD:=TRUE .INCLUDE : unitools.mk -#have SCRIPTEXT already defined in product.mk but available for all -.IF "$(USE_SHELL)"=="4NT" -SCRIPTEXT=.bat -.ELSE # "$(GUI)"=="WNT" -SCRIPTEXT= -.ENDIF # "$(GUI)"=="WNT" - .INCLUDE : minor.mk .INCLUDE .IGNORE : rtlbootstrap.mk @@ -1029,6 +1017,18 @@ LNTFLAGSOUTOBJ=-os .INCLUDE : os2.mk .ENDIF +.IF "$(OOO_LIBRARY_PATH_VAR)" != "" +# Add SOLARLIBDIR to the end of a (potentially previously undefined) library +# path (LD_LIBRARY_PATH, PATH, etc.; there is no real reason to prefer adding at +# the end over adding at the start); the ": &&" in the bash case enables this to +# work at the start of a recipe line that is not prefixed by "+" as well as in +# the middle of an existing && chain: +AUGMENT_LIBRARY_PATH = : && \ + $(OOO_LIBRARY_PATH_VAR)=$${{$(OOO_LIBRARY_PATH_VAR)+$${{$(OOO_LIBRARY_PATH_VAR)}}:}}$(normpath, $(SOLARSHAREDBIN)) +AUGMENT_LIBRARY_PATH_LOCAL = : && \ + $(OOO_LIBRARY_PATH_VAR)=$${{$(OOO_LIBRARY_PATH_VAR)+$${{$(OOO_LIBRARY_PATH_VAR)}}:}}$(normpath, $(PWD)/$(DLLDEST)):$(normpath, $(SOLARSHAREDBIN)) +.END + # remove if .Net 2003 support has expired .IF "$(debug)"!="" .IF "$(OS)$(COM)$(CPU)" == "WNTMSCI" @@ -1054,7 +1054,7 @@ JAVAMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/javamaker RDBMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/rdbmaker CLIMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/climaker -TESTSHL2=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/testshl2 +CPPUNITTESTER=$(AUGMENT_LIBRARY_PATH_LOCAL) $(SOLARBINDIR)/cppunittester HELPEX=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/helpex LNGCONVEX=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/lngconvex HELPLINKER=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/HelpLinker @@ -1349,6 +1349,10 @@ $(COMP9TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/x XML_APIS_JAR*=$(SOLARBINDIR)/xml-apis.jar XERCES_JAR*=$(SOLARBINDIR)/xercesImpl.jar +.IF "$(SYSTEM_CPPUNIT)" != "YES" +CPPUNIT_CFLAGS = +.END + # workaround for strange dmake bug: # if the previous block was a rule or a target, "\#" isn't recognized # as an escaped "#". if it was an assignment, escaping works... diff --git a/solenv/inc/startup/AIX/macros.mk b/solenv/inc/startup/AIX/macros.mk deleted file mode 100644 index 5387b1940198..000000000000 --- a/solenv/inc/startup/AIX/macros.mk +++ /dev/null @@ -1,2 +0,0 @@ - -.INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d:d:d)UNIX$/macros.mk diff --git a/solenv/inc/startup/FREEBSD/macros.mk b/solenv/inc/startup/FREEBSD/macros.mk deleted file mode 100644 index 5387b1940198..000000000000 --- a/solenv/inc/startup/FREEBSD/macros.mk +++ /dev/null @@ -1,2 +0,0 @@ - -.INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d:d:d)UNIX$/macros.mk diff --git a/solenv/inc/startup/HPUX/macros.mk b/solenv/inc/startup/HPUX/macros.mk deleted file mode 100644 index 5387b1940198..000000000000 --- a/solenv/inc/startup/HPUX/macros.mk +++ /dev/null @@ -1,2 +0,0 @@ - -.INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d:d:d)UNIX$/macros.mk diff --git a/solenv/inc/startup/IRIX/macros.mk b/solenv/inc/startup/IRIX/macros.mk deleted file mode 100644 index 5387b1940198..000000000000 --- a/solenv/inc/startup/IRIX/macros.mk +++ /dev/null @@ -1,2 +0,0 @@ - -.INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d:d:d)UNIX$/macros.mk diff --git a/solenv/inc/startup/LINUX/macros.mk b/solenv/inc/startup/LINUX/macros.mk deleted file mode 100644 index 5387b1940198..000000000000 --- a/solenv/inc/startup/LINUX/macros.mk +++ /dev/null @@ -1,2 +0,0 @@ - -.INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d:d:d)UNIX$/macros.mk diff --git a/solenv/inc/startup/MACOSX/macros.mk b/solenv/inc/startup/MACOSX/macros.mk deleted file mode 100644 index 5387b1940198..000000000000 --- a/solenv/inc/startup/MACOSX/macros.mk +++ /dev/null @@ -1,2 +0,0 @@ - -.INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d:d:d)UNIX$/macros.mk diff --git a/solenv/inc/startup/NETBSD/macros.mk b/solenv/inc/startup/NETBSD/macros.mk deleted file mode 100644 index 5387b1940198..000000000000 --- a/solenv/inc/startup/NETBSD/macros.mk +++ /dev/null @@ -1,2 +0,0 @@ - -.INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d:d:d)UNIX$/macros.mk diff --git a/solenv/inc/startup/OS2/macros.mk b/solenv/inc/startup/OS2/macros.mk index 08d2be3f9a48..2f1447e6e714 100644 --- a/solenv/inc/startup/OS2/macros.mk +++ b/solenv/inc/startup/OS2/macros.mk @@ -4,22 +4,6 @@ # Process release-specific refinements, if any. # YD .INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d)$(OSRELEASE)$/macros.mk -# Execution environment configuration. -# Grab the current setting of COMSPEC. -# -.IMPORT .IGNORE : COMSPEC - -# First check if SHELL is defined to be something other than COMSPEC. -# If it is assume that SHELL is a Korn compatible shell like MKS's -.IF $(SHELL) == $(NULL) - .IF $(COMSPEC) == $(NULL) - SHELL *:= $(ROOTDIR)$/bin$/sh$E - .ELSE - SHELL *:= $(COMSPEC) - .END -.END -GROUPSHELL *:= $(SHELL) - # Directory entries are case incensitive .DIRCACHERESPCASE *:= no @@ -35,39 +19,12 @@ P *:= .pas # Pascal S *:= .asm # Assembler sources V *:= # RCS suffix -# Now set the remaining arguments depending on which SHELL we -# are going to use. COMSPEC (assumed to be command.com) or -# MKS Korn shell. -.IF $(SHELL) == $(COMSPEC) - SHELLFLAGS *:= $(SWITCHAR)c - GROUPFLAGS *:= $(SHELLFLAGS) - SHELLMETAS *:= <>|*?& - GROUPSUFFIX *:= .bat - DIVFILE *= $(TMPFILE:s,/,\\,) - RM *= rm - RMFLAGS *= -f - MV *= rename - __.DIVSEP-sh-yes *:= \\ - __.DIVSEP-sh-no *:= \\ - DIRSEPSTR := \\ -# See iz61212 for the reason why PWD is overwritten -# PWD:=$(shell +echo %_cwd:s,/,\\,) -# PWD:=$(shell +cd) -#.EXPORT : PWD - -.ELSE - SHELLFLAGS *:= -c - GROUPFLAGS *:= - SHELLMETAS *:= *"?<>|()&][$$\#`' - GROUPSUFFIX *:= .ksh - .MKSARGS *:= yes - RM *= $(ROOTDIR)$/bin$/rm - RMFLAGS *= -f - MV *= $(ROOTDIR)$/bin$/mv - DIVFILE *= $(TMPFILE:s,/,${__.DIVSEP-sh-${USESHELL}}) - __.DIVSEP-sh-yes !:= \\\ - __.DIVSEP-sh-no !:= \\ -.ENDIF +.MKSARGS *:= yes +RM *= $(ROOTDIR)$/bin$/rm +MV *= $(ROOTDIR)$/bin$/mv +DIVFILE *= $(TMPFILE:s,/,${__.DIVSEP-sh-${USESHELL}}) +__.DIVSEP-sh-yes !:= \\\ +__.DIVSEP-sh-no !:= \\ NAMEMAX = 256 diff --git a/solenv/inc/startup/Readme b/solenv/inc/startup/Readme index d0c38c7c75d5..63a023d10d3e 100644 --- a/solenv/inc/startup/Readme +++ b/solenv/inc/startup/Readme @@ -1,9 +1,6 @@ here are some hints about our use of the startup directory. -because our variable "OS" was already in use, we don't use the default -subtrees of startup. for example "wntmsci3" uses the subtree "WNT". - the .INCLUDEDIRS line in startup.mk gives you the oportunity of switching to your own set of central makefiles. diff --git a/solenv/inc/startup/SOLARIS/macros.mk b/solenv/inc/startup/SOLARIS/macros.mk deleted file mode 100644 index 5387b1940198..000000000000 --- a/solenv/inc/startup/SOLARIS/macros.mk +++ /dev/null @@ -1,2 +0,0 @@ - -.INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d:d:d)UNIX$/macros.mk diff --git a/solenv/inc/startup/UNIX/macros.mk b/solenv/inc/startup/UNIX/macros.mk deleted file mode 100644 index 7fa2f1b77d35..000000000000 --- a/solenv/inc/startup/UNIX/macros.mk +++ /dev/null @@ -1,19 +0,0 @@ -# This file is used for all $(OS)==UNX during startup -# - -SHELL *:= /usr/bin/csh -GROUPSHELL *:= $(SHELL) - -.IF $(USE_SHELL) == bash - SHELLFLAGS *:= -c -.ELSE - SHELLFLAGS *:= -fc -.ENDIF # $(USE_SHELL) == bash - - GROUPFLAGS *:= $(SHELLFLAGS) - -# incomplete - better use METAS from startup.mk -# SHELLMETAS *:= "<>|/ - RM *= rm - RMFLAGS *= -f - MV *= mv diff --git a/solenv/inc/startup/startup.mk b/solenv/inc/startup/startup.mk index 96b6378db11f..b4aa9a74353a 100644 --- a/solenv/inc/startup/startup.mk +++ b/solenv/inc/startup/startup.mk @@ -33,7 +33,7 @@ CALLTARGETS=$(MAKETARGETS) .INCLUDEDIRS : $(DMAKE_INC) $(SOLARVERSION)$/$(INPATH)$/inc$(UPDMINOREXT) $(SOLARENV)$/inc # Grab key definitions from the environment -# .IMPORT .IGNORE : OS TMPDIR SHELL UPD INPATH OUTPATH GUI COM EX CLASSPATH PRODUCT GUIBASE SOLARENV SOLARVER GUIENV CPU CPUNAME CVER GVER COMPATH LIB INCLUDE TR SORT UNIQ ROOTDIR SED AWK TOUCH IENV ILIB PRODUCT_ENV COMEX UPD BUILD DEVROOT VCL SO3 ENVCFLAGS +# .IMPORT .IGNORE : OS TMPDIR UPD INPATH OUTPATH GUI COM EX CLASSPATH PRODUCT GUIBASE SOLARENV SOLARVER GUIENV CPU CPUNAME CVER GVER COMPATH LIB INCLUDE TR SORT UNIQ ROOTDIR SED AWK TOUCH IENV ILIB PRODUCT_ENV COMEX UPD BUILD DEVROOT VCL SO3 ENVCFLAGS .IF "$(OS)" == "" || "$(OS)" == "Windows_NT" .ERROR : ; @echo Forced error: Environment variable OS has to be set for OOo build! @@ -42,28 +42,35 @@ OS_variable_needed # Customize macro definitions based on seting of OS. # This must come before the default macro definitions which follow. -.INCLUDE .NOINFER : $(INCFILENAME:d)$(OS)$/macros.mk +.IF "$(OS)" == "OS2" +.INCLUDE: $(INCFILENAME:d)OS2/macros.mk +.ELIF "$(OS)" == "WNT" +.INCLUDE: $(INCFILENAME:d)wnt/macros.mk +.END # ----------------- Default Control Macro definitions ----------------------- # Select appropriate defaults for basic macros - MAKE *= $(MAKECMD) $(MFLAGS) - TMPDIR *:= $/tmp - DIVFILE *= $(TMPFILE) +MAKE *= $(MAKECMD) $(MFLAGS) +TMPDIR *:= $/tmp +DIVFILE *= $(TMPFILE) MAXLINELENGTH = 65530 # Recipe execution configuration - SHELL *:= $/bin$/sh - SHELLFLAGS *:= -fc - GROUPSHELL *:= $(SHELL) - GROUPFLAGS *:= - SHELLMETAS *:= |();&<>?*][$$:\\#`'" - GROUPSUFFIX *:= +SHELL := $(OOO_SHELL) +SHELLFLAGS := -c +SHELLMETAS := !"\#$$%&'()*;<=>?[\]`{{|}}~ + # the colon (":") utility is typically only available as a shell built-in, + # so it should be included in SHELLMETAS; however, this would result in very + # many false positives on Windows where ":" is used in drive letter notation +GROUPSHELL := $(SHELL) +GROUPFLAGS := +GROUPSUFFIX := # Intermediate target removal configuration - RM *:= $/bin$/rm - RMFLAGS *= -f - RMTARGET *= $< +RM *:= rm +RMFLAGS *= -f +RMTARGET *= $< # Default recipe that is used to remove intermediate targets. .REMOVE :; #echo dummy remove #$(RM) $(RMFLAGS) $(RMTARGET) @@ -80,7 +87,7 @@ NULLPRQ *:= __.NULLPRQ E *:= # Executables # Other Compilers, Tools and their flags -MV *:= $/bin$/mv # File rename command +MV *:= mv # File rename command # Finally, define the default construction strategy diff --git a/solenv/inc/startup/wnt/macros.mk b/solenv/inc/startup/wnt/macros.mk index 35f903f60922..2d8181439e81 100644 --- a/solenv/inc/startup/wnt/macros.mk +++ b/solenv/inc/startup/wnt/macros.mk @@ -15,25 +15,10 @@ GUWCMD*=guw.exe # Applicable suffix definitions E *:= .exe # Executables -# Now set the remaining arguments depending on which SHELL we -# are going to use. - -.IF $(USE_SHELL) == bash - SHELLFLAGS *:= -c -.ELSE - # See iz50689 why -f is needed. - SHELLFLAGS *:= -fc -.ENDIF # $(USE_SHELL) == bash - - GROUPFLAGS *:= - SHELLMETAS *:= *";?<>|()&][$$\#`' -# Fix syntax highlighting: " - GROUPSUFFIX *:= .csh # This is hopefully not used. Only in: dmake/msdos/spawn.c # .MKSARGS *:= yes DIVFILE *= $(TMPFILE:s,/,${__.DIVSEP-sh-${USESHELL}}) RM *= $/bin$/rm - RMFLAGS *= -f MV *= $/bin$/mv __.DIVSEP-sh-yes *:= \\\ __.DIVSEP-sh-no *:= \\ @@ -41,14 +26,6 @@ E *:= .exe # Executables .EXPORT : GUWCMD -.IF $(SHELL) == $(NULL) -# SHELL has to be set in (non-4NT) OOobuild environment -.ERROR : ; @echo Forced error: Environment variable SHELL has to be set for OOo build! -SHELL_variable_needed -.END - -GROUPSHELL *:= $(SHELL) - # Does not respect case of filenames. .DIRCACHERESPCASE := no NAMEMAX = 256 diff --git a/solenv/inc/target.mk b/solenv/inc/target.mk index e446635be9a2..0319e92f3418 100644 --- a/solenv/inc/target.mk +++ b/solenv/inc/target.mk @@ -211,9 +211,7 @@ LOCALJARS:=$(foreach,i,$(shell @@-cd $(JARDIR) && ls -1 $(JARFILES) ) $(JARDIR)/ NEWCLASS:=$(LOCALJARS) NEWCLASS+:=$(foreach,i,$(JARFILES) $(eq,$(LOCALJARS),$(subst,$i, $(LOCALJARS)) $(SOLARBINDIR)/$i $(NULL))) .ENDIF # "$(JARFILES)"!="" -.IF "$(EXTRAJARFILES)"!="" -NEWCLASS+=$(foreach,i,$(EXTRAJARFILES) $(COMMON_BUILD_TOOLS)/$i) -.ENDIF # "$(EXTRAJARFILES)"!="" +NEWCLASS+=$(EXTRAJARFILES) .IF "$(GENJAVACLASSFILES)"!="" NEWCLASS+=$(CLASSGENDIR) .ENDIF # "$(GENJAVACLASSFILES)"!="" diff --git a/solenv/inc/tg_ext.mk b/solenv/inc/tg_ext.mk index b2d79b1200b5..e19c7124d4a7 100644 --- a/solenv/inc/tg_ext.mk +++ b/solenv/inc/tg_ext.mk @@ -43,11 +43,11 @@ LDFLAGS!:=$(EXTRA_LINKFLAGS) $(LDFLAGS) .EXPORT : LDFLAGS .ENDIF -.IF "$(GUI)"=="WNT" && "$(USE_SHELL)"!="4nt" +.IF "$(GUI)"=="WNT" PATH!:=.:$(SOLARBINDIR:^"/cygdrive/":s/://):$(PATH) -.ELSE # "$(GUI)"=="WNT" && "$(USE_SHELL)"!="4nt" +.ELSE # "$(GUI)"=="WNT" PATH!:=.$(PATH_SEPERATOR)$(SOLARBINDIR)$(PATH_SEPERATOR)$(PATH) -.ENDIF # "$(GUI)"=="WNT" && "$(USE_SHELL)"!="4nt" +.ENDIF # "$(GUI)"=="WNT" .EXPORT : PATH #override @@ -79,10 +79,6 @@ NEW_PATCH_FILE_NAME:=$(TARFILE_NAME)-newpatch-rename_me.patch PATCH_FILE_DEP:=$(PRJ)/$(PATH_IN_MODULE)/{$(PATCH_FILES)} .ENDIF # "$(PATCH_FILES)"=="none" || "$(PATCH_FILES)"=="" -.IF "$(TAR_EXCLUDES)"!="" -TAR_EXCLUDE_SWITCH=--exclude=$(TAR_EXCLUDES) -.ENDIF # "$(TAR_EXCLUDES)"!="" - unzip_quiet_switch:=-qq .IF "$(VERBOSE)"=="TRUE" tar_verbose_switch=v @@ -114,9 +110,9 @@ clean: $(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar.bz2 @-$(RM) $@ .IF "$(GUI)"=="UNX" - @noop $(assign UNPACKCMD := sh -c "bzip2 -cd $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.bz2 $(TARFILE_FILTER) | $(GNUTAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f - ") + @noop $(assign UNPACKCMD := sh -c "bzip2 -cd $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.bz2 $(TARFILE_FILTER) | $(GNUTAR) -x$(tar_verbose_switch)f - ") .ELSE # "$(GUI)"=="UNX" - @noop $(assign UNPACKCMD := bzip2 -cd $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.bz2 $(TARFILE_FILTER) | $(GNUTAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f - ) + @noop $(assign UNPACKCMD := bzip2 -cd $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.bz2 $(TARFILE_FILTER) | $(GNUTAR) -x$(tar_verbose_switch)f - ) .ENDIF # "$(GUI)"=="UNX" @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) @$(RENAME) $@.$(INPATH) $@ @@ -124,28 +120,28 @@ $(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar.bz2 $(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar.Z @-$(RM) $@ .IF "$(GUI)"=="UNX" - @noop $(assign UNPACKCMD := sh -c "uncompress -c $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.Z | $(GNUTAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f - ") + @noop $(assign UNPACKCMD := sh -c "uncompress -c $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.Z | $(GNUTAR) -x$(tar_verbose_switch)f - ") .ELSE # "$(GUI)"=="UNX" - @noop $(assign UNPACKCMD := uncompress -c $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.Z | $(GNUTAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f - ) + @noop $(assign UNPACKCMD := uncompress -c $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.Z | $(GNUTAR) -x$(tar_verbose_switch)f - ) .ENDIF # "$(GUI)"=="UNX" @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) @$(RENAME) $@.$(INPATH) $@ $(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar.gz @-$(RM) $@ - @noop $(assign UNPACKCMD := gzip -d -c $(subst,\,/ $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.gz) $(TARFILE_FILTER) | $(GNUTAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f - ) + @noop $(assign UNPACKCMD := gzip -d -c $(subst,\,/ $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.gz) $(TARFILE_FILTER) | $(GNUTAR) -x$(tar_verbose_switch)f - ) @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) @$(RENAME) $@.$(INPATH) $@ $(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tgz @-$(RM) $@ - @noop $(assign UNPACKCMD := gzip -d -c $(subst,\,/ $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tgz) $(TARFILE_FILTER) | $(GNUTAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f - ) + @noop $(assign UNPACKCMD := gzip -d -c $(subst,\,/ $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tgz) $(TARFILE_FILTER) | $(GNUTAR) -x$(tar_verbose_switch)f - ) @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) @$(RENAME) $@.$(INPATH) $@ $(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar @-$(RM) $@ - @noop $(assign UNPACKCMD := $(GNUTAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar) + @noop $(assign UNPACKCMD := $(GNUTAR) -x$(tar_verbose_switch)f $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar) @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) @$(RENAME) $@.$(INPATH) $@ diff --git a/solenv/inc/tg_shl.mk b/solenv/inc/tg_shl.mk index 2349a00609ad..170947c21c4a 100644 --- a/solenv/inc/tg_shl.mk +++ b/solenv/inc/tg_shl.mk @@ -172,7 +172,9 @@ SHL$(TNR)VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL$(TNR)VERSIONMAP) $(USE_SHL$(TNR)VERSIONMAP): $(SHL$(TNR)OBJS) $(SHL$(TNR)LIBS) .ENDIF -$(USE_SHL$(TNR)VERSIONMAP): $(SHL$(TNR)VERSIONMAP) +# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ +# even if the $(AWK) part fails: +$(USE_SHL$(TNR)VERSIONMAP) .ERRREMOVE: $(SHL$(TNR)VERSIONMAP) @@-$(RM) -f $@ # The following files will only be generated and needed on Mac OS X as temporary files # in order to generate exported symbols list out of Linux/Solaris map files diff --git a/solenv/inc/unitools.mk b/solenv/inc/unitools.mk index b537bae59d29..7e12a9e2b225 100644 --- a/solenv/inc/unitools.mk +++ b/solenv/inc/unitools.mk @@ -62,26 +62,14 @@ NULLDEV:=/dev/null # iz29609 helpmacro to check if file exists -.IF "$(USE_SHELL)"=="bash" IFEXIST:=if [ -f IFNOTEXIST:= if ! test -f THEN:= ] ; then FI:= ; fi PIPEERROR=2>&1 | -.ELSE -IFEXIST:=if ( -e -IFNOTEXIST:=if ( ! -e -THEN:= ) -FI:= -PIPEERROR=|& -.ENDIF # iz31658 -.IF "$(USE_SHELL)"=="bash" CHECKZIPRESULT:=|| ret=$$?; if [[ "$$ret" != "12" && "$$ret" != "1" ]] ; then exit $$ret ; fi && echo "Nothing to update for zip" -.ELSE -CHECKZIPRESULT:=|| if ("$$status" != "12" && "$$status" != "1") exit $$status && echo "Nothing to update for zip" -.ENDIF # Platform specific .IF "$(GUI)"=="WNT" @@ -191,10 +179,8 @@ CONVERT*:=$(PERL) $(SOLARENV)/bin/leconvert.pl EXECTEST := $(PERL) -w $(SOLARENV)/bin/exectest.pl GCCINSTLIB:=$(PERL) -w $(SOLARENV)/bin/gccinstlib.pl -# The dmake $(PWD) variable and the tcsh pwd command both apparantly produce -# paths with symlinks resolved, while the bash pwd command by default produces -# paths with unresolved symlinks, so that computing PATH_IN_MODULE in -# settings.mk would fail without the -P flag to the bash pwd command: -.IF "$(USE_SHELL)" == "bash" +# The dmake $(PWD) apparantly produces paths with symlinks resolved, while the +# bash pwd command by default produces paths with unresolved symlinks, so that +# computing PATH_IN_MODULE in settings.mk would fail without the -P flag to the +# bash pwd command: PWDFLAGS = -P -.ENDIF diff --git a/solenv/inc/unx.mk b/solenv/inc/unx.mk index c6d756343d79..eb27b51a6e6d 100644 --- a/solenv/inc/unx.mk +++ b/solenv/inc/unx.mk @@ -198,17 +198,4 @@ SOLARLIB+=-L$(KDE_ROOT)/lib .ENDIF # "$(KDE_ROOT)"!="" .ENDIF # "$(ENABLE_KDE)" != "" -# Add SOLARLIBDIR to the end of a (potentially previously undefined) -# LD_LIBRARY_PATH (there is no real reason to prefer adding at the end over -# adding at the start); the ": &&" in the bash case enables this to work at the -# start of a recipe line that is not prefixed by "+" as well as in the middle of -# an existing && chain; the tcsh case is somewhat imprecise in that it -# potentially affects multiple commands following on the recipe line: -.IF "$(USE_SHELL)" == "bash" -AUGMENT_LIBRARY_PATH *= : && \ - LD_LIBRARY_PATH=$${{LD_LIBRARY_PATH+$${{LD_LIBRARY_PATH}}:}}$(SOLARLIBDIR) -.ELSE -AUGMENT_LIBRARY_PATH *= if ($$?LD_LIBRARY_PATH == 1) \ - eval 'setenv LD_LIBRARY_PATH "$${{LD_LIBRARY_PATH}}:$(SOLARLIBDIR)"' && \ - if ($$?LD_LIBRARY_PATH == 0) setenv LD_LIBRARY_PATH "$(SOLARLIBDIR)" && -.ENDIF +OOO_LIBRARY_PATH_VAR *= LD_LIBRARY_PATH diff --git a/solenv/inc/unxmacx.mk b/solenv/inc/unxmacx.mk index 571a7222e00d..6ea51ae6ccfe 100644 --- a/solenv/inc/unxmacx.mk +++ b/solenv/inc/unxmacx.mk @@ -206,7 +206,7 @@ LINKFLAGSRUNPATH_OOO=-install_name '@___________________________________________ LINKFLAGSRUNPATH_SDK= LINKFLAGSRUNPATH_BRAND= LINKFLAGSRUNPATH_OXT= -LINKFLAGSRUNPATH_NONE= +LINKFLAGSRUNPATH_NONE=-install_name '@__________________________________________________NONE/$(@:f)' LINKFLAGS=$(LINKFLAGSDEFS) # [ed] 5/14/02 If we're building for aqua, add in the objc runtime library into our link line @@ -285,18 +285,4 @@ RCLINK= RCLINKFLAGS= RCSETVERSION= -# Add SOLARLIBDIR to the end of a (potentially previously undefined) -# DYLD_LIBRARY_PATH (there is no real reason to prefer adding at the end over -# adding at the start); the ": &&" in the bash case enables this to work at the -# start of a recipe line that is not prefixed by "+" as well as in the middle of -# an existing && chain; the tcsh case is somewhat imprecise in that it -# potentially affects multiple commands following on the recipe line: -.IF "$(USE_SHELL)" == "bash" -AUGMENT_LIBRARY_PATH = : && \ - DYLD_LIBRARY_PATH=$${{DYLD_LIBRARY_PATH+$${{DYLD_LIBRARY_PATH}}:}}$(SOLARLIBDIR) -.ELSE -AUGMENT_LIBRARY_PATH = if ($$?DYLD_LIBRARY_PATH == 1) \ - eval 'setenv DYLD_LIBRARY_PATH "$${{DYLD_LIBRARY_PATH}}:$(SOLARLIBDIR)"' \ - && if ($$?DYLD_LIBRARY_PATH == 0) \ - setenv DYLD_LIBRARY_PATH "$(SOLARLIBDIR)" && -.ENDIF +OOO_LIBRARY_PATH_VAR = DYLD_LIBRARY_PATH diff --git a/solenv/inc/wnt.mk b/solenv/inc/wnt.mk index 78f496927899..f369bd15ad30 100644 --- a/solenv/inc/wnt.mk +++ b/solenv/inc/wnt.mk @@ -69,9 +69,4 @@ JAVA_RUNTIME=javai_g.lib .ENDIF .ENDIF -.IF "$(USE_SHELL)" == "bash" -AUGMENT_LIBRARY_PATH *= : && \ - PATH=$${{PATH}}:$(SOLARBINDIR:s/://:^"/cygdrive/") -.ELSE -AUGMENT_LIBRARY_PATH *= echos && PATH=%PATH%;$(SOLARBINDIR) && -.ENDIF +OOO_LIBRARY_PATH_VAR = PATH |