1 dnl aclocal.m4 generated automatically by aclocal 1.4
3 dnl Copyright (C) 1994, 1995-8, 1999 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 configure bits.
17 AC_DEFUN(GLIBCPP_CONFIGURE, [
18 dnl Default to --enable-multilib
19 AC_ARG_ENABLE(multilib,
20 [ --enable-multilib build hella library versions (default)],
21 [case "${enableval}" in
24 *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
25 esac], [multilib=yes])dnl
27 glibcpp_basedir=$srcdir/$toprel/$1/libstdc++-v3
28 AC_SUBST(glibcpp_basedir)
30 AM_INIT_AUTOMAKE(libstdc++, 3.0.0)
32 # Never versions of autoconf add an underscore to these functions.
33 # Prevent future problems ...
34 ifdef([AC_PROG_CC_G],[],[define([AC_PROG_CC_G],defn([_AC_PROG_CC_G]))])
35 ifdef([AC_PROG_CC_GNU],[],[define([AC_PROG_CC_GNU],defn([_AC_PROG_CC_GNU]))])
36 ifdef([AC_PROG_CXX_G],[],[define([AC_PROG_CXX_G],defn([_AC_PROG_CXX_G]))])
37 ifdef([AC_PROG_CXX_GNU],[],[define([AC_PROG_CXX_GNU],defn([_AC_PROG_CXX_GNU]))])
41 # FIXME: We temporarily define our own version of AC_PROG_CC. This is
42 # copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
43 # are probably using a cross compiler, which will not be able to fully
44 # link an executable. This should really be fixed in autoconf
47 AC_DEFUN(LIB_AC_PROG_CC,
48 [AC_BEFORE([$0], [AC_PROG_CPP])dnl
49 dnl Fool anybody using AC_PROG_CC.
50 AC_PROVIDE([AC_PROG_CC])
51 AC_CHECK_PROG(CC, gcc, gcc)
52 if test -z "$CC"; then
53 AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
54 test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
59 if test $ac_cv_prog_gcc = yes; then
61 dnl Check whether -g works, even if CFLAGS is set, in case the package
62 dnl plays around with CFLAGS (such as to build both debugging and
63 dnl normal versions of a library), tasteless as that idea is.
64 ac_test_CFLAGS="${CFLAGS+set}"
65 ac_save_CFLAGS="$CFLAGS"
68 if test "$ac_test_CFLAGS" = set; then
69 CFLAGS="$ac_save_CFLAGS"
70 elif test $ac_cv_prog_cc_g = yes; then
77 test "${CFLAGS+set}" = set || CFLAGS="-g"
83 # Can't just call these here as g++ requires libstc++ to be built....
86 # Likewise for AC_PROG_CXX.
87 AC_DEFUN(LIB_AC_PROG_CXX,
88 [AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
89 dnl Fool anybody using AC_PROG_CXX.
90 AC_PROVIDE([AC_PROG_CXX])
91 # Use glibcpp_CXX so that we do not cause CXX to be cached with the
92 # flags that come in CXX while configuring libstdc++. They're different
93 # from those used for all other target libraries. If CXX is set in
94 # the environment, respect that here.
96 AC_CHECK_PROGS(glibcpp_CXX, $CCC c++ g++ gcc CC cxx cc++, gcc)
99 test -z "$glibcpp_CXX" && AC_MSG_ERROR([no acceptable c++ found in \$PATH])
103 if test $ac_cv_prog_gxx = yes; then
105 dnl Check whether -g works, even if CXXFLAGS is set, in case the package
106 dnl plays around with CXXFLAGS (such as to build both debugging and
107 dnl normal versions of a library), tasteless as that idea is.
108 ac_test_CXXFLAGS="${CXXFLAGS+set}"
109 ac_save_CXXFLAGS="$CXXFLAGS"
112 if test "$ac_test_CXXFLAGS" = set; then
113 CXXFLAGS="$ac_save_CXXFLAGS"
114 elif test $ac_cv_prog_cxx_g = yes; then
121 test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
127 AC_CHECK_TOOL(AS, as)
128 AC_CHECK_TOOL(AR, ar)
129 AC_CHECK_TOOL(RANLIB, ranlib, ranlib-not-found-in-path-error)
134 # We need AC_EXEEXT to keep automake happy in cygnus mode. However,
135 # at least currently, we never actually build a program, so we never
136 # need to use $(EXEEXT). Moreover, the test for EXEEXT normally
137 # fails, because we are probably configuring with a cross compiler
138 # which cant create executables. So we include AC_EXEEXT to keep
139 # automake happy, but we dont execute it, since we dont care about
142 # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
143 # to nothing, so nothing would remain between `then' and `fi' if it
144 # were not for the `:' below.
149 . [$]{glibcpp_basedir}/configure.host
151 case [$]{glibcpp_basedir} in
152 /* | [A-Za-z]:[\\/]*) libgcj_flagbasedir=[$]{glibcpp_basedir} ;;
153 *) glibcpp_flagbasedir='[$](top_builddir)/'[$]{glibcpp_basedir} ;;
156 # This does for the target what configure.host does for the host. In
157 # addition to possibly modifying the same flags, it also sets up symlinks.
163 dnl Check to see if g++ can compile this library, and if so, if any version-
164 dnl specific precautions need to be taken.
166 dnl GLIBCPP_CHECK_COMPILER_VERSION
167 AC_DEFUN(GLIBCPP_CHECK_COMPILER_VERSION, [
168 if test ! -f stamp-sanity-compiler; then
169 AC_MSG_CHECKING([for g++ that will successfully compile libstdc++-v3])
176 ], gpp_satisfactory=yes, AC_MSG_ERROR([please upgrade to GCC 3.0 or above]))
178 AC_MSG_RESULT($gpp_satisfactory)
179 touch stamp-sanity-compiler
185 dnl Tests for newer compiler features, or features that are present in newer
186 dnl compiler versions but not older compiler versions still in use, should
189 dnl Define WERROR='-Werror' if requested and possible; g++'s that lack the
190 dnl new inlining code or the new system_header pragma will die on -Werror.
191 dnl Leave it out by default and use maint-mode to use it.
193 dnl Define SECTION_FLAGS='-ffunction-sections -fdata-sections' if
194 dnl compiler supports it and the user has not requested debug mode.
196 dnl GLIBCPP_CHECK_COMPILER_FEATURES
197 AC_DEFUN(GLIBCPP_CHECK_COMPILER_FEATURES, [
198 # All these tests are for C++; save the language and the compiler flags.
199 # The CXXFLAGS thing is suspicious, but based on similar bits previously
200 # found in GLIBCPP_CONFIGURE.
203 ac_test_CXXFLAGS="${CXXFLAGS+set}"
204 ac_save_CXXFLAGS="$CXXFLAGS"
206 # Check for maintainer-mode bits.
207 if test x"$USE_MAINTAINER_MODE" = xno; then
213 # Check for -ffunction-sections -fdata-sections
214 AC_MSG_CHECKING([for g++ that supports -ffunction-sections -fdata-sections])
215 CXXFLAGS='-Werror -ffunction-sections -fdata-sections'
216 AC_TRY_COMPILE(, [int foo;
217 ], [ac_fdsections=yes], [ac_fdsections=no])
218 if test "$ac_test_CXXFLAGS" = set; then
219 CXXFLAGS="$ac_save_CXXFLAGS"
221 # this is the suspicious part
224 if test x"$ac_fdsections" = x"yes" &&
225 test x"$enable_debug" = x"no"; then
226 SECTION_FLAGS='-ffunction-sections -fdata-sections'
228 AC_MSG_RESULT($ac_fdsections)
232 AC_SUBST(SECTION_FLAGS)
237 dnl If GNU ld is in use, check to see if tricky linker opts can be used. If
238 dnl the native linker is in use, all variables will be defined to something
239 dnl safe (like an empty string).
241 dnl Define SECTION_LDFLAGS='-Wl,--gc-sections' if possible.
242 dnl Define OPT_LDFLAGS='-Wl,-O1' if possible.
244 dnl GLIBCPP_CHECK_LINKER_FEATURES
245 AC_DEFUN(GLIBCPP_CHECK_LINKER_FEATURES, [
246 # If we're not using GNU ld, then there's no point in even trying these
247 # tests. Check for that first. We should have already tested for gld
248 # by now (in libtool), but require it now just to be safe...
251 AC_REQUIRE([AC_PROG_LD])
254 if test "$ac_cv_prog_gnu_ld" = "notbroken"; then
255 # GNU ld it is! Joy and bunny rabbits!
257 # All these tests are for C++; save the language and the compiler flags.
258 # Need to do this so that g++ won't try to link in libstdc++
259 ac_test_CFLAGS="${CFLAGS+set}"
260 ac_save_CFLAGS="$CFLAGS"
261 CFLAGS='-x c++ -Wl,--gc-sections'
263 # Check for -Wl,--gc-sections
264 # XXX This test is broken at the moment, as symbols required for
265 # linking are now in libsupc++ (not built yet.....). In addition,
266 # this test has cored on solaris in the past. In addition,
267 # --gc-sections doesn't really work at the moment (keeps on discarding
268 # used sections, first .eh_frame and now some of the glibc sections for
269 # iconv). Bzzzzt. Thanks for playing, maybe next time.
270 AC_MSG_CHECKING([for ld that supports -Wl,--gc-sections])
278 ], [ac_sectionLDflags=yes],[ac_sectionLFflags=no], [ac_sectionLDflags=yes])
279 if test "$ac_test_CFLAGS" = set; then
280 CFLAGS="$ac_save_CFLAGS"
282 # this is the suspicious part
285 if test "$ac_sectionLDflags" = "yes"; then
286 SECTION_LDFLAGS='-Wl,--gc-sections'
288 AC_MSG_RESULT($ac_sectionLDflags)
291 # Set linker optimization flags.
292 if test x"$ac_cv_prog_gnu_ld" = x"yes" &&
293 test x"$enable_debug" = x"no"; then
294 OPT_LDFLAGS='-Wl,-O1'
297 AC_SUBST(SECTION_LDFLAGS)
298 AC_SUBST(OPT_LDFLAGS)
303 dnl Check to see if the (math function) argument passed is
304 dnl declared when using the c++ compiler
305 dnl ASSUMES argument is a math function with ONE parameter
307 dnl GLIBCPP_CHECK_MATH_DECL_1
308 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_1, [
309 AC_MSG_CHECKING([for $1 declaration])
310 if test x${glibcpp_cv_func_$1_use+set} != xset; then
311 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
314 AC_TRY_COMPILE([#include <math.h>
320 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
324 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
328 dnl Check to see if the (math function) argument passed is
329 dnl 1) declared when using the c++ compiler
330 dnl 2) has "C" linkage
331 dnl 3) if not, see if 1) and 2) for argument prepended with '_'
333 dnl Define HAVE_CARGF etc if "cargf" is declared and links
335 dnl argument 1 is name of function to check
337 dnl ASSUMES argument is a math function with ONE parameter
339 dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1
340 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1, [
341 GLIBCPP_CHECK_MATH_DECL_1($1)
342 if test x$glibcpp_cv_func_$1_use = x"yes"; then
345 GLIBCPP_CHECK_MATH_DECL_1(_$1)
346 if test x$glibcpp_cv_func__$1_use = x"yes"; then
354 dnl Like GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1, but does a bunch of
355 dnl of functions at once. It's an all-or-nothing check -- either
356 dnl HAVE_XYZ is defined for each of the functions, or for none of them.
357 dnl Doing it this way saves significant configure time.
358 AC_DEFUN(GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1, [
359 AC_MSG_CHECKING([for $1 functions])
360 AC_CACHE_VAL(glibcpp_cv_func_$2_use, [
363 AC_TRY_COMPILE([#include <math.h>],
364 [ `for x in $3; do echo "$x (0);"; done` ],
365 [glibcpp_cv_func_$2_use=yes],
366 [glibcpp_cv_func_$2_use=no])
368 AC_MSG_RESULT($glibcpp_cv_func_$2_use)
369 if test x$glibcpp_cv_func_$2_use = x"yes"; then
375 dnl Check to see if the (math function) argument passed is
376 dnl declared when using the c++ compiler
377 dnl ASSUMES argument is a math function with TWO parameters
379 dnl GLIBCPP_CHECK_MATH_DECL_2
380 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_2, [
381 AC_MSG_CHECKING([for $1 declaration])
382 if test x${glibcpp_cv_func_$1_use+set} != xset; then
383 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
386 AC_TRY_COMPILE([#include <math.h>],
388 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
392 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
396 dnl Check to see if the (math function) argument passed is
397 dnl 1) declared when using the c++ compiler
398 dnl 2) has "C" linkage
400 dnl Define HAVE_CARGF etc if "cargf" is declared and links
402 dnl argument 1 is name of function to check
404 dnl ASSUMES argument is a math function with TWO parameters
406 dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2
407 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2, [
408 GLIBCPP_CHECK_MATH_DECL_2($1)
409 if test x$glibcpp_cv_func_$1_use = x"yes"; then
412 GLIBCPP_CHECK_MATH_DECL_2(_$1)
413 if test x$glibcpp_cv_func__$1_use = x"yes"; then
421 dnl Check to see if the (math function) argument passed is
422 dnl declared when using the c++ compiler
423 dnl ASSUMES argument is a math function with THREE parameters
425 dnl GLIBCPP_CHECK_MATH_DECL_3
426 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_3, [
427 AC_MSG_CHECKING([for $1 declaration])
428 if test x${glibcpp_cv_func_$1_use+set} != xset; then
429 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
432 AC_TRY_COMPILE([#include <math.h>],
434 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
438 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
442 dnl Check to see if the (math function) argument passed is
443 dnl 1) declared when using the c++ compiler
444 dnl 2) has "C" linkage
446 dnl Define HAVE_CARGF etc if "cargf" is declared and links
448 dnl argument 1 is name of function to check
450 dnl ASSUMES argument is a math function with THREE parameters
452 dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3
453 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3, [
454 GLIBCPP_CHECK_MATH_DECL_3($1)
455 if test x$glibcpp_cv_func_$1_use = x"yes"; then
458 GLIBCPP_CHECK_MATH_DECL_3(_$1)
459 if test x$glibcpp_cv_func__$1_use = x"yes"; then
467 dnl Check to see if the (stdlib function) argument passed is
468 dnl 1) declared when using the c++ compiler
469 dnl 2) has "C" linkage
471 dnl argument 1 is name of function to check
473 dnl ASSUMES argument is a math function with TWO parameters
475 dnl GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2
476 AC_DEFUN(GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2, [
477 AC_MSG_CHECKING([for $1 declaration])
478 if test x${glibcpp_cv_func_$1_use+set} != xset; then
479 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
482 AC_TRY_COMPILE([#include <stdlib.h>],
484 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
488 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
489 if test x$glibcpp_cv_func_$1_use = x"yes"; then
496 dnl Because the builtins are picky picky picky about the arguments they take,
497 dnl do an explict linkage tests here.
498 dnl Check to see if the (math function) argument passed is
499 dnl 1) declared when using the c++ compiler
500 dnl 2) has "C" linkage
502 dnl Define HAVE_CARGF etc if "cargf" is declared and links
504 dnl argument 1 is name of function to check
506 dnl ASSUMES argument is a math function with ONE parameter
508 dnl GLIBCPP_CHECK_BUILTIN_MATH_DECL_LINKAGE_1
509 AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1, [
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)
522 if test x$glibcpp_cv_func_$1_use = x"yes"; then
523 AC_MSG_CHECKING([for $1 linkage])
524 if test x${glibcpp_cv_func_$1_link+set} != xset; then
525 AC_CACHE_VAL(glibcpp_cv_func_$1_link, [
526 AC_TRY_LINK([#include <math.h>],
528 [glibcpp_cv_func_$1_link=yes], [glibcpp_cv_func_$1_link=no])
531 AC_MSG_RESULT($glibcpp_cv_func_$1_link)
532 if test x$glibcpp_cv_func_$1_link = x"yes"; then
533 ac_tr_func=HAVE_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
534 AC_DEFINE_UNQUOTED(${ac_tr_func})
541 dnl Check to see what builtin math functions are supported
543 dnl check for __builtin_abs
544 dnl check for __builtin_fabsf
545 dnl check for __builtin_fabs
546 dnl check for __builtin_fabl
547 dnl check for __builtin_labs
548 dnl check for __builtin_sqrtf
549 dnl check for __builtin_sqrtl
550 dnl check for __builtin_fsqrt
551 dnl check for __builtin_sinf
552 dnl check for __builtin_sin
553 dnl check for __builtin_sinl
554 dnl check for __builtin_cosf
555 dnl check for __builtin_cos
556 dnl check for __builtin_cosl
558 dnl GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT
559 AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT, [
560 dnl Test for builtin math functions.
561 dnl These are made in gcc/c-common.c
562 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_abs)
563 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabsf)
564 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabs)
565 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabsl)
566 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_labs)
568 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrtf)
569 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fsqrt)
570 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrtl)
572 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sinf)
573 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sin)
574 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sinl)
576 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cosf)
577 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cos)
578 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cosl)
580 dnl There is, without a doubt, a more elegant way to have these
581 dnl names exported so that they won't be stripped out of acconfig.h by
582 dnl autoheader. I leave this as an exercise to somebody less frustrated
583 dnl than I.... please email the libstdc++ list if you can figure out a
584 dnl more elegant approach (see autoconf/acgen.m4 and specifically
585 dnl AC_CHECK_FUNC for things to steal.)
587 if test x$dummyvar = x"yes"; then
588 AC_DEFINE(HAVE___BUILTIN_ABS)
589 AC_DEFINE(HAVE___BUILTIN_LABS)
590 AC_DEFINE(HAVE___BUILTIN_COS)
591 AC_DEFINE(HAVE___BUILTIN_COSF)
592 AC_DEFINE(HAVE___BUILTIN_COSL)
593 AC_DEFINE(HAVE___BUILTIN_FABS)
594 AC_DEFINE(HAVE___BUILTIN_FABSF)
595 AC_DEFINE(HAVE___BUILTIN_FABSL)
596 AC_DEFINE(HAVE___BUILTIN_SIN)
597 AC_DEFINE(HAVE___BUILTIN_SINF)
598 AC_DEFINE(HAVE___BUILTIN_SINL)
599 AC_DEFINE(HAVE___BUILTIN_FSQRT)
600 AC_DEFINE(HAVE___BUILTIN_SQRTF)
601 AC_DEFINE(HAVE___BUILTIN_SQRTL)
607 dnl Check to see what the underlying c library
608 dnl These checks need to do two things:
609 dnl 1) make sure the name is declared when using the c++ compiler
610 dnl 2) make sure the name has "C" linkage
611 dnl This might seem like overkill but experience has shown that it's not...
613 dnl Define HAVE_STRTOLD if "strtold" is declared and links
614 dnl Define HAVE_STRTOF if "strtof" is declared and links
615 dnl Define HAVE_DRAND48 if "drand48" is declared and links
617 dnl GLIBCPP_CHECK_STDLIB_SUPPORT
618 AC_DEFUN(GLIBCPP_CHECK_STDLIB_SUPPORT, [
619 ac_test_CXXFLAGS="${CXXFLAGS+set}"
620 ac_save_CXXFLAGS="$CXXFLAGS"
621 CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
623 GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtold)
624 AC_CHECK_FUNCS(drand48)
626 CXXFLAGS="$ac_save_CXXFLAGS"
631 dnl Check to see what the underlying c library or math library is like.
632 dnl These checks need to do two things:
633 dnl 1) make sure the name is declared when using the c++ compiler
634 dnl 2) make sure the name has "C" linkage
635 dnl This might seem like overkill but experience has shown that it's not...
637 dnl Define HAVE_CARGF etc if "cargf" is found.
639 dnl GLIBCPP_CHECK_MATH_SUPPORT
640 AC_DEFUN(GLIBCPP_CHECK_MATH_SUPPORT, [
641 ac_test_CXXFLAGS="${CXXFLAGS+set}"
642 ac_save_CXXFLAGS="$CXXFLAGS"
643 CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
646 AC_CHECK_LIB(m, sin, libm="-lm")
650 dnl Check to see if certain C math functions exist.
651 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinf)
652 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnan)
653 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finite)
654 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(copysign)
655 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincos)
656 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fpclass)
657 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(qfpclass)
659 dnl Check to see if basic C math functions have float versions.
660 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(float trig,
665 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(float round,
668 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnanf)
669 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinff)
670 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsf)
671 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodf)
672 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpf)
673 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpf)
674 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logf)
675 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10f)
676 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(modff)
677 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(powf)
678 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtf)
679 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincosf)
680 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finitef)
682 dnl Check to see if basic C math functions have long double versions.
683 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(long double trig,
688 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(long double round,
691 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnanl)
692 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinfl)
693 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(copysignl)
694 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(atan2l)
695 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(expl)
696 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsl)
697 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodl)
698 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpl)
699 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpl)
700 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logl)
701 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10l)
702 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(modfl)
703 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(powl)
704 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtl)
705 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincosl)
706 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finitel)
708 dnl Some runtimes have these functions with a preceding underscore. Please
709 dnl keep this sync'd with the one above. And if you add any new symbol,
710 dnl please add the corresponding block in the @BOTTOM@ section of acconfig.h.
711 dnl Check to see if certain C math functions exist.
713 dnl Check to see if basic C math functions have float versions.
714 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_float trig,
716 _acosf _asinf _atanf \
718 _coshf _sinhf _tanhf)
719 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_float round,
723 dnl Check to see if basic C math functions have long double versions.
724 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_long double trig,
726 _acosl _asinl _atanl \
728 _coshl _sinhl _tanhl)
729 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_long double round,
734 CXXFLAGS="$ac_save_CXXFLAGS"
739 dnl Check to see if there is native support for complex
741 dnl Don't compile bits in math/* if native support exits.
743 dnl Define USE_COMPLEX_LONG_DOUBLE etc if "atan2l/copysignl" is found.
745 dnl GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT
746 AC_DEFUN(GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT, [
747 dnl Check for complex versions of math functions of platform.
748 AC_CHECK_LIB(m, main)
749 AC_REPLACE_MATHFUNCS(nan hypot hypotf copysignf)
751 dnl Compile the long double complex functions only if the function
752 dnl provides the non-complex long double functions that are needed.
753 dnl Currently this includes copysignl and atan2l, which should be
754 dnl cached from the GLIBCPP_CHECK_MATH_SUPPORT macro, above.
755 USE_COMPLEX_LONG_DOUBLE=no
756 if test x$ac_cv_func_atan2l = x"yes" &&
757 test x$ac_cv_func_copysignl = x"yes"; then
758 USE_COMPLEX_LONG_DOUBLE=yes
759 AC_REPLACE_MATHFUNCS(hypotl signbitl)
762 AC_SUBST(USE_COMPLEX_LONG_DOUBLE)
766 dnl Check to see what architecture and operating system we are compiling
767 dnl for. Also, if architecture- or OS-specific flags are required for
768 dnl compilation, pick them up here.
770 dnl GLIBCPP_CHECK_TARGET
771 AC_DEFUN(GLIBCPP_CHECK_TARGET, [
772 . [$]{glibcpp_basedir}/configure.target
773 AC_MSG_RESULT(CPU config directory is $cpu_include_dir)
774 AC_MSG_RESULT(OS config directory is $os_include_dir)
779 dnl Check to see if this target can enable the wchar_t parts of libstdc++.
780 dnl If --disable-c-mbchar was given, no wchar_t stuff is enabled. (This
781 dnl must have been previously checked.)
783 dnl Define _GLIBCPP_USE_WCHAR_T if all the bits are found
784 dnl Define HAVE_MBSTATE_T if mbstate_t is not in wchar.h
786 dnl GLIBCPP_CHECK_WCHAR_T_SUPPORT
787 AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
789 dnl Test wchar.h for mbstate_t, which is needed for char_traits and
790 dnl others even if wchar_t support is not on.
791 AC_MSG_CHECKING([for mbstate_t])
792 AC_TRY_COMPILE([#include <wchar.h>],
793 [mbstate_t teststate;],
794 have_mbstate_t=yes, have_mbstate_t=no)
795 AC_MSG_RESULT($have_mbstate_t)
796 if test x"$have_mbstate_t" = xyes; then
797 AC_DEFINE(HAVE_MBSTATE_T)
800 dnl Sanity check for existence of ISO C99 headers for extended encoding.
801 AC_CHECK_HEADERS(wchar.h, ac_has_wchar_h=yes, ac_has_wchar_h=no)
802 AC_CHECK_HEADER(wctype.h, ac_has_wctype_h=yes, ac_has_wctype_h=no)
804 dnl Only continue checking if the ISO C99 headers exist and support is on.
805 if test x"$ac_has_wchar_h" = xyes &&
806 test x"$ac_has_wctype_h" = xyes &&
807 test x"$enable_c_mbchar" != xno; then
809 dnl Test wchar.h for WCHAR_MIN, WCHAR_MAX, which is needed before
810 dnl numeric_limits can instantiate type_traits<wchar_t>
811 AC_MSG_CHECKING([for WCHAR_MIN and WCHAR_MAX])
812 AC_TRY_COMPILE([#include <wchar.h>],
813 [int i = WCHAR_MIN; int j = WCHAR_MAX;],
814 has_wchar_minmax=yes, has_wchar_minmax=no)
815 AC_MSG_RESULT($has_wchar_minmax)
817 dnl Test wchar.h for WEOF, which is what we use to determine whether
818 dnl to specialize for char_traits<wchar_t> or not.
819 AC_MSG_CHECKING([for WEOF])
822 #include <stddef.h>],
824 has_weof=yes, has_weof=no)
825 AC_MSG_RESULT($has_weof)
827 dnl Tests for wide character functions used in char_traits<wchar_t>.
829 AC_CHECK_FUNCS(wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset,, \
832 dnl Checks for names injected into std:: by the c_std headers.
833 AC_CHECK_FUNCS(btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
834 fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
835 vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
836 mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
837 wcstoul wcscpy wcsncpy wcscat wcsncat wcscmp wcscoll wcsncmp wcsxfrm \
838 wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr,, \
841 AC_MSG_CHECKING([for ISO C99 wchar_t support])
842 if test x"$has_weof" = xyes &&
843 test x"$has_wchar_minmax" = xyes &&
844 test x"$ac_wfuncs" = xyes; then
845 ac_isoC99_wchar_t=yes
849 AC_MSG_RESULT($ac_isoC99_wchar_t)
851 dnl Use iconv for wchar_t to char conversions. As such, check for
852 dnl X/Open Portability Guide, version 2 features (XPG2).
853 AC_CHECK_HEADER(iconv.h, ac_has_iconv_h=yes, ac_has_iconv_h=no)
854 AC_CHECK_HEADER(langinfo.h, ac_has_langinfo_h=yes, ac_has_langinfo_h=no)
856 dnl Check for existence of libiconv.a providing XPG2 wchar_t support.
857 AC_CHECK_LIB(iconv, iconv, libiconv="-liconv")
859 LIBS="$LIBS $libiconv"
861 AC_CHECK_FUNCS(iconv_open iconv_close iconv nl_langinfo, \
862 ac_XPG2funcs=yes, ac_XPG2funcs=no)
866 AC_MSG_CHECKING([for XPG2 wchar_t support])
867 if test x"$ac_has_iconv_h" = xyes &&
868 test x"$ac_has_langinfo_h" = xyes &&
869 test x"$ac_XPG2funcs" = xyes; then
874 AC_MSG_RESULT($ac_XPG2_wchar_t)
876 dnl At the moment, only enable wchar_t specializations if all the
877 dnl above support is present.
878 AC_MSG_CHECKING([for enabled wchar_t specializations])
879 if test x"$ac_isoC99_wchar_t" = xyes &&
880 test x"$ac_XPG2_wchar_t" = xyes; then
881 AC_DEFINE(_GLIBCPP_USE_WCHAR_T)
887 dnl Wide characters disabled by the user.
888 AC_MSG_WARN([wchar_t support disabled.])
894 dnl Check for special debugging mode; not for production use.
896 dnl GLIBCPP_ENABLE_DEBUG
897 dnl --enable-debug sets '-ggdb3 -O0'.
898 dnl --disable-debug sets '-g' and whatever optimization options the
899 dnl compiler can handle.
900 dnl + --enable-maintainer-mode automatically defaults this to on.
901 dnl + Perhaps -D/-U of NDEBUG, DEBUG, DEBUG_ASSERT, ...?
902 dnl + Usage: GLIBCPP_ENABLE_DEBUG[(DEFAULT)]
903 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
904 dnl defaults to `no'.
905 AC_DEFUN(GLIBCPP_ENABLE_DEBUG, [dnl
906 define([GLIBCPP_ENABLE_DEBUG_DEFAULT], ifelse($1, yes, yes, no))dnl
908 changequote(<<, >>)dnl
909 << --enable-debug extra debugging, turn off optimization [default=>>GLIBCPP_ENABLE_DEBUG_DEFAULT],
911 [case "${enableval}" in
912 yes) enable_debug=yes ;;
913 no) enable_debug=no ;;
914 *) AC_MSG_ERROR([Unknown argument to enable/disable extra debugging]) ;;
916 enable_debug=GLIBCPP_ENABLE_DEBUG_DEFAULT)dnl
918 dnl Option parsed, now set things appropriately
919 case "${enable_debug}" in
921 DEBUG_FLAGS='-O0 -ggdb3'
927 AC_SUBST(DEBUG_FLAGS)
932 dnl Check for "unusual" flags to pass to the compiler while building.
934 dnl GLIBCPP_ENABLE_CXX_FLAGS
935 dnl --enable-cxx-flags='-foo -bar -baz' is a general method for passing
936 dnl experimental flags such as -fhonor-std, -fsquangle, -Dfloat=char, etc.
937 dnl Somehow this same set of flags must be passed when [re]building
939 dnl --disable-cxx-flags passes nothing.
940 dnl + See http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00131.html
941 dnl http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00284.html
942 dnl http://gcc.gnu.org/ml/libstdc++/2000-q1/msg00035.html
943 dnl + Usage: GLIBCPP_ENABLE_CXX_FLAGS(default flags)
944 dnl If "default flags" is an empty string (or "none"), the effect is
945 dnl the same as --disable or --enable=no.
946 AC_DEFUN(GLIBCPP_ENABLE_CXX_FLAGS, [dnl
947 define([GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT], ifelse($1,,, $1))dnl
948 AC_ARG_ENABLE(cxx-flags,
949 changequote(<<, >>)dnl
950 << --enable-cxx-flags=FLAGS pass compiler FLAGS when building library;
951 [default=>>GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT],
953 [case "x$enableval" in
955 AC_MSG_ERROR([--enable-cxx-flags needs compiler flags as arguments]) ;;
957 enable_cxx_flags='' ;;
959 enable_cxx_flags="$enableval" ;;
961 enable_cxx_flags='GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT')
963 dnl Thinko on my part during design. This kludge is the workaround.
964 if test "$enable_cxx_flags" = "none"; then
968 dnl Run through flags (either default or command-line) and set anything
969 dnl extra (e.g., #defines) that must accompany particular g++ options.
970 if test -n "$enable_cxx_flags"; then
971 for f in $enable_cxx_flags; do
975 *) # and we're trying to pass /what/ exactly?
976 AC_MSG_ERROR([compiler flags start with a -]) ;;
980 EXTRA_CXX_FLAGS="$enable_cxx_flags"
981 AC_SUBST(EXTRA_CXX_FLAGS)
986 dnl Check for which locale library to use: gnu or generic.
988 dnl GLIBCPP_ENABLE_CLOCALE
989 dnl --enable-clocale=gnu sets config/c_locale_gnu.cc and friends
990 dnl --enable-clocale=generic sets config/c_locale_generic.cc and friends
992 dnl default is generic
994 AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
995 AC_MSG_CHECKING([for clocale to use])
996 AC_ARG_ENABLE(clocale,
997 [ --enable-clocale enable model for target locale package.
998 --enable-clocale=MODEL use MODEL target-speific locale package. [default=generic]
1000 if test x$enable_clocale = xno; then
1001 enable_clocale=generic
1003 enable_clocale=generic)
1005 enable_clocale_flag=$enable_clocale
1007 dnl Check if a valid locale package
1008 case x${enable_clocale_flag} in
1010 CLOCALE_H=config/c_locale_gnu.h
1011 CLOCALE_CC=config/c_locale_gnu.cc
1015 CLOCALE_H=config/c_locale_generic.h
1016 CLOCALE_CC=config/c_locale_generic.cc
1017 AC_MSG_RESULT(generic)
1020 echo "$enable_clocale is an unknown locale package" 1>&2
1026 AC_LINK_FILES($CLOCALE_CC, src/c++locale.cc)
1031 dnl Check for which I/O library to use: libio, or something specific.
1033 dnl GLIBCPP_ENABLE_CSTDIO
1034 dnl --enable-cstdio=libio sets config/c_io_libio.h and friends
1036 dnl default is stdio
1038 AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [
1039 AC_MSG_CHECKING([for cstdio to use])
1040 AC_ARG_ENABLE(cstdio,
1041 [ --enable-cstdio enable stdio for target io package.
1042 --enable-cstdio=LIB use LIB target-speific io package. [default=stdio]
1044 if test x$enable_cstdio = xno; then
1047 enable_cstdio=stdio)
1049 enable_cstdio_flag=$enable_cstdio
1051 dnl Check if a valid I/O package
1052 case x${enable_cstdio_flag} in
1054 CSTDIO_H=config/c_io_libio.h
1055 BASIC_FILE_H=config/basic_file_libio.h
1056 BASIC_FILE_CC=config/basic_file_libio.cc
1057 AC_MSG_RESULT(libio)
1059 # see if we are on a system with libio native (ie, linux)
1060 AC_CHECK_HEADER(libio.h, has_libio=yes, has_libio=no)
1062 # Need to check and see what version of glibc is being used. If
1063 # it's not glibc-2.2 or higher, then we'll need to go ahead and
1064 # compile most of libio for linux systems.
1065 if test x$has_libio = x"yes"; then
1068 AC_MSG_CHECKING([for glibc version >= 2.2])
1069 AC_EGREP_CPP([ok], [
1070 #include <features.h>
1071 #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
1074 ], glibc_satisfactory=yes, glibc_satisfactory=no)
1075 AC_MSG_RESULT($glibc_satisfactory)
1079 # XXX at the moment, admit defeat and force the recompilation
1080 # XXX of glibc even on glibc-2.2 systems, because libio is not synched.
1081 glibc_satisfactory=no
1083 if test x$glibc_satisfactory = x"yes"; then
1088 # bkoz XXX need to add checks to enable this
1089 # pme XXX here's a first pass at such a check
1090 if test x$enable_c_mbchar != xno; then
1098 # Using libio, but <libio.h> doesn't exist on the target system. . .
1100 # bkoz XXX need to add checks to enable this
1101 # pme XXX here's a first pass at such a check
1102 if test x$enable_c_mbchar != xno; then
1109 xstdio | x | xno | xnone | xyes)
1111 CSTDIO_H=config/c_io_stdio.h
1112 BASIC_FILE_H=config/basic_file_stdio.h
1113 BASIC_FILE_CC=config/basic_file_stdio.cc
1114 AC_MSG_RESULT(stdio)
1116 # We're not using stdio.
1121 echo "$enable_cstdio is an unknown io package" 1>&2
1126 AC_SUBST(BASIC_FILE_H)
1127 AC_LINK_FILES($BASIC_FILE_CC, src/basic_file.cc)
1129 # 2000-08-04 bkoz hack
1130 CCODECVT_C=config/c_io_libio_codecvt.c
1131 AC_SUBST(CCODECVT_C)
1132 # 2000-08-04 bkoz hack
1134 AM_CONDITIONAL(GLIBCPP_BUILD_LIBIO,
1135 test "$need_libio" = yes || test "$need_wlibio" = yes)
1136 AM_CONDITIONAL(GLIBCPP_NEED_LIBIO, test "$need_libio" = yes)
1137 AM_CONDITIONAL(GLIBCPP_NEED_WLIBIO, test "$need_wlibio" = yes)
1138 if test "$need_libio" = yes || test "$need_wlibio" = yes; then
1139 libio_la=../libio/libio.la
1148 dnl Setup to use the gcc gthr.h thread-specific memory and mutex model.
1149 dnl We must stage the required headers so that they will be installed
1150 dnl with the library (unlike libgcc, the STL implementation is provided
1151 dnl solely within headers). Since we must not inject random user-space
1152 dnl macro names into user-provided C++ code, we first stage into <file>-in
1153 dnl and process to <file> with an output command. The reason for a two-
1154 dnl stage process here is to correctly handle $srcdir!=$objdir without
1155 dnl having to write complex code (the sed commands to clean the macro
1156 dnl namespace are complex and fragile enough as it is). We must also
1157 dnl add a relative path so that -I- is supported properly.
1159 AC_DEFUN(GLIBCPP_ENABLE_THREADS, [
1160 AC_MSG_CHECKING([for thread model used by GCC])
1161 target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
1162 AC_MSG_RESULT([$target_thread_file])
1164 if test $target_thread_file != single; then
1165 AC_DEFINE(HAVE_GTHR_DEFAULT)
1166 AC_DEFINE(_GLIBCPP_SUPPORTS_WEAK, __GXX_WEAK__)
1169 glibcpp_thread_h=gthr-$target_thread_file.h
1170 AC_SUBST(glibcpp_thread_h)
1175 dnl Check for exception handling support. If an explicit enable/disable
1176 dnl sjlj exceptions is given, we don't have to detect. Otherwise the
1177 dnl target may or may not support call frame exceptions.
1179 dnl GLIBCPP_ENABLE_SJLJ_EXCEPTIONS
1180 dnl --enable-sjlj-exceptions forces the use of builtin setjmp.
1181 dnl --disable-sjlj-exceptions forces the use of call frame unwinding.
1183 dnl Define _GLIBCPP_SJLJ_EXCEPTIONS if the compiler is configured for it.
1185 AC_DEFUN(GLIBCPP_ENABLE_SJLJ_EXCEPTIONS, [
1186 AC_MSG_CHECKING([for exception model to use])
1189 AC_ARG_ENABLE(sjlj-exceptions,
1190 [ --enable-sjlj-exceptions force use of builtin_setjmp for exceptions],
1192 [dnl Botheration. Now we've got to detect the exception model.
1193 dnl Link tests against libgcc.a are problematic since -- at least
1194 dnl as of this writing -- we've not been given proper -L bits for
1195 dnl single-tree newlib and libgloss.
1197 dnl This is what AC_TRY_COMPILE would do if it didn't delete the
1198 dnl conftest files before we got a change to grep them first.
1199 cat > conftest.$ac_ext << EOF
1200 [#]line __oline__ "configure"
1209 old_CXXFLAGS="$CXXFLAGS"
1211 if AC_TRY_EVAL(ac_compile); then
1212 if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then
1213 enable_sjlj_exceptions=yes
1214 elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then
1215 enable_sjlj_exceptions=no
1218 CXXFLAGS="$old_CXXFLAGS"
1220 if test x$enable_sjlj_exceptions = xyes; then
1221 AC_DEFINE(_GLIBCPP_SJLJ_EXCEPTIONS, 1,
1222 [Define if the compiler is configured for setjmp/longjmp exceptions.])
1223 ac_exception_model_name=sjlj
1224 elif test x$enable_sjlj_exceptions = xno; then
1225 ac_exception_model_name="call frame"
1227 AC_MSG_ERROR([unable to detect exception model])
1230 AC_MSG_RESULT($ac_exception_model_name)
1235 dnl Check for ISO/IEC 9899:1999 "C99" support.
1237 dnl GLIBCPP_ENABLE_C99
1238 dnl --enable-c99 defines _GLIBCPP_USE_C99
1239 dnl --disable-c99 leaves _GLIBCPP_USE_C99 undefined
1240 dnl + Usage: GLIBCPP_ENABLE_C99[(DEFAULT)]
1241 dnl Where DEFAULT is either `yes' or `no'. If omitted, it
1242 dnl defaults to `no'.
1243 dnl + If 'C99' stuff is not available, ignores DEFAULT and sets `no'.
1245 dnl GLIBCPP_ENABLE_C99
1246 AC_DEFUN(GLIBCPP_ENABLE_C99, [dnl
1247 define([GLIBCPP_ENABLE_C99_DEFAULT], ifelse($1, yes, yes, no))dnl
1250 changequote(<<, >>)dnl
1251 <<--enable-c99 turns on 'ISO/IEC 9899:1999 support' [default=>>GLIBCPP_ENABLE_C99_DEFAULT],
1252 changequote([, ])dnl
1253 [case "$enableval" in
1254 yes) enable_c99=yes ;;
1255 no) enable_c99=no ;;
1256 *) AC_MSG_ERROR([Unknown argument to enable/disable C99]) ;;
1258 enable_c99=GLIBCPP_ENABLE_C99_DEFAULT)dnl
1263 # Check for the existence of <math.h> functions used if C99 is enabled.
1265 AC_MSG_CHECKING([for ISO C99 support in <math.h>])
1266 AC_TRY_COMPILE([#include <math.h>],[fpclassify(0.0);],, [ac_c99_math=no])
1267 AC_TRY_COMPILE([#include <math.h>],[isfinite(0.0);],, [ac_c99_math=no])
1268 AC_TRY_COMPILE([#include <math.h>],[isinf(0.0);],, [ac_c99_math=no])
1269 AC_TRY_COMPILE([#include <math.h>],[isnan(0.0);],, [ac_c99_math=no])
1270 AC_TRY_COMPILE([#include <math.h>],[isnormal(0.0);],, [ac_c99_math=no])
1271 AC_TRY_COMPILE([#include <math.h>],[signbit(0.0);],, [ac_c99_math=no])
1272 AC_TRY_COMPILE([#include <math.h>],[isgreater(0.0,0.0);],, [ac_c99_math=no])
1273 AC_TRY_COMPILE([#include <math.h>],
1274 [isgreaterequal(0.0,0.0);],, [ac_c99_math=no])
1275 AC_TRY_COMPILE([#include <math.h>],[isless(0.0,0.0);],, [ac_c99_math=no])
1276 AC_TRY_COMPILE([#include <math.h>],[islessequal(0.0,0.0);],,[ac_c99_math=no])
1277 AC_TRY_COMPILE([#include <math.h>],
1278 [islessgreater(0.0,0.0);],, [ac_c99_math=no])
1279 AC_TRY_COMPILE([#include <math.h>],
1280 [isunordered(0.0,0.0);],, [ac_c99_math=no])
1281 AC_MSG_RESULT($ac_c99_math)
1283 # Check for the existence in <stdio.h> of vscanf, et. al.
1285 AC_MSG_CHECKING([for ISO C99 support in <stdio.h>])
1286 AC_TRY_COMPILE([#include <stdio.h>],
1287 [snprintf("12", 0, "%i");],, [ac_c99_stdio=no])
1288 AC_TRY_COMPILE([#include <stdio.h>
1290 void foo(char* fmt, ...)
1291 {va_list args; va_start(args, fmt);
1292 vfscanf(stderr, "%i", args);}],
1293 [],, [ac_c99_stdio=no])
1294 AC_TRY_COMPILE([#include <stdio.h>
1296 void foo(char* fmt, ...)
1297 {va_list args; va_start(args, fmt);
1298 vscanf("%i", args);}],
1299 [],, [ac_c99_stdio=no])
1300 AC_TRY_COMPILE([#include <stdio.h>
1302 void foo(char* fmt, ...)
1303 {va_list args; va_start(args, fmt);
1304 vsnprintf(fmt, 0, "%i", args);}],
1305 [],, [ac_c99_stdio=no])
1306 AC_TRY_COMPILE([#include <stdio.h>
1308 void foo(char* fmt, ...)
1309 {va_list args; va_start(args, fmt);
1310 vsscanf(fmt, "%i", args);}],
1311 [],, [ac_c99_stdio=no])
1312 AC_MSG_RESULT($ac_c99_stdio)
1314 # Check for the existence in <stdlib.h> of lldiv_t, et. al.
1316 AC_MSG_CHECKING([for lldiv_t declaration])
1317 AC_CACHE_VAL(ac_c99_lldiv_t, [
1318 AC_TRY_COMPILE([#include <stdlib.h>],
1320 [ac_c99_lldiv_t=yes], [ac_c99_lldiv_t=no])
1322 AC_MSG_RESULT($ac_c99_lldiv_t)
1324 AC_MSG_CHECKING([for ISO C99 support in <stdlib.h>])
1325 AC_TRY_COMPILE([#include <stdlib.h>],
1326 [char* tmp; strtof("gnu", &tmp);],, [ac_c99_stdlib=no])
1327 AC_TRY_COMPILE([#include <stdlib.h>],
1328 [char* tmp; strtold("gnu", &tmp);],, [ac_c99_stdlib=no])
1329 AC_TRY_COMPILE([#include <stdlib.h>],
1330 [char* tmp; strtoll("gnu", &tmp, 10);],, [ac_c99_stdlib=no])
1331 AC_TRY_COMPILE([#include <stdlib.h>],
1332 [char* tmp; strtoull("gnu", &tmp, 10);],, [ac_c99_stdlib=no])
1333 AC_TRY_COMPILE([#include <stdlib.h>], [llabs(10);],, [ac_c99_stdlib=no])
1334 AC_TRY_COMPILE([#include <stdlib.h>], [lldiv(10,1);],, [ac_c99_stdlib=no])
1335 AC_TRY_COMPILE([#include <stdlib.h>], [atoll("10");],, [ac_c99_stdlib=no])
1336 AC_TRY_COMPILE([#include <stdlib.h>], [_Exit(0);],, [ac_c99_stdlib=no])
1337 if test x"$ac_c99_lldiv_t" = x"no"; then
1340 AC_MSG_RESULT($ac_c99_stdlib)
1342 # Check for the existence of <wchar.h> functions used if C99 is enabled.
1343 # XXX the wchar.h checks should be rolled into the general C99 bits.
1345 AC_MSG_CHECKING([for additional ISO C99 support in <wchar.h>])
1346 AC_TRY_COMPILE([#include <wchar.h>],
1347 [wcstold(L"10.0", NULL);],, [ac_c99_wchar=no])
1348 AC_TRY_COMPILE([#include <wchar.h>],
1349 [wcstoll(L"10", NULL, 10);],, [ac_c99_wchar=no])
1350 AC_TRY_COMPILE([#include <wchar.h>],
1351 [wcstoull(L"10", NULL, 10);],, [ac_c99_wchar=no])
1352 AC_MSG_RESULT($ac_c99_wchar)
1354 AC_MSG_CHECKING([for enabled ISO C99 support])
1355 if test x"$ac_c99_math" = x"no" ||
1356 test x"$ac_c99_stdio" = x"no" ||
1357 test x"$ac_c99_stdlib" = x"no" ||
1358 test x"$ac_c99_wchar" = x"no"; then
1361 AC_MSG_RESULT($enable_c99)
1363 # Option parsed, now set things appropriately
1364 if test x"$enable_c99" = x"yes"; then
1365 AC_DEFINE(_GLIBCPP_USE_C99)
1373 dnl Check for template specializations for the 'long long' type extension.
1374 dnl NB: Must check for C99 support before calling _GLIBCPP_ENABLE_LONG_LONG
1376 dnl GLIBCPP_ENABLE_LONG_LONG
1377 dnl --enable-long-long defines _GLIBCPP_USE_LONG_LONG
1378 dnl --disable-long-long leaves _GLIBCPP_USE_LONG_LONG undefined
1379 dnl + Usage: GLIBCPP_ENABLE_LONG_LONG[(DEFAULT)]
1380 dnl Where DEFAULT is either `yes' or `no'. If omitted, it
1381 dnl defaults to `no'.
1382 dnl + If 'long long' stuff is not available, ignores DEFAULT and sets `no'.
1384 dnl GLIBCPP_ENABLE_LONG_LONG
1385 AC_DEFUN(GLIBCPP_ENABLE_LONG_LONG, [dnl
1386 define([GLIBCPP_ENABLE_LONG_LONG_DEFAULT], ifelse($1, yes, yes, no))dnl
1388 AC_ARG_ENABLE(long-long,
1389 changequote(<<, >>)dnl
1390 <<--enable-long-long turns on 'long long' [default=>>GLIBCPP_ENABLE_LONG_LONG_DEFAULT],
1391 changequote([, ])dnl
1392 [case "$enableval" in
1393 yes) enable_long_long=yes ;;
1394 no) enable_long_long=no ;;
1395 *) AC_MSG_ERROR([Unknown argument to enable/disable long long]) ;;
1397 enable_long_long=GLIBCPP_ENABLE_LONG_LONG_DEFAULT)dnl
1399 # iostreams require strtoll, strtoull to compile. If the
1400 # GLIBCPP_ENABLE_C99 tests found these, and if C99 support is enabled,
1401 # go ahead and allow long long to be used.
1402 if test x"$enable_c99" = x"no"; then
1403 enable_long_long=no;
1406 # Option parsed, now set things appropriately
1407 AC_MSG_CHECKING([for enabled long long support])
1408 if test x"$enable_long_long" = xyes; then
1409 AC_DEFINE(_GLIBCPP_USE_LONG_LONG)
1411 AC_MSG_RESULT($enable_long_long)
1416 dnl Check for what kind of C headers to use.
1418 dnl GLIBCPP_ENABLE_CHEADERS
1419 dnl --enable-cheaders= [does stuff].
1420 dnl --disable-cheaders [does not do anything, really].
1421 dnl + This will eventually need to be 'c_shadow' by default.
1422 dnl + Usage: GLIBCPP_ENABLE_CHEADERS[(DEFAULT)]
1423 dnl Where DEFAULT is either `c' or `c_std' or 'c_shadow'.
1424 dnl If ommitted, it defaults to `c_std'.
1425 AC_DEFUN(GLIBCPP_ENABLE_CHEADERS, [dnl
1426 define([GLIBCPP_ENABLE_CHEADERS_DEFAULT], ifelse($1, c_std, c_std, c_std))dnl
1427 AC_MSG_CHECKING([for c header strategy to use])
1428 AC_ARG_ENABLE(cheaders,
1429 changequote(<<, >>)dnl
1430 << --enable-cheaders construct "C" header files for g++ [default=>>GLIBCPP_ENABLE_CHEADERS_DEFAULT],
1432 [case "$enableval" in
1437 enable_cheaders=c_std
1440 enable_cheaders=c_shadow
1442 *) AC_MSG_ERROR([Unknown argument to enable/disable "C" headers])
1445 enable_cheaders=GLIBCPP_ENABLE_CHEADERS_DEFAULT)
1446 AC_MSG_RESULT($enable_cheaders)
1448 dnl Option parsed, now set things appropriately
1449 case "$enable_cheaders" in
1451 CSHADOW_FLAGS="-fno-builtin"
1452 C_INCLUDE_DIR='${top_srcdir}/include/c_shadow'
1453 AC_DEFINE(_GLIBCPP_USE_SHADOW_HEADERS)
1457 C_INCLUDE_DIR='${top_srcdir}/include/c_std'
1461 C_INCLUDE_DIR='${top_srcdir}/include/c'
1465 AC_SUBST(CSHADOW_FLAGS)
1466 AC_SUBST(C_INCLUDE_DIR)
1467 AM_CONDITIONAL(GLIBCPP_USE_CSHADOW, test "$enable_cheaders" = c_shadow)
1472 dnl Check for wide character support. Has the same effect as the option
1473 dnl in gcc's configure, but in a form that autoconf can mess with.
1475 dnl GLIBCPP_ENABLE_C_MBCHAR
1476 dnl --enable-c-mbchar requests all the wchar_t stuff.
1477 dnl --disable-c-mbchar doesn't.
1478 dnl + Usage: GLIBCPP_ENABLE_C_MBCHAR[(DEFAULT)]
1479 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
1480 dnl defaults to `no'.
1481 AC_DEFUN(GLIBCPP_ENABLE_C_MBCHAR, [dnl
1482 define([GLIBCPP_ENABLE_C_MBCHAR_DEFAULT], ifelse($1, yes, yes, no))dnl
1483 AC_ARG_ENABLE(c-mbchar,
1484 changequote(<<, >>)dnl
1485 << --enable-c-mbchar enable multibyte (wide) characters [default=>>GLIBCPP_ENABLE_C_MBCHAR_DEFAULT],
1486 changequote([, ])dnl
1487 [case "$enableval" in
1488 yes) enable_c_mbchar=yes ;;
1489 no) enable_c_mbchar=no ;;
1490 *) AC_MSG_ERROR([Unknown argument to enable/disable c-mbchar]) ;;
1492 enable_c_mbchar=GLIBCPP_ENABLE_C_MBCHAR_DEFAULT)dnl
1493 dnl Option parsed, now other scripts can test enable_c_mbchar for yes/no.
1498 dnl Set up *_INCLUDES and *_INCLUDE_DIR variables for all sundry Makefile.am's.
1500 dnl TOPLEVEL_INCLUDES
1501 dnl LIBMATH_INCLUDES
1502 dnl LIBSUPCXX_INCLUDES
1504 dnl CSHADOW_INCLUDES
1506 dnl GLIBCPP_EXPORT_INCLUDES
1507 AC_DEFUN(GLIBCPP_EXPORT_INCLUDES, [
1508 # Root level of the build directory include sources.
1509 GLIBCPP_INCLUDES="-I${glibcpp_builddir}/include/${target_alias} -I${glibcpp_builddir}/include"
1511 # Passed down for canadian crosses.
1512 if test x"$CANADIAN" = xyes; then
1513 TOPLEVEL_INCLUDES='-I$(includedir)'
1516 LIBMATH_INCLUDES='-I$(top_srcdir)/libmath'
1518 LIBSUPCXX_INCLUDES='-I$(top_srcdir)/libsupc++'
1520 if test x"$need_libio" = xyes; then
1521 LIBIO_INCLUDES='-I$(top_builddir)/libio -I$(top_srcdir)/libio'
1522 AC_SUBST(LIBIO_INCLUDES)
1525 # Now, export this to all the little Makefiles....
1526 AC_SUBST(GLIBCPP_INCLUDES)
1527 AC_SUBST(TOPLEVEL_INCLUDES)
1528 AC_SUBST(LIBMATH_INCLUDES)
1529 AC_SUBST(LIBSUPCXX_INCLUDES)
1534 dnl Set up *_FLAGS and *FLAGS variables for all sundry Makefile.am's.
1536 AC_DEFUN(GLIBCPP_EXPORT_FLAGS, [
1537 # Optimization flags that are probably a good idea for thrill-seekers. Just
1538 # uncomment the lines below and make, everything else is ready to go...
1539 # OPTIMIZE_CXXFLAGS = -O3 -fstrict-aliasing -fvtable-gc
1541 AC_SUBST(OPTIMIZE_CXXFLAGS)
1543 WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings -Winline'
1544 AC_SUBST(WARN_FLAGS)
1548 dnl GLIBCPP_EXPORT_INSTALL_INFO
1549 dnl calculates gxx_install_dir
1550 dnl exports glibcpp_toolexecdir
1551 dnl exports glibcpp_toolexeclibdir
1552 dnl exports glibcpp_builddir
1553 dnl exports glibcpp_srcdir
1554 dnl exports glibcpp_prefixdir
1556 dnl Assumes cross_compiling bits already done, and with_cross_host in
1559 dnl GLIBCPP_EXPORT_INSTALL_INFO
1560 AC_DEFUN(GLIBCPP_EXPORT_INSTALL_INFO, [
1562 glibcpp_toolexecdir=no
1563 glibcpp_toolexeclibdir=no
1565 # Export build and source directories.
1566 # These need to be absolute paths, yet at the same time need to
1567 # canonicalize only relative paths, because then amd will not unmount
1568 # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd.
1569 glibcpp_builddir=`pwd`
1571 [\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;;
1572 *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;;
1574 glibcpp_prefixdir=${prefix}
1576 AC_MSG_CHECKING([for interface version number])
1577 libstdcxx_interface=$INTERFACE
1578 AC_MSG_RESULT($libstdcxx_interface)
1580 # Process the option --with-gxx-include-dir=<path to include-files directory>
1581 AC_MSG_CHECKING([for --with-gxx-include-dir])
1582 AC_ARG_WITH(gxx-include-dir,
1583 [ --with-gxx-include-dir the installation directory for include files],
1584 [case "${withval}" in
1586 AC_MSG_ERROR(Missing directory for --with-gxx-include-dir)
1593 gxx_include_dir=${withval}
1595 esac], [gxx_include_dir=no])
1596 AC_MSG_RESULT($gxx_include_dir)
1598 # Process the option "--enable-version-specific-runtime-libs"
1599 AC_MSG_CHECKING([for --enable-version-specific-runtime-libs])
1600 AC_ARG_ENABLE(version-specific-runtime-libs,
1601 [ --enable-version-specific-runtime-libs Specify that runtime libraries should be installed in a compiler-specific directory ],
1602 [ version_specific_libs=yes
1603 # Need the gcc compiler version to know where to install libraries
1604 # and header files if --enable-version-specific-runtime-libs option
1607 gcc_version_trigger=${srcdir}/../gcc/version.c
1608 gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^\"]*\)\".*/\1/'`
1609 gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'`
1610 gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/g++
1611 glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
1612 glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)'
1614 ],version_specific_libs=no)
1615 AC_MSG_RESULT($version_specific_libs)
1617 # Default case for install directory for include files.
1618 if test x"$version_specific_libs" = x"no" \
1619 && test x"$gxx_include_dir" = x"no"; then
1620 gxx_include_dir='$(prefix)'/include/g++-${libstdcxx_interface}
1623 # Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir
1624 # Install a library built with a cross compiler in tooldir, not libdir.
1625 if test x"$glibcpp_toolexecdir" = x"no"; then
1626 if test -n "$with_cross_host" &&
1627 test x"$with_cross_host" != x"no"; then
1628 glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)'
1629 glibcpp_toolexeclibdir='$(toolexecdir)/lib$(MULTISUBDIR)'
1631 glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
1632 glibcpp_toolexeclibdir='$(libdir)$(MULTISUBDIR)'
1636 AC_MSG_CHECKING([for install location])
1637 AC_MSG_RESULT($gxx_include_dir)
1639 AC_SUBST(glibcpp_builddir)
1640 AC_SUBST(glibcpp_srcdir)
1641 AC_SUBST(glibcpp_prefixdir)
1642 AC_SUBST(gxx_include_dir)
1643 AC_SUBST(glibcpp_toolexecdir)
1644 AC_SUBST(glibcpp_toolexeclibdir)
1648 # Check whether LC_MESSAGES is available in <locale.h>.
1649 # Ulrich Drepper <drepper@cygnus.com>, 1995.
1651 # This file file be copied and used freely without restrictions. It can
1652 # be used in projects which are not available under the GNU Public License
1653 # but which still want to provide support for the GNU gettext functionality.
1654 # Please note that the actual code is *not* freely available.
1658 AC_DEFUN(AC_LC_MESSAGES, [
1659 AC_CHECK_HEADER(locale.h, [
1660 AC_CACHE_CHECK([for LC_MESSAGES], ac_cv_val_LC_MESSAGES,
1661 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
1662 ac_cv_val_LC_MESSAGES=yes, ac_cv_val_LC_MESSAGES=no)])
1663 if test $ac_cv_val_LC_MESSAGES = yes; then
1664 AC_DEFINE(HAVE_LC_MESSAGES)
1670 # Check for functions in math library.
1671 # Ulrich Drepper <drepper@cygnus.com>, 1998.
1673 # This file can be copied and used freely without restrictions. It can
1674 # be used in projects which are not available under the GNU Public License
1675 # but which still want to provide support for the GNU gettext functionality.
1676 # Please note that the actual code is *not* freely available.
1680 dnl AC_REPLACE_MATHFUNCS(FUNCTION...)
1681 AC_DEFUN(AC_REPLACE_MATHFUNCS,
1682 [AC_CHECK_FUNCS([$1], , [LIBMATHOBJS="$LIBMATHOBJS ${ac_func}.lo"])
1683 AC_SUBST(LIBMATHOBJS)dnl
1687 # Check for string functions.
1688 # Ulrich Drepper <drepper@cygnus.com>, 1998.
1690 # This file can be copied and used freely without restrictions. It can
1691 # be used in projects which are not available under the GNU Public License
1692 # but which still want to provide support for the GNU gettext functionality.
1693 # Please note that the actual code is *not* freely available.
1697 dnl AC_REPLACE_STRINGFUNCS(FUNCTION...)
1698 AC_DEFUN(AC_REPLACE_STRINGFUNCS,
1699 [AC_CHECK_FUNCS([$1], , [LIBSTRINGOBJS="$LIBSTRINGOBJS ${ac_func}.lo"])
1700 AC_SUBST(LIBSTRINGOBJS)dnl
1704 dnl This macro searches for a GNU version of make. If a match is found, the
1705 dnl makefile variable `ifGNUmake' is set to the empty string, otherwise it is
1706 dnl set to "#". This is useful for including a special features in a Makefile,
1707 dnl which cannot be handled by other versions of make. The variable
1708 dnl _cv_gnu_make_command is set to the command to invoke GNU make if it exists,
1709 dnl the empty string otherwise.
1711 dnl Here is an example of its use:
1713 dnl Makefile.in might contain:
1715 dnl # A failsafe way of putting a dependency rule into a makefile
1717 dnl $(CC) -MM $(srcdir)/*.c > $(DEPEND)
1719 dnl @ifGNUmake@ ifeq ($(DEPEND),$(wildcard $(DEPEND)))
1720 dnl @ifGNUmake@ include $(DEPEND)
1721 dnl @ifGNUmake@ endif
1723 dnl Then configure.in would normally contain:
1725 dnl CHECK_GNU_MAKE()
1726 dnl AC_OUTPUT(Makefile)
1728 dnl Then perhaps to cause gnu make to override any other make, we could do
1729 dnl something like this (note that GNU make always looks for GNUmakefile first):
1731 dnl if ! test x$_cv_gnu_make_command = x ; then
1732 dnl mv Makefile GNUmakefile
1733 dnl echo .DEFAULT: > Makefile ;
1734 dnl echo \ $_cv_gnu_make_command \$@ >> Makefile;
1737 dnl Then, if any (well almost any) other make is called, and GNU make also
1738 dnl exists, then the other make wraps the GNU make.
1740 dnl @author John Darrington <j.darrington@elvis.murdoch.edu.au>
1741 dnl @version 1.1 #### replaced Id string now that Id is for lib-v3; pme
1743 dnl #### Changes for libstdc++-v3: reformatting and linewrapping; prepending
1744 dnl #### GLIBCPP_ to the macro name; adding the :-make fallback in the
1745 dnl #### conditional's subshell (" --version" is not a command), using a
1746 dnl #### different option to grep(1).
1748 dnl #### Fixed Bourne shell portability bug (use ${MAKE-make}, not
1749 dnl #### ${MAKE:-make}).
1752 GLIBCPP_CHECK_GNU_MAKE, [AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command,
1753 _cv_gnu_make_command='' ;
1754 dnl Search all the common names for GNU make
1755 for a in "${MAKE-make}" make gmake gnumake ; do
1756 if ( $a --version 2> /dev/null | grep -c GNU > /dev/null )
1758 _cv_gnu_make_command=$a ;
1763 dnl If there was a GNU version, then set @ifGNUmake@ to the empty
1764 dnl string, '#' otherwise
1765 if test "x$_cv_gnu_make_command" != "x" ; then
1773 sinclude(../libtool.m4)
1774 dnl The lines below arrange for aclocal not to bring an installed
1775 dnl libtool.m4 into aclocal.m4, while still arranging for automake to
1776 dnl add a definition of LIBTOOL to Makefile.in.
1777 ifelse(,,,[AC_SUBST(LIBTOOL)
1778 AC_DEFUN([AM_PROG_LIBTOOL])
1779 AC_DEFUN([AC_LIBTOOL_DLOPEN])
1780 AC_DEFUN([AC_PROG_LD])
1785 # Do all the work for Automake. This macro actually does too much --
1786 # some checks are only needed if your package does certain things.
1787 # But this isn't really a big deal.
1792 dnl AM_INIT_AUTOMAKE(package,version, [no-define])
1794 AC_DEFUN(AM_INIT_AUTOMAKE,
1795 [AC_REQUIRE([AC_PROG_INSTALL])
1800 dnl test to see if srcdir already configured
1801 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
1802 AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
1805 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
1806 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
1807 AC_REQUIRE([AM_SANITY_CHECK])
1808 AC_REQUIRE([AC_ARG_PROGRAM])
1809 dnl FIXME This is truly gross.
1810 missing_dir=`cd $ac_aux_dir && pwd`
1811 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
1812 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
1813 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
1814 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
1815 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
1816 AC_REQUIRE([AC_PROG_MAKE_SET])])
1819 # Check to make sure that the build environment is sane.
1822 AC_DEFUN(AM_SANITY_CHECK,
1823 [AC_MSG_CHECKING([whether build environment is sane])
1826 echo timestamp > conftestfile
1827 # Do `set' in a subshell so we don't clobber the current shell's
1828 # arguments. Must try -L first in case configure is actually a
1829 # symlink; some systems play weird games with the mod time of symlinks
1830 # (eg FreeBSD returns the mod time of the symlink's containing
1833 set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
1834 if test "[$]*" = "X"; then
1836 set X `ls -t $srcdir/configure conftestfile`
1838 if test "[$]*" != "X $srcdir/configure conftestfile" \
1839 && test "[$]*" != "X conftestfile $srcdir/configure"; then
1841 # If neither matched, then we have a broken ls. This can happen
1842 # if, for instance, CONFIG_SHELL is bash and it inherits a
1843 # broken ls alias from the environment. This has actually
1844 # happened. Such a system could not be considered "sane".
1845 AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
1846 alias in your environment])
1849 test "[$]2" = conftestfile
1855 AC_MSG_ERROR([newly created file is older than distributed files!
1856 Check your system clock])
1859 AC_MSG_RESULT(yes)])
1861 dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
1862 dnl The program must properly implement --version.
1863 AC_DEFUN(AM_MISSING_PROG,
1864 [AC_MSG_CHECKING(for working $2)
1865 # Run test in a subshell; some versions of sh will print an error if
1866 # an executable is not found, even if stderr is redirected.
1867 # Redirect stdin to placate older versions of autoconf. Sigh.
1868 if ($2 --version) < /dev/null > /dev/null 2>&1; then
1870 AC_MSG_RESULT(found)
1873 AC_MSG_RESULT(missing)
1877 # Add --enable-maintainer-mode option to configure.
1882 AC_DEFUN(AM_MAINTAINER_MODE,
1883 [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
1884 dnl maintainer-mode is disabled by default
1885 AC_ARG_ENABLE(maintainer-mode,
1886 [ --enable-maintainer-mode enable make rules and dependencies not useful
1887 (and sometimes confusing) to the casual installer],
1888 USE_MAINTAINER_MODE=$enableval,
1889 USE_MAINTAINER_MODE=no)
1890 AC_MSG_RESULT($USE_MAINTAINER_MODE)
1891 AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
1892 MAINT=$MAINTAINER_MODE_TRUE
1897 # Define a conditional.
1899 AC_DEFUN(AM_CONDITIONAL,
1910 # Like AC_CONFIG_HEADER, but automatically create stamp file.
1912 AC_DEFUN(AM_CONFIG_HEADER,
1914 AC_CONFIG_HEADER([$1])
1915 dnl When config.status generates a header, we must update the stamp-h file.
1916 dnl This file resides in the same directory as the config header
1917 dnl that is generated. We must strip everything past the first ":",
1918 dnl and everything past the last "/".
1919 AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
1920 ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
1921 <<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
1923 for am_file in <<$1>>; do
1924 case " <<$>>CONFIG_HEADERS " in
1925 *" <<$>>am_file "*<<)>>
1926 echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
1929 am_indx=`expr "<<$>>am_indx" + 1`