blob: 96ced44d6b9a437888bb6a67f883f24081c97f63 [file] [log] [blame]
#! /bin/sh
###############################################################
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
###############################################################
# 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/basis4.0/sdk
OO_SDK_HOME='@OO_SDK_HOME@'
# Office installation directory.
# Example: OFFICE_HOME=/opt/openoffice4
OFFICE_HOME='@OFFICE_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 cat command.
# Example: OO_SDK_CAT_HOME=/usr/bin
OO_SDK_CAT_HOME=@OO_SDK_CAT_HOME@
# Directory of the sed command.
# Example: OO_SDK_SED_HOME=/usr/bin
OO_SDK_SED_HOME=@OO_SDK_SED_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@
# Directory of Boost (optional, C++ only)
# Example: OO_SDK_BOOST_HOME=/opt/local/boost_1_48_0
OO_SDK_BOOST_HOME=@OO_SDK_BOOST_HOME@
export OO_SDK_BOOST_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 Apache 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}" ]
then
echo 'Error: Please set either the environment variable OFFICE_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 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
OO_SDK_OFFICE_BIN_DIR=${OFFICE_PROGRAM_PATH}
OO_SDK_OFFICE_LIB_DIR=${OFFICE_PROGRAM_PATH}
OO_SDK_OFFICE_JAVA_DIR=${OFFICE_PROGRAM_PATH}/classes
export OO_SDK_OFFICE_BIN_DIR
export OO_SDK_OFFICE_LIB_DIR
export OO_SDK_OFFICE_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
soext=so
exampleout=SOLARISexample.out
stldebug=_debug
LD_LIBRARY_PATH=${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_OFFICE_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}/clang++ -E -xc++ - | sed -n '/.*1*"\(.*\)\/cstring".*/s//\1/p' | head -n 1`
export SDK_GXX_INCLUDE_PATH
fi
directoryname=macosx
comid=s5abi
soext=dylib
exampleout=MACOSXexample.out
platform=MacOSX
stldebug=_stldebug
DYLD_LIBRARY_PATH=/usr/lib:${OO_SDK_OUT}/${directoryname}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_OFFICE_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
soext=so
exampleout=LINUXexample.out
platform=Linux
stldebug=_stldebug
LD_LIBRARY_PATH=${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_OFFICE_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
soext=so
exampleout=FREEBSDexample.out
platform=FreeBSD
stldebug=_stldebug
LD_LIBRARY_PATH=${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_OFFICE_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:${OFFICE_PROGRAM_PATH}:.:${PATH}
# Set the classpath
CLASSPATH=${OO_SDK_OFFICE_JAVA_DIR}/juh.jar:${OO_SDK_OFFICE_JAVA_DIR}/jurt.jar:${OO_SDK_OFFICE_JAVA_DIR}/ridl.jar:${OO_SDK_OFFICE_JAVA_DIR}/unoloader.jar:${OO_SDK_OFFICE_JAVA_DIR}/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 sed tool to the path, if necessary.
if [ -n "${OO_SDK_SED_HOME}" ]
then
PATH=${OO_SDK_SED_HOME}:${PATH}
export OO_SDK_SED_HOME
fi
# Add directory of the cat tool to the path, if necessary.
if [ -n "${OO_SDK_CAT_HOME}" ]
then
PATH=${OO_SDK_CAT_HOME}:${PATH}
export OO_SDK_CAT_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 [ "${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}"
# prepare links
if [ "${OFFICE_HOME}" ]
then
mkdir -p "${OO_SDK_OUT}/${directoryname}/lib"
ln -s "${OO_SDK_OFFICE_LIB_DIR}/libuno_cppu.${soext}.3" \
"${OO_SDK_OUT}/${directoryname}/lib/libuno_cppu.${soext}"
ln -s "${OO_SDK_OFFICE_LIB_DIR}/libuno_cppuhelper${comid}.${soext}.3" \
"${OO_SDK_OUT}/${directoryname}/lib/libuno_cppuhelper${comid}.${soext}"
ln -s "${OO_SDK_OFFICE_LIB_DIR}/libuno_sal.${soext}.3" \
"${OO_SDK_OUT}/${directoryname}/lib/libuno_sal.${soext}"
ln -s "${OO_SDK_OFFICE_LIB_DIR}/libuno_salhelper${comid}.${soext}.3" \
"${OO_SDK_OUT}/${directoryname}/lib/libuno_salhelper${comid}.${soext}"
ln -s "${OO_SDK_OFFICE_LIB_DIR}/libuno_purpenvhelper${comid}.${soext}.3" \
"${OO_SDK_OUT}/${directoryname}/lib/libuno_purpenvhelper${comid}.${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 " * Make = $OO_SDK_MAKE_HOME"
echo " * Zip = $OO_SDK_ZIP_HOME"
echo " * cat = $OO_SDK_CAT_HOME"
echo " * sed = $OO_SDK_SED_HOME"
echo " * C++ Compiler = $OO_SDK_CPP_HOME"
echo " * Java = $OO_SDK_JAVA_HOME"
echo " * Boost = $OO_SDK_BOOST_HOME"
echo " * SDK Output directory = $OO_SDK_OUT"
echo " * Auto deployment = $SDK_AUTO_DEPLOYMENT"
echo " *"
echo " ************************************************************************"
echo "]2;Shell prepared with the SDK environment"