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 soext=so 155 exampleout=SOLARISexample.out 156 stldebug=_debug 157 LD_LIBRARY_PATH=${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_OFFICE_LIB_DIR}:.:${LD_LIBRARY_PATH} 158 export LD_LIBRARY_PATH 159 ;; 160 161 darwin*) 162 if [ -n "$OO_SDK_CPP_HOME" ] 163 then 164 SDK_GXX_INCLUDE_PATH=`echo "#include <cstring>" | ${OO_SDK_CPP_HOME}/clang++ -E -xc++ - | sed -n '/.*1*"\(.*\)\/cstring".*/s//\1/p' | head -n 1` 165 export SDK_GXX_INCLUDE_PATH 166 fi 167 168 directoryname=macosx 169 comid=s5abi 170 soext=dylib 171 exampleout=MACOSXexample.out 172 platform=MacOSX 173 stldebug=_stldebug 174 DYLD_LIBRARY_PATH=/usr/lib:${OO_SDK_OUT}/${directoryname}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_OFFICE_LIB_DIR}:.:${DYLD_LIBRARY_PATH} 175 # Below for https://bz.apache.org/ooo/show_bug.cgi?id=127965 176 PATH=${PATH}:/usr/local/bin 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 soext=so 190 exampleout=LINUXexample.out 191 platform=Linux 192 stldebug=_stldebug 193 LD_LIBRARY_PATH=${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_OFFICE_LIB_DIR}:.:${LD_LIBRARY_PATH} 194 export LD_LIBRARY_PATH 195 ;; 196 197 freebsd*) 198 if [ -n "$OO_SDK_CPP_HOME" ] 199 then 200 SDK_GXX_INCLUDE_PATH=`echo "#include <cstring>" | ${OO_SDK_CPP_HOME}/g++ -E -xc++ - | sed -n '/.*1*"\(.*\)\/cstring".*/s//\1/p' | head -n 1` 201 export SDK_GXX_INCLUDE_PATH 202 fi 203 204 directoryname=freebsd 205 comid=gcc3 206 soext=so 207 exampleout=FREEBSDexample.out 208 platform=FreeBSD 209 stldebug=_stldebug 210 LD_LIBRARY_PATH=${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_OFFICE_LIB_DIR}:.:${LD_LIBRARY_PATH} 211 export LD_LIBRARY_PATH 212 213 if [ -e "/sbin/sysctl" ] 214 then 215 OSVERSION=`/sbin/sysctl -n kern.osreldate` 216 else 217 OSVERSION=`/usr/sbin/sysctl -n kern.osreldate` 218 fi 219 if [ $OSVERSION -lt 500016 ] 220 then 221 PTHREAD_CFLAGS=-D_THREAD_SAFE 222 PTHREAD_LIBS=-pthread 223 export PTHREAD_CFLAGS 224 export PTHREAD_LIBS 225 elif [ $OSVERSION -lt 502102 ] 226 then 227 PTHREAD_CFLAGS=-D_THREAD_SAFE 228 PTHREAD_LIBS=-lc_r 229 export PTHREAD_CFLAGS 230 export PTHREAD_LIBS 231 else 232 PTHREAD_LIBS=-pthread 233 export PTHREAD_LIBS 234 fi 235 ;; 236esac 237 238# Add directory of the SDK tools to the path. 239PATH=${OO_SDK_HOME}/bin:${OO_SDK_OUT}/${exampleout}/bin:${OFFICE_PROGRAM_PATH}:.:${PATH} 240 241# Set the classpath 242CLASSPATH=${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} 243export CLASSPATH 244 245 246# Add directory of the command make to the path, if necessary. 247if [ -n "${OO_SDK_MAKE_HOME}" ] 248then 249 PATH=${OO_SDK_MAKE_HOME}:${PATH} 250 export OO_SDK_MAKE_HOME 251fi 252 253# Add directory of the zip tool to the path, if necessary. 254if [ -n "${OO_SDK_ZIP_HOME}" ] 255then 256 PATH=${OO_SDK_ZIP_HOME}:${PATH} 257 export OO_SDK_ZIP_HOME 258fi 259 260# Add directory of the sed tool to the path, if necessary. 261if [ -n "${OO_SDK_SED_HOME}" ] 262then 263 PATH=${OO_SDK_SED_HOME}:${PATH} 264 export OO_SDK_SED_HOME 265fi 266 267# Add directory of the cat tool to the path, if necessary. 268if [ -n "${OO_SDK_CAT_HOME}" ] 269then 270 PATH=${OO_SDK_CAT_HOME}:${PATH} 271 export OO_SDK_CAT_HOME 272fi 273 274# Add directory of the C++ tools to the path, if necessary. 275if [ -n "${OO_SDK_CPP_HOME}" ] 276then 277 PATH=${OO_SDK_CPP_HOME}:${PATH} 278 export OO_SDK_CPP_HOME 279 280 if [ -n "${OO_SDK_CC_55_OR_HIGHER}" ] 281 then 282 export OO_SDK_CC_55_OR_HIGHER 283 fi 284fi 285 286# Add directory of the Java tools to the path, if necessary. 287if [ -n "${OO_SDK_JAVA_HOME}" ] 288then 289 PATH=${OO_SDK_JAVA_HOME}/${javadir}:${PATH} 290# JAVA_HOME=${OO_SDK_JAVA_HOME} 291# export JAVA_HOME 292 export OO_SDK_JAVA_HOME 293 294 export PATH 295fi 296 297export PATH 298 299if [ "${platform}" = "MacOSX" ] 300then 301# For URE, prepare symbolic links for libraries: 302# Only necessary on MacOSX, on other Unix systems the links are already prepared 303# in the SDK installation. 304 305# cleanup potential old links first 306 rm -f "${OO_SDK_OUT}/${directoryname}/lib/libuno_cppu.${soext}" \ 307 "${OO_SDK_OUT}/${directoryname}/lib/libuno_cppuhelper${comid}.${soext}" \ 308 "${OO_SDK_OUT}/${directoryname}/lib/libuno_sal.${soext}" \ 309 "${OO_SDK_OUT}/${directoryname}/lib/libuno_salhelper${comid}.${soext}" \ 310 "${OO_SDK_OUT}/${directoryname}/lib/libuno_purpenvhelper${comid}.${soext}" 311 312# prepare links 313 if [ "${OFFICE_HOME}" ] 314 then 315 mkdir -p "${OO_SDK_OUT}/${directoryname}/lib" 316 ln -s "${OO_SDK_OFFICE_LIB_DIR}/libuno_cppu.${soext}.3" \ 317 "${OO_SDK_OUT}/${directoryname}/lib/libuno_cppu.${soext}" 318 ln -s "${OO_SDK_OFFICE_LIB_DIR}/libuno_cppuhelper${comid}.${soext}.3" \ 319 "${OO_SDK_OUT}/${directoryname}/lib/libuno_cppuhelper${comid}.${soext}" 320 ln -s "${OO_SDK_OFFICE_LIB_DIR}/libuno_sal.${soext}.3" \ 321 "${OO_SDK_OUT}/${directoryname}/lib/libuno_sal.${soext}" 322 ln -s "${OO_SDK_OFFICE_LIB_DIR}/libuno_salhelper${comid}.${soext}.3" \ 323 "${OO_SDK_OUT}/${directoryname}/lib/libuno_salhelper${comid}.${soext}" 324 ln -s "${OO_SDK_OFFICE_LIB_DIR}/libuno_purpenvhelper${comid}.${soext}.3" \ 325 "${OO_SDK_OUT}/${directoryname}/lib/libuno_purpenvhelper${comid}.${soext}" 326 327 fi 328fi 329 330 331# Prepare shell with all necessary environment variables. 332echo 333echo " ************************************************************************" 334echo " *" 335echo " * SDK environment is prepared for ${platform}" 336echo " *" 337echo " * SDK = $OO_SDK_HOME" 338echo " * Office = $OFFICE_HOME" 339echo " * Make = $OO_SDK_MAKE_HOME" 340echo " * Zip = $OO_SDK_ZIP_HOME" 341echo " * cat = $OO_SDK_CAT_HOME" 342echo " * sed = $OO_SDK_SED_HOME" 343echo " * C++ Compiler = $OO_SDK_CPP_HOME" 344echo " * Java = $OO_SDK_JAVA_HOME" 345echo " * Boost = $OO_SDK_BOOST_HOME" 346echo " * SDK Output directory = $OO_SDK_OUT" 347echo " * Auto deployment = $SDK_AUTO_DEPLOYMENT" 348echo " *" 349echo " * PATH = $PATH" 350if [ "${platform}" = "MacOSX" ] 351then 352 echo " * DYLD_LIBRARY_PATH = $DYLD_LIBRARY_PATH" 353else 354 echo " * LD_LIBRARY_PATH = $LD_LIBRARY_PATH" 355fi 356echo " *" 357echo " ************************************************************************" 358 359echo "]2;Shell prepared with the SDK environment" 360 361