summaryrefslogtreecommitdiff
path: root/odk/setsdkenv_unix.csh.in
blob: 567f40653328be928673256b07a8f077df135bb7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
#! /bin/csh
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This file incorporates work covered by the following license notice:
#
#   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 .
#

# This script 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
setenv OO_SDK_NAME @OO_SDK_NAME@

# Installation directory of the Software Development Kit.
# Example: setenv OO_SDK_HOME /opt/libreoffice/basis3.4/sdk
setenv OO_SDK_HOME '@OO_SDK_HOME@'

# Office installation directory.
# Example: set OFFICE_HOME=/opt/libreoffice
setenv OFFICE_HOME '@OFFICE_HOME@'

# URE installation directory.
# Example: setenv OO_SDK_URE_HOME /opt/libreoffice/ure
setenv OO_SDK_URE_HOME '@OO_SDK_URE_HOME@'

# Directory of the make command.
# Example: setenv OO_SDK_MAKE_HOME /usr/bin
setenv OO_SDK_MAKE_HOME @OO_SDK_MAKE_HOME@

# Directory of the zip command.
# Example: setenv OO_SDK_ZIP_HOME /usr/bin
setenv OO_SDK_ZIP_HOME @OO_SDK_ZIP_HOME@

# Directory of the C++ compiler.
# Example: setenv OO_SDK_CPP_HOME /usr/bin
setenv OO_SDK_CPP_HOME @OO_SDK_CPP_HOME@

# Solaris only
setenv OO_SDK_CC_55_OR_HIGHER @OO_SDK_CC_55_OR_HIGHER@

# Directory of the Java SDK.
# Example: setenv OO_SDK_JAVA_HOME "/usr/jdk/jdk1.6.0_10"
setenv OO_SDK_JAVA_HOME @OO_SDK_JAVA_HOME@

# Special output directory
# Example: setenv OO_SDK_OUTPUT_DIR "$HOME"
setenv OO_SDK_OUTPUT_DIR @OO_SDK_OUTPUT_DIR@

# Environment variable to enable auto deployment of example components
# Example: set SDK_AUTO_DEPLOYMENT=YES
setenv SDK_AUTO_DEPLOYMENT @SDK_AUTO_DEPLOYMENT@

# Get the operating system.
set sdk_platform=`${OO_SDK_HOME}/config.guess | cut -d"-" -f3,4`

# Set the directory name.
set programdir=program
set javadir=bin
switch (${sdk_platform})
  case "darwin*":
    set programdir="Contents/MacOS"
    set javacdir=Commands
    breaksw
endsw


# Set office program path.
if ( "${OFFICE_HOME}" != "" ) then
    setenv OFFICE_PROGRAM_PATH "${OFFICE_HOME}/${programdir}"
endif


# Set UNO path, necessary to ensure that the cpp examples using the
# new UNO bootstrap mechanism use the configured office installation.
if ( ${?OFFICE_PROGRAM_PATH} ) then
    setenv UNO_PATH "${OFFICE_PROGRAM_PATH}"
endif

if ( "${OO_SDK_URE_HOME}" != "" ) then
    setenv OO_SDK_URE_BIN_DIR "${OO_SDK_URE_HOME}/bin"
    setenv OO_SDK_URE_LIB_DIR "${OO_SDK_URE_HOME}/lib"
    setenv OO_SDK_URE_JAVA_DIR "${OO_SDK_URE_HOME}/share/java"
else
    setenv OO_SDK_URE_BIN_DIR "${OFFICE_PROGRAM_PATH}"
    setenv OO_SDK_URE_LIB_DIR "${OFFICE_PROGRAM_PATH}"
    setenv OO_SDK_URE_JAVA_DIR "${OFFICE_PROGRAM_PATH}/classes"
endif

# Set SDK example output directory
setenv OO_SDK_OUT ${OO_SDK_HOME}
if ( $?OO_SDK_OUTPUT_DIR ) then
    setenv OO_SDK_OUT ${OO_SDK_OUTPUT_DIR}/${OO_SDK_NAME}
endif

# check platform and set appropriate variables
switch (`${OO_SDK_HOME}/config.guess | cut -d"-" -f3,4`)
  case "solaris*":
    if ( `${OO_SDK_HOME}/config.guess | cut -d"-" -f1` == "sparc" ) then
        set directoryname=solsparc
	set platform=Solaris Sparc
    else
        set directoryname=solintel
	set platform=Solaris Intel
    endif
    set comid=C52
    set pltfrm=sunpro
    set soext=so
    set exampleout=SOLARISexample.out

    # set LD_LIBRARY_PATH
    if ( $?LD_LIBRARY_PATH == 0) then
	setenv LD_LIBRARY_PATH ${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_URE_LIB_DIR}:.
    else
	setenv LD_LIBRARY_PATH ${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_URE_LIB_DIR}:.:${LD_LIBRARY_PATH}
    endif
  breaksw

  case "linux-gnu":
    if ( $?OO_SDK_CPP_HOME == 0) then
	set sdk_gxx_include_path=`echo "#include <cstring>" | ${OO_SDK_CPP_HOME}/g++ -E -xc++ - | sed -n '/.*1*"\(.*\)\/cstring".*/s//\1/p' | head -n 1`
	setenv SDK_GXX_INCLUDE_PATH ${sdk_gxx_include_path}
    endif

    set directoryname=linux
    set comid=gcc3
    set pltfrm=gcc
    set soext=so
    set exampleout=LINUXexample.out
    set platform=Linux

    # set LD_LIBRARY_PATH
    if ( $?LD_LIBRARY_PATH == 0) then
	setenv LD_LIBRARY_PATH ${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_URE_LIB_DIR}:.
    else
	setenv LD_LIBRARY_PATH ${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_URE_LIB_DIR}:.:${LD_LIBRARY_PATH}
    endif
  breaksw

  case "darwin*":
    if ( $?OO_SDK_CPP_HOME == 0) then
	set sdk_gxx_include_path=`echo "#include <cstring>" | ${OO_SDK_CPP_HOME}/g++ -E -xc++ - | sed -n '/.*1*"\(.*\)\/cstring".*/s//\1/p' | head -n 1`
	setenv SDK_GXX_INCLUDE_PATH ${sdk_gxx_include_path}
    endif

    set directoryname=macosx
    set comid=gcc3
    set pltfrm=gcc
    set soext=dylib
    set exampleout=MACOSXexample.out
    set platform=MacOSX

    # set DYLD_LIBRARY_PATH
    if ( $?DYLD_LIBRARY_PATH == 0) then
	setenv DYLD_LIBRARY_PATH ${OO_SDK_OUT}/${directoryname}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_URE_LIB_DIR}:.
    else
	setenv DYLD_LIBRARY_PATH ${OO_SDK_OUT}/${directoryname}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_URE_LIB_DIR}:.:${DYLD_LIBRARY_PATH}
    endif
  breaksw

  case "freebsd*":
    if ( $?OO_SDK_CPP_HOME == 0) then
	set sdk_gxx_include_path=`echo "#include <cstring>" | ${OO_SDK_CPP_HOME}/g++ -E -xc++ - | sed -n '/.*1*"\(.*\)\/cstring".*/s//\1/p' | head -n 1`
	setenv SDK_GXX_INCLUDE_PATH ${sdk_gxx_include_path}
    endif

    set directoryname=freebsd
    set comid=gcc3
    set pltfrm=gcc
    set soext=so
    set exampleout=FREEBSDexample.out
    set platform=FreeBSD

    # set LD_LIBRARY_PATH
    if ( $?LD_LIBRARY_PATH == 0) then
	setenv LD_LIBRARY_PATH ${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_URE_LIB_DIR}:.
    else
	setenv LD_LIBRARY_PATH ${OO_SDK_HOME}/lib:${OO_SDK_OUT}/${exampleout}/lib:${OO_SDK_URE_LIB_DIR}:.:${LD_LIBRARY_PATH}
    endif

    if ( -e "/sbin/sysctl" ) then
	set OSVERSION=`/sbin/sysctl  -n kern.osreldate`
    else
	set OSVERSION=`/usr/sbin/sysctl  -n kern.osreldate`
    endif
    
    if ( ${OSVERSION} < 500016 ) then
	setenv PTHREAD_CFLAGS -D_THREAD_SAFE
	setenv PTHREAD_LIBS -pthread
    else if ( ${OSVERSION} < 502102 ) then
	setenv PTHREAD_CFLAGS -D_THREAD_SAFE
	setenv PTHREAD_LIBS -lc_r
    else	
	setenv PTHREAD_LIBS -pthread
    endif
  breaksw
endsw

# set PATH
if ( $?PATH == 0) then
    setenv PATH ${OO_SDK_ZIP_HOME}:${OO_SDK_MAKE_HOME}:${OO_SDK_HOME}/bin:${OO_SDK_OUT}/${exampleout}:${OO_SDK_URE_BIN_DIR}:.
else
    setenv PATH ${OO_SDK_ZIP_HOME}:${OO_SDK_MAKE_HOME}:${OO_SDK_HOME}/bin:${OO_SDK_OUT}/${exampleout}:${OO_SDK_URE_BIN_DIR}:.:${PATH}
endif

# Set CLASSPATH
if ( ${?OFFICE_PROGRAM_PATH} ) then
    if ( ${?CLASSPATH} == 0 ) then
        setenv CLASSPATH "${OFFICE_PROGRAM_PATH}/classes/unoil.jar"
    else
        setenv CLASSPATH "${OFFICE_PROGRAM_PATH}/classes/unoil.jar:${CLASSPATH}"
    endif
endif
if ( $?CLASSPATH == 0) then
    setenv 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"
else
    setenv 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:${CLASSPATH}"
endif

if ( $?OO_SDK_CPP_HOME == 0) then
    setenv PATH ${OO_SDK_CPP_HOME}:${PATH}
endif

if ( $?OO_SDK_JAVA_HOME == 0) then
    setenv PATH ${OO_SDK_JAVA_HOME}:${PATH}
endif


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.so" \
	"${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 ( "${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}"
    endif
endif

 
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}"
if ( $?OO_SDK_CPP_HOME == 0) then
echo " * C++ Compiler = "
else
echo " * C++ Compiler = ${OO_SDK_CPP_HOME}"
endif
if ( $?OO_SDK_JAVA_HOME == 0) then
echo " * Java = "
else
echo " * Java = ${OO_SDK_JAVA_HOME}"
endif
if ( $?OO_SDK_OUTPUT_DIR == 0) then
echo " * Special Output directory = "
else
echo " * SDK Output directory = ${OO_SDK_OUT}"
endif
echo " * Auto deployment = ${SDK_AUTO_DEPLOYMENT}"
echo " *"
echo " ************************************************************************"

unset sdkdir
unset directoryname
unset comid
unset exampleout
unset platform

echo "]2;Shell prepared with the SDK environment"