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.
16 dnl Define OPTLEVEL='-O2' if new inlining code present.
19 AC_DEFUN(GLIBCPP_CONFIGURE, [
20 dnl Default to --enable-multilib
21 AC_ARG_ENABLE(multilib,
22 [ --enable-multilib build hella library versions (default)],
23 [case "${enableval}" in
26 *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
27 esac], [multilib=yes])dnl
29 dnl We may get other options which we dont document:
30 dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
31 if test "[$]{srcdir}" = "."; then
32 if test "[$]{with_target_subdir}" != "."; then
33 glibcpp_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1"
35 glibcpp_basedir="[$]{srcdir}/[$]{with_multisrctop}$1"
38 glibcpp_basedir="[$]{srcdir}/$1"
40 AC_SUBST(glibcpp_basedir)
42 AM_INIT_AUTOMAKE(libstdc++, 2.90.8)
44 # Never versions of autoconf add an underscore to these functions.
45 # Prevent future problems ...
46 ifdef([AC_PROG_CC_G],[],[define([AC_PROG_CC_G],defn([_AC_PROG_CC_G]))])
47 ifdef([AC_PROG_CC_GNU],[],[define([AC_PROG_CC_GNU],defn([_AC_PROG_CC_GNU]))])
48 ifdef([AC_PROG_CXX_G],[],[define([AC_PROG_CXX_G],defn([_AC_PROG_CXX_G]))])
49 ifdef([AC_PROG_CXX_GNU],[],[define([AC_PROG_CXX_GNU],defn([_AC_PROG_CXX_GNU]))])
53 # FIXME: We temporarily define our own version of AC_PROG_CC. This is
54 # copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
55 # are probably using a cross compiler, which will not be able to fully
56 # link an executable. This should really be fixed in autoconf
59 AC_DEFUN(LIB_AC_PROG_CC,
60 [AC_BEFORE([$0], [AC_PROG_CPP])dnl
61 dnl Fool anybody using AC_PROG_CC.
62 AC_PROVIDE([AC_PROG_CC])
63 AC_CHECK_PROG(CC, gcc, gcc)
64 if test -z "$CC"; then
65 AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
66 test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
71 if test $ac_cv_prog_gcc = yes; then
73 dnl Check whether -g works, even if CFLAGS is set, in case the package
74 dnl plays around with CFLAGS (such as to build both debugging and
75 dnl normal versions of a library), tasteless as that idea is.
76 ac_test_CFLAGS="${CFLAGS+set}"
77 ac_save_CFLAGS="$CFLAGS"
80 if test "$ac_test_CFLAGS" = set; then
81 CFLAGS="$ac_save_CFLAGS"
82 elif test $ac_cv_prog_cc_g = yes; then
89 test "${CFLAGS+set}" = set || CFLAGS="-g"
95 # Can't just call these here as g++ requires libstc++ to be built....
98 # Likewise for AC_PROG_CXX.
99 AC_DEFUN(LIB_AC_PROG_CXX,
100 [AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
101 dnl Fool anybody using AC_PROG_CXX.
102 AC_PROVIDE([AC_PROG_CXX])
103 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++, gcc)
104 test -z "$CXX" && AC_MSG_ERROR([no acceptable c++ found in \$PATH])
108 if test $ac_cv_prog_gxx = yes; then
110 dnl Check whether -g works, even if CXXFLAGS is set, in case the package
111 dnl plays around with CXXFLAGS (such as to build both debugging and
112 dnl normal versions of a library), tasteless as that idea is.
113 ac_test_CXXFLAGS="${CXXFLAGS+set}"
114 ac_save_CXXFLAGS="$CXXFLAGS"
117 if test "$ac_test_CXXFLAGS" = set; then
118 CXXFLAGS="$ac_save_CXXFLAGS"
119 elif test $ac_cv_prog_cxx_g = yes; then
126 test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
132 AC_CHECK_TOOL(AS, as)
133 AC_CHECK_TOOL(AR, ar)
134 AC_CHECK_TOOL(RANLIB, ranlib, :)
140 # We need AC_EXEEXT to keep automake happy in cygnus mode. However,
141 # at least currently, we never actually build a program, so we never
142 # need to use $(EXEEXT). Moreover, the test for EXEEXT normally
143 # fails, because we are probably configuring with a cross compiler
144 # which cant create executables. So we include AC_EXEEXT to keep
145 # automake happy, but we dont execute it, since we dont care about
151 # configure.host sets the following important variables
152 # glibcpp_cflags - host specific C compiler flags
153 # glibcpp_cxxflags - host specific C++ compiler flags
157 . [$]{glibcpp_basedir}/configure.host
159 case [$]{glibcpp_basedir} in
160 /* | [A-Za-z]:[/\\]*) libgcj_flagbasedir=[$]{glibcpp_basedir} ;;
161 *) glibcpp_flagbasedir='[$](top_builddir)/'[$]{glibcpp_basedir} ;;
164 GLIBCPP_CFLAGS="[$]{glibcpp_cflags}"
165 GLIBCPP_CXXFLAGS="[$]{glibcpp_cxxflags}"
166 AC_SUBST(GLIBCPP_CFLAGS)
167 AC_SUBST(GLIBCPP_CXXFLAGS)
172 dnl Check to see if g++ can compile this library, and if so, if any version-
173 dnl specific precautions need to be taken.
175 dnl GLIBCPP_CHECK_COMPILER_VERSION
176 AC_DEFUN(GLIBCPP_CHECK_COMPILER_VERSION, [
177 # Sanity check that g++ is capable of dealing with v-3.
178 AC_MSG_CHECKING([for g++ that will successfully compile this code])
180 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
183 ], gpp_satisfactory=yes, AC_MSG_ERROR("please upgrade to gcc-2.95 or above"))
184 AC_MSG_RESULT($gpp_satisfactory)
189 dnl Test for newer compiler features, or features that are present in newer
190 dnl compiler version but not older compiler versions should be placed
193 dnl Define WFMT_FLAGS='-fdiagnostics-show-location=once' if possible
195 dnl Define WERROR='-Werror' if requested and possible; g++'s that lack the
196 dnl new inlining code or the new system_header pragma will die on -Werror.
197 dnl Leave it out by default and use maint-mode to use it.
199 dnl Define SECTION_FLAGS='-ffunction-sections -fdata-sections' if
200 dnl compiler supports it.
201 dnl GLIBCPP_CHECK_COMPILER_FEATURES
202 AC_DEFUN(GLIBCPP_CHECK_COMPILER_FEATURES, [
203 # All these tests are for C++; save the language and the compiler flags.
204 # The CXXFLAGS thing is suspicious, but based on similar bits
205 # found in GLIBCPP_CONFIGURE.
208 ac_test_CXXFLAGS="${CXXFLAGS+set}"
209 ac_save_CXXFLAGS="$CXXFLAGS"
211 # Check for maintainer-mode bits.
212 if test x"$USE_MAINTAINER_MODE" = xno; then
218 # Check for more sophisticated diagnostic control.
219 AC_MSG_CHECKING([for g++ that supports -fdiagnostics-show-location=once])
220 CXXFLAGS='-Werror -fdiagnostics-show-location=once'
221 AC_TRY_COMPILE(, [int foo;
222 ], [ac_gabydiags=yes], [ac_gabydiags=no])
223 if test "$ac_test_CXXFLAGS" = set; then
224 CXXFLAGS="$ac_save_CXXFLAGS"
226 # this is the suspicious part
229 if test "$ac_gabydiags" = "yes"; then
230 WFMT_FLAGS='-fdiagnostics-show-location=once'
232 AC_MSG_RESULT($ac_gabydiags)
234 # Check for -ffunction-sections -fdata-sections
235 AC_MSG_CHECKING([for g++ that supports -ffunction-sections -fdata-sections])
236 CXXFLAGS='-Werror -ffunction-sections -fdata-sections'
237 AC_TRY_COMPILE(, [int foo;
238 ], [ac_fdsections=yes], [ac_fdsections=no])
239 if test "$ac_test_CXXFLAGS" = set; then
240 CXXFLAGS="$ac_save_CXXFLAGS"
242 # this is the suspicious part
245 if test "$ac_fdsections" = "yes"; then
246 SECTION_FLAGS='-ffunction-sections -fdata-sections'
248 AC_MSG_RESULT($ac_fdsections)
253 AC_SUBST(SECTION_FLAGS)
258 dnl If GNU ld is in use, check to see if tricky linker opts can be used. If
259 dnl the native linker is in use, all variables will be defined to something
260 dnl safe (like an empty string).
262 dnl Define SECTION_LDFLAGS='-Wl,--gc-sections' if possible.
263 dnl Define OPT_LDFLAGS='-Wl,-O1' if possible.
265 dnl GLIBCPP_CHECK_LINKER_FEATURES
266 AC_DEFUN(GLIBCPP_CHECK_LINKER_FEATURES, [
267 # If we're not using GNU ld, then there's no point in even trying these
268 # tests. Check for that first. We should have already tested for gld
269 # by now (in libtool), but require it now just to be safe...
272 AC_REQUIRE([AC_PROG_LD])
273 if test "$ac_cv_prog_gnu_ld" = "yes"; then
274 # GNU ld it is! Joy and bunny rabbits!
276 # All these tests are for C++; save the language and the compiler flags.
277 # Need to do this so that g++ won't try to link in libstdc++
278 ac_test_CFLAGS="${CFLAGS+set}"
279 ac_save_CFLAGS="$CFLAGS"
280 # CFLAGS='-x c++ -Wl,--gc-sections'
284 # Check for -Wl,--gc-sections
285 # XXX This test is broken at the moment, as symbols required for
286 # linking are now in libsupc++ (not built yet.....). In addition,
287 # this test has cored on solaris in the past. In addition,
288 # --gc-sections doesn't really work at the moment (keeps on discarding
289 # used sections, first .eh_frame and now some of the glibc sections for
290 # iconv). Bzzzzt. Thanks for playing, maybe next time.
291 AC_MSG_CHECKING([for ld that supports -Wl,--gc-sections])
299 ], [ac_sectionLDflags=yes],[ac_sectionLFflags=no], [ac_sectionLDflags=yes])
300 if test "$ac_test_CFLAGS" = set; then
301 CFLAGS="$ac_save_CFLAGS"
303 # this is the suspicious part
306 if test "$ac_sectionLDflags" = "yes"; then
307 # SECTION_LDFLAGS='-Wl,--gc-sections'
311 AC_MSG_RESULT($ac_sectionLDflags)
313 OPT_LDFLAGS='-Wl,-O1'
316 AC_SUBST(SECTION_LDFLAGS)
317 AC_SUBST(OPT_LDFLAGS)
322 dnl Check to see if the (math function) argument passed is
323 dnl 1) declared when using the c++ compiler
324 dnl 2) has "C" linkage
326 dnl Define HAVE_CARGF etc if "cargf" is declared and links
328 dnl argument 1 is name of function to check
330 dnl ASSUMES argument is a math function with ONE parameter
332 dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1
333 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1, [
334 AC_MSG_CHECKING([for $1 declaration])
335 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
338 AC_TRY_COMPILE([#include <math.h>],
340 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
343 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
344 if test x$glibcpp_cv_func_$1_use = x"yes"; then
351 dnl Check to see if the (math function) argument passed is
352 dnl 1) declared when using the c++ compiler
353 dnl 2) has "C" linkage
355 dnl Define HAVE_CARGF etc if "cargf" is declared and links
357 dnl argument 1 is name of function to check
359 dnl ASSUMES argument is a math function with TWO parameters
361 dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2
362 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2, [
363 AC_MSG_CHECKING([for $1 declaration])
364 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
367 AC_TRY_COMPILE([#include <math.h>],
369 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
372 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
373 if test x$glibcpp_cv_func_$1_use = x"yes"; then
380 dnl Check to see if the (math function) argument passed is
381 dnl 1) declared when using the c++ compiler
382 dnl 2) has "C" linkage
384 dnl Define HAVE_CARGF etc if "cargf" is declared and links
386 dnl argument 1 is name of function to check
388 dnl ASSUMES argument is a math function with THREE parameters
390 dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3
391 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3, [
392 AC_MSG_CHECKING([for $1 declaration])
393 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
396 AC_TRY_COMPILE([#include <math.h>],
398 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
401 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
402 if test x$glibcpp_cv_func_$1_use = x"yes"; then
409 dnl Because the builtins are picky picky picky about the arguments they take,
410 dnl do an explict linkage tests here.
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
415 dnl Define HAVE_CARGF etc if "cargf" is declared and links
417 dnl argument 1 is name of function to check
419 dnl ASSUMES argument is a math function with ONE parameter
421 dnl GLIBCPP_CHECK_BUILTIN_MATH_DECL_LINKAGE_1
422 AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1, [
423 AC_MSG_CHECKING([for $1 declaration])
424 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
427 AC_TRY_COMPILE([#include <math.h>],
429 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
432 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
433 if test x$glibcpp_cv_func_$1_use = x"yes"; then
434 AC_MSG_CHECKING([for $1 linkage])
435 AC_CACHE_VAL(glibcpp_cv_func_$1_link, [
436 AC_TRY_LINK([#include <math.h>],
438 [glibcpp_cv_func_$1_link=yes], [glibcpp_cv_func_$1_link=no])
440 AC_MSG_RESULT($glibcpp_cv_func_$1_link)
441 if test x$glibcpp_cv_func_$1_link = x"yes"; then
442 ac_tr_func=HAVE_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
443 AC_DEFINE_UNQUOTED(${ac_tr_func})
450 dnl Check to see what builtin math functions are supported
452 dnl check for __builtin_abs
453 dnl check for __builtin_fabsf
454 dnl check for __builtin_fabs
455 dnl check for __builtin_fabl
456 dnl check for __builtin_labs
457 dnl check for __builtin_sqrtf
458 dnl check for __builtin_sqrtl
459 dnl check for __builtin_fsqrt
460 dnl check for __builtin_sinf
461 dnl check for __builtin_sin
462 dnl check for __builtin_sinl
463 dnl check for __builtin_cosf
464 dnl check for __builtin_cos
465 dnl check for __builtin_cosl
467 dnl GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT
468 AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT, [
469 dnl Test for builtin math functions.
470 dnl These are made in gcc/c-common.c
471 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_abs)
472 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabsf)
473 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabs)
474 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabsl)
475 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_labs)
477 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrtf)
478 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fsqrt)
479 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrtl)
481 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sinf)
482 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sin)
483 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sinl)
485 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cosf)
486 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cos)
487 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cosl)
489 dnl There is, without a doubt, a more elegant way to have these
490 dnl names exported so that they won't be stripped out of acconfig.h by
491 dnl autoheader. I leave this as an exercise to somebody less frustrated
492 dnl than I.... please email the libstdc++ list if you can figure out a
493 dnl more elegant approach (see autoconf/acgen.m4 and specifically
494 dnl AC_CHECK_FUNC for things to steal.)
496 if test x$dummyvar = x"yes"; then
497 AC_DEFINE(HAVE___BUILTIN_ABS)
498 AC_DEFINE(HAVE___BUILTIN_LABS)
499 AC_DEFINE(HAVE___BUILTIN_COS)
500 AC_DEFINE(HAVE___BUILTIN_COSF)
501 AC_DEFINE(HAVE___BUILTIN_COSL)
502 AC_DEFINE(HAVE___BUILTIN_FABS)
503 AC_DEFINE(HAVE___BUILTIN_FABSF)
504 AC_DEFINE(HAVE___BUILTIN_FABSL)
505 AC_DEFINE(HAVE___BUILTIN_SIN)
506 AC_DEFINE(HAVE___BUILTIN_SINF)
507 AC_DEFINE(HAVE___BUILTIN_SINL)
508 AC_DEFINE(HAVE___BUILTIN_FSQRT)
509 AC_DEFINE(HAVE___BUILTIN_SQRTF)
510 AC_DEFINE(HAVE___BUILTIN_SQRTL)
516 dnl Check to see what the underlying c library or math library is like.
517 dnl These checks need to do two things:
518 dnl 1) make sure the name is declared when using the c++ compiler
519 dnl 2) make sure the name has "C" linkage
520 dnl This might seem like overkill but experience has shown that it's not...
522 dnl Define HAVE_CARGF etc if "cargf" is found.
524 dnl GLIBCPP_CHECK_MATH_SUPPORT
525 AC_DEFUN(GLIBCPP_CHECK_MATH_SUPPORT, [
526 ac_test_CXXFLAGS="${CXXFLAGS+set}"
527 ac_save_CXXFLAGS="$CXXFLAGS"
528 CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
531 AC_CHECK_LIB(m, sin, libm="-lm")
535 dnl Although not math functions, needed and for some reason checked here.
536 AC_CHECK_FUNCS(strtof strtold)
538 dnl Check to see if certain C math functions exist.
539 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinf)
540 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnan)
541 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finite)
542 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(copysign)
543 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincos)
544 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fpclass)
545 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(qfpclass)
547 dnl Check to see if basic C math functions have float versions.
548 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnanf)
549 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinff)
550 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(acosf)
551 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(asinf)
552 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(atanf)
553 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(atan2f)
554 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(ceilf)
555 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(cosf)
556 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(coshf)
557 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(expf)
558 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsf)
559 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(floorf)
560 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodf)
561 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpf)
562 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpf)
563 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logf)
564 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10f)
565 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(modff)
566 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(powf)
567 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sinf)
568 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sinhf)
569 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtf)
570 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(tanf)
571 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(tanhf)
572 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincosf)
573 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finitef)
575 dnl Check to see if basic C math functions have long double versions.
576 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnanl)
577 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinfl)
578 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(copysignl)
579 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(acosl)
580 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(asinl)
581 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(atanl)
582 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(atan2l)
583 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(ceill)
584 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(cosl)
585 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(coshl)
586 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(expl)
587 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsl)
588 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(floorl)
589 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodl)
590 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpl)
591 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpl)
592 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logl)
593 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10l)
594 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(modfl)
595 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(powl)
596 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sinl)
597 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sinhl)
598 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtl)
599 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(tanl)
600 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(tanhl)
601 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincosl)
602 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finitel)
604 dnl Some runtimes have these functions with a preceding underscore. Please
605 dnl keep this sync'd with the one above. And if you add any new symbol,
606 dnl please add the corresponding block in the @BOTTOM@ section of acconfig.h.
607 dnl Check to see if certain C math functions exist.
608 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_isinf)
609 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_isnan)
610 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_finite)
611 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_copysign)
612 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(_sincos)
613 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_fpclass)
614 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_qfpclass)
616 dnl Check to see if basic C math functions have float versions.
617 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_isnanf)
618 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_isinff)
619 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_acosf)
620 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_asinf)
621 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_atanf)
622 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_atan2f)
623 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_ceilf)
624 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_cosf)
625 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_coshf)
626 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_expf)
627 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_fabsf)
628 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_floorf)
629 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_fmodf)
630 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_frexpf)
631 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_ldexpf)
632 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_logf)
633 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_log10f)
634 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_modff)
635 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_powf)
636 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_sinf)
637 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_sinhf)
638 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_sqrtf)
639 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_tanf)
640 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_tanhf)
641 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(_sincosf)
642 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_finitef)
644 dnl Check to see if basic C math functions have long double versions.
645 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_isnanl)
646 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_isinfl)
647 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_copysignl)
648 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_acosl)
649 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_asinl)
650 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_atanl)
651 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_atan2l)
652 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_ceill)
653 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_cosl)
654 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_coshl)
655 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_expl)
656 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_fabsl)
657 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_floorl)
658 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_fmodl)
659 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_frexpl)
660 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_ldexpl)
661 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_logl)
662 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_log10l)
663 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_modfl)
664 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_powl)
665 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_sinl)
666 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_sinhl)
667 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_sqrtl)
668 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_tanl)
669 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_tanhl)
670 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(_sincosl)
671 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_finitel)
674 CXXFLAGS="$ac_save_CXXFLAGS"
679 dnl Check to see if there is native support for complex
681 dnl Don't compile bits in math/* if native support exits.
683 dnl Define USE_COMPLEX_LONG_DOUBLE etc if "cargf" is found.
685 dnl GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT
686 AC_DEFUN(GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT, [
687 dnl Check for complex versions of math functions of platform.
688 AC_CHECK_HEADERS([complex.h])
689 AC_REPLACE_MATHFUNCS(ccos ccosf ccosh ccoshf cexp cexpf c_log c_logf \
690 clog10 clog10f cpow cpowf csin csinf csinh csinhf csqrt csqrtf \
691 ctan ctanf ctanh ctanhf carg cargf nan hypot hypotf atan2f expf copysignf)
693 dnl Compile the long double complex functions only if the function
694 dnl provides the non-complex long double functions that are needed.
695 dnl Currently this includes copysignl and atan2l, which should be
696 dnl cached from the GLIBCPP_CHECK_MATH_SUPPORT macro, above.
697 USE_COMPLEX_LONG_DOUBLE=no
698 if test x$ac_cv_func_atan2l = x"yes" \
699 && test x$ac_cv_func_copysignl = x"yes"; then
700 USE_COMPLEX_LONG_DOUBLE=yes
701 AC_REPLACE_MATHFUNCS(ccoshl ccosl cexpl cpowl csinhl csinl \
702 csqrtl ctanhl ctanl cargl hypotl signbitl c_logl clog10l)
705 AC_SUBST(USE_COMPLEX_LONG_DOUBLE)
709 dnl Check to see what architecture we are compiling for. Also, if
710 dnl architecture-specific flags are required for compilation, add them here.
712 dnl GLIBCPP_CHECK_CPU
713 AC_DEFUN(GLIBCPP_CHECK_CPU, [
714 AC_MSG_CHECKING([for cpu config directory])
715 # Currently unused, but could be useful.
717 case "${target_cpu}" in
719 cpu_include_dir="config/cpu/alpha"
722 cpu_include_dir="config/cpu/arm"
725 cpu_include_dir="config/cpu/ia64"
728 cpu_include_dir="config/cpu/i386"
730 i486 | i586 | i686 | i786)
731 cpu_include_dir="config/cpu/i486"
734 cpu_include_dir="config/cpu/powerpc"
736 sparc64 | ultrasparc)
737 cpu_include_dir="config/cpu/sparc/sparc64"
740 cpu_include_dir="config/cpu/sparc/sparc32"
743 cpu_include_dir="config/cpu/generic"
746 AC_MSG_RESULT($cpu_include_dir)
750 dnl Check to see what OS we are compiling for. Also, if os-specific flags
751 dnl are required for compilation, add them here.
754 AC_DEFUN(GLIBCPP_CHECK_OS, [
755 AC_MSG_CHECKING([for os config directory])
756 # Currently unused, but could be useful.
758 case "${target_os}" in
760 os_include_dir="config/os/aix"
763 os_include_dir="config/os/bsd"
766 os_include_dir="config/os/gnu-linux"
769 os_include_dir="config/os/irix"
772 os_include_dir="config/os/solaris/solaris2.5"
775 os_include_dir="config/os/solaris/solaris2.6"
777 solaris2.7* | solaris2.8*)
778 os_include_dir="config/os/solaris/solaris2.7"
781 os_include_dir="config/os/generic"
784 AC_MSG_RESULT($os_include_dir)
785 AC_LINK_FILES($os_include_dir/bits/os_defines.h, bits/os_defines.h)
790 dnl Check to see what the underlying c library's interface to ctype looks
791 dnl like. Bits of locale rely on things like isspace, toupper, etc. This
792 dnl stuff makes sure the right bits from the clibrary get called.
794 dnl Depending on what is found, select various configure/*/bits/ctype_base.h
795 dnl Depending on what is found, select various configure/*/ctype.cc
797 dnl GLIBCPP_CHECK_CTYPE
798 AC_DEFUN(GLIBCPP_CHECK_CTYPE, [
799 AC_CHECK_HEADER(ctype.h, [
801 dnl If doesn't match any specified, go with defaults.
804 dnl Test for <ctype> functionality -- GNU/Linux
805 AC_MSG_CHECKING([<ctype> for GNU/Linux])
806 AC_TRY_COMPILE([#include <ctype.h>],
809 { return _ISspace + _ISprint + _IScntrl + _ISupper + _ISlower + _ISalpha \
810 + _ISdigit + _ISpunct + _ISxdigit + _ISalnum + _ISgraph \
811 + __ctype_tolower[a] + __ctype_toupper[a] + __ctype_b[a];}], \
812 ctype_linux=yes, ctype_linux=no)
813 AC_MSG_RESULT($ctype_linux)
814 if test $ctype_linux = "yes"; then
815 ctype_include_dir="config/os/gnu-linux"
819 dnl Test for <ctype> functionality -- FreeBSD 4.0
820 if test $ctype_default = "yes"; then
821 AC_MSG_CHECKING([<ctype> for FreeBSD 4.0])
822 AC_TRY_COMPILE([#include <ctype.h>],
825 { return _CTYPE_S + _CTYPE_R + _CTYPE_C + _CTYPE_U + _CTYPE_L + _CTYPE_A \
826 + _CTYPE_D + _CTYPE_P + _CTYPE_X + _CTYPE_G ;}], \
827 ctype_bsd=yes, ctype_bsd=no)
828 AC_MSG_RESULT($ctype_bsd)
829 if test $ctype_bsd = "yes"; then
830 ctype_include_dir="config/os/bsd"
835 dnl Test for <ctype> functionality -- FreeBSD 3.4
836 if test $ctype_default = "yes"; then
837 AC_MSG_CHECKING([<ctype> for FreeBSD 3.4])
838 AC_TRY_COMPILE([#include <ctype.h>],
841 { return _S + _R + _C + _U + _L + _A \
842 + _D + _P + _X + _G + __istype (a, 0);}], \
843 ctype_freebsd34=yes, ctype_freebsd34=no)
844 AC_MSG_RESULT($ctype_freebsd34)
845 if test $ctype_freebsd34 = "yes"; then
846 ctype_include_dir="config/os/bsd"
851 dnl Test for <ctype> functionality -- Solaris 2.6 and up
852 if test $ctype_default = "yes"; then
853 AC_MSG_CHECKING([<ctype> for Solaris 2.6,7,8])
854 AC_TRY_COMPILE([#include <ctype.h>],
857 { return _ISSPACE + _ISPRINT + _ISCNTRL + _ISUPPER + _ISLOWER + _ISALPHA \
858 + _ISDIGIT + _ISPUNCT + _ISXDIGIT + _ISALNUM + _ISGRAPH \
859 + __trans_lower[a] + __trans_upper[a] + __ctype_mask[a];}], \
860 ctype_solaris=yes, ctype_solaris=no)
861 AC_MSG_RESULT($ctype_solaris)
863 if test $ctype_solaris = "yes"; then
864 AC_MSG_CHECKING([ for version])
866 AC_TRY_COMPILE([#include <ctype.h>],
867 [typedef long* __to_type; __to_type const& _M_toupper = __trans_upper;],\
868 ctype_solaris26=yes, ctype_solaris26=no)
870 if test $ctype_solaris26 = "yes"; then
871 ctype_include_dir="config/os/solaris/solaris2.6"
872 AC_MSG_RESULT([Solaris 2.6])
875 ctype_include_dir="config/os/solaris/solaris2.7"
876 AC_MSG_RESULT([Solaris 7,8])
882 dnl Test for <ctype> functionality -- Solaris 2.5.1
883 if test $ctype_default = "yes"; then
884 AC_MSG_CHECKING([<ctype> for Solaris 2.5.1])
885 AC_TRY_COMPILE([#include <ctype.h>],
888 { return _U + _L + _N + _S + _P + _C + _X + _B \
890 ctype_solaris25=yes, ctype_solaris25=no)
891 AC_MSG_RESULT($ctype_solaris25)
892 if test $ctype_solaris25 = "yes"; then
893 ctype_include_dir="config/os/solaris/solaris2.5"
898 dnl Test for <ctype> functionality -- AIX
899 if test $ctype_default = "yes"; then
900 AC_MSG_CHECKING([<ctype> for AIX])
901 AC_TRY_COMPILE([#include <ctype.h>],
904 { return _ISSPACE + _ISPRINT + _ISCNTRL + _ISUPPER + _ISLOWER + _ISALPHA \
905 + _ISDIGIT + _ISPUNCT + _ISXDIGIT + _ISALNUM + _ISGRAPH \
906 + _VALC('a') + _IS('c', 0);}], \
907 ctype_aix=yes, ctype_aix=no)
908 AC_MSG_RESULT($ctype_aix)
909 if test $ctype_aix = "yes"; then
910 ctype_include_dir="config/os/aix"
915 dnl Test for <ctype> functionality -- newlib
916 if test $ctype_default = "yes"; then
917 AC_MSG_CHECKING([<ctype> for newlib])
918 AC_TRY_COMPILE([#include <ctype.h>],
921 { return _U + _L + _N + _S + _P + _C + _X + _B \
923 ctype_newlib=yes, ctype_newlib=no)
924 AC_MSG_RESULT($ctype_newlib)
925 if test $ctype_newlib = "yes"; then
926 ctype_include_dir="config/newlib"
931 if test $ctype_default = "yes"; then
932 ctype_include_dir="config/os/generic"
933 AC_MSG_WARN("Using default ctype headers.")
936 AC_LINK_FILES($ctype_include_dir/bits/ctype_base.h, bits/ctype_base.h)
937 AC_LINK_FILES($ctype_include_dir/bits/ctype_inline.h, bits/ctype_inline.h)
938 AC_LINK_FILES($ctype_include_dir/bits/ctype_noninline.h, \
939 bits/ctype_noninline.h)
945 dnl Check to see if this target can enable the wchar_t parts of libstdc++.
947 dnl Define _GLIBCPP_USE_WCHAR_T if all the bits are found
948 dnl Define _GLIBCPP_NEED_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 Sanity check for existence of ISO C9X headers for extended encoding.
954 AC_CHECK_HEADER(wchar.h, ac_has_wchar_h=yes, ac_has_wchar_h=no)
955 AC_CHECK_HEADER(wctype.h, ac_has_wctype_h=yes, ac_has_wctype_h=no)
957 dnl Only continue checking if the ISO C9X headers exist.
958 if test x"$ac_has_wchar_h" = xyes && test x"$ac_has_wctype_h" = xyes; then
960 dnl Test wchar.h for mbstate_t, which is needed for char_traits and others.
961 AC_MSG_CHECKING([for mbstate_t])
962 AC_TRY_COMPILE([#include <wchar.h>],
963 [mbstate_t teststate;],
964 use_native_mbstatet=yes, use_native_mbstatet=no)
965 AC_MSG_RESULT($use_native_mbstatet)
966 if test x"$use_native_mbstatet" = xno; then
967 AC_DEFINE(_GLIBCPP_NEED_MBSTATE_T)
970 dnl Test wchar.h for WCHAR_MIN, WCHAR_MAX, which is needed before
971 dnl numeric_limits can instantiate type_traits<wchar_t>
972 AC_MSG_CHECKING([for WCHAR_MIN and WCHAR_MAX])
973 AC_TRY_COMPILE([#include <wchar.h>],
974 [int i = WCHAR_MIN; int j = WCHAR_MAX;],
975 has_wchar_minmax=yes, has_wchar_minmax=no)
976 AC_MSG_RESULT($has_wchar_minmax)
978 dnl Test wchar.h for WEOF, which is what we use to determine whether
979 dnl to specialize for char_traits<wchar_t> or not.
980 AC_MSG_CHECKING([for WEOF])
983 #include <stddef.h>],
985 has_weof=yes, has_weof=no)
986 AC_MSG_RESULT($has_weof)
988 dnl Tests for wide character functions used in char_traits<wchar_t>.
989 AC_CHECK_FUNCS(wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset \
990 wcsrtombs mbsrtowcs, ac_wfuncs=yes, ac_wfuncs=no)
992 AC_MSG_CHECKING([for ISO C9X wchar_t support])
993 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes \
994 && test x"$ac_wfuncs" = xyes; then
995 ac_isoC9X_wchar_t=yes
999 AC_MSG_RESULT($ac_isoC9X_wchar_t)
1001 dnl Use iconv for wchar_t to char conversions. As such, check for
1002 dnl X/Open Portability Guide, version 2 features (XPG2).
1003 AC_CHECK_HEADER(iconv.h, ac_has_iconv_h=yes, ac_has_iconv_h=no)
1004 AC_CHECK_HEADER(langinfo.h, ac_has_langinfo_h=yes, ac_has_langinfo_h=no)
1005 AC_CHECK_FUNCS(iconv_open iconv_close iconv nl_langinfo, \
1006 ac_XPG2funcs=yes, ac_XPG2funcs=no)
1008 AC_MSG_CHECKING([for XPG2 wchar_t support])
1009 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes \
1010 && test x"$ac_XPG2funcs" = xyes; then
1015 AC_MSG_RESULT($ac_XPG2_wchar_t)
1017 dnl At the moment, only enable wchar_t specializations if all the
1018 dnl above support is present.
1019 AC_MSG_CHECKING([for enabled wchar_t specializations])
1020 if test x"$ac_isoC9X_wchar_t" = xyes \
1021 && test x"$ac_XPG2_wchar_t" = xyes; then
1022 libinst_wstring_la="libinst-wstring.la"
1023 AC_DEFINE(_GLIBCPP_USE_WCHAR_T)
1024 AC_MSG_RESULT("yes")
1026 libinst_wstring_la=""
1029 AC_SUBST(libinst_wstring_la)
1032 AC_MSG_WARN([<wchar.h> not found])
1033 AC_DEFINE(_GLIBCPP_NEED_MBSTATE_T)
1039 dnl Check to see if this version of GNU C++ is afflicted by bugs in
1040 dnl __complex__ float support.
1042 dnl Define _GLIBCPP_BUGGY_FLOAT_COMPLEX if buggy.
1044 dnl Check to see if this version of GNU C++ is afflicted by bugs in
1045 dnl __complex__ support.Check for buggy __complex__ that will cause ICE in
1046 dnl gcc-2.95.x when using the library, unless we define the default copy
1047 dnl ctor in the specializations of complex<>.
1049 dnl Define _GLIBCPP_BUGGY_COMPLEX if buggy.
1050 dnl GLIBCPP_CHECK_COMPLEX_MATH_COMPILER_SUPPORT
1051 AC_DEFUN(GLIBCPP_CHECK_COMPLEX_MATH_COMPILER_SUPPORT, [
1052 AC_REQUIRE([AC_PROG_CXX])
1054 AC_MSG_CHECKING([for GNU C++ __complex__ support])
1055 AC_CACHE_VAL(glibcpp_cv_complex, [
1058 AC_TRY_COMPILE([struct dcomplex { __complex__ double x; }; \
1059 dcomplex f(const dcomplex& x) { return dcomplex(x); }], \
1060 [ dcomplex x; f(x); ],
1061 glibcpp_cv_complex=ok,
1062 glibcpp_cv_complex=buggy
1066 AC_MSG_RESULT($glibcpp_cv_complex)
1067 if test $glibcpp_cv_complex = buggy; then
1068 AC_DEFINE(_GLIBCPP_BUGGY_COMPLEX)
1071 AC_MSG_CHECKING([for GNU C++ __complex__ float support])
1072 AC_CACHE_VAL(glibcpp_cv_float_complex, [
1076 cat > conftest.h <<EOB
1078 // Check for buggy __complex__ that causes ICE in most versions of egcs
1079 // and gcc-2.95.x on certain platforms (eg., x86-win32).
1081 // See http://egcs.cygnus.com/ml/gcc-bugs/1999-07/msg00845.html for
1082 // more info on the bug itself.
1087 __complex__ float m_value;
1088 float_complex (float = 0.0f, float = 0.0f);
1089 float_complex (__complex__ float val) : m_value (val) {}
1090 float_complex foo (const float_complex &val)
1091 { return float_complex (~val.m_value); }
1094 AC_TRY_COMPILE([#include "conftest.h"], ,
1095 glibcpp_cv_float_complex=ok,
1096 glibcpp_cv_float_complex=buggy
1100 AC_MSG_RESULT($glibcpp_cv_float_complex)
1101 if test $glibcpp_cv_float_complex = buggy; then
1102 AC_DEFINE(_GLIBCPP_BUGGY_FLOAT_COMPLEX)
1108 dnl Check for special debugging mode; not for production use.
1110 dnl GLIBCPP_ENABLE_DEBUG
1111 dnl --enable-debug sets '-ggdb -O0'.
1112 dnl --disable-debug sets '-g' and whatever optimization options the
1113 dnl compiler can handle.
1114 dnl + --enable-maintainer-mode automatically defaults this to on.
1115 dnl + Perhaps -D/-U of NDEBUG, DEBUG, DEBUG_ASSERT, ...?
1116 dnl + Usage: GLIBCPP_ENABLE_DEBUG[(DEFAULT)]
1117 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
1118 dnl defaults to `no'.
1119 AC_DEFUN(GLIBCPP_ENABLE_DEBUG, [dnl
1120 define([GLIBCPP_ENABLE_DEBUG_DEFAULT], ifelse($1, yes, yes, no))dnl
1121 AC_ARG_ENABLE(debug,
1122 changequote(<<, >>)dnl
1123 << --enable-debug extra debugging, turn off optimization [default=>>GLIBCPP_ENABLE_DEBUG_DEFAULT],
1124 changequote([, ])dnl
1125 [case "${enableval}" in
1126 yes) enable_debug=yes ;;
1127 no) enable_debug=no ;;
1128 *) AC_MSG_ERROR([Unknown argument to enable/disable extra debugging]) ;;
1130 enable_debug=GLIBCPP_ENABLE_DEBUG_DEFAULT)dnl
1132 dnl Option parsed, now set things appropriately
1133 case "${enable_debug}" in
1135 DEBUG_FLAGS='-O0 -ggdb'
1141 AC_SUBST(DEBUG_FLAGS)
1146 dnl Check for "unusual" flags to pass to the compiler while building.
1148 dnl GLIBCPP_ENABLE_CXX_FLAGS
1149 dnl --enable-cxx-flags='-foo -bar -baz' is a general method for passing
1150 dnl experimental flags such as -fhonor-std, -fsquangle, -Dfloat=char, etc.
1151 dnl Somehow this same set of flags must be passed when [re]building
1153 dnl --disable-cxx-flags passes nothing.
1154 dnl + See http://sourceware.cygnus.com/ml/libstdc++/2000-q2/msg00131.html
1155 dnl http://sourceware.cygnus.com/ml/libstdc++/2000-q2/msg00284.html
1156 dnl http://sourceware.cygnus.com/ml/libstdc++/2000-q1/msg00035.html
1157 dnl + Usage: GLIBCPP_ENABLE_CXX_FLAGS(default flags)
1158 dnl If "default flags" is an empty string (or "none"), the effect is
1159 dnl the same as --disable or --enable=no.
1160 AC_DEFUN(GLIBCPP_ENABLE_CXX_FLAGS, [dnl
1161 define([GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT], ifelse($1,,, $1))dnl
1162 AC_ARG_ENABLE(cxx-flags,
1163 changequote(<<, >>)dnl
1164 << --enable-cxx-flags=FLAGS pass compiler FLAGS when building library;
1165 [default=>>GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT],
1166 changequote([, ])dnl
1167 [case "x$enableval" in
1169 AC_MSG_ERROR([--enable-cxx-flags needs compiler flags as arguments]) ;;
1171 enable_cxx_flags='' ;;
1173 enable_cxx_flags="$enableval" ;;
1175 enable_cxx_flags='GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT')
1177 dnl Thinko on my part during design. This kludge is the workaround.
1178 if test "$enable_cxx_flags" = "none"; then
1179 enable_cxx_flags='';
1182 dnl Run through flags (either default or command-line) and set anything
1183 dnl extra (e.g., #defines) that must accompany particular g++ options.
1184 if test -n "$enable_cxx_flags"; then
1185 for f in $enable_cxx_flags; do
1189 *) # and we're trying to pass /what/ exactly?
1190 AC_MSG_ERROR([compiler flags start with a -]) ;;
1194 EXTRA_CXX_FLAGS="$enable_cxx_flags"
1195 AC_SUBST(EXTRA_CXX_FLAGS)
1200 dnl Check for which I/O library to use: libio, or something specific.
1202 dnl GLIBCPP_ENABLE_CSTDIO
1203 dnl --enable-cstdio=libio sets config/c_io_libio.h and friends
1205 dnl default is libio
1207 AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [
1208 AC_MSG_CHECKING([for cstdio to use])
1209 AC_ARG_ENABLE(cstdio,
1210 [ --enable-cstdio enable GNU libio for target io package. (default)
1211 --enable-cstdio=LIB use LIB target-speific io package.],
1212 if test x$enable_cstdio = xno; then
1215 enable_cstdio=libio)
1217 enable_cstdio_flag=$enable_cstdio
1219 dnl Check if a valid thread package
1220 case x${enable_cstdio_flag} in
1221 xlibio | x | xno | xnone | xyes)
1223 CSTDIO_H=config/c_io_libio.h
1224 CSTDIO_CC=config/c_io_libio.cc
1225 AC_MSG_RESULT(libio)
1227 # see if we are on a system with libio native (ie, linux)
1228 AC_CHECK_HEADER(libio.h, has_libio=yes, has_libio=no)
1230 # Need to check and see what version of glibc is being used. If
1231 # it's not glibc-2.2 or higher, then we'll need to go ahead and
1232 # compile most of libio for linux systems.
1233 if test x$has_libio = x"yes"; then
1236 AC_MSG_CHECKING([for glibc version >= 2.2])
1237 AC_EGREP_CPP([ok], [
1238 #include <features.h>
1239 #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
1242 ], glibc_satisfactory=yes, glibc_satisfactory=no)
1243 AC_MSG_RESULT($glibc_satisfactory)
1247 # XXX at the moment, admit defeat and force the recompilation
1248 # XXX of glibc even on glibc-2.2 systems, because libio is not synched.
1249 glibc_satisfactory=no
1251 if test x$glibc_satisfactory = x"yes"; then
1258 # bkoz XXX need to add checks to enable this
1262 # Using libio, but <libio.h> doesn't exist on the target system. . .
1266 # bkoz XXX need to add checks to enable this
1272 CSTDIO_H=config/c_io_wince.h
1273 CSTDIO_CC=config/c_io_wince.cc
1274 AC_MSG_RESULT(wince)
1279 echo "$enable_cstdio is an unknown io package" 1>&2
1283 AC_LINK_FILES($CSTDIO_H, bits/c++io.h)
1284 AC_LINK_FILES($CSTDIO_CC, src/c++io.cc)
1286 # 2000-08-04 bkoz hack
1287 CCODECVT_C=config/c_io_libio_codecvt.c
1288 AC_LINK_FILES($CCODECVT_C, libio/c_codecvt.c)
1289 # 2000-08-04 bkoz hack
1291 AM_CONDITIONAL(GLIBCPP_NEED_LIBIO, test "$need_libio" = yes)
1292 AM_CONDITIONAL(GLIBCPP_NEED_XTRA_LIBIO, test "$need_xtra_libio" = yes)
1293 AM_CONDITIONAL(GLIBCPP_NEED_WLIBIO, test "$need_wlibio" = yes)
1298 dnl Check for which threading library to use.
1300 dnl GLIBCPP_ENABLE_THREADS
1301 dnl --enable-threads=posix sets config/threads-posix.h et. al.
1303 dnl default is no threads
1305 AC_DEFUN(GLIBCPP_ENABLE_THREADS, [
1306 dnl Note this comes from the gcc/config.in and libjava/config.in
1307 dnl Efforts should be made to keep this in sync.
1308 AC_MSG_CHECKING([for threads package to use])
1309 AC_ARG_ENABLE(threads,
1310 [ --enable-threads enable thread usage for target GCC.
1311 --enable-threads=LIB use LIB thread package for target GCC.],
1312 if test x$enable_threads = xno; then
1317 enable_threads_flag=$enable_threads
1319 dnl Check if a valid thread package
1320 case x${enable_threads_flag} in
1323 target_thread_file='single'
1327 target_thread_file=''
1329 xdecosf1 | xirix | xmach | xos2 | xposix | xpthreads | xsingle | \
1330 xsolaris | xwin32 | xdce | xvxworks)
1331 target_thread_file=$enable_threads_flag
1334 echo "$enable_threads is an unknown thread package" 1>&2
1339 dnl Check for thread package actually supported in libstdc++
1341 case "$target_thread_file" in
1343 THREADH=threads-no.h
1346 THREADH=threads-posix.h
1348 decosf1 | irix | mach | os2 | solaris | win32 | dce | vxworks)
1349 AC_MSG_ERROR(thread package $THREADS not yet supported)
1352 AC_MSG_ERROR($THREADS is an unknown thread package)
1355 AC_MSG_RESULT($THREADH)
1357 AC_LINK_FILES(config/$THREADH, bits/c++threads.h)
1361 dnl Enable atomic locking
1362 dnl GLIBCPP_ENABLE_ATOMICITY
1363 AC_DEFUN(GLIBCPP_ENABLE_ATOMICITY, [
1364 AC_MSG_CHECKING([for atomicity.h])
1367 ATOMICITYH=$cpu_include_dir
1370 ATOMICITYH=$os_include_dir
1373 echo "$enable_threads is an unknown thread package" 1>&2
1377 AC_MSG_RESULT($ATOMICITYH/bits/atomicity.h)
1378 AC_LINK_FILES($ATOMICITYH/bits/atomicity.h, bits/atomicity.h)
1383 dnl Check for template specializations for the 'long long' type extension.
1385 dnl GLIBCPP_ENABLE_LONG_LONG
1386 dnl --enable-long-long defines _GLIBCPP_USE_LONG_LONG
1387 dnl --disable-long-long leaves _GLIBCPP_USE_LONG_LONG undefined
1388 dnl + Usage: GLIBCPP_ENABLE_LONG_LONG[(DEFAULT)]
1389 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
1390 dnl defaults to `no'.
1391 dnl + If 'long long' stuff is not available, ignores DEFAULT and sets `no'.
1393 dnl GLIBCPP_ENABLE_LONG_LONG
1394 AC_DEFUN(GLIBCPP_ENABLE_LONG_LONG, [dnl
1395 define([GLIBCPP_ENABLE_LONG_LONG_DEFAULT], ifelse($1, yes, yes, no))dnl
1397 AC_ARG_ENABLE(long-long,
1398 changequote(<<, >>)dnl
1399 <<--enable-long-long turns on 'long long' [default=>>GLIBCPP_ENABLE_LONG_LONG_DEFAULT],
1400 changequote([, ])dnl
1401 [case "$enableval" in
1402 yes) enable_long_long=yes ;;
1403 no) enable_long_long=no ;;
1404 *) AC_MSG_ERROR([Unknown argument to enable/disable long long]) ;;
1406 enable_long_long=GLIBCPP_ENABLE_LONG_LONG_DEFAULT)dnl
1408 # Check for the existance of functions used if long long is enabled.
1409 AC_CHECK_FUNC(strtoll,,ac_strtoll=no)
1410 AC_CHECK_FUNC(strtoull,,ac_strtoull=no)
1412 AC_MSG_CHECKING([for enabled long long])
1413 if test x"$ac_strtoll" = xno || test x"$ac_strtoull" = xno; then
1414 enable_long_long=no;
1416 AC_MSG_RESULT($enable_long_long)
1418 dnl Option parsed, now set things appropriately
1419 case "$enable_long_long" in
1420 yes) AC_DEFINE(_GLIBCPP_USE_LONG_LONG)
1427 dnl Check for whether or not to do shadowed C headers.
1429 dnl GLIBCPP_ENABLE_SHADOW
1430 dnl --enable-cshadow-headers [does stuff].
1431 dnl --disable-cshadow-headers [does not do stuff].
1432 dnl + This will eventually need to be on by default.
1433 dnl + Usage: GLIBCPP_ENABLE_SHADOW[(DEFAULT)]
1434 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
1435 dnl defaults to `no'.
1436 AC_DEFUN(GLIBCPP_ENABLE_SHADOW, [dnl
1437 define([GLIBCPP_ENABLE_SHADOW_DEFAULT], ifelse($1, yes, yes, no))dnl
1438 AC_MSG_CHECKING([for enabled cshadow headers])
1439 AC_ARG_ENABLE(cshadow-headers,
1440 changequote(<<, >>)dnl
1441 << --enable-cshadow-headers construct "shadowed" C header files for
1442 g++ [default=>>GLIBCPP_ENABLE_SHADOW_DEFAULT],
1444 [case "$enableval" in
1445 yes) enable_cshadow_headers=yes
1447 no) enable_cshadow_headers=no
1449 *) AC_MSG_ERROR([Unknown argument to enable/disable shadowed C headers])
1452 enable_cshadow_headers=GLIBCPP_ENABLE_SHADOW_DEFAULT)
1453 AC_MSG_RESULT($enable_cshadow_headers)
1455 dnl Option parsed, now set things appropriately
1456 dnl NB: these things may be duplicated in c++config.h as well.
1457 case "$enable_cshadow_headers" in
1459 CSHADOW_FLAGS="-fno-builtin"
1460 C_INCLUDE_DIR='$(top_srcdir)/include/c_std'
1461 AC_DEFINE(_GLIBCPP_USE_SHADOW_HEADERS)
1465 C_INCLUDE_DIR='$(top_srcdir)/include/c'
1469 AC_SUBST(CSHADOW_FLAGS)
1470 AC_SUBST(C_INCLUDE_DIR)
1471 AM_CONDITIONAL(GLIBCPP_USE_CSHADOW, test "$enable_cshadow_headers" = yes)
1475 dnl Set up *_INCLUDES and *_INCLUDE_DIR variables for all sundry Makefile.am's.
1477 dnl GLIBCPP_INCLUDE_DIR
1479 dnl TOPLEVEL_INCLUDES
1480 dnl LIBMATH_INCLUDES
1481 dnl LIBSUPCXX_INCLUDES
1483 dnl CSHADOW_INCLUDES
1485 dnl GLIBCPP_EXPORT_INCLUDE
1486 AC_DEFUN(GLIBCPP_EXPORT_INCLUDES, [
1487 # Root level of the include sources.
1488 GLIBCPP_INCLUDE_DIR='$(top_srcdir)/include'
1490 # Can either use include/c or include/c_std to grab "C" headers. This
1491 # variable is set to the include directory currently in use.
1492 # set with C_INCLUDE_DIR in GLIBCPP_ENABLE_SHADOW
1494 # Passed down for cross compilers, canadian crosses.
1495 TOPLEVEL_INCLUDES='-I$(includedir)'
1497 LIBMATH_INCLUDES='-I$(top_srcdir)/libmath'
1499 LIBSUPCXX_INCLUDES='-I$(top_srcdir)/libsupc++'
1501 #if GLIBCPP_NEED_LIBIO
1502 LIBIO_INCLUDES='-I$(top_builddir)/libio -I$(top_srcdir)/libio'
1504 #LIBIO_INCLUDES='-I$(top_srcdir)/libio'
1507 #if GLIBCPP_USE_CSHADOW
1508 # CSHADOW_INCLUDES='-I$(GLIBCPP_INCLUDE_DIR)/std -I$(C_INCLUDE_DIR) \
1509 # -I$(top_blddir)/cshadow'
1511 CSHADOW_INCLUDES='-I$(GLIBCPP_INCLUDE_DIR)/std -I$(C_INCLUDE_DIR)'
1514 # Now, export this to all the little Makefiles....
1515 AC_SUBST(GLIBCPP_INCLUDE_DIR)
1516 AC_SUBST(TOPLEVEL_INCLUDES)
1517 AC_SUBST(LIBMATH_INCLUDES)
1518 AC_SUBST(LIBSUPCXX_INCLUDES)
1519 AC_SUBST(LIBIO_INCLUDES)
1520 AC_SUBST(CSHADOW_INCLUDES)
1525 dnl Set up *_FLAGS and *FLAGS variables for all sundry Makefile.am's.
1527 AC_DEFUN(GLIBCPP_EXPORT_FLAGS, [
1528 # Optimization flags that are probably a good idea for thrill-seekers. Just
1529 # uncomment the lines below and make, everything else is ready to go...
1530 # OPTIMIZE_CXXFLAGS = -O3 -fstrict-aliasing -fvtable-gc
1532 AC_SUBST(OPTIMIZE_CXXFLAGS)
1534 WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings -Winline'
1535 AC_SUBST(WARN_FLAGS)
1539 # Check whether LC_MESSAGES is available in <locale.h>.
1540 # Ulrich Drepper <drepper@cygnus.com>, 1995.
1542 # This file file be copied and used freely without restrictions. It can
1543 # be used in projects which are not available under the GNU Public License
1544 # but which still want to provide support for the GNU gettext functionality.
1545 # Please note that the actual code is *not* freely available.
1549 AC_DEFUN(AC_LC_MESSAGES,
1550 [if test $ac_cv_header_locale_h = yes; then
1551 AC_CACHE_CHECK([for LC_MESSAGES], ac_cv_val_LC_MESSAGES,
1552 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
1553 ac_cv_val_LC_MESSAGES=yes, ac_cv_val_LC_MESSAGES=no)])
1554 if test $ac_cv_val_LC_MESSAGES = yes; then
1555 AC_DEFINE(HAVE_LC_MESSAGES)
1560 # Check for functions in math library.
1561 # Ulrich Drepper <drepper@cygnus.com>, 1998.
1563 # This file can be copied and used freely without restrictions. It can
1564 # be used in projects which are not available under the GNU Public License
1565 # but which still want to provide support for the GNU gettext functionality.
1566 # Please note that the actual code is *not* freely available.
1570 dnl AC_REPLACE_MATHFUNCS(FUNCTION...)
1571 AC_DEFUN(AC_REPLACE_MATHFUNCS,
1572 [AC_CHECK_FUNCS([$1], , [LIBMATHOBJS="$LIBMATHOBJS ${ac_func}.lo"])
1573 AC_SUBST(LIBMATHOBJS)dnl
1577 # Check for string functions.
1578 # Ulrich Drepper <drepper@cygnus.com>, 1998.
1580 # This file can be copied and used freely without restrictions. It can
1581 # be used in projects which are not available under the GNU Public License
1582 # but which still want to provide support for the GNU gettext functionality.
1583 # Please note that the actual code is *not* freely available.
1587 dnl AC_REPLACE_STRINGFUNCS(FUNCTION...)
1588 AC_DEFUN(AC_REPLACE_STRINGFUNCS,
1589 [AC_CHECK_FUNCS([$1], , [LIBSTRINGOBJS="$LIBSTRINGOBJS ${ac_func}.lo"])
1590 AC_SUBST(LIBSTRINGOBJS)dnl
1594 dnl This macro searches for a GNU version of make. If a match is found, the
1595 dnl makefile variable `ifGNUmake' is set to the empty string, otherwise it is
1596 dnl set to "#". This is useful for including a special features in a Makefile,
1597 dnl which cannot be handled by other versions of make. The variable
1598 dnl _cv_gnu_make_command is set to the command to invoke GNU make if it exists,
1599 dnl the empty string otherwise.
1601 dnl Here is an example of its use:
1603 dnl Makefile.in might contain:
1605 dnl # A failsafe way of putting a dependency rule into a makefile
1607 dnl $(CC) -MM $(srcdir)/*.c > $(DEPEND)
1609 dnl @ifGNUmake@ ifeq ($(DEPEND),$(wildcard $(DEPEND)))
1610 dnl @ifGNUmake@ include $(DEPEND)
1611 dnl @ifGNUmake@ endif
1613 dnl Then configure.in would normally contain:
1615 dnl CHECK_GNU_MAKE()
1616 dnl AC_OUTPUT(Makefile)
1618 dnl Then perhaps to cause gnu make to override any other make, we could do
1619 dnl something like this (note that GNU make always looks for GNUmakefile first):
1621 dnl if ! test x$_cv_gnu_make_command = x ; then
1622 dnl mv Makefile GNUmakefile
1623 dnl echo .DEFAULT: > Makefile ;
1624 dnl echo \ $_cv_gnu_make_command \$@ >> Makefile;
1627 dnl Then, if any (well almost any) other make is called, and GNU make also
1628 dnl exists, then the other make wraps the GNU make.
1630 dnl @author John Darrington <j.darrington@elvis.murdoch.edu.au>
1631 dnl @version 1.1 #### replaced Id string now that Id is for lib-v3; pme
1633 dnl #### Changes for libstdc++-v3: reformatting and linewrapping; prepending
1634 dnl #### GLIBCPP_ to the macro name; adding the :-make fallback in the
1635 dnl #### conditional's subshell (" --version" is not a command), using a
1636 dnl #### different option to grep(1).
1639 GLIBCPP_CHECK_GNU_MAKE, [AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command,
1640 _cv_gnu_make_command='' ;
1641 dnl Search all the common names for GNU make
1642 for a in "${MAKE:-make}" make gmake gnumake ; do
1643 if ( $a --version 2> /dev/null | grep -c GNU )
1645 _cv_gnu_make_command=$a ;
1650 dnl If there was a GNU version, then set @ifGNUmake@ to the empty
1651 dnl string, '#' otherwise
1652 if test "x$_cv_gnu_make_command" != "x" ; then
1660 sinclude(../libtool.m4)
1661 dnl The lines below arrange for aclocal not to bring an installed
1662 dnl libtool.m4 into aclocal.m4, while still arranging for automake to
1663 dnl add a definition of LIBTOOL to Makefile.in.
1664 ifelse(,,,[AC_SUBST(LIBTOOL)
1665 AC_DEFUN([AM_PROG_LIBTOOL])
1666 AC_DEFUN([AC_LIBTOOL_DLOPEN])
1667 AC_DEFUN([AC_PROG_LD])
1671 # Do all the work for Automake. This macro actually does too much --
1672 # some checks are only needed if your package does certain things.
1673 # But this isn't really a big deal.
1678 dnl AM_INIT_AUTOMAKE(package,version, [no-define])
1680 AC_DEFUN(AM_INIT_AUTOMAKE,
1681 [AC_REQUIRE([AC_PROG_INSTALL])
1686 dnl test to see if srcdir already configured
1687 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
1688 AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
1691 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
1692 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
1693 AC_REQUIRE([AM_SANITY_CHECK])
1694 AC_REQUIRE([AC_ARG_PROGRAM])
1695 dnl FIXME This is truly gross.
1696 missing_dir=`cd $ac_aux_dir && pwd`
1697 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
1698 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
1699 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
1700 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
1701 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
1702 AC_REQUIRE([AC_PROG_MAKE_SET])])
1705 # Check to make sure that the build environment is sane.
1708 AC_DEFUN(AM_SANITY_CHECK,
1709 [AC_MSG_CHECKING([whether build environment is sane])
1712 echo timestamp > conftestfile
1713 # Do `set' in a subshell so we don't clobber the current shell's
1714 # arguments. Must try -L first in case configure is actually a
1715 # symlink; some systems play weird games with the mod time of symlinks
1716 # (eg FreeBSD returns the mod time of the symlink's containing
1719 set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
1720 if test "[$]*" = "X"; then
1722 set X `ls -t $srcdir/configure conftestfile`
1724 if test "[$]*" != "X $srcdir/configure conftestfile" \
1725 && test "[$]*" != "X conftestfile $srcdir/configure"; then
1727 # If neither matched, then we have a broken ls. This can happen
1728 # if, for instance, CONFIG_SHELL is bash and it inherits a
1729 # broken ls alias from the environment. This has actually
1730 # happened. Such a system could not be considered "sane".
1731 AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
1732 alias in your environment])
1735 test "[$]2" = conftestfile
1741 AC_MSG_ERROR([newly created file is older than distributed files!
1742 Check your system clock])
1745 AC_MSG_RESULT(yes)])
1747 dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
1748 dnl The program must properly implement --version.
1749 AC_DEFUN(AM_MISSING_PROG,
1750 [AC_MSG_CHECKING(for working $2)
1751 # Run test in a subshell; some versions of sh will print an error if
1752 # an executable is not found, even if stderr is redirected.
1753 # Redirect stdin to placate older versions of autoconf. Sigh.
1754 if ($2 --version) < /dev/null > /dev/null 2>&1; then
1756 AC_MSG_RESULT(found)
1759 AC_MSG_RESULT(missing)
1763 # Add --enable-maintainer-mode option to configure.
1768 AC_DEFUN(AM_MAINTAINER_MODE,
1769 [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
1770 dnl maintainer-mode is disabled by default
1771 AC_ARG_ENABLE(maintainer-mode,
1772 [ --enable-maintainer-mode enable make rules and dependencies not useful
1773 (and sometimes confusing) to the casual installer],
1774 USE_MAINTAINER_MODE=$enableval,
1775 USE_MAINTAINER_MODE=no)
1776 AC_MSG_RESULT($USE_MAINTAINER_MODE)
1777 AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
1778 MAINT=$MAINTAINER_MODE_TRUE
1783 # Define a conditional.
1785 AC_DEFUN(AM_CONDITIONAL,
1796 # Like AC_CONFIG_HEADER, but automatically create stamp file.
1798 AC_DEFUN(AM_CONFIG_HEADER,
1800 AC_CONFIG_HEADER([$1])
1801 dnl When config.status generates a header, we must update the stamp-h file.
1802 dnl This file resides in the same directory as the config header
1803 dnl that is generated. We must strip everything past the first ":",
1804 dnl and everything past the last "/".
1805 AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
1806 ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
1807 <<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
1809 for am_file in <<$1>>; do
1810 case " <<$>>CONFIG_HEADERS " in
1811 *" <<$>>am_file "*<<)>>
1812 echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
1815 am_indx=`expr "<<$>>am_indx" + 1`