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)
1479 if test "$glibcpp_pch_comp" = yes; then
1480 glibcpp_PCHFLAGS="-include bits/stdc++.h"
1484 AC_SUBST(glibcpp_PCHFLAGS)
1488 dnl Setup to use the gcc gthr.h thread-specific memory and mutex model.
1489 dnl We must stage the required headers so that they will be installed
1490 dnl with the library (unlike libgcc, the STL implementation is provided
1491 dnl solely within headers). Since we must not inject random user-space
1492 dnl macro names into user-provided C++ code, we first stage into <file>-in
1493 dnl and process to <file> with an output command. The reason for a two-
1494 dnl stage process here is to correctly handle $srcdir!=$objdir without
1495 dnl having to write complex code (the sed commands to clean the macro
1496 dnl namespace are complex and fragile enough as it is). We must also
1497 dnl add a relative path so that -I- is supported properly.
1499 AC_DEFUN(GLIBCPP_ENABLE_THREADS, [
1500 AC_MSG_CHECKING([for thread model used by GCC])
1501 target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
1502 AC_MSG_RESULT([$target_thread_file])
1504 if test $target_thread_file != single; then
1505 AC_DEFINE(HAVE_GTHR_DEFAULT)
1506 AC_DEFINE(_GLIBCPP_SUPPORTS_WEAK, __GXX_WEAK__)
1509 glibcpp_thread_h=gthr-$target_thread_file.h
1510 AC_SUBST(glibcpp_thread_h)
1515 dnl Check for exception handling support. If an explicit enable/disable
1516 dnl sjlj exceptions is given, we don't have to detect. Otherwise the
1517 dnl target may or may not support call frame exceptions.
1519 dnl GLIBCPP_ENABLE_SJLJ_EXCEPTIONS
1520 dnl --enable-sjlj-exceptions forces the use of builtin setjmp.
1521 dnl --disable-sjlj-exceptions forces the use of call frame unwinding.
1523 dnl Define _GLIBCPP_SJLJ_EXCEPTIONS if the compiler is configured for it.
1525 AC_DEFUN(GLIBCPP_ENABLE_SJLJ_EXCEPTIONS, [
1526 AC_MSG_CHECKING([for exception model to use])
1529 AC_ARG_ENABLE(sjlj-exceptions,
1530 [ --enable-sjlj-exceptions force use of builtin_setjmp for exceptions],
1532 [dnl Botheration. Now we've got to detect the exception model.
1533 dnl Link tests against libgcc.a are problematic since -- at least
1534 dnl as of this writing -- we've not been given proper -L bits for
1535 dnl single-tree newlib and libgloss.
1537 dnl This is what AC_TRY_COMPILE would do if it didn't delete the
1538 dnl conftest files before we got a change to grep them first.
1539 cat > conftest.$ac_ext << EOF
1540 [#]line __oline__ "configure"
1549 old_CXXFLAGS="$CXXFLAGS"
1551 if AC_TRY_EVAL(ac_compile); then
1552 if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then
1553 enable_sjlj_exceptions=yes
1554 elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then
1555 enable_sjlj_exceptions=no
1558 CXXFLAGS="$old_CXXFLAGS"
1560 if test x$enable_sjlj_exceptions = xyes; then
1561 AC_DEFINE(_GLIBCPP_SJLJ_EXCEPTIONS, 1,
1562 [Define if the compiler is configured for setjmp/longjmp exceptions.])
1563 ac_exception_model_name=sjlj
1564 elif test x$enable_sjlj_exceptions = xno; then
1565 ac_exception_model_name="call frame"
1567 AC_MSG_ERROR([unable to detect exception model])
1570 AC_MSG_RESULT($ac_exception_model_name)
1575 dnl Check for libunwind exception handling support. If enabled then
1576 dnl we assume that the _Unwind_* functions that make up the Unwind ABI
1577 dnl (_Unwind_RaiseException, _Unwind_Resume, etc.) are defined by
1578 dnl libunwind instead of libgcc and that libstdc++ has a dependency
1579 dnl on libunwind as well as libgcc.
1581 dnl GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS
1582 dnl --enable-libunwind-exceptions forces the use of libunwind.
1583 dnl --disable-libunwind-exceptions assumes there is no libunwind.
1585 dnl Define _GLIBCPP_LIBUNWIND_EXCEPTIONS if requested.
1587 AC_DEFUN(GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS, [
1588 AC_MSG_CHECKING([for use of libunwind])
1589 AC_ARG_ENABLE(libunwind-exceptions,
1590 [ --enable-libunwind-exceptions force use of libunwind for exceptions],
1591 use_libunwind_exceptions=$enableval,
1592 use_libunwind_exceptions=no)
1593 AC_MSG_RESULT($use_libunwind_exceptions)
1594 dnl Option parsed, now set things appropriately
1595 if test x"$use_libunwind_exceptions" = xyes; then
1596 LIBUNWIND_FLAG="-lunwind"
1600 AC_SUBST(LIBUNWIND_FLAG)
1604 dnl Check for ISO/IEC 9899:1999 "C99" support.
1606 dnl GLIBCPP_ENABLE_C99
1607 dnl --enable-c99 defines _GLIBCPP_USE_C99
1608 dnl --disable-c99 leaves _GLIBCPP_USE_C99 undefined
1609 dnl + Usage: GLIBCPP_ENABLE_C99[(DEFAULT)]
1610 dnl Where DEFAULT is either `yes' or `no'. If omitted, it
1611 dnl defaults to `no'.
1612 dnl + If 'C99' stuff is not available, ignores DEFAULT and sets `no'.
1614 dnl GLIBCPP_ENABLE_C99
1615 AC_DEFUN(GLIBCPP_ENABLE_C99, [dnl
1616 define([GLIBCPP_ENABLE_C99_DEFAULT], ifelse($1, yes, yes, no))dnl
1619 changequote(<<, >>)dnl
1620 <<--enable-c99 turns on 'ISO/IEC 9899:1999 support' [default=>>GLIBCPP_ENABLE_C99_DEFAULT],
1621 changequote([, ])dnl
1622 [case "$enableval" in
1623 yes) enable_c99=yes ;;
1624 no) enable_c99=no ;;
1625 *) AC_MSG_ERROR([Unknown argument to enable/disable C99]) ;;
1627 enable_c99=GLIBCPP_ENABLE_C99_DEFAULT)dnl
1632 # Check for the existence of <math.h> functions used if C99 is enabled.
1634 AC_MSG_CHECKING([for ISO C99 support in <math.h>])
1635 AC_TRY_COMPILE([#include <math.h>],[fpclassify(0.0);],, [ac_c99_math=no])
1636 AC_TRY_COMPILE([#include <math.h>],[isfinite(0.0);],, [ac_c99_math=no])
1637 AC_TRY_COMPILE([#include <math.h>],[isinf(0.0);],, [ac_c99_math=no])
1638 AC_TRY_COMPILE([#include <math.h>],[isnan(0.0);],, [ac_c99_math=no])
1639 AC_TRY_COMPILE([#include <math.h>],[isnormal(0.0);],, [ac_c99_math=no])
1640 AC_TRY_COMPILE([#include <math.h>],[signbit(0.0);],, [ac_c99_math=no])
1641 AC_TRY_COMPILE([#include <math.h>],[isgreater(0.0,0.0);],, [ac_c99_math=no])
1642 AC_TRY_COMPILE([#include <math.h>],
1643 [isgreaterequal(0.0,0.0);],, [ac_c99_math=no])
1644 AC_TRY_COMPILE([#include <math.h>],[isless(0.0,0.0);],, [ac_c99_math=no])
1645 AC_TRY_COMPILE([#include <math.h>],[islessequal(0.0,0.0);],,[ac_c99_math=no])
1646 AC_TRY_COMPILE([#include <math.h>],
1647 [islessgreater(0.0,0.0);],, [ac_c99_math=no])
1648 AC_TRY_COMPILE([#include <math.h>],
1649 [isunordered(0.0,0.0);],, [ac_c99_math=no])
1650 AC_MSG_RESULT($ac_c99_math)
1652 # Check for the existence in <stdio.h> of vscanf, et. al.
1654 AC_MSG_CHECKING([for ISO C99 support in <stdio.h>])
1655 AC_TRY_COMPILE([#include <stdio.h>],
1656 [snprintf("12", 0, "%i");],, [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 vfscanf(stderr, "%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 vscanf("%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 vsnprintf(fmt, 0, "%i", args);}],
1674 [],, [ac_c99_stdio=no])
1675 AC_TRY_COMPILE([#include <stdio.h>
1677 void foo(char* fmt, ...)
1678 {va_list args; va_start(args, fmt);
1679 vsscanf(fmt, "%i", args);}],
1680 [],, [ac_c99_stdio=no])
1681 AC_MSG_RESULT($ac_c99_stdio)
1683 # Check for the existence in <stdlib.h> of lldiv_t, et. al.
1685 AC_MSG_CHECKING([for lldiv_t declaration])
1686 AC_CACHE_VAL(ac_c99_lldiv_t, [
1687 AC_TRY_COMPILE([#include <stdlib.h>],
1689 [ac_c99_lldiv_t=yes], [ac_c99_lldiv_t=no])
1691 AC_MSG_RESULT($ac_c99_lldiv_t)
1693 AC_MSG_CHECKING([for ISO C99 support in <stdlib.h>])
1694 AC_TRY_COMPILE([#include <stdlib.h>],
1695 [char* tmp; strtof("gnu", &tmp);],, [ac_c99_stdlib=no])
1696 AC_TRY_COMPILE([#include <stdlib.h>],
1697 [char* tmp; strtold("gnu", &tmp);],, [ac_c99_stdlib=no])
1698 AC_TRY_COMPILE([#include <stdlib.h>], [llabs(10);],, [ac_c99_stdlib=no])
1699 AC_TRY_COMPILE([#include <stdlib.h>], [lldiv(10,1);],, [ac_c99_stdlib=no])
1700 AC_TRY_COMPILE([#include <stdlib.h>], [atoll("10");],, [ac_c99_stdlib=no])
1701 AC_TRY_COMPILE([#include <stdlib.h>], [_Exit(0);],, [ac_c99_stdlib=no])
1702 if test x"$ac_c99_lldiv_t" = x"no"; then
1705 AC_MSG_RESULT($ac_c99_stdlib)
1707 # Check for the existence of <wchar.h> functions used if C99 is enabled.
1708 # XXX the wchar.h checks should be rolled into the general C99 bits.
1710 AC_MSG_CHECKING([for additional ISO C99 support in <wchar.h>])
1711 AC_TRY_COMPILE([#include <wchar.h>],
1712 [wcstold(L"10.0", NULL);],, [ac_c99_wchar=no])
1713 AC_TRY_COMPILE([#include <wchar.h>],
1714 [wcstoll(L"10", NULL, 10);],, [ac_c99_wchar=no])
1715 AC_TRY_COMPILE([#include <wchar.h>],
1716 [wcstoull(L"10", NULL, 10);],, [ac_c99_wchar=no])
1717 AC_MSG_RESULT($ac_c99_wchar)
1719 AC_MSG_CHECKING([for enabled ISO C99 support])
1720 if test x"$ac_c99_math" = x"no" ||
1721 test x"$ac_c99_stdio" = x"no" ||
1722 test x"$ac_c99_stdlib" = x"no" ||
1723 test x"$ac_c99_wchar" = x"no"; then
1726 AC_MSG_RESULT($enable_c99)
1728 # Option parsed, now set things appropriately
1729 if test x"$enable_c99" = x"yes"; then
1730 AC_DEFINE(_GLIBCPP_USE_C99)
1738 dnl Check for template specializations for the 'long long' type extension.
1739 dnl The result determines only whether 'long long' I/O is enabled; things
1740 dnl like numeric_limits<> specializations are always available.
1742 dnl GLIBCPP_ENABLE_LONG_LONG
1743 dnl --enable-long-long defines _GLIBCPP_USE_LONG_LONG
1744 dnl --disable-long-long leaves _GLIBCPP_USE_LONG_LONG undefined
1745 dnl + Usage: GLIBCPP_ENABLE_LONG_LONG[(DEFAULT)]
1746 dnl Where DEFAULT is either `yes' or `no'. If omitted, it
1747 dnl defaults to `no'.
1748 dnl + If 'long long' stuff is not available, ignores DEFAULT and sets `no'.
1750 dnl GLIBCPP_ENABLE_LONG_LONG
1751 AC_DEFUN(GLIBCPP_ENABLE_LONG_LONG, [dnl
1752 define([GLIBCPP_ENABLE_LONG_LONG_DEFAULT], ifelse($1, yes, yes, no))dnl
1754 AC_ARG_ENABLE(long-long,
1755 changequote(<<, >>)dnl
1756 <<--enable-long-long turns on 'long long' [default=>>GLIBCPP_ENABLE_LONG_LONG_DEFAULT],
1757 changequote([, ])dnl
1758 [case "$enableval" in
1759 yes) enable_long_long=yes ;;
1760 no) enable_long_long=no ;;
1761 *) AC_MSG_ERROR([Unknown argument to enable/disable long long]) ;;
1763 enable_long_long=GLIBCPP_ENABLE_LONG_LONG_DEFAULT)dnl
1768 AC_MSG_CHECKING([for enabled long long I/O support])
1769 # iostreams require strtoll, strtoull to compile
1770 AC_TRY_COMPILE([#include <stdlib.h>],
1771 [char* tmp; strtoll("gnu", &tmp, 10);],,[enable_long_long=no])
1772 AC_TRY_COMPILE([#include <stdlib.h>],
1773 [char* tmp; strtoull("gnu", &tmp, 10);],,[enable_long_long=no])
1775 # Option parsed, now set things appropriately
1776 if test x"$enable_long_long" = xyes; then
1777 AC_DEFINE(_GLIBCPP_USE_LONG_LONG)
1779 AC_MSG_RESULT($enable_long_long)
1786 dnl Check for what type of C headers to use.
1788 dnl GLIBCPP_ENABLE_CHEADERS
1789 dnl --enable-cheaders= [does stuff].
1790 dnl --disable-cheaders [does not do anything, really].
1791 dnl + Usage: GLIBCPP_ENABLE_CHEADERS[(DEFAULT)]
1792 dnl Where DEFAULT is either `c' or `c_std'.
1793 dnl If ommitted, it defaults to `c_std'.
1794 AC_DEFUN(GLIBCPP_ENABLE_CHEADERS, [dnl
1795 define([GLIBCPP_ENABLE_CHEADERS_DEFAULT], ifelse($1, c_std, c_std, c_std))dnl
1796 AC_MSG_CHECKING([for c header strategy to use])
1797 AC_ARG_ENABLE(cheaders,
1798 changequote(<<, >>)dnl
1799 << --enable-cheaders=MODEL construct "C" header files for g++ [default=>>GLIBCPP_ENABLE_CHEADERS_DEFAULT],
1801 [case "$enableval" in
1806 enable_cheaders=c_std
1808 *) AC_MSG_ERROR([Unknown argument to enable/disable "C" headers])
1811 enable_cheaders=GLIBCPP_ENABLE_CHEADERS_DEFAULT)
1812 AC_MSG_RESULT($enable_cheaders)
1814 dnl Option parsed, now set things appropriately
1815 case "$enable_cheaders" in
1817 C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std'
1820 C_INCLUDE_DIR='${glibcpp_srcdir}/include/c'
1824 AC_SUBST(C_INCLUDE_DIR)
1825 AM_CONDITIONAL(GLIBCPP_C_HEADERS_C, test "$enable_cheaders" = c)
1826 AM_CONDITIONAL(GLIBCPP_C_HEADERS_C_STD, test "$enable_cheaders" = c_std)
1827 AM_CONDITIONAL(GLIBCPP_C_HEADERS_COMPATIBILITY, test "$c_compatibility" = yes)
1832 dnl Check for wide character support. Has the same effect as the option
1833 dnl in gcc's configure, but in a form that autoconf can mess with.
1835 dnl GLIBCPP_ENABLE_C_MBCHAR
1836 dnl --enable-c-mbchar requests all the wchar_t stuff.
1837 dnl --disable-c-mbchar doesn't.
1838 dnl + Usage: GLIBCPP_ENABLE_C_MBCHAR[(DEFAULT)]
1839 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
1840 dnl defaults to `no'.
1841 AC_DEFUN(GLIBCPP_ENABLE_C_MBCHAR, [dnl
1842 define([GLIBCPP_ENABLE_C_MBCHAR_DEFAULT], ifelse($1, yes, yes, no))dnl
1843 AC_ARG_ENABLE(c-mbchar,
1844 changequote(<<, >>)dnl
1845 << --enable-c-mbchar enable multibyte (wide) characters [default=>>GLIBCPP_ENABLE_C_MBCHAR_DEFAULT],
1846 changequote([, ])dnl
1847 [case "$enableval" in
1848 yes) enable_c_mbchar=yes ;;
1849 no) enable_c_mbchar=no ;;
1850 *) AC_MSG_ERROR([Unknown argument to enable/disable c-mbchar]) ;;
1852 enable_c_mbchar=GLIBCPP_ENABLE_C_MBCHAR_DEFAULT)dnl
1853 dnl Option parsed, now other scripts can test enable_c_mbchar for yes/no.
1858 dnl Set up *_INCLUDES and *_INCLUDE_DIR variables for all sundry Makefile.am's.
1860 dnl TOPLEVEL_INCLUDES
1861 dnl LIBMATH_INCLUDES
1862 dnl LIBSUPCXX_INCLUDES
1865 dnl GLIBCPP_EXPORT_INCLUDES
1866 AC_DEFUN(GLIBCPP_EXPORT_INCLUDES, [
1867 # Root level of the build directory include sources.
1868 GLIBCPP_INCLUDES="-I${glibcpp_builddir}/include/${target_alias} -I${glibcpp_builddir}/include"
1870 # Passed down for canadian crosses.
1871 if test x"$CANADIAN" = xyes; then
1872 TOPLEVEL_INCLUDES='-I$(includedir)'
1875 LIBMATH_INCLUDES='-I$(top_srcdir)/libmath'
1877 LIBSUPCXX_INCLUDES='-I$(top_srcdir)/libsupc++'
1879 if test x"$need_libio" = xyes; then
1880 LIBIO_INCLUDES='-I$(top_builddir)/libio -I$(top_srcdir)/libio'
1881 AC_SUBST(LIBIO_INCLUDES)
1884 # Now, export this to all the little Makefiles....
1885 AC_SUBST(GLIBCPP_INCLUDES)
1886 AC_SUBST(TOPLEVEL_INCLUDES)
1887 AC_SUBST(LIBMATH_INCLUDES)
1888 AC_SUBST(LIBSUPCXX_INCLUDES)
1893 dnl Set up *_FLAGS and *FLAGS variables for all sundry Makefile.am's.
1895 AC_DEFUN(GLIBCPP_EXPORT_FLAGS, [
1896 # Optimization flags that are probably a good idea for thrill-seekers. Just
1897 # uncomment the lines below and make, everything else is ready to go...
1898 # OPTIMIZE_CXXFLAGS = -O3 -fstrict-aliasing -fvtable-gc
1900 AC_SUBST(OPTIMIZE_CXXFLAGS)
1902 WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings'
1903 AC_SUBST(WARN_FLAGS)
1907 dnl GLIBCPP_EXPORT_INSTALL_INFO
1908 dnl calculates gxx_install_dir
1909 dnl exports glibcpp_toolexecdir
1910 dnl exports glibcpp_toolexeclibdir
1911 dnl exports glibcpp_prefixdir
1913 dnl Assumes cross_compiling bits already done, and with_cross_host in
1916 dnl GLIBCPP_EXPORT_INSTALL_INFO
1917 AC_DEFUN(GLIBCPP_EXPORT_INSTALL_INFO, [
1918 # Assumes glibcpp_builddir, glibcpp_srcdir are alreay set up and
1919 # exported correctly in GLIBCPP_CONFIGURE.
1920 glibcpp_toolexecdir=no
1921 glibcpp_toolexeclibdir=no
1922 glibcpp_prefixdir=${prefix}
1924 # Process the option --with-gxx-include-dir=<path to include-files directory>
1925 AC_MSG_CHECKING([for --with-gxx-include-dir])
1926 AC_ARG_WITH(gxx-include-dir,
1927 [ --with-gxx-include-dir the installation directory for include files],
1928 [case "${withval}" in
1930 AC_MSG_ERROR(Missing directory for --with-gxx-include-dir)
1937 gxx_include_dir=${withval}
1939 esac], [gxx_include_dir=no])
1940 AC_MSG_RESULT($gxx_include_dir)
1942 # Process the option "--enable-version-specific-runtime-libs"
1943 AC_MSG_CHECKING([for --enable-version-specific-runtime-libs])
1944 AC_ARG_ENABLE(version-specific-runtime-libs,
1945 [ --enable-version-specific-runtime-libs Specify that runtime libraries should be installed in a compiler-specific directory ],
1946 [case "$enableval" in
1947 yes) version_specific_libs=yes ;;
1948 no) version_specific_libs=no ;;
1949 *) AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);;
1951 version_specific_libs=no)dnl
1952 # Option set, now we can test it.
1953 AC_MSG_RESULT($version_specific_libs)
1955 # Default case for install directory for include files.
1956 if test $version_specific_libs = no && test $gxx_include_dir = no; then
1957 gxx_include_dir='$(prefix)'/include/c++/${gcc_version}
1960 # Version-specific runtime libs processing.
1961 if test $version_specific_libs = yes; then
1962 # Need the gcc compiler version to know where to install libraries
1963 # and header files if --enable-version-specific-runtime-libs option
1965 if test x"$gxx_include_dir" = x"no"; then
1966 gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/c++
1968 glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
1969 glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)'
1972 # Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir
1973 # Install a library built with a cross compiler in tooldir, not libdir.
1974 if test x"$glibcpp_toolexecdir" = x"no"; then
1975 if test -n "$with_cross_host" &&
1976 test x"$with_cross_host" != x"no"; then
1977 glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)'
1978 glibcpp_toolexeclibdir='$(toolexecdir)/lib'
1980 glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
1981 glibcpp_toolexeclibdir='$(libdir)'
1983 multi_os_directory=`$CC -print-multi-os-directory`
1984 case $multi_os_directory in
1985 .) ;; # Avoid trailing /.
1986 *) glibcpp_toolexeclibdir=$glibcpp_toolexeclibdir/$multi_os_directory ;;
1990 AC_MSG_CHECKING([for install location])
1991 AC_MSG_RESULT($gxx_include_dir)
1993 AC_SUBST(glibcpp_prefixdir)
1994 AC_SUBST(gxx_include_dir)
1995 AC_SUBST(glibcpp_toolexecdir)
1996 AC_SUBST(glibcpp_toolexeclibdir)
2000 # Check for functions in math library.
2001 # Ulrich Drepper <drepper@cygnus.com>, 1998.
2003 # This file can be copied and used freely without restrictions. It can
2004 # be used in projects which are not available under the GNU Public License
2005 # but which still want to provide support for the GNU gettext functionality.
2006 # Please note that the actual code is *not* freely available.
2010 dnl AC_REPLACE_MATHFUNCS(FUNCTION...)
2011 AC_DEFUN(AC_REPLACE_MATHFUNCS,
2012 [AC_CHECK_FUNCS([$1], , [LIBMATHOBJS="$LIBMATHOBJS ${ac_func}.lo"])])
2015 dnl This macro searches for a GNU version of make. If a match is found, the
2016 dnl makefile variable `ifGNUmake' is set to the empty string, otherwise it is
2017 dnl set to "#". This is useful for including a special features in a Makefile,
2018 dnl which cannot be handled by other versions of make. The variable
2019 dnl _cv_gnu_make_command is set to the command to invoke GNU make if it exists,
2020 dnl the empty string otherwise.
2022 dnl Here is an example of its use:
2024 dnl Makefile.in might contain:
2026 dnl # A failsafe way of putting a dependency rule into a makefile
2028 dnl $(CC) -MM $(srcdir)/*.c > $(DEPEND)
2030 dnl @ifGNUmake@ ifeq ($(DEPEND),$(wildcard $(DEPEND)))
2031 dnl @ifGNUmake@ include $(DEPEND)
2032 dnl @ifGNUmake@ endif
2034 dnl Then configure.in would normally contain:
2036 dnl CHECK_GNU_MAKE()
2037 dnl AC_OUTPUT(Makefile)
2039 dnl Then perhaps to cause gnu make to override any other make, we could do
2040 dnl something like this (note that GNU make always looks for GNUmakefile first):
2042 dnl if ! test x$_cv_gnu_make_command = x ; then
2043 dnl mv Makefile GNUmakefile
2044 dnl echo .DEFAULT: > Makefile ;
2045 dnl echo \ $_cv_gnu_make_command \$@ >> Makefile;
2048 dnl Then, if any (well almost any) other make is called, and GNU make also
2049 dnl exists, then the other make wraps the GNU make.
2051 dnl @author John Darrington <j.darrington@elvis.murdoch.edu.au>
2052 dnl @version 1.1 #### replaced Id string now that Id is for lib-v3; pme
2054 dnl #### Changes for libstdc++-v3: reformatting and linewrapping; prepending
2055 dnl #### GLIBCPP_ to the macro name; adding the :-make fallback in the
2056 dnl #### conditional's subshell (" --version" is not a command), using a
2057 dnl #### different option to grep(1).
2059 dnl #### Fixed Bourne shell portability bug (use ${MAKE-make}, not
2060 dnl #### ${MAKE:-make}).
2063 GLIBCPP_CHECK_GNU_MAKE, [AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command,
2064 _cv_gnu_make_command='' ;
2065 dnl Search all the common names for GNU make
2066 for a in "${MAKE-make}" make gmake gnumake ; do
2067 if ( $a --version 2> /dev/null | grep -c GNU > /dev/null )
2069 _cv_gnu_make_command=$a ;
2074 dnl If there was a GNU version, then set @ifGNUmake@ to the empty
2075 dnl string, '#' otherwise
2076 if test "x$_cv_gnu_make_command" != "x" ; then
2085 dnl Check for headers for, and arguments to, the setrlimit() function.
2086 dnl Used only in testsuite_hooks.h.
2087 AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT_ancilliary, [
2088 AC_TRY_COMPILE([#include <unistd.h>
2089 #include <sys/time.h>
2090 #include <sys/resource.h>
2091 ], [ int f = RLIMIT_$1 ; ],
2092 [glibcpp_mresult=1], [glibcpp_mresult=0])
2093 AC_DEFINE_UNQUOTED(HAVE_MEMLIMIT_$1, $glibcpp_mresult,
2094 [Only used in build directory testsuite_hooks.h.])
2096 AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT, [
2097 setrlimit_have_headers=yes
2098 AC_CHECK_HEADERS(unistd.h sys/time.h sys/resource.h,
2100 setrlimit_have_headers=no)
2101 # If don't have the headers, then we can't run the tests now, and we
2102 # won't be seeing any of these during testsuite compilation.
2103 if test $setrlimit_have_headers = yes; then
2104 # Can't do these in a loop, else the resulting syntax is wrong.
2105 GLIBCPP_CHECK_SETRLIMIT_ancilliary(DATA)
2106 GLIBCPP_CHECK_SETRLIMIT_ancilliary(RSS)
2107 GLIBCPP_CHECK_SETRLIMIT_ancilliary(VMEM)
2108 GLIBCPP_CHECK_SETRLIMIT_ancilliary(AS)
2110 # Check for rlimit, setrlimit.
2111 AC_CACHE_VAL(ac_setrlimit, [
2112 AC_TRY_COMPILE([#include <unistd.h>
2113 #include <sys/time.h>
2114 #include <sys/resource.h>
2116 [ struct rlimit r; setrlimit(0, &r);],
2117 [ac_setrlimit=yes], [ac_setrlimit=no])
2121 AC_MSG_CHECKING([for testsuite memory limit support])
2122 if test $setrlimit_have_headers = yes && test $ac_setrlimit = yes; then
2124 AC_DEFINE(_GLIBCPP_MEM_LIMITS)
2128 AC_MSG_RESULT($ac_mem_limits)
2133 dnl Does any necessary configuration of the testsuite directory. Generates
2134 dnl the testsuite_hooks.h header.
2136 dnl GLIBCPP_CONFIGURE_TESTSUITE [no args]
2137 AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [
2138 GLIBCPP_CHECK_SETRLIMIT
2140 # Look for setenv, so that extended locale tests can be performed.
2141 GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
2143 # Export file names for ABI checking.
2144 baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_triplet}/baseline_symbols.txt"
2145 AC_SUBST(baseline_file)
2148 *-*-cygwin* ) enable_abi_check=no ;;
2149 * ) enable_abi_check=yes ;;
2152 # Don't do ABI checking unless native.
2153 AM_CONDITIONAL(GLIBCPP_BUILD_ABI_CHECK,
2154 test x"$build" = x"$host" && test -z "$with_cross_host" \
2155 && test "$enable_abi_check" = yes )
2159 sinclude(../libtool.m4)
2160 dnl The lines below arrange for aclocal not to bring an installed
2161 dnl libtool.m4 into aclocal.m4, while still arranging for automake to
2162 dnl add a definition of LIBTOOL to Makefile.in.
2163 ifelse(,,,[AC_SUBST(LIBTOOL)
2164 AC_DEFUN([AM_PROG_LIBTOOL])
2165 AC_DEFUN([AC_LIBTOOL_DLOPEN])
2166 AC_DEFUN([AC_PROG_LD])
2170 dnl Check whether S_ISREG (Posix) or S_IFREG is available in <sys/stat.h>.
2173 AC_DEFUN(GLIBCPP_CHECK_S_ISREG_OR_S_IFREG, [
2174 AC_CACHE_VAL(glibcpp_cv_S_ISREG, [
2175 AC_TRY_LINK([#include <sys/stat.h>],
2176 [struct stat buffer; fstat(0, &buffer); S_ISREG(buffer.st_mode); ],
2177 [glibcpp_cv_S_ISREG=yes],
2178 [glibcpp_cv_S_ISREG=no])
2180 AC_CACHE_VAL(glibcpp_cv_S_IFREG, [
2181 AC_TRY_LINK([#include <sys/stat.h>],
2182 [struct stat buffer; fstat(0, &buffer); S_IFREG & buffer.st_mode; ],
2183 [glibcpp_cv_S_IFREG=yes],
2184 [glibcpp_cv_S_IFREG=no])
2186 if test x$glibcpp_cv_S_ISREG = xyes; then
2187 AC_DEFINE(HAVE_S_ISREG)
2188 elif test x$glibcpp_cv_S_IFREG = xyes; then
2189 AC_DEFINE(HAVE_S_IFREG)
2194 dnl Check whether poll is available in <poll.h>.
2197 AC_DEFUN(GLIBCPP_CHECK_POLL, [
2198 AC_CACHE_VAL(glibcpp_cv_POLL, [
2199 AC_TRY_COMPILE([#include <poll.h>],
2200 [struct pollfd pfd[1]; pfd[0].events = POLLIN; poll(pfd, 1, 0); ],
2201 [glibcpp_cv_POLL=yes],
2202 [glibcpp_cv_POLL=no])
2204 if test x$glibcpp_cv_POLL = xyes; then
2205 AC_DEFINE(HAVE_POLL)
2209 # Check whether LC_MESSAGES is available in <locale.h>.
2210 # Ulrich Drepper <drepper@cygnus.com>, 1995.
2212 # This file file be copied and used freely without restrictions. It can
2213 # be used in projects which are not available under the GNU Public License
2214 # but which still want to provide support for the GNU gettext functionality.
2215 # Please note that the actual code is *not* freely available.
2219 AC_DEFUN(AC_LC_MESSAGES, [
2220 AC_CHECK_HEADER(locale.h, [
2221 AC_CACHE_CHECK([for LC_MESSAGES], ac_cv_val_LC_MESSAGES,
2222 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
2223 ac_cv_val_LC_MESSAGES=yes, ac_cv_val_LC_MESSAGES=no)])
2224 if test $ac_cv_val_LC_MESSAGES = yes; then
2225 AC_DEFINE(HAVE_LC_MESSAGES)
2232 dnl Check for whether the Boost-derived checks should be turned on.
2234 dnl GLIBCPP_ENABLE_CONCEPT_CHECKS
2235 dnl --enable-concept-checks turns them on.
2236 dnl --disable-concept-checks leaves them off.
2237 dnl + Usage: GLIBCPP_ENABLE_CONCEPT_CHECKS[(DEFAULT)]
2238 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
2239 dnl defaults to `no'.
2240 AC_DEFUN(GLIBCPP_ENABLE_CONCEPT_CHECKS, [dnl
2241 define([GLIBCPP_ENABLE_CONCEPT_CHECKS_DEFAULT], ifelse($1, yes, yes, no))dnl
2242 AC_ARG_ENABLE(concept-checks,
2243 changequote(<<, >>)dnl
2244 << --enable-concept-checks use Boost-derived template checks [default=>>GLIBCPP_ENABLE_CONCEPT_CHECKS_DEFAULT],
2245 changequote([, ])dnl
2246 [case "$enableval" in
2247 yes) enable_concept_checks=yes ;;
2248 no) enable_concept_checks=no ;;
2249 *) AC_MSG_ERROR([Unknown argument to enable/disable concept checks]) ;;
2251 enable_concept_checks=GLIBCPP_ENABLE_CONCEPT_CHECKS_DEFAULT)dnl
2252 dnl Option parsed, now set things appropriately
2253 if test x"$enable_concept_checks" = xyes; then
2254 AC_DEFINE(_GLIBCPP_CONCEPT_CHECKS)
2260 dnl Add version tags to symbols in shared library (or not), additionally
2261 dnl marking other symbols as private/local (or not).
2263 dnl GLIBCPP_ENABLE_SYMVERS
2264 dnl --enable-symvers=style adds a version script to the linker call when
2265 dnl creating the shared library. The choice of version script is
2266 dnl controlled by 'style'.
2267 dnl --disable-symvers does not.
2268 dnl + Usage: GLIBCPP_ENABLE_SYMVERS[(DEFAULT)]
2269 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
2270 dnl defaults to `no'. Passing `yes' tries to choose a default style
2271 dnl based on linker characteristics. Passing 'no' disables versioning.
2272 AC_DEFUN(GLIBCPP_ENABLE_SYMVERS, [dnl
2273 define([GLIBCPP_ENABLE_SYMVERS_DEFAULT], ifelse($1, yes, yes, no))dnl
2274 AC_ARG_ENABLE(symvers,
2275 changequote(<<, >>)dnl
2276 << --enable-symvers=style enables symbol versioning of the shared library [default=>>GLIBCPP_ENABLE_SYMVERS_DEFAULT],
2277 changequote([, ])dnl
2278 [case "$enableval" in
2279 yes) enable_symvers=yes ;;
2280 no) enable_symvers=no ;;
2281 # other names here, just as sanity checks
2282 #gnu|sun|etcetera) enable_symvers=$enableval ;;
2283 gnu) enable_symvers=$enableval ;;
2284 *) AC_MSG_ERROR([Unknown argument to enable/disable symvers]) ;;
2286 enable_symvers=GLIBCPP_ENABLE_SYMVERS_DEFAULT)dnl
2288 # If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we
2289 # don't know enough about $LD to do tricks...
2290 if test x$enable_shared = xno ||
2292 test x$glibcpp_gnu_ld_version = x; then
2296 # Check to see if libgcc_s exists, indicating that shared libgcc is possible.
2297 if test $enable_symvers != no; then
2298 AC_MSG_CHECKING([for shared libgcc])
2299 ac_save_CFLAGS="$CFLAGS"
2301 AC_TRY_LINK(, [return 0], glibcpp_shared_libgcc=yes, glibcpp_shared_libgcc=no)
2302 CFLAGS="$ac_save_CFLAGS"
2303 AC_MSG_RESULT($glibcpp_shared_libgcc)
2306 # For GNU ld, we need at least this version. It's 2.12 in the same format
2307 # as the tested-for version. See GLIBCPP_CHECK_LINKER_FEATURES for more.
2308 glibcpp_min_gnu_ld_version=21200
2310 # Check to see if unspecified "yes" value can win, given results
2312 if test $enable_symvers = yes ; then
2313 if test $with_gnu_ld = yes &&
2314 test $glibcpp_shared_libgcc = yes ;
2316 if test $glibcpp_gnu_ld_version -ge $glibcpp_min_gnu_ld_version ; then
2319 ac_test_CFLAGS="${CFLAGS+set}"
2320 ac_save_CFLAGS="$CFLAGS"
2321 CFLAGS='-shared -Wl,--version-script,conftest.map'
2324 echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map
2326 AC_TRY_LINK([int foo;],, enable_symvers=gnu)
2327 if test "$ac_test_CFLAGS" = set; then
2328 CFLAGS="$ac_save_CFLAGS"
2330 # this is the suspicious part
2341 dnl Everything parsed; figure out what file to use.
2342 case $enable_symvers in
2344 SYMVER_MAP=config/linker-map.dummy
2347 SYMVER_MAP=config/linker-map.gnu
2348 AC_DEFINE(_GLIBCPP_SYMVER)
2352 AC_SUBST(SYMVER_MAP)
2353 AM_CONDITIONAL(GLIBCPP_BUILD_VERSIONED_SHLIB, test $enable_symvers != no)
2354 AC_MSG_CHECKING([versioning on shared library symbols])
2355 AC_MSG_RESULT($enable_symvers)
2359 # isc-posix.m4 serial 2 (gettext-0.11.2)
2360 dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
2361 dnl This file is free software, distributed under the terms of the GNU
2362 dnl General Public License. As a special exception to the GNU General
2363 dnl Public License, this file may be distributed as part of a program
2364 dnl that contains a configuration script generated by Autoconf, under
2365 dnl the same distribution terms as the rest of that program.
2367 # This file is not needed with autoconf-2.53 and newer. Remove it in 2005.
2369 # This test replaces the one in autoconf.
2370 # Currently this macro should have the same name as the autoconf macro
2371 # because gettext's gettext.m4 (distributed in the automake package)
2372 # still uses it. Otherwise, the use in gettext.m4 makes autoheader
2373 # give these diagnostics:
2374 # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
2375 # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
2377 undefine([AC_ISC_POSIX])
2379 AC_DEFUN([AC_ISC_POSIX],
2381 dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
2382 AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
2386 # Add --enable-maintainer-mode option to configure.
2391 AC_DEFUN([AM_MAINTAINER_MODE],
2392 [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
2393 dnl maintainer-mode is disabled by default
2394 AC_ARG_ENABLE(maintainer-mode,
2395 [ --enable-maintainer-mode enable make rules and dependencies not useful
2396 (and sometimes confusing) to the casual installer],
2397 USE_MAINTAINER_MODE=$enableval,
2398 USE_MAINTAINER_MODE=no)
2399 AC_MSG_RESULT($USE_MAINTAINER_MODE)
2400 AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
2401 MAINT=$MAINTAINER_MODE_TRUE
2406 # Define a conditional.
2408 AC_DEFUN([AM_CONDITIONAL],
2419 # Do all the work for Automake. This macro actually does too much --
2420 # some checks are only needed if your package does certain things.
2421 # But this isn't really a big deal.
2426 dnl AM_INIT_AUTOMAKE(package,version, [no-define])
2428 AC_DEFUN([AM_INIT_AUTOMAKE],
2429 [AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
2430 AC_REQUIRE([AC_PROG_INSTALL])
2435 dnl test to see if srcdir already configured
2436 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
2437 AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
2440 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
2441 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
2442 AC_REQUIRE([AM_SANITY_CHECK])
2443 AC_REQUIRE([AC_ARG_PROGRAM])
2444 dnl FIXME This is truly gross.
2445 missing_dir=`cd $ac_aux_dir && pwd`
2446 AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir)
2447 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
2448 AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir)
2449 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
2450 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
2451 AC_REQUIRE([AC_PROG_MAKE_SET])])
2453 # Copyright 2002 Free Software Foundation, Inc.
2455 # This program is free software; you can redistribute it and/or modify
2456 # it under the terms of the GNU General Public License as published by
2457 # the Free Software Foundation; either version 2, or (at your option)
2458 # any later version.
2460 # This program is distributed in the hope that it will be useful,
2461 # but WITHOUT ANY WARRANTY; without even the implied warranty of
2462 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2463 # GNU General Public License for more details.
2465 # You should have received a copy of the GNU General Public License
2466 # along with this program; if not, write to the Free Software
2467 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
2469 # AM_AUTOMAKE_VERSION(VERSION)
2470 # ----------------------------
2471 # Automake X.Y traces this macro to ensure aclocal.m4 has been
2472 # generated from the m4 files accompanying Automake X.Y.
2473 AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"])
2475 # AM_SET_CURRENT_AUTOMAKE_VERSION
2476 # -------------------------------
2477 # Call AM_AUTOMAKE_VERSION so it can be traced.
2478 # This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
2479 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
2480 [AM_AUTOMAKE_VERSION([1.4-p6])])
2483 # Check to make sure that the build environment is sane.
2486 AC_DEFUN([AM_SANITY_CHECK],
2487 [AC_MSG_CHECKING([whether build environment is sane])
2490 echo timestamp > conftestfile
2491 # Do `set' in a subshell so we don't clobber the current shell's
2492 # arguments. Must try -L first in case configure is actually a
2493 # symlink; some systems play weird games with the mod time of symlinks
2494 # (eg FreeBSD returns the mod time of the symlink's containing
2497 set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
2498 if test "[$]*" = "X"; then
2500 set X `ls -t $srcdir/configure conftestfile`
2502 if test "[$]*" != "X $srcdir/configure conftestfile" \
2503 && test "[$]*" != "X conftestfile $srcdir/configure"; then
2505 # If neither matched, then we have a broken ls. This can happen
2506 # if, for instance, CONFIG_SHELL is bash and it inherits a
2507 # broken ls alias from the environment. This has actually
2508 # happened. Such a system could not be considered "sane".
2509 AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
2510 alias in your environment])
2513 test "[$]2" = conftestfile
2519 AC_MSG_ERROR([newly created file is older than distributed files!
2520 Check your system clock])
2523 AC_MSG_RESULT(yes)])
2525 dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
2526 dnl The program must properly implement --version.
2527 AC_DEFUN([AM_MISSING_PROG],
2528 [AC_MSG_CHECKING(for working $2)
2529 # Run test in a subshell; some versions of sh will print an error if
2530 # an executable is not found, even if stderr is redirected.
2531 # Redirect stdin to placate older versions of autoconf. Sigh.
2532 if ($2 --version) < /dev/null > /dev/null 2>&1; then
2534 AC_MSG_RESULT(found)
2537 AC_MSG_RESULT(missing)
2541 # Like AC_CONFIG_HEADER, but automatically create stamp file.
2543 AC_DEFUN([AM_CONFIG_HEADER],
2545 AC_CONFIG_HEADER([$1])
2546 dnl When config.status generates a header, we must update the stamp-h file.
2547 dnl This file resides in the same directory as the config header
2548 dnl that is generated. We must strip everything past the first ":",
2549 dnl and everything past the last "/".
2550 AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
2551 ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
2552 <<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
2554 for am_file in <<$1>>; do
2555 case " <<$>>CONFIG_HEADERS " in
2556 *" <<$>>am_file "*<<)>>
2557 echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
2560 am_indx=`expr "<<$>>am_indx" + 1`