1 dnl aclocal.m4 generated automatically by aclocal 1.4-p6
3 dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
4 dnl This file is free software; the Free Software Foundation
5 dnl gives unlimited permission to copy and/or distribute it,
6 dnl with or without modifications, as long as this notice is preserved.
8 dnl This program is distributed in the hope that it will be useful,
9 dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
10 dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
11 dnl PARTICULAR PURPOSE.
14 dnl Initialize basic configure bits, set toplevel_srcdir for Makefiles.
16 dnl GLIBCPP_TOPREL_CONFIGURE
17 AC_DEFUN(GLIBCPP_TOPREL_CONFIGURE, [
18 dnl Default to --enable-multilib (this is also passed by default
19 dnl from the ubercommon-top-level configure)
20 AC_ARG_ENABLE(multilib,
21 [ --enable-multilib build hella library versions (default)],
22 [case "${enableval}" in
25 *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
26 esac], [multilib=yes])dnl
28 # When building with srcdir == objdir, links to the source files will
29 # be created in directories within the target_subdir. We have to
30 # adjust toplevel_srcdir accordingly, so that configure finds
31 # install-sh and other auxiliary files that live in the top-level
33 if test "${srcdir}" = "."; then
34 if test -z "${with_target_subdir}"; then
37 if test "${with_target_subdir}" != "."; then
38 toprel="${with_multisrctop}../.."
40 toprel="${with_multisrctop}.."
46 AC_CONFIG_AUX_DIR(${srcdir}/$toprel)
47 toplevel_srcdir=\${top_srcdir}/$toprel
48 AC_SUBST(toplevel_srcdir)
52 dnl Initialize the rest of the library configury.
55 AC_DEFUN(GLIBCPP_CONFIGURE, [
56 # Export build and source directories.
57 # These need to be absolute paths, yet at the same time need to
58 # canonicalize only relative paths, because then amd will not unmount
59 # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd.
60 glibcpp_builddir=`${PWDCMD-pwd}`
62 [\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;;
63 *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;;
65 AC_SUBST(glibcpp_builddir)
66 AC_SUBST(glibcpp_srcdir)
68 dnl This is here just to satisfy automake.
69 ifelse(not,equal,[AC_CONFIG_AUX_DIR(..)])
72 # Will set LN_S to either 'ln -s' or 'ln'. With autoconf 2.5x, can also
73 # be 'cp -p' if linking isn't available. Uncomment the next line to
74 # force a particular method.
75 #ac_cv_prog_LN_S='cp -p'
78 # We use these options to decide which functions to include.
79 AC_ARG_WITH(target-subdir,
80 [ --with-target-subdir=SUBDIR
81 configuring in a subdirectory])
82 AC_ARG_WITH(cross-host,
83 [ --with-cross-host=HOST configuring with a cross compiler])
86 [ --with-newlib Configuring with newlib])
88 glibcpp_basedir=$srcdir/$toprel/$1/libstdc++-v3
89 AC_SUBST(glibcpp_basedir)
91 # Never versions of autoconf add an underscore to these functions.
92 # Prevent future problems ...
93 ifdef([AC_PROG_CC_G],[],[define([AC_PROG_CC_G],defn([_AC_PROG_CC_G]))])
94 ifdef([AC_PROG_CC_GNU],[],[define([AC_PROG_CC_GNU],defn([_AC_PROG_CC_GNU]))])
95 ifdef([AC_PROG_CXX_G],[],[define([AC_PROG_CXX_G],defn([_AC_PROG_CXX_G]))])
96 ifdef([AC_PROG_CXX_GNU],[],[define([AC_PROG_CXX_GNU],defn([_AC_PROG_CXX_GNU]))])
99 # FIXME: We temporarily define our own version of AC_PROG_CC. This is
100 # copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
101 # are probably using a cross compiler, which will not be able to fully
102 # link an executable. This is addressed in later versions of autoconf.
104 AC_DEFUN(LIB_AC_PROG_CC,
105 [AC_BEFORE([$0], [AC_PROG_CPP])dnl
106 dnl Fool anybody using AC_PROG_CC.
107 AC_PROVIDE([AC_PROG_CC])
108 AC_CHECK_PROG(CC, gcc, gcc)
109 if test -z "$CC"; then
110 AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
111 test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
116 if test $ac_cv_prog_gcc = yes; then
118 dnl Check whether -g works, even if CFLAGS is set, in case the package
119 dnl plays around with CFLAGS (such as to build both debugging and
120 dnl normal versions of a library), tasteless as that idea is.
121 ac_test_CFLAGS="${CFLAGS+set}"
122 ac_save_CFLAGS="$CFLAGS"
125 if test "$ac_test_CFLAGS" = set; then
126 CFLAGS="$ac_save_CFLAGS"
127 elif test $ac_cv_prog_cc_g = yes; then
134 test "${CFLAGS+set}" = set || CFLAGS="-g"
140 # Likewise for AC_PROG_CXX. We can't just call it directly because g++
141 # will try to link in libstdc++.
142 AC_DEFUN(LIB_AC_PROG_CXX,
143 [AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
144 dnl Fool anybody using AC_PROG_CXX.
145 AC_PROVIDE([AC_PROG_CXX])
146 # Use glibcpp_CXX so that we do not cause CXX to be cached with the
147 # flags that come in CXX while configuring libstdc++. They're different
148 # from those used for all other target libraries. If CXX is set in
149 # the environment, respect that here.
151 AC_CHECK_PROGS(glibcpp_CXX, $CCC c++ g++ gcc CC cxx cc++, gcc)
152 AC_SUBST(glibcpp_CXX)
154 test -z "$glibcpp_CXX" && AC_MSG_ERROR([no acceptable c++ found in \$PATH])
158 if test $ac_cv_prog_gxx = yes; then
160 dnl Check whether -g works, even if CXXFLAGS is set, in case the package
161 dnl plays around with CXXFLAGS (such as to build both debugging and
162 dnl normal versions of a library), tasteless as that idea is.
163 ac_test_CXXFLAGS="${CXXFLAGS+set}"
164 ac_save_CXXFLAGS="$CXXFLAGS"
167 if test "$ac_test_CXXFLAGS" = set; then
168 CXXFLAGS="$ac_save_CXXFLAGS"
169 elif test $ac_cv_prog_cxx_g = yes; then
176 test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
182 # For directory versioning (e.g., headers) and other variables.
183 AC_MSG_CHECKING([for GCC version number])
184 gcc_version=`$glibcpp_CXX -dumpversion`
185 AC_MSG_RESULT($gcc_version)
187 # For some reason, gettext needs this.
190 AC_CHECK_TOOL(AS, as)
191 AC_CHECK_TOOL(AR, ar)
192 AC_CHECK_TOOL(RANLIB, ranlib, ranlib-not-found-in-path-error)
197 # We need AC_EXEEXT to keep automake happy in cygnus mode. However,
198 # at least currently, we never actually build a program, so we never
199 # need to use $(EXEEXT). Moreover, the test for EXEEXT normally
200 # fails, because we are probably configuring with a cross compiler
201 # which can't create executables. So we include AC_EXEEXT to keep
202 # automake happy, but we don't execute it, since we don't care about
205 # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
206 # to nothing, so nothing would remain between `then' and `fi' if it
207 # were not for the `:' below.
212 case [$]{glibcpp_basedir} in
213 /* | [A-Za-z]:[\\/]*) libgcj_flagbasedir=[$]{glibcpp_basedir} ;;
214 *) glibcpp_flagbasedir='[$](top_builddir)/'[$]{glibcpp_basedir} ;;
217 # Find platform-specific directories containing configuration info. In
218 # addition to possibly modifying the same flags, it also sets up symlinks.
224 dnl Check to see if g++ can compile this library, and if so, if any version-
225 dnl specific precautions need to be taken.
227 dnl GLIBCPP_CHECK_COMPILER_VERSION
228 AC_DEFUN(GLIBCPP_CHECK_COMPILER_VERSION, [
229 if test ! -f stamp-sanity-compiler; then
230 AC_MSG_CHECKING([for g++ that will successfully compile libstdc++-v3])
237 ], gpp_satisfactory=yes, AC_MSG_ERROR([please upgrade to GCC 3.0 or above]))
239 AC_MSG_RESULT($gpp_satisfactory)
240 touch stamp-sanity-compiler
246 dnl Tests for newer compiler features, or features that are present in newer
247 dnl compiler versions but not older compiler versions still in use, should
250 dnl Define WERROR='-Werror' if requested and possible; g++'s that lack the
251 dnl new inlining code or the new system_header pragma will die on -Werror.
252 dnl Leave it out by default and use maint-mode to use it.
254 dnl Define SECTION_FLAGS='-ffunction-sections -fdata-sections' if
255 dnl compiler supports it and the user has not requested debug mode.
257 dnl GLIBCPP_CHECK_COMPILER_FEATURES
258 AC_DEFUN(GLIBCPP_CHECK_COMPILER_FEATURES, [
259 # All these tests are for C++; save the language and the compiler flags.
260 # The CXXFLAGS thing is suspicious, but based on similar bits previously
261 # found in GLIBCPP_CONFIGURE.
264 ac_test_CXXFLAGS="${CXXFLAGS+set}"
265 ac_save_CXXFLAGS="$CXXFLAGS"
267 # Check for maintainer-mode bits.
268 if test x"$USE_MAINTAINER_MODE" = xno; then
274 # Check for -ffunction-sections -fdata-sections
275 AC_MSG_CHECKING([for g++ that supports -ffunction-sections -fdata-sections])
276 CXXFLAGS='-Werror -ffunction-sections -fdata-sections'
277 AC_TRY_COMPILE(, [int foo;
278 ], [ac_fdsections=yes], [ac_fdsections=no])
279 if test "$ac_test_CXXFLAGS" = set; then
280 CXXFLAGS="$ac_save_CXXFLAGS"
282 # this is the suspicious part
285 if test x"$ac_fdsections" = x"yes"; then
286 SECTION_FLAGS='-ffunction-sections -fdata-sections'
288 AC_MSG_RESULT($ac_fdsections)
292 AC_SUBST(SECTION_FLAGS)
297 dnl If GNU ld is in use, check to see if tricky linker opts can be used. If
298 dnl the native linker is in use, all variables will be defined to something
299 dnl safe (like an empty string).
301 dnl Define SECTION_LDFLAGS='-Wl,--gc-sections' if possible.
302 dnl Define OPT_LDFLAGS='-Wl,-O1' if possible.
303 dnl Define LD, with_gnu_ld, and (possibly) glibcpp_gnu_ld_version as
304 dnl side-effects of testing.
306 dnl GLIBCPP_CHECK_LINKER_FEATURES
307 AC_DEFUN(GLIBCPP_CHECK_LINKER_FEATURES, [
308 # If we're not using GNU ld, then there's no point in even trying these
309 # tests. Check for that first. We should have already tested for gld
310 # by now (in libtool), but require it now just to be safe...
311 test -z "$SECTION_LDFLAGS" && SECTION_LDFLAGS=''
312 test -z "$OPT_LDFLAGS" && OPT_LDFLAGS=''
313 AC_REQUIRE([AC_PROG_LD])
315 # The name set by libtool depends on the version of libtool. Shame on us
316 # for depending on an impl detail, but c'est la vie. Older versions used
317 # ac_cv_prog_gnu_ld, but now it's lt_cv_prog_gnu_ld, and is copied back on
318 # top of with_gnu_ld (which is also set by --with-gnu-ld, so that actually
319 # makes sense). We'll test with_gnu_ld everywhere else, so if that isn't
320 # set (hence we're using an older libtool), then set it.
321 if test x${with_gnu_ld+set} != xset; then
322 if test x${ac_cv_prog_gnu_ld+set} != xset; then
323 # We got through "ac_require(ac_prog_ld)" and still not set? Huh?
326 with_gnu_ld=$ac_cv_prog_gnu_ld
330 # Start by getting the version number. I think the libtool test already
331 # does some of this, but throws away the result.
333 ldver=`$LD --version 2>/dev/null | head -1 | \
334 sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
336 glibcpp_gnu_ld_version=`echo $ldver | \
337 $AWK -F. '{ if (NF<3) [$]3=0; print ([$]1*100+[$]2)*100+[$]3 }'`
340 if test "$with_gnu_ld" = "notbroken"; then
341 # GNU ld it is! Joy and bunny rabbits!
343 # All these tests are for C++; save the language and the compiler flags.
344 # Need to do this so that g++ won't try to link in libstdc++
345 ac_test_CFLAGS="${CFLAGS+set}"
346 ac_save_CFLAGS="$CFLAGS"
347 CFLAGS='-x c++ -Wl,--gc-sections'
349 # Check for -Wl,--gc-sections
350 # XXX This test is broken at the moment, as symbols required for
351 # linking are now in libsupc++ (not built yet.....). In addition,
352 # this test has cored on solaris in the past. In addition,
353 # --gc-sections doesn't really work at the moment (keeps on discarding
354 # used sections, first .eh_frame and now some of the glibc sections for
355 # iconv). Bzzzzt. Thanks for playing, maybe next time.
356 AC_MSG_CHECKING([for ld that supports -Wl,--gc-sections])
364 ], [ac_sectionLDflags=yes],[ac_sectionLDflags=no], [ac_sectionLDflags=yes])
365 if test "$ac_test_CFLAGS" = set; then
366 CFLAGS="$ac_save_CFLAGS"
368 # this is the suspicious part
371 if test "$ac_sectionLDflags" = "yes"; then
372 SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
374 AC_MSG_RESULT($ac_sectionLDflags)
377 # Set linker optimization flags.
378 if test x"$with_gnu_ld" = x"yes"; then
379 OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
382 AC_SUBST(SECTION_LDFLAGS)
383 AC_SUBST(OPT_LDFLAGS)
388 dnl Check to see if the (math function) argument passed is
389 dnl declared when using the c++ compiler
390 dnl ASSUMES argument is a math function with ONE parameter
392 dnl GLIBCPP_CHECK_MATH_DECL_1
393 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_1, [
394 AC_MSG_CHECKING([for $1 declaration])
395 if test x${glibcpp_cv_func_$1_use+set} != xset; then
396 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
399 AC_TRY_COMPILE([#include <math.h>
405 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
409 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
413 dnl Check to see if the (math function) argument passed is
414 dnl 1) declared when using the c++ compiler
415 dnl 2) has "C" linkage
416 dnl 3) if not, see if 1) and 2) for argument prepended with '_'
418 dnl Define HAVE_CARGF etc if "cargf" is declared and links
420 dnl argument 1 is name of function to check
422 dnl ASSUMES argument is a math function with ONE parameter
424 dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1
425 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1, [
426 GLIBCPP_CHECK_MATH_DECL_1($1)
427 if test x$glibcpp_cv_func_$1_use = x"yes"; then
430 GLIBCPP_CHECK_MATH_DECL_1(_$1)
431 if test x$glibcpp_cv_func__$1_use = x"yes"; then
439 dnl Like GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1, but does a bunch of
440 dnl of functions at once. It's an all-or-nothing check -- either
441 dnl HAVE_XYZ is defined for each of the functions, or for none of them.
442 dnl Doing it this way saves significant configure time.
443 AC_DEFUN(GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1, [
444 AC_MSG_CHECKING([for $1 functions])
445 AC_CACHE_VAL(glibcpp_cv_func_$2_use, [
448 AC_TRY_COMPILE([#include <math.h>],
449 [ `for x in $3; do echo "$x (0);"; done` ],
450 [glibcpp_cv_func_$2_use=yes],
451 [glibcpp_cv_func_$2_use=no])
453 AC_MSG_RESULT($glibcpp_cv_func_$2_use)
454 if test x$glibcpp_cv_func_$2_use = x"yes"; then
460 dnl Check to see if the (math function) argument passed is
461 dnl declared when using the c++ compiler
462 dnl ASSUMES argument is a math function with TWO parameters
464 dnl GLIBCPP_CHECK_MATH_DECL_2
465 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_2, [
466 AC_MSG_CHECKING([for $1 declaration])
467 if test x${glibcpp_cv_func_$1_use+set} != xset; then
468 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
471 AC_TRY_COMPILE([#include <math.h>],
473 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
477 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
481 dnl Check to see if the (math function) argument passed is
482 dnl 1) declared when using the c++ compiler
483 dnl 2) has "C" linkage
485 dnl Define HAVE_CARGF etc if "cargf" is declared and links
487 dnl argument 1 is name of function to check
489 dnl ASSUMES argument is a math function with TWO parameters
491 dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2
492 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2, [
493 GLIBCPP_CHECK_MATH_DECL_2($1)
494 if test x$glibcpp_cv_func_$1_use = x"yes"; then
497 GLIBCPP_CHECK_MATH_DECL_2(_$1)
498 if test x$glibcpp_cv_func__$1_use = x"yes"; then
506 dnl Check to see if the (math function) argument passed is
507 dnl declared when using the c++ compiler
508 dnl ASSUMES argument is a math function with THREE parameters
510 dnl GLIBCPP_CHECK_MATH_DECL_3
511 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_3, [
512 AC_MSG_CHECKING([for $1 declaration])
513 if test x${glibcpp_cv_func_$1_use+set} != xset; then
514 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
517 AC_TRY_COMPILE([#include <math.h>],
519 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
523 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
527 dnl Check to see if the (math function) argument passed is
528 dnl 1) declared when using the c++ compiler
529 dnl 2) has "C" linkage
531 dnl Define HAVE_CARGF etc if "cargf" is declared and links
533 dnl argument 1 is name of function to check
535 dnl ASSUMES argument is a math function with THREE parameters
537 dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3
538 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3, [
539 GLIBCPP_CHECK_MATH_DECL_3($1)
540 if test x$glibcpp_cv_func_$1_use = x"yes"; then
543 GLIBCPP_CHECK_MATH_DECL_3(_$1)
544 if test x$glibcpp_cv_func__$1_use = x"yes"; then
552 dnl Check to see if the (stdlib function) argument passed is
553 dnl 1) declared when using the c++ compiler
554 dnl 2) has "C" linkage
556 dnl argument 1 is name of function to check
558 dnl ASSUMES argument is a math function with TWO parameters
560 dnl GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2
561 AC_DEFUN(GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2, [
562 AC_MSG_CHECKING([for $1 declaration])
563 if test x${glibcpp_cv_func_$1_use+set} != xset; then
564 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
567 AC_TRY_COMPILE([#include <stdlib.h>],
569 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
573 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
574 if test x$glibcpp_cv_func_$1_use = x"yes"; then
581 dnl Check to see if the (stdlib function) argument passed is
582 dnl 1) declared when using the c++ compiler
583 dnl 2) has "C" linkage
585 dnl argument 1 is name of function to check
587 dnl ASSUMES argument is a function with THREE parameters
589 dnl GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3
590 AC_DEFUN(GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3, [
591 AC_MSG_CHECKING([for $1 declaration])
592 if test x${glibcpp_cv_func_$1_use+set} != xset; then
593 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
596 AC_TRY_COMPILE([#include <stdlib.h>],
598 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
602 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
603 if test x$glibcpp_cv_func_$1_use = x"yes"; then
609 dnl Because the builtins are picky picky picky about the arguments they take,
610 dnl do an explict linkage tests here.
611 dnl Check to see if the (math function) argument passed is
612 dnl 1) declared when using the c++ compiler
613 dnl 2) has "C" linkage
615 dnl Define HAVE_CARGF etc if "cargf" is declared and links
617 dnl argument 1 is name of function to check
619 dnl ASSUMES argument is a math function with ONE parameter
621 dnl GLIBCPP_CHECK_BUILTIN_MATH_DECL_LINKAGE_1
622 AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1, [
623 AC_MSG_CHECKING([for $1 declaration])
624 if test x${glibcpp_cv_func_$1_use+set} != xset; then
625 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
628 AC_TRY_COMPILE([#include <math.h>],
630 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
634 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
635 if test x$glibcpp_cv_func_$1_use = x"yes"; then
636 AC_MSG_CHECKING([for $1 linkage])
637 if test x${glibcpp_cv_func_$1_link+set} != xset; then
638 AC_CACHE_VAL(glibcpp_cv_func_$1_link, [
639 AC_TRY_LINK([#include <math.h>],
641 [glibcpp_cv_func_$1_link=yes], [glibcpp_cv_func_$1_link=no])
644 AC_MSG_RESULT($glibcpp_cv_func_$1_link)
645 if test x$glibcpp_cv_func_$1_link = x"yes"; then
646 ac_tr_func=HAVE_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
647 AC_DEFINE_UNQUOTED(${ac_tr_func})
654 dnl Check to see what builtin math functions are supported
656 dnl check for __builtin_abs
657 dnl check for __builtin_fabsf
658 dnl check for __builtin_fabs
659 dnl check for __builtin_fabl
660 dnl check for __builtin_labs
661 dnl check for __builtin_sqrtf
662 dnl check for __builtin_sqrtl
663 dnl check for __builtin_sqrt
664 dnl check for __builtin_sinf
665 dnl check for __builtin_sin
666 dnl check for __builtin_sinl
667 dnl check for __builtin_cosf
668 dnl check for __builtin_cos
669 dnl check for __builtin_cosl
671 dnl GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT
672 AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT, [
673 dnl Test for builtin math functions.
674 dnl These are made in gcc/c-common.c
675 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_abs)
676 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabsf)
677 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabs)
678 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabsl)
679 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_labs)
681 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrtf)
682 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrt)
683 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrtl)
685 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sinf)
686 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sin)
687 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sinl)
689 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cosf)
690 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cos)
691 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cosl)
693 dnl There is, without a doubt, a more elegant way to have these
694 dnl names exported so that they won't be stripped out of acconfig.h by
695 dnl autoheader. I leave this as an exercise to somebody less frustrated
696 dnl than I.... please email the libstdc++ list if you can figure out a
697 dnl more elegant approach (see autoconf/acgen.m4 and specifically
698 dnl AC_CHECK_FUNC for things to steal.)
700 if test x$dummyvar = x"yes"; then
701 AC_DEFINE(HAVE___BUILTIN_ABS)
702 AC_DEFINE(HAVE___BUILTIN_LABS)
703 AC_DEFINE(HAVE___BUILTIN_COS)
704 AC_DEFINE(HAVE___BUILTIN_COSF)
705 AC_DEFINE(HAVE___BUILTIN_COSL)
706 AC_DEFINE(HAVE___BUILTIN_FABS)
707 AC_DEFINE(HAVE___BUILTIN_FABSF)
708 AC_DEFINE(HAVE___BUILTIN_FABSL)
709 AC_DEFINE(HAVE___BUILTIN_SIN)
710 AC_DEFINE(HAVE___BUILTIN_SINF)
711 AC_DEFINE(HAVE___BUILTIN_SINL)
712 AC_DEFINE(HAVE___BUILTIN_SQRT)
713 AC_DEFINE(HAVE___BUILTIN_SQRTF)
714 AC_DEFINE(HAVE___BUILTIN_SQRTL)
719 dnl Check to see what the underlying c library is like
720 dnl These checks need to do two things:
721 dnl 1) make sure the name is declared when using the c++ compiler
722 dnl 2) make sure the name has "C" linkage
723 dnl This might seem like overkill but experience has shown that it's not...
725 dnl Define HAVE_STRTOLD if "strtold" is declared and links
726 dnl Define HAVE_STRTOF if "strtof" is declared and links
727 dnl Define HAVE_DRAND48 if "drand48" is declared and links
729 dnl GLIBCPP_CHECK_STDLIB_SUPPORT
730 AC_DEFUN(GLIBCPP_CHECK_STDLIB_SUPPORT, [
731 ac_test_CXXFLAGS="${CXXFLAGS+set}"
732 ac_save_CXXFLAGS="$CXXFLAGS"
733 CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
735 GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtold)
736 GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtof)
737 AC_CHECK_FUNCS(drand48)
739 CXXFLAGS="$ac_save_CXXFLAGS"
743 dnl Check to see what the underlying c library or math library is like.
744 dnl These checks need to do two things:
745 dnl 1) make sure the name is declared when using the c++ compiler
746 dnl 2) make sure the name has "C" linkage
747 dnl This might seem like overkill but experience has shown that it's not...
749 dnl Define HAVE_CARGF etc if "cargf" is found.
751 dnl GLIBCPP_CHECK_MATH_SUPPORT
752 AC_DEFUN(GLIBCPP_CHECK_MATH_SUPPORT, [
753 ac_test_CXXFLAGS="${CXXFLAGS+set}"
754 ac_save_CXXFLAGS="$CXXFLAGS"
755 CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
758 AC_CHECK_LIB(m, sin, libm="-lm")
762 dnl Check to see if certain C math functions exist.
763 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinf)
764 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnan)
765 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finite)
766 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(copysign)
767 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincos)
768 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fpclass)
769 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(qfpclass)
770 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypot)
772 dnl Check to see if basic C math functions have float versions.
773 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(float trig,
778 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(float round,
781 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(expf)
782 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnanf)
783 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinff)
784 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(atan2f)
785 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsf)
786 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodf)
787 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpf)
788 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypotf)
789 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpf)
790 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logf)
791 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10f)
792 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(modff)
793 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(powf)
794 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtf)
795 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincosf)
796 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finitef)
798 dnl Check to see if basic C math functions have long double versions.
799 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(long double trig,
804 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(long double round,
807 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnanl)
808 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinfl)
809 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(copysignl)
810 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(atan2l)
811 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(expl)
812 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsl)
813 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodl)
814 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpl)
815 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypotl)
816 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpl)
817 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logl)
818 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10l)
819 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(modfl)
820 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(powl)
821 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtl)
822 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincosl)
823 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finitel)
825 dnl Some runtimes have these functions with a preceding underscore. Please
826 dnl keep this sync'd with the one above. And if you add any new symbol,
827 dnl please add the corresponding block in the @BOTTOM@ section of acconfig.h.
828 dnl Check to see if certain C math functions exist.
830 dnl Check to see if basic C math functions have float versions.
831 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_float trig,
833 _acosf _asinf _atanf \
835 _coshf _sinhf _tanhf)
836 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_float round,
840 dnl Check to see if basic C math functions have long double versions.
841 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_long double trig,
843 _acosl _asinl _atanl \
845 _coshl _sinhl _tanhl)
846 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_long double round,
851 CXXFLAGS="$ac_save_CXXFLAGS"
856 dnl Check to see if there is native support for complex
858 dnl Don't compile bits in math/* if native support exits.
860 dnl Define USE_COMPLEX_LONG_DOUBLE etc if "copysignl" is found.
862 dnl GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT
863 AC_DEFUN(GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT, [
864 dnl Check for complex versions of math functions of platform.
865 AC_CHECK_LIB(m, main)
866 AC_REPLACE_MATHFUNCS(nan copysignf)
868 dnl For __signbit to signbit conversions.
869 AC_CHECK_FUNCS([__signbit], , [LIBMATHOBJS="$LIBMATHOBJS signbit.lo"])
870 AC_CHECK_FUNCS([__signbitf], , [LIBMATHOBJS="$LIBMATHOBJS signbitf.lo"])
872 dnl Compile the long double complex functions only if the function
873 dnl provides the non-complex long double functions that are needed.
874 dnl Currently this includes copysignl, which should be
875 dnl cached from the GLIBCPP_CHECK_MATH_SUPPORT macro, above.
876 if test x$ac_cv_func_copysignl = x"yes"; then
877 AC_CHECK_FUNCS([__signbitl], , [LIBMATHOBJS="$LIBMATHOBJS signbitl.lo"])
880 if test -n "$LIBMATHOBJS"; then
883 AC_SUBST(LIBMATHOBJS)
884 AM_CONDITIONAL(GLIBCPP_BUILD_LIBMATH, test "$need_libmath" = yes)
888 dnl Check to see what architecture and operating system we are compiling
889 dnl for. Also, if architecture- or OS-specific flags are required for
890 dnl compilation, pick them up here.
892 dnl GLIBCPP_CHECK_HOST
893 AC_DEFUN(GLIBCPP_CHECK_HOST, [
894 . [$]{glibcpp_basedir}/configure.host
895 AC_MSG_RESULT(CPU config directory is $cpu_include_dir)
896 AC_MSG_RESULT(OS config directory is $os_include_dir)
901 dnl Check to see if this target can enable the wchar_t parts of libstdc++.
902 dnl If --disable-c-mbchar was given, no wchar_t stuff is enabled. (This
903 dnl must have been previously checked.)
905 dnl Define _GLIBCPP_USE_WCHAR_T if all the bits are found
906 dnl Define HAVE_MBSTATE_T if mbstate_t is not in wchar.h
908 dnl GLIBCPP_CHECK_WCHAR_T_SUPPORT
909 AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
910 dnl Wide characters disabled by default.
913 dnl Test wchar.h for mbstate_t, which is needed for char_traits and
914 dnl others even if wchar_t support is not on.
915 AC_MSG_CHECKING([for mbstate_t])
916 AC_TRY_COMPILE([#include <wchar.h>],
917 [mbstate_t teststate;],
918 have_mbstate_t=yes, have_mbstate_t=no)
919 AC_MSG_RESULT($have_mbstate_t)
920 if test x"$have_mbstate_t" = xyes; then
921 AC_DEFINE(HAVE_MBSTATE_T)
924 dnl Sanity check for existence of ISO C99 headers for extended encoding.
925 AC_CHECK_HEADERS(wchar.h, ac_has_wchar_h=yes, ac_has_wchar_h=no)
926 AC_CHECK_HEADERS(wctype.h, ac_has_wctype_h=yes, ac_has_wctype_h=no)
928 dnl Only continue checking if the ISO C99 headers exist and support is on.
929 if test x"$ac_has_wchar_h" = xyes &&
930 test x"$ac_has_wctype_h" = xyes &&
931 test x"$enable_c_mbchar" != xno; then
933 dnl Test wchar.h for WCHAR_MIN, WCHAR_MAX, which is needed before
934 dnl numeric_limits can instantiate type_traits<wchar_t>
935 AC_MSG_CHECKING([for WCHAR_MIN and WCHAR_MAX])
936 AC_TRY_COMPILE([#include <wchar.h>],
937 [int i = WCHAR_MIN; int j = WCHAR_MAX;],
938 has_wchar_minmax=yes, has_wchar_minmax=no)
939 AC_MSG_RESULT($has_wchar_minmax)
941 dnl Test wchar.h for WEOF, which is what we use to determine whether
942 dnl to specialize for char_traits<wchar_t> or not.
943 AC_MSG_CHECKING([for WEOF])
946 #include <stddef.h>],
948 has_weof=yes, has_weof=no)
949 AC_MSG_RESULT($has_weof)
951 dnl Tests for wide character functions used in char_traits<wchar_t>.
953 AC_CHECK_FUNCS(wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset,, \
956 dnl Checks for names injected into std:: by the c_std headers.
957 AC_CHECK_FUNCS(btowc wctob fgetwc fgetws fputwc fputws fwide \
958 fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
959 vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
960 mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
961 wcstoul wcscpy wcsncpy wcscat wcsncat wcscmp wcscoll wcsncmp wcsxfrm \
962 wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr,, \
965 AC_MSG_CHECKING([for ISO C99 wchar_t support])
966 if test x"$has_weof" = xyes &&
967 test x"$has_wchar_minmax" = xyes &&
968 test x"$ac_wfuncs" = xyes; then
969 ac_isoC99_wchar_t=yes
973 AC_MSG_RESULT($ac_isoC99_wchar_t)
975 dnl Use iconv for wchar_t to char conversions. As such, check for
976 dnl X/Open Portability Guide, version 2 features (XPG2).
977 AC_CHECK_HEADER(iconv.h, ac_has_iconv_h=yes, ac_has_iconv_h=no)
978 AC_CHECK_HEADER(langinfo.h, ac_has_langinfo_h=yes, ac_has_langinfo_h=no)
980 dnl Check for existence of libiconv.a providing XPG2 wchar_t support.
981 AC_CHECK_LIB(iconv, iconv, libiconv="-liconv")
983 LIBS="$LIBS $libiconv"
985 AC_CHECK_FUNCS(iconv_open iconv_close iconv nl_langinfo, \
986 ac_XPG2funcs=yes, ac_XPG2funcs=no)
990 AC_MSG_CHECKING([for XPG2 wchar_t support])
991 if test x"$ac_has_iconv_h" = xyes &&
992 test x"$ac_has_langinfo_h" = xyes &&
993 test x"$ac_XPG2funcs" = xyes; then
998 AC_MSG_RESULT($ac_XPG2_wchar_t)
1000 dnl At the moment, only enable wchar_t specializations if all the
1001 dnl above support is present.
1002 if test x"$ac_isoC99_wchar_t" = xyes &&
1003 test x"$ac_XPG2_wchar_t" = xyes; then
1004 AC_DEFINE(_GLIBCPP_USE_WCHAR_T)
1008 AC_MSG_CHECKING([for enabled wchar_t specializations])
1009 AC_MSG_RESULT($enable_wchar_t)
1010 AM_CONDITIONAL(GLIBCPP_TEST_WCHAR_T, test "$enable_wchar_t" = yes)
1015 dnl Check to see if debugging libraries are to be built.
1017 dnl GLIBCPP_ENABLE_DEBUG
1020 dnl builds a separate set of debugging libraries in addition to the
1021 dnl normal (shared, static) libstdc++ binaries.
1024 dnl builds only one (non-debug) version of libstdc++.
1026 dnl --enable-debug-flags=FLAGS
1027 dnl iff --enable-debug == yes, then use FLAGS to build the debug library.
1029 dnl + Usage: GLIBCPP_ENABLE_DEBUG[(DEFAULT)]
1030 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
1031 dnl defaults to `no'.
1032 AC_DEFUN(GLIBCPP_ENABLE_DEBUG, [dnl
1033 define([GLIBCPP_ENABLE_DEBUG_DEFAULT], ifelse($1, yes, yes, no))dnl
1034 AC_ARG_ENABLE(debug,
1035 changequote(<<, >>)dnl
1036 << --enable-debug build extra debug library [default=>>GLIBCPP_ENABLE_DEBUG_DEFAULT],
1037 changequote([, ])dnl
1038 [case "${enableval}" in
1039 yes) enable_debug=yes ;;
1040 no) enable_debug=no ;;
1041 *) AC_MSG_ERROR([Unknown argument to enable/disable extra debugging]) ;;
1043 enable_debug=GLIBCPP_ENABLE_DEBUG_DEFAULT)dnl
1044 AC_MSG_CHECKING([for additional debug build])
1045 AC_MSG_RESULT($enable_debug)
1046 AM_CONDITIONAL(GLIBCPP_BUILD_DEBUG, test "$enable_debug" = yes)
1050 dnl Check for explicit debug flags.
1052 dnl GLIBCPP_ENABLE_DEBUG_FLAGS
1054 dnl --enable-debug-flags='-O1'
1055 dnl is a general method for passing flags to be used when
1056 dnl building debug libraries with --enable-debug.
1058 dnl --disable-debug-flags does nothing.
1059 dnl + Usage: GLIBCPP_ENABLE_DEBUG_FLAGS(default flags)
1060 dnl If "default flags" is an empty string (or "none"), the effect is
1061 dnl the same as --disable or --enable=no.
1062 AC_DEFUN(GLIBCPP_ENABLE_DEBUG_FLAGS, [dnl
1063 define([GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT], ifelse($1,,, $1))dnl
1064 AC_ARG_ENABLE(debug_flags,
1065 changequote(<<, >>)dnl
1066 << --enable-debug-flags=FLAGS pass compiler FLAGS when building debug
1067 library;[default=>>GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT],
1068 changequote([, ])dnl
1069 [case "${enableval}" in
1071 -*) enable_debug_flags="${enableval}" ;;
1072 *) AC_MSG_ERROR([Unknown argument to extra debugging flags]) ;;
1074 enable_debug_flags=GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT)dnl
1076 dnl Option parsed, now set things appropriately
1077 case x"$enable_debug" in
1079 case "$enable_debug_flags" in
1081 DEBUG_FLAGS="-g3 -O0";;
1083 DEBUG_FLAGS="${enableval}"
1090 AC_SUBST(DEBUG_FLAGS)
1092 AC_MSG_CHECKING([for debug build flags])
1093 AC_MSG_RESULT($DEBUG_FLAGS)
1098 dnl Check for "unusual" flags to pass to the compiler while building.
1100 dnl GLIBCPP_ENABLE_CXX_FLAGS
1101 dnl --enable-cxx-flags='-foo -bar -baz' is a general method for passing
1102 dnl experimental flags such as -fhonor-std, -fsquangle, -Dfloat=char, etc.
1103 dnl Somehow this same set of flags must be passed when [re]building
1105 dnl --disable-cxx-flags passes nothing.
1106 dnl + See http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00131.html
1107 dnl http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00284.html
1108 dnl http://gcc.gnu.org/ml/libstdc++/2000-q1/msg00035.html
1109 dnl + Usage: GLIBCPP_ENABLE_CXX_FLAGS(default flags)
1110 dnl If "default flags" is an empty string (or "none"), the effect is
1111 dnl the same as --disable or --enable=no.
1112 AC_DEFUN(GLIBCPP_ENABLE_CXX_FLAGS, [dnl
1113 define([GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT], ifelse($1,,, $1))dnl
1114 AC_MSG_CHECKING([for extra compiler flags for building])
1115 AC_ARG_ENABLE(cxx_flags,
1116 changequote(<<, >>)dnl
1117 << --enable-cxx-flags=FLAGS pass compiler FLAGS when building library;
1118 [default=>>GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT],
1119 changequote([, ])dnl
1120 [case "x$enable_cxx_flags" in
1122 AC_MSG_ERROR([--enable-cxx-flags needs compiler flags as arguments]) ;;
1124 enable_cxx_flags='' ;;
1126 enable_cxx_flags="$enableval" ;;
1128 enable_cxx_flags=GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT)
1130 dnl Run through flags (either default or command-line) and set anything
1131 dnl extra (e.g., #defines) that must accompany particular g++ options.
1132 if test -n "$enable_cxx_flags"; then
1133 for f in $enable_cxx_flags; do
1137 *) # and we're trying to pass /what/ exactly?
1138 AC_MSG_ERROR([compiler flags start with a -]) ;;
1142 EXTRA_CXX_FLAGS="$enable_cxx_flags"
1143 AC_MSG_RESULT($EXTRA_CXX_FLAGS)
1144 AC_SUBST(EXTRA_CXX_FLAGS)
1149 dnl Check for which locale library to use: gnu or generic.
1151 dnl GLIBCPP_ENABLE_CLOCALE
1152 dnl --enable-clocale=gnu sets config/locale/c_locale_gnu.cc and friends
1153 dnl --enable-clocale=generic sets config/locale/c_locale_generic.cc and friends
1155 dnl default is generic
1157 AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
1158 AC_MSG_CHECKING([for clocale to use])
1159 AC_ARG_ENABLE(clocale,
1160 [ --enable-clocale enable model for target locale package.
1161 --enable-clocale=MODEL use MODEL target-speific locale package. [default=generic]
1163 if test x$enable_clocale = xno; then
1168 enable_clocale_flag=$enable_clocale
1170 dnl Probe for locale support if no specific model is specified.
1171 dnl Default to "generic"
1172 if test x$enable_clocale_flag = xno; then
1173 case x${target_os} in
1175 AC_EGREP_CPP([_GLIBCPP_ok], [
1176 #include <features.h>
1177 #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
1180 ], enable_clocale_flag=gnu, enable_clocale_flag=generic)
1182 # Test for bugs early in glibc-2.2.x series
1183 if test x$enable_clocale_flag = xgnu; then
1185 #define _GNU_SOURCE 1
1188 #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
1189 extern __typeof(newlocale) __newlocale;
1190 extern __typeof(duplocale) __duplocale;
1191 extern __typeof(strcoll_l) __strcoll_l;
1195 const char __one[] = "Äuglein Augmen";
1196 const char __two[] = "Äuglein";
1201 loc = __newlocale(1 << LC_ALL, "de_DE", 0);
1202 loc_dup = __duplocale(loc);
1203 i = __strcoll_l(__one, __two, loc);
1204 j = __strcoll_l(__one, __two, loc_dup);
1208 [enable_clocale_flag=gnu],[enable_clocale_flag=generic],
1209 [enable_clocale_flag=generic])
1212 # ... at some point put __strxfrm_l tests in as well.
1215 enable_clocale_flag=generic
1220 dnl Deal with gettext issues.
1222 [ --enable-nls use Native Language Support (default)],
1226 dnl Set configure bits for specified locale package
1227 case x${enable_clocale_flag} in
1229 AC_MSG_RESULT(generic)
1231 CLOCALE_H=config/locale/generic/c_locale.h
1232 CLOCALE_CC=config/locale/generic/c_locale.cc
1233 CCODECVT_H=config/locale/generic/codecvt_specializations.h
1234 CCODECVT_CC=config/locale/generic/codecvt_members.cc
1235 CCOLLATE_CC=config/locale/generic/collate_members.cc
1236 CCTYPE_CC=config/locale/generic/ctype_members.cc
1237 CMESSAGES_H=config/locale/generic/messages_members.h
1238 CMESSAGES_CC=config/locale/generic/messages_members.cc
1239 CMONEY_CC=config/locale/generic/monetary_members.cc
1240 CNUMERIC_CC=config/locale/generic/numeric_members.cc
1241 CTIME_H=config/locale/generic/time_members.h
1242 CTIME_CC=config/locale/generic/time_members.cc
1243 CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
1248 # Declare intention to use gettext, and add support for specific
1250 # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
1253 # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
1254 AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no)
1255 if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
1258 # Export the build objects.
1259 for ling in $ALL_LINGUAS; do \
1260 glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \
1261 glibcpp_POFILES="$glibcpp_POFILES $ling.po"; \
1263 AC_SUBST(glibcpp_MOFILES)
1264 AC_SUBST(glibcpp_POFILES)
1266 CLOCALE_H=config/locale/gnu/c_locale.h
1267 CLOCALE_CC=config/locale/gnu/c_locale.cc
1268 CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h
1269 CCODECVT_CC=config/locale/gnu/codecvt_members.cc
1270 CCOLLATE_CC=config/locale/gnu/collate_members.cc
1271 CCTYPE_CC=config/locale/gnu/ctype_members.cc
1272 CMESSAGES_H=config/locale/gnu/messages_members.h
1273 CMESSAGES_CC=config/locale/gnu/messages_members.cc
1274 CMONEY_CC=config/locale/gnu/monetary_members.cc
1275 CNUMERIC_CC=config/locale/gnu/numeric_members.cc
1276 CTIME_H=config/locale/gnu/time_members.h
1277 CTIME_CC=config/locale/gnu/time_members.cc
1278 CLOCALE_INTERNAL_H=config/locale/gnu/c++locale_internal.h
1281 AC_MSG_RESULT(IEEE 1003.1)
1283 CLOCALE_H=config/locale/ieee_1003.1-2001/c_locale.h
1284 CLOCALE_CC=config/locale/ieee_1003.1-2001/c_locale.cc
1285 CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h
1286 CCODECVT_CC=config/locale/generic/codecvt_members.cc
1287 CCOLLATE_CC=config/locale/generic/collate_members.cc
1288 CCTYPE_CC=config/locale/generic/ctype_members.cc
1289 CMESSAGES_H=config/locale/ieee_1003.1-2001/messages_members.h
1290 CMESSAGES_CC=config/locale/ieee_1003.1-2001/messages_members.cc
1291 CMONEY_CC=config/locale/generic/monetary_members.cc
1292 CNUMERIC_CC=config/locale/generic/numeric_members.cc
1293 CTIME_H=config/locale/generic/time_members.h
1294 CTIME_CC=config/locale/generic/time_members.cc
1295 CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
1298 echo "$enable_clocale is an unknown locale package" 1>&2
1303 # This is where the testsuite looks for locale catalogs, using the
1304 # -DLOCALEDIR define during testsuite compilation.
1305 glibcpp_localedir=${glibcpp_builddir}/po/share/locale
1306 AC_SUBST(glibcpp_localedir)
1308 # A standalone libintl (e.g., GNU libintl) may be in use.
1309 if test $USE_NLS = yes; then
1310 AC_CHECK_HEADERS([libintl.h], [], USE_NLS=no)
1311 AC_SEARCH_LIBS(gettext, intl, [], USE_NLS=no)
1313 if test $USE_NLS = yes; then
1314 AC_DEFINE(_GLIBCPP_USE_NLS)
1319 AC_SUBST(CCODECVT_H)
1320 AC_SUBST(CMESSAGES_H)
1321 AC_SUBST(CCODECVT_CC)
1322 AC_SUBST(CCOLLATE_CC)
1324 AC_SUBST(CMESSAGES_CC)
1326 AC_SUBST(CNUMERIC_CC)
1329 AC_SUBST(CLOCALE_CC)
1330 AC_SUBST(CLOCALE_INTERNAL_H)
1335 dnl Check for which I/O library to use: libio, or something specific.
1337 dnl GLIBCPP_ENABLE_CSTDIO
1338 dnl --enable-cstdio=libio sets config/io/c_io_libio.h and friends
1340 dnl default is stdio
1342 AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [
1343 AC_MSG_CHECKING([for cstdio to use])
1344 AC_ARG_ENABLE(cstdio,
1345 [ --enable-cstdio enable stdio for target io package.
1346 --enable-cstdio=LIB use LIB target-speific io package. [default=stdio]
1348 if test x$enable_cstdio = xno; then
1351 enable_cstdio=stdio)
1353 enable_cstdio_flag=$enable_cstdio
1355 dnl Check if a valid I/O package
1356 case x${enable_cstdio_flag} in
1358 CSTDIO_H=config/io/c_io_libio.h
1359 BASIC_FILE_H=config/io/basic_file_libio.h
1360 BASIC_FILE_CC=config/io/basic_file_libio.cc
1361 AC_MSG_RESULT(libio)
1363 # see if we are on a system with libio native (ie, linux)
1364 AC_CHECK_HEADER(libio.h, has_libio=yes, has_libio=no)
1366 # Need to check and see what version of glibc is being used. If
1367 # it's not glibc-2.2 or higher, then we'll need to go ahead and
1368 # compile most of libio for linux systems.
1369 if test x$has_libio = x"yes"; then
1372 AC_MSG_CHECKING([for glibc version >= 2.2])
1373 AC_EGREP_CPP([ok], [
1374 #include <features.h>
1375 #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
1378 ], glibc_satisfactory=yes, glibc_satisfactory=no)
1379 AC_MSG_RESULT($glibc_satisfactory)
1383 # XXX at the moment, admit defeat and force the recompilation
1384 # XXX of glibc even on glibc-2.2 systems, because libio is not synched.
1385 glibc_satisfactory=no
1387 if test x$glibc_satisfactory = x"yes"; then
1392 # bkoz XXX need to add checks to enable this
1393 # pme XXX here's a first pass at such a check
1394 if test x$enable_c_mbchar != xno; then
1402 # Using libio, but <libio.h> doesn't exist on the target system. . .
1404 # bkoz XXX need to add checks to enable this
1405 # pme XXX here's a first pass at such a check
1406 if test x$enable_c_mbchar != xno; then
1413 xstdio | x | xno | xnone | xyes)
1415 CSTDIO_H=config/io/c_io_stdio.h
1416 BASIC_FILE_H=config/io/basic_file_stdio.h
1417 BASIC_FILE_CC=config/io/basic_file_stdio.cc
1418 AC_MSG_RESULT(stdio)
1420 # We're not using stdio.
1425 echo "$enable_cstdio is an unknown io package" 1>&2
1430 AC_SUBST(BASIC_FILE_H)
1431 AC_SUBST(BASIC_FILE_CC)
1433 # 2000-08-04 bkoz hack
1434 CCODECVT_C=config/io/c_io_libio_codecvt.c
1435 AC_SUBST(CCODECVT_C)
1436 # 2000-08-04 bkoz hack
1438 AM_CONDITIONAL(GLIBCPP_BUILD_LIBIO,
1439 test "$need_libio" = yes || test "$need_wlibio" = yes)
1440 AM_CONDITIONAL(GLIBCPP_NEED_LIBIO, test "$need_libio" = yes)
1441 AM_CONDITIONAL(GLIBCPP_NEED_WLIBIO, test "$need_wlibio" = yes)
1442 if test "$need_libio" = yes || test "$need_wlibio" = yes; then
1443 libio_la=../libio/libio.la
1452 dnl Check to see if building and using a C++ precompiled header can be done.
1454 dnl GLIBCPP_CHECK_PCH
1456 dnl If it looks like it may work, flip bits on in include/Makefile.am
1458 AC_DEFUN(GLIBCPP_CHECK_PCH, [
1459 ac_test_CXXFLAGS="${CXXFLAGS+set}"
1460 ac_save_CXXFLAGS="$CXXFLAGS"
1461 CXXFLAGS='-Werror -Winvalid-pch -Wno-deprecated -x c++-header'
1463 AC_MSG_CHECKING([for compiler that seems to compile .gch files])
1464 if test x${glibcpp_pch_comp+set} != xset; then
1465 AC_CACHE_VAL(glibcpp_pch_comp, [
1468 AC_TRY_COMPILE([#include <math.h>
1471 [glibcpp_pch_comp=yes], [glibcpp_pch_comp=no])
1475 AC_MSG_RESULT([$glibcpp_pch_comp])
1477 CXXFLAGS="$ac_save_CXXFLAGS"
1478 AM_CONDITIONAL(GLIBCPP_BUILD_PCH, test "$glibcpp_pch_comp" = yes)
1482 dnl Setup to use the gcc gthr.h thread-specific memory and mutex model.
1483 dnl We must stage the required headers so that they will be installed
1484 dnl with the library (unlike libgcc, the STL implementation is provided
1485 dnl solely within headers). Since we must not inject random user-space
1486 dnl macro names into user-provided C++ code, we first stage into <file>-in
1487 dnl and process to <file> with an output command. The reason for a two-
1488 dnl stage process here is to correctly handle $srcdir!=$objdir without
1489 dnl having to write complex code (the sed commands to clean the macro
1490 dnl namespace are complex and fragile enough as it is). We must also
1491 dnl add a relative path so that -I- is supported properly.
1493 AC_DEFUN(GLIBCPP_ENABLE_THREADS, [
1494 AC_MSG_CHECKING([for thread model used by GCC])
1495 target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
1496 AC_MSG_RESULT([$target_thread_file])
1498 if test $target_thread_file != single; then
1499 AC_DEFINE(HAVE_GTHR_DEFAULT)
1500 AC_DEFINE(_GLIBCPP_SUPPORTS_WEAK, __GXX_WEAK__)
1503 glibcpp_thread_h=gthr-$target_thread_file.h
1504 AC_SUBST(glibcpp_thread_h)
1509 dnl Check for exception handling support. If an explicit enable/disable
1510 dnl sjlj exceptions is given, we don't have to detect. Otherwise the
1511 dnl target may or may not support call frame exceptions.
1513 dnl GLIBCPP_ENABLE_SJLJ_EXCEPTIONS
1514 dnl --enable-sjlj-exceptions forces the use of builtin setjmp.
1515 dnl --disable-sjlj-exceptions forces the use of call frame unwinding.
1517 dnl Define _GLIBCPP_SJLJ_EXCEPTIONS if the compiler is configured for it.
1519 AC_DEFUN(GLIBCPP_ENABLE_SJLJ_EXCEPTIONS, [
1520 AC_MSG_CHECKING([for exception model to use])
1523 AC_ARG_ENABLE(sjlj-exceptions,
1524 [ --enable-sjlj-exceptions force use of builtin_setjmp for exceptions],
1526 [dnl Botheration. Now we've got to detect the exception model.
1527 dnl Link tests against libgcc.a are problematic since -- at least
1528 dnl as of this writing -- we've not been given proper -L bits for
1529 dnl single-tree newlib and libgloss.
1531 dnl This is what AC_TRY_COMPILE would do if it didn't delete the
1532 dnl conftest files before we got a change to grep them first.
1533 cat > conftest.$ac_ext << EOF
1534 [#]line __oline__ "configure"
1543 old_CXXFLAGS="$CXXFLAGS"
1545 if AC_TRY_EVAL(ac_compile); then
1546 if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then
1547 enable_sjlj_exceptions=yes
1548 elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then
1549 enable_sjlj_exceptions=no
1552 CXXFLAGS="$old_CXXFLAGS"
1554 if test x$enable_sjlj_exceptions = xyes; then
1555 AC_DEFINE(_GLIBCPP_SJLJ_EXCEPTIONS, 1,
1556 [Define if the compiler is configured for setjmp/longjmp exceptions.])
1557 ac_exception_model_name=sjlj
1558 elif test x$enable_sjlj_exceptions = xno; then
1559 ac_exception_model_name="call frame"
1561 AC_MSG_ERROR([unable to detect exception model])
1564 AC_MSG_RESULT($ac_exception_model_name)
1569 dnl Check for libunwind exception handling support. If enabled then
1570 dnl we assume that the _Unwind_* functions that make up the Unwind ABI
1571 dnl (_Unwind_RaiseException, _Unwind_Resume, etc.) are defined by
1572 dnl libunwind instead of libgcc and that libstdc++ has a dependency
1573 dnl on libunwind as well as libgcc.
1575 dnl GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS
1576 dnl --enable-libunwind-exceptions forces the use of libunwind.
1577 dnl --disable-libunwind-exceptions assumes there is no libunwind.
1579 dnl Define _GLIBCPP_LIBUNWIND_EXCEPTIONS if requested.
1581 AC_DEFUN(GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS, [
1582 AC_MSG_CHECKING([for use of libunwind])
1583 AC_ARG_ENABLE(libunwind-exceptions,
1584 [ --enable-libunwind-exceptions force use of libunwind for exceptions],
1585 use_libunwind_exceptions=$enableval,
1586 use_libunwind_exceptions=no)
1587 AC_MSG_RESULT($use_libunwind_exceptions)
1588 dnl Option parsed, now set things appropriately
1589 if test x"$use_libunwind_exceptions" = xyes; then
1590 LIBUNWIND_FLAG="-lunwind"
1594 AC_SUBST(LIBUNWIND_FLAG)
1598 dnl Check for ISO/IEC 9899:1999 "C99" support.
1600 dnl GLIBCPP_ENABLE_C99
1601 dnl --enable-c99 defines _GLIBCPP_USE_C99
1602 dnl --disable-c99 leaves _GLIBCPP_USE_C99 undefined
1603 dnl + Usage: GLIBCPP_ENABLE_C99[(DEFAULT)]
1604 dnl Where DEFAULT is either `yes' or `no'. If omitted, it
1605 dnl defaults to `no'.
1606 dnl + If 'C99' stuff is not available, ignores DEFAULT and sets `no'.
1608 dnl GLIBCPP_ENABLE_C99
1609 AC_DEFUN(GLIBCPP_ENABLE_C99, [dnl
1610 define([GLIBCPP_ENABLE_C99_DEFAULT], ifelse($1, yes, yes, no))dnl
1613 changequote(<<, >>)dnl
1614 <<--enable-c99 turns on 'ISO/IEC 9899:1999 support' [default=>>GLIBCPP_ENABLE_C99_DEFAULT],
1615 changequote([, ])dnl
1616 [case "$enableval" in
1617 yes) enable_c99=yes ;;
1618 no) enable_c99=no ;;
1619 *) AC_MSG_ERROR([Unknown argument to enable/disable C99]) ;;
1621 enable_c99=GLIBCPP_ENABLE_C99_DEFAULT)dnl
1626 # Check for the existence of <math.h> functions used if C99 is enabled.
1628 AC_MSG_CHECKING([for ISO C99 support in <math.h>])
1629 AC_TRY_COMPILE([#include <math.h>],[fpclassify(0.0);],, [ac_c99_math=no])
1630 AC_TRY_COMPILE([#include <math.h>],[isfinite(0.0);],, [ac_c99_math=no])
1631 AC_TRY_COMPILE([#include <math.h>],[isinf(0.0);],, [ac_c99_math=no])
1632 AC_TRY_COMPILE([#include <math.h>],[isnan(0.0);],, [ac_c99_math=no])
1633 AC_TRY_COMPILE([#include <math.h>],[isnormal(0.0);],, [ac_c99_math=no])
1634 AC_TRY_COMPILE([#include <math.h>],[signbit(0.0);],, [ac_c99_math=no])
1635 AC_TRY_COMPILE([#include <math.h>],[isgreater(0.0,0.0);],, [ac_c99_math=no])
1636 AC_TRY_COMPILE([#include <math.h>],
1637 [isgreaterequal(0.0,0.0);],, [ac_c99_math=no])
1638 AC_TRY_COMPILE([#include <math.h>],[isless(0.0,0.0);],, [ac_c99_math=no])
1639 AC_TRY_COMPILE([#include <math.h>],[islessequal(0.0,0.0);],,[ac_c99_math=no])
1640 AC_TRY_COMPILE([#include <math.h>],
1641 [islessgreater(0.0,0.0);],, [ac_c99_math=no])
1642 AC_TRY_COMPILE([#include <math.h>],
1643 [isunordered(0.0,0.0);],, [ac_c99_math=no])
1644 AC_MSG_RESULT($ac_c99_math)
1646 # Check for the existence in <stdio.h> of vscanf, et. al.
1648 AC_MSG_CHECKING([for ISO C99 support in <stdio.h>])
1649 AC_TRY_COMPILE([#include <stdio.h>],
1650 [snprintf("12", 0, "%i");],, [ac_c99_stdio=no])
1651 AC_TRY_COMPILE([#include <stdio.h>
1653 void foo(char* fmt, ...)
1654 {va_list args; va_start(args, fmt);
1655 vfscanf(stderr, "%i", args);}],
1656 [],, [ac_c99_stdio=no])
1657 AC_TRY_COMPILE([#include <stdio.h>
1659 void foo(char* fmt, ...)
1660 {va_list args; va_start(args, fmt);
1661 vscanf("%i", args);}],
1662 [],, [ac_c99_stdio=no])
1663 AC_TRY_COMPILE([#include <stdio.h>
1665 void foo(char* fmt, ...)
1666 {va_list args; va_start(args, fmt);
1667 vsnprintf(fmt, 0, "%i", args);}],
1668 [],, [ac_c99_stdio=no])
1669 AC_TRY_COMPILE([#include <stdio.h>
1671 void foo(char* fmt, ...)
1672 {va_list args; va_start(args, fmt);
1673 vsscanf(fmt, "%i", args);}],
1674 [],, [ac_c99_stdio=no])
1675 AC_MSG_RESULT($ac_c99_stdio)
1677 # Check for the existence in <stdlib.h> of lldiv_t, et. al.
1679 AC_MSG_CHECKING([for lldiv_t declaration])
1680 AC_CACHE_VAL(ac_c99_lldiv_t, [
1681 AC_TRY_COMPILE([#include <stdlib.h>],
1683 [ac_c99_lldiv_t=yes], [ac_c99_lldiv_t=no])
1685 AC_MSG_RESULT($ac_c99_lldiv_t)
1687 AC_MSG_CHECKING([for ISO C99 support in <stdlib.h>])
1688 AC_TRY_COMPILE([#include <stdlib.h>],
1689 [char* tmp; strtof("gnu", &tmp);],, [ac_c99_stdlib=no])
1690 AC_TRY_COMPILE([#include <stdlib.h>],
1691 [char* tmp; strtold("gnu", &tmp);],, [ac_c99_stdlib=no])
1692 AC_TRY_COMPILE([#include <stdlib.h>], [llabs(10);],, [ac_c99_stdlib=no])
1693 AC_TRY_COMPILE([#include <stdlib.h>], [lldiv(10,1);],, [ac_c99_stdlib=no])
1694 AC_TRY_COMPILE([#include <stdlib.h>], [atoll("10");],, [ac_c99_stdlib=no])
1695 AC_TRY_COMPILE([#include <stdlib.h>], [_Exit(0);],, [ac_c99_stdlib=no])
1696 if test x"$ac_c99_lldiv_t" = x"no"; then
1699 AC_MSG_RESULT($ac_c99_stdlib)
1701 # Check for the existence of <wchar.h> functions used if C99 is enabled.
1702 # XXX the wchar.h checks should be rolled into the general C99 bits.
1704 AC_MSG_CHECKING([for additional ISO C99 support in <wchar.h>])
1705 AC_TRY_COMPILE([#include <wchar.h>],
1706 [wcstold(L"10.0", NULL);],, [ac_c99_wchar=no])
1707 AC_TRY_COMPILE([#include <wchar.h>],
1708 [wcstoll(L"10", NULL, 10);],, [ac_c99_wchar=no])
1709 AC_TRY_COMPILE([#include <wchar.h>],
1710 [wcstoull(L"10", NULL, 10);],, [ac_c99_wchar=no])
1711 AC_MSG_RESULT($ac_c99_wchar)
1713 AC_MSG_CHECKING([for enabled ISO C99 support])
1714 if test x"$ac_c99_math" = x"no" ||
1715 test x"$ac_c99_stdio" = x"no" ||
1716 test x"$ac_c99_stdlib" = x"no" ||
1717 test x"$ac_c99_wchar" = x"no"; then
1720 AC_MSG_RESULT($enable_c99)
1722 # Option parsed, now set things appropriately
1723 if test x"$enable_c99" = x"yes"; then
1724 AC_DEFINE(_GLIBCPP_USE_C99)
1732 dnl Check for template specializations for the 'long long' type extension.
1733 dnl The result determines only whether 'long long' I/O is enabled; things
1734 dnl like numeric_limits<> specializations are always available.
1736 dnl GLIBCPP_ENABLE_LONG_LONG
1737 dnl --enable-long-long defines _GLIBCPP_USE_LONG_LONG
1738 dnl --disable-long-long leaves _GLIBCPP_USE_LONG_LONG undefined
1739 dnl + Usage: GLIBCPP_ENABLE_LONG_LONG[(DEFAULT)]
1740 dnl Where DEFAULT is either `yes' or `no'. If omitted, it
1741 dnl defaults to `no'.
1742 dnl + If 'long long' stuff is not available, ignores DEFAULT and sets `no'.
1744 dnl GLIBCPP_ENABLE_LONG_LONG
1745 AC_DEFUN(GLIBCPP_ENABLE_LONG_LONG, [dnl
1746 define([GLIBCPP_ENABLE_LONG_LONG_DEFAULT], ifelse($1, yes, yes, no))dnl
1748 AC_ARG_ENABLE(long-long,
1749 changequote(<<, >>)dnl
1750 <<--enable-long-long turns on 'long long' [default=>>GLIBCPP_ENABLE_LONG_LONG_DEFAULT],
1751 changequote([, ])dnl
1752 [case "$enableval" in
1753 yes) enable_long_long=yes ;;
1754 no) enable_long_long=no ;;
1755 *) AC_MSG_ERROR([Unknown argument to enable/disable long long]) ;;
1757 enable_long_long=GLIBCPP_ENABLE_LONG_LONG_DEFAULT)dnl
1762 AC_MSG_CHECKING([for enabled long long I/O support])
1763 # iostreams require strtoll, strtoull to compile
1764 AC_TRY_COMPILE([#include <stdlib.h>],
1765 [char* tmp; strtoll("gnu", &tmp, 10);],,[enable_long_long=no])
1766 AC_TRY_COMPILE([#include <stdlib.h>],
1767 [char* tmp; strtoull("gnu", &tmp, 10);],,[enable_long_long=no])
1769 # Option parsed, now set things appropriately
1770 if test x"$enable_long_long" = xyes; then
1771 AC_DEFINE(_GLIBCPP_USE_LONG_LONG)
1773 AC_MSG_RESULT($enable_long_long)
1780 dnl Check for what type of C headers to use.
1782 dnl GLIBCPP_ENABLE_CHEADERS
1783 dnl --enable-cheaders= [does stuff].
1784 dnl --disable-cheaders [does not do anything, really].
1785 dnl + Usage: GLIBCPP_ENABLE_CHEADERS[(DEFAULT)]
1786 dnl Where DEFAULT is either `c' or `c_std'.
1787 dnl If ommitted, it defaults to `c_std'.
1788 AC_DEFUN(GLIBCPP_ENABLE_CHEADERS, [dnl
1789 define([GLIBCPP_ENABLE_CHEADERS_DEFAULT], ifelse($1, c_std, c_std, c_std))dnl
1790 AC_MSG_CHECKING([for c header strategy to use])
1791 AC_ARG_ENABLE(cheaders,
1792 changequote(<<, >>)dnl
1793 << --enable-cheaders=MODEL construct "C" header files for g++ [default=>>GLIBCPP_ENABLE_CHEADERS_DEFAULT],
1795 [case "$enableval" in
1800 enable_cheaders=c_std
1802 *) AC_MSG_ERROR([Unknown argument to enable/disable "C" headers])
1805 enable_cheaders=GLIBCPP_ENABLE_CHEADERS_DEFAULT)
1806 AC_MSG_RESULT($enable_cheaders)
1808 dnl Option parsed, now set things appropriately
1809 case "$enable_cheaders" in
1811 C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std'
1814 C_INCLUDE_DIR='${glibcpp_srcdir}/include/c'
1818 AC_SUBST(C_INCLUDE_DIR)
1819 AM_CONDITIONAL(GLIBCPP_C_HEADERS_C, test "$enable_cheaders" = c)
1820 AM_CONDITIONAL(GLIBCPP_C_HEADERS_C_STD, test "$enable_cheaders" = c_std)
1821 AM_CONDITIONAL(GLIBCPP_C_HEADERS_COMPATIBILITY, test "$c_compatibility" = yes)
1826 dnl Check for wide character support. Has the same effect as the option
1827 dnl in gcc's configure, but in a form that autoconf can mess with.
1829 dnl GLIBCPP_ENABLE_C_MBCHAR
1830 dnl --enable-c-mbchar requests all the wchar_t stuff.
1831 dnl --disable-c-mbchar doesn't.
1832 dnl + Usage: GLIBCPP_ENABLE_C_MBCHAR[(DEFAULT)]
1833 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
1834 dnl defaults to `no'.
1835 AC_DEFUN(GLIBCPP_ENABLE_C_MBCHAR, [dnl
1836 define([GLIBCPP_ENABLE_C_MBCHAR_DEFAULT], ifelse($1, yes, yes, no))dnl
1837 AC_ARG_ENABLE(c-mbchar,
1838 changequote(<<, >>)dnl
1839 << --enable-c-mbchar enable multibyte (wide) characters [default=>>GLIBCPP_ENABLE_C_MBCHAR_DEFAULT],
1840 changequote([, ])dnl
1841 [case "$enableval" in
1842 yes) enable_c_mbchar=yes ;;
1843 no) enable_c_mbchar=no ;;
1844 *) AC_MSG_ERROR([Unknown argument to enable/disable c-mbchar]) ;;
1846 enable_c_mbchar=GLIBCPP_ENABLE_C_MBCHAR_DEFAULT)dnl
1847 dnl Option parsed, now other scripts can test enable_c_mbchar for yes/no.
1852 dnl Set up *_INCLUDES and *_INCLUDE_DIR variables for all sundry Makefile.am's.
1854 dnl TOPLEVEL_INCLUDES
1855 dnl LIBMATH_INCLUDES
1856 dnl LIBSUPCXX_INCLUDES
1859 dnl GLIBCPP_EXPORT_INCLUDES
1860 AC_DEFUN(GLIBCPP_EXPORT_INCLUDES, [
1861 # Root level of the build directory include sources.
1862 GLIBCPP_INCLUDES="-I${glibcpp_builddir}/include/${target_alias} -I${glibcpp_builddir}/include"
1864 # Passed down for canadian crosses.
1865 if test x"$CANADIAN" = xyes; then
1866 TOPLEVEL_INCLUDES='-I$(includedir)'
1869 LIBMATH_INCLUDES='-I$(top_srcdir)/libmath'
1871 LIBSUPCXX_INCLUDES='-I$(top_srcdir)/libsupc++'
1873 if test x"$need_libio" = xyes; then
1874 LIBIO_INCLUDES='-I$(top_builddir)/libio -I$(top_srcdir)/libio'
1875 AC_SUBST(LIBIO_INCLUDES)
1878 # Now, export this to all the little Makefiles....
1879 AC_SUBST(GLIBCPP_INCLUDES)
1880 AC_SUBST(TOPLEVEL_INCLUDES)
1881 AC_SUBST(LIBMATH_INCLUDES)
1882 AC_SUBST(LIBSUPCXX_INCLUDES)
1887 dnl Set up *_FLAGS and *FLAGS variables for all sundry Makefile.am's.
1889 AC_DEFUN(GLIBCPP_EXPORT_FLAGS, [
1890 # Optimization flags that are probably a good idea for thrill-seekers. Just
1891 # uncomment the lines below and make, everything else is ready to go...
1892 # OPTIMIZE_CXXFLAGS = -O3 -fstrict-aliasing -fvtable-gc
1894 AC_SUBST(OPTIMIZE_CXXFLAGS)
1896 WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings'
1897 AC_SUBST(WARN_FLAGS)
1901 dnl GLIBCPP_EXPORT_INSTALL_INFO
1902 dnl calculates gxx_install_dir
1903 dnl exports glibcpp_toolexecdir
1904 dnl exports glibcpp_toolexeclibdir
1905 dnl exports glibcpp_prefixdir
1907 dnl Assumes cross_compiling bits already done, and with_cross_host in
1910 dnl GLIBCPP_EXPORT_INSTALL_INFO
1911 AC_DEFUN(GLIBCPP_EXPORT_INSTALL_INFO, [
1912 # Assumes glibcpp_builddir, glibcpp_srcdir are alreay set up and
1913 # exported correctly in GLIBCPP_CONFIGURE.
1914 glibcpp_toolexecdir=no
1915 glibcpp_toolexeclibdir=no
1916 glibcpp_prefixdir=${prefix}
1918 # Process the option --with-gxx-include-dir=<path to include-files directory>
1919 AC_MSG_CHECKING([for --with-gxx-include-dir])
1920 AC_ARG_WITH(gxx-include-dir,
1921 [ --with-gxx-include-dir the installation directory for include files],
1922 [case "${withval}" in
1924 AC_MSG_ERROR(Missing directory for --with-gxx-include-dir)
1931 gxx_include_dir=${withval}
1933 esac], [gxx_include_dir=no])
1934 AC_MSG_RESULT($gxx_include_dir)
1936 # Process the option "--enable-version-specific-runtime-libs"
1937 AC_MSG_CHECKING([for --enable-version-specific-runtime-libs])
1938 AC_ARG_ENABLE(version-specific-runtime-libs,
1939 [ --enable-version-specific-runtime-libs Specify that runtime libraries should be installed in a compiler-specific directory ],
1940 [case "$enableval" in
1941 yes) version_specific_libs=yes ;;
1942 no) version_specific_libs=no ;;
1943 *) AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);;
1945 version_specific_libs=no)dnl
1946 # Option set, now we can test it.
1947 AC_MSG_RESULT($version_specific_libs)
1949 # Default case for install directory for include files.
1950 if test $version_specific_libs = no && test $gxx_include_dir = no; then
1951 gxx_include_dir='$(prefix)'/include/c++/${gcc_version}
1954 # Version-specific runtime libs processing.
1955 if test $version_specific_libs = yes; then
1956 # Need the gcc compiler version to know where to install libraries
1957 # and header files if --enable-version-specific-runtime-libs option
1959 if test x"$gxx_include_dir" = x"no"; then
1960 gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/c++
1962 glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
1963 glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)'
1966 # Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir
1967 # Install a library built with a cross compiler in tooldir, not libdir.
1968 if test x"$glibcpp_toolexecdir" = x"no"; then
1969 if test -n "$with_cross_host" &&
1970 test x"$with_cross_host" != x"no"; then
1971 glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)'
1972 glibcpp_toolexeclibdir='$(toolexecdir)/lib'
1974 glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
1975 glibcpp_toolexeclibdir='$(libdir)'
1977 multi_os_directory=`$CC -print-multi-os-directory`
1978 case $multi_os_directory in
1979 .) ;; # Avoid trailing /.
1980 *) glibcpp_toolexeclibdir=$glibcpp_toolexeclibdir/$multi_os_directory ;;
1984 AC_MSG_CHECKING([for install location])
1985 AC_MSG_RESULT($gxx_include_dir)
1987 AC_SUBST(glibcpp_prefixdir)
1988 AC_SUBST(gxx_include_dir)
1989 AC_SUBST(glibcpp_toolexecdir)
1990 AC_SUBST(glibcpp_toolexeclibdir)
1994 # Check for functions in math library.
1995 # Ulrich Drepper <drepper@cygnus.com>, 1998.
1997 # This file can be copied and used freely without restrictions. It can
1998 # be used in projects which are not available under the GNU Public License
1999 # but which still want to provide support for the GNU gettext functionality.
2000 # Please note that the actual code is *not* freely available.
2004 dnl AC_REPLACE_MATHFUNCS(FUNCTION...)
2005 AC_DEFUN(AC_REPLACE_MATHFUNCS,
2006 [AC_CHECK_FUNCS([$1], , [LIBMATHOBJS="$LIBMATHOBJS ${ac_func}.lo"])])
2009 dnl This macro searches for a GNU version of make. If a match is found, the
2010 dnl makefile variable `ifGNUmake' is set to the empty string, otherwise it is
2011 dnl set to "#". This is useful for including a special features in a Makefile,
2012 dnl which cannot be handled by other versions of make. The variable
2013 dnl _cv_gnu_make_command is set to the command to invoke GNU make if it exists,
2014 dnl the empty string otherwise.
2016 dnl Here is an example of its use:
2018 dnl Makefile.in might contain:
2020 dnl # A failsafe way of putting a dependency rule into a makefile
2022 dnl $(CC) -MM $(srcdir)/*.c > $(DEPEND)
2024 dnl @ifGNUmake@ ifeq ($(DEPEND),$(wildcard $(DEPEND)))
2025 dnl @ifGNUmake@ include $(DEPEND)
2026 dnl @ifGNUmake@ endif
2028 dnl Then configure.in would normally contain:
2030 dnl CHECK_GNU_MAKE()
2031 dnl AC_OUTPUT(Makefile)
2033 dnl Then perhaps to cause gnu make to override any other make, we could do
2034 dnl something like this (note that GNU make always looks for GNUmakefile first):
2036 dnl if ! test x$_cv_gnu_make_command = x ; then
2037 dnl mv Makefile GNUmakefile
2038 dnl echo .DEFAULT: > Makefile ;
2039 dnl echo \ $_cv_gnu_make_command \$@ >> Makefile;
2042 dnl Then, if any (well almost any) other make is called, and GNU make also
2043 dnl exists, then the other make wraps the GNU make.
2045 dnl @author John Darrington <j.darrington@elvis.murdoch.edu.au>
2046 dnl @version 1.1 #### replaced Id string now that Id is for lib-v3; pme
2048 dnl #### Changes for libstdc++-v3: reformatting and linewrapping; prepending
2049 dnl #### GLIBCPP_ to the macro name; adding the :-make fallback in the
2050 dnl #### conditional's subshell (" --version" is not a command), using a
2051 dnl #### different option to grep(1).
2053 dnl #### Fixed Bourne shell portability bug (use ${MAKE-make}, not
2054 dnl #### ${MAKE:-make}).
2057 GLIBCPP_CHECK_GNU_MAKE, [AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command,
2058 _cv_gnu_make_command='' ;
2059 dnl Search all the common names for GNU make
2060 for a in "${MAKE-make}" make gmake gnumake ; do
2061 if ( $a --version 2> /dev/null | grep -c GNU > /dev/null )
2063 _cv_gnu_make_command=$a ;
2068 dnl If there was a GNU version, then set @ifGNUmake@ to the empty
2069 dnl string, '#' otherwise
2070 if test "x$_cv_gnu_make_command" != "x" ; then
2079 dnl Check for headers for, and arguments to, the setrlimit() function.
2080 dnl Used only in testsuite_hooks.h.
2081 AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT_ancilliary, [
2082 AC_TRY_COMPILE([#include <unistd.h>
2083 #include <sys/time.h>
2084 #include <sys/resource.h>
2085 ], [ int f = RLIMIT_$1 ; ],
2086 [glibcpp_mresult=1], [glibcpp_mresult=0])
2087 AC_DEFINE_UNQUOTED(HAVE_MEMLIMIT_$1, $glibcpp_mresult,
2088 [Only used in build directory testsuite_hooks.h.])
2090 AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT, [
2091 setrlimit_have_headers=yes
2092 AC_CHECK_HEADERS(unistd.h sys/time.h sys/resource.h,
2094 setrlimit_have_headers=no)
2095 # If don't have the headers, then we can't run the tests now, and we
2096 # won't be seeing any of these during testsuite compilation.
2097 if test $setrlimit_have_headers = yes; then
2098 # Can't do these in a loop, else the resulting syntax is wrong.
2099 GLIBCPP_CHECK_SETRLIMIT_ancilliary(DATA)
2100 GLIBCPP_CHECK_SETRLIMIT_ancilliary(RSS)
2101 GLIBCPP_CHECK_SETRLIMIT_ancilliary(VMEM)
2102 GLIBCPP_CHECK_SETRLIMIT_ancilliary(AS)
2104 # Check for rlimit, setrlimit.
2105 AC_CACHE_VAL(ac_setrlimit, [
2106 AC_TRY_COMPILE([#include <unistd.h>
2107 #include <sys/time.h>
2108 #include <sys/resource.h>
2110 [ struct rlimit r; setrlimit(0, &r);],
2111 [ac_setrlimit=yes], [ac_setrlimit=no])
2115 AC_MSG_CHECKING([for testsuite memory limit support])
2116 if test $setrlimit_have_headers = yes && test $ac_setrlimit = yes; then
2118 AC_DEFINE(_GLIBCPP_MEM_LIMITS)
2122 AC_MSG_RESULT($ac_mem_limits)
2127 dnl Does any necessary configuration of the testsuite directory. Generates
2128 dnl the testsuite_hooks.h header.
2130 dnl GLIBCPP_CONFIGURE_TESTSUITE [no args]
2131 AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [
2132 GLIBCPP_CHECK_SETRLIMIT
2134 # Look for setenv, so that extended locale tests can be performed.
2135 GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
2137 # Export file names for ABI checking.
2138 baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_triplet}/baseline_symbols.txt"
2139 AC_SUBST(baseline_file)
2142 *-*-cygwin* ) enable_abi_check=no ;;
2143 * ) enable_abi_check=yes ;;
2146 # Don't do ABI checking unless native.
2147 AM_CONDITIONAL(GLIBCPP_BUILD_ABI_CHECK,
2148 test x"$build" = x"$host" && test -z "$with_cross_host" \
2149 && test "$enable_abi_check" = yes )
2153 sinclude(../libtool.m4)
2154 dnl The lines below arrange for aclocal not to bring an installed
2155 dnl libtool.m4 into aclocal.m4, while still arranging for automake to
2156 dnl add a definition of LIBTOOL to Makefile.in.
2157 ifelse(,,,[AC_SUBST(LIBTOOL)
2158 AC_DEFUN([AM_PROG_LIBTOOL])
2159 AC_DEFUN([AC_LIBTOOL_DLOPEN])
2160 AC_DEFUN([AC_PROG_LD])
2164 dnl Check whether S_ISREG (Posix) or S_IFREG is available in <sys/stat.h>.
2167 AC_DEFUN(GLIBCPP_CHECK_S_ISREG_OR_S_IFREG, [
2168 AC_CACHE_VAL(glibcpp_cv_S_ISREG, [
2169 AC_TRY_LINK([#include <sys/stat.h>],
2170 [struct stat buffer; fstat(0, &buffer); S_ISREG(buffer.st_mode); ],
2171 [glibcpp_cv_S_ISREG=yes],
2172 [glibcpp_cv_S_ISREG=no])
2174 AC_CACHE_VAL(glibcpp_cv_S_IFREG, [
2175 AC_TRY_LINK([#include <sys/stat.h>],
2176 [struct stat buffer; fstat(0, &buffer); S_IFREG & buffer.st_mode; ],
2177 [glibcpp_cv_S_IFREG=yes],
2178 [glibcpp_cv_S_IFREG=no])
2180 if test x$glibcpp_cv_S_ISREG = xyes; then
2181 AC_DEFINE(HAVE_S_ISREG)
2182 elif test x$glibcpp_cv_S_IFREG = xyes; then
2183 AC_DEFINE(HAVE_S_IFREG)
2188 dnl Check whether poll is available in <poll.h>.
2191 AC_DEFUN(GLIBCPP_CHECK_POLL, [
2192 AC_CACHE_VAL(glibcpp_cv_POLL, [
2193 AC_TRY_COMPILE([#include <poll.h>],
2194 [struct pollfd pfd[1]; pfd[0].events = POLLIN; poll(pfd, 1, 0); ],
2195 [glibcpp_cv_POLL=yes],
2196 [glibcpp_cv_POLL=no])
2198 if test x$glibcpp_cv_POLL = xyes; then
2199 AC_DEFINE(HAVE_POLL)
2203 # Check whether LC_MESSAGES is available in <locale.h>.
2204 # Ulrich Drepper <drepper@cygnus.com>, 1995.
2206 # This file file be copied and used freely without restrictions. It can
2207 # be used in projects which are not available under the GNU Public License
2208 # but which still want to provide support for the GNU gettext functionality.
2209 # Please note that the actual code is *not* freely available.
2213 AC_DEFUN(AC_LC_MESSAGES, [
2214 AC_CHECK_HEADER(locale.h, [
2215 AC_CACHE_CHECK([for LC_MESSAGES], ac_cv_val_LC_MESSAGES,
2216 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
2217 ac_cv_val_LC_MESSAGES=yes, ac_cv_val_LC_MESSAGES=no)])
2218 if test $ac_cv_val_LC_MESSAGES = yes; then
2219 AC_DEFINE(HAVE_LC_MESSAGES)
2226 dnl Check for whether the Boost-derived checks should be turned on.
2228 dnl GLIBCPP_ENABLE_CONCEPT_CHECKS
2229 dnl --enable-concept-checks turns them on.
2230 dnl --disable-concept-checks leaves them off.
2231 dnl + Usage: GLIBCPP_ENABLE_CONCEPT_CHECKS[(DEFAULT)]
2232 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
2233 dnl defaults to `no'.
2234 AC_DEFUN(GLIBCPP_ENABLE_CONCEPT_CHECKS, [dnl
2235 define([GLIBCPP_ENABLE_CONCEPT_CHECKS_DEFAULT], ifelse($1, yes, yes, no))dnl
2236 AC_ARG_ENABLE(concept-checks,
2237 changequote(<<, >>)dnl
2238 << --enable-concept-checks use Boost-derived template checks [default=>>GLIBCPP_ENABLE_CONCEPT_CHECKS_DEFAULT],
2239 changequote([, ])dnl
2240 [case "$enableval" in
2241 yes) enable_concept_checks=yes ;;
2242 no) enable_concept_checks=no ;;
2243 *) AC_MSG_ERROR([Unknown argument to enable/disable concept checks]) ;;
2245 enable_concept_checks=GLIBCPP_ENABLE_CONCEPT_CHECKS_DEFAULT)dnl
2246 dnl Option parsed, now set things appropriately
2247 if test x"$enable_concept_checks" = xyes; then
2248 AC_DEFINE(_GLIBCPP_CONCEPT_CHECKS)
2254 dnl Add version tags to symbols in shared library (or not), additionally
2255 dnl marking other symbols as private/local (or not).
2257 dnl GLIBCPP_ENABLE_SYMVERS
2258 dnl --enable-symvers=style adds a version script to the linker call when
2259 dnl creating the shared library. The choice of version script is
2260 dnl controlled by 'style'.
2261 dnl --disable-symvers does not.
2262 dnl + Usage: GLIBCPP_ENABLE_SYMVERS[(DEFAULT)]
2263 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
2264 dnl defaults to `no'. Passing `yes' tries to choose a default style
2265 dnl based on linker characteristics. Passing 'no' disables versioning.
2266 AC_DEFUN(GLIBCPP_ENABLE_SYMVERS, [dnl
2267 define([GLIBCPP_ENABLE_SYMVERS_DEFAULT], ifelse($1, yes, yes, no))dnl
2268 AC_ARG_ENABLE(symvers,
2269 changequote(<<, >>)dnl
2270 << --enable-symvers=style enables symbol versioning of the shared library [default=>>GLIBCPP_ENABLE_SYMVERS_DEFAULT],
2271 changequote([, ])dnl
2272 [case "$enableval" in
2273 yes) enable_symvers=yes ;;
2274 no) enable_symvers=no ;;
2275 # other names here, just as sanity checks
2276 #gnu|sun|etcetera) enable_symvers=$enableval ;;
2277 gnu) enable_symvers=$enableval ;;
2278 *) AC_MSG_ERROR([Unknown argument to enable/disable symvers]) ;;
2280 enable_symvers=GLIBCPP_ENABLE_SYMVERS_DEFAULT)dnl
2282 # If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we
2283 # don't know enough about $LD to do tricks...
2284 if test x$enable_shared = xno ||
2286 test x$glibcpp_gnu_ld_version = x; then
2290 # Check to see if libgcc_s exists, indicating that shared libgcc is possible.
2291 if test $enable_symvers != no; then
2292 AC_MSG_CHECKING([for shared libgcc])
2293 ac_save_CFLAGS="$CFLAGS"
2295 AC_TRY_LINK(, [return 0], glibcpp_shared_libgcc=yes, glibcpp_shared_libgcc=no)
2296 CFLAGS="$ac_save_CFLAGS"
2297 AC_MSG_RESULT($glibcpp_shared_libgcc)
2300 # For GNU ld, we need at least this version. It's 2.12 in the same format
2301 # as the tested-for version. See GLIBCPP_CHECK_LINKER_FEATURES for more.
2302 glibcpp_min_gnu_ld_version=21200
2304 # Check to see if unspecified "yes" value can win, given results
2306 if test $enable_symvers = yes ; then
2307 if test $with_gnu_ld = yes &&
2308 test $glibcpp_shared_libgcc = yes ;
2310 if test $glibcpp_gnu_ld_version -ge $glibcpp_min_gnu_ld_version ; then
2313 ac_test_CFLAGS="${CFLAGS+set}"
2314 ac_save_CFLAGS="$CFLAGS"
2315 CFLAGS='-shared -Wl,--version-script,conftest.map'
2318 echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map
2320 AC_TRY_LINK([int foo;],, enable_symvers=gnu)
2321 if test "$ac_test_CFLAGS" = set; then
2322 CFLAGS="$ac_save_CFLAGS"
2324 # this is the suspicious part
2335 dnl Everything parsed; figure out what file to use.
2336 case $enable_symvers in
2338 SYMVER_MAP=config/linker-map.dummy
2341 SYMVER_MAP=config/linker-map.gnu
2342 AC_DEFINE(_GLIBCPP_SYMVER)
2346 AC_SUBST(SYMVER_MAP)
2347 AM_CONDITIONAL(GLIBCPP_BUILD_VERSIONED_SHLIB, test $enable_symvers != no)
2348 AC_MSG_CHECKING([versioning on shared library symbols])
2349 AC_MSG_RESULT($enable_symvers)
2353 # isc-posix.m4 serial 2 (gettext-0.11.2)
2354 dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
2355 dnl This file is free software, distributed under the terms of the GNU
2356 dnl General Public License. As a special exception to the GNU General
2357 dnl Public License, this file may be distributed as part of a program
2358 dnl that contains a configuration script generated by Autoconf, under
2359 dnl the same distribution terms as the rest of that program.
2361 # This file is not needed with autoconf-2.53 and newer. Remove it in 2005.
2363 # This test replaces the one in autoconf.
2364 # Currently this macro should have the same name as the autoconf macro
2365 # because gettext's gettext.m4 (distributed in the automake package)
2366 # still uses it. Otherwise, the use in gettext.m4 makes autoheader
2367 # give these diagnostics:
2368 # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
2369 # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
2371 undefine([AC_ISC_POSIX])
2373 AC_DEFUN([AC_ISC_POSIX],
2375 dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
2376 AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
2380 # Add --enable-maintainer-mode option to configure.
2385 AC_DEFUN([AM_MAINTAINER_MODE],
2386 [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
2387 dnl maintainer-mode is disabled by default
2388 AC_ARG_ENABLE(maintainer-mode,
2389 [ --enable-maintainer-mode enable make rules and dependencies not useful
2390 (and sometimes confusing) to the casual installer],
2391 USE_MAINTAINER_MODE=$enableval,
2392 USE_MAINTAINER_MODE=no)
2393 AC_MSG_RESULT($USE_MAINTAINER_MODE)
2394 AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
2395 MAINT=$MAINTAINER_MODE_TRUE
2400 # Define a conditional.
2402 AC_DEFUN([AM_CONDITIONAL],
2413 # Do all the work for Automake. This macro actually does too much --
2414 # some checks are only needed if your package does certain things.
2415 # But this isn't really a big deal.
2420 dnl AM_INIT_AUTOMAKE(package,version, [no-define])
2422 AC_DEFUN([AM_INIT_AUTOMAKE],
2423 [AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
2424 AC_REQUIRE([AC_PROG_INSTALL])
2429 dnl test to see if srcdir already configured
2430 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
2431 AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
2434 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
2435 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
2436 AC_REQUIRE([AM_SANITY_CHECK])
2437 AC_REQUIRE([AC_ARG_PROGRAM])
2438 dnl FIXME This is truly gross.
2439 missing_dir=`cd $ac_aux_dir && pwd`
2440 AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir)
2441 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
2442 AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir)
2443 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
2444 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
2445 AC_REQUIRE([AC_PROG_MAKE_SET])])
2447 # Copyright 2002 Free Software Foundation, Inc.
2449 # This program is free software; you can redistribute it and/or modify
2450 # it under the terms of the GNU General Public License as published by
2451 # the Free Software Foundation; either version 2, or (at your option)
2452 # any later version.
2454 # This program is distributed in the hope that it will be useful,
2455 # but WITHOUT ANY WARRANTY; without even the implied warranty of
2456 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2457 # GNU General Public License for more details.
2459 # You should have received a copy of the GNU General Public License
2460 # along with this program; if not, write to the Free Software
2461 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
2463 # AM_AUTOMAKE_VERSION(VERSION)
2464 # ----------------------------
2465 # Automake X.Y traces this macro to ensure aclocal.m4 has been
2466 # generated from the m4 files accompanying Automake X.Y.
2467 AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"])
2469 # AM_SET_CURRENT_AUTOMAKE_VERSION
2470 # -------------------------------
2471 # Call AM_AUTOMAKE_VERSION so it can be traced.
2472 # This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
2473 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
2474 [AM_AUTOMAKE_VERSION([1.4-p6])])
2477 # Check to make sure that the build environment is sane.
2480 AC_DEFUN([AM_SANITY_CHECK],
2481 [AC_MSG_CHECKING([whether build environment is sane])
2484 echo timestamp > conftestfile
2485 # Do `set' in a subshell so we don't clobber the current shell's
2486 # arguments. Must try -L first in case configure is actually a
2487 # symlink; some systems play weird games with the mod time of symlinks
2488 # (eg FreeBSD returns the mod time of the symlink's containing
2491 set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
2492 if test "[$]*" = "X"; then
2494 set X `ls -t $srcdir/configure conftestfile`
2496 if test "[$]*" != "X $srcdir/configure conftestfile" \
2497 && test "[$]*" != "X conftestfile $srcdir/configure"; then
2499 # If neither matched, then we have a broken ls. This can happen
2500 # if, for instance, CONFIG_SHELL is bash and it inherits a
2501 # broken ls alias from the environment. This has actually
2502 # happened. Such a system could not be considered "sane".
2503 AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
2504 alias in your environment])
2507 test "[$]2" = conftestfile
2513 AC_MSG_ERROR([newly created file is older than distributed files!
2514 Check your system clock])
2517 AC_MSG_RESULT(yes)])
2519 dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
2520 dnl The program must properly implement --version.
2521 AC_DEFUN([AM_MISSING_PROG],
2522 [AC_MSG_CHECKING(for working $2)
2523 # Run test in a subshell; some versions of sh will print an error if
2524 # an executable is not found, even if stderr is redirected.
2525 # Redirect stdin to placate older versions of autoconf. Sigh.
2526 if ($2 --version) < /dev/null > /dev/null 2>&1; then
2528 AC_MSG_RESULT(found)
2531 AC_MSG_RESULT(missing)
2535 # Like AC_CONFIG_HEADER, but automatically create stamp file.
2537 AC_DEFUN([AM_CONFIG_HEADER],
2539 AC_CONFIG_HEADER([$1])
2540 dnl When config.status generates a header, we must update the stamp-h file.
2541 dnl This file resides in the same directory as the config header
2542 dnl that is generated. We must strip everything past the first ":",
2543 dnl and everything past the last "/".
2544 AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
2545 ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
2546 <<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
2548 for am_file in <<$1>>; do
2549 case " <<$>>CONFIG_HEADERS " in
2550 *" <<$>>am_file "*<<)>>
2551 echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
2554 am_indx=`expr "<<$>>am_indx" + 1`