1#! /bin/sh 2############################################################### 3# 4# Licensed to the Apache Software Foundation (ASF) under one 5# or more contributor license agreements. See the NOTICE file 6# distributed with this work for additional information 7# regarding copyright ownership. The ASF licenses this file 8# to you under the Apache License, Version 2.0 (the 9# "License"); you may not use this file except in compliance 10# with the License. You may obtain a copy of the License at 11# 12# http://www.apache.org/licenses/LICENSE-2.0 13# 14# Unless required by applicable law or agreed to in writing, 15# software distributed under the License is distributed on an 16# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17# KIND, either express or implied. See the License for the 18# specific language governing permissions and limitations 19# under the License. 20# 21############################################################### 22 23# This script starts a new shell and sets all enviroment variables, which 24# are necessary for building the examples of the Office Development Kit. 25# The Script was developed for the operating systems Solaris, Linux and MacOS. 26 27# The SDK name 28OO_SDK_NAME=@OO_SDK_NAME@ 29export OO_SDK_NAME 30 31# Installation directory of the Software Development Kit. 32# Example: OO_SDK_HOME=/opt/openoffice/basis4.0/sdk 33OO_SDK_HOME='@OO_SDK_HOME@' 34 35# Office installation directory. 36# Example: OFFICE_HOME=/opt/openoffice4 37OFFICE_HOME='@OFFICE_HOME@' 38 39# Directory of the make command. 40# Example: OO_SDK_MAKE_HOME=/usr/bin 41OO_SDK_MAKE_HOME=@OO_SDK_MAKE_HOME@ 42 43# Directory of the zip command. 44# Example: OO_SDK_ZIP_HOME=/usr/bin 45OO_SDK_ZIP_HOME=@OO_SDK_ZIP_HOME@ 46 47# Directory of the cat command. 48# Example: OO_SDK_CAT_HOME=/usr/bin 49OO_SDK_CAT_HOME=@OO_SDK_CAT_HOME@ 50 51# Directory of the sed command. 52# Example: OO_SDK_SED_HOME=/usr/bin 53OO_SDK_SED_HOME=@OO_SDK_SED_HOME@ 54 55# Directory of the C++ compiler. 56# Example: OO_SDK_CPP_HOME=/usr/bin 57OO_SDK_CPP_HOME=@OO_SDK_CPP_HOME@ 58 59# Solaris only 60OO_SDK_CC_55_OR_HIGHER=@OO_SDK_CC_55_OR_HIGHER@ 61 62# Directory of the Java SDK. 63# Example: OO_SDK_JAVA_HOME=/usr/jdk/jdk1.6.0_10 64OO_SDK_JAVA_HOME=@OO_SDK_JAVA_HOME@ 65 66# Directory of Boost (optional, C++ only) 67# Example: OO_SDK_BOOST_HOME=/opt/local/boost_1_48_0 68OO_SDK_BOOST_HOME=@OO_SDK_BOOST_HOME@ 69export OO_SDK_BOOST_HOME 70 71# Special output directory 72# Example: OO_SDK_OUTPUT_DIR=$HOME 73OO_SDK_OUTPUT_DIR=@OO_SDK_OUTPUT_DIR@ 74 75# Environment variable to enable auto deployment of example components 76# Example: SDK_AUTO_DEPLOYMENT=YES 77SDK_AUTO_DEPLOYMENT=@SDK_AUTO_DEPLOYMENT@ 78export SDK_AUTO_DEPLOYMENT 79 80# Check installation path for the Apache OpenOffice Development Kit. 81if [ -z "${OO_SDK_HOME}" ] 82then 83 echo Error: Please insert a correct value for the variable OO_SDK_HOME. 84 exit 0 85fi 86 87export OO_SDK_HOME 88 89# Check installation path for the office. 90if [ -z "${OFFICE_HOME}" ] 91then 92 echo 'Error: Please set either the environment variable OFFICE_HOME.' 93 exit 0 94fi 95 96# Get the operating system. 97sdk_platform=`${OO_SDK_HOME}/config.guess | cut -d"-" -f3,4` 98 99# Set the directory name. 100programdir=program 101javadir=bin 102case ${sdk_platform} in 103 darwin*) 104 programdir="Contents/MacOS" 105 javacdir=Commands 106 ;; 107esac 108 109# Set office program path (only set when using an Office). 110if [ "${OFFICE_HOME}" ] 111then 112 OFFICE_PROGRAM_PATH=${OFFICE_HOME}/${programdir} 113 export OFFICE_PROGRAM_PATH 114fi 115 116# Set UNO path, necessary to ensure that the cpp examples using the 117# new UNO bootstrap mechanism use the configured office installation (only set 118# when using an Office). 119if [ "${OFFICE_HOME}" ] 120then 121 UNO_PATH=${OFFICE_PROGRAM_PATH} 122 export UNO_PATH 123fi 124 125OO_SDK_OFFICE_BIN_DIR=${OFFICE_PROGRAM_PATH} 126OO_SDK_OFFICE_LIB_DIR=${OFFICE_PROGRAM_PATH} 127OO_SDK_OFFICE_JAVA_DIR=${OFFICE_PROGRAM_PATH}/classes 128 129export OO_SDK_OFFICE_BIN_DIR 130export OO_SDK_OFFICE_LIB_DIR 131export OO_SDK_OFFICE_JAVA_DIR 132 133OO_SDK_OUT=$OO_SDK_HOME 134# Prepare appropriate output directory. 135if [ -n "${OO_SDK_OUTPUT_DIR}" ] 136then 137 OO_SDK_OUT=${OO_SDK_OUTPUT_DIR}/${OO_SDK_NAME} 138 export OO_SDK_OUT 139fi 140 141# Set the directory name. 142case ${sdk_platform} in 143 solaris*) 144 sdk_proctype=`${OO_SDK_HOME}/config.guess | cut -d"-" -f1` 145 if [ "${sdk_proctype}" = "sparc" ] 146 then 147 directoryname=solsparc 148 platform='Solaris Sparc' 149 else 150 directoryname=solintel 151 platform='Solaris x86' 152 fi 153 comid=C52 154 pltfrm=sunpro 155 soext=so 156 exampleout=SOLARISexample.out 157 stldebug=_debug 158 LD_LIBRARY_PATH=${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_OFFICE_LIB_DIR}:.:${LD_LIBRARY_PATH} 159 export LD_LIBRARY_PATH 160 ;; 161 162 darwin*) 163 if [ -n "$OO_SDK_CPP_HOME" ] 164 then 165 SDK_GXX_INCLUDE_PATH=`echo "#include <cstring>" | ${OO_SDK_CPP_HOME}/g++ -E -xc++ - | sed -n '/.*1*"\(.*\)\/cstring".*/s//\1/p' | head -n 1` 166 export SDK_GXX_INCLUDE_PATH 167 fi 168 169 directoryname=macosx 170 comid=gcc3 171 pltfrm=gcc 172 soext=dylib 173 exampleout=MACOSXexample.out 174 platform=MacOSX 175 stldebug=_stldebug 176 DYLD_LIBRARY_PATH=/usr/lib:${OO_SDK_OUT}/${directoryname}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_OFFICE_LIB_DIR}:.:${DYLD_LIBRARY_PATH} 177 export DYLD_LIBRARY_PATH 178 ;; 179 180 linux-gnu) 181 if [ -n "$OO_SDK_CPP_HOME" ] 182 then 183 SDK_GXX_INCLUDE_PATH=`echo "#include <cstring>" | ${OO_SDK_CPP_HOME}/g++ -E -xc++ - | sed -n '/.*1*"\(.*\)\/cstring".*/s//\1/p' | head -n 1` 184 export SDK_GXX_INCLUDE_PATH 185 fi 186 187 directoryname=linux 188 comid=gcc3 189 pltfrm=gcc 190 soext=so 191 exampleout=LINUXexample.out 192 platform=Linux 193 stldebug=_stldebug 194 LD_LIBRARY_PATH=${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_OFFICE_LIB_DIR}:.:${LD_LIBRARY_PATH} 195 export LD_LIBRARY_PATH 196 ;; 197 198 freebsd*) 199 if [ -n "$OO_SDK_CPP_HOME" ] 200 then 201 SDK_GXX_INCLUDE_PATH=`echo "#include <cstring>" | ${OO_SDK_CPP_HOME}/g++ -E -xc++ - | sed -n '/.*1*"\(.*\)\/cstring".*/s//\1/p' | head -n 1` 202 export SDK_GXX_INCLUDE_PATH 203 fi 204 205 directoryname=freebsd 206 comid=gcc3 207 pltfrm=gcc 208 soext=so 209 exampleout=FREEBSDexample.out 210 platform=FreeBSD 211 stldebug=_stldebug 212 LD_LIBRARY_PATH=${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_OFFICE_LIB_DIR}:.:${LD_LIBRARY_PATH} 213 export LD_LIBRARY_PATH 214 215 if [ -e "/sbin/sysctl" ] 216 then 217 OSVERSION=`/sbin/sysctl -n kern.osreldate` 218 else 219 OSVERSION=`/usr/sbin/sysctl -n kern.osreldate` 220 fi 221 if [ $OSVERSION -lt 500016 ] 222 then 223 PTHREAD_CFLAGS=-D_THREAD_SAFE 224 PTHREAD_LIBS=-pthread 225 export PTHREAD_CFLAGS 226 export PTHREAD_LIBS 227 elif [ $OSVERSION -lt 502102 ] 228 then 229 PTHREAD_CFLAGS=-D_THREAD_SAFE 230 PTHREAD_LIBS=-lc_r 231 export PTHREAD_CFLAGS 232 export PTHREAD_LIBS 233 else 234 PTHREAD_LIBS=-pthread 235 export PTHREAD_LIBS 236 fi 237 ;; 238esac 239 240# Add directory of the SDK tools to the path. 241PATH=${OO_SDK_HOME}/bin:${OO_SDK_OUT}/${exampleout}/bin:${OFFICE_PROGRAM_PATH}:.:${PATH} 242 243# Set the classpath 244CLASSPATH=${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} 245export CLASSPATH 246 247 248# Add directory of the command make to the path, if necessary. 249if [ -n "${OO_SDK_MAKE_HOME}" ] 250then 251 PATH=${OO_SDK_MAKE_HOME}:${PATH} 252 export OO_SDK_MAKE_HOME 253fi 254 255# Add directory of the zip tool to the path, if necessary. 256if [ -n "${OO_SDK_ZIP_HOME}" ] 257then 258 PATH=${OO_SDK_ZIP_HOME}:${PATH} 259 export OO_SDK_ZIP_HOME 260fi 261 262# Add directory of the sed tool to the path, if necessary. 263if [ -n "${OO_SDK_SED_HOME}" ] 264then 265 PATH=${OO_SDK_SED_HOME}:${PATH} 266 export OO_SDK_SED_HOME 267fi 268 269# Add directory of the cat tool to the path, if necessary. 270if [ -n "${OO_SDK_CAT_HOME}" ] 271then 272 PATH=${OO_SDK_CAT_HOME}:${PATH} 273 export OO_SDK_CAT_HOME 274fi 275 276# Add directory of the C++ tools to the path, if necessary. 277if [ -n "${OO_SDK_CPP_HOME}" ] 278then 279 PATH=${OO_SDK_CPP_HOME}:${PATH} 280 export OO_SDK_CPP_HOME 281 282 if [ -n "${OO_SDK_CC_55_OR_HIGHER}" ] 283 then 284 export OO_SDK_CC_55_OR_HIGHER 285 fi 286fi 287 288# Add directory of the Java tools to the path, if necessary. 289if [ -n "${OO_SDK_JAVA_HOME}" ] 290then 291 PATH=${OO_SDK_JAVA_HOME}/${javadir}:${PATH} 292# JAVA_HOME=${OO_SDK_JAVA_HOME} 293# export JAVA_HOME 294 export OO_SDK_JAVA_HOME 295 296 export PATH 297fi 298 299export PATH 300 301if [ "${platform}" = "MacOSX" ] 302then 303# For URE, prepare symbolic links for libraries: 304# Only necessary on MacOSX, on other Unix systems the links are already prepared 305# in the SDK installation. 306 307# cleanup potential old links first 308 rm -f "${OO_SDK_OUT}/${directoryname}/lib/libuno_cppu.${soext}" \ 309 "${OO_SDK_OUT}/${directoryname}/lib/libuno_cppuhelper${comid}.${soext}" \ 310 "${OO_SDK_OUT}/${directoryname}/lib/libuno_sal.${soext}" \ 311 "${OO_SDK_OUT}/${directoryname}/lib/libuno_salhelper${comid}.${soext}" \ 312 "${OO_SDK_OUT}/${directoryname}/lib/libuno_purpenvhelper${comid}.${soext}" 313 314# prepare links 315 if [ "${OFFICE_HOME}" ] 316 then 317 mkdir -p "${OO_SDK_OUT}/${directoryname}/lib" 318 ln -s "${OO_SDK_OFFICE_LIB_DIR}/libuno_cppu.${soext}.3" \ 319 "${OO_SDK_OUT}/${directoryname}/lib/libuno_cppu.${soext}" 320 ln -s "${OO_SDK_OFFICE_LIB_DIR}/libuno_cppuhelper${comid}.${soext}.3" \ 321 "${OO_SDK_OUT}/${directoryname}/lib/libuno_cppuhelper${comid}.${soext}" 322 ln -s "${OO_SDK_OFFICE_LIB_DIR}/libuno_sal.${soext}.3" \ 323 "${OO_SDK_OUT}/${directoryname}/lib/libuno_sal.${soext}" 324 ln -s "${OO_SDK_OFFICE_LIB_DIR}/libuno_salhelper${comid}.${soext}.3" \ 325 "${OO_SDK_OUT}/${directoryname}/lib/libuno_salhelper${comid}.${soext}" 326 ln -s "${OO_SDK_OFFICE_LIB_DIR}/libuno_purpenvhelper${comid}.${soext}.3" \ 327 "${OO_SDK_OUT}/${directoryname}/lib/libuno_purpenvhelper${comid}.${soext}" 328 329 fi 330fi 331 332 333# Prepare shell with all necessary environment variables. 334echo 335echo " ************************************************************************" 336echo " *" 337echo " * SDK environment is prepared for ${platform}" 338echo " *" 339echo " * SDK = $OO_SDK_HOME" 340echo " * Office = $OFFICE_HOME" 341echo " * Make = $OO_SDK_MAKE_HOME" 342echo " * Zip = $OO_SDK_ZIP_HOME" 343echo " * cat = $OO_SDK_CAT_HOME" 344echo " * sed = $OO_SDK_SED_HOME" 345echo " * C++ Compiler = $OO_SDK_CPP_HOME" 346echo " * Java = $OO_SDK_JAVA_HOME" 347echo " * Boost = $OO_SDK_BOOST_HOME" 348echo " * SDK Output directory = $OO_SDK_OUT" 349echo " * Auto deployment = $SDK_AUTO_DEPLOYMENT" 350echo " *" 351echo " ************************************************************************" 352 353echo "]2;Shell prepared with the SDK environment" 354 355