diff options
Diffstat (limited to 'odk/setsdkenv_unix.sh.in')
-rw-r--r-- | odk/setsdkenv_unix.sh.in | 343 |
1 files changed, 343 insertions, 0 deletions
diff --git a/odk/setsdkenv_unix.sh.in b/odk/setsdkenv_unix.sh.in new file mode 100644 index 000000000000..0f6ef22519cd --- /dev/null +++ b/odk/setsdkenv_unix.sh.in @@ -0,0 +1,343 @@ +#! /bin/sh + +# This script starts a new shell and sets all enviroment variables, which +# are necessary for building the examples of the Office Development Kit. +# The Script was developed for the operating systems Solaris, Linux and MacOS. + +# The SDK name +OO_SDK_NAME=@OO_SDK_NAME@ +export OO_SDK_NAME + +# Installation directory of the Software Development Kit. +# Example: OO_SDK_HOME=/opt/openoffice.org/basis3.0/sdk +OO_SDK_HOME=@OO_SDK_HOME@ + +# Office installation directory. +# Example: OFFICE_HOME=/opt/openoffice.org3 +OFFICE_HOME=@OFFICE_HOME@ +OFFICE_BASE_HOME=@OFFICE_BASE_HOME@ + +# URE installation directory. +# Example: OO_SDK_URE_HOME=/opt/openoffice.org/ure +OO_SDK_URE_HOME=@OO_SDK_URE_HOME@ +export OO_SDK_URE_HOME + +# Directory of the make command. +# Example: OO_SDK_MAKE_HOME=/usr/bin +OO_SDK_MAKE_HOME=@OO_SDK_MAKE_HOME@ + +# Directory of the zip command. +# Example: OO_SDK_ZIP_HOME=/usr/bin +OO_SDK_ZIP_HOME=@OO_SDK_ZIP_HOME@ + +# Directory of the C++ compiler. +# Example: OO_SDK_CPP_HOME=/usr/bin +OO_SDK_CPP_HOME=@OO_SDK_CPP_HOME@ + +# Solaris only +OO_SDK_CC_55_OR_HIGHER=@OO_SDK_CC_55_OR_HIGHER@ + +# Directory of the Java SDK. +# Example: OO_SDK_JAVA_HOME=/usr/jdk/jdk1.6.0_10 +OO_SDK_JAVA_HOME=@OO_SDK_JAVA_HOME@ + +# Special output directory +# Example: OO_SDK_OUTPUT_DIR=$HOME +OO_SDK_OUTPUT_DIR=@OO_SDK_OUTPUT_DIR@ + +# Environment variable to enable auto deployment of example components +# Example: SDK_AUTO_DEPLOYMENT=YES +SDK_AUTO_DEPLOYMENT=@SDK_AUTO_DEPLOYMENT@ +export SDK_AUTO_DEPLOYMENT + +# Check installation path for the OpenOffice Development Kit. +if [ -z "${OO_SDK_HOME}" ] +then + echo Error: Please insert a correct value for the variable OO_SDK_HOME. + exit 0 +fi + +export OO_SDK_HOME + +# Check installation path for the office. +if [ -z "${OFFICE_HOME}" ] && [ -z "${OO_SDK_URE_HOME}" ] +then + echo 'Error: Please set either the environment variable OFFICE_HOME or the' + echo 'environment variable OO_SDK_URE_HOME.' + exit 0 +fi + +# Get the operating system. +sdk_platform=`${OO_SDK_HOME}/config.guess | cut -d"-" -f3,4` + +# Set the directory name. +programdir=program +javadir=bin +case ${sdk_platform} in + darwin*) + programdir="Contents/MacOS" + javacdir=Commands + ;; +esac + +# Set office program path (only set when using an Office). +if [ "${OFFICE_HOME}" ] +then + OFFICE_PROGRAM_PATH=${OFFICE_HOME}/${programdir} + export OFFICE_PROGRAM_PATH +fi + +# Set office program path (only set when using an Office). +if [ "${OFFICE_BASE_HOME}" ] +then + OFFICE_BASE_PROGRAM_PATH=${OFFICE_BASE_HOME}/program + export OFFICE_BASE_PROGRAM_PATH +fi + + +# Set UNO path, necessary to ensure that the cpp examples using the +# new UNO bootstrap mechanism use the configured office installation (only set +# when using an Office). +if [ "${OFFICE_HOME}" ] +then + UNO_PATH=${OFFICE_PROGRAM_PATH} + export UNO_PATH +fi + +if [ "${OO_SDK_URE_HOME}" ] +then + OO_SDK_URE_BIN_DIR=${OO_SDK_URE_HOME}/bin + OO_SDK_URE_LIB_DIR=${OO_SDK_URE_HOME}/lib + OO_SDK_URE_JAVA_DIR=${OO_SDK_URE_HOME}/share/java +else + OO_SDK_URE_BIN_DIR=${OFFICE_PROGRAM_PATH} + OO_SDK_URE_LIB_DIR=${OFFICE_BASE_PROGRAM_PATH} + OO_SDK_URE_JAVA_DIR=${OFFICE_BASE_PROGRAM_PATH}/classes +fi +export OO_SDK_URE_BIN_DIR +export OO_SDK_URE_LIB_DIR +export OO_SDK_URE_JAVA_DIR + +OO_SDK_OUT=$OO_SDK_HOME +# Prepare appropriate output directory. +if [ -n "${OO_SDK_OUTPUT_DIR}" ] +then + OO_SDK_OUT=${OO_SDK_OUTPUT_DIR}/${OO_SDK_NAME} + export OO_SDK_OUT +fi + +# Set the directory name. +case ${sdk_platform} in + solaris*) + sdk_proctype=`${OO_SDK_HOME}/config.guess | cut -d"-" -f1` + if [ "${sdk_proctype}" = "sparc" ] + then + directoryname=solsparc + platform='Solaris Sparc' + else + directoryname=solintel + platform='Solaris x86' + fi + comid=C52 + pltfrm=sunpro + soext=so + exampleout=SOLARISexample.out + stldebug=_debug + LD_LIBRARY_PATH=${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_URE_LIB_DIR}:.:${LD_LIBRARY_PATH} + export LD_LIBRARY_PATH + ;; + + darwin*) + if [ -n "$OO_SDK_CPP_HOME" ] + then + SDK_GXX_INCLUDE_PATH=`echo "#include <cstring>" | ${OO_SDK_CPP_HOME}/g++ -E -xc++ - | sed -n '/.*1*"\(.*\)\/cstring".*/s//\1/p' | head -n 1` + export SDK_GXX_INCLUDE_PATH + fi + + directoryname=macosx + comid=gcc3 + pltfrm=gcc + soext=dylib + exampleout=MACOSXexample.out + platform=MacOSX + stldebug=_stldebug + DYLD_LIBRARY_PATH=${OO_SDK_OUT}/${directoryname}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_URE_LIB_DIR}:.:${DYLD_LIBRARY_PATH} + export DYLD_LIBRARY_PATH + ;; + + linux-gnu) + if [ -n "$OO_SDK_CPP_HOME" ] + then + SDK_GXX_INCLUDE_PATH=`echo "#include <cstring>" | ${OO_SDK_CPP_HOME}/g++ -E -xc++ - | sed -n '/.*1*"\(.*\)\/cstring".*/s//\1/p' | head -n 1` + export SDK_GXX_INCLUDE_PATH + fi + + directoryname=linux + comid=gcc3 + pltfrm=gcc + soext=so + exampleout=LINUXexample.out + platform=Linux + stldebug=_stldebug + LD_LIBRARY_PATH=${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_URE_LIB_DIR}:.:${LD_LIBRARY_PATH} + export LD_LIBRARY_PATH + ;; + + freebsd*) + if [ -n "$OO_SDK_CPP_HOME" ] + then + SDK_GXX_INCLUDE_PATH=`echo "#include <cstring>" | ${OO_SDK_CPP_HOME}/g++ -E -xc++ - | sed -n '/.*1*"\(.*\)\/cstring".*/s//\1/p' | head -n 1` + export SDK_GXX_INCLUDE_PATH + fi + + directoryname=freebsd + comid=gcc3 + pltfrm=gcc + soext=so + exampleout=FREEBSDexample.out + platform=FreeBSD + stldebug=_stldebug + LD_LIBRARY_PATH=${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_URE_LIB_DIR}:.:${LD_LIBRARY_PATH} + export LD_LIBRARY_PATH + + if [ -e "/sbin/sysctl" ] + then + OSVERSION=`/sbin/sysctl -n kern.osreldate` + else + OSVERSION=`/usr/sbin/sysctl -n kern.osreldate` + fi + if [ $OSVERSION -lt 500016 ] + then + PTHREAD_CFLAGS=-D_THREAD_SAFE + PTHREAD_LIBS=-pthread + export PTHREAD_CFLAGS + export PTHREAD_LIBS + elif [ $OSVERSION -lt 502102 ] + then + PTHREAD_CFLAGS=-D_THREAD_SAFE + PTHREAD_LIBS=-lc_r + export PTHREAD_CFLAGS + export PTHREAD_LIBS + else + PTHREAD_LIBS=-pthread + export PTHREAD_LIBS + fi + ;; +esac + +# Add directory of the SDK tools to the path. +PATH=${OO_SDK_HOME}/bin:${OO_SDK_OUT}/${exampleout}/bin:${OO_SDK_URE_BIN_DIR}:${OFFICE_PROGRAM_PATH}:.:${PATH} + +# Set the classpath +CLASSPATH=${OO_SDK_URE_JAVA_DIR}/juh.jar:${OO_SDK_URE_JAVA_DIR}/jurt.jar:${OO_SDK_URE_JAVA_DIR}/ridl.jar:${OO_SDK_URE_JAVA_DIR}/unoloader.jar:${OFFICE_BASE_PROGRAM_PATH}/classes/unoil.jar:${CLASSPATH} +export CLASSPATH + + +# Add directory of the command make to the path, if necessary. +if [ -n "${OO_SDK_MAKE_HOME}" ] +then + PATH=${OO_SDK_MAKE_HOME}:${PATH} + export OO_SDK_MAKE_HOME +fi + +# Add directory of the zip tool to the path, if necessary. +if [ -n "${OO_SDK_ZIP_HOME}" ] +then + PATH=${OO_SDK_ZIP_HOME}:${PATH} + export OO_SDK_ZIP_HOME +fi + +# Add directory of the C++ tools to the path, if necessary. +if [ -n "${OO_SDK_CPP_HOME}" ] +then + PATH=${OO_SDK_CPP_HOME}:${PATH} + export OO_SDK_CPP_HOME + + if [ -n "${OO_SDK_CC_55_OR_HIGHER}" ] + then + export OO_SDK_CC_55_OR_HIGHER + fi +fi + +# Add directory of the Java tools to the path, if necessary. +if [ -n "${OO_SDK_JAVA_HOME}" ] +then + PATH=${OO_SDK_JAVA_HOME}/${javadir}:${PATH} +# JAVA_HOME=${OO_SDK_JAVA_HOME} +# export JAVA_HOME + export OO_SDK_JAVA_HOME + + export PATH +fi + +export PATH + +if [ -r "${OO_SDK_URE_LIB_DIR}/libstlport_${pltfrm}${stldebug}.${soext}" ] +then + STLDEBUG=${stldebug} + export STLDEBUG +fi + +if [ "${platform}" = "MacOSX" ] +then +# For URE, prepare symbolic links for libraries: +# Only necessary on MacOSX, on other Unix systems the links are already prepared +# in the SDK installation. + +# cleanup potential old links first + rm -f "${OO_SDK_OUT}/${directoryname}/lib/libuno_cppu.${soext}" \ + "${OO_SDK_OUT}/${directoryname}/lib/libuno_cppuhelper${comid}.${soext}" \ + "${OO_SDK_OUT}/${directoryname}/lib/libuno_sal.${soext}" \ + "${OO_SDK_OUT}/${directoryname}/lib/libuno_salhelper${comid}.${soext}" \ + "${OO_SDK_OUT}/${directoryname}/lib/libuno_purpenvhelper${comid}.${soext}" + + if [ -L "${OO_SDK_OUT}/${directoryname}/lib/libstlport_${pltfrm}${STLDEBUG}.${soext}" ] + then + rm -rf "${OO_SDK_OUT}/${directoryname}/lib/libstlport_${pltfrm}${STLDEBUG}.${soext}" + fi + +# prepare links + if [ "${OO_SDK_URE_HOME}" ] + then + mkdir -p "${OO_SDK_OUT}/${directoryname}/lib" + ln -s "${OO_SDK_URE_LIB_DIR}/libuno_cppu.${soext}.3" \ + "${OO_SDK_OUT}/${directoryname}/lib/libuno_cppu.${soext}" + ln -s "${OO_SDK_URE_LIB_DIR}/libuno_cppuhelper${comid}.${soext}.3" \ + "${OO_SDK_OUT}/${directoryname}/lib/libuno_cppuhelper${comid}.${soext}" + ln -s "${OO_SDK_URE_LIB_DIR}/libuno_sal.${soext}.3" \ + "${OO_SDK_OUT}/${directoryname}/lib/libuno_sal.${soext}" + ln -s "${OO_SDK_URE_LIB_DIR}/libuno_salhelper${comid}.${soext}.3" \ + "${OO_SDK_OUT}/${directoryname}/lib/libuno_salhelper${comid}.${soext}" + ln -s "${OO_SDK_URE_LIB_DIR}/libuno_purpenvhelper${comid}.${soext}.3" \ + "${OO_SDK_OUT}/${directoryname}/lib/libuno_purpenvhelper${comid}.${soext}" + + if [ -r "${OO_SDK_URE_LIB_DIR}/libstlport_${pltfrm}${STLDEBUG}.${soext}" ] + then + ln -s "${OO_SDK_URE_LIB_DIR}/libstlport_${pltfrm}${STLDEBUG}.${soext}" \ + "${OO_SDK_OUT}/${directoryname}/lib/libstlport_${pltfrm}${STLDEBUG}.${soext}" + fi + fi +fi + + +# Prepare shell with all necessary environment variables. +echo +echo " ************************************************************************" +echo " *" +echo " * SDK environment is prepared for ${platform}" +echo " *" +echo " * SDK = $OO_SDK_HOME" +echo " * Office = $OFFICE_HOME" +echo " * Office Base = $OFFICE_BASE_HOME" +echo " * URE = $OO_SDK_URE_HOME" +echo " * Make = $OO_SDK_MAKE_HOME" +echo " * Zip = $OO_SDK_ZIP_HOME" +echo " * C++ Compiler = $OO_SDK_CPP_HOME" +echo " * Java = $OO_SDK_JAVA_HOME" +echo " * SDK Output directory = $OO_SDK_OUT" +echo " * Auto deployment = $SDK_AUTO_DEPLOYMENT" +echo " *" +echo " ************************************************************************" + +echo "]2;Shell prepared with the SDK environment" + |