#! /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 and Linux. sdkscript=`echo $0 | grep setsdkenv_unix | true` if [ "$sdkscript" = "" ] then sdkscript=`history 1 | sed "s/.*\. //"` fi if [ "$sdkscript" = "" ] then # total falback; needed when history does not work sdkscript=@OO_SDK_HOME@/setsdkenv_unix fi sdkdir=`dirname $sdkscript` # The SDK name OO_SDK_NAME=@OO_SDK_NAME@ export OO_SDK_NAME # Installation directory of the Software Development Kit. # Example: OO_SDK_HOME=/work/StarOffice_SDK OO_SDK_HOME=@OO_SDK_HOME@ # Office installation directory. # Example: OFFICE_HOME=/opt/staroffice OFFICE_HOME=@OFFICE_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/local/j2sdk1.4.1_01 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 StarOffice 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 # Set office program path (only set when using an Office). if [ "${OFFICE_HOME}" ] then OFFICE_PROGRAM_PATH=${OFFICE_HOME}/program export OFFICE_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_PROGRAM_PATH} OO_SDK_URE_JAVA_DIR=${OFFICE_PROGRAM_PATH}/classes fi export OO_SDK_URE_BIN_DIR export OO_SDK_URE_LIB_DIR export OO_SDK_URE_JAVA_DIR OO_EXAMPLE_OUT=$OO_SDK_HOME # Prepare appropriate output directory. if [ -n "$OO_SDK_OUTPUT_DIR" ] then OO_EXAMPLE_OUT=$OO_SDK_OUTPUT_DIR/$OO_SDK_NAME export OO_SDK_OUTPUT_DIR fi # Get the operating system. sd_platform=`$sdkdir/config.guess | cut -d"-" -f3,4` # Set the directory name. case $sd_platform in solaris*) sd_proctype=`$sdkdir/config.guess | cut -d"-" -f1` if [ "$sd_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/$directoryname/lib:$OO_EXAMPLE_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 " | $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_HOME/$directoryname/lib:$OO_EXAMPLE_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 " | $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/$directoryname/lib:$OO_EXAMPLE_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 " | $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/$directoryname/lib:$OO_EXAMPLE_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/$directoryname/bin:$OO_EXAMPLE_OUT/$exampleout/bin:${OO_SDK_URE_BIN_DIR}:.:$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_PROGRAM_PATH+:${OFFICE_PROGRAM_PATH}/classes/unoil.jar}${CLASSPATH+:${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/bin:$PATH # JAVA_HOME=$OO_SDK_JAVA_HOME # export JAVA_HOME export OO_SDK_JAVA_HOME export PATH # UNO_JAVA_JFW_JREHOME=`sp2bv $OO_SDK_JAVA_HOME` # UNO_JAVA_JFW_ENV_CLASSPATH=true # UNO_JAVA_JFW_VENDOR_SETTINGS=`sp2bv $OFFICE_HOME/share/config/javavendors.xml` # export UNO_JAVA_JFW_JREHOME # export UNO_JAVA_JFW_ENV_CLASSPATH # export UNO_JAVA_JFW_VENDOR_SETTINGS fi export PATH if [ -r "${OO_SDK_URE_LIB_DIR}/libstlport_${pltfrm}${stldebug}.${soext}" ] then STLDEBUG=${stldebug} export STLDEBUG fi # For URE, prepare symbolic links for libraries: rm -f "${OO_SDK_HOME}/${directoryname}/lib/libuno_cppu.${soext}" \ "${OO_SDK_HOME}/${directoryname}/lib/libuno_cppuhelper${comid}.${soext}" \ "${OO_SDK_HOME}/${directoryname}/lib/libuno_sal.${soext}" \ "${OO_SDK_HOME}/${directoryname}/lib/libuno_salhelper${comid}.${soext}" if [ -w "${OO_SDK_HOME}/${directoryname}/lib/libstlport_${pltfrm}${STLDEBUG}.${soext}" ] then rm -rf "${OO_SDK_HOME}/${directoryname}/lib/libstlport_${pltfrm}${STLDEBUG}.${soext}" fi if [ "${OO_SDK_URE_HOME}" ] then mkdir -p "${OO_SDK_HOME}/${directoryname}/lib" ln -s "${OO_SDK_URE_LIB_DIR}/libuno_cppu.${soext}.3" \ "${OO_SDK_HOME}/${directoryname}/lib/libuno_cppu.${soext}" ln -s "${OO_SDK_URE_LIB_DIR}/libuno_cppuhelper${comid}.${soext}.3" \ "${OO_SDK_HOME}/${directoryname}/lib/libuno_cppuhelper${comid}.${soext}" ln -s "${OO_SDK_URE_LIB_DIR}/libuno_sal.${soext}.3" \ "${OO_SDK_HOME}/${directoryname}/lib/libuno_sal.${soext}" ln -s "${OO_SDK_URE_LIB_DIR}/libuno_salhelper${comid}.${soext}.3" \ "${OO_SDK_HOME}/${directoryname}/lib/libuno_salhelper${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_HOME}/${directoryname}/lib/libstlport_${pltfrm}${STLDEBUG}.${soext}" 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 " * 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 " * Special Output directory = $OO_SDK_OUTPUT_DIR" echo " * Auto deployment = $SDK_AUTO_DEPLOYMENT" echo " *" echo " ************************************************************************" echo "]2;Shell prepared with the SDK environment"