|
1 ## -*-sh-*- |
|
2 ## BEGIN of icu-config-bottom. |
|
3 ## Copyright (c) 2002-2013, International Business Machines Corporation and |
|
4 ## others. All Rights Reserved. |
|
5 |
|
6 ICUUC_FILE="${libdir}/${ICULIBS_COMMON_LIB_NAME}" |
|
7 ICUUC_FILE_A="${libdir}/${ICULIBS_COMMON_LIB_NAME_A}" |
|
8 |
|
9 # echo ENABLE RPATH $ENABLE_RPATH and RPATHLDFLAGS=${RPATH_LDFLAGS} |
|
10 if [ "x$PKGDATA_MODE" = "x" ]; then |
|
11 PKGDATA_MODE=dll |
|
12 fi |
|
13 |
|
14 } |
|
15 |
|
16 ## The actual code of icu-config goes here. |
|
17 |
|
18 ME=`basename "$0"` |
|
19 |
|
20 allflags() |
|
21 { |
|
22 echo " --noverify Don't verify that ICU is actually installed." |
|
23 echo " --bindir Print binary directory path (bin)" |
|
24 echo " --cc Print C compiler used [CC]" |
|
25 echo " --cflags Print C compiler flags [CFLAGS]" |
|
26 echo " --cflags-dynamic Print additional C flags for" |
|
27 echo " building shared libraries." |
|
28 echo " --cppflags Print C Preprocessor flags [CPPFLAGS]" |
|
29 echo " --cppflags-dynamic Print additional C Preprocessor flags for" |
|
30 echo " building shared libraries." |
|
31 echo " --cppflags-searchpath Print only -I include directives (-Iinclude)" |
|
32 echo " --cxx Print C++ compiler used [CXX]" |
|
33 echo " --cxxflags Print C++ compiler flags [CXXFLAGS]" |
|
34 echo " --cxxflags-dynamic Print additional C++ flags for" |
|
35 echo " building shared libraries." |
|
36 echo " --detect-prefix Attempt to detect prefix based on PATH" |
|
37 echo " --exec-prefix Print prefix for executables (/bin)" |
|
38 echo " --exists Return with 0 status if ICU exists else fail" |
|
39 echo " --help, -?, --usage Print this message" |
|
40 echo " --icudata Print shortname of ICU data file (icudt21l)" |
|
41 echo " --icudata-install-dir Print path to install data to - use as --install option to pkgdata(1)" |
|
42 echo " --icudata-mode Print default ICU pkgdata mode (dll) - use as --mode option to pkgdata(1)." |
|
43 echo " --icudatadir Print path to packaged archive data. Can set as [ICU_DATA]" |
|
44 echo " --invoke Print commands to invoke an ICU program" |
|
45 echo " --invoke=<prog> Print commands to invoke an ICU program named <prog> (ex: genrb)" |
|
46 echo " --ldflags Print -L search path and -l libraries to link with ICU [LDFLAGS]. This is for the data, uc (common), and i18n libraries only. " |
|
47 echo " --ldflags-layout Print ICU layout engine link directive. Use in addition to --ldflags" |
|
48 echo " --ldflags-libsonly Same as --ldflags, but only the -l directives" |
|
49 echo " --ldflags-searchpath Print only -L (search path) directive" |
|
50 echo " --ldflags-system Print only system libs ICU links with (-lpthread, -lm)" |
|
51 echo " --ldflags-icuio Print ICU icuio link directive. Use in addition to --ldflags " |
|
52 echo " --ldflags-obsolete Print ICU obsolete link directive. Use in addition to --ldflags. (requires icuapps/obsolete to be built and installed.) " |
|
53 echo " --mandir Print manpage (man) path" |
|
54 echo " --prefix Print PREFIX to icu install (/usr/local)" |
|
55 echo " --prefix=XXX Set prefix to XXX for remainder of command" |
|
56 echo " --sbindir Print system binary path (sbin) " |
|
57 echo " --shared-datadir Print shared data (share) path. This is NOT the ICU data dir." |
|
58 echo " --shlib-c Print the command to compile and build C shared libraries with ICU" |
|
59 echo " --shlib-cc Print the command to compile and build C++ shared libraries with ICU" |
|
60 echo " --sysconfdir Print system config (etc) path" |
|
61 echo " --unicode-version Print version of Unicode data used in ICU ($UNICODE_VERSION)" |
|
62 echo " --version Print ICU version ($VERSION)" |
|
63 echo " --incfile Print path to Makefile.inc" |
|
64 echo " --incpkgdatafile Print path to pkgdata.inc (for -O option of pkgdata)" |
|
65 echo " --install Print path to install-sh" |
|
66 echo " --mkinstalldirs Print path to mkinstalldirs" |
|
67 } |
|
68 |
|
69 ## Print the normal usage message |
|
70 shortusage() |
|
71 { |
|
72 echo "usage: ${ME} " `allflags | cut -c-25 | sed -e 's%.*%[ & ]%'` |
|
73 } |
|
74 |
|
75 |
|
76 usage() |
|
77 { |
|
78 echo "${ME}: icu-config: ICU configuration helper script" |
|
79 echo |
|
80 echo "The most commonly used options will be --cflags, --cxxflags, --cppflags, and --ldflags." |
|
81 echo 'Example (in make): CPFLAGS=$(shell icu-config --cppflags)' |
|
82 echo ' LDFLAGS=$(shell icu-config --ldflags)' |
|
83 echo " (etc).." |
|
84 echo |
|
85 echo "Usage:" |
|
86 allflags |
|
87 |
|
88 echo |
|
89 echo " [Brackets] show MAKE variable equivalents, (parenthesis) show example output" |
|
90 echo |
|
91 echo "Copyright (c) 2002-2013, International Business Machines Corporation and others. All Rights Reserved." |
|
92 echo |
|
93 echo "NOTE: Please consider using the pkg-config (.pc) files instead of icu-config." |
|
94 echo " See: <http://userguide.icu-project.org/howtouseicu#TOC-pkg-config> " |
|
95 } |
|
96 |
|
97 ## Check the sanity of current variables |
|
98 sanity() |
|
99 { |
|
100 if [ ! -f "${ICUUC_FILE}" -a ! -f "${ICUUC_FILE_A}" ] && [ ${IGNORE_ICUUC_FILE_CHECK} = "no" ] && [ ${SANITY} = "sane" ]; |
|
101 then |
|
102 echo "### $ME: Can't find ${ICUUC_FILE} - ICU prefix is wrong." 1>&2 |
|
103 echo "### Try the --prefix= option " 1>&2 |
|
104 echo "### or --detect-prefix" 1>&2 |
|
105 echo "### (If you want to disable this check, use the --noverify option)" 1>&2 |
|
106 echo "### $ME: Exitting." 1>&2 |
|
107 exit 2 |
|
108 fi |
|
109 } |
|
110 |
|
111 ## Main starts here. |
|
112 |
|
113 if [ $# -lt 1 ]; then |
|
114 shortusage |
|
115 exit 1 |
|
116 fi |
|
117 |
|
118 # For certain options (e.g. --detect-prefix) don't check for icuuc library file. |
|
119 |
|
120 IGNORE_ICUUC_FILE_CHECK="no"; |
|
121 |
|
122 SANITY="sane" |
|
123 |
|
124 case "$1" in |
|
125 --noverify) |
|
126 SANITY="nosanity" |
|
127 shift |
|
128 ;; |
|
129 esac |
|
130 |
|
131 case "$1" in |
|
132 *prefix*) |
|
133 IGNORE_ICUUC_FILE_CHECK="yes" |
|
134 ;; |
|
135 esac |
|
136 |
|
137 # Load our variables from autoconf |
|
138 # ALWAYS load twice because of dependencies |
|
139 loaddefs |
|
140 loaddefs |
|
141 |
|
142 if [ $# -gt 0 -a $1 = "--selfcheck" ]; |
|
143 then |
|
144 echo "passed" |
|
145 exit |
|
146 # EXIT for self check |
|
147 fi |
|
148 |
|
149 sanity |
|
150 |
|
151 while [ $# -gt 0 ]; |
|
152 do |
|
153 arg="$1" |
|
154 var=`echo $arg | sed -e 's/^[^=]*=//'` |
|
155 # echo "### processing $arg" 1>&2 |
|
156 case "$arg" in |
|
157 |
|
158 # undocumented. |
|
159 --debug) |
|
160 set -x |
|
161 ;; |
|
162 |
|
163 --noverify) |
|
164 echo "### $ME: Error: --noverify must be the first argument." 1>&2 |
|
165 exit 1 |
|
166 ;; |
|
167 |
|
168 --so) |
|
169 echo $SO |
|
170 ;; |
|
171 |
|
172 --bindir) |
|
173 echo $bindir |
|
174 ;; |
|
175 |
|
176 --libdir) |
|
177 echo $libdir |
|
178 ;; |
|
179 |
|
180 --exists) |
|
181 sanity |
|
182 ;; |
|
183 |
|
184 --sbindir) |
|
185 echo $sbindir |
|
186 ;; |
|
187 |
|
188 --mkinstalldirs) |
|
189 echo ${MKINSTALLDIRS} |
|
190 ;; |
|
191 |
|
192 --install) |
|
193 echo ${INSTALL} |
|
194 ;; |
|
195 |
|
196 --invoke=*) |
|
197 QUOT="\"" |
|
198 CMD="${var}" |
|
199 |
|
200 # If it's not a locally executable command (1st choice) then |
|
201 # search for it in the ICU directories. |
|
202 if [ ! -x ${CMD} ]; then |
|
203 if [ -x ${bindir}/${var} ]; then |
|
204 CMD="${bindir}/${var}" |
|
205 fi |
|
206 if [ -x ${sbindir}/${var} ]; then |
|
207 CMD="${sbindir}/${var}" |
|
208 fi |
|
209 fi |
|
210 |
|
211 echo "env ${QUOT}${LDLIBRARYPATH_ENVVAR}=${libdir}:"'${'"${LDLIBRARYPATH_ENVVAR}"'}'${QUOT} ${CMD} |
|
212 ;; |
|
213 |
|
214 --invoke) |
|
215 QUOT="\"" |
|
216 echo "env ${QUOT}${LDLIBRARYPATH_ENVVAR}=${libdir}:"'${'"${LDLIBRARYPATH_ENVVAR}"'}'${QUOT} |
|
217 ;; |
|
218 |
|
219 --cflags) |
|
220 echo $ECHO_N "${CFLAGS} ${ECHO_C}" |
|
221 ;; |
|
222 |
|
223 --cc) |
|
224 echo $ECHO_N "${CC} ${ECHO_C}" |
|
225 ;; |
|
226 |
|
227 --cxx) |
|
228 echo $ECHO_N "${CXX} ${ECHO_C}" |
|
229 ;; |
|
230 |
|
231 --cxxflags) |
|
232 echo $ECHO_N "${CXXFLAGS} ${ECHO_C}" |
|
233 ;; |
|
234 |
|
235 --cppflags) |
|
236 # Don't echo the -I. - it's unneeded. |
|
237 echo $ECHO_N "${CPPFLAGS} ${ECHO_C}" | sed -e 's/-I. //' |
|
238 ;; |
|
239 |
|
240 --cppflags-searchpath) |
|
241 echo $ECHO_N "-I${prefix}/include ${ECHO_C}" |
|
242 ;; |
|
243 |
|
244 --cppflags-dynamic) |
|
245 echo $ECHO_N "${SHAREDLIBCPPFLAGS} ${ECHO_C}" |
|
246 ;; |
|
247 |
|
248 --cxxflags-dynamic) |
|
249 echo $ECHO_N "${SHAREDLIBCXXFLAGS} ${ECHO_C}" |
|
250 ;; |
|
251 |
|
252 --cflags-dynamic) |
|
253 echo $ECHO_N "${SHAREDLIBCFLAGS} ${ECHO_C}" |
|
254 ;; |
|
255 |
|
256 --ldflags-system) |
|
257 echo $ECHO_N "${LIBS} ${ECHO_C}" |
|
258 ;; |
|
259 |
|
260 --ldflags) |
|
261 echo $ECHO_N "${LDFLAGS} ${ICULIBS} ${LIBS} ${ECHO_C}" |
|
262 # $RPATH_LDFLAGS |
|
263 ;; |
|
264 |
|
265 --ldflags-libsonly) |
|
266 echo $ECHO_N "${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA} ${ECHO_C}" |
|
267 ;; |
|
268 |
|
269 --ldflags-icuio) |
|
270 echo $ECHO_N " ${ICULIBS_ICUIO} ${ECHO_C}" |
|
271 ;; |
|
272 |
|
273 --ldflags-obsolete) |
|
274 echo $ECHO_N "${ICULIBS_OBSOLETE} ${ECHO_C}" |
|
275 ;; |
|
276 |
|
277 --ldflags-toolutil) |
|
278 echo $ECHO_N " ${ICULIBS_TOOLUTIL} ${ECHO_C}" |
|
279 ;; |
|
280 |
|
281 --ldflags-layout) |
|
282 echo $ECHO_N "${ICULIBS_LAYOUT} ${ICULIBS_LAYOUTEX} ${ECHO_C}" |
|
283 ;; |
|
284 |
|
285 --ldflags-searchpath) |
|
286 echo $ECHO_N "-L${libdir} ${ECHO_C}" |
|
287 ;; |
|
288 |
|
289 --detect-prefix) |
|
290 HERE=`echo $0 | sed -e "s/$ME//g"` |
|
291 if [ -f "${HERE}/../lib/${ICULIBS_COMMON_LIB_NAME}" -o -f "${HERE}/../lib/${ICULIBS_COMMON_LIB_NAME_A}" ]; then |
|
292 prefix="${HERE}/.." |
|
293 echo "## Using --prefix=${prefix}" 1>&2 |
|
294 fi |
|
295 loaddefs |
|
296 loaddefs |
|
297 ;; |
|
298 |
|
299 --exec-prefix) |
|
300 echo $exec_prefix |
|
301 ;; |
|
302 |
|
303 --prefix) |
|
304 echo $prefix |
|
305 ;; |
|
306 |
|
307 --prefix=*) |
|
308 prefix=$var |
|
309 loaddefs |
|
310 loaddefs |
|
311 ;; |
|
312 |
|
313 --sysconfdir) |
|
314 echo $sysconfdir |
|
315 ;; |
|
316 |
|
317 --mandir) |
|
318 echo $mandir |
|
319 ;; |
|
320 |
|
321 --shared-datadir) |
|
322 echo $ECHO_N "${datadir} ${ECHO_C}" |
|
323 ;; |
|
324 |
|
325 --incfile) |
|
326 echo $ECHO_N "${pkglibdir}/Makefile.inc ${ECHO_C}" |
|
327 ;; |
|
328 |
|
329 --incpkgdatafile) |
|
330 echo $ECHO_N "${pkglibdir}/pkgdata.inc ${ECHO_C}" |
|
331 ;; |
|
332 |
|
333 --icudata) |
|
334 echo $ECHO_N "${ICUDATA_NAME} ${ECHO_C}" |
|
335 ;; |
|
336 |
|
337 --icudata-mode) |
|
338 echo $ECHO_N "${PKGDATA_MODE} ${ECHO_C}" |
|
339 ;; |
|
340 |
|
341 --icudata-install-dir) |
|
342 echo $ECHO_N "${ICUPKGDATA_DIR} ${ECHO_C}" |
|
343 ;; |
|
344 |
|
345 --icudatadir) |
|
346 echo $ECHO_N "${ICUDATA_DIR} ${ECHO_C}" |
|
347 ;; |
|
348 |
|
349 --shlib-c) |
|
350 echo $ECHO_N "${SHLIB_c} ${ECHO_C}" |
|
351 ;; |
|
352 |
|
353 --shlib-cc) |
|
354 echo $ECHO_N "${SHLIB_cc} ${ECHO_C}" |
|
355 ;; |
|
356 |
|
357 --version) |
|
358 echo $ECHO_N $VERSION |
|
359 ;; |
|
360 |
|
361 --unicode-version) |
|
362 echo $ECHO_N $UNICODE_VERSION |
|
363 ;; |
|
364 |
|
365 --host) |
|
366 echo $host |
|
367 exit 0 |
|
368 ;; |
|
369 |
|
370 --help) |
|
371 usage |
|
372 exit 0 |
|
373 ;; |
|
374 |
|
375 --usage) |
|
376 usage |
|
377 exit 0 |
|
378 ;; |
|
379 |
|
380 # --enable-rpath=*) |
|
381 # ENABLE_RPATH=$var |
|
382 # loaddefs |
|
383 # ;; |
|
384 |
|
385 -?) |
|
386 usage |
|
387 exit 0 |
|
388 ;; |
|
389 |
|
390 *) |
|
391 echo ${ME}: ERROR Unknown Option $arg 1>&2 |
|
392 echo 1>&2 |
|
393 shortusage 1>&2 |
|
394 echo "### $ME: Exitting." 1>&2 |
|
395 exit 1; |
|
396 ;; |
|
397 esac |
|
398 shift |
|
399 |
|
400 # Reset the ignore icuuc file check flag |
|
401 if [ $IGNORE_ICUUC_FILE_CHECK = "yes" ]; then |
|
402 IGNORE_ICUUC_FILE_CHECK="no" |
|
403 sanity |
|
404 fi |
|
405 done |
|
406 echo |
|
407 # Check once before we quit (will check last used prefix) |
|
408 sanity |
|
409 ## END of icu-config-bottom |
|
410 |
|
411 exit 0 |