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])
85 glibcpp_basedir=$srcdir/$toprel/$1/libstdc++-v3
86 AC_SUBST(glibcpp_basedir)
88 # Never versions of autoconf add an underscore to these functions.
89 # Prevent future problems ...
90 ifdef([AC_PROG_CC_G],[],[define([AC_PROG_CC_G],defn([_AC_PROG_CC_G]))])
91 ifdef([AC_PROG_CC_GNU],[],[define([AC_PROG_CC_GNU],defn([_AC_PROG_CC_GNU]))])
92 ifdef([AC_PROG_CXX_G],[],[define([AC_PROG_CXX_G],defn([_AC_PROG_CXX_G]))])
93 ifdef([AC_PROG_CXX_GNU],[],[define([AC_PROG_CXX_GNU],defn([_AC_PROG_CXX_GNU]))])
96 # FIXME: We temporarily define our own version of AC_PROG_CC. This is
97 # copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
98 # are probably using a cross compiler, which will not be able to fully
99 # link an executable. This is addressed in later versions of autoconf.
101 AC_DEFUN(LIB_AC_PROG_CC,
102 [AC_BEFORE([$0], [AC_PROG_CPP])dnl
103 dnl Fool anybody using AC_PROG_CC.
104 AC_PROVIDE([AC_PROG_CC])
105 AC_CHECK_PROG(CC, gcc, gcc)
106 if test -z "$CC"; then
107 AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
108 test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
113 if test $ac_cv_prog_gcc = yes; then
115 dnl Check whether -g works, even if CFLAGS is set, in case the package
116 dnl plays around with CFLAGS (such as to build both debugging and
117 dnl normal versions of a library), tasteless as that idea is.
118 ac_test_CFLAGS="${CFLAGS+set}"
119 ac_save_CFLAGS="$CFLAGS"
122 if test "$ac_test_CFLAGS" = set; then
123 CFLAGS="$ac_save_CFLAGS"
124 elif test $ac_cv_prog_cc_g = yes; then
131 test "${CFLAGS+set}" = set || CFLAGS="-g"
137 # Likewise for AC_PROG_CXX. We can't just call it directly because g++
138 # will try to link in libstdc++.
139 AC_DEFUN(LIB_AC_PROG_CXX,
140 [AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
141 dnl Fool anybody using AC_PROG_CXX.
142 AC_PROVIDE([AC_PROG_CXX])
143 # Use glibcpp_CXX so that we do not cause CXX to be cached with the
144 # flags that come in CXX while configuring libstdc++. They're different
145 # from those used for all other target libraries. If CXX is set in
146 # the environment, respect that here.
148 AC_CHECK_PROGS(glibcpp_CXX, $CCC c++ g++ gcc CC cxx cc++, gcc)
149 AC_SUBST(glibcpp_CXX)
151 test -z "$glibcpp_CXX" && AC_MSG_ERROR([no acceptable c++ found in \$PATH])
155 if test $ac_cv_prog_gxx = yes; then
157 dnl Check whether -g works, even if CXXFLAGS is set, in case the package
158 dnl plays around with CXXFLAGS (such as to build both debugging and
159 dnl normal versions of a library), tasteless as that idea is.
160 ac_test_CXXFLAGS="${CXXFLAGS+set}"
161 ac_save_CXXFLAGS="$CXXFLAGS"
164 if test "$ac_test_CXXFLAGS" = set; then
165 CXXFLAGS="$ac_save_CXXFLAGS"
166 elif test $ac_cv_prog_cxx_g = yes; then
173 test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
179 # For directory versioning (e.g., headers) and other variables.
180 AC_MSG_CHECKING([for GCC version number])
181 gcc_version=`$glibcpp_CXX -dumpversion`
182 AC_MSG_RESULT($gcc_version)
184 # For some reason, gettext needs this.
187 AC_CHECK_TOOL(AS, as)
188 AC_CHECK_TOOL(AR, ar)
189 AC_CHECK_TOOL(RANLIB, ranlib, ranlib-not-found-in-path-error)
194 # We need AC_EXEEXT to keep automake happy in cygnus mode. However,
195 # at least currently, we never actually build a program, so we never
196 # need to use $(EXEEXT). Moreover, the test for EXEEXT normally
197 # fails, because we are probably configuring with a cross compiler
198 # which can't create executables. So we include AC_EXEEXT to keep
199 # automake happy, but we don't execute it, since we don't care about
202 # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
203 # to nothing, so nothing would remain between `then' and `fi' if it
204 # were not for the `:' below.
209 case [$]{glibcpp_basedir} in
210 /* | [A-Za-z]:[\\/]*) libgcj_flagbasedir=[$]{glibcpp_basedir} ;;
211 *) glibcpp_flagbasedir='[$](top_builddir)/'[$]{glibcpp_basedir} ;;
214 # Find platform-specific directories containing configuration info. In
215 # addition to possibly modifying the same flags, it also sets up symlinks.
221 dnl Check to see if g++ can compile this library, and if so, if any version-
222 dnl specific precautions need to be taken.
224 dnl GLIBCPP_CHECK_COMPILER_VERSION
225 AC_DEFUN(GLIBCPP_CHECK_COMPILER_VERSION, [
226 if test ! -f stamp-sanity-compiler; then
227 AC_MSG_CHECKING([for g++ that will successfully compile libstdc++-v3])
234 ], gpp_satisfactory=yes, AC_MSG_ERROR([please upgrade to GCC 3.0 or above]))
236 AC_MSG_RESULT($gpp_satisfactory)
237 touch stamp-sanity-compiler
243 dnl Tests for newer compiler features, or features that are present in newer
244 dnl compiler versions but not older compiler versions still in use, should
247 dnl Define WERROR='-Werror' if requested and possible; g++'s that lack the
248 dnl new inlining code or the new system_header pragma will die on -Werror.
249 dnl Leave it out by default and use maint-mode to use it.
251 dnl Define SECTION_FLAGS='-ffunction-sections -fdata-sections' if
252 dnl compiler supports it and the user has not requested debug mode.
254 dnl GLIBCPP_CHECK_COMPILER_FEATURES
255 AC_DEFUN(GLIBCPP_CHECK_COMPILER_FEATURES, [
256 # All these tests are for C++; save the language and the compiler flags.
257 # The CXXFLAGS thing is suspicious, but based on similar bits previously
258 # found in GLIBCPP_CONFIGURE.
261 ac_test_CXXFLAGS="${CXXFLAGS+set}"
262 ac_save_CXXFLAGS="$CXXFLAGS"
264 # Check for maintainer-mode bits.
265 if test x"$USE_MAINTAINER_MODE" = xno; then
271 # Check for -ffunction-sections -fdata-sections
272 AC_MSG_CHECKING([for g++ that supports -ffunction-sections -fdata-sections])
273 CXXFLAGS='-Werror -ffunction-sections -fdata-sections'
274 AC_TRY_COMPILE(, [int foo;
275 ], [ac_fdsections=yes], [ac_fdsections=no])
276 if test "$ac_test_CXXFLAGS" = set; then
277 CXXFLAGS="$ac_save_CXXFLAGS"
279 # this is the suspicious part
282 if test x"$ac_fdsections" = x"yes" &&
283 test x"$enable_debug" = x"no"; then
284 SECTION_FLAGS='-ffunction-sections -fdata-sections'
286 AC_MSG_RESULT($ac_fdsections)
290 AC_SUBST(SECTION_FLAGS)
295 dnl If GNU ld is in use, check to see if tricky linker opts can be used. If
296 dnl the native linker is in use, all variables will be defined to something
297 dnl safe (like an empty string).
299 dnl Define SECTION_LDFLAGS='-Wl,--gc-sections' if possible.
300 dnl Define OPT_LDFLAGS='-Wl,-O1' if possible.
301 dnl Define LD, with_gnu_ld, and (possibly) glibcpp_gnu_ld_version as
302 dnl side-effects of testing.
304 dnl GLIBCPP_CHECK_LINKER_FEATURES
305 AC_DEFUN(GLIBCPP_CHECK_LINKER_FEATURES, [
306 # If we're not using GNU ld, then there's no point in even trying these
307 # tests. Check for that first. We should have already tested for gld
308 # by now (in libtool), but require it now just to be safe...
309 test -z "$SECTION_LDFLAGS" && SECTION_LDFLAGS=''
310 test -z "$OPT_LDFLAGS" && OPT_LDFLAGS=''
311 AC_REQUIRE([AC_PROG_LD])
313 # The name set by libtool depends on the version of libtool. Shame on us
314 # for depending on an impl detail, but c'est la vie. Older versions used
315 # ac_cv_prog_gnu_ld, but now it's lt_cv_prog_gnu_ld, and is copied back on
316 # top of with_gnu_ld (which is also set by --with-gnu-ld, so that actually
317 # makes sense). We'll test with_gnu_ld everywhere else, so if that isn't
318 # set (hence we're using an older libtool), then set it.
319 if test x${with_gnu_ld+set} != xset; then
320 if test x${ac_cv_prog_gnu_ld+set} != xset; then
321 # We got through "ac_require(ac_prog_ld)" and still not set? Huh?
324 with_gnu_ld=$ac_cv_prog_gnu_ld
328 # Start by getting the version number. I think the libtool test already
329 # does some of this, but throws away the result.
331 ldver=`$LD --version 2>/dev/null | head -1 | \
332 sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
334 glibcpp_gnu_ld_version=`echo $ldver | \
335 $AWK -F. '{ if (NF<3) [$]3=0; print ([$]1*100+[$]2)*100+[$]3 }'`
338 if test "$with_gnu_ld" = "notbroken"; then
339 # GNU ld it is! Joy and bunny rabbits!
341 # All these tests are for C++; save the language and the compiler flags.
342 # Need to do this so that g++ won't try to link in libstdc++
343 ac_test_CFLAGS="${CFLAGS+set}"
344 ac_save_CFLAGS="$CFLAGS"
345 CFLAGS='-x c++ -Wl,--gc-sections'
347 # Check for -Wl,--gc-sections
348 # XXX This test is broken at the moment, as symbols required for
349 # linking are now in libsupc++ (not built yet.....). In addition,
350 # this test has cored on solaris in the past. In addition,
351 # --gc-sections doesn't really work at the moment (keeps on discarding
352 # used sections, first .eh_frame and now some of the glibc sections for
353 # iconv). Bzzzzt. Thanks for playing, maybe next time.
354 AC_MSG_CHECKING([for ld that supports -Wl,--gc-sections])
362 ], [ac_sectionLDflags=yes],[ac_sectionLDflags=no], [ac_sectionLDflags=yes])
363 if test "$ac_test_CFLAGS" = set; then
364 CFLAGS="$ac_save_CFLAGS"
366 # this is the suspicious part
369 if test "$ac_sectionLDflags" = "yes"; then
370 SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
372 AC_MSG_RESULT($ac_sectionLDflags)
375 # Set linker optimization flags.
376 if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
377 OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
380 AC_SUBST(SECTION_LDFLAGS)
381 AC_SUBST(OPT_LDFLAGS)
386 dnl Check to see if the (math function) argument passed is
387 dnl declared when using the c++ compiler
388 dnl ASSUMES argument is a math function with ONE parameter
390 dnl GLIBCPP_CHECK_MATH_DECL_1
391 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_1, [
392 AC_MSG_CHECKING([for $1 declaration])
393 if test x${glibcpp_cv_func_$1_use+set} != xset; then
394 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
397 AC_TRY_COMPILE([#include <math.h>
403 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
407 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
411 dnl Check to see if the (math function) argument passed is
412 dnl 1) declared when using the c++ compiler
413 dnl 2) has "C" linkage
414 dnl 3) if not, see if 1) and 2) for argument prepended with '_'
416 dnl Define HAVE_CARGF etc if "cargf" is declared and links
418 dnl argument 1 is name of function to check
420 dnl ASSUMES argument is a math function with ONE parameter
422 dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1
423 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1, [
424 GLIBCPP_CHECK_MATH_DECL_1($1)
425 if test x$glibcpp_cv_func_$1_use = x"yes"; then
428 GLIBCPP_CHECK_MATH_DECL_1(_$1)
429 if test x$glibcpp_cv_func__$1_use = x"yes"; then
437 dnl Like GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1, but does a bunch of
438 dnl of functions at once. It's an all-or-nothing check -- either
439 dnl HAVE_XYZ is defined for each of the functions, or for none of them.
440 dnl Doing it this way saves significant configure time.
441 AC_DEFUN(GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1, [
442 AC_MSG_CHECKING([for $1 functions])
443 AC_CACHE_VAL(glibcpp_cv_func_$2_use, [
446 AC_TRY_COMPILE([#include <math.h>],
447 [ `for x in $3; do echo "$x (0);"; done` ],
448 [glibcpp_cv_func_$2_use=yes],
449 [glibcpp_cv_func_$2_use=no])
451 AC_MSG_RESULT($glibcpp_cv_func_$2_use)
452 if test x$glibcpp_cv_func_$2_use = x"yes"; then
458 dnl Check to see if the (math function) argument passed is
459 dnl declared when using the c++ compiler
460 dnl ASSUMES argument is a math function with TWO parameters
462 dnl GLIBCPP_CHECK_MATH_DECL_2
463 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_2, [
464 AC_MSG_CHECKING([for $1 declaration])
465 if test x${glibcpp_cv_func_$1_use+set} != xset; then
466 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
469 AC_TRY_COMPILE([#include <math.h>],
471 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
475 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
479 dnl Check to see if the (math function) argument passed is
480 dnl 1) declared when using the c++ compiler
481 dnl 2) has "C" linkage
483 dnl Define HAVE_CARGF etc if "cargf" is declared and links
485 dnl argument 1 is name of function to check
487 dnl ASSUMES argument is a math function with TWO parameters
489 dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2
490 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2, [
491 GLIBCPP_CHECK_MATH_DECL_2($1)
492 if test x$glibcpp_cv_func_$1_use = x"yes"; then
495 GLIBCPP_CHECK_MATH_DECL_2(_$1)
496 if test x$glibcpp_cv_func__$1_use = x"yes"; then
504 dnl Check to see if the (math function) argument passed is
505 dnl declared when using the c++ compiler
506 dnl ASSUMES argument is a math function with THREE parameters
508 dnl GLIBCPP_CHECK_MATH_DECL_3
509 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_3, [
510 AC_MSG_CHECKING([for $1 declaration])
511 if test x${glibcpp_cv_func_$1_use+set} != xset; then
512 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
515 AC_TRY_COMPILE([#include <math.h>],
517 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
521 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
525 dnl Check to see if the (math function) argument passed is
526 dnl 1) declared when using the c++ compiler
527 dnl 2) has "C" linkage
529 dnl Define HAVE_CARGF etc if "cargf" is declared and links
531 dnl argument 1 is name of function to check
533 dnl ASSUMES argument is a math function with THREE parameters
535 dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3
536 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3, [
537 GLIBCPP_CHECK_MATH_DECL_3($1)
538 if test x$glibcpp_cv_func_$1_use = x"yes"; then
541 GLIBCPP_CHECK_MATH_DECL_3(_$1)
542 if test x$glibcpp_cv_func__$1_use = x"yes"; then
550 dnl Check to see if the (stdlib function) argument passed is
551 dnl 1) declared when using the c++ compiler
552 dnl 2) has "C" linkage
554 dnl argument 1 is name of function to check
556 dnl ASSUMES argument is a math function with TWO parameters
558 dnl GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2
559 AC_DEFUN(GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2, [
560 AC_MSG_CHECKING([for $1 declaration])
561 if test x${glibcpp_cv_func_$1_use+set} != xset; then
562 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
565 AC_TRY_COMPILE([#include <stdlib.h>],
567 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
571 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
572 if test x$glibcpp_cv_func_$1_use = x"yes"; then
579 dnl Check to see if the (stdlib function) argument passed is
580 dnl 1) declared when using the c++ compiler
581 dnl 2) has "C" linkage
583 dnl argument 1 is name of function to check
585 dnl ASSUMES argument is a function with THREE parameters
587 dnl GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3
588 AC_DEFUN(GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3, [
589 AC_MSG_CHECKING([for $1 declaration])
590 if test x${glibcpp_cv_func_$1_use+set} != xset; then
591 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
594 AC_TRY_COMPILE([#include <stdlib.h>],
596 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
600 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
601 if test x$glibcpp_cv_func_$1_use = x"yes"; then
607 dnl Check to see if the (unistd function) argument passed is
608 dnl 1) declared when using the c++ compiler
609 dnl 2) has "C" linkage
611 dnl argument 1 is name of function to check
613 dnl ASSUMES argument is a function with ONE parameter
615 dnl GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1
616 AC_DEFUN(GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1, [
617 AC_MSG_CHECKING([for $1 declaration])
618 if test x${glibcpp_cv_func_$1_use+set} != xset; then
619 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
622 AC_TRY_COMPILE([#include <unistd.h>],
624 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
628 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
629 if test x$glibcpp_cv_func_$1_use = x"yes"; then
635 dnl Because the builtins are picky picky picky about the arguments they take,
636 dnl do an explict linkage tests here.
637 dnl Check to see if the (math function) argument passed is
638 dnl 1) declared when using the c++ compiler
639 dnl 2) has "C" linkage
641 dnl Define HAVE_CARGF etc if "cargf" is declared and links
643 dnl argument 1 is name of function to check
645 dnl ASSUMES argument is a math function with ONE parameter
647 dnl GLIBCPP_CHECK_BUILTIN_MATH_DECL_LINKAGE_1
648 AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1, [
649 AC_MSG_CHECKING([for $1 declaration])
650 if test x${glibcpp_cv_func_$1_use+set} != xset; then
651 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
654 AC_TRY_COMPILE([#include <math.h>],
656 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
660 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
661 if test x$glibcpp_cv_func_$1_use = x"yes"; then
662 AC_MSG_CHECKING([for $1 linkage])
663 if test x${glibcpp_cv_func_$1_link+set} != xset; then
664 AC_CACHE_VAL(glibcpp_cv_func_$1_link, [
665 AC_TRY_LINK([#include <math.h>],
667 [glibcpp_cv_func_$1_link=yes], [glibcpp_cv_func_$1_link=no])
670 AC_MSG_RESULT($glibcpp_cv_func_$1_link)
671 if test x$glibcpp_cv_func_$1_link = x"yes"; then
672 ac_tr_func=HAVE_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
673 AC_DEFINE_UNQUOTED(${ac_tr_func})
680 dnl Check to see what builtin math functions are supported
682 dnl check for __builtin_abs
683 dnl check for __builtin_fabsf
684 dnl check for __builtin_fabs
685 dnl check for __builtin_fabl
686 dnl check for __builtin_labs
687 dnl check for __builtin_sqrtf
688 dnl check for __builtin_sqrtl
689 dnl check for __builtin_sqrt
690 dnl check for __builtin_sinf
691 dnl check for __builtin_sin
692 dnl check for __builtin_sinl
693 dnl check for __builtin_cosf
694 dnl check for __builtin_cos
695 dnl check for __builtin_cosl
697 dnl GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT
698 AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT, [
699 dnl Test for builtin math functions.
700 dnl These are made in gcc/c-common.c
701 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_abs)
702 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabsf)
703 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabs)
704 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabsl)
705 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_labs)
707 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrtf)
708 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrt)
709 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrtl)
711 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sinf)
712 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sin)
713 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sinl)
715 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cosf)
716 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cos)
717 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cosl)
719 dnl There is, without a doubt, a more elegant way to have these
720 dnl names exported so that they won't be stripped out of acconfig.h by
721 dnl autoheader. I leave this as an exercise to somebody less frustrated
722 dnl than I.... please email the libstdc++ list if you can figure out a
723 dnl more elegant approach (see autoconf/acgen.m4 and specifically
724 dnl AC_CHECK_FUNC for things to steal.)
726 if test x$dummyvar = x"yes"; then
727 AC_DEFINE(HAVE___BUILTIN_ABS)
728 AC_DEFINE(HAVE___BUILTIN_LABS)
729 AC_DEFINE(HAVE___BUILTIN_COS)
730 AC_DEFINE(HAVE___BUILTIN_COSF)
731 AC_DEFINE(HAVE___BUILTIN_COSL)
732 AC_DEFINE(HAVE___BUILTIN_FABS)
733 AC_DEFINE(HAVE___BUILTIN_FABSF)
734 AC_DEFINE(HAVE___BUILTIN_FABSL)
735 AC_DEFINE(HAVE___BUILTIN_SIN)
736 AC_DEFINE(HAVE___BUILTIN_SINF)
737 AC_DEFINE(HAVE___BUILTIN_SINL)
738 AC_DEFINE(HAVE___BUILTIN_SQRT)
739 AC_DEFINE(HAVE___BUILTIN_SQRTF)
740 AC_DEFINE(HAVE___BUILTIN_SQRTL)
745 dnl Check to see what the underlying c library is like
746 dnl These checks need to do two things:
747 dnl 1) make sure the name is declared when using the c++ compiler
748 dnl 2) make sure the name has "C" linkage
749 dnl This might seem like overkill but experience has shown that it's not...
751 dnl Define HAVE_STRTOLD if "strtold" is declared and links
752 dnl Define HAVE_STRTOF if "strtof" is declared and links
753 dnl Define HAVE_DRAND48 if "drand48" is declared and links
755 dnl GLIBCPP_CHECK_STDLIB_SUPPORT
756 AC_DEFUN(GLIBCPP_CHECK_STDLIB_SUPPORT, [
757 ac_test_CXXFLAGS="${CXXFLAGS+set}"
758 ac_save_CXXFLAGS="$CXXFLAGS"
759 CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
761 GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtold)
762 GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtof)
763 AC_CHECK_FUNCS(drand48)
765 CXXFLAGS="$ac_save_CXXFLAGS"
769 dnl Check to see what the underlying c library is like
770 dnl These checks need to do two things:
771 dnl 1) make sure the name is declared when using the c++ compiler
772 dnl 2) make sure the name has "C" linkage
773 dnl This might seem like overkill but experience has shown that it's not...
775 dnl Define HAVE_ISATTY if "isatty" is declared and links
777 dnl GLIBCPP_CHECK_UNISTD_SUPPORT
778 AC_DEFUN(GLIBCPP_CHECK_UNISTD_SUPPORT, [
779 ac_test_CXXFLAGS="${CXXFLAGS+set}"
780 ac_save_CXXFLAGS="$CXXFLAGS"
781 CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
783 GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1(isatty)
785 CXXFLAGS="$ac_save_CXXFLAGS"
789 dnl Check to see what the underlying c library or math library is like.
790 dnl These checks need to do two things:
791 dnl 1) make sure the name is declared when using the c++ compiler
792 dnl 2) make sure the name has "C" linkage
793 dnl This might seem like overkill but experience has shown that it's not...
795 dnl Define HAVE_CARGF etc if "cargf" is found.
797 dnl GLIBCPP_CHECK_MATH_SUPPORT
798 AC_DEFUN(GLIBCPP_CHECK_MATH_SUPPORT, [
799 ac_test_CXXFLAGS="${CXXFLAGS+set}"
800 ac_save_CXXFLAGS="$CXXFLAGS"
801 CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
804 AC_CHECK_LIB(m, sin, libm="-lm")
808 dnl Check to see if certain C math functions exist.
809 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinf)
810 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnan)
811 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finite)
812 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(copysign)
813 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincos)
814 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fpclass)
815 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(qfpclass)
816 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypot)
818 dnl Check to see if basic C math functions have float versions.
819 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(float trig,
824 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(float round,
827 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(expf)
828 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnanf)
829 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinff)
830 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(atan2f)
831 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsf)
832 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodf)
833 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpf)
834 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypotf)
835 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpf)
836 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logf)
837 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10f)
838 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(modff)
839 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(powf)
840 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtf)
841 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincosf)
842 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finitef)
844 dnl Check to see if basic C math functions have long double versions.
845 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(long double trig,
850 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(long double round,
853 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnanl)
854 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinfl)
855 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(copysignl)
856 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(atan2l)
857 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(expl)
858 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsl)
859 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodl)
860 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpl)
861 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypotl)
862 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpl)
863 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logl)
864 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10l)
865 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(modfl)
866 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(powl)
867 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtl)
868 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincosl)
869 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finitel)
871 dnl Some runtimes have these functions with a preceding underscore. Please
872 dnl keep this sync'd with the one above. And if you add any new symbol,
873 dnl please add the corresponding block in the @BOTTOM@ section of acconfig.h.
874 dnl Check to see if certain C math functions exist.
876 dnl Check to see if basic C math functions have float versions.
877 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_float trig,
879 _acosf _asinf _atanf \
881 _coshf _sinhf _tanhf)
882 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_float round,
886 dnl Check to see if basic C math functions have long double versions.
887 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_long double trig,
889 _acosl _asinl _atanl \
891 _coshl _sinhl _tanhl)
892 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_long double round,
897 CXXFLAGS="$ac_save_CXXFLAGS"
902 dnl Check to see if there is native support for complex
904 dnl Don't compile bits in math/* if native support exits.
906 dnl Define USE_COMPLEX_LONG_DOUBLE etc if "copysignl" is found.
908 dnl GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT
909 AC_DEFUN(GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT, [
910 dnl Check for complex versions of math functions of platform.
911 AC_CHECK_LIB(m, main)
912 AC_REPLACE_MATHFUNCS(nan copysignf)
914 dnl For __signbit to signbit conversions.
915 AC_CHECK_FUNCS([__signbit], , [LIBMATHOBJS="$LIBMATHOBJS signbit.lo"])
916 AC_CHECK_FUNCS([__signbitf], , [LIBMATHOBJS="$LIBMATHOBJS signbitf.lo"])
918 dnl Compile the long double complex functions only if the function
919 dnl provides the non-complex long double functions that are needed.
920 dnl Currently this includes copysignl, which should be
921 dnl cached from the GLIBCPP_CHECK_MATH_SUPPORT macro, above.
922 if test x$ac_cv_func_copysignl = x"yes"; then
923 AC_CHECK_FUNCS([__signbitl], , [LIBMATHOBJS="$LIBMATHOBJS signbitl.lo"])
926 AC_SUBST(LIBMATHOBJS)
930 dnl Check to see what architecture and operating system we are compiling
931 dnl for. Also, if architecture- or OS-specific flags are required for
932 dnl compilation, pick them up here.
934 dnl GLIBCPP_CHECK_TARGET
935 AC_DEFUN(GLIBCPP_CHECK_TARGET, [
936 . [$]{glibcpp_basedir}/configure.target
937 AC_MSG_RESULT(CPU config directory is $cpu_include_dir)
938 AC_MSG_RESULT(OS config directory is $os_include_dir)
943 dnl Check to see if this target can enable the wchar_t parts of libstdc++.
944 dnl If --disable-c-mbchar was given, no wchar_t stuff is enabled. (This
945 dnl must have been previously checked.)
947 dnl Define _GLIBCPP_USE_WCHAR_T if all the bits are found
948 dnl Define HAVE_MBSTATE_T if mbstate_t is not in wchar.h
950 dnl GLIBCPP_CHECK_WCHAR_T_SUPPORT
951 AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
953 dnl Test wchar.h for mbstate_t, which is needed for char_traits and
954 dnl others even if wchar_t support is not on.
955 AC_MSG_CHECKING([for mbstate_t])
956 AC_TRY_COMPILE([#include <wchar.h>],
957 [mbstate_t teststate;],
958 have_mbstate_t=yes, have_mbstate_t=no)
959 AC_MSG_RESULT($have_mbstate_t)
960 if test x"$have_mbstate_t" = xyes; then
961 AC_DEFINE(HAVE_MBSTATE_T)
964 dnl Sanity check for existence of ISO C99 headers for extended encoding.
965 AC_CHECK_HEADERS(wchar.h, ac_has_wchar_h=yes, ac_has_wchar_h=no)
966 AC_CHECK_HEADERS(wctype.h, ac_has_wctype_h=yes, ac_has_wctype_h=no)
968 dnl Only continue checking if the ISO C99 headers exist and support is on.
969 if test x"$ac_has_wchar_h" = xyes &&
970 test x"$ac_has_wctype_h" = xyes &&
971 test x"$enable_c_mbchar" != xno; then
973 dnl Test wchar.h for WCHAR_MIN, WCHAR_MAX, which is needed before
974 dnl numeric_limits can instantiate type_traits<wchar_t>
975 AC_MSG_CHECKING([for WCHAR_MIN and WCHAR_MAX])
976 AC_TRY_COMPILE([#include <wchar.h>],
977 [int i = WCHAR_MIN; int j = WCHAR_MAX;],
978 has_wchar_minmax=yes, has_wchar_minmax=no)
979 AC_MSG_RESULT($has_wchar_minmax)
981 dnl Test wchar.h for WEOF, which is what we use to determine whether
982 dnl to specialize for char_traits<wchar_t> or not.
983 AC_MSG_CHECKING([for WEOF])
986 #include <stddef.h>],
988 has_weof=yes, has_weof=no)
989 AC_MSG_RESULT($has_weof)
991 dnl Tests for wide character functions used in char_traits<wchar_t>.
993 AC_CHECK_FUNCS(wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset,, \
996 dnl Checks for names injected into std:: by the c_std headers.
997 AC_CHECK_FUNCS(btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
998 fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
999 vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
1000 mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
1001 wcstoul wcscpy wcsncpy wcscat wcsncat wcscmp wcscoll wcsncmp wcsxfrm \
1002 wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr,, \
1005 AC_MSG_CHECKING([for ISO C99 wchar_t support])
1006 if test x"$has_weof" = xyes &&
1007 test x"$has_wchar_minmax" = xyes &&
1008 test x"$ac_wfuncs" = xyes; then
1009 ac_isoC99_wchar_t=yes
1011 ac_isoC99_wchar_t=no
1013 AC_MSG_RESULT($ac_isoC99_wchar_t)
1015 dnl Use iconv for wchar_t to char conversions. As such, check for
1016 dnl X/Open Portability Guide, version 2 features (XPG2).
1017 AC_CHECK_HEADER(iconv.h, ac_has_iconv_h=yes, ac_has_iconv_h=no)
1018 AC_CHECK_HEADER(langinfo.h, ac_has_langinfo_h=yes, ac_has_langinfo_h=no)
1020 dnl Check for existence of libiconv.a providing XPG2 wchar_t support.
1021 AC_CHECK_LIB(iconv, iconv, libiconv="-liconv")
1022 ac_save_LIBS="$LIBS"
1023 LIBS="$LIBS $libiconv"
1025 AC_CHECK_FUNCS(iconv_open iconv_close iconv nl_langinfo, \
1026 ac_XPG2funcs=yes, ac_XPG2funcs=no)
1028 LIBS="$ac_save_LIBS"
1030 AC_MSG_CHECKING([for XPG2 wchar_t support])
1031 if test x"$ac_has_iconv_h" = xyes &&
1032 test x"$ac_has_langinfo_h" = xyes &&
1033 test x"$ac_XPG2funcs" = xyes; then
1038 AC_MSG_RESULT($ac_XPG2_wchar_t)
1040 dnl At the moment, only enable wchar_t specializations if all the
1041 dnl above support is present.
1042 AC_MSG_CHECKING([for enabled wchar_t specializations])
1043 if test x"$ac_isoC99_wchar_t" = xyes &&
1044 test x"$ac_XPG2_wchar_t" = xyes; then
1045 AC_DEFINE(_GLIBCPP_USE_WCHAR_T)
1046 AC_MSG_RESULT("yes")
1051 dnl Wide characters disabled by the user.
1052 AC_MSG_WARN([wchar_t support disabled.])
1058 dnl Check for special debugging mode; not for production use.
1060 dnl GLIBCPP_ENABLE_DEBUG
1061 dnl --enable-debug sets '-ggdb3 -O0'.
1062 dnl --disable-debug sets '-g' and whatever optimization options the
1063 dnl compiler can handle.
1064 dnl + --enable-maintainer-mode automatically defaults this to on.
1065 dnl + Perhaps -D/-U of NDEBUG, DEBUG, DEBUG_ASSERT, ...?
1066 dnl + Usage: GLIBCPP_ENABLE_DEBUG[(DEFAULT)]
1067 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
1068 dnl defaults to `no'.
1069 AC_DEFUN(GLIBCPP_ENABLE_DEBUG, [dnl
1070 define([GLIBCPP_ENABLE_DEBUG_DEFAULT], ifelse($1, yes, yes, no))dnl
1071 AC_ARG_ENABLE(debug,
1072 changequote(<<, >>)dnl
1073 << --enable-debug extra debugging, turn off optimization [default=>>GLIBCPP_ENABLE_DEBUG_DEFAULT],
1074 changequote([, ])dnl
1075 [case "${enableval}" in
1076 yes) enable_debug=yes ;;
1077 no) enable_debug=no ;;
1078 *) AC_MSG_ERROR([Unknown argument to enable/disable extra debugging]) ;;
1080 enable_debug=GLIBCPP_ENABLE_DEBUG_DEFAULT)dnl
1082 dnl Option parsed, now set things appropriately
1083 case "${enable_debug}" in
1085 DEBUG_FLAGS='-O0 -ggdb3'
1091 AC_SUBST(DEBUG_FLAGS)
1096 dnl Check for "unusual" flags to pass to the compiler while building.
1098 dnl GLIBCPP_ENABLE_CXX_FLAGS
1099 dnl --enable-cxx-flags='-foo -bar -baz' is a general method for passing
1100 dnl experimental flags such as -fhonor-std, -fsquangle, -Dfloat=char, etc.
1101 dnl Somehow this same set of flags must be passed when [re]building
1103 dnl --disable-cxx-flags passes nothing.
1104 dnl + See http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00131.html
1105 dnl http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00284.html
1106 dnl http://gcc.gnu.org/ml/libstdc++/2000-q1/msg00035.html
1107 dnl + Usage: GLIBCPP_ENABLE_CXX_FLAGS(default flags)
1108 dnl If "default flags" is an empty string (or "none"), the effect is
1109 dnl the same as --disable or --enable=no.
1110 AC_DEFUN(GLIBCPP_ENABLE_CXX_FLAGS, [dnl
1111 define([GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT], ifelse($1,,, $1))dnl
1112 AC_ARG_ENABLE(cxx-flags,
1113 changequote(<<, >>)dnl
1114 << --enable-cxx-flags=FLAGS pass compiler FLAGS when building library;
1115 [default=>>GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT],
1116 changequote([, ])dnl
1117 [case "x$enableval" in
1119 AC_MSG_ERROR([--enable-cxx-flags needs compiler flags as arguments]) ;;
1121 enable_cxx_flags='' ;;
1123 enable_cxx_flags="$enableval" ;;
1125 enable_cxx_flags='GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT')
1127 dnl Thinko on my part during design. This kludge is the workaround.
1128 if test "$enable_cxx_flags" = "none"; then
1129 enable_cxx_flags='';
1132 dnl Run through flags (either default or command-line) and set anything
1133 dnl extra (e.g., #defines) that must accompany particular g++ options.
1134 if test -n "$enable_cxx_flags"; then
1135 for f in $enable_cxx_flags; do
1139 *) # and we're trying to pass /what/ exactly?
1140 AC_MSG_ERROR([compiler flags start with a -]) ;;
1144 EXTRA_CXX_FLAGS="$enable_cxx_flags"
1145 AC_SUBST(EXTRA_CXX_FLAGS)
1150 dnl Check for which locale library to use: gnu or generic.
1152 dnl GLIBCPP_ENABLE_CLOCALE
1153 dnl --enable-clocale=gnu sets config/locale/c_locale_gnu.cc and friends
1154 dnl --enable-clocale=generic sets config/locale/c_locale_generic.cc and friends
1156 dnl default is generic
1158 AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
1159 AC_MSG_CHECKING([for clocale to use])
1160 AC_ARG_ENABLE(clocale,
1161 [ --enable-clocale enable model for target locale package.
1162 --enable-clocale=MODEL use MODEL target-speific locale package. [default=generic]
1164 if test x$enable_clocale = xno; then
1169 enable_clocale_flag=$enable_clocale
1171 dnl Probe for locale support if no specific model is specified.
1172 dnl Default to "generic"
1173 if test x$enable_clocale_flag = xno; then
1174 case x${target_os} in
1176 AC_EGREP_CPP([_GLIBCPP_ok], [
1177 #include <features.h>
1178 #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
1181 ], enable_clocale_flag=gnu, enable_clocale_flag=generic)
1183 # Test for bugs early in glibc-2.2.x series
1184 if test x$enable_clocale_flag = xgnu; then
1186 #define _GNU_SOURCE 1
1189 #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
1190 extern __typeof(newlocale) __newlocale;
1191 extern __typeof(duplocale) __duplocale;
1192 extern __typeof(strcoll_l) __strcoll_l;
1196 const char __one[] = "Äuglein Augmen";
1197 const char __two[] = "Äuglein";
1202 loc = __newlocale(1 << LC_ALL, "de_DE", 0);
1203 loc_dup = __duplocale(loc);
1204 i = __strcoll_l(__one, __two, loc);
1205 j = __strcoll_l(__one, __two, loc_dup);
1209 [enable_clocale_flag=gnu],[enable_clocale_flag=generic],
1210 [enable_clocale_flag=generic])
1213 # ... at some point put __strxfrm_l tests in as well.
1216 enable_clocale_flag=generic
1221 dnl Deal with gettext issues.
1223 [ --enable-nls use Native Language Support (default)],
1227 dnl Set configure bits for specified locale package
1228 case x${enable_clocale_flag} in
1230 AC_MSG_RESULT(generic)
1232 CLOCALE_H=config/locale/generic/c_locale.h
1233 CLOCALE_CC=config/locale/generic/c_locale.cc
1234 CCODECVT_H=config/locale/generic/codecvt_specializations.h
1235 CCODECVT_CC=config/locale/generic/codecvt_members.cc
1236 CCOLLATE_CC=config/locale/generic/collate_members.cc
1237 CCTYPE_CC=config/locale/generic/ctype_members.cc
1238 CMESSAGES_H=config/locale/generic/messages_members.h
1239 CMESSAGES_CC=config/locale/generic/messages_members.cc
1240 CMONEY_CC=config/locale/generic/monetary_members.cc
1241 CNUMERIC_CC=config/locale/generic/numeric_members.cc
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_CC=config/locale/gnu/time_members.cc
1277 CLOCALE_INTERNAL_H=config/locale/gnu/c++locale_internal.h
1280 AC_MSG_RESULT(generic)
1282 CLOCALE_H=config/locale/ieee_1003.1-2001/c_locale.h
1283 CLOCALE_CC=config/locale/ieee_1003.1-2001/c_locale.cc
1284 CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h
1285 CCODECVT_CC=config/locale/generic/codecvt_members.cc
1286 CCOLLATE_CC=config/locale/generic/collate_members.cc
1287 CCTYPE_CC=config/locale/generic/ctype_members.cc
1288 CMESSAGES_H=config/locale/ieee_1003.1-2001/messages_members.h
1289 CMESSAGES_CC=config/locale/ieee_1003.1-2001/messages_members.cc
1290 CMONEY_CC=config/locale/generic/monetary_members.cc
1291 CNUMERIC_CC=config/locale/generic/numeric_members.cc
1292 CTIME_CC=config/locale/generic/time_members.cc
1293 CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
1296 echo "$enable_clocale is an unknown locale package" 1>&2
1301 # This is where the testsuite looks for locale catalogs, using the
1302 # -DLOCALEDIR define during testsuite compilation.
1303 glibcpp_localedir=${glibcpp_builddir}/po/share/locale
1304 AC_SUBST(glibcpp_localedir)
1306 # For the time being, transform ctype_noninline.h to ctype_members_char.cc
1307 # CCTYPE_CHAR_CC=config/${os_include_dir}/ctype_noninline.h
1311 AC_SUBST(CCODECVT_H)
1312 AC_SUBST(CMESSAGES_H)
1313 AC_LINK_FILES($CLOCALE_CC, src/c++locale.cc)
1314 AC_LINK_FILES($CCODECVT_CC, src/codecvt_members.cc)
1315 AC_LINK_FILES($CCOLLATE_CC, src/collate_members.cc)
1316 # AC_LINK_FILES($CCTYPE_CHAR_CC, src/ctype_members_char.cc)
1317 AC_LINK_FILES($CCTYPE_CC, src/ctype_members.cc)
1318 AC_LINK_FILES($CMESSAGES_CC, src/messages_members.cc)
1319 AC_LINK_FILES($CMONEY_CC, src/monetary_members.cc)
1320 AC_LINK_FILES($CNUMERIC_CC, src/numeric_members.cc)
1321 AC_LINK_FILES($CTIME_CC, src/time_members.cc)
1322 AC_LINK_FILES($CLOCALE_INTERNAL_H, src/c++locale_internal.h)
1327 dnl Check for which I/O library to use: libio, or something specific.
1329 dnl GLIBCPP_ENABLE_CSTDIO
1330 dnl --enable-cstdio=libio sets config/io/c_io_libio.h and friends
1332 dnl default is stdio
1334 AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [
1335 AC_MSG_CHECKING([for cstdio to use])
1336 AC_ARG_ENABLE(cstdio,
1337 [ --enable-cstdio enable stdio for target io package.
1338 --enable-cstdio=LIB use LIB target-speific io package. [default=stdio]
1340 if test x$enable_cstdio = xno; then
1343 enable_cstdio=stdio)
1345 enable_cstdio_flag=$enable_cstdio
1347 dnl Check if a valid I/O package
1348 case x${enable_cstdio_flag} in
1350 CSTDIO_H=config/io/c_io_libio.h
1351 BASIC_FILE_H=config/io/basic_file_libio.h
1352 BASIC_FILE_CC=config/io/basic_file_libio.cc
1353 AC_MSG_RESULT(libio)
1355 # see if we are on a system with libio native (ie, linux)
1356 AC_CHECK_HEADER(libio.h, has_libio=yes, has_libio=no)
1358 # Need to check and see what version of glibc is being used. If
1359 # it's not glibc-2.2 or higher, then we'll need to go ahead and
1360 # compile most of libio for linux systems.
1361 if test x$has_libio = x"yes"; then
1364 AC_MSG_CHECKING([for glibc version >= 2.2])
1365 AC_EGREP_CPP([ok], [
1366 #include <features.h>
1367 #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
1370 ], glibc_satisfactory=yes, glibc_satisfactory=no)
1371 AC_MSG_RESULT($glibc_satisfactory)
1375 # XXX at the moment, admit defeat and force the recompilation
1376 # XXX of glibc even on glibc-2.2 systems, because libio is not synched.
1377 glibc_satisfactory=no
1379 if test x$glibc_satisfactory = x"yes"; then
1384 # bkoz XXX need to add checks to enable this
1385 # pme XXX here's a first pass at such a check
1386 if test x$enable_c_mbchar != xno; then
1394 # Using libio, but <libio.h> doesn't exist on the target system. . .
1396 # bkoz XXX need to add checks to enable this
1397 # pme XXX here's a first pass at such a check
1398 if test x$enable_c_mbchar != xno; then
1405 xstdio | x | xno | xnone | xyes)
1407 CSTDIO_H=config/io/c_io_stdio.h
1408 BASIC_FILE_H=config/io/basic_file_stdio.h
1409 BASIC_FILE_CC=config/io/basic_file_stdio.cc
1410 AC_MSG_RESULT(stdio)
1412 # We're not using stdio.
1417 echo "$enable_cstdio is an unknown io package" 1>&2
1422 AC_SUBST(BASIC_FILE_H)
1423 AC_LINK_FILES($BASIC_FILE_CC, src/basic_file.cc)
1425 # 2000-08-04 bkoz hack
1426 CCODECVT_C=config/io/c_io_libio_codecvt.c
1427 AC_SUBST(CCODECVT_C)
1428 # 2000-08-04 bkoz hack
1430 AM_CONDITIONAL(GLIBCPP_BUILD_LIBIO,
1431 test "$need_libio" = yes || test "$need_wlibio" = yes)
1432 AM_CONDITIONAL(GLIBCPP_NEED_LIBIO, test "$need_libio" = yes)
1433 AM_CONDITIONAL(GLIBCPP_NEED_WLIBIO, test "$need_wlibio" = yes)
1434 if test "$need_libio" = yes || test "$need_wlibio" = yes; then
1435 libio_la=../libio/libio.la
1444 dnl Setup to use the gcc gthr.h thread-specific memory and mutex model.
1445 dnl We must stage the required headers so that they will be installed
1446 dnl with the library (unlike libgcc, the STL implementation is provided
1447 dnl solely within headers). Since we must not inject random user-space
1448 dnl macro names into user-provided C++ code, we first stage into <file>-in
1449 dnl and process to <file> with an output command. The reason for a two-
1450 dnl stage process here is to correctly handle $srcdir!=$objdir without
1451 dnl having to write complex code (the sed commands to clean the macro
1452 dnl namespace are complex and fragile enough as it is). We must also
1453 dnl add a relative path so that -I- is supported properly.
1455 AC_DEFUN(GLIBCPP_ENABLE_THREADS, [
1456 AC_MSG_CHECKING([for thread model used by GCC])
1457 target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
1458 AC_MSG_RESULT([$target_thread_file])
1460 if test $target_thread_file != single; then
1461 AC_DEFINE(HAVE_GTHR_DEFAULT)
1462 AC_DEFINE(_GLIBCPP_SUPPORTS_WEAK, __GXX_WEAK__)
1465 glibcpp_thread_h=gthr-$target_thread_file.h
1466 AC_SUBST(glibcpp_thread_h)
1471 dnl Check for exception handling support. If an explicit enable/disable
1472 dnl sjlj exceptions is given, we don't have to detect. Otherwise the
1473 dnl target may or may not support call frame exceptions.
1475 dnl GLIBCPP_ENABLE_SJLJ_EXCEPTIONS
1476 dnl --enable-sjlj-exceptions forces the use of builtin setjmp.
1477 dnl --disable-sjlj-exceptions forces the use of call frame unwinding.
1479 dnl Define _GLIBCPP_SJLJ_EXCEPTIONS if the compiler is configured for it.
1481 AC_DEFUN(GLIBCPP_ENABLE_SJLJ_EXCEPTIONS, [
1482 AC_MSG_CHECKING([for exception model to use])
1485 AC_ARG_ENABLE(sjlj-exceptions,
1486 [ --enable-sjlj-exceptions force use of builtin_setjmp for exceptions],
1488 [dnl Botheration. Now we've got to detect the exception model.
1489 dnl Link tests against libgcc.a are problematic since -- at least
1490 dnl as of this writing -- we've not been given proper -L bits for
1491 dnl single-tree newlib and libgloss.
1493 dnl This is what AC_TRY_COMPILE would do if it didn't delete the
1494 dnl conftest files before we got a change to grep them first.
1495 cat > conftest.$ac_ext << EOF
1496 [#]line __oline__ "configure"
1505 old_CXXFLAGS="$CXXFLAGS"
1507 if AC_TRY_EVAL(ac_compile); then
1508 if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then
1509 enable_sjlj_exceptions=yes
1510 elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then
1511 enable_sjlj_exceptions=no
1514 CXXFLAGS="$old_CXXFLAGS"
1516 if test x$enable_sjlj_exceptions = xyes; then
1517 AC_DEFINE(_GLIBCPP_SJLJ_EXCEPTIONS, 1,
1518 [Define if the compiler is configured for setjmp/longjmp exceptions.])
1519 ac_exception_model_name=sjlj
1520 elif test x$enable_sjlj_exceptions = xno; then
1521 ac_exception_model_name="call frame"
1523 AC_MSG_ERROR([unable to detect exception model])
1526 AC_MSG_RESULT($ac_exception_model_name)
1531 dnl Check for libunwind exception handling support. If enabled then
1532 dnl we assume that the _Unwind_* functions that make up the Unwind ABI
1533 dnl (_Unwind_RaiseException, _Unwind_Resume, etc.) are defined by
1534 dnl libunwind instead of libgcc and that libstdc++ has a dependency
1535 dnl on libunwind as well as libgcc.
1537 dnl GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS
1538 dnl --enable-libunwind-exceptions forces the use of libunwind.
1539 dnl --disable-libunwind-exceptions assumes there is no libunwind.
1541 dnl Define _GLIBCPP_LIBUNWIND_EXCEPTIONS if requested.
1543 AC_DEFUN(GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS, [
1544 AC_MSG_CHECKING([for use of libunwind])
1545 AC_ARG_ENABLE(libunwind-exceptions,
1546 [ --enable-libunwind-exceptions force use of libunwind for exceptions],
1547 use_libunwind_exceptions=$enableval,
1548 use_libunwind_exceptions=no)
1549 AC_MSG_RESULT($use_libunwind_exceptions)
1550 dnl Option parsed, now set things appropriately
1551 if test x"$use_libunwind_exceptions" = xyes; then
1552 LIBUNWIND_FLAG="-lunwind"
1556 AC_SUBST(LIBUNWIND_FLAG)
1560 dnl Check for ISO/IEC 9899:1999 "C99" support.
1562 dnl GLIBCPP_ENABLE_C99
1563 dnl --enable-c99 defines _GLIBCPP_USE_C99
1564 dnl --disable-c99 leaves _GLIBCPP_USE_C99 undefined
1565 dnl + Usage: GLIBCPP_ENABLE_C99[(DEFAULT)]
1566 dnl Where DEFAULT is either `yes' or `no'. If omitted, it
1567 dnl defaults to `no'.
1568 dnl + If 'C99' stuff is not available, ignores DEFAULT and sets `no'.
1570 dnl GLIBCPP_ENABLE_C99
1571 AC_DEFUN(GLIBCPP_ENABLE_C99, [dnl
1572 define([GLIBCPP_ENABLE_C99_DEFAULT], ifelse($1, yes, yes, no))dnl
1575 changequote(<<, >>)dnl
1576 <<--enable-c99 turns on 'ISO/IEC 9899:1999 support' [default=>>GLIBCPP_ENABLE_C99_DEFAULT],
1577 changequote([, ])dnl
1578 [case "$enableval" in
1579 yes) enable_c99=yes ;;
1580 no) enable_c99=no ;;
1581 *) AC_MSG_ERROR([Unknown argument to enable/disable C99]) ;;
1583 enable_c99=GLIBCPP_ENABLE_C99_DEFAULT)dnl
1588 # Check for the existence of <math.h> functions used if C99 is enabled.
1590 AC_MSG_CHECKING([for ISO C99 support in <math.h>])
1591 AC_TRY_COMPILE([#include <math.h>],[fpclassify(0.0);],, [ac_c99_math=no])
1592 AC_TRY_COMPILE([#include <math.h>],[isfinite(0.0);],, [ac_c99_math=no])
1593 AC_TRY_COMPILE([#include <math.h>],[isinf(0.0);],, [ac_c99_math=no])
1594 AC_TRY_COMPILE([#include <math.h>],[isnan(0.0);],, [ac_c99_math=no])
1595 AC_TRY_COMPILE([#include <math.h>],[isnormal(0.0);],, [ac_c99_math=no])
1596 AC_TRY_COMPILE([#include <math.h>],[signbit(0.0);],, [ac_c99_math=no])
1597 AC_TRY_COMPILE([#include <math.h>],[isgreater(0.0,0.0);],, [ac_c99_math=no])
1598 AC_TRY_COMPILE([#include <math.h>],
1599 [isgreaterequal(0.0,0.0);],, [ac_c99_math=no])
1600 AC_TRY_COMPILE([#include <math.h>],[isless(0.0,0.0);],, [ac_c99_math=no])
1601 AC_TRY_COMPILE([#include <math.h>],[islessequal(0.0,0.0);],,[ac_c99_math=no])
1602 AC_TRY_COMPILE([#include <math.h>],
1603 [islessgreater(0.0,0.0);],, [ac_c99_math=no])
1604 AC_TRY_COMPILE([#include <math.h>],
1605 [isunordered(0.0,0.0);],, [ac_c99_math=no])
1606 AC_MSG_RESULT($ac_c99_math)
1608 # Check for the existence in <stdio.h> of vscanf, et. al.
1610 AC_MSG_CHECKING([for ISO C99 support in <stdio.h>])
1611 AC_TRY_COMPILE([#include <stdio.h>],
1612 [snprintf("12", 0, "%i");],, [ac_c99_stdio=no])
1613 AC_TRY_COMPILE([#include <stdio.h>
1615 void foo(char* fmt, ...)
1616 {va_list args; va_start(args, fmt);
1617 vfscanf(stderr, "%i", args);}],
1618 [],, [ac_c99_stdio=no])
1619 AC_TRY_COMPILE([#include <stdio.h>
1621 void foo(char* fmt, ...)
1622 {va_list args; va_start(args, fmt);
1623 vscanf("%i", args);}],
1624 [],, [ac_c99_stdio=no])
1625 AC_TRY_COMPILE([#include <stdio.h>
1627 void foo(char* fmt, ...)
1628 {va_list args; va_start(args, fmt);
1629 vsnprintf(fmt, 0, "%i", args);}],
1630 [],, [ac_c99_stdio=no])
1631 AC_TRY_COMPILE([#include <stdio.h>
1633 void foo(char* fmt, ...)
1634 {va_list args; va_start(args, fmt);
1635 vsscanf(fmt, "%i", args);}],
1636 [],, [ac_c99_stdio=no])
1637 AC_MSG_RESULT($ac_c99_stdio)
1639 # Check for the existence in <stdlib.h> of lldiv_t, et. al.
1641 AC_MSG_CHECKING([for lldiv_t declaration])
1642 AC_CACHE_VAL(ac_c99_lldiv_t, [
1643 AC_TRY_COMPILE([#include <stdlib.h>],
1645 [ac_c99_lldiv_t=yes], [ac_c99_lldiv_t=no])
1647 AC_MSG_RESULT($ac_c99_lldiv_t)
1649 AC_MSG_CHECKING([for ISO C99 support in <stdlib.h>])
1650 AC_TRY_COMPILE([#include <stdlib.h>],
1651 [char* tmp; strtof("gnu", &tmp);],, [ac_c99_stdlib=no])
1652 AC_TRY_COMPILE([#include <stdlib.h>],
1653 [char* tmp; strtold("gnu", &tmp);],, [ac_c99_stdlib=no])
1654 AC_TRY_COMPILE([#include <stdlib.h>], [llabs(10);],, [ac_c99_stdlib=no])
1655 AC_TRY_COMPILE([#include <stdlib.h>], [lldiv(10,1);],, [ac_c99_stdlib=no])
1656 AC_TRY_COMPILE([#include <stdlib.h>], [atoll("10");],, [ac_c99_stdlib=no])
1657 AC_TRY_COMPILE([#include <stdlib.h>], [_Exit(0);],, [ac_c99_stdlib=no])
1658 if test x"$ac_c99_lldiv_t" = x"no"; then
1661 AC_MSG_RESULT($ac_c99_stdlib)
1663 # Check for the existence of <wchar.h> functions used if C99 is enabled.
1664 # XXX the wchar.h checks should be rolled into the general C99 bits.
1666 AC_MSG_CHECKING([for additional ISO C99 support in <wchar.h>])
1667 AC_TRY_COMPILE([#include <wchar.h>],
1668 [wcstold(L"10.0", NULL);],, [ac_c99_wchar=no])
1669 AC_TRY_COMPILE([#include <wchar.h>],
1670 [wcstoll(L"10", NULL, 10);],, [ac_c99_wchar=no])
1671 AC_TRY_COMPILE([#include <wchar.h>],
1672 [wcstoull(L"10", NULL, 10);],, [ac_c99_wchar=no])
1673 AC_MSG_RESULT($ac_c99_wchar)
1675 AC_MSG_CHECKING([for enabled ISO C99 support])
1676 if test x"$ac_c99_math" = x"no" ||
1677 test x"$ac_c99_stdio" = x"no" ||
1678 test x"$ac_c99_stdlib" = x"no" ||
1679 test x"$ac_c99_wchar" = x"no"; then
1682 AC_MSG_RESULT($enable_c99)
1684 # Option parsed, now set things appropriately
1685 if test x"$enable_c99" = x"yes"; then
1686 AC_DEFINE(_GLIBCPP_USE_C99)
1694 dnl Check for template specializations for the 'long long' type extension.
1695 dnl The result determines only whether 'long long' I/O is enabled; things
1696 dnl like numeric_limits<> specializations are always available.
1698 dnl GLIBCPP_ENABLE_LONG_LONG
1699 dnl --enable-long-long defines _GLIBCPP_USE_LONG_LONG
1700 dnl --disable-long-long leaves _GLIBCPP_USE_LONG_LONG undefined
1701 dnl + Usage: GLIBCPP_ENABLE_LONG_LONG[(DEFAULT)]
1702 dnl Where DEFAULT is either `yes' or `no'. If omitted, it
1703 dnl defaults to `no'.
1704 dnl + If 'long long' stuff is not available, ignores DEFAULT and sets `no'.
1706 dnl GLIBCPP_ENABLE_LONG_LONG
1707 AC_DEFUN(GLIBCPP_ENABLE_LONG_LONG, [dnl
1708 define([GLIBCPP_ENABLE_LONG_LONG_DEFAULT], ifelse($1, yes, yes, no))dnl
1710 AC_ARG_ENABLE(long-long,
1711 changequote(<<, >>)dnl
1712 <<--enable-long-long turns on 'long long' [default=>>GLIBCPP_ENABLE_LONG_LONG_DEFAULT],
1713 changequote([, ])dnl
1714 [case "$enableval" in
1715 yes) enable_long_long=yes ;;
1716 no) enable_long_long=no ;;
1717 *) AC_MSG_ERROR([Unknown argument to enable/disable long long]) ;;
1719 enable_long_long=GLIBCPP_ENABLE_LONG_LONG_DEFAULT)dnl
1724 AC_MSG_CHECKING([for enabled long long I/O support])
1725 # iostreams require strtoll, strtoull to compile
1726 AC_TRY_COMPILE([#include <stdlib.h>],
1727 [char* tmp; strtoll("gnu", &tmp, 10);],,[enable_long_long=no])
1728 AC_TRY_COMPILE([#include <stdlib.h>],
1729 [char* tmp; strtoull("gnu", &tmp, 10);],,[enable_long_long=no])
1731 # Option parsed, now set things appropriately
1732 if test x"$enable_long_long" = xyes; then
1733 AC_DEFINE(_GLIBCPP_USE_LONG_LONG)
1735 AC_MSG_RESULT($enable_long_long)
1742 dnl Check for what kind of C headers to use.
1744 dnl GLIBCPP_ENABLE_CHEADERS
1745 dnl --enable-cheaders= [does stuff].
1746 dnl --disable-cheaders [does not do anything, really].
1747 dnl + Usage: GLIBCPP_ENABLE_CHEADERS[(DEFAULT)]
1748 dnl Where DEFAULT is either `c' or `c_std'.
1749 dnl If ommitted, it defaults to `c_std'.
1750 AC_DEFUN(GLIBCPP_ENABLE_CHEADERS, [dnl
1751 define([GLIBCPP_ENABLE_CHEADERS_DEFAULT], ifelse($1, c_std, c_std, c_std))dnl
1752 AC_MSG_CHECKING([for c header strategy to use])
1753 AC_ARG_ENABLE(cheaders,
1754 changequote(<<, >>)dnl
1755 << --enable-cheaders construct "C" header files for g++ [default=>>GLIBCPP_ENABLE_CHEADERS_DEFAULT],
1757 [case "$enableval" in
1762 enable_cheaders=c_std
1764 *) AC_MSG_ERROR([Unknown argument to enable/disable "C" headers])
1767 enable_cheaders=GLIBCPP_ENABLE_CHEADERS_DEFAULT)
1768 AC_MSG_RESULT($enable_cheaders)
1770 dnl Option parsed, now set things appropriately
1771 case "$enable_cheaders" in
1773 C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std'
1776 C_INCLUDE_DIR='${glibcpp_srcdir}/include/c'
1780 AC_SUBST(C_INCLUDE_DIR)
1781 AM_CONDITIONAL(GLIBCPP_C_HEADERS_C, test "$enable_cheaders" = c)
1782 AM_CONDITIONAL(GLIBCPP_C_HEADERS_C_STD, test "$enable_cheaders" = c_std)
1783 AM_CONDITIONAL(GLIBCPP_C_HEADERS_COMPATIBILITY, test "$c_compatibility" = yes)
1788 dnl Check for wide character support. Has the same effect as the option
1789 dnl in gcc's configure, but in a form that autoconf can mess with.
1791 dnl GLIBCPP_ENABLE_C_MBCHAR
1792 dnl --enable-c-mbchar requests all the wchar_t stuff.
1793 dnl --disable-c-mbchar doesn't.
1794 dnl + Usage: GLIBCPP_ENABLE_C_MBCHAR[(DEFAULT)]
1795 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
1796 dnl defaults to `no'.
1797 AC_DEFUN(GLIBCPP_ENABLE_C_MBCHAR, [dnl
1798 define([GLIBCPP_ENABLE_C_MBCHAR_DEFAULT], ifelse($1, yes, yes, no))dnl
1799 AC_ARG_ENABLE(c-mbchar,
1800 changequote(<<, >>)dnl
1801 << --enable-c-mbchar enable multibyte (wide) characters [default=>>GLIBCPP_ENABLE_C_MBCHAR_DEFAULT],
1802 changequote([, ])dnl
1803 [case "$enableval" in
1804 yes) enable_c_mbchar=yes ;;
1805 no) enable_c_mbchar=no ;;
1806 *) AC_MSG_ERROR([Unknown argument to enable/disable c-mbchar]) ;;
1808 enable_c_mbchar=GLIBCPP_ENABLE_C_MBCHAR_DEFAULT)dnl
1809 dnl Option parsed, now other scripts can test enable_c_mbchar for yes/no.
1814 dnl Set up *_INCLUDES and *_INCLUDE_DIR variables for all sundry Makefile.am's.
1816 dnl TOPLEVEL_INCLUDES
1817 dnl LIBMATH_INCLUDES
1818 dnl LIBSUPCXX_INCLUDES
1821 dnl GLIBCPP_EXPORT_INCLUDES
1822 AC_DEFUN(GLIBCPP_EXPORT_INCLUDES, [
1823 # Root level of the build directory include sources.
1824 GLIBCPP_INCLUDES="-I${glibcpp_builddir}/include/${target_alias} -I${glibcpp_builddir}/include"
1826 # Passed down for canadian crosses.
1827 if test x"$CANADIAN" = xyes; then
1828 TOPLEVEL_INCLUDES='-I$(includedir)'
1831 LIBMATH_INCLUDES='-I$(top_srcdir)/libmath'
1833 LIBSUPCXX_INCLUDES='-I$(top_srcdir)/libsupc++'
1835 if test x"$need_libio" = xyes; then
1836 LIBIO_INCLUDES='-I$(top_builddir)/libio -I$(top_srcdir)/libio'
1837 AC_SUBST(LIBIO_INCLUDES)
1840 # Now, export this to all the little Makefiles....
1841 AC_SUBST(GLIBCPP_INCLUDES)
1842 AC_SUBST(TOPLEVEL_INCLUDES)
1843 AC_SUBST(LIBMATH_INCLUDES)
1844 AC_SUBST(LIBSUPCXX_INCLUDES)
1849 dnl Set up *_FLAGS and *FLAGS variables for all sundry Makefile.am's.
1851 AC_DEFUN(GLIBCPP_EXPORT_FLAGS, [
1852 # Optimization flags that are probably a good idea for thrill-seekers. Just
1853 # uncomment the lines below and make, everything else is ready to go...
1854 # OPTIMIZE_CXXFLAGS = -O3 -fstrict-aliasing -fvtable-gc
1856 AC_SUBST(OPTIMIZE_CXXFLAGS)
1858 WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings -Winline'
1859 AC_SUBST(WARN_FLAGS)
1863 dnl GLIBCPP_EXPORT_INSTALL_INFO
1864 dnl calculates gxx_install_dir
1865 dnl exports glibcpp_toolexecdir
1866 dnl exports glibcpp_toolexeclibdir
1867 dnl exports glibcpp_prefixdir
1869 dnl Assumes cross_compiling bits already done, and with_cross_host in
1872 dnl GLIBCPP_EXPORT_INSTALL_INFO
1873 AC_DEFUN(GLIBCPP_EXPORT_INSTALL_INFO, [
1874 # Assumes glibcpp_builddir, glibcpp_srcdir are alreay set up and
1875 # exported correctly in GLIBCPP_CONFIGURE.
1876 glibcpp_toolexecdir=no
1877 glibcpp_toolexeclibdir=no
1878 glibcpp_prefixdir=${prefix}
1880 # Process the option --with-gxx-include-dir=<path to include-files directory>
1881 AC_MSG_CHECKING([for --with-gxx-include-dir])
1882 AC_ARG_WITH(gxx-include-dir,
1883 [ --with-gxx-include-dir the installation directory for include files],
1884 [case "${withval}" in
1886 AC_MSG_ERROR(Missing directory for --with-gxx-include-dir)
1893 gxx_include_dir=${withval}
1895 esac], [gxx_include_dir=no])
1896 AC_MSG_RESULT($gxx_include_dir)
1898 # Process the option "--enable-version-specific-runtime-libs"
1899 AC_MSG_CHECKING([for --enable-version-specific-runtime-libs])
1900 AC_ARG_ENABLE(version-specific-runtime-libs,
1901 [ --enable-version-specific-runtime-libs Specify that runtime libraries should be installed in a compiler-specific directory ],
1902 [case "$enableval" in
1903 yes) version_specific_libs=yes ;;
1904 no) version_specific_libs=no ;;
1905 *) AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);;
1907 version_specific_libs=no)dnl
1908 # Option set, now we can test it.
1909 AC_MSG_RESULT($version_specific_libs)
1911 # Default case for install directory for include files.
1912 if test $version_specific_libs = no && test $gxx_include_dir = no; then
1913 gxx_include_dir='$(prefix)'/include/c++/${gcc_version}
1916 # Version-specific runtime libs processing.
1917 if test $version_specific_libs = yes; then
1918 # Need the gcc compiler version to know where to install libraries
1919 # and header files if --enable-version-specific-runtime-libs option
1921 if test x"$gxx_include_dir" = x"no"; then
1922 gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/c++
1924 glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
1925 glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)'
1928 # Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir
1929 # Install a library built with a cross compiler in tooldir, not libdir.
1930 if test x"$glibcpp_toolexecdir" = x"no"; then
1931 if test -n "$with_cross_host" &&
1932 test x"$with_cross_host" != x"no"; then
1933 glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)'
1934 glibcpp_toolexeclibdir='$(toolexecdir)/lib$(MULTISUBDIR)'
1936 glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
1937 glibcpp_toolexeclibdir='$(libdir)$(MULTISUBDIR)'
1941 AC_MSG_CHECKING([for install location])
1942 AC_MSG_RESULT($gxx_include_dir)
1944 AC_SUBST(glibcpp_prefixdir)
1945 AC_SUBST(gxx_include_dir)
1946 AC_SUBST(glibcpp_toolexecdir)
1947 AC_SUBST(glibcpp_toolexeclibdir)
1951 # Check for functions in math library.
1952 # Ulrich Drepper <drepper@cygnus.com>, 1998.
1954 # This file can be copied and used freely without restrictions. It can
1955 # be used in projects which are not available under the GNU Public License
1956 # but which still want to provide support for the GNU gettext functionality.
1957 # Please note that the actual code is *not* freely available.
1961 dnl AC_REPLACE_MATHFUNCS(FUNCTION...)
1962 AC_DEFUN(AC_REPLACE_MATHFUNCS,
1963 [AC_CHECK_FUNCS([$1], , [LIBMATHOBJS="$LIBMATHOBJS ${ac_func}.lo"])])
1966 dnl This macro searches for a GNU version of make. If a match is found, the
1967 dnl makefile variable `ifGNUmake' is set to the empty string, otherwise it is
1968 dnl set to "#". This is useful for including a special features in a Makefile,
1969 dnl which cannot be handled by other versions of make. The variable
1970 dnl _cv_gnu_make_command is set to the command to invoke GNU make if it exists,
1971 dnl the empty string otherwise.
1973 dnl Here is an example of its use:
1975 dnl Makefile.in might contain:
1977 dnl # A failsafe way of putting a dependency rule into a makefile
1979 dnl $(CC) -MM $(srcdir)/*.c > $(DEPEND)
1981 dnl @ifGNUmake@ ifeq ($(DEPEND),$(wildcard $(DEPEND)))
1982 dnl @ifGNUmake@ include $(DEPEND)
1983 dnl @ifGNUmake@ endif
1985 dnl Then configure.in would normally contain:
1987 dnl CHECK_GNU_MAKE()
1988 dnl AC_OUTPUT(Makefile)
1990 dnl Then perhaps to cause gnu make to override any other make, we could do
1991 dnl something like this (note that GNU make always looks for GNUmakefile first):
1993 dnl if ! test x$_cv_gnu_make_command = x ; then
1994 dnl mv Makefile GNUmakefile
1995 dnl echo .DEFAULT: > Makefile ;
1996 dnl echo \ $_cv_gnu_make_command \$@ >> Makefile;
1999 dnl Then, if any (well almost any) other make is called, and GNU make also
2000 dnl exists, then the other make wraps the GNU make.
2002 dnl @author John Darrington <j.darrington@elvis.murdoch.edu.au>
2003 dnl @version 1.1 #### replaced Id string now that Id is for lib-v3; pme
2005 dnl #### Changes for libstdc++-v3: reformatting and linewrapping; prepending
2006 dnl #### GLIBCPP_ to the macro name; adding the :-make fallback in the
2007 dnl #### conditional's subshell (" --version" is not a command), using a
2008 dnl #### different option to grep(1).
2010 dnl #### Fixed Bourne shell portability bug (use ${MAKE-make}, not
2011 dnl #### ${MAKE:-make}).
2014 GLIBCPP_CHECK_GNU_MAKE, [AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command,
2015 _cv_gnu_make_command='' ;
2016 dnl Search all the common names for GNU make
2017 for a in "${MAKE-make}" make gmake gnumake ; do
2018 if ( $a --version 2> /dev/null | grep -c GNU > /dev/null )
2020 _cv_gnu_make_command=$a ;
2025 dnl If there was a GNU version, then set @ifGNUmake@ to the empty
2026 dnl string, '#' otherwise
2027 if test "x$_cv_gnu_make_command" != "x" ; then
2036 dnl Check for headers for, and arguments to, the setrlimit() function.
2037 dnl Used only in testsuite_hooks.h.
2038 AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT_ancilliary, [
2039 AC_TRY_COMPILE([#include <unistd.h>
2040 #include <sys/time.h>
2041 #include <sys/resource.h>
2042 ], [ int f = RLIMIT_$1 ; ],
2043 [glibcpp_mresult=1], [glibcpp_mresult=0])
2044 AC_DEFINE_UNQUOTED(HAVE_MEMLIMIT_$1, $glibcpp_mresult,
2045 [Only used in build directory testsuite_hooks.h.])
2047 AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT, [
2048 setrlimit_have_headers=yes
2049 AC_CHECK_HEADERS(unistd.h sys/time.h sys/resource.h,
2051 setrlimit_have_headers=no)
2052 # If don't have the headers, then we can't run the tests now, and we
2053 # won't be seeing any of these during testsuite compilation.
2054 if test $setrlimit_have_headers = yes; then
2055 # Can't do these in a loop, else the resulting syntax is wrong.
2056 GLIBCPP_CHECK_SETRLIMIT_ancilliary(DATA)
2057 GLIBCPP_CHECK_SETRLIMIT_ancilliary(RSS)
2058 GLIBCPP_CHECK_SETRLIMIT_ancilliary(VMEM)
2059 GLIBCPP_CHECK_SETRLIMIT_ancilliary(AS)
2061 # Check for rlimit, setrlimit.
2062 AC_CACHE_VAL(ac_setrlimit, [
2063 AC_TRY_COMPILE([#include <unistd.h>
2064 #include <sys/time.h>
2065 #include <sys/resource.h>
2067 [ struct rlimit r; setrlimit(0, &r);],
2068 [ac_setrlimit=yes], [ac_setrlimit=no])
2072 AC_MSG_CHECKING([for testsuite memory limit support])
2073 if test $setrlimit_have_headers = yes && test $ac_setrlimit = yes; then
2075 AC_DEFINE(_GLIBCPP_MEM_LIMITS)
2079 AC_MSG_RESULT($ac_mem_limits)
2084 dnl Does any necessary configuration of the testsuite directory. Generates
2085 dnl the testsuite_hooks.h header.
2087 dnl GLIBCPP_CONFIGURE_TESTSUITE [no args]
2088 AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [
2089 GLIBCPP_CHECK_SETRLIMIT
2091 # Look for setenv, so that extended locale tests can be performed.
2092 GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
2094 # Export file names for ABI checking.
2095 baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_triplet}/baseline_symbols.txt"
2096 AC_SUBST(baseline_file)
2098 # Don't do ABI checking unless native.
2099 AM_CONDITIONAL(GLIBCPP_BUILD_ABI_CHECK,
2100 test x"$build" = x"$host" && test -z "$with_cross_host")
2104 sinclude(../libtool.m4)
2105 dnl The lines below arrange for aclocal not to bring an installed
2106 dnl libtool.m4 into aclocal.m4, while still arranging for automake to
2107 dnl add a definition of LIBTOOL to Makefile.in.
2108 ifelse(,,,[AC_SUBST(LIBTOOL)
2109 AC_DEFUN([AM_PROG_LIBTOOL])
2110 AC_DEFUN([AC_LIBTOOL_DLOPEN])
2111 AC_DEFUN([AC_PROG_LD])
2115 # Check whether LC_MESSAGES is available in <locale.h>.
2116 # Ulrich Drepper <drepper@cygnus.com>, 1995.
2118 # This file file be copied and used freely without restrictions. It can
2119 # be used in projects which are not available under the GNU Public License
2120 # but which still want to provide support for the GNU gettext functionality.
2121 # Please note that the actual code is *not* freely available.
2125 AC_DEFUN(AC_LC_MESSAGES, [
2126 AC_CHECK_HEADER(locale.h, [
2127 AC_CACHE_CHECK([for LC_MESSAGES], ac_cv_val_LC_MESSAGES,
2128 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
2129 ac_cv_val_LC_MESSAGES=yes, ac_cv_val_LC_MESSAGES=no)])
2130 if test $ac_cv_val_LC_MESSAGES = yes; then
2131 AC_DEFINE(HAVE_LC_MESSAGES)
2138 dnl Check for whether the Boost-derived checks should be turned on.
2140 dnl GLIBCPP_ENABLE_CONCEPT_CHECKS
2141 dnl --enable-concept-checks turns them on.
2142 dnl --disable-concept-checks leaves them off.
2143 dnl + Usage: GLIBCPP_ENABLE_CONCEPT_CHECKS[(DEFAULT)]
2144 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
2145 dnl defaults to `no'.
2146 AC_DEFUN(GLIBCPP_ENABLE_CONCEPT_CHECKS, [dnl
2147 define([GLIBCPP_ENABLE_CONCEPT_CHECKS_DEFAULT], ifelse($1, yes, yes, no))dnl
2148 AC_ARG_ENABLE(concept-checks,
2149 changequote(<<, >>)dnl
2150 << --enable-concept-checks use Boost-derived template checks [default=>>GLIBCPP_ENABLE_CONCEPT_CHECKS_DEFAULT],
2151 changequote([, ])dnl
2152 [case "$enableval" in
2153 yes) enable_concept_checks=yes ;;
2154 no) enable_concept_checks=no ;;
2155 *) AC_MSG_ERROR([Unknown argument to enable/disable concept checks]) ;;
2157 enable_concept_checks=GLIBCPP_ENABLE_CONCEPT_CHECKS_DEFAULT)dnl
2158 dnl Option parsed, now set things appropriately
2159 if test x"$enable_concept_checks" = xyes; then
2160 AC_DEFINE(_GLIBCPP_CONCEPT_CHECKS)
2166 dnl Add version tags to symbols in shared library (or not), additionally
2167 dnl marking other symbols as private/local (or not).
2169 dnl GLIBCPP_ENABLE_SYMVERS
2170 dnl --enable-symvers=style adds a version script to the linker call when
2171 dnl creating the shared library. The choice of version script is
2172 dnl controlled by 'style'.
2173 dnl --disable-symvers does not.
2174 dnl + Usage: GLIBCPP_ENABLE_SYMVERS[(DEFAULT)]
2175 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
2176 dnl defaults to `no'. Passing `yes' tries to choose a default style
2177 dnl based on linker characteristics. Passing 'no' disables versioning.
2178 AC_DEFUN(GLIBCPP_ENABLE_SYMVERS, [dnl
2179 define([GLIBCPP_ENABLE_SYMVERS_DEFAULT], ifelse($1, yes, yes, no))dnl
2180 AC_ARG_ENABLE(symvers,
2181 changequote(<<, >>)dnl
2182 << --enable-symvers=style enables symbol versioning of the shared library [default=>>GLIBCPP_ENABLE_SYMVERS_DEFAULT],
2183 changequote([, ])dnl
2184 [case "$enableval" in
2185 yes) enable_symvers=yes ;;
2186 no) enable_symvers=no ;;
2187 # other names here, just as sanity checks
2188 #gnu|sun|etcetera) enable_symvers=$enableval ;;
2189 gnu) enable_symvers=$enableval ;;
2190 *) AC_MSG_ERROR([Unknown argument to enable/disable symvers]) ;;
2192 enable_symvers=GLIBCPP_ENABLE_SYMVERS_DEFAULT)dnl
2194 # If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we
2195 # don't know enough about $LD to do tricks...
2196 if test x$enable_shared = xno ||
2198 test x$glibcpp_gnu_ld_version = x; then
2202 # Check to see if libgcc_s exists, indicating that shared libgcc is possible.
2203 if test $enable_symvers != no; then
2204 AC_MSG_CHECKING([for shared libgcc])
2205 ac_save_CFLAGS="$CFLAGS"
2207 AC_TRY_LINK(, [return 0], glibcpp_shared_libgcc=yes, glibcpp_shared_libgcc=no)
2208 CFLAGS="$ac_save_CFLAGS"
2209 AC_MSG_RESULT($glibcpp_shared_libgcc)
2212 # For GNU ld, we need at least this version. It's 2.12 in the same format
2213 # as the tested-for version. See GLIBCPP_CHECK_LINKER_FEATURES for more.
2214 glibcpp_min_gnu_ld_version=21200
2216 # Check to see if unspecified "yes" value can win, given results
2218 if test $enable_symvers = yes ; then
2219 if test $with_gnu_ld = yes &&
2220 test $glibcpp_shared_libgcc = yes ;
2222 if test $glibcpp_gnu_ld_version -ge $glibcpp_min_gnu_ld_version ; then
2225 ac_test_CFLAGS="${CFLAGS+set}"
2226 ac_save_CFLAGS="$CFLAGS"
2227 CFLAGS='-shared -Wl,--version-script,conftest.map'
2230 echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map
2232 AC_TRY_LINK([int foo;],, enable_symvers=gnu)
2233 if test "$ac_test_CFLAGS" = set; then
2234 CFLAGS="$ac_save_CFLAGS"
2236 # this is the suspicious part
2247 dnl Everything parsed; figure out what file to use.
2248 case $enable_symvers in
2250 LINKER_MAP=config/linker-map.dummy
2253 LINKER_MAP=config/linker-map.gnu
2254 AC_DEFINE(_GLIBCPP_SYMVER)
2258 AC_LINK_FILES($LINKER_MAP, src/linker.map)
2259 AM_CONDITIONAL(GLIBCPP_BUILD_VERSIONED_SHLIB, test $enable_symvers != no)
2260 AC_MSG_CHECKING([versioning on shared library symbols])
2261 AC_MSG_RESULT($enable_symvers)
2265 # isc-posix.m4 serial 2 (gettext-0.11.2)
2266 dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
2267 dnl This file is free software, distributed under the terms of the GNU
2268 dnl General Public License. As a special exception to the GNU General
2269 dnl Public License, this file may be distributed as part of a program
2270 dnl that contains a configuration script generated by Autoconf, under
2271 dnl the same distribution terms as the rest of that program.
2273 # This file is not needed with autoconf-2.53 and newer. Remove it in 2005.
2275 # This test replaces the one in autoconf.
2276 # Currently this macro should have the same name as the autoconf macro
2277 # because gettext's gettext.m4 (distributed in the automake package)
2278 # still uses it. Otherwise, the use in gettext.m4 makes autoheader
2279 # give these diagnostics:
2280 # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
2281 # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
2283 undefine([AC_ISC_POSIX])
2285 AC_DEFUN([AC_ISC_POSIX],
2287 dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
2288 AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
2292 # Add --enable-maintainer-mode option to configure.
2297 AC_DEFUN([AM_MAINTAINER_MODE],
2298 [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
2299 dnl maintainer-mode is disabled by default
2300 AC_ARG_ENABLE(maintainer-mode,
2301 [ --enable-maintainer-mode enable make rules and dependencies not useful
2302 (and sometimes confusing) to the casual installer],
2303 USE_MAINTAINER_MODE=$enableval,
2304 USE_MAINTAINER_MODE=no)
2305 AC_MSG_RESULT($USE_MAINTAINER_MODE)
2306 AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
2307 MAINT=$MAINTAINER_MODE_TRUE
2312 # Define a conditional.
2314 AC_DEFUN([AM_CONDITIONAL],
2325 # Do all the work for Automake. This macro actually does too much --
2326 # some checks are only needed if your package does certain things.
2327 # But this isn't really a big deal.
2332 dnl AM_INIT_AUTOMAKE(package,version, [no-define])
2334 AC_DEFUN([AM_INIT_AUTOMAKE],
2335 [AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
2336 AC_REQUIRE([AC_PROG_INSTALL])
2341 dnl test to see if srcdir already configured
2342 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
2343 AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
2346 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
2347 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
2348 AC_REQUIRE([AM_SANITY_CHECK])
2349 AC_REQUIRE([AC_ARG_PROGRAM])
2350 dnl FIXME This is truly gross.
2351 missing_dir=`cd $ac_aux_dir && pwd`
2352 AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir)
2353 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
2354 AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir)
2355 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
2356 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
2357 AC_REQUIRE([AC_PROG_MAKE_SET])])
2359 # Copyright 2002 Free Software Foundation, Inc.
2361 # This program is free software; you can redistribute it and/or modify
2362 # it under the terms of the GNU General Public License as published by
2363 # the Free Software Foundation; either version 2, or (at your option)
2364 # any later version.
2366 # This program is distributed in the hope that it will be useful,
2367 # but WITHOUT ANY WARRANTY; without even the implied warranty of
2368 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2369 # GNU General Public License for more details.
2371 # You should have received a copy of the GNU General Public License
2372 # along with this program; if not, write to the Free Software
2373 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
2375 # AM_AUTOMAKE_VERSION(VERSION)
2376 # ----------------------------
2377 # Automake X.Y traces this macro to ensure aclocal.m4 has been
2378 # generated from the m4 files accompanying Automake X.Y.
2379 AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"])
2381 # AM_SET_CURRENT_AUTOMAKE_VERSION
2382 # -------------------------------
2383 # Call AM_AUTOMAKE_VERSION so it can be traced.
2384 # This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
2385 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
2386 [AM_AUTOMAKE_VERSION([1.4-p6])])
2389 # Check to make sure that the build environment is sane.
2392 AC_DEFUN([AM_SANITY_CHECK],
2393 [AC_MSG_CHECKING([whether build environment is sane])
2396 echo timestamp > conftestfile
2397 # Do `set' in a subshell so we don't clobber the current shell's
2398 # arguments. Must try -L first in case configure is actually a
2399 # symlink; some systems play weird games with the mod time of symlinks
2400 # (eg FreeBSD returns the mod time of the symlink's containing
2403 set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
2404 if test "[$]*" = "X"; then
2406 set X `ls -t $srcdir/configure conftestfile`
2408 if test "[$]*" != "X $srcdir/configure conftestfile" \
2409 && test "[$]*" != "X conftestfile $srcdir/configure"; then
2411 # If neither matched, then we have a broken ls. This can happen
2412 # if, for instance, CONFIG_SHELL is bash and it inherits a
2413 # broken ls alias from the environment. This has actually
2414 # happened. Such a system could not be considered "sane".
2415 AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
2416 alias in your environment])
2419 test "[$]2" = conftestfile
2425 AC_MSG_ERROR([newly created file is older than distributed files!
2426 Check your system clock])
2429 AC_MSG_RESULT(yes)])
2431 dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
2432 dnl The program must properly implement --version.
2433 AC_DEFUN([AM_MISSING_PROG],
2434 [AC_MSG_CHECKING(for working $2)
2435 # Run test in a subshell; some versions of sh will print an error if
2436 # an executable is not found, even if stderr is redirected.
2437 # Redirect stdin to placate older versions of autoconf. Sigh.
2438 if ($2 --version) < /dev/null > /dev/null 2>&1; then
2440 AC_MSG_RESULT(found)
2443 AC_MSG_RESULT(missing)
2447 # Like AC_CONFIG_HEADER, but automatically create stamp file.
2449 AC_DEFUN([AM_CONFIG_HEADER],
2451 AC_CONFIG_HEADER([$1])
2452 dnl When config.status generates a header, we must update the stamp-h file.
2453 dnl This file resides in the same directory as the config header
2454 dnl that is generated. We must strip everything past the first ":",
2455 dnl and everything past the last "/".
2456 AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
2457 ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
2458 <<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
2460 for am_file in <<$1>>; do
2461 case " <<$>>CONFIG_HEADERS " in
2462 *" <<$>>am_file "*<<)>>
2463 echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
2466 am_indx=`expr "<<$>>am_indx" + 1`