2 dnl Initialize configure bits.
4 dnl Define OPTLEVEL='-O2' if new inlining code present.
7 AC_DEFUN(GLIBCPP_CONFIGURE, [
8 dnl Default to --enable-multilib
9 AC_ARG_ENABLE(multilib,
10 [ --enable-multilib build hella library versions (default)],
11 [case "${enableval}" in
14 *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
15 esac], [multilib=yes])dnl
17 dnl We may get other options which we dont document:
18 dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
19 if test "[$]{srcdir}" = "."; then
20 if test "[$]{with_target_subdir}" != "."; then
21 glibcpp_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1"
23 glibcpp_basedir="[$]{srcdir}/[$]{with_multisrctop}$1"
26 glibcpp_basedir="[$]{srcdir}/$1"
28 AC_SUBST(glibcpp_basedir)
30 AM_INIT_AUTOMAKE(libstdc++, 2.90.8)
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 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++, gcc)
92 test -z "$CXX" && AC_MSG_ERROR([no acceptable c++ found in \$PATH])
96 if test $ac_cv_prog_gxx = yes; then
98 dnl Check whether -g works, even if CXXFLAGS is set, in case the package
99 dnl plays around with CXXFLAGS (such as to build both debugging and
100 dnl normal versions of a library), tasteless as that idea is.
101 ac_test_CXXFLAGS="${CXXFLAGS+set}"
102 ac_save_CXXFLAGS="$CXXFLAGS"
105 if test "$ac_test_CXXFLAGS" = set; then
106 CXXFLAGS="$ac_save_CXXFLAGS"
107 elif test $ac_cv_prog_cxx_g = yes; then
114 test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
120 AC_CHECK_TOOL(AS, as)
121 AC_CHECK_TOOL(AR, ar)
122 AC_CHECK_TOOL(RANLIB, ranlib, :)
128 # We need AC_EXEEXT to keep automake happy in cygnus mode. However,
129 # at least currently, we never actually build a program, so we never
130 # need to use $(EXEEXT). Moreover, the test for EXEEXT normally
131 # fails, because we are probably configuring with a cross compiler
132 # which cant create executables. So we include AC_EXEEXT to keep
133 # automake happy, but we dont execute it, since we dont care about
139 # configure.host sets the following important variables
140 # glibcpp_cflags - host specific C compiler flags
141 # glibcpp_cxxflags - host specific C++ compiler flags
145 . [$]{glibcpp_basedir}/configure.host
147 case [$]{glibcpp_basedir} in
148 /* | [A-Za-z]:[/\\]*) libgcj_flagbasedir=[$]{glibcpp_basedir} ;;
149 *) glibcpp_flagbasedir='[$](top_builddir)/'[$]{glibcpp_basedir} ;;
152 GLIBCPP_CFLAGS="[$]{glibcpp_cflags}"
153 GLIBCPP_CXXFLAGS="[$]{glibcpp_cxxflags}"
154 AC_SUBST(GLIBCPP_CFLAGS)
155 AC_SUBST(GLIBCPP_CXXFLAGS)
160 dnl Check to see if g++ can compile this library, and if so, if any version-
161 dnl specific precautions need to be taken.
163 dnl GLIBCPP_CHECK_COMPILER_VERSION
164 AC_DEFUN(GLIBCPP_CHECK_COMPILER_VERSION, [
165 # Sanity check that g++ is capable of dealing with v-3.
166 AC_MSG_CHECKING([for g++ that will successfully compile this code])
168 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
171 ], gpp_satisfactory=yes, AC_MSG_ERROR([please upgrade to gcc-2.95 or above]))
172 AC_MSG_RESULT($gpp_satisfactory)
177 dnl Test for newer compiler features, or features that are present in newer
178 dnl compiler version but not older compiler versions should be placed
181 dnl Define WFMT_FLAGS='-fdiagnostics-show-location=once' if possible
183 dnl Define WERROR='-Werror' if requested and possible; g++'s that lack the
184 dnl new inlining code or the new system_header pragma will die on -Werror.
185 dnl Leave it out by default and use maint-mode to use it.
187 dnl Define SECTION_FLAGS='-ffunction-sections -fdata-sections' if
188 dnl compiler supports it.
189 dnl GLIBCPP_CHECK_COMPILER_FEATURES
190 AC_DEFUN(GLIBCPP_CHECK_COMPILER_FEATURES, [
191 # All these tests are for C++; save the language and the compiler flags.
192 # The CXXFLAGS thing is suspicious, but based on similar bits
193 # found in GLIBCPP_CONFIGURE.
196 ac_test_CXXFLAGS="${CXXFLAGS+set}"
197 ac_save_CXXFLAGS="$CXXFLAGS"
199 # Check for maintainer-mode bits.
200 if test x"$USE_MAINTAINER_MODE" = xno; then
206 # Check for more sophisticated diagnostic control.
207 AC_MSG_CHECKING([for g++ that supports -fdiagnostics-show-location=once])
208 CXXFLAGS='-Werror -fdiagnostics-show-location=once'
209 AC_TRY_COMPILE(, [int foo;
210 ], [ac_gabydiags=yes], [ac_gabydiags=no])
211 if test "$ac_test_CXXFLAGS" = set; then
212 CXXFLAGS="$ac_save_CXXFLAGS"
214 # this is the suspicious part
217 if test "$ac_gabydiags" = "yes"; then
218 WFMT_FLAGS='-fdiagnostics-show-location=once'
220 AC_MSG_RESULT($ac_gabydiags)
222 # Check for -ffunction-sections -fdata-sections
223 AC_MSG_CHECKING([for g++ that supports -ffunction-sections -fdata-sections])
224 CXXFLAGS='-Werror -ffunction-sections -fdata-sections'
225 AC_TRY_COMPILE(, [int foo;
226 ], [ac_fdsections=yes], [ac_fdsections=no])
227 if test "$ac_test_CXXFLAGS" = set; then
228 CXXFLAGS="$ac_save_CXXFLAGS"
230 # this is the suspicious part
233 if test "$ac_fdsections" = "yes"; then
234 SECTION_FLAGS='-ffunction-sections -fdata-sections'
236 AC_MSG_RESULT($ac_fdsections)
241 AC_SUBST(SECTION_FLAGS)
246 dnl If GNU ld is in use, check to see if tricky linker opts can be used. If
247 dnl the native linker is in use, all variables will be defined to something
248 dnl safe (like an empty string).
250 dnl Define SECTION_LDFLAGS='-Wl,--gc-sections' if possible.
251 dnl Define OPT_LDFLAGS='-Wl,-O1' if possible.
253 dnl GLIBCPP_CHECK_LINKER_FEATURES
254 AC_DEFUN(GLIBCPP_CHECK_LINKER_FEATURES, [
255 # If we're not using GNU ld, then there's no point in even trying these
256 # tests. Check for that first. We should have already tested for gld
257 # by now (in libtool), but require it now just to be safe...
260 AC_REQUIRE([AC_PROG_LD])
261 if test "$ac_cv_prog_gnu_ld" = "yes"; then
262 # GNU ld it is! Joy and bunny rabbits!
264 # All these tests are for C++; save the language and the compiler flags.
265 # Need to do this so that g++ won't try to link in libstdc++
266 ac_test_CFLAGS="${CFLAGS+set}"
267 ac_save_CFLAGS="$CFLAGS"
268 # CFLAGS='-x c++ -Wl,--gc-sections'
272 # Check for -Wl,--gc-sections
273 # XXX This test is broken at the moment, as symbols required for
274 # linking are now in libsupc++ (not built yet.....). In addition,
275 # this test has cored on solaris in the past. In addition,
276 # --gc-sections doesn't really work at the moment (keeps on discarding
277 # used sections, first .eh_frame and now some of the glibc sections for
278 # iconv). Bzzzzt. Thanks for playing, maybe next time.
279 AC_MSG_CHECKING([for ld that supports -Wl,--gc-sections])
287 ], [ac_sectionLDflags=yes],[ac_sectionLFflags=no], [ac_sectionLDflags=yes])
288 if test "$ac_test_CFLAGS" = set; then
289 CFLAGS="$ac_save_CFLAGS"
291 # this is the suspicious part
294 if test "$ac_sectionLDflags" = "yes"; then
295 # SECTION_LDFLAGS='-Wl,--gc-sections'
299 AC_MSG_RESULT($ac_sectionLDflags)
301 OPT_LDFLAGS='-Wl,-O1'
304 AC_SUBST(SECTION_LDFLAGS)
305 AC_SUBST(OPT_LDFLAGS)
310 dnl Check to see if the (math function) argument passed is
311 dnl 1) declared when using the c++ compiler
312 dnl 2) has "C" linkage
314 dnl Define HAVE_CARGF etc if "cargf" is declared and links
316 dnl argument 1 is name of function to check
318 dnl ASSUMES argument is a math function with ONE parameter
320 dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1
321 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1, [
322 AC_MSG_CHECKING([for $1 declaration])
323 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
326 AC_TRY_COMPILE([#include <math.h>],
328 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
331 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
332 if test x$glibcpp_cv_func_$1_use = x"yes"; then
339 dnl Check to see if the (math function) argument passed is
340 dnl 1) declared when using the c++ compiler
341 dnl 2) has "C" linkage
343 dnl Define HAVE_CARGF etc if "cargf" is declared and links
345 dnl argument 1 is name of function to check
347 dnl ASSUMES argument is a math function with TWO parameters
349 dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2
350 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2, [
351 AC_MSG_CHECKING([for $1 declaration])
352 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
355 AC_TRY_COMPILE([#include <math.h>],
357 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
360 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
361 if test x$glibcpp_cv_func_$1_use = x"yes"; then
368 dnl Check to see if the (math function) argument passed is
369 dnl 1) declared when using the c++ compiler
370 dnl 2) has "C" linkage
372 dnl Define HAVE_CARGF etc if "cargf" is declared and links
374 dnl argument 1 is name of function to check
376 dnl ASSUMES argument is a math function with THREE parameters
378 dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3
379 AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3, [
380 AC_MSG_CHECKING([for $1 declaration])
381 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
384 AC_TRY_COMPILE([#include <math.h>],
386 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
389 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
390 if test x$glibcpp_cv_func_$1_use = x"yes"; then
397 dnl Because the builtins are picky picky picky about the arguments they take,
398 dnl do an explict linkage tests here.
399 dnl Check to see if the (math function) argument passed is
400 dnl 1) declared when using the c++ compiler
401 dnl 2) has "C" linkage
403 dnl Define HAVE_CARGF etc if "cargf" is declared and links
405 dnl argument 1 is name of function to check
407 dnl ASSUMES argument is a math function with ONE parameter
409 dnl GLIBCPP_CHECK_BUILTIN_MATH_DECL_LINKAGE_1
410 AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1, [
411 AC_MSG_CHECKING([for $1 declaration])
412 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
415 AC_TRY_COMPILE([#include <math.h>],
417 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
420 AC_MSG_RESULT($glibcpp_cv_func_$1_use)
421 if test x$glibcpp_cv_func_$1_use = x"yes"; then
422 AC_MSG_CHECKING([for $1 linkage])
423 AC_CACHE_VAL(glibcpp_cv_func_$1_link, [
424 AC_TRY_LINK([#include <math.h>],
426 [glibcpp_cv_func_$1_link=yes], [glibcpp_cv_func_$1_link=no])
428 AC_MSG_RESULT($glibcpp_cv_func_$1_link)
429 if test x$glibcpp_cv_func_$1_link = x"yes"; then
430 ac_tr_func=HAVE_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
431 AC_DEFINE_UNQUOTED(${ac_tr_func})
438 dnl Check to see what builtin math functions are supported
440 dnl check for __builtin_abs
441 dnl check for __builtin_fabsf
442 dnl check for __builtin_fabs
443 dnl check for __builtin_fabl
444 dnl check for __builtin_labs
445 dnl check for __builtin_sqrtf
446 dnl check for __builtin_sqrtl
447 dnl check for __builtin_fsqrt
448 dnl check for __builtin_sinf
449 dnl check for __builtin_sin
450 dnl check for __builtin_sinl
451 dnl check for __builtin_cosf
452 dnl check for __builtin_cos
453 dnl check for __builtin_cosl
455 dnl GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT
456 AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT, [
457 dnl Test for builtin math functions.
458 dnl These are made in gcc/c-common.c
459 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_abs)
460 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabsf)
461 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabs)
462 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabsl)
463 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_labs)
465 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrtf)
466 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fsqrt)
467 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrtl)
469 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sinf)
470 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sin)
471 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sinl)
473 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cosf)
474 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cos)
475 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cosl)
477 dnl There is, without a doubt, a more elegant way to have these
478 dnl names exported so that they won't be stripped out of acconfig.h by
479 dnl autoheader. I leave this as an exercise to somebody less frustrated
480 dnl than I.... please email the libstdc++ list if you can figure out a
481 dnl more elegant approach (see autoconf/acgen.m4 and specifically
482 dnl AC_CHECK_FUNC for things to steal.)
484 if test x$dummyvar = x"yes"; then
485 AC_DEFINE(HAVE___BUILTIN_ABS)
486 AC_DEFINE(HAVE___BUILTIN_LABS)
487 AC_DEFINE(HAVE___BUILTIN_COS)
488 AC_DEFINE(HAVE___BUILTIN_COSF)
489 AC_DEFINE(HAVE___BUILTIN_COSL)
490 AC_DEFINE(HAVE___BUILTIN_FABS)
491 AC_DEFINE(HAVE___BUILTIN_FABSF)
492 AC_DEFINE(HAVE___BUILTIN_FABSL)
493 AC_DEFINE(HAVE___BUILTIN_SIN)
494 AC_DEFINE(HAVE___BUILTIN_SINF)
495 AC_DEFINE(HAVE___BUILTIN_SINL)
496 AC_DEFINE(HAVE___BUILTIN_FSQRT)
497 AC_DEFINE(HAVE___BUILTIN_SQRTF)
498 AC_DEFINE(HAVE___BUILTIN_SQRTL)
504 dnl Check to see what the underlying c library or math library is like.
505 dnl These checks need to do two things:
506 dnl 1) make sure the name is declared when using the c++ compiler
507 dnl 2) make sure the name has "C" linkage
508 dnl This might seem like overkill but experience has shown that it's not...
510 dnl Define HAVE_CARGF etc if "cargf" is found.
512 dnl GLIBCPP_CHECK_MATH_SUPPORT
513 AC_DEFUN(GLIBCPP_CHECK_MATH_SUPPORT, [
514 ac_test_CXXFLAGS="${CXXFLAGS+set}"
515 ac_save_CXXFLAGS="$CXXFLAGS"
516 CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
519 AC_CHECK_LIB(m, sin, libm="-lm")
523 dnl Although not math functions, needed and for some reason checked here.
524 AC_CHECK_FUNCS(strtof strtold)
526 dnl Check to see if certain C math functions exist.
527 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinf)
528 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnan)
529 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finite)
530 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(copysign)
531 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincos)
532 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fpclass)
533 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(qfpclass)
535 dnl Check to see if basic C math functions have float versions.
536 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnanf)
537 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinff)
538 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(acosf)
539 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(asinf)
540 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(atanf)
541 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(atan2f)
542 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(ceilf)
543 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(cosf)
544 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(coshf)
545 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(expf)
546 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsf)
547 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(floorf)
548 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodf)
549 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpf)
550 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpf)
551 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logf)
552 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10f)
553 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(modff)
554 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(powf)
555 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sinf)
556 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sinhf)
557 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtf)
558 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(tanf)
559 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(tanhf)
560 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincosf)
561 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finitef)
563 dnl Check to see if basic C math functions have long double versions.
564 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnanl)
565 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinfl)
566 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(copysignl)
567 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(acosl)
568 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(asinl)
569 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(atanl)
570 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(atan2l)
571 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(ceill)
572 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(cosl)
573 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(coshl)
574 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(expl)
575 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsl)
576 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(floorl)
577 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodl)
578 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpl)
579 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpl)
580 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logl)
581 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10l)
582 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(modfl)
583 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(powl)
584 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sinl)
585 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sinhl)
586 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtl)
587 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(tanl)
588 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(tanhl)
589 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincosl)
590 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finitel)
592 dnl Some runtimes have these functions with a preceding underscore. Please
593 dnl keep this sync'd with the one above. And if you add any new symbol,
594 dnl please add the corresponding block in the @BOTTOM@ section of acconfig.h.
595 dnl Check to see if certain C math functions exist.
596 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_isinf)
597 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_isnan)
598 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_finite)
599 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_copysign)
600 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(_sincos)
601 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_fpclass)
602 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_qfpclass)
604 dnl Check to see if basic C math functions have float versions.
605 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_isnanf)
606 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_isinff)
607 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_acosf)
608 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_asinf)
609 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_atanf)
610 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_atan2f)
611 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_ceilf)
612 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_cosf)
613 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_coshf)
614 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_expf)
615 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_fabsf)
616 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_floorf)
617 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_fmodf)
618 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_frexpf)
619 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_ldexpf)
620 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_logf)
621 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_log10f)
622 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_modff)
623 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_powf)
624 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_sinf)
625 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_sinhf)
626 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_sqrtf)
627 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_tanf)
628 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_tanhf)
629 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(_sincosf)
630 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_finitef)
632 dnl Check to see if basic C math functions have long double versions.
633 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_isnanl)
634 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_isinfl)
635 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_copysignl)
636 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_acosl)
637 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_asinl)
638 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_atanl)
639 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_atan2l)
640 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_ceill)
641 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_cosl)
642 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_coshl)
643 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_expl)
644 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_fabsl)
645 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_floorl)
646 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_fmodl)
647 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_frexpl)
648 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_ldexpl)
649 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_logl)
650 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_log10l)
651 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_modfl)
652 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(_powl)
653 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_sinl)
654 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_sinhl)
655 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_sqrtl)
656 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_tanl)
657 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_tanhl)
658 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(_sincosl)
659 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(_finitel)
662 CXXFLAGS="$ac_save_CXXFLAGS"
667 dnl Check to see if there is native support for complex
669 dnl Don't compile bits in math/* if native support exits.
671 dnl Define USE_COMPLEX_LONG_DOUBLE etc if "atan2l/copysignl" is found.
673 dnl GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT
674 AC_DEFUN(GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT, [
675 dnl Check for complex versions of math functions of platform.
676 AC_CHECK_HEADERS([complex.h])
677 AC_REPLACE_MATHFUNCS(ccos ccosf ccosh ccoshf cexp cexpf c_log c_logf \
678 clog10 clog10f cpow cpowf csin csinf csinh csinhf csqrt csqrtf \
679 ctan ctanf ctanh ctanhf carg cargf nan hypot hypotf atan2f expf copysignf)
681 dnl Compile the long double complex functions only if the function
682 dnl provides the non-complex long double functions that are needed.
683 dnl Currently this includes copysignl and atan2l, which should be
684 dnl cached from the GLIBCPP_CHECK_MATH_SUPPORT macro, above.
685 USE_COMPLEX_LONG_DOUBLE=no
686 if test x$ac_cv_func_atan2l = x"yes" \
687 && test x$ac_cv_func_copysignl = x"yes"; then
688 USE_COMPLEX_LONG_DOUBLE=yes
689 AC_REPLACE_MATHFUNCS(ccoshl ccosl cexpl cpowl csinhl csinl \
690 csqrtl ctanhl ctanl cargl hypotl signbitl c_logl clog10l)
693 AC_SUBST(USE_COMPLEX_LONG_DOUBLE)
697 dnl Check to see what architecture we are compiling for. Also, if
698 dnl architecture-specific flags are required for compilation, add them here.
700 dnl GLIBCPP_CHECK_CPU
701 AC_DEFUN(GLIBCPP_CHECK_CPU, [
702 AC_MSG_CHECKING([for cpu config directory])
703 # Currently unused, but could be useful.
705 case "${target_cpu}" in
707 cpu_include_dir="config/cpu/alpha"
710 cpu_include_dir="config/cpu/arm"
713 cpu_include_dir="config/cpu/ia64"
716 cpu_include_dir="config/cpu/i386"
718 i486 | i586 | i686 | i786)
719 cpu_include_dir="config/cpu/i486"
722 cpu_include_dir="config/cpu/powerpc"
724 sparc64 | ultrasparc)
725 cpu_include_dir="config/cpu/sparc/sparc64"
728 cpu_include_dir="config/cpu/sparc/sparc32"
731 cpu_include_dir="config/cpu/generic"
734 AC_MSG_RESULT($cpu_include_dir)
738 dnl Check to see what OS we are compiling for. Also, if os-specific flags
739 dnl are required for compilation, add them here.
742 AC_DEFUN(GLIBCPP_CHECK_OS, [
743 AC_MSG_CHECKING([for os config directory])
744 # Currently unused, but could be useful.
746 case "${target_os}" in
748 os_include_dir="config/os/aix"
751 os_include_dir="config/os/bsd"
754 os_include_dir="config/os/gnu-linux"
757 os_include_dir="config/os/irix"
760 os_include_dir="config/os/solaris/solaris2.5"
763 os_include_dir="config/os/solaris/solaris2.6"
765 solaris2.7* | solaris2.8*)
766 os_include_dir="config/os/solaris/solaris2.7"
769 os_include_dir="config/os/generic"
772 AC_MSG_RESULT($os_include_dir)
773 AC_LINK_FILES($os_include_dir/bits/os_defines.h, bits/os_defines.h)
778 dnl Check to see what the underlying c library's interface to ctype looks
779 dnl like. Bits of locale rely on things like isspace, toupper, etc. This
780 dnl stuff makes sure the right bits from the clibrary get called.
782 dnl Depending on what is found, select various configure/*/bits/ctype_base.h
783 dnl Depending on what is found, select various configure/*/ctype.cc
785 dnl GLIBCPP_CHECK_CTYPE
786 AC_DEFUN(GLIBCPP_CHECK_CTYPE, [
787 AC_CHECK_HEADER(ctype.h, [
789 dnl If doesn't match any specified, go with defaults.
792 dnl Test for <ctype> functionality -- GNU/Linux
793 AC_MSG_CHECKING([<ctype> for GNU/Linux])
794 AC_TRY_COMPILE([#include <ctype.h>],
797 { return _ISspace + _ISprint + _IScntrl + _ISupper + _ISlower + _ISalpha \
798 + _ISdigit + _ISpunct + _ISxdigit + _ISalnum + _ISgraph \
799 + __ctype_tolower[a] + __ctype_toupper[a] + __ctype_b[a];}], \
800 ctype_linux=yes, ctype_linux=no)
801 AC_MSG_RESULT($ctype_linux)
802 if test $ctype_linux = "yes"; then
803 ctype_include_dir="config/os/gnu-linux"
807 dnl Test for <ctype> functionality -- FreeBSD 4.0
808 if test $ctype_default = "yes"; then
809 AC_MSG_CHECKING([<ctype> for FreeBSD 4.0])
810 AC_TRY_COMPILE([#include <ctype.h>],
813 { return _CTYPE_S + _CTYPE_R + _CTYPE_C + _CTYPE_U + _CTYPE_L + _CTYPE_A \
814 + _CTYPE_D + _CTYPE_P + _CTYPE_X + _CTYPE_G ;}], \
815 ctype_bsd=yes, ctype_bsd=no)
816 AC_MSG_RESULT($ctype_bsd)
817 if test $ctype_bsd = "yes"; then
818 ctype_include_dir="config/os/bsd"
823 dnl Test for <ctype> functionality -- FreeBSD 3.4
824 if test $ctype_default = "yes"; then
825 AC_MSG_CHECKING([<ctype> for FreeBSD 3.4])
826 AC_TRY_COMPILE([#include <ctype.h>],
829 { return _S + _R + _C + _U + _L + _A \
830 + _D + _P + _X + _G + __istype (a, 0);}], \
831 ctype_freebsd34=yes, ctype_freebsd34=no)
832 AC_MSG_RESULT($ctype_freebsd34)
833 if test $ctype_freebsd34 = "yes"; then
834 ctype_include_dir="config/os/bsd"
839 dnl Test for <ctype> functionality -- Solaris 2.6 and up
840 if test $ctype_default = "yes"; then
841 AC_MSG_CHECKING([<ctype> for Solaris 2.6,7,8])
842 AC_TRY_COMPILE([#include <ctype.h>],
845 { return _ISSPACE + _ISPRINT + _ISCNTRL + _ISUPPER + _ISLOWER + _ISALPHA \
846 + _ISDIGIT + _ISPUNCT + _ISXDIGIT + _ISALNUM + _ISGRAPH \
847 + __trans_lower[a] + __trans_upper[a] + __ctype_mask[a];}], \
848 ctype_solaris=yes, ctype_solaris=no)
849 AC_MSG_RESULT($ctype_solaris)
851 if test $ctype_solaris = "yes"; then
852 AC_MSG_CHECKING([ for version])
854 AC_TRY_COMPILE([#include <ctype.h>],
855 [typedef long* __to_type; __to_type const& _M_toupper = __trans_upper;],\
856 ctype_solaris26=yes, ctype_solaris26=no)
858 if test $ctype_solaris26 = "yes"; then
859 ctype_include_dir="config/os/solaris/solaris2.6"
860 AC_MSG_RESULT([Solaris 2.6])
863 ctype_include_dir="config/os/solaris/solaris2.7"
864 AC_MSG_RESULT([Solaris 7,8])
870 dnl Test for <ctype> functionality -- Solaris 2.5.1
871 if test $ctype_default = "yes"; then
872 AC_MSG_CHECKING([<ctype> for Solaris 2.5.1])
873 AC_TRY_COMPILE([#include <ctype.h>],
876 { return _U + _L + _N + _S + _P + _C + _X + _B \
878 ctype_solaris25=yes, ctype_solaris25=no)
879 AC_MSG_RESULT($ctype_solaris25)
880 if test $ctype_solaris25 = "yes"; then
881 ctype_include_dir="config/os/solaris/solaris2.5"
886 dnl Test for <ctype> functionality -- AIX
887 if test $ctype_default = "yes"; then
888 AC_MSG_CHECKING([<ctype> for AIX])
889 AC_TRY_COMPILE([#include <ctype.h>],
892 { return _ISSPACE + _ISPRINT + _ISCNTRL + _ISUPPER + _ISLOWER + _ISALPHA \
893 + _ISDIGIT + _ISPUNCT + _ISXDIGIT + _ISALNUM + _ISGRAPH \
894 + _VALC('a') + _IS('c', 0);}], \
895 ctype_aix=yes, ctype_aix=no)
896 AC_MSG_RESULT($ctype_aix)
897 if test $ctype_aix = "yes"; then
898 ctype_include_dir="config/os/aix"
903 dnl Test for <ctype> functionality -- newlib
904 if test $ctype_default = "yes"; then
905 AC_MSG_CHECKING([<ctype> for newlib])
906 AC_TRY_COMPILE([#include <ctype.h>],
909 { return _U + _L + _N + _S + _P + _C + _X + _B \
911 ctype_newlib=yes, ctype_newlib=no)
912 AC_MSG_RESULT($ctype_newlib)
913 if test $ctype_newlib = "yes"; then
914 ctype_include_dir="config/newlib"
919 if test $ctype_default = "yes"; then
920 ctype_include_dir="config/os/generic"
921 AC_MSG_WARN("Using default ctype headers.")
924 AC_LINK_FILES($ctype_include_dir/bits/ctype_base.h, bits/ctype_base.h)
925 AC_LINK_FILES($ctype_include_dir/bits/ctype_inline.h, bits/ctype_inline.h)
926 AC_LINK_FILES($ctype_include_dir/bits/ctype_noninline.h, \
927 bits/ctype_noninline.h)
933 dnl Check to see if this target can enable the wchar_t parts of libstdc++.
934 dnl If --disable-c-mbchar was given, no wchar_t stuff is enabled. (This
935 dnl must have been previously checked.)
937 dnl Define _GLIBCPP_USE_WCHAR_T if all the bits are found
938 dnl Define _GLIBCPP_NEED_MBSTATE_T if mbstate_t is not in wchar.h
940 dnl GLIBCPP_CHECK_WCHAR_T_SUPPORT
941 AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
942 if test x$enable_c_mbchar != xno; then
944 dnl Sanity check for existence of ISO C9X headers for extended encoding.
945 AC_CHECK_HEADER(wchar.h, ac_has_wchar_h=yes, ac_has_wchar_h=no)
946 AC_CHECK_HEADER(wctype.h, ac_has_wctype_h=yes, ac_has_wctype_h=no)
948 dnl Only continue checking if the ISO C9X headers exist.
949 if test x"$ac_has_wchar_h" = xyes && test x"$ac_has_wctype_h" = xyes; then
951 dnl Test wchar.h for mbstate_t, which is needed for char_traits
953 AC_MSG_CHECKING([for mbstate_t])
954 AC_TRY_COMPILE([#include <wchar.h>],
955 [mbstate_t teststate;],
956 use_native_mbstatet=yes, use_native_mbstatet=no)
957 AC_MSG_RESULT($use_native_mbstatet)
958 if test x"$use_native_mbstatet" = xno; then
959 AC_DEFINE(_GLIBCPP_NEED_MBSTATE_T)
962 dnl Test wchar.h for WCHAR_MIN, WCHAR_MAX, which is needed before
963 dnl numeric_limits can instantiate type_traits<wchar_t>
964 AC_MSG_CHECKING([for WCHAR_MIN and WCHAR_MAX])
965 AC_TRY_COMPILE([#include <wchar.h>],
966 [int i = WCHAR_MIN; int j = WCHAR_MAX;],
967 has_wchar_minmax=yes, has_wchar_minmax=no)
968 AC_MSG_RESULT($has_wchar_minmax)
970 dnl Test wchar.h for WEOF, which is what we use to determine whether
971 dnl to specialize for char_traits<wchar_t> or not.
972 AC_MSG_CHECKING([for WEOF])
975 #include <stddef.h>],
977 has_weof=yes, has_weof=no)
978 AC_MSG_RESULT($has_weof)
980 dnl Tests for wide character functions used in char_traits<wchar_t>.
981 AC_CHECK_FUNCS(wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset \
982 wcsrtombs mbsrtowcs, ac_wfuncs=yes, ac_wfuncs=no)
984 AC_MSG_CHECKING([for ISO C9X wchar_t support])
985 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes \
986 && test x"$ac_wfuncs" = xyes; then
987 ac_isoC9X_wchar_t=yes
991 AC_MSG_RESULT($ac_isoC9X_wchar_t)
993 dnl Use iconv for wchar_t to char conversions. As such, check for
994 dnl X/Open Portability Guide, version 2 features (XPG2).
995 AC_CHECK_HEADER(iconv.h, ac_has_iconv_h=yes, ac_has_iconv_h=no)
996 AC_CHECK_HEADER(langinfo.h, ac_has_langinfo_h=yes, ac_has_langinfo_h=no)
997 AC_CHECK_FUNCS(iconv_open iconv_close iconv nl_langinfo, \
998 ac_XPG2funcs=yes, ac_XPG2funcs=no)
1000 AC_MSG_CHECKING([for XPG2 wchar_t support])
1001 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes \
1002 && test x"$ac_XPG2funcs" = xyes; then
1007 AC_MSG_RESULT($ac_XPG2_wchar_t)
1009 dnl At the moment, only enable wchar_t specializations if all the
1010 dnl above support is present.
1011 AC_MSG_CHECKING([for enabled wchar_t specializations])
1012 if test x"$ac_isoC9X_wchar_t" = xyes \
1013 && test x"$ac_XPG2_wchar_t" = xyes; then
1014 libinst_wstring_la="libinst-wstring.la"
1015 AC_DEFINE(_GLIBCPP_USE_WCHAR_T)
1016 AC_MSG_RESULT("yes")
1018 libinst_wstring_la=""
1021 AC_SUBST(libinst_wstring_la)
1024 AC_MSG_WARN([<wchar.h> not found])
1025 AC_DEFINE(_GLIBCPP_NEED_MBSTATE_T)
1029 dnl Wide characters disabled by the user. Maybe print a warning?
1036 dnl Check to see if this version of GNU C++ is afflicted by bugs in
1037 dnl __complex__ float support.
1039 dnl Define _GLIBCPP_BUGGY_FLOAT_COMPLEX if buggy.
1041 dnl Check to see if this version of GNU C++ is afflicted by bugs in
1042 dnl __complex__ support.Check for buggy __complex__ that will cause ICE in
1043 dnl gcc-2.95.x when using the library, unless we define the default copy
1044 dnl ctor in the specializations of complex<>.
1046 dnl Define _GLIBCPP_BUGGY_COMPLEX if buggy.
1047 dnl GLIBCPP_CHECK_COMPLEX_MATH_COMPILER_SUPPORT
1048 AC_DEFUN(GLIBCPP_CHECK_COMPLEX_MATH_COMPILER_SUPPORT, [
1049 AC_REQUIRE([AC_PROG_CXX])
1051 AC_MSG_CHECKING([for GNU C++ __complex__ support])
1052 AC_CACHE_VAL(glibcpp_cv_complex, [
1055 AC_TRY_COMPILE([struct dcomplex { __complex__ double x; }; \
1056 dcomplex f(const dcomplex& x) { return dcomplex(x); }], \
1057 [ dcomplex x; f(x); ],
1058 glibcpp_cv_complex=ok,
1059 glibcpp_cv_complex=buggy
1063 AC_MSG_RESULT($glibcpp_cv_complex)
1064 if test $glibcpp_cv_complex = buggy; then
1065 AC_DEFINE(_GLIBCPP_BUGGY_COMPLEX)
1068 AC_MSG_CHECKING([for GNU C++ __complex__ float support])
1069 AC_CACHE_VAL(glibcpp_cv_float_complex, [
1073 cat > conftest.h <<EOB
1075 // Check for buggy __complex__ that causes ICE in most versions of egcs
1076 // and gcc-2.95.x on certain platforms (eg., x86-win32).
1078 // See http://egcs.cygnus.com/ml/gcc-bugs/1999-07/msg00845.html for
1079 // more info on the bug itself.
1084 __complex__ float m_value;
1085 float_complex (float = 0.0f, float = 0.0f);
1086 float_complex (__complex__ float val) : m_value (val) {}
1087 float_complex foo (const float_complex &val)
1088 { return float_complex (~val.m_value); }
1091 AC_TRY_COMPILE([#include "conftest.h"], ,
1092 glibcpp_cv_float_complex=ok,
1093 glibcpp_cv_float_complex=buggy
1097 AC_MSG_RESULT($glibcpp_cv_float_complex)
1098 if test $glibcpp_cv_float_complex = buggy; then
1099 AC_DEFINE(_GLIBCPP_BUGGY_FLOAT_COMPLEX)
1105 dnl Check for special debugging mode; not for production use.
1107 dnl GLIBCPP_ENABLE_DEBUG
1108 dnl --enable-debug sets '-ggdb -O0'.
1109 dnl --disable-debug sets '-g' and whatever optimization options the
1110 dnl compiler can handle.
1111 dnl + --enable-maintainer-mode automatically defaults this to on.
1112 dnl + Perhaps -D/-U of NDEBUG, DEBUG, DEBUG_ASSERT, ...?
1113 dnl + Usage: GLIBCPP_ENABLE_DEBUG[(DEFAULT)]
1114 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
1115 dnl defaults to `no'.
1116 AC_DEFUN(GLIBCPP_ENABLE_DEBUG, [dnl
1117 define([GLIBCPP_ENABLE_DEBUG_DEFAULT], ifelse($1, yes, yes, no))dnl
1118 AC_ARG_ENABLE(debug,
1119 changequote(<<, >>)dnl
1120 << --enable-debug extra debugging, turn off optimization [default=>>GLIBCPP_ENABLE_DEBUG_DEFAULT],
1121 changequote([, ])dnl
1122 [case "${enableval}" in
1123 yes) enable_debug=yes ;;
1124 no) enable_debug=no ;;
1125 *) AC_MSG_ERROR([Unknown argument to enable/disable extra debugging]) ;;
1127 enable_debug=GLIBCPP_ENABLE_DEBUG_DEFAULT)dnl
1129 dnl Option parsed, now set things appropriately
1130 case "${enable_debug}" in
1132 DEBUG_FLAGS='-O0 -ggdb'
1138 AC_SUBST(DEBUG_FLAGS)
1143 dnl Check for "unusual" flags to pass to the compiler while building.
1145 dnl GLIBCPP_ENABLE_CXX_FLAGS
1146 dnl --enable-cxx-flags='-foo -bar -baz' is a general method for passing
1147 dnl experimental flags such as -fhonor-std, -fsquangle, -Dfloat=char, etc.
1148 dnl Somehow this same set of flags must be passed when [re]building
1150 dnl --disable-cxx-flags passes nothing.
1151 dnl + See http://sourceware.cygnus.com/ml/libstdc++/2000-q2/msg00131.html
1152 dnl http://sourceware.cygnus.com/ml/libstdc++/2000-q2/msg00284.html
1153 dnl http://sourceware.cygnus.com/ml/libstdc++/2000-q1/msg00035.html
1154 dnl + Usage: GLIBCPP_ENABLE_CXX_FLAGS(default flags)
1155 dnl If "default flags" is an empty string (or "none"), the effect is
1156 dnl the same as --disable or --enable=no.
1157 AC_DEFUN(GLIBCPP_ENABLE_CXX_FLAGS, [dnl
1158 define([GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT], ifelse($1,,, $1))dnl
1159 AC_ARG_ENABLE(cxx-flags,
1160 changequote(<<, >>)dnl
1161 << --enable-cxx-flags=FLAGS pass compiler FLAGS when building library;
1162 [default=>>GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT],
1163 changequote([, ])dnl
1164 [case "x$enableval" in
1166 AC_MSG_ERROR([--enable-cxx-flags needs compiler flags as arguments]) ;;
1168 enable_cxx_flags='' ;;
1170 enable_cxx_flags="$enableval" ;;
1172 enable_cxx_flags='GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT')
1174 dnl Thinko on my part during design. This kludge is the workaround.
1175 if test "$enable_cxx_flags" = "none"; then
1176 enable_cxx_flags='';
1179 dnl Run through flags (either default or command-line) and set anything
1180 dnl extra (e.g., #defines) that must accompany particular g++ options.
1181 if test -n "$enable_cxx_flags"; then
1182 for f in $enable_cxx_flags; do
1186 *) # and we're trying to pass /what/ exactly?
1187 AC_MSG_ERROR([compiler flags start with a -]) ;;
1191 EXTRA_CXX_FLAGS="$enable_cxx_flags"
1192 AC_SUBST(EXTRA_CXX_FLAGS)
1197 dnl Check for which I/O library to use: libio, or something specific.
1199 dnl GLIBCPP_ENABLE_CSTDIO
1200 dnl --enable-cstdio=libio sets config/c_io_libio.h and friends
1202 dnl default is libio
1204 AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [
1205 AC_MSG_CHECKING([for cstdio to use])
1206 AC_ARG_ENABLE(cstdio,
1207 [ --enable-cstdio enable GNU libio for target io package. (default)
1208 --enable-cstdio=LIB use LIB target-speific io package.],
1209 if test x$enable_cstdio = xno; then
1212 enable_cstdio=libio)
1214 enable_cstdio_flag=$enable_cstdio
1216 dnl Check if a valid I/O package
1217 case x${enable_cstdio_flag} in
1218 xlibio | x | xno | xnone | xyes)
1220 CSTDIO_H=config/c_io_libio.h
1221 CSTDIO_CC=config/c_io_libio.cc
1222 AC_MSG_RESULT(libio)
1224 # see if we are on a system with libio native (ie, linux)
1225 AC_CHECK_HEADER(libio.h, has_libio=yes, has_libio=no)
1227 # Need to check and see what version of glibc is being used. If
1228 # it's not glibc-2.2 or higher, then we'll need to go ahead and
1229 # compile most of libio for linux systems.
1230 if test x$has_libio = x"yes"; then
1233 AC_MSG_CHECKING([for glibc version >= 2.2])
1234 AC_EGREP_CPP([ok], [
1235 #include <features.h>
1236 #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
1239 ], glibc_satisfactory=yes, glibc_satisfactory=no)
1240 AC_MSG_RESULT($glibc_satisfactory)
1244 # XXX at the moment, admit defeat and force the recompilation
1245 # XXX of glibc even on glibc-2.2 systems, because libio is not synched.
1246 glibc_satisfactory=no
1248 if test x$glibc_satisfactory = x"yes"; then
1255 # bkoz XXX need to add checks to enable this
1256 # pme XXX here's a first pass at such a check
1257 if test x$enable_c_mbchar != xno; then
1264 # Using libio, but <libio.h> doesn't exist on the target system. . .
1268 # bkoz XXX need to add checks to enable this
1269 # pme XXX here's a first pass at such a check
1270 if test x$enable_c_mbchar != xno; then
1279 CSTDIO_H=config/c_io_wince.h
1280 CSTDIO_CC=config/c_io_wince.cc
1281 AC_MSG_RESULT(wince)
1286 echo "$enable_cstdio is an unknown io package" 1>&2
1290 AC_LINK_FILES($CSTDIO_H, bits/c++io.h)
1291 AC_LINK_FILES($CSTDIO_CC, src/c++io.cc)
1293 # 2000-08-04 bkoz hack
1294 CCODECVT_C=config/c_io_libio_codecvt.c
1295 AC_LINK_FILES($CCODECVT_C, libio/c_codecvt.c)
1296 # 2000-08-04 bkoz hack
1298 AM_CONDITIONAL(GLIBCPP_NEED_LIBIO, test "$need_libio" = yes)
1299 AM_CONDITIONAL(GLIBCPP_NEED_XTRA_LIBIO, test "$need_xtra_libio" = yes)
1300 AM_CONDITIONAL(GLIBCPP_NEED_WLIBIO, test "$need_wlibio" = yes)
1305 dnl Check for which threading library to use.
1307 dnl GLIBCPP_ENABLE_THREADS
1308 dnl --enable-threads=posix sets config/threads-posix.h et. al.
1310 dnl Default is no threads, which also disables _IO_MTSAFE_IO in
1311 dnl libio. Any actual thread package will enable it.
1313 AC_DEFUN(GLIBCPP_ENABLE_THREADS, [
1314 dnl Note this comes from the gcc/config.in and libjava/config.in
1315 dnl Efforts should be made to keep this in sync.
1316 AC_MSG_CHECKING([for threads package to use])
1317 AC_ARG_ENABLE(threads,
1318 [ --enable-threads enable thread usage for target GCC.
1319 --enable-threads=LIB use LIB thread package for target GCC.],
1320 if test x$enable_threads = xno; then
1325 enable_threads_flag=$enable_threads
1327 dnl Check if a valid thread package
1328 case x${enable_threads_flag} in
1331 target_thread_file='single'
1335 target_thread_file=''
1337 xdecosf1 | xirix | xmach | xos2 | xposix | xpthreads | xsingle | \
1338 xsolaris | xwin32 | xdce | xvxworks)
1339 target_thread_file=$enable_threads_flag
1342 echo "$enable_threads is an unknown thread package" 1>&2
1347 dnl Check for thread package actually supported in libstdc++
1349 case "$target_thread_file" in
1351 THREADH=threads-no.h
1354 THREADH=threads-posix.h
1356 decosf1 | irix | mach | os2 | solaris | win32 | dce | vxworks)
1357 AC_MSG_ERROR(thread package $THREADS not yet supported)
1360 AC_MSG_ERROR($THREADS is an unknown thread package)
1363 AC_MSG_RESULT($THREADH)
1365 AC_LINK_FILES(config/$THREADH, bits/c++threads.h)
1366 if test $THREADH != threads-no.h; then
1367 AC_DEFINE(_GLIBCPP_USE_THREADS)
1372 dnl Enable atomic locking
1373 dnl GLIBCPP_ENABLE_ATOMICITY
1374 AC_DEFUN(GLIBCPP_ENABLE_ATOMICITY, [
1375 AC_MSG_CHECKING([for atomicity.h])
1377 *-*-linux* | sparc*-*-*)
1378 ATOMICITYH=$cpu_include_dir
1381 ATOMICITYH=$os_include_dir
1384 # bit of overkill on this text...
1385 AC_MSG_ERROR([Atomic locking requested, but $enable_threads is an unknown thread package and atomic operations are not present in the CPU])
1388 AC_MSG_RESULT($ATOMICITYH/bits/atomicity.h)
1389 AC_LINK_FILES($ATOMICITYH/bits/atomicity.h, bits/atomicity.h)
1394 dnl Check for template specializations for the 'long long' type extension.
1396 dnl GLIBCPP_ENABLE_LONG_LONG
1397 dnl --enable-long-long defines _GLIBCPP_USE_LONG_LONG
1398 dnl --disable-long-long leaves _GLIBCPP_USE_LONG_LONG undefined
1399 dnl + Usage: GLIBCPP_ENABLE_LONG_LONG[(DEFAULT)]
1400 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
1401 dnl defaults to `no'.
1402 dnl + If 'long long' stuff is not available, ignores DEFAULT and sets `no'.
1404 dnl GLIBCPP_ENABLE_LONG_LONG
1405 AC_DEFUN(GLIBCPP_ENABLE_LONG_LONG, [dnl
1406 define([GLIBCPP_ENABLE_LONG_LONG_DEFAULT], ifelse($1, yes, yes, no))dnl
1408 AC_ARG_ENABLE(long-long,
1409 changequote(<<, >>)dnl
1410 <<--enable-long-long turns on 'long long' [default=>>GLIBCPP_ENABLE_LONG_LONG_DEFAULT],
1411 changequote([, ])dnl
1412 [case "$enableval" in
1413 yes) enable_long_long=yes ;;
1414 no) enable_long_long=no ;;
1415 *) AC_MSG_ERROR([Unknown argument to enable/disable long long]) ;;
1417 enable_long_long=GLIBCPP_ENABLE_LONG_LONG_DEFAULT)dnl
1419 # Check for the existance of functions used if long long is enabled.
1420 AC_CHECK_FUNC(strtoll,,ac_strtoll=no)
1421 AC_CHECK_FUNC(strtoull,,ac_strtoull=no)
1423 AC_MSG_CHECKING([for enabled long long])
1424 if test x"$ac_strtoll" = xno || test x"$ac_strtoull" = xno; then
1425 enable_long_long=no;
1427 AC_MSG_RESULT($enable_long_long)
1429 dnl Option parsed, now set things appropriately
1430 if test x"$enable_long_long" = xyes; then
1431 AC_DEFINE(_GLIBCPP_USE_LONG_LONG)
1437 dnl Check for whether or not to do shadowed C headers.
1439 dnl GLIBCPP_ENABLE_SHADOW
1440 dnl --enable-cshadow-headers [does stuff].
1441 dnl --disable-cshadow-headers [does not do stuff].
1442 dnl + This will eventually need to be on by default.
1443 dnl + Usage: GLIBCPP_ENABLE_SHADOW[(DEFAULT)]
1444 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
1445 dnl defaults to `no'.
1446 AC_DEFUN(GLIBCPP_ENABLE_SHADOW, [dnl
1447 define([GLIBCPP_ENABLE_SHADOW_DEFAULT], ifelse($1, yes, yes, no))dnl
1448 AC_MSG_CHECKING([for enabled cshadow headers])
1449 AC_ARG_ENABLE(cshadow-headers,
1450 changequote(<<, >>)dnl
1451 << --enable-cshadow-headers construct "shadowed" C header files for
1452 g++ [default=>>GLIBCPP_ENABLE_SHADOW_DEFAULT],
1454 [case "$enableval" in
1455 yes) enable_cshadow_headers=yes
1457 no) enable_cshadow_headers=no
1459 *) AC_MSG_ERROR([Unknown argument to enable/disable shadowed C headers])
1462 enable_cshadow_headers=GLIBCPP_ENABLE_SHADOW_DEFAULT)
1463 AC_MSG_RESULT($enable_cshadow_headers)
1465 dnl Option parsed, now set things appropriately
1466 dnl NB: these things may be duplicated in c++config.h as well.
1467 case "$enable_cshadow_headers" in
1469 CSHADOW_FLAGS="-fno-builtin"
1470 C_INCLUDE_DIR='${top_srcdir}/include/c_std'
1471 AC_DEFINE(_GLIBCPP_USE_SHADOW_HEADERS)
1475 C_INCLUDE_DIR='${top_srcdir}/include/c'
1479 AC_SUBST(CSHADOW_FLAGS)
1480 AC_SUBST(C_INCLUDE_DIR)
1481 AM_CONDITIONAL(GLIBCPP_USE_CSHADOW, test "$enable_cshadow_headers" = yes)
1486 dnl Check for wide character support. Has the same effect as the option
1487 dnl in gcc's configure, but in a form that autoconf can mess with.
1489 dnl GLIBCPP_ENABLE_C_MBCHAR
1490 dnl --enable-c-mbchar requests all the wchar_t stuff.
1491 dnl --disable-c-mbchar doesn't.
1492 dnl + Usage: GLIBCPP_ENABLE_C_MBCHAR[(DEFAULT)]
1493 dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
1494 dnl defaults to `no'.
1495 AC_DEFUN(GLIBCPP_ENABLE_C_MBCHAR, [dnl
1496 define([GLIBCPP_ENABLE_C_MBCHAR_DEFAULT], ifelse($1, yes, yes, no))dnl
1497 AC_ARG_ENABLE(c-mbchar,
1498 changequote(<<, >>)dnl
1499 << --enable-c-mbchar enable multibyte (wide) characters [default=>>GLIBCPP_ENABLE_C_MBCHAR_DEFAULT],
1500 changequote([, ])dnl
1501 [case "$enableval" in
1502 yes) enable_c_mbchar=yes ;;
1503 no) enable_c_mbchar=no ;;
1504 *) AC_MSG_ERROR([Unknown argument to enable/disable c-mbchar]) ;;
1506 enable_c_mbchar=GLIBCPP_ENABLE_C_MBCHAR_DEFAULT)dnl
1507 dnl Option parsed, now other scripts can test enable_c_mbchar for yes/no.
1512 dnl Set up *_INCLUDES and *_INCLUDE_DIR variables for all sundry Makefile.am's.
1514 dnl GLIBCPP_INCLUDE_DIR
1516 dnl TOPLEVEL_INCLUDES
1517 dnl LIBMATH_INCLUDES
1518 dnl LIBSUPCXX_INCLUDES
1520 dnl CSHADOW_INCLUDES
1522 dnl GLIBCPP_EXPORT_INCLUDE
1523 AC_DEFUN(GLIBCPP_EXPORT_INCLUDES, [
1524 # Root level of the include sources.
1525 GLIBCPP_INCLUDE_DIR='$(top_srcdir)/include'
1527 # Can either use include/c or include/c_std to grab "C" headers. This
1528 # variable is set to the include directory currently in use.
1529 # set with C_INCLUDE_DIR in GLIBCPP_ENABLE_SHADOW
1531 # Passed down for cross compilers, canadian crosses.
1532 TOPLEVEL_INCLUDES='-I$(includedir)'
1534 LIBMATH_INCLUDES='-I$(top_srcdir)/libmath'
1536 LIBSUPCXX_INCLUDES='-I$(top_srcdir)/libsupc++'
1538 #if GLIBCPP_NEED_LIBIO
1539 LIBIO_INCLUDES='-I$(top_builddir)/libio -I$(top_srcdir)/libio'
1541 #LIBIO_INCLUDES='-I$(top_srcdir)/libio'
1544 #if GLIBCPP_USE_CSHADOW
1545 # CSHADOW_INCLUDES='-I$(GLIBCPP_INCLUDE_DIR)/std -I$(C_INCLUDE_DIR) \
1546 # -I$(top_blddir)/cshadow'
1548 CSHADOW_INCLUDES='-I$(GLIBCPP_INCLUDE_DIR)/std -I$(C_INCLUDE_DIR)'
1551 # Now, export this to all the little Makefiles....
1552 AC_SUBST(GLIBCPP_INCLUDE_DIR)
1553 AC_SUBST(TOPLEVEL_INCLUDES)
1554 AC_SUBST(LIBMATH_INCLUDES)
1555 AC_SUBST(LIBSUPCXX_INCLUDES)
1556 AC_SUBST(LIBIO_INCLUDES)
1557 AC_SUBST(CSHADOW_INCLUDES)
1562 dnl Set up *_FLAGS and *FLAGS variables for all sundry Makefile.am's.
1564 AC_DEFUN(GLIBCPP_EXPORT_FLAGS, [
1565 # Optimization flags that are probably a good idea for thrill-seekers. Just
1566 # uncomment the lines below and make, everything else is ready to go...
1567 # OPTIMIZE_CXXFLAGS = -O3 -fstrict-aliasing -fvtable-gc
1569 AC_SUBST(OPTIMIZE_CXXFLAGS)
1571 WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings -Winline'
1572 AC_SUBST(WARN_FLAGS)
1576 # Check whether LC_MESSAGES is available in <locale.h>.
1577 # Ulrich Drepper <drepper@cygnus.com>, 1995.
1579 # This file file be copied and used freely without restrictions. It can
1580 # be used in projects which are not available under the GNU Public License
1581 # but which still want to provide support for the GNU gettext functionality.
1582 # Please note that the actual code is *not* freely available.
1586 AC_DEFUN(AC_LC_MESSAGES,
1587 [if test $ac_cv_header_locale_h = yes; then
1588 AC_CACHE_CHECK([for LC_MESSAGES], ac_cv_val_LC_MESSAGES,
1589 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
1590 ac_cv_val_LC_MESSAGES=yes, ac_cv_val_LC_MESSAGES=no)])
1591 if test $ac_cv_val_LC_MESSAGES = yes; then
1592 AC_DEFINE(HAVE_LC_MESSAGES)
1597 # Check for functions in math library.
1598 # Ulrich Drepper <drepper@cygnus.com>, 1998.
1600 # This file can be copied and used freely without restrictions. It can
1601 # be used in projects which are not available under the GNU Public License
1602 # but which still want to provide support for the GNU gettext functionality.
1603 # Please note that the actual code is *not* freely available.
1607 dnl AC_REPLACE_MATHFUNCS(FUNCTION...)
1608 AC_DEFUN(AC_REPLACE_MATHFUNCS,
1609 [AC_CHECK_FUNCS([$1], , [LIBMATHOBJS="$LIBMATHOBJS ${ac_func}.lo"])
1610 AC_SUBST(LIBMATHOBJS)dnl
1614 # Check for string functions.
1615 # Ulrich Drepper <drepper@cygnus.com>, 1998.
1617 # This file can be copied and used freely without restrictions. It can
1618 # be used in projects which are not available under the GNU Public License
1619 # but which still want to provide support for the GNU gettext functionality.
1620 # Please note that the actual code is *not* freely available.
1624 dnl AC_REPLACE_STRINGFUNCS(FUNCTION...)
1625 AC_DEFUN(AC_REPLACE_STRINGFUNCS,
1626 [AC_CHECK_FUNCS([$1], , [LIBSTRINGOBJS="$LIBSTRINGOBJS ${ac_func}.lo"])
1627 AC_SUBST(LIBSTRINGOBJS)dnl
1631 dnl This macro searches for a GNU version of make. If a match is found, the
1632 dnl makefile variable `ifGNUmake' is set to the empty string, otherwise it is
1633 dnl set to "#". This is useful for including a special features in a Makefile,
1634 dnl which cannot be handled by other versions of make. The variable
1635 dnl _cv_gnu_make_command is set to the command to invoke GNU make if it exists,
1636 dnl the empty string otherwise.
1638 dnl Here is an example of its use:
1640 dnl Makefile.in might contain:
1642 dnl # A failsafe way of putting a dependency rule into a makefile
1644 dnl $(CC) -MM $(srcdir)/*.c > $(DEPEND)
1646 dnl @ifGNUmake@ ifeq ($(DEPEND),$(wildcard $(DEPEND)))
1647 dnl @ifGNUmake@ include $(DEPEND)
1648 dnl @ifGNUmake@ endif
1650 dnl Then configure.in would normally contain:
1652 dnl CHECK_GNU_MAKE()
1653 dnl AC_OUTPUT(Makefile)
1655 dnl Then perhaps to cause gnu make to override any other make, we could do
1656 dnl something like this (note that GNU make always looks for GNUmakefile first):
1658 dnl if ! test x$_cv_gnu_make_command = x ; then
1659 dnl mv Makefile GNUmakefile
1660 dnl echo .DEFAULT: > Makefile ;
1661 dnl echo \ $_cv_gnu_make_command \$@ >> Makefile;
1664 dnl Then, if any (well almost any) other make is called, and GNU make also
1665 dnl exists, then the other make wraps the GNU make.
1667 dnl @author John Darrington <j.darrington@elvis.murdoch.edu.au>
1668 dnl @version 1.1 #### replaced Id string now that Id is for lib-v3; pme
1670 dnl #### Changes for libstdc++-v3: reformatting and linewrapping; prepending
1671 dnl #### GLIBCPP_ to the macro name; adding the :-make fallback in the
1672 dnl #### conditional's subshell (" --version" is not a command), using a
1673 dnl #### different option to grep(1).
1676 GLIBCPP_CHECK_GNU_MAKE, [AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command,
1677 _cv_gnu_make_command='' ;
1678 dnl Search all the common names for GNU make
1679 for a in "${MAKE:-make}" make gmake gnumake ; do
1680 if ( $a --version 2> /dev/null | grep -c GNU )
1682 _cv_gnu_make_command=$a ;
1687 dnl If there was a GNU version, then set @ifGNUmake@ to the empty
1688 dnl string, '#' otherwise
1689 if test "x$_cv_gnu_make_command" != "x" ; then
1697 sinclude(../libtool.m4)
1698 dnl The lines below arrange for aclocal not to bring an installed
1699 dnl libtool.m4 into aclocal.m4, while still arranging for automake to
1700 dnl add a definition of LIBTOOL to Makefile.in.
1701 ifelse(,,,[AC_SUBST(LIBTOOL)
1702 AC_DEFUN([AM_PROG_LIBTOOL])
1703 AC_DEFUN([AC_LIBTOOL_DLOPEN])
1704 AC_DEFUN([AC_PROG_LD])