|
1 # -*-autoconf-*- |
|
2 AC_COPYRIGHT([ Copyright (c) 1999-2013, International Business Machines Corporation and others. All Rights Reserved. ]) |
|
3 # configure.in for ICU |
|
4 # Stephen F. Booth, heavily modified by Yves and others |
|
5 |
|
6 # Check for autoconf version |
|
7 AC_PREREQ(2.68) |
|
8 |
|
9 # Process this file with autoconf to produce a configure script |
|
10 AC_INIT([ICU]) |
|
11 |
|
12 #TODO: IcuBug:8502 |
|
13 #AC_INIT([ICU], |
|
14 # m4_esyscmd_s([sed -n 's/^[ ]*#[ ]*define[ ]*U_ICU_VERSION[ ]*"\([^"]*\)".*/\1/p' "./common/unicode/uvernum.h]"), |
|
15 # [http://icu-project.org/bugs], |
|
16 # [International Components for Unicode], |
|
17 # [http://icu-project.org]) |
|
18 |
|
19 AC_CONFIG_SRCDIR([common/unicode/utypes.h]) |
|
20 |
|
21 PACKAGE="icu" |
|
22 AC_SUBST(PACKAGE) |
|
23 |
|
24 # Use custom echo test for newline option |
|
25 # Current autoconf (2.65) gives incorrect echo newline option |
|
26 # for icu-config |
|
27 # This may be removed later - mow (June 17, 2010) |
|
28 ICU_ECHO_C= ICU_ECHO_N= ICU_ECHO_T= |
|
29 case `/bin/sh -c "echo -n x"` in |
|
30 -n*) |
|
31 case `/bin/sh -c "echo 'x\c'"` in |
|
32 *c*) ICU_ECHO_T=' ';; # ECHO_T is single tab character. |
|
33 *) ICU_ECHO_C='\c';; |
|
34 esac;; |
|
35 *) |
|
36 ICU_ECHO_N='-n';; |
|
37 esac |
|
38 AC_SUBST(ICU_ECHO_N) |
|
39 AC_SUBST(ICU_ECHO_C) |
|
40 AC_SUBST(ICU_ECHO_T) |
|
41 |
|
42 AC_MSG_CHECKING(for ICU version numbers) |
|
43 |
|
44 # Get the ICU version from uversion.h or other headers |
|
45 geticuversion() { |
|
46 [sed -n 's/^[ ]*#[ ]*define[ ]*U_ICU_VERSION[ ]*"\([^"]*\)".*/\1/p' "$@"] |
|
47 } |
|
48 getuversion() { |
|
49 [sed -n 's/^[ ]*#[ ]*define[ ]*U_UNICODE_VERSION[ ]*"\([^"]*\)".*/\1/p' "$@"] |
|
50 } |
|
51 VERSION=`geticuversion $srcdir/common/unicode/uvernum.h` |
|
52 if test x"$VERSION" = x; then |
|
53 as_fn_error $? "Cannot determine ICU version number from uvernum.h header file" "$LINENO" 5 |
|
54 fi |
|
55 |
|
56 #TODO: IcuBug:8502 |
|
57 #if test "$VERSION" != "$PACKAGE_VERSION"; then |
|
58 # AC_MSG_ERROR([configure was generated for $PACKAGE_VERSION but uvernum.h has $VERSION - please rerun autoconf]) |
|
59 #fi |
|
60 |
|
61 UNICODE_VERSION=`getuversion $srcdir/common/unicode/uchar.h` |
|
62 if test x"$UNICODE_VERSION" = x; then |
|
63 AC_MSG_ERROR([Cannot determine Unicode version number from uchar.h header file]) |
|
64 fi |
|
65 # Compute a reasonable library version from the release version. This is |
|
66 # very bad, but that's wanted... We want to make sure that the LIB_VERSION |
|
67 # has at least a dot in it, so we'll add a .0 if needed. |
|
68 #[LIB_VERSION=`echo $VERSION | sed -e 's/\.//' -e 's/^\([^.]*\)$/\1.0/'`] |
|
69 LIB_VERSION=$VERSION |
|
70 LIB_VERSION_MAJOR=`echo $LIB_VERSION | sed 's/\..*//'` |
|
71 AC_SUBST(VERSION) |
|
72 AC_SUBST(LIB_VERSION) |
|
73 AC_SUBST(LIB_VERSION_MAJOR) |
|
74 AC_MSG_RESULT([release $VERSION, library $LIB_VERSION, unicode version $UNICODE_VERSION]) |
|
75 |
|
76 AC_SUBST(UNICODE_VERSION) |
|
77 |
|
78 # Determine the host system |
|
79 AC_CANONICAL_HOST |
|
80 |
|
81 AC_SUBST(CPPFLAGS) |
|
82 |
|
83 # This variable is needed on z/OS because the C++ compiler only recognizes .C |
|
84 _CXX_CXXSUFFIX=cpp |
|
85 export _CXX_CXXSUFFIX |
|
86 |
|
87 # Accumulate #defines |
|
88 |
|
89 # CONFIG_CPPFLAGS: These are defines that are set for ICU Build time only. |
|
90 # They are only needed for building ICU itself. Example: platform stuff |
|
91 CONFIG_CPPFLAGS="" |
|
92 # UCONFIG_CPPFLAGS: These are defines which are set for ICU build time, |
|
93 # and also a notice is output that they need to be set |
|
94 # for end-users of ICU also. uconfig.h.prepend is generated |
|
95 # with, for example, "#define U_DISABLE_RENAMING 1" |
|
96 # Example: ICU configuration stuff |
|
97 UCONFIG_CPPFLAGS="" |
|
98 # UCONFIG_CFLAGS: contains a copy of anything that needs to be set by end users |
|
99 # such as -std |
|
100 UCONFIG_CFLAGS="" |
|
101 |
|
102 # Check whether to build debug libraries |
|
103 AC_MSG_CHECKING([whether to build debug libraries]) |
|
104 enabled=no |
|
105 ENABLE_DEBUG=0 |
|
106 AC_ARG_ENABLE(debug, |
|
107 [ --enable-debug build debug libraries and enable the U_DEBUG define [default=no]], |
|
108 [ case "${enableval}" in |
|
109 yes|"") enabled=yes; ENABLE_DEBUG=1; CONFIG_CPPFLAGS="$CONFIG_CPPFLAGS -DU_DEBUG=1" ;; |
|
110 *) ;; |
|
111 esac], |
|
112 ) |
|
113 AC_MSG_RESULT($enabled) |
|
114 AC_SUBST(ENABLE_DEBUG) |
|
115 |
|
116 # Check whether to build release libraries |
|
117 AC_MSG_CHECKING([whether to build release libraries]) |
|
118 enabled=yes |
|
119 ENABLE_RELEASE=1 |
|
120 AC_ARG_ENABLE(release, |
|
121 [ --enable-release build release libraries [default=yes]], |
|
122 [ case "${enableval}" in |
|
123 no) enabled=no; ENABLE_RELEASE=0 ;; |
|
124 *) ;; |
|
125 esac], |
|
126 ) |
|
127 AC_MSG_RESULT($enabled) |
|
128 AC_SUBST(ENABLE_RELEASE) |
|
129 |
|
130 # Don't use the default C/CXXFLags |
|
131 : ${CFLAGS=""} |
|
132 : ${CXXFLAGS=""} |
|
133 |
|
134 # Checks for compilers |
|
135 AC_PROG_CC([clang gcc cc c99 c89 xlc_r xlc cl.exe icc]) |
|
136 # Make sure that we try clang++ first, which provides C++11 support. |
|
137 # The g++ compiler is less likely to support C++11. |
|
138 AC_PROG_CXX([clang++ g++ c++ gpp xlC_r xlC aCC CC cxx cc++ cl.exe icc FCC KCC RCC]) |
|
139 |
|
140 # Ensure that if CXXFLAGS/CFLAGS were not set when calling configure, set it correctly based on (enable/disable) debug or release option |
|
141 # The release mode use is the default one for autoconf |
|
142 if test "$GCC" = yes; then |
|
143 if test "$CFLAGS" = ""; then |
|
144 if test "$ENABLE_DEBUG" = 1; then |
|
145 CFLAGS=-g |
|
146 fi |
|
147 if test "$ENABLE_RELEASE" = 1; then |
|
148 CFLAGS="$CFLAGS -O2" |
|
149 fi |
|
150 fi |
|
151 if test "$CXXFLAGS" = ""; then |
|
152 if test "$ENABLE_DEBUG" = 1; then |
|
153 CXXFLAGS=-g |
|
154 fi |
|
155 if test "$ENABLE_RELEASE" = 1; then |
|
156 CXXFLAGS="$CXXFLAGS -O2" |
|
157 fi |
|
158 fi |
|
159 fi |
|
160 |
|
161 AC_PROG_CPP |
|
162 |
|
163 AC_PROG_INSTALL |
|
164 |
|
165 AC_SUBST(cross_compiling) |
|
166 |
|
167 dnl use the pld hack to get ac_fn_cxx_try_link defined globally and not local |
|
168 AC_LANG_PUSH([C++]) |
|
169 AC_LINK_IFELSE([AC_LANG_PROGRAM()]) |
|
170 AC_LANG_POP([C++]) |
|
171 |
|
172 # make sure install is relative to srcdir - if a script |
|
173 if test "$srcdir" = "."; then |
|
174 # If srcdir isn't just ., then (srcdir) is already prepended. |
|
175 if test "${ac_install_sh}" = "${INSTALL}"; then |
|
176 INSTALL="\\\$(top_srcdir)/${ac_install_sh}" |
|
177 fi |
|
178 fi |
|
179 |
|
180 #AC_CHECK_PROG(AUTOCONF, autoconf, autoconf, true) |
|
181 #AC_CHECK_PROG(STRIP, strip, strip, true) |
|
182 |
|
183 # Check for the platform make |
|
184 AC_PATH_PROGS(U_MAKE, gmake gnumake, make) |
|
185 AC_SUBST(U_MAKE) |
|
186 |
|
187 |
|
188 AC_ARG_WITH(cross-build, |
|
189 [ --with-cross-build=dir specify an absolute path to the build directory of an ICU built for the current platform [default=no cross dir]], |
|
190 [cross_buildroot="${withval}"], |
|
191 [cross_buildroot=""]) |
|
192 |
|
193 if test "X$cross_buildroot" = "X"; then |
|
194 if test "$cross_compiling" = "yes"; then |
|
195 AC_MSG_ERROR([Error! Cross compiling but no --with-cross-build option specified - please supply the path to an executable ICU's build root]) |
|
196 dnl ' |
|
197 fi |
|
198 else |
|
199 if test -f "${cross_buildroot}/config/icucross.mk"; then |
|
200 AC_MSG_RESULT([Using cross buildroot: $cross_buildroot]) |
|
201 else |
|
202 if test -d "${cross_buildroot}"; then |
|
203 AC_MSG_ERROR([${cross_buildroot}/config/icucross.mk not found. Please build ICU in ${cross_buildroot} first.]) |
|
204 else |
|
205 AC_MSG_ERROR([No such directory ${cross_buildroot} supplied as the argument to --with-cross-build. Use an absolute path.]) |
|
206 fi |
|
207 fi |
|
208 fi |
|
209 AC_SUBST(cross_buildroot) |
|
210 |
|
211 # Check for doxygen to generate documentation |
|
212 AC_PATH_PROG(DOXYGEN,doxygen,,$PATH:/usr/local/bin:/usr/bin) |
|
213 |
|
214 # Check that the linker is usable |
|
215 ICU_PROG_LINK |
|
216 |
|
217 # Determine the executable suffix |
|
218 # We don't use AC_EXEEXT because some compilers output separate debugging |
|
219 # files, which confuses the AC_EXEEXT macro. |
|
220 AC_MSG_CHECKING(checking for executable suffix) |
|
221 case "${host}" in |
|
222 *-*-cygwin*|*-*-mingw*) EXEEXT=.exe ;; |
|
223 *) EXEEXT="" ;; |
|
224 esac |
|
225 ac_exeext=$EXEEXT |
|
226 AC_MSG_RESULT($EXEEXT) |
|
227 AC_SUBST(EXEEXT) |
|
228 |
|
229 # Determine how strict we want to be when compiling |
|
230 AC_CHECK_STRICT_COMPILE |
|
231 |
|
232 # Check if we can build and use 64-bit libraries |
|
233 AC_CHECK_64BIT_LIBS |
|
234 AC_SUBST(ARFLAGS) |
|
235 AC_SUBST(COMPILE_LINK_ENVVAR) |
|
236 |
|
237 # Determine the Makefile fragment |
|
238 ICU_CHECK_MH_FRAG |
|
239 |
|
240 # Checks for libraries and other host specific stuff |
|
241 # On HP/UX, don't link to -lm from a shared lib because it isn't |
|
242 # PIC (at least on 10.2) |
|
243 case "${host}" in |
|
244 *-*-hpux*) AC_CHECK_LIB(m, floor, LIB_M="-lm") ;; |
|
245 |
|
246 *) AC_CHECK_LIB(m, floor) |
|
247 LIB_M="" ;; |
|
248 esac |
|
249 AC_SUBST(LIB_M) |
|
250 |
|
251 # Check whether to build shared libraries |
|
252 AC_MSG_CHECKING([whether to build shared libraries]) |
|
253 enabled=no |
|
254 AC_ARG_ENABLE(shared, |
|
255 [ --enable-shared build shared libraries [default=yes]], |
|
256 [ case "${enableval}" in |
|
257 yes|"") enabled=yes; ENABLE_SHARED=YES ;; |
|
258 no);; |
|
259 *) ;; |
|
260 esac], |
|
261 [enabled=yes; ENABLE_SHARED=YES] |
|
262 ) |
|
263 AC_MSG_RESULT($enabled) |
|
264 AC_SUBST(ENABLE_SHARED) |
|
265 |
|
266 # Check whether to build static libraries |
|
267 AC_MSG_CHECKING([whether to build static libraries]) |
|
268 enabled=no |
|
269 AC_ARG_ENABLE(static, |
|
270 [ --enable-static build static libraries [default=no]], |
|
271 [ case "${enableval}" in |
|
272 yes|"") enabled=yes; ENABLE_STATIC=YES ;; |
|
273 no) ;; |
|
274 *) ;; |
|
275 esac], |
|
276 ) |
|
277 AC_MSG_RESULT($enabled) |
|
278 AC_SUBST(ENABLE_STATIC) |
|
279 |
|
280 # When building release static library, there might be some optimization flags we can use |
|
281 if test "$ENABLE_STATIC" = "YES"; then |
|
282 if test "$ENABLE_SHARED" != "YES"; then |
|
283 if test "$ENABLE_RELEASE" = 1; then |
|
284 AC_MSG_CHECKING([whether we can use static library optimization option]) |
|
285 CHECK_STATIC_OPT_FLAG=no |
|
286 |
|
287 OLD_CPPFLAGS="${CPPFLAGS}" |
|
288 OLD_LDFLAGS="${LDFLAGS}" |
|
289 |
|
290 case "${host}" in |
|
291 *-linux*|i*86-*-*bsd*|i*86-pc-gnu) |
|
292 if test "$GCC" = yes; then |
|
293 CPPFLAGS="${CPPFLAGS} -ffunction-sections -fdata-sections" |
|
294 LDFLAGS="${LDFLAGS} -Wl,--gc-sections" |
|
295 fi |
|
296 ;; |
|
297 *) |
|
298 ;; |
|
299 esac |
|
300 |
|
301 AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], [CHECK_STATIC_OPT_FLAG=yes], [CHECK_STATIC_OPT_FLAG=no]) |
|
302 AC_MSG_RESULT($CHECK_STATIC_OPT_FLAG) |
|
303 if test "$CHECK_STATIC_OPT_FLAG" = no; then |
|
304 CPPFLAGS="${OLD_CPPFLAGS}" |
|
305 LDFLAGS="${OLD_LDFLAGS}" |
|
306 fi |
|
307 fi |
|
308 fi |
|
309 fi |
|
310 |
|
311 |
|
312 # Check whether to enable auto cleanup of libraries |
|
313 AC_MSG_CHECKING([whether to enable auto cleanup of libraries]) |
|
314 enabled=no |
|
315 UCLN_NO_AUTO_CLEANUP=1 |
|
316 AC_ARG_ENABLE(auto-cleanup, |
|
317 [ --enable-auto-cleanup enable auto cleanup of libraries [default=no]], |
|
318 [ case "${enableval}" in |
|
319 yes) enabled=yes; |
|
320 CONFIG_CPPFLAGS="$CONFIG_CPPFLAGS -DUCLN_NO_AUTO_CLEANUP=0"; |
|
321 UCLN_NO_AUTO_CLEANUP=0 |
|
322 ;; |
|
323 *) ;; |
|
324 esac], |
|
325 ) |
|
326 AC_MSG_RESULT($enabled) |
|
327 AC_SUBST(UCLN_NO_AUTO_CLEANUP) |
|
328 |
|
329 # MSVC floating-point option |
|
330 MSVC_RELEASE_FLAG="" |
|
331 if test $enabled = yes |
|
332 then |
|
333 if test $icu_cv_host_frag = mh-cygwin-msvc -o $icu_cv_host_frag = mh-msys-msvc |
|
334 then |
|
335 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ |
|
336 #if defined _MSC_VER && _MSC_VER >= 1400 |
|
337 #else |
|
338 Microsoft Visual C++ < 2005 |
|
339 #endif |
|
340 ]], [[]])],[MSVC_RELEASE_FLAG="/fp:precise"],[MSVC_RELEASE_FLAG="/Op"]) |
|
341 |
|
342 CFLAGS="${CFLAGS} ${MSVC_RELEASE_FLAG}" |
|
343 CXXFLAGS="${CXXFLAGS} ${MSVC_RELEASE_FLAG}" |
|
344 fi |
|
345 fi |
|
346 |
|
347 # Check whether to enabled draft APIs |
|
348 AC_MSG_CHECKING([whether to enable draft APIs]) |
|
349 enabled=yes |
|
350 U_DEFAULT_SHOW_DRAFT=1 |
|
351 AC_ARG_ENABLE(draft, |
|
352 [ --enable-draft enable draft APIs (and internal APIs) [default=yes]], |
|
353 [ case "${enableval}" in |
|
354 no) enabled=no; U_DEFAULT_SHOW_DRAFT=0; |
|
355 CONFIG_CPPFLAGS="$CONFIG_CPPFLAGS -DU_DEFAULT_SHOW_DRAFT=0" |
|
356 ;; |
|
357 *) ;; |
|
358 esac], |
|
359 ) |
|
360 AC_MSG_RESULT($enabled) |
|
361 # Make sure that we can use draft API in ICU. |
|
362 if test "$U_DEFAULT_SHOW_DRAFT" = 0; then |
|
363 CONFIG_CPPFLAGS="$CONFIG_CPPFLAGS -DU_SHOW_DRAFT_API" |
|
364 fi |
|
365 AC_SUBST(U_DEFAULT_SHOW_DRAFT) |
|
366 |
|
367 AC_PROG_RANLIB |
|
368 |
|
369 # look for 'ar' the proper way |
|
370 AC_CHECK_TOOL(AR, ar, false) |
|
371 |
|
372 AC_MSG_CHECKING([whether to enable renaming of symbols]) |
|
373 enabled=yes |
|
374 U_DISABLE_RENAMING=0 |
|
375 AC_ARG_ENABLE(renaming, |
|
376 [ --enable-renaming add a version suffix to symbols [default=yes]], |
|
377 [ case "${enableval}" in |
|
378 yes|"") enabled=yes ;; |
|
379 no) enabled=no; U_DISABLE_RENAMING=1; |
|
380 UCONFIG_CPPFLAGS="${UCONFIG_CPPFLAGS} -DU_DISABLE_RENAMING=1" |
|
381 ;; |
|
382 *) ;; |
|
383 esac], |
|
384 ) |
|
385 AC_MSG_RESULT($enabled) |
|
386 AC_SUBST(U_DISABLE_RENAMING) |
|
387 |
|
388 AC_MSG_CHECKING([whether to enable function and data tracing]) |
|
389 enabled=no |
|
390 U_ENABLE_TRACING=0 |
|
391 AC_ARG_ENABLE(tracing, |
|
392 [ --enable-tracing enable function and data tracing [default=no]], |
|
393 [ case "${enableval}" in |
|
394 yes|"") enabled=yes; |
|
395 CONFIG_CPPFLAGS="$CONFIG_CPPFLAGS -DU_ENABLE_TRACING=1"; |
|
396 U_ENABLE_TRACING=1 ;; |
|
397 no) enabled=no; U_ENABLE_TRACING=0 ;; |
|
398 *) ;; |
|
399 esac], |
|
400 ) |
|
401 AC_MSG_RESULT($enabled) |
|
402 AC_SUBST(U_ENABLE_TRACING) |
|
403 |
|
404 # check if elf.h is present. |
|
405 AC_CHECK_HEADERS([elf.h]) |
|
406 if test "x$ac_cv_header_elf_h" = "xyes"; then |
|
407 CONFIG_CPPFLAGS="$CONFIG_CPPFLAGS -DU_HAVE_ELF_H=1"; |
|
408 fi |
|
409 |
|
410 U_ENABLE_DYLOAD=1 |
|
411 enable=yes |
|
412 AC_MSG_CHECKING([whether to enable dynamic loading of plugins]) |
|
413 AC_ARG_ENABLE(dyload, |
|
414 [ --disable-dyload disable dynamic loading [default=no]], |
|
415 [ case "${enableval}" in |
|
416 yes|"") |
|
417 U_ENABLE_DYLOAD=1 |
|
418 enable=yes |
|
419 ;; |
|
420 no) |
|
421 U_ENABLE_DYLOAD=0; |
|
422 enable=no; |
|
423 CONFIG_CPPFLAGS="$CONFIG_CPPFLAGS -DU_ENABLE_DYLOAD=0"; |
|
424 ;; |
|
425 *) ;; |
|
426 esac], |
|
427 ) |
|
428 AC_MSG_RESULT($enable) |
|
429 AC_SUBST(U_ENABLE_DYLOAD) |
|
430 |
|
431 if test "$enable" = "yes"; then |
|
432 AC_CHECK_HEADERS([dlfcn.h]) |
|
433 #AC_MSG_RESULT($enabled) |
|
434 AC_SEARCH_LIBS([dlopen], [dl]) |
|
435 AC_CHECK_FUNCS([dlopen]) |
|
436 |
|
437 if test "x$ac_cv_func_dlopen" != xyes; then |
|
438 CONFIG_CPPFLAGS="$CONFIG_CPPFLAGS -DHAVE_DLOPEN=0" |
|
439 fi |
|
440 fi |
|
441 |
|
442 # Check for miscellanous functions. |
|
443 # So, use for putil / tools only. |
|
444 # Note that this will generate HAVE_GETTIMEOFDAY, not U_HAVE_GETTIMEOFDAY |
|
445 AC_CHECK_FUNCS([gettimeofday]) |
|
446 |
|
447 |
|
448 # Check whether to use the evil rpath or not |
|
449 AC_ARG_ENABLE(rpath, |
|
450 [ --enable-rpath use rpath when linking [default is only if necessary]], |
|
451 [ case "${enableval}" in |
|
452 yes|"") ENABLE_RPATH=YES ;; |
|
453 no) ;; |
|
454 *) ;; |
|
455 esac], |
|
456 [ENABLE_RPATH=NO] |
|
457 ) |
|
458 AC_SUBST(ENABLE_RPATH) |
|
459 |
|
460 |
|
461 |
|
462 AC_LANG_PUSH([C++]) |
|
463 AC_MSG_CHECKING([[if we have a C++ compiler]]) |
|
464 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[cxx_okay=yes],[cxx_okay=no]) |
|
465 if test $cxx_okay = yes |
|
466 then |
|
467 AC_MSG_RESULT([[Good]]) |
|
468 else |
|
469 AC_MSG_RESULT([[no]]) |
|
470 AC_MSG_ERROR([[C++ compiler $CXX does not work or no compiler found]]) |
|
471 fi |
|
472 |
|
473 if [[ "$GXX" = yes ]]; then |
|
474 # if CXXFLAGS does not have a "-std=" setting, set it now to -std=c++0x, |
|
475 # and check that the compiler still works. |
|
476 if ! echo "$CXXFLAGS" | grep '\-std=' >/dev/null 2>&1; then |
|
477 OLD_CXXFLAGS="${CXXFLAGS}" |
|
478 CXXFLAGS="$CXXFLAGS --std=c++0x" |
|
479 AC_MSG_CHECKING([[if we have a C++11 compiler]]) |
|
480 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[cxx11_okay=yes],[cxx11_okay=no]) |
|
481 AC_MSG_RESULT($cxx11_okay) |
|
482 if [[ $cxx11_okay = yes ]]; then |
|
483 AC_MSG_NOTICE([Adding CXXFLAGS option --std=c++0x]) |
|
484 UCONFIG_CXXFLAGS="${UCONFIG_CXXFLAGS} --std=c++0x" |
|
485 else |
|
486 CXXFLAGS="$OLD_CXXFLAGS" |
|
487 fi |
|
488 fi |
|
489 fi |
|
490 |
|
491 AC_MSG_CHECKING([[if #include <string> works]]) |
|
492 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <string>]], [[]])], [ac_cv_header_stdstring=yes], [ac_cv_header_stdstring=no]) |
|
493 AC_MSG_RESULT($ac_cv_header_stdstring) |
|
494 if test $ac_cv_header_stdstring = yes |
|
495 then |
|
496 U_HAVE_STD_STRING=1 |
|
497 else |
|
498 U_HAVE_STD_STRING=0 |
|
499 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_STD_STRING=0" |
|
500 fi |
|
501 AC_SUBST(U_HAVE_STD_STRING) |
|
502 |
|
503 |
|
504 AC_MSG_CHECKING([[if #include <atomic> works]]) |
|
505 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <atomic>]], [[]])], [ac_cv_header_atomic=yes], [ac_cv_header_atomic=no]) |
|
506 AC_MSG_RESULT($ac_cv_header_atomic) |
|
507 if test $ac_cv_header_atomic = yes |
|
508 then |
|
509 U_HAVE_ATOMIC=1 |
|
510 else |
|
511 U_HAVE_ATOMIC=0 |
|
512 fi |
|
513 # Make this available via CPPFLAGS |
|
514 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_ATOMIC=${U_HAVE_ATOMIC}" |
|
515 AC_SUBST(U_HAVE_ATOMIC) |
|
516 |
|
517 AC_LANG_POP([C++]) |
|
518 |
|
519 # Always build ICU with multi-threading support. |
|
520 threads=true |
|
521 ICU_USE_THREADS=1 |
|
522 OLD_LIBS=${LIBS} |
|
523 |
|
524 if test $threads = true; then |
|
525 # For Compaq Tru64 (OSF1), we must look for pthread_attr_init |
|
526 # and must do this before seaching for pthread_mutex_destroy, or |
|
527 # we will pick up libpthreads.so not libpthread.so |
|
528 # If this fails, then we must test for HPUX specials, before |
|
529 # moving on to a more generic test |
|
530 |
|
531 AC_CHECK_LIB(pthread, pthread_attr_init) |
|
532 if test $ac_cv_lib_pthread_pthread_attr_init = yes; then |
|
533 ICU_USE_THREADS=1 |
|
534 else |
|
535 # Locate the right library for POSIX threads. We look for the |
|
536 # symbols in the libraries first, because on Solaris libc provides |
|
537 # pthread_create but libpthread has the real code :( |
|
538 # AIX uses libpthreads instead of libpthread, and HP/UX uses libpthread |
|
539 # FreeBSD users may need libpthread if they do not have libc_r. |
|
540 |
|
541 AC_SEARCH_LIBS_FIRST(pthread_mutex_destroy, pthread pthreads c_r ) |
|
542 |
|
543 if test "$ac_cv_search_pthread_mutex_destroy" != no; then |
|
544 ICU_USE_THREADS=1 |
|
545 else |
|
546 # For HP 11 |
|
547 AC_CHECK_LIB(pthread, pthread_mutex_init) |
|
548 if test $ac_cv_lib_pthread_pthread_mutex_init = yes; then |
|
549 ICU_USE_THREADS=1 |
|
550 fi |
|
551 fi |
|
552 |
|
553 AC_CHECK_FUNC(pthread_mutex_lock) |
|
554 |
|
555 if test $ac_cv_func_pthread_mutex_lock = yes; then |
|
556 ICU_USE_THREADS=1 |
|
557 fi |
|
558 fi |
|
559 # Check to see if we are using CygWin with MSVC |
|
560 case "${host}" in |
|
561 *-pc-cygwin*|*-pc-mingw*) |
|
562 # For gcc, the thread options are set by mh-mingw/mh-cygwin |
|
563 # For msvc, the thread options are set by runConfigureICU |
|
564 ICU_USE_THREADS=1 |
|
565 ;; |
|
566 *-*-hpux*) |
|
567 # Add -mt because it does several nice things on newer compilers. |
|
568 case "${icu_cv_host_frag}" in |
|
569 mh-hpux-acc) |
|
570 OLD_CXXFLAGS="${CXXFLAGS}" |
|
571 CXXFLAGS="${CXXFLAGS} -mt" |
|
572 if test x"`${CXX} ${CXXFLAGS} 2>&1`" != x""; then |
|
573 CXXFLAGS="${OLD_CXXFLAGS}" |
|
574 else |
|
575 UCONFIG_CXXFLAGS="${UCONFIG_CXXFLAGS} -mt" |
|
576 fi |
|
577 ;; |
|
578 esac |
|
579 ;; |
|
580 *-*-solaris*) |
|
581 case "${icu_cv_host_frag}" in |
|
582 mh-solaris) |
|
583 LIBS="${LIBS} -mt" |
|
584 ;; |
|
585 esac |
|
586 ;; |
|
587 esac |
|
588 fi |
|
589 |
|
590 AC_ARG_ENABLE(weak-threads, |
|
591 [ --enable-weak-threads weakly reference the threading library [default=no]], |
|
592 [case "${enableval}" in |
|
593 yes) |
|
594 LIB_THREAD="${LIBS%${OLD_LIBS}}" |
|
595 LIBS=${OLD_LIBS} |
|
596 ;; |
|
597 no) ;; |
|
598 *) AC_MSG_ERROR(bad value ${enableval} for --enable-weak-threads) ;; |
|
599 esac]) |
|
600 AC_SUBST(LIB_THREAD) |
|
601 |
|
602 # Check for mmap() |
|
603 |
|
604 # The AC_FUNC_MMAP macro doesn't work properly. It seems to be too specific. |
|
605 # Do this check instead. |
|
606 HAVE_MMAP=0 |
|
607 AC_MSG_CHECKING([for mmap]) |
|
608 AC_CACHE_VAL(ac_cv_func_mmap_ok, |
|
609 [AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <unistd.h> |
|
610 #include <sys/mman.h> |
|
611 #include <sys/stat.h> |
|
612 #include <fcntl.h>], [mmap((void *)0, 0, PROT_READ, 0, 0, 0);])],[ac_cv_func_mmap_ok=yes],[ac_cv_func_mmap_ok=no])] ) |
|
613 AC_MSG_RESULT($ac_cv_func_mmap_ok) |
|
614 if test $ac_cv_func_mmap_ok = yes |
|
615 then |
|
616 HAVE_MMAP=1 |
|
617 else |
|
618 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_MMAP=0" |
|
619 fi |
|
620 AC_SUBST(HAVE_MMAP) |
|
621 |
|
622 AC_MSG_CHECKING([for genccode assembly]) |
|
623 |
|
624 # Check to see if genccode can generate simple assembly. |
|
625 GENCCODE_ASSEMBLY= |
|
626 case "${host}" in |
|
627 *-linux*|*-kfreebsd*-gnu*|i*86-*-*bsd*|i*86-pc-gnu) |
|
628 if test "$GCC" = yes; then |
|
629 # We're using gcc, and the simple -a gcc command line works for genccode |
|
630 GENCCODE_ASSEMBLY="-a gcc" |
|
631 fi ;; |
|
632 i*86-*-solaris*) |
|
633 if test "$GCC" = yes; then |
|
634 # When using gcc, look if we're also using GNU as. |
|
635 # When using GNU as, the simple -a gcc command line works for genccode. |
|
636 asv=`"${CC}" -print-prog-name=as 2>/dev/null` |
|
637 asv=`"${asv}" --version 2>/dev/null` |
|
638 case "X${asv}" in |
|
639 X*GNU*) GENCCODE_ASSEMBLY="-a gcc" ;; |
|
640 X*) GENCCODE_ASSEMBLY="-a sun-x86" ;; |
|
641 esac |
|
642 unset asv |
|
643 else |
|
644 GENCCODE_ASSEMBLY="-a sun-x86" |
|
645 fi ;; |
|
646 sparc-*-solaris*) |
|
647 GENCCODE_ASSEMBLY="-a sun" |
|
648 ;; |
|
649 ia64-*-hpux*) |
|
650 GENCCODE_ASSEMBLY="-a aCC-ia64" |
|
651 ;; |
|
652 esac |
|
653 AC_SUBST(GENCCODE_ASSEMBLY) |
|
654 |
|
655 AC_MSG_RESULT($GENCCODE_ASSEMBLY) |
|
656 |
|
657 # Checks for header files |
|
658 AC_CHECK_HEADERS(inttypes.h) |
|
659 if test $ac_cv_header_inttypes_h = no; then |
|
660 U_HAVE_INTTYPES_H=0 |
|
661 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_INTTYPES_H=0" |
|
662 else |
|
663 U_HAVE_INTTYPES_H=1 |
|
664 fi |
|
665 if test "$CC" = ccc; then |
|
666 AC_MSG_RESULT("C compiler set to CCC ${CC}" ) |
|
667 case "${host}" in |
|
668 alpha*-*-*) U_HAVE_INTTYPES_H=0; |
|
669 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_INTTYPES_H=0" |
|
670 esac |
|
671 fi |
|
672 |
|
673 AC_SUBST(U_HAVE_INTTYPES_H) |
|
674 |
|
675 AC_CHECK_HEADERS(dirent.h) |
|
676 if test $ac_cv_header_dirent_h = no; then |
|
677 U_HAVE_DIRENT_H=0 |
|
678 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_DIRENT_H=0" |
|
679 else |
|
680 U_HAVE_DIRENT_H=1 |
|
681 fi |
|
682 |
|
683 AC_SUBST(U_HAVE_DIRENT_H) |
|
684 |
|
685 # Check for endianness |
|
686 AC_C_BIGENDIAN() |
|
687 if test $ac_cv_c_bigendian = no; then |
|
688 U_IS_BIG_ENDIAN=0 |
|
689 U_ENDIAN_CHAR="l" |
|
690 else |
|
691 U_IS_BIG_ENDIAN=1 |
|
692 U_ENDIAN_CHAR="b" |
|
693 fi |
|
694 AC_SUBST(U_IS_BIG_ENDIAN) |
|
695 |
|
696 # Do various POSIX related checks |
|
697 U_HAVE_NL_LANGINFO_CODESET=0 |
|
698 U_NL_LANGINFO_CODESET=-1 |
|
699 AC_CHECK_FUNC(nl_langinfo,[U_HAVE_NL_LANGINFO=1],[U_HAVE_NL_LANGINFO=0]) |
|
700 dnl AC_SUBST(U_HAVE_NL_LANGINFO) |
|
701 if test $U_HAVE_NL_LANGINFO -eq 1; then |
|
702 AC_CACHE_CHECK([for nl_langinfo's argument to obtain the codeset], |
|
703 ac_cv_nl_langinfo_codeset, |
|
704 [ac_cv_nl_langinfo_codeset="unknown" |
|
705 for a in CODESET _NL_CTYPE_CODESET_NAME; do |
|
706 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]], [[nl_langinfo($a);]])],[ac_cv_nl_langinfo_codeset="$a"; break],[])] |
|
707 done) |
|
708 if test x$ac_cv_nl_langinfo_codeset != xunknown |
|
709 then |
|
710 U_HAVE_NL_LANGINFO_CODESET=1 |
|
711 U_NL_LANGINFO_CODESET=$ac_cv_nl_langinfo_codeset |
|
712 if test "x${ac_cv_nl_langinfo_codeset}" != "xCODESET" |
|
713 then |
|
714 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DNL_LANGINFO_CODESET=${ac_cv_nl_langinfo_codeset}" |
|
715 fi |
|
716 else |
|
717 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_NL_LANGINFO_CODESET=0" |
|
718 fi |
|
719 fi |
|
720 AC_SUBST(U_HAVE_NL_LANGINFO_CODESET) |
|
721 AC_SUBST(U_NL_LANGINFO_CODESET) |
|
722 |
|
723 # Namespace support checks |
|
724 AC_LANG(C++) |
|
725 AC_MSG_CHECKING([for namespace support]) |
|
726 AC_CACHE_VAL(ac_cv_namespace_ok, |
|
727 [AC_LINK_IFELSE([AC_LANG_PROGRAM([namespace x_version {void f(){}} |
|
728 namespace x = x_version; |
|
729 using namespace x_version; |
|
730 ], [f();])],[ac_cv_namespace_ok=yes],[ac_cv_namespace_ok=no])] ) |
|
731 AC_MSG_RESULT($ac_cv_namespace_ok) |
|
732 if test $ac_cv_namespace_ok = no |
|
733 then |
|
734 AC_MSG_ERROR(Namespace support is required to build ICU.) |
|
735 fi |
|
736 |
|
737 AC_MSG_CHECKING([for properly overriding new and delete]) |
|
738 U_OVERRIDE_CXX_ALLOCATION=0 |
|
739 U_HAVE_PLACEMENT_NEW=0 |
|
740 AC_CACHE_VAL(ac_cv_override_cxx_allocation_ok, |
|
741 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h> |
|
742 class UMemory { |
|
743 public: |
|
744 void *operator new(size_t size) {return malloc(size);} |
|
745 void *operator new[](size_t size) {return malloc(size);} |
|
746 void operator delete(void *p) {free(p);} |
|
747 void operator delete[](void *p) {free(p);} |
|
748 }; |
|
749 ]], [])],[ac_cv_override_cxx_allocation_ok=yes],[ac_cv_override_cxx_allocation_ok=no])] ) |
|
750 AC_MSG_RESULT($ac_cv_override_cxx_allocation_ok) |
|
751 if test $ac_cv_override_cxx_allocation_ok = yes |
|
752 then |
|
753 U_OVERRIDE_CXX_ALLOCATION=1 |
|
754 AC_MSG_CHECKING([for placement new and delete]) |
|
755 AC_CACHE_VAL(ac_cv_override_placement_new_ok, |
|
756 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h> |
|
757 class UMemory { |
|
758 public: |
|
759 void *operator new(size_t size) {return malloc(size);} |
|
760 void *operator new[](size_t size) {return malloc(size);} |
|
761 void operator delete(void *p) {free(p);} |
|
762 void operator delete[](void *p) {free(p);} |
|
763 void * operator new(size_t, void *ptr) { return ptr; } |
|
764 void operator delete(void *, void *) {} |
|
765 }; |
|
766 ]], [])],[ac_cv_override_placement_new_ok=yes],[ac_cv_override_placement_new_ok=no])] ) |
|
767 AC_MSG_RESULT($ac_cv_override_placement_new_ok) |
|
768 if test $ac_cv_override_placement_new_ok = yes |
|
769 then |
|
770 U_HAVE_PLACEMENT_NEW=1 |
|
771 else |
|
772 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_PLACEMENT_NEW=0" |
|
773 fi |
|
774 else |
|
775 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_OVERRIDE_CXX_ALLOCATION=0" |
|
776 fi |
|
777 AC_SUBST(U_OVERRIDE_CXX_ALLOCATION) |
|
778 AC_SUBST(U_HAVE_PLACEMENT_NEW) |
|
779 |
|
780 AC_LANG(C) |
|
781 AC_CHECK_FUNC(popen) |
|
782 if test x$ac_cv_func_popen = xyes |
|
783 then |
|
784 U_HAVE_POPEN=1 |
|
785 else |
|
786 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_POPEN=0" |
|
787 U_HAVE_POPEN=0 |
|
788 fi |
|
789 AC_SUBST(U_HAVE_POPEN) |
|
790 |
|
791 AC_CHECK_FUNC(tzset) |
|
792 U_HAVE_TZSET=0 |
|
793 if test x$ac_cv_func_tzset = xyes |
|
794 then |
|
795 U_TZSET=tzset |
|
796 U_HAVE_TZSET=1 |
|
797 else |
|
798 AC_CHECK_FUNC(_tzset) |
|
799 if test x$ac_cv_func__tzset = xyes |
|
800 then |
|
801 U_TZSET=_tzset |
|
802 U_HAVE_TZSET=1 |
|
803 else |
|
804 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_TZSET=0" |
|
805 fi |
|
806 fi |
|
807 AC_SUBST(U_HAVE_TZSET) |
|
808 AC_SUBST(U_TZSET) |
|
809 |
|
810 U_HAVE_TZNAME=0 |
|
811 AC_CACHE_CHECK(for tzname,ac_cv_var_tzname, |
|
812 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#ifndef __USE_POSIX |
|
813 #define __USE_POSIX |
|
814 #endif |
|
815 #include <stdlib.h> |
|
816 #include <time.h> |
|
817 #ifndef tzname /* For SGI. */ |
|
818 extern char *tzname[]; /* RS6000 and others reject char **tzname. */ |
|
819 #endif]], [atoi(*tzname);])],[ac_cv_var_tzname=yes],[ac_cv_var_tzname=no])]) |
|
820 if test $ac_cv_var_tzname = yes; then |
|
821 U_TZNAME=tzname |
|
822 U_HAVE_TZNAME=1 |
|
823 else |
|
824 AC_CACHE_CHECK(for _tzname,ac_cv_var__tzname, |
|
825 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h> |
|
826 #include <time.h> |
|
827 extern char *_tzname[];]], [atoi(*_tzname);])],[ac_cv_var__tzname=yes],[ac_cv_var__tzname=no])]) |
|
828 if test $ac_cv_var__tzname = yes; then |
|
829 U_TZNAME=_tzname |
|
830 U_HAVE_TZNAME=1 |
|
831 else |
|
832 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_TZNAME=0" |
|
833 fi |
|
834 fi |
|
835 AC_SUBST(U_HAVE_TZNAME) |
|
836 AC_SUBST(U_TZNAME) |
|
837 |
|
838 AC_CACHE_CHECK(for timezone,ac_cv_var_timezone, |
|
839 [AC_LINK_IFELSE([AC_LANG_PROGRAM([#ifndef __USE_POSIX |
|
840 #define __USE_POSIX |
|
841 #endif |
|
842 #ifndef __USE_XOPEN |
|
843 #define __USE_XOPEN |
|
844 #endif |
|
845 #include <time.h> |
|
846 ], [[timezone = 1;]])],[ac_cv_var_timezone=yes],[ac_cv_var_timezone=no])]) |
|
847 U_HAVE_TIMEZONE=0 |
|
848 if test $ac_cv_var_timezone = yes; then |
|
849 U_TIMEZONE=timezone |
|
850 U_HAVE_TIMEZONE=1 |
|
851 else |
|
852 AC_CACHE_CHECK(for __timezone,ac_cv_var___timezone, |
|
853 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[__timezone = 1;]])],[ac_cv_var___timezone=yes],[ac_cv_var___timezone=no])]) |
|
854 if test $ac_cv_var___timezone = yes; then |
|
855 U_TIMEZONE=__timezone |
|
856 U_HAVE_TIMEZONE=1 |
|
857 else |
|
858 AC_CACHE_CHECK(for _timezone,ac_cv_var__timezone, |
|
859 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[_timezone = 1;]])],[ac_cv_var__timezone=yes],[ac_cv_var__timezone=no])]) |
|
860 if test $ac_cv_var__timezone = yes; then |
|
861 U_TIMEZONE=_timezone |
|
862 U_HAVE_TIMEZONE=1 |
|
863 else |
|
864 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_TIMEZONE=0" |
|
865 fi |
|
866 fi |
|
867 fi |
|
868 AC_SUBST(U_HAVE_TIMEZONE) |
|
869 AC_SUBST(U_TIMEZONE) |
|
870 |
|
871 # Checks for typedefs |
|
872 AC_CHECK_TYPE(int8_t,signed char) |
|
873 AC_CHECK_TYPE(uint8_t,unsigned char) |
|
874 AC_CHECK_TYPE(int16_t,signed short) |
|
875 AC_CHECK_TYPE(uint16_t,unsigned short) |
|
876 AC_CHECK_TYPE(int32_t,signed long) |
|
877 AC_CHECK_TYPE(uint32_t,unsigned long) |
|
878 AC_CHECK_TYPE(int64_t,signed long long) |
|
879 AC_CHECK_TYPE(uint64_t,unsigned long long) |
|
880 |
|
881 if test $ac_cv_type_int8_t = no; then |
|
882 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_INT8_T=0" |
|
883 fi |
|
884 |
|
885 if test $ac_cv_type_uint8_t = no; then |
|
886 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_UINT8_T=0" |
|
887 fi |
|
888 |
|
889 if test $ac_cv_type_int16_t = no; then |
|
890 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_INT16_T=0" |
|
891 fi |
|
892 |
|
893 if test $ac_cv_type_uint16_t = no; then |
|
894 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_UINT16_T=0" |
|
895 fi |
|
896 |
|
897 if test $ac_cv_type_int32_t = no; then |
|
898 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_INT32_T=0" |
|
899 fi |
|
900 |
|
901 if test $ac_cv_type_uint32_t = no; then |
|
902 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_UINT32_T=0" |
|
903 fi |
|
904 |
|
905 if test $ac_cv_type_int64_t = no; then |
|
906 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_INT64_T=0" |
|
907 fi |
|
908 |
|
909 if test $ac_cv_type_uint64_t = no; then |
|
910 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_UINT64_T=0" |
|
911 fi |
|
912 |
|
913 # Do various wchar_t related checks |
|
914 AC_CHECK_HEADER(wchar.h) |
|
915 if test "$ac_cv_header_wchar_h" = no |
|
916 then |
|
917 U_HAVE_WCHAR_H=0 |
|
918 U_HAVE_WCSCPY=0 |
|
919 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_WCHAR_H=0 -DU_HAVE_WCSCPY=0" |
|
920 else |
|
921 AC_DEFINE([HAVE_WCHAR_H], [1], [wchar.h was found.]) |
|
922 U_HAVE_WCHAR_H=1 |
|
923 # Some broken systems have wchar.h but not some of its functions... |
|
924 AC_SEARCH_LIBS(wcscpy, wcs w) |
|
925 if test "$ac_cv_search_wcscpy" != no; then |
|
926 U_HAVE_WCSCPY=1 |
|
927 else |
|
928 U_HAVE_WCSCPY=0 |
|
929 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_WCSCPY=0" |
|
930 fi |
|
931 fi |
|
932 AC_SUBST(U_HAVE_WCHAR_H) |
|
933 AC_SUBST(U_HAVE_WCSCPY) |
|
934 |
|
935 AC_CHECK_SIZEOF([wchar_t], 0, [ |
|
936 #if STDC_HEADERS |
|
937 #include <stddef.h> |
|
938 #endif |
|
939 #include <stdlib.h> |
|
940 #if HAVE_WCHAR_H |
|
941 #include <string.h> |
|
942 #include <wchar.h> |
|
943 #endif]) |
|
944 U_SIZEOF_WCHAR_T=$ac_cv_sizeof_wchar_t |
|
945 # We do this check to verify that everything is okay. |
|
946 if test $U_SIZEOF_WCHAR_T = 0; then |
|
947 if test $U_HAVE_WCHAR_H=1; then |
|
948 AC_MSG_ERROR(There is wchar.h but the size of wchar_t is 0) |
|
949 fi |
|
950 fi |
|
951 |
|
952 AC_MSG_CHECKING([for UTF-16 string literal support]) |
|
953 U_CHECK_UTF16_STRING=1 |
|
954 CHECK_UTF16_STRING_RESULT="unknown" |
|
955 |
|
956 case "${host}" in |
|
957 *-*-aix*|powerpc64-*-linux*) |
|
958 if test "$GCC" = no; then |
|
959 OLD_CFLAGS="${CFLAGS}" |
|
960 OLD_CXXFLAGS="${CXXFLAGS}" |
|
961 CFLAGS="${CFLAGS} -qutf" |
|
962 CXXFLAGS="${CXXFLAGS} -qutf" |
|
963 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[const unsigned short hello[] = u"hello";]], [[]])],[U_CHECK_UTF16_STRING=1],[U_CHECK_UTF16_STRING=0]) |
|
964 if test "$U_CHECK_UTF16_STRING" = 0; then |
|
965 CFLAGS="${OLD_CFLAGS}" |
|
966 CXXFLAGS="${OLD_CXXFLAGS}" |
|
967 else |
|
968 UCONFIG_CXXFLAGS="${UCONFIG_CXXFLAGS} -qutf" |
|
969 CHECK_UTF16_STRING_RESULT="-qutf" |
|
970 fi |
|
971 fi |
|
972 ;; |
|
973 *-*-solaris*) |
|
974 if test "$GCC" = no; then |
|
975 OLD_CFLAGS="${CFLAGS}" |
|
976 OLD_CXXFLAGS="${CXXFLAGS}" |
|
977 CFLAGS="${CFLAGS} -xustr=ascii_utf16_ushort" |
|
978 CXXFLAGS="${CXXFLAGS} -xustr=ascii_utf16_ushort" |
|
979 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[const unsigned short hello[] = U"hello";]], [[]])],[U_CHECK_UTF16_STRING=1],[U_CHECK_UTF16_STRING=0]) |
|
980 if test "$U_CHECK_UTF16_STRING" = 0; then |
|
981 CFLAGS="${OLD_CFLAGS}" |
|
982 CXXFLAGS="${OLD_CXXFLAGS}" |
|
983 else |
|
984 CHECK_UTF16_STRING_RESULT="-xustr=ascii_utf16_ushort" |
|
985 UCONFIG_CXXFLAGS="${UCONFIG_CXXFLAGS} -xustr=ascii_utf16_ushort" |
|
986 UCONFIG_CFLAGS="${UCONFIG_CFLAGS} -xustr=ascii_utf16_ushort" |
|
987 # Since we can't detect the availability of this UTF-16 syntax at compile time, |
|
988 # we depend on configure telling us that we can use it. |
|
989 # Since we can't ensure ICU users use -xustr=ascii_utf16_ushort, |
|
990 # we only use this macro within ICU. |
|
991 # If an ICU user uses icu-config, this feature will be enabled. |
|
992 CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_CHECK_UTF16_STRING=1" |
|
993 U_CHECK_UTF16_STRING=0 |
|
994 fi |
|
995 fi |
|
996 ;; |
|
997 *-*-hpux*) |
|
998 if test "$GCC" = no; then |
|
999 # The option will be detected at compile time without additional compiler options. |
|
1000 CHECK_UTF16_STRING_RESULT="available" |
|
1001 fi |
|
1002 ;; |
|
1003 *-*-cygwin) |
|
1004 # wchar_t can be used |
|
1005 CHECK_UTF16_STRING_RESULT="available" |
|
1006 ;; |
|
1007 *) |
|
1008 ;; |
|
1009 esac |
|
1010 |
|
1011 # GCC >= 4.4 supports UTF16 string literals. The CFLAGS and CXXFLAGS may change in the future. |
|
1012 if test "$CHECK_UTF16_STRING_RESULT" = "unknown"; then |
|
1013 if test "$GCC" = yes; then |
|
1014 OLD_CFLAGS="${CFLAGS}" |
|
1015 CFLAGS="${CFLAGS} -std=gnu99" |
|
1016 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ |
|
1017 static const char16_t test[] = u"This is a UTF16 literal string."; |
|
1018 ]], [[]])],[CC_UTF16_STRING=1],[CC_UTF16_STRING=0]) |
|
1019 if test "$CC_UTF16_STRING" = 1; then |
|
1020 UCONFIG_CFLAGS="${UCONFIG_CFLAGS} -std=gnu99" |
|
1021 CHECK_UTF16_STRING_RESULT="C only"; |
|
1022 else |
|
1023 CFLAGS="${OLD_CFLAGS}" |
|
1024 fi |
|
1025 fi |
|
1026 if test "$GXX" = yes; then |
|
1027 # -Wno-return-type-c-linkage is desired so that stable ICU API is not warned about. |
|
1028 AC_LANG_PUSH([C++]) |
|
1029 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ |
|
1030 static const char16_t test[] = u"This is a UTF16 literal string."; |
|
1031 ]], [[]])],[CXX_UTF16_STRING=1],[CXX_UTF16_STRING=0]) |
|
1032 AC_LANG_POP([C++]) |
|
1033 if test "$CXX_UTF16_STRING" = 1; then |
|
1034 if test "$CC_UTF16_STRING" = 1; then |
|
1035 CHECK_UTF16_STRING_RESULT="available"; |
|
1036 else |
|
1037 CHECK_UTF16_STRING_RESULT="C++ only"; |
|
1038 fi |
|
1039 fi |
|
1040 fi |
|
1041 fi |
|
1042 AC_MSG_RESULT($CHECK_UTF16_STRING_RESULT) |
|
1043 |
|
1044 # Enable/disable extras |
|
1045 AC_ARG_ENABLE(extras, |
|
1046 [ --enable-extras build ICU extras [default=yes]], |
|
1047 [case "${enableval}" in |
|
1048 yes) extras=true ;; |
|
1049 no) extras=false ;; |
|
1050 *) AC_MSG_ERROR(bad value ${enableval} for --enable-extras) ;; |
|
1051 esac], |
|
1052 extras=true) |
|
1053 ICU_CONDITIONAL(EXTRAS, test "$extras" = true) |
|
1054 AC_ARG_ENABLE(icuio, |
|
1055 [ --enable-icuio build ICU's icuio library [default=yes]], |
|
1056 [case "${enableval}" in |
|
1057 yes) icuio=true ;; |
|
1058 no) icuio=false ;; |
|
1059 *) AC_MSG_ERROR(bad value ${enableval} for --enable-icuio) ;; |
|
1060 esac], |
|
1061 icuio=true) |
|
1062 ICU_CONDITIONAL(ICUIO, test "$icuio" = true) |
|
1063 |
|
1064 # Enable/disable layout |
|
1065 AC_ARG_ENABLE(layout, |
|
1066 [ --enable-layout build ICU's layout library [default=yes]], |
|
1067 [case "${enableval}" in |
|
1068 yes) layout=true ;; |
|
1069 no) layout=false ;; |
|
1070 *) AC_MSG_ERROR(bad value ${enableval} for --enable-layout) ;; |
|
1071 esac], |
|
1072 layout=true) |
|
1073 ICU_CONDITIONAL(LAYOUT, test "$layout" = true) |
|
1074 |
|
1075 # Enable/disable tools |
|
1076 AC_ARG_ENABLE(tools, |
|
1077 [ --enable-tools build ICU's tools [default=yes]], |
|
1078 [case "${enableval}" in |
|
1079 yes) tools=true ;; |
|
1080 no) tools=false ;; |
|
1081 *) AC_MSG_ERROR(bad value ${enableval} for --enable-tools) ;; |
|
1082 esac], |
|
1083 tools=true) |
|
1084 ICU_CONDITIONAL(TOOLS, test "$tools" = true) |
|
1085 |
|
1086 AC_ARG_WITH(data-packaging, |
|
1087 [ --with-data-packaging=type specify how to package ICU data (files, archive, library, static, auto) [default=auto]], |
|
1088 [case "${withval}" in |
|
1089 files|archive|library) datapackaging=$withval ;; |
|
1090 auto) datapackaging=$withval ;; |
|
1091 common) datapackaging=archive ;; |
|
1092 dll) datapackaging=library ;; |
|
1093 static) datapackaging=static ;; |
|
1094 *) AC_MSG_ERROR(bad value ${withval} for --with-data-packaging) ;; |
|
1095 esac], |
|
1096 [datapackaging=]) |
|
1097 |
|
1098 # Note: 'thesysconfdir' is an evaluated version, for Man pages, so also for thedatadir, thelibdir, etc.. |
|
1099 # thesysconfdir=`eval echo $sysconfdir` |
|
1100 dnl# AC_SUBST(thesysconfdir) |
|
1101 dnl# thelibdir=`test "x$exec_prefix" = xNONE && exec_prefix="$prefix"; eval echo $libdir` |
|
1102 dnl# AC_SUBST(thelibdir) |
|
1103 thedatadir=`eval echo $datadir` |
|
1104 dnl# AC_SUBST(thedatadir) |
|
1105 # Always put raw data files in share/icu/{version}, etc. Never use lib/icu/{version} for data files.. Actual shared libraries will go in {libdir}. |
|
1106 pkgicudatadir=$datadir |
|
1107 thepkgicudatadir=$thedatadir |
|
1108 AC_SUBST(pkgicudatadir) |
|
1109 AC_SUBST(thepkgicudatadir) |
|
1110 |
|
1111 dnl# Shouldn't need the AC_SUBST |
|
1112 |
|
1113 if test x"$datapackaging" = x -o x"$datapackaging" = xauto; then |
|
1114 # default to library |
|
1115 datapackaging=library |
|
1116 if test "$ENABLE_STATIC" = "YES"; then |
|
1117 if test "$ENABLE_SHARED" != "YES"; then |
|
1118 datapackaging=static |
|
1119 fi |
|
1120 fi |
|
1121 fi |
|
1122 |
|
1123 datapackaging_dir=`eval echo $thedatadir`"/icu/${VERSION}" |
|
1124 |
|
1125 datapackaging_msg="(No explaination for mode $datapackaging.)" |
|
1126 |
|
1127 datapackaging_msg_path="ICU will look in $datapackaging_dir which is the installation location. Call u_setDataDirectory() or use the ICU_DATA environment variable to override." |
|
1128 datapackaging_msg_set="ICU will use the linked data library. If linked with the stub library located in stubdata/, the application can use udata_setCommonData() or set a data path to override." |
|
1129 datapackaging_howfound="(unknown)" |
|
1130 |
|
1131 case "$datapackaging" in |
|
1132 files) |
|
1133 DATA_PACKAGING_MODE=files |
|
1134 datapackaging_msg="ICU data will be stored in individual files." |
|
1135 datapackaging_howfound="$datapackaging_msg_path" |
|
1136 ;; |
|
1137 archive) |
|
1138 DATA_PACKAGING_MODE=common |
|
1139 datapackaging_msg="ICU data will be stored in a single .dat file." |
|
1140 datapackaging_howfound="$datapackaging_msg_path" |
|
1141 ;; |
|
1142 library) |
|
1143 DATA_PACKAGING_MODE=dll |
|
1144 datapackaging_msg="ICU data will be linked with ICU." |
|
1145 if test "$ENABLE_STATIC" = "YES"; then |
|
1146 datapackaging_msg="$datapackaging_msg A static data library will be built. " |
|
1147 fi |
|
1148 if test "$ENABLE_SHARED" = "YES"; then |
|
1149 datapackaging_msg="$datapackaging_msg A shared data library will be built. " |
|
1150 fi |
|
1151 datapackaging_howfound="$datapackaging_msg_set" |
|
1152 ;; |
|
1153 static) |
|
1154 DATA_PACKAGING_MODE=static |
|
1155 datapackaging_msg="ICU data will be stored in a static library." |
|
1156 datapackaging_howfound="$datapackaging_msg_set" |
|
1157 ;; |
|
1158 esac |
|
1159 AC_SUBST(DATA_PACKAGING_MODE) |
|
1160 |
|
1161 # Sets a library suffix |
|
1162 AC_MSG_CHECKING([for a library suffix to use]) |
|
1163 AC_ARG_WITH(library-suffix, |
|
1164 [ --with-library-suffix=suffix tag a suffix to the library names [default=]], |
|
1165 [ICULIBSUFFIX="${withval}"], |
|
1166 [ICULIBSUFFIX=]) |
|
1167 msg=$ICULIBSUFFIX |
|
1168 if test "$msg" = ""; then |
|
1169 msg=none |
|
1170 fi |
|
1171 AC_MSG_RESULT($msg) |
|
1172 AC_SUBST(ICULIBSUFFIX) |
|
1173 if test "$ICULIBSUFFIX" != "" |
|
1174 then |
|
1175 U_HAVE_LIB_SUFFIX=1 |
|
1176 ICULIBSUFFIXCNAME=`echo _$ICULIBSUFFIX | sed 's/[^A-Za-z0-9_]/_/g'` |
|
1177 UCONFIG_CPPFLAGS="${UCONFIG_CPPFLAGS} -DU_HAVE_LIB_SUFFIX=1 -DU_LIB_SUFFIX_C_NAME=${ICULIBSUFFIXCNAME} " |
|
1178 else |
|
1179 U_HAVE_LIB_SUFFIX=0 |
|
1180 fi |
|
1181 AC_SUBST(U_HAVE_LIB_SUFFIX) |
|
1182 AC_SUBST(ICULIBSUFFIXCNAME) |
|
1183 |
|
1184 # Enable/disable tests |
|
1185 AC_ARG_ENABLE(tests, |
|
1186 [ --enable-tests build ICU tests [default=yes]], |
|
1187 [case "${enableval}" in |
|
1188 yes) tests=true ;; |
|
1189 no) tests=false ;; |
|
1190 *) AC_MSG_ERROR(bad value ${enableval} for --enable-tests) ;; |
|
1191 esac], |
|
1192 tests=true) |
|
1193 ICU_CONDITIONAL(TESTS, test "$tests" = true) |
|
1194 |
|
1195 # Enable/disable samples |
|
1196 AC_ARG_ENABLE(samples, |
|
1197 [ --enable-samples build ICU samples [default=yes] |
|
1198 |
|
1199 Additionally, the variable FORCE_LIBS may be set before calling configure. |
|
1200 If set, it will REPLACE any automatic list of libraries.], |
|
1201 [case "${enableval}" in |
|
1202 yes) samples=true ;; |
|
1203 no) samples=false ;; |
|
1204 *) AC_MSG_ERROR(bad value ${enableval} for --enable-samples) ;; |
|
1205 esac], |
|
1206 samples=true) |
|
1207 ICU_CONDITIONAL(SAMPLES, test "$samples" = true) |
|
1208 |
|
1209 ICUDATA_CHAR=$U_ENDIAN_CHAR |
|
1210 |
|
1211 # Platform-specific Makefile setup |
|
1212 # set ICUDATA_CHAR to 'e' for any EBCDIC (which should be big endian) platform. |
|
1213 case "${host}" in |
|
1214 *-*-solaris*) platform=U_SOLARIS ;; |
|
1215 *-*-linux*|*-*-gnu|*-*-k*bsd*-gnu|*-*-kopensolaris*-gnu) platform=U_LINUX ;; |
|
1216 *-*-*bsd*|*-*-dragonfly*) platform=U_BSD ;; |
|
1217 *-*-aix*) platform=U_AIX ;; |
|
1218 *-*-hpux*) platform=U_HPUX ;; |
|
1219 *-apple-darwin*|*-apple-rhapsody*) platform=U_DARWIN ;; |
|
1220 *-*-cygwin*) platform=U_CYGWIN ;; |
|
1221 *-*-mingw*) platform=U_MINGW ;; |
|
1222 *-*ibm-openedition*|*-*-os390*) platform=OS390 |
|
1223 if test "${ICU_ENABLE_ASCII_STRINGS}" != "1"; then |
|
1224 ICUDATA_CHAR="e" |
|
1225 fi ;; |
|
1226 *-*-os400*) platform=OS400 |
|
1227 if test "${ICU_ENABLE_ASCII_STRINGS}" != "1"; then |
|
1228 ICUDATA_CHAR="e" |
|
1229 fi ;; |
|
1230 *-*-nto*) platform=U_QNX ;; |
|
1231 *-dec-osf*) platform=U_OSF ;; |
|
1232 *-*-beos) platform=U_BEOS ;; |
|
1233 *-*-irix*) platform=U_IRIX ;; |
|
1234 *-ncr-*) platform=U_MPRAS ;; |
|
1235 *) platform=U_UNKNOWN_PLATFORM ;; |
|
1236 esac |
|
1237 AC_SUBST(ICUDATA_CHAR) |
|
1238 AC_SUBST(platform) |
|
1239 platform_make_fragment_name="$icu_cv_host_frag" |
|
1240 platform_make_fragment='$(top_srcdir)/config/'"$platform_make_fragment_name" |
|
1241 AC_SUBST(platform_make_fragment_name) |
|
1242 AC_SUBST(platform_make_fragment) |
|
1243 |
|
1244 if test "${FORCE_LIBS}" != ""; then |
|
1245 echo " *** Overriding automatically chosen [LIBS=$LIBS], using instead [FORCE_LIBS=${FORCE_LIBS}]" 1>&6 |
|
1246 LIBS=${FORCE_LIBS} |
|
1247 fi |
|
1248 |
|
1249 # Now that we're done using CPPFLAGS etc. for tests, we can change it |
|
1250 # for build. |
|
1251 |
|
1252 if test "${CC}" == "clang"; then |
|
1253 CLANGCFLAGS="-Qunused-arguments -Wno-parentheses-equality" |
|
1254 else |
|
1255 CLANGCFLAGS="" |
|
1256 fi |
|
1257 |
|
1258 if test "${CXX}" == "clang++"; then |
|
1259 CLANGCXXFLAGS="-Qunused-arguments -Wno-parentheses-equality" |
|
1260 else |
|
1261 CLANGCXXFLAGS="" |
|
1262 fi |
|
1263 |
|
1264 CPPFLAGS="$CPPFLAGS \$(THREADSCPPFLAGS)" |
|
1265 CFLAGS="$CFLAGS \$(THREADSCFLAGS) $CLANGCFLAGS" |
|
1266 CXXFLAGS="$CXXFLAGS \$(THREADSCXXFLAGS) $CLANGCXXFLAGS" |
|
1267 |
|
1268 AC_SUBST(LIBCFLAGS) |
|
1269 AC_SUBST(LIBCXXFLAGS) |
|
1270 |
|
1271 # append all config cppflags |
|
1272 CPPFLAGS="$CPPFLAGS $CONFIG_CPPFLAGS $UCONFIG_CPPFLAGS" |
|
1273 |
|
1274 echo "CPPFLAGS=$CPPFLAGS" |
|
1275 echo "CFLAGS=$CFLAGS" |
|
1276 echo "CXXFLAGS=$CXXFLAGS" |
|
1277 |
|
1278 |
|
1279 # output the Makefiles |
|
1280 AC_CONFIG_FILES([icudefs.mk \ |
|
1281 Makefile \ |
|
1282 data/pkgdataMakefile \ |
|
1283 config/Makefile.inc \ |
|
1284 config/icu.pc \ |
|
1285 config/pkgdataMakefile \ |
|
1286 data/Makefile \ |
|
1287 stubdata/Makefile \ |
|
1288 common/Makefile \ |
|
1289 i18n/Makefile \ |
|
1290 layout/Makefile \ |
|
1291 layoutex/Makefile \ |
|
1292 io/Makefile \ |
|
1293 extra/Makefile \ |
|
1294 extra/uconv/Makefile \ |
|
1295 extra/uconv/pkgdataMakefile \ |
|
1296 extra/scrptrun/Makefile \ |
|
1297 tools/Makefile \ |
|
1298 tools/ctestfw/Makefile \ |
|
1299 tools/toolutil/Makefile \ |
|
1300 tools/makeconv/Makefile \ |
|
1301 tools/genrb/Makefile \ |
|
1302 tools/genccode/Makefile \ |
|
1303 tools/gencmn/Makefile \ |
|
1304 tools/gencnval/Makefile \ |
|
1305 tools/gendict/Makefile \ |
|
1306 tools/gentest/Makefile \ |
|
1307 tools/gennorm2/Makefile \ |
|
1308 tools/genbrk/Makefile \ |
|
1309 tools/gensprep/Makefile \ |
|
1310 tools/icuinfo/Makefile \ |
|
1311 tools/icupkg/Makefile \ |
|
1312 tools/icuswap/Makefile \ |
|
1313 tools/pkgdata/Makefile \ |
|
1314 tools/tzcode/Makefile \ |
|
1315 tools/gencfu/Makefile \ |
|
1316 test/Makefile \ |
|
1317 test/compat/Makefile \ |
|
1318 test/testdata/Makefile \ |
|
1319 test/testdata/pkgdataMakefile \ |
|
1320 test/hdrtst/Makefile \ |
|
1321 test/intltest/Makefile \ |
|
1322 test/cintltst/Makefile \ |
|
1323 test/iotest/Makefile \ |
|
1324 test/letest/Makefile \ |
|
1325 test/perf/Makefile \ |
|
1326 test/perf/collationperf/Makefile \ |
|
1327 test/perf/collperf/Makefile \ |
|
1328 test/perf/dicttrieperf/Makefile \ |
|
1329 test/perf/ubrkperf/Makefile \ |
|
1330 test/perf/charperf/Makefile \ |
|
1331 test/perf/convperf/Makefile \ |
|
1332 test/perf/normperf/Makefile \ |
|
1333 test/perf/DateFmtPerf/Makefile \ |
|
1334 test/perf/howExpensiveIs/Makefile \ |
|
1335 test/perf/strsrchperf/Makefile \ |
|
1336 test/perf/unisetperf/Makefile \ |
|
1337 test/perf/usetperf/Makefile \ |
|
1338 test/perf/ustrperf/Makefile \ |
|
1339 test/perf/utfperf/Makefile \ |
|
1340 test/perf/utrie2perf/Makefile \ |
|
1341 test/perf/leperf/Makefile \ |
|
1342 samples/Makefile samples/date/Makefile \ |
|
1343 samples/cal/Makefile samples/layout/Makefile]) |
|
1344 AC_OUTPUT |
|
1345 |
|
1346 echo |
|
1347 echo "ICU for C/C++ $VERSION is ready to be built." |
|
1348 echo "=== Important Notes: ===" |
|
1349 |
|
1350 echo "Data Packaging: $datapackaging" |
|
1351 echo " This means: $datapackaging_msg" |
|
1352 echo " To locate data: $datapackaging_howfound" |
|
1353 |
|
1354 if test -n "`$U_MAKE -v 2>&1 | grep '^GNU Make'`"; then |
|
1355 echo "Building ICU: Use a GNU make such as $U_MAKE to build ICU." |
|
1356 else |
|
1357 echo "** WARNING: $U_MAKE may not be GNU make." |
|
1358 echo "This may cause ICU to fail to build. Please make sure that GNU make" |
|
1359 echo "is in your PATH so that the configure script can detect its location." |
|
1360 fi |
|
1361 if test "x$AR" = "xfalse"; then |
|
1362 echo "*** WARNING: Archiver ar not found. Set AR= or fix PATH. Some builds (such as static) may fail." |
|
1363 fi |
|
1364 |
|
1365 AC_MSG_CHECKING([the version of "$U_MAKE"]) |
|
1366 if "$U_MAKE" -f "$srcdir/config/gmakever.mk" PLATFORM="$platform"; then |
|
1367 AC_MSG_RESULT([ok]) |
|
1368 else |
|
1369 AC_MSG_RESULT([too old or test failed - try upgrading GNU Make]) |
|
1370 fi |
|
1371 |
|
1372 AC_SUBST(UCONFIG_CPPFLAGS) |
|
1373 if test -n "$UCONFIG_CPPFLAGS"; then |
|
1374 HDRFILE="uconfig.h.prepend" |
|
1375 echo "*** WARNING: You must set the following flags before code compiled against this ICU will function properly:" |
|
1376 echo |
|
1377 echo " ${UCONFIG_CPPFLAGS}" |
|
1378 echo |
|
1379 echo 'The recommended way to do this is to prepend the following lines to source/common/unicode/uconfig.h or #include them near the top of that file.' |
|
1380 echo "Creating the file ${HDRFILE}" |
|
1381 echo |
|
1382 echo '--------------- ' "${HDRFILE}" |
|
1383 echo > "${HDRFILE}" |
|
1384 echo '/* ICU customizations: put these lines at the top of uconfig.h */' >> "${HDRFILE}" |
|
1385 echo >> "${HDRFILE}" |
|
1386 for flag in ${UCONFIG_CPPFLAGS}; |
|
1387 do |
|
1388 echo " /* $flag */" >> "${HDRFILE}" |
|
1389 case "${flag}" in |
|
1390 -D*=*) |
|
1391 [ \echo "${flag}" | sed -n 's%-D\([^=]*\)=%#define \1 %p' >> "${HDRFILE}" ] |
|
1392 \echo >> "${HDRFILE}" |
|
1393 ;; |
|
1394 -D*) |
|
1395 [ \echo "${flag}" | sed -n 's%-D\([^=]*\)%#define \1 %p' >> "${HDRFILE}" ] |
|
1396 \echo >> "${HDRFILE}" |
|
1397 ;; |
|
1398 *) |
|
1399 \echo "/* Not sure how to handle this argument: ${flag} */" >> "${HDRFILE}" |
|
1400 \echo >> "${HDRFILE}" |
|
1401 ;; |
|
1402 esac |
|
1403 done |
|
1404 cat "${HDRFILE}" |
|
1405 \echo "/* End of ${HDRFILE} ------------ */" >> "${HDRFILE}" |
|
1406 echo >> "${HDRFILE}" |
|
1407 echo '--------------- end ' "${HDRFILE}" |
|
1408 fi |
|
1409 |
|
1410 AC_SUBST(UCONFIG_CFLAGS) |
|
1411 if test -n "$UCONFIG_CFLAGS"; then |
|
1412 echo "C apps may want to build with CFLAGS = ${UCONFIG_CFLAGS}" |
|
1413 fi |
|
1414 AC_SUBST(UCONFIG_CXXFLAGS) |
|
1415 if test -n "$UCONFIG_CXXFLAGS"; then |
|
1416 echo "C++ apps may want to build with CXXFLAGS = ${UCONFIG_CXXFLAGS}" |
|
1417 fi |
|
1418 |
|
1419 if test "$tools" = false; |
|
1420 then |
|
1421 echo "## Note: you have disabled ICU's tools. This ICU cannot build its own data or tests." |
|
1422 echo "## Expect build failures in the 'data', 'test', and other directories." |
|
1423 fi |
|
1424 |
|
1425 $as_unset _CXX_CXXSUFFIX |