aclocal.m4 revision 117397
1dnl aclocal.m4 generated automatically by aclocal 1.4-p6 2 3dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. 4dnl This file is free software; the Free Software Foundation 5dnl gives unlimited permission to copy and/or distribute it, 6dnl with or without modifications, as long as this notice is preserved. 7 8dnl This program is distributed in the hope that it will be useful, 9dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without 10dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A 11dnl PARTICULAR PURPOSE. 12 13dnl 14dnl Initialize basic configure bits, set toplevel_srcdir for Makefiles. 15dnl 16dnl GLIBCPP_TOPREL_CONFIGURE 17AC_DEFUN(GLIBCPP_TOPREL_CONFIGURE, [ 18 dnl Default to --enable-multilib (this is also passed by default 19 dnl from the ubercommon-top-level configure) 20 AC_ARG_ENABLE(multilib, 21 [ --enable-multilib build hella library versions (default)], 22 [case "${enableval}" in 23 yes) multilib=yes ;; 24 no) multilib=no ;; 25 *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; 26 esac], [multilib=yes])dnl 27 28 # When building with srcdir == objdir, links to the source files will 29 # be created in directories within the target_subdir. We have to 30 # adjust toplevel_srcdir accordingly, so that configure finds 31 # install-sh and other auxiliary files that live in the top-level 32 # source directory. 33 if test "${srcdir}" = "."; then 34 if test -z "${with_target_subdir}"; then 35 toprel=".." 36 else 37 if test "${with_target_subdir}" != "."; then 38 toprel="${with_multisrctop}../.." 39 else 40 toprel="${with_multisrctop}.." 41 fi 42 fi 43 else 44 toprel=".." 45 fi 46 AC_CONFIG_AUX_DIR(${srcdir}/$toprel) 47 toplevel_srcdir=\${top_srcdir}/$toprel 48 AC_SUBST(toplevel_srcdir) 49]) 50 51dnl 52dnl Initialize the rest of the library configury. 53dnl 54dnl GLIBCPP_CONFIGURE 55AC_DEFUN(GLIBCPP_CONFIGURE, [ 56 # Export build and source directories. 57 # These need to be absolute paths, yet at the same time need to 58 # canonicalize only relative paths, because then amd will not unmount 59 # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. 60 glibcpp_builddir=`${PWDCMD-pwd}` 61 case $srcdir in 62 [\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;; 63 *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; 64 esac 65 AC_SUBST(glibcpp_builddir) 66 AC_SUBST(glibcpp_srcdir) 67 68 dnl This is here just to satisfy automake. 69 ifelse(not,equal,[AC_CONFIG_AUX_DIR(..)]) 70 71 AC_PROG_AWK 72 # Will set LN_S to either 'ln -s' or 'ln'. With autoconf 2.5x, can also 73 # be 'cp -p' if linking isn't available. Uncomment the next line to 74 # force a particular method. 75 #ac_cv_prog_LN_S='cp -p' 76 AC_PROG_LN_S 77 78 # We use these options to decide which functions to include. 79 AC_ARG_WITH(target-subdir, 80 [ --with-target-subdir=SUBDIR 81 configuring in a subdirectory]) 82 AC_ARG_WITH(cross-host, 83 [ --with-cross-host=HOST configuring with a cross compiler]) 84 85 glibcpp_basedir=$srcdir/$toprel/$1/libstdc++-v3 86 AC_SUBST(glibcpp_basedir) 87 88 # Never versions of autoconf add an underscore to these functions. 89 # Prevent future problems ... 90 ifdef([AC_PROG_CC_G],[],[define([AC_PROG_CC_G],defn([_AC_PROG_CC_G]))]) 91 ifdef([AC_PROG_CC_GNU],[],[define([AC_PROG_CC_GNU],defn([_AC_PROG_CC_GNU]))]) 92 ifdef([AC_PROG_CXX_G],[],[define([AC_PROG_CXX_G],defn([_AC_PROG_CXX_G]))]) 93 ifdef([AC_PROG_CXX_GNU],[],[define([AC_PROG_CXX_GNU],defn([_AC_PROG_CXX_GNU]))]) 94 95 # AC_PROG_CC 96 # FIXME: We temporarily define our own version of AC_PROG_CC. This is 97 # copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We 98 # are probably using a cross compiler, which will not be able to fully 99 # link an executable. This is addressed in later versions of autoconf. 100 101 AC_DEFUN(LIB_AC_PROG_CC, 102 [AC_BEFORE([$0], [AC_PROG_CPP])dnl 103 dnl Fool anybody using AC_PROG_CC. 104 AC_PROVIDE([AC_PROG_CC]) 105 AC_CHECK_PROG(CC, gcc, gcc) 106 if test -z "$CC"; then 107 AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) 108 test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) 109 fi 110 111 AC_PROG_CC_GNU 112 113 if test $ac_cv_prog_gcc = yes; then 114 GCC=yes 115 dnl Check whether -g works, even if CFLAGS is set, in case the package 116 dnl plays around with CFLAGS (such as to build both debugging and 117 dnl normal versions of a library), tasteless as that idea is. 118 ac_test_CFLAGS="${CFLAGS+set}" 119 ac_save_CFLAGS="$CFLAGS" 120 CFLAGS= 121 AC_PROG_CC_G 122 if test "$ac_test_CFLAGS" = set; then 123 CFLAGS="$ac_save_CFLAGS" 124 elif test $ac_cv_prog_cc_g = yes; then 125 CFLAGS="-g -O2" 126 else 127 CFLAGS="-O2" 128 fi 129 else 130 GCC= 131 test "${CFLAGS+set}" = set || CFLAGS="-g" 132 fi 133 ]) 134 135 LIB_AC_PROG_CC 136 137 # Likewise for AC_PROG_CXX. We can't just call it directly because g++ 138 # will try to link in libstdc++. 139 AC_DEFUN(LIB_AC_PROG_CXX, 140 [AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl 141 dnl Fool anybody using AC_PROG_CXX. 142 AC_PROVIDE([AC_PROG_CXX]) 143 # Use glibcpp_CXX so that we do not cause CXX to be cached with the 144 # flags that come in CXX while configuring libstdc++. They're different 145 # from those used for all other target libraries. If CXX is set in 146 # the environment, respect that here. 147 glibcpp_CXX=$CXX 148 AC_CHECK_PROGS(glibcpp_CXX, $CCC c++ g++ gcc CC cxx cc++, gcc) 149 AC_SUBST(glibcpp_CXX) 150 CXX=$glibcpp_CXX 151 test -z "$glibcpp_CXX" && AC_MSG_ERROR([no acceptable c++ found in \$PATH]) 152 153 AC_PROG_CXX_GNU 154 155 if test $ac_cv_prog_gxx = yes; then 156 GXX=yes 157 dnl Check whether -g works, even if CXXFLAGS is set, in case the package 158 dnl plays around with CXXFLAGS (such as to build both debugging and 159 dnl normal versions of a library), tasteless as that idea is. 160 ac_test_CXXFLAGS="${CXXFLAGS+set}" 161 ac_save_CXXFLAGS="$CXXFLAGS" 162 CXXFLAGS= 163 AC_PROG_CXX_G 164 if test "$ac_test_CXXFLAGS" = set; then 165 CXXFLAGS="$ac_save_CXXFLAGS" 166 elif test $ac_cv_prog_cxx_g = yes; then 167 CXXFLAGS="-g -O2" 168 else 169 CXXFLAGS="-O2" 170 fi 171 else 172 GXX= 173 test "${CXXFLAGS+set}" = set || CXXFLAGS="-g" 174 fi 175 ]) 176 177 LIB_AC_PROG_CXX 178 179 # For directory versioning (e.g., headers) and other variables. 180 AC_MSG_CHECKING([for GCC version number]) 181 gcc_version=`$glibcpp_CXX -dumpversion` 182 AC_MSG_RESULT($gcc_version) 183 184 # For some reason, gettext needs this. 185 AC_ISC_POSIX 186 187 AC_CHECK_TOOL(AS, as) 188 AC_CHECK_TOOL(AR, ar) 189 AC_CHECK_TOOL(RANLIB, ranlib, ranlib-not-found-in-path-error) 190 AC_PROG_INSTALL 191 192 AM_MAINTAINER_MODE 193 194 # We need AC_EXEEXT to keep automake happy in cygnus mode. However, 195 # at least currently, we never actually build a program, so we never 196 # need to use $(EXEEXT). Moreover, the test for EXEEXT normally 197 # fails, because we are probably configuring with a cross compiler 198 # which can't create executables. So we include AC_EXEEXT to keep 199 # automake happy, but we don't execute it, since we don't care about 200 # the result. 201 if false; then 202 # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands 203 # to nothing, so nothing would remain between `then' and `fi' if it 204 # were not for the `:' below. 205 : 206 AC_EXEEXT 207 fi 208 209 case [$]{glibcpp_basedir} in 210 /* | [A-Za-z]:[\\/]*) libgcj_flagbasedir=[$]{glibcpp_basedir} ;; 211 *) glibcpp_flagbasedir='[$](top_builddir)/'[$]{glibcpp_basedir} ;; 212 esac 213 214 # Find platform-specific directories containing configuration info. In 215 # addition to possibly modifying the same flags, it also sets up symlinks. 216 GLIBCPP_CHECK_TARGET 217]) 218 219 220dnl 221dnl Check to see if g++ can compile this library, and if so, if any version- 222dnl specific precautions need to be taken. 223dnl 224dnl GLIBCPP_CHECK_COMPILER_VERSION 225AC_DEFUN(GLIBCPP_CHECK_COMPILER_VERSION, [ 226if test ! -f stamp-sanity-compiler; then 227 AC_MSG_CHECKING([for g++ that will successfully compile libstdc++-v3]) 228 AC_LANG_SAVE 229 AC_LANG_CPLUSPLUS 230 AC_TRY_COMPILE(, [ 231 #if __GNUC__ < 3 232 not_ok 233 #endif 234 ], gpp_satisfactory=yes, AC_MSG_ERROR([please upgrade to GCC 3.0 or above])) 235 AC_LANG_RESTORE 236 AC_MSG_RESULT($gpp_satisfactory) 237 touch stamp-sanity-compiler 238fi 239]) 240 241 242dnl 243dnl Tests for newer compiler features, or features that are present in newer 244dnl compiler versions but not older compiler versions still in use, should 245dnl be placed here. 246dnl 247dnl Define WERROR='-Werror' if requested and possible; g++'s that lack the 248dnl new inlining code or the new system_header pragma will die on -Werror. 249dnl Leave it out by default and use maint-mode to use it. 250dnl 251dnl Define SECTION_FLAGS='-ffunction-sections -fdata-sections' if 252dnl compiler supports it and the user has not requested debug mode. 253dnl 254dnl GLIBCPP_CHECK_COMPILER_FEATURES 255AC_DEFUN(GLIBCPP_CHECK_COMPILER_FEATURES, [ 256 # All these tests are for C++; save the language and the compiler flags. 257 # The CXXFLAGS thing is suspicious, but based on similar bits previously 258 # found in GLIBCPP_CONFIGURE. 259 AC_LANG_SAVE 260 AC_LANG_CPLUSPLUS 261 ac_test_CXXFLAGS="${CXXFLAGS+set}" 262 ac_save_CXXFLAGS="$CXXFLAGS" 263 264 # Check for maintainer-mode bits. 265 if test x"$USE_MAINTAINER_MODE" = xno; then 266 WERROR='' 267 else 268 WERROR='-Werror' 269 fi 270 271 # Check for -ffunction-sections -fdata-sections 272 AC_MSG_CHECKING([for g++ that supports -ffunction-sections -fdata-sections]) 273 CXXFLAGS='-Werror -ffunction-sections -fdata-sections' 274 AC_TRY_COMPILE(, [int foo; 275 ], [ac_fdsections=yes], [ac_fdsections=no]) 276 if test "$ac_test_CXXFLAGS" = set; then 277 CXXFLAGS="$ac_save_CXXFLAGS" 278 else 279 # this is the suspicious part 280 CXXFLAGS='' 281 fi 282 if test x"$ac_fdsections" = x"yes"; then 283 SECTION_FLAGS='-ffunction-sections -fdata-sections' 284 fi 285 AC_MSG_RESULT($ac_fdsections) 286 287 AC_LANG_RESTORE 288 AC_SUBST(WERROR) 289 AC_SUBST(SECTION_FLAGS) 290]) 291 292 293dnl 294dnl If GNU ld is in use, check to see if tricky linker opts can be used. If 295dnl the native linker is in use, all variables will be defined to something 296dnl safe (like an empty string). 297dnl 298dnl Define SECTION_LDFLAGS='-Wl,--gc-sections' if possible. 299dnl Define OPT_LDFLAGS='-Wl,-O1' if possible. 300dnl Define LD, with_gnu_ld, and (possibly) glibcpp_gnu_ld_version as 301dnl side-effects of testing. 302dnl 303dnl GLIBCPP_CHECK_LINKER_FEATURES 304AC_DEFUN(GLIBCPP_CHECK_LINKER_FEATURES, [ 305 # If we're not using GNU ld, then there's no point in even trying these 306 # tests. Check for that first. We should have already tested for gld 307 # by now (in libtool), but require it now just to be safe... 308 test -z "$SECTION_LDFLAGS" && SECTION_LDFLAGS='' 309 test -z "$OPT_LDFLAGS" && OPT_LDFLAGS='' 310 AC_REQUIRE([AC_PROG_LD]) 311 312 # The name set by libtool depends on the version of libtool. Shame on us 313 # for depending on an impl detail, but c'est la vie. Older versions used 314 # ac_cv_prog_gnu_ld, but now it's lt_cv_prog_gnu_ld, and is copied back on 315 # top of with_gnu_ld (which is also set by --with-gnu-ld, so that actually 316 # makes sense). We'll test with_gnu_ld everywhere else, so if that isn't 317 # set (hence we're using an older libtool), then set it. 318 if test x${with_gnu_ld+set} != xset; then 319 if test x${ac_cv_prog_gnu_ld+set} != xset; then 320 # We got through "ac_require(ac_prog_ld)" and still not set? Huh? 321 with_gnu_ld=no 322 else 323 with_gnu_ld=$ac_cv_prog_gnu_ld 324 fi 325 fi 326 327 # Start by getting the version number. I think the libtool test already 328 # does some of this, but throws away the result. 329 changequote(,) 330 ldver=`$LD --version 2>/dev/null | head -1 | \ 331 sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'` 332 changequote([,]) 333 glibcpp_gnu_ld_version=`echo $ldver | \ 334 $AWK -F. '{ if (NF<3) [$]3=0; print ([$]1*100+[$]2)*100+[$]3 }'` 335 336 # Set --gc-sections. 337 if test "$with_gnu_ld" = "notbroken"; then 338 # GNU ld it is! Joy and bunny rabbits! 339 340 # All these tests are for C++; save the language and the compiler flags. 341 # Need to do this so that g++ won't try to link in libstdc++ 342 ac_test_CFLAGS="${CFLAGS+set}" 343 ac_save_CFLAGS="$CFLAGS" 344 CFLAGS='-x c++ -Wl,--gc-sections' 345 346 # Check for -Wl,--gc-sections 347 # XXX This test is broken at the moment, as symbols required for 348 # linking are now in libsupc++ (not built yet.....). In addition, 349 # this test has cored on solaris in the past. In addition, 350 # --gc-sections doesn't really work at the moment (keeps on discarding 351 # used sections, first .eh_frame and now some of the glibc sections for 352 # iconv). Bzzzzt. Thanks for playing, maybe next time. 353 AC_MSG_CHECKING([for ld that supports -Wl,--gc-sections]) 354 AC_TRY_RUN([ 355 int main(void) 356 { 357 try { throw 1; } 358 catch (...) { }; 359 return 0; 360 } 361 ], [ac_sectionLDflags=yes],[ac_sectionLDflags=no], [ac_sectionLDflags=yes]) 362 if test "$ac_test_CFLAGS" = set; then 363 CFLAGS="$ac_save_CFLAGS" 364 else 365 # this is the suspicious part 366 CFLAGS='' 367 fi 368 if test "$ac_sectionLDflags" = "yes"; then 369 SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS" 370 fi 371 AC_MSG_RESULT($ac_sectionLDflags) 372 fi 373 374 # Set linker optimization flags. 375 if test x"$with_gnu_ld" = x"yes"; then 376 OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS" 377 fi 378 379 AC_SUBST(SECTION_LDFLAGS) 380 AC_SUBST(OPT_LDFLAGS) 381]) 382 383 384dnl 385dnl Check to see if the (math function) argument passed is 386dnl declared when using the c++ compiler 387dnl ASSUMES argument is a math function with ONE parameter 388dnl 389dnl GLIBCPP_CHECK_MATH_DECL_1 390AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_1, [ 391 AC_MSG_CHECKING([for $1 declaration]) 392 if test x${glibcpp_cv_func_$1_use+set} != xset; then 393 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [ 394 AC_LANG_SAVE 395 AC_LANG_CPLUSPLUS 396 AC_TRY_COMPILE([#include <math.h> 397 #ifdef HAVE_IEEEFP_H 398 #include <ieeefp.h> 399 #endif 400 ], 401 [ $1(0);], 402 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no]) 403 AC_LANG_RESTORE 404 ]) 405 fi 406 AC_MSG_RESULT($glibcpp_cv_func_$1_use) 407]) 408 409dnl 410dnl Check to see if the (math function) argument passed is 411dnl 1) declared when using the c++ compiler 412dnl 2) has "C" linkage 413dnl 3) if not, see if 1) and 2) for argument prepended with '_' 414dnl 415dnl Define HAVE_CARGF etc if "cargf" is declared and links 416dnl 417dnl argument 1 is name of function to check 418dnl 419dnl ASSUMES argument is a math function with ONE parameter 420dnl 421dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1 422AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1, [ 423 GLIBCPP_CHECK_MATH_DECL_1($1) 424 if test x$glibcpp_cv_func_$1_use = x"yes"; then 425 AC_CHECK_FUNCS($1) 426 else 427 GLIBCPP_CHECK_MATH_DECL_1(_$1) 428 if test x$glibcpp_cv_func__$1_use = x"yes"; then 429 AC_CHECK_FUNCS(_$1) 430 fi 431 fi 432]) 433 434 435dnl 436dnl Like GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1, but does a bunch of 437dnl of functions at once. It's an all-or-nothing check -- either 438dnl HAVE_XYZ is defined for each of the functions, or for none of them. 439dnl Doing it this way saves significant configure time. 440AC_DEFUN(GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1, [ 441 AC_MSG_CHECKING([for $1 functions]) 442 AC_CACHE_VAL(glibcpp_cv_func_$2_use, [ 443 AC_LANG_SAVE 444 AC_LANG_CPLUSPLUS 445 AC_TRY_COMPILE([#include <math.h>], 446 [ `for x in $3; do echo "$x (0);"; done` ], 447 [glibcpp_cv_func_$2_use=yes], 448 [glibcpp_cv_func_$2_use=no]) 449 AC_LANG_RESTORE]) 450 AC_MSG_RESULT($glibcpp_cv_func_$2_use) 451 if test x$glibcpp_cv_func_$2_use = x"yes"; then 452 AC_CHECK_FUNCS($3) 453 fi 454]) 455 456dnl 457dnl Check to see if the (math function) argument passed is 458dnl declared when using the c++ compiler 459dnl ASSUMES argument is a math function with TWO parameters 460dnl 461dnl GLIBCPP_CHECK_MATH_DECL_2 462AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_2, [ 463 AC_MSG_CHECKING([for $1 declaration]) 464 if test x${glibcpp_cv_func_$1_use+set} != xset; then 465 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [ 466 AC_LANG_SAVE 467 AC_LANG_CPLUSPLUS 468 AC_TRY_COMPILE([#include <math.h>], 469 [ $1(0, 0);], 470 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no]) 471 AC_LANG_RESTORE 472 ]) 473 fi 474 AC_MSG_RESULT($glibcpp_cv_func_$1_use) 475]) 476 477dnl 478dnl Check to see if the (math function) argument passed is 479dnl 1) declared when using the c++ compiler 480dnl 2) has "C" linkage 481dnl 482dnl Define HAVE_CARGF etc if "cargf" is declared and links 483dnl 484dnl argument 1 is name of function to check 485dnl 486dnl ASSUMES argument is a math function with TWO parameters 487dnl 488dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2 489AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2, [ 490 GLIBCPP_CHECK_MATH_DECL_2($1) 491 if test x$glibcpp_cv_func_$1_use = x"yes"; then 492 AC_CHECK_FUNCS($1) 493 else 494 GLIBCPP_CHECK_MATH_DECL_2(_$1) 495 if test x$glibcpp_cv_func__$1_use = x"yes"; then 496 AC_CHECK_FUNCS(_$1) 497 fi 498 fi 499]) 500 501 502dnl 503dnl Check to see if the (math function) argument passed is 504dnl declared when using the c++ compiler 505dnl ASSUMES argument is a math function with THREE parameters 506dnl 507dnl GLIBCPP_CHECK_MATH_DECL_3 508AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_3, [ 509 AC_MSG_CHECKING([for $1 declaration]) 510 if test x${glibcpp_cv_func_$1_use+set} != xset; then 511 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [ 512 AC_LANG_SAVE 513 AC_LANG_CPLUSPLUS 514 AC_TRY_COMPILE([#include <math.h>], 515 [ $1(0, 0, 0);], 516 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no]) 517 AC_LANG_RESTORE 518 ]) 519 fi 520 AC_MSG_RESULT($glibcpp_cv_func_$1_use) 521]) 522 523dnl 524dnl Check to see if the (math function) argument passed is 525dnl 1) declared when using the c++ compiler 526dnl 2) has "C" linkage 527dnl 528dnl Define HAVE_CARGF etc if "cargf" is declared and links 529dnl 530dnl argument 1 is name of function to check 531dnl 532dnl ASSUMES argument is a math function with THREE parameters 533dnl 534dnl GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3 535AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3, [ 536 GLIBCPP_CHECK_MATH_DECL_3($1) 537 if test x$glibcpp_cv_func_$1_use = x"yes"; then 538 AC_CHECK_FUNCS($1) 539 else 540 GLIBCPP_CHECK_MATH_DECL_3(_$1) 541 if test x$glibcpp_cv_func__$1_use = x"yes"; then 542 AC_CHECK_FUNCS(_$1) 543 fi 544 fi 545]) 546 547 548dnl 549dnl Check to see if the (stdlib function) argument passed is 550dnl 1) declared when using the c++ compiler 551dnl 2) has "C" linkage 552dnl 553dnl argument 1 is name of function to check 554dnl 555dnl ASSUMES argument is a math function with TWO parameters 556dnl 557dnl GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2 558AC_DEFUN(GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2, [ 559 AC_MSG_CHECKING([for $1 declaration]) 560 if test x${glibcpp_cv_func_$1_use+set} != xset; then 561 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [ 562 AC_LANG_SAVE 563 AC_LANG_CPLUSPLUS 564 AC_TRY_COMPILE([#include <stdlib.h>], 565 [ $1(0, 0);], 566 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no]) 567 AC_LANG_RESTORE 568 ]) 569 fi 570 AC_MSG_RESULT($glibcpp_cv_func_$1_use) 571 if test x$glibcpp_cv_func_$1_use = x"yes"; then 572 AC_CHECK_FUNCS($1) 573 fi 574]) 575 576 577dnl 578dnl Check to see if the (stdlib function) argument passed is 579dnl 1) declared when using the c++ compiler 580dnl 2) has "C" linkage 581dnl 582dnl argument 1 is name of function to check 583dnl 584dnl ASSUMES argument is a function with THREE parameters 585dnl 586dnl GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3 587AC_DEFUN(GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3, [ 588 AC_MSG_CHECKING([for $1 declaration]) 589 if test x${glibcpp_cv_func_$1_use+set} != xset; then 590 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [ 591 AC_LANG_SAVE 592 AC_LANG_CPLUSPLUS 593 AC_TRY_COMPILE([#include <stdlib.h>], 594 [ $1(0, 0, 0);], 595 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no]) 596 AC_LANG_RESTORE 597 ]) 598 fi 599 AC_MSG_RESULT($glibcpp_cv_func_$1_use) 600 if test x$glibcpp_cv_func_$1_use = x"yes"; then 601 AC_CHECK_FUNCS($1) 602 fi 603]) 604 605dnl 606dnl Check to see if the (unistd function) argument passed is 607dnl 1) declared when using the c++ compiler 608dnl 2) has "C" linkage 609dnl 610dnl argument 1 is name of function to check 611dnl 612dnl ASSUMES argument is a function with ONE parameter 613dnl 614dnl GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1 615AC_DEFUN(GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1, [ 616 AC_MSG_CHECKING([for $1 declaration]) 617 if test x${glibcpp_cv_func_$1_use+set} != xset; then 618 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [ 619 AC_LANG_SAVE 620 AC_LANG_CPLUSPLUS 621 AC_TRY_COMPILE([#include <unistd.h>], 622 [ $1(0);], 623 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no]) 624 AC_LANG_RESTORE 625 ]) 626 fi 627 AC_MSG_RESULT($glibcpp_cv_func_$1_use) 628 if test x$glibcpp_cv_func_$1_use = x"yes"; then 629 AC_CHECK_FUNCS($1) 630 fi 631]) 632 633dnl 634dnl Because the builtins are picky picky picky about the arguments they take, 635dnl do an explict linkage tests here. 636dnl Check to see if the (math function) argument passed is 637dnl 1) declared when using the c++ compiler 638dnl 2) has "C" linkage 639dnl 640dnl Define HAVE_CARGF etc if "cargf" is declared and links 641dnl 642dnl argument 1 is name of function to check 643dnl 644dnl ASSUMES argument is a math function with ONE parameter 645dnl 646dnl GLIBCPP_CHECK_BUILTIN_MATH_DECL_LINKAGE_1 647AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1, [ 648 AC_MSG_CHECKING([for $1 declaration]) 649 if test x${glibcpp_cv_func_$1_use+set} != xset; then 650 AC_CACHE_VAL(glibcpp_cv_func_$1_use, [ 651 AC_LANG_SAVE 652 AC_LANG_CPLUSPLUS 653 AC_TRY_COMPILE([#include <math.h>], 654 [ $1(0);], 655 [glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no]) 656 AC_LANG_RESTORE 657 ]) 658 fi 659 AC_MSG_RESULT($glibcpp_cv_func_$1_use) 660 if test x$glibcpp_cv_func_$1_use = x"yes"; then 661 AC_MSG_CHECKING([for $1 linkage]) 662 if test x${glibcpp_cv_func_$1_link+set} != xset; then 663 AC_CACHE_VAL(glibcpp_cv_func_$1_link, [ 664 AC_TRY_LINK([#include <math.h>], 665 [ $1(0);], 666 [glibcpp_cv_func_$1_link=yes], [glibcpp_cv_func_$1_link=no]) 667 ]) 668 fi 669 AC_MSG_RESULT($glibcpp_cv_func_$1_link) 670 if test x$glibcpp_cv_func_$1_link = x"yes"; then 671 ac_tr_func=HAVE_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` 672 AC_DEFINE_UNQUOTED(${ac_tr_func}) 673 fi 674 fi 675]) 676 677 678dnl 679dnl Check to see what builtin math functions are supported 680dnl 681dnl check for __builtin_abs 682dnl check for __builtin_fabsf 683dnl check for __builtin_fabs 684dnl check for __builtin_fabl 685dnl check for __builtin_labs 686dnl check for __builtin_sqrtf 687dnl check for __builtin_sqrtl 688dnl check for __builtin_sqrt 689dnl check for __builtin_sinf 690dnl check for __builtin_sin 691dnl check for __builtin_sinl 692dnl check for __builtin_cosf 693dnl check for __builtin_cos 694dnl check for __builtin_cosl 695dnl 696dnl GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT 697AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT, [ 698 dnl Test for builtin math functions. 699 dnl These are made in gcc/c-common.c 700 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_abs) 701 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabsf) 702 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabs) 703 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabsl) 704 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_labs) 705 706 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrtf) 707 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrt) 708 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrtl) 709 710 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sinf) 711 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sin) 712 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sinl) 713 714 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cosf) 715 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cos) 716 GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cosl) 717 718 dnl There is, without a doubt, a more elegant way to have these 719 dnl names exported so that they won't be stripped out of acconfig.h by 720 dnl autoheader. I leave this as an exercise to somebody less frustrated 721 dnl than I.... please email the libstdc++ list if you can figure out a 722 dnl more elegant approach (see autoconf/acgen.m4 and specifically 723 dnl AC_CHECK_FUNC for things to steal.) 724 dummyvar=no 725 if test x$dummyvar = x"yes"; then 726 AC_DEFINE(HAVE___BUILTIN_ABS) 727 AC_DEFINE(HAVE___BUILTIN_LABS) 728 AC_DEFINE(HAVE___BUILTIN_COS) 729 AC_DEFINE(HAVE___BUILTIN_COSF) 730 AC_DEFINE(HAVE___BUILTIN_COSL) 731 AC_DEFINE(HAVE___BUILTIN_FABS) 732 AC_DEFINE(HAVE___BUILTIN_FABSF) 733 AC_DEFINE(HAVE___BUILTIN_FABSL) 734 AC_DEFINE(HAVE___BUILTIN_SIN) 735 AC_DEFINE(HAVE___BUILTIN_SINF) 736 AC_DEFINE(HAVE___BUILTIN_SINL) 737 AC_DEFINE(HAVE___BUILTIN_SQRT) 738 AC_DEFINE(HAVE___BUILTIN_SQRTF) 739 AC_DEFINE(HAVE___BUILTIN_SQRTL) 740 fi 741]) 742 743dnl 744dnl Check to see what the underlying c library is like 745dnl These checks need to do two things: 746dnl 1) make sure the name is declared when using the c++ compiler 747dnl 2) make sure the name has "C" linkage 748dnl This might seem like overkill but experience has shown that it's not... 749dnl 750dnl Define HAVE_STRTOLD if "strtold" is declared and links 751dnl Define HAVE_STRTOF if "strtof" is declared and links 752dnl Define HAVE_DRAND48 if "drand48" is declared and links 753dnl 754dnl GLIBCPP_CHECK_STDLIB_SUPPORT 755AC_DEFUN(GLIBCPP_CHECK_STDLIB_SUPPORT, [ 756 ac_test_CXXFLAGS="${CXXFLAGS+set}" 757 ac_save_CXXFLAGS="$CXXFLAGS" 758 CXXFLAGS='-fno-builtin -D_GNU_SOURCE' 759 760 GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtold) 761 GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtof) 762 AC_CHECK_FUNCS(drand48) 763 764 CXXFLAGS="$ac_save_CXXFLAGS" 765]) 766 767dnl 768dnl Check to see what the underlying c library is like 769dnl These checks need to do two things: 770dnl 1) make sure the name is declared when using the c++ compiler 771dnl 2) make sure the name has "C" linkage 772dnl This might seem like overkill but experience has shown that it's not... 773dnl 774dnl Define HAVE_ISATTY if "isatty" is declared and links 775dnl 776dnl GLIBCPP_CHECK_UNISTD_SUPPORT 777AC_DEFUN(GLIBCPP_CHECK_UNISTD_SUPPORT, [ 778 ac_test_CXXFLAGS="${CXXFLAGS+set}" 779 ac_save_CXXFLAGS="$CXXFLAGS" 780 CXXFLAGS='-fno-builtins -D_GNU_SOURCE' 781 782 GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1(isatty) 783 784 CXXFLAGS="$ac_save_CXXFLAGS" 785]) 786 787dnl 788dnl Check to see what the underlying c library or math library is like. 789dnl These checks need to do two things: 790dnl 1) make sure the name is declared when using the c++ compiler 791dnl 2) make sure the name has "C" linkage 792dnl This might seem like overkill but experience has shown that it's not... 793dnl 794dnl Define HAVE_CARGF etc if "cargf" is found. 795dnl 796dnl GLIBCPP_CHECK_MATH_SUPPORT 797AC_DEFUN(GLIBCPP_CHECK_MATH_SUPPORT, [ 798 ac_test_CXXFLAGS="${CXXFLAGS+set}" 799 ac_save_CXXFLAGS="$CXXFLAGS" 800 CXXFLAGS='-fno-builtin -D_GNU_SOURCE' 801 802 dnl Check libm 803 AC_CHECK_LIB(m, sin, libm="-lm") 804 ac_save_LIBS="$LIBS" 805 LIBS="$LIBS $libm" 806 807 dnl Check to see if certain C math functions exist. 808 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinf) 809 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnan) 810 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finite) 811 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(copysign) 812 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincos) 813 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fpclass) 814 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(qfpclass) 815 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypot) 816 817 dnl Check to see if basic C math functions have float versions. 818 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(float trig, 819 float_trig, 820 acosf asinf atanf \ 821 cosf sinf tanf \ 822 coshf sinhf tanhf) 823 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(float round, 824 float_round, 825 ceilf floorf) 826 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(expf) 827 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnanf) 828 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinff) 829 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(atan2f) 830 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsf) 831 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodf) 832 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpf) 833 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypotf) 834 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpf) 835 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logf) 836 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10f) 837 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(modff) 838 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(powf) 839 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtf) 840 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincosf) 841 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finitef) 842 843 dnl Check to see if basic C math functions have long double versions. 844 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(long double trig, 845 long_double_trig, 846 acosl asinl atanl \ 847 cosl sinl tanl \ 848 coshl sinhl tanhl) 849 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(long double round, 850 long_double_round, 851 ceill floorl) 852 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnanl) 853 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinfl) 854 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(copysignl) 855 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(atan2l) 856 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(expl) 857 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsl) 858 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodl) 859 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpl) 860 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypotl) 861 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpl) 862 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logl) 863 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10l) 864 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(modfl) 865 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(powl) 866 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtl) 867 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincosl) 868 GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finitel) 869 870 dnl Some runtimes have these functions with a preceding underscore. Please 871 dnl keep this sync'd with the one above. And if you add any new symbol, 872 dnl please add the corresponding block in the @BOTTOM@ section of acconfig.h. 873 dnl Check to see if certain C math functions exist. 874 875 dnl Check to see if basic C math functions have float versions. 876 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_float trig, 877 _float_trig, 878 _acosf _asinf _atanf \ 879 _cosf _sinf _tanf \ 880 _coshf _sinhf _tanhf) 881 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_float round, 882 _float_round, 883 _ceilf _floorf) 884 885 dnl Check to see if basic C math functions have long double versions. 886 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_long double trig, 887 _long_double_trig, 888 _acosl _asinl _atanl \ 889 _cosl _sinl _tanl \ 890 _coshl _sinhl _tanhl) 891 GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_long double round, 892 _long_double_round, 893 _ceill _floorl) 894 895 LIBS="$ac_save_LIBS" 896 CXXFLAGS="$ac_save_CXXFLAGS" 897]) 898 899 900dnl 901dnl Check to see if there is native support for complex 902dnl 903dnl Don't compile bits in math/* if native support exits. 904dnl 905dnl Define USE_COMPLEX_LONG_DOUBLE etc if "copysignl" is found. 906dnl 907dnl GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT 908AC_DEFUN(GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT, [ 909 dnl Check for complex versions of math functions of platform. 910 AC_CHECK_LIB(m, main) 911 AC_REPLACE_MATHFUNCS(nan copysignf) 912 913 dnl For __signbit to signbit conversions. 914 AC_CHECK_FUNCS([__signbit], , [LIBMATHOBJS="$LIBMATHOBJS signbit.lo"]) 915 AC_CHECK_FUNCS([__signbitf], , [LIBMATHOBJS="$LIBMATHOBJS signbitf.lo"]) 916 917 dnl Compile the long double complex functions only if the function 918 dnl provides the non-complex long double functions that are needed. 919 dnl Currently this includes copysignl, which should be 920 dnl cached from the GLIBCPP_CHECK_MATH_SUPPORT macro, above. 921 if test x$ac_cv_func_copysignl = x"yes"; then 922 AC_CHECK_FUNCS([__signbitl], , [LIBMATHOBJS="$LIBMATHOBJS signbitl.lo"]) 923 fi 924 925 if test -n "$LIBMATHOBJS"; then 926 need_libmath=yes 927 fi 928 AC_SUBST(LIBMATHOBJS) 929 AM_CONDITIONAL(GLIBCPP_BUILD_LIBMATH, test "$need_libmath" = yes) 930]) 931 932 933dnl Check to see what architecture and operating system we are compiling 934dnl for. Also, if architecture- or OS-specific flags are required for 935dnl compilation, pick them up here. 936dnl 937dnl GLIBCPP_CHECK_TARGET 938AC_DEFUN(GLIBCPP_CHECK_TARGET, [ 939 . [$]{glibcpp_basedir}/configure.target 940 AC_MSG_RESULT(CPU config directory is $cpu_include_dir) 941 AC_MSG_RESULT(OS config directory is $os_include_dir) 942]) 943 944 945dnl 946dnl Check to see if this target can enable the wchar_t parts of libstdc++. 947dnl If --disable-c-mbchar was given, no wchar_t stuff is enabled. (This 948dnl must have been previously checked.) 949dnl 950dnl Define _GLIBCPP_USE_WCHAR_T if all the bits are found 951dnl Define HAVE_MBSTATE_T if mbstate_t is not in wchar.h 952dnl 953dnl GLIBCPP_CHECK_WCHAR_T_SUPPORT 954AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [ 955 dnl Wide characters disabled by default. 956 enable_wchar_t=no 957 958 dnl Test wchar.h for mbstate_t, which is needed for char_traits and 959 dnl others even if wchar_t support is not on. 960 AC_MSG_CHECKING([for mbstate_t]) 961 AC_TRY_COMPILE([#include <wchar.h>], 962 [mbstate_t teststate;], 963 have_mbstate_t=yes, have_mbstate_t=no) 964 AC_MSG_RESULT($have_mbstate_t) 965 if test x"$have_mbstate_t" = xyes; then 966 AC_DEFINE(HAVE_MBSTATE_T) 967 fi 968 969 dnl Sanity check for existence of ISO C99 headers for extended encoding. 970 AC_CHECK_HEADERS(wchar.h, ac_has_wchar_h=yes, ac_has_wchar_h=no) 971 AC_CHECK_HEADERS(wctype.h, ac_has_wctype_h=yes, ac_has_wctype_h=no) 972 973 dnl Only continue checking if the ISO C99 headers exist and support is on. 974 if test x"$ac_has_wchar_h" = xyes && 975 test x"$ac_has_wctype_h" = xyes && 976 test x"$enable_c_mbchar" != xno; then 977 978 dnl Test wchar.h for WCHAR_MIN, WCHAR_MAX, which is needed before 979 dnl numeric_limits can instantiate type_traits<wchar_t> 980 AC_MSG_CHECKING([for WCHAR_MIN and WCHAR_MAX]) 981 AC_TRY_COMPILE([#include <wchar.h>], 982 [int i = WCHAR_MIN; int j = WCHAR_MAX;], 983 has_wchar_minmax=yes, has_wchar_minmax=no) 984 AC_MSG_RESULT($has_wchar_minmax) 985 986 dnl Test wchar.h for WEOF, which is what we use to determine whether 987 dnl to specialize for char_traits<wchar_t> or not. 988 AC_MSG_CHECKING([for WEOF]) 989 AC_TRY_COMPILE([ 990 #include <wchar.h> 991 #include <stddef.h>], 992 [wint_t i = WEOF;], 993 has_weof=yes, has_weof=no) 994 AC_MSG_RESULT($has_weof) 995 996 dnl Tests for wide character functions used in char_traits<wchar_t>. 997 ac_wfuncs=yes 998 AC_CHECK_FUNCS(wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset,, \ 999 ac_wfuncs=no) 1000 1001 dnl Checks for names injected into std:: by the c_std headers. 1002 AC_CHECK_FUNCS(btowc wctob fgetwc fgetws fputwc fputws fwide \ 1003 fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \ 1004 vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \ 1005 mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \ 1006 wcstoul wcscpy wcsncpy wcscat wcsncat wcscmp wcscoll wcsncmp wcsxfrm \ 1007 wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr,, \ 1008 ac_wfuncs=no) 1009 1010 AC_MSG_CHECKING([for ISO C99 wchar_t support]) 1011 if test x"$has_weof" = xyes && 1012 test x"$has_wchar_minmax" = xyes && 1013 test x"$ac_wfuncs" = xyes; then 1014 ac_isoC99_wchar_t=yes 1015 else 1016 ac_isoC99_wchar_t=no 1017 fi 1018 AC_MSG_RESULT($ac_isoC99_wchar_t) 1019 1020 dnl Use iconv for wchar_t to char conversions. As such, check for 1021 dnl X/Open Portability Guide, version 2 features (XPG2). 1022 AC_CHECK_HEADER(iconv.h, ac_has_iconv_h=yes, ac_has_iconv_h=no) 1023 AC_CHECK_HEADER(langinfo.h, ac_has_langinfo_h=yes, ac_has_langinfo_h=no) 1024 1025 dnl Check for existence of libiconv.a providing XPG2 wchar_t support. 1026 AC_CHECK_LIB(iconv, iconv, libiconv="-liconv") 1027 ac_save_LIBS="$LIBS" 1028 LIBS="$LIBS $libiconv" 1029 1030 AC_CHECK_FUNCS(iconv_open iconv_close iconv nl_langinfo, \ 1031 ac_XPG2funcs=yes, ac_XPG2funcs=no) 1032 1033 LIBS="$ac_save_LIBS" 1034 1035 AC_MSG_CHECKING([for XPG2 wchar_t support]) 1036 if test x"$ac_has_iconv_h" = xyes && 1037 test x"$ac_has_langinfo_h" = xyes && 1038 test x"$ac_XPG2funcs" = xyes; then 1039 ac_XPG2_wchar_t=yes 1040 else 1041 ac_XPG2_wchar_t=no 1042 fi 1043 AC_MSG_RESULT($ac_XPG2_wchar_t) 1044 1045 dnl At the moment, only enable wchar_t specializations if all the 1046 dnl above support is present. 1047 if test x"$ac_isoC99_wchar_t" = xyes && 1048 test x"$ac_XPG2_wchar_t" = xyes; then 1049 AC_DEFINE(_GLIBCPP_USE_WCHAR_T) 1050 enable_wchar_t=yes 1051 fi 1052 fi 1053 AC_MSG_CHECKING([for enabled wchar_t specializations]) 1054 AC_MSG_RESULT($enable_wchar_t) 1055 AM_CONDITIONAL(GLIBCPP_TEST_WCHAR_T, test "$enable_wchar_t" = yes) 1056]) 1057 1058 1059dnl 1060dnl Check to see if debugging libraries are to be built. 1061dnl 1062dnl GLIBCPP_ENABLE_DEBUG 1063dnl 1064dnl --enable-debug 1065dnl builds a separate set of debugging libraries in addition to the 1066dnl normal (shared, static) libstdc++ binaries. 1067dnl 1068dnl --disable-debug 1069dnl builds only one (non-debug) version of libstdc++. 1070dnl 1071dnl --enable-debug-flags=FLAGS 1072dnl iff --enable-debug == yes, then use FLAGS to build the debug library. 1073dnl 1074dnl + Usage: GLIBCPP_ENABLE_DEBUG[(DEFAULT)] 1075dnl Where DEFAULT is either `yes' or `no'. If ommitted, it 1076dnl defaults to `no'. 1077AC_DEFUN(GLIBCPP_ENABLE_DEBUG, [dnl 1078define([GLIBCPP_ENABLE_DEBUG_DEFAULT], ifelse($1, yes, yes, no))dnl 1079AC_ARG_ENABLE(debug, 1080changequote(<<, >>)dnl 1081<< --enable-debug build extra debug library [default=>>GLIBCPP_ENABLE_DEBUG_DEFAULT], 1082changequote([, ])dnl 1083[case "${enableval}" in 1084 yes) enable_debug=yes ;; 1085 no) enable_debug=no ;; 1086 *) AC_MSG_ERROR([Unknown argument to enable/disable extra debugging]) ;; 1087 esac], 1088enable_debug=GLIBCPP_ENABLE_DEBUG_DEFAULT)dnl 1089AC_MSG_CHECKING([for additional debug build]) 1090AC_MSG_RESULT($enable_debug) 1091AM_CONDITIONAL(GLIBCPP_BUILD_DEBUG, test "$enable_debug" = yes) 1092]) 1093 1094 1095dnl Check for explicit debug flags. 1096dnl 1097dnl GLIBCPP_ENABLE_DEBUG_FLAGS 1098dnl 1099dnl --enable-debug-flags='-O1' 1100dnl is a general method for passing flags to be used when 1101dnl building debug libraries with --enable-debug. 1102dnl 1103dnl --disable-debug-flags does nothing. 1104dnl + Usage: GLIBCPP_ENABLE_DEBUG_FLAGS(default flags) 1105dnl If "default flags" is an empty string (or "none"), the effect is 1106dnl the same as --disable or --enable=no. 1107AC_DEFUN(GLIBCPP_ENABLE_DEBUG_FLAGS, [dnl 1108define([GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT], ifelse($1,,, $1))dnl 1109AC_ARG_ENABLE(debug_flags, 1110changequote(<<, >>)dnl 1111<< --enable-debug-flags=FLAGS pass compiler FLAGS when building debug 1112 library;[default=>>GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT], 1113changequote([, ])dnl 1114[case "${enableval}" in 1115 none) ;; 1116 -*) enable_debug_flags="${enableval}" ;; 1117 *) AC_MSG_ERROR([Unknown argument to extra debugging flags]) ;; 1118 esac], 1119enable_debug_flags=GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT)dnl 1120 1121dnl Option parsed, now set things appropriately 1122case x"$enable_debug" in 1123 xyes) 1124 case "$enable_debug_flags" in 1125 none) 1126 DEBUG_FLAGS="-g3 -O0";; 1127 -*) #valid input 1128 DEBUG_FLAGS="${enableval}" 1129 esac 1130 ;; 1131 xno) 1132 DEBUG_FLAGS="" 1133 ;; 1134esac 1135AC_SUBST(DEBUG_FLAGS) 1136 1137AC_MSG_CHECKING([for debug build flags]) 1138AC_MSG_RESULT($DEBUG_FLAGS) 1139]) 1140 1141 1142dnl 1143dnl Check for "unusual" flags to pass to the compiler while building. 1144dnl 1145dnl GLIBCPP_ENABLE_CXX_FLAGS 1146dnl --enable-cxx-flags='-foo -bar -baz' is a general method for passing 1147dnl experimental flags such as -fhonor-std, -fsquangle, -Dfloat=char, etc. 1148dnl Somehow this same set of flags must be passed when [re]building 1149dnl libgcc. 1150dnl --disable-cxx-flags passes nothing. 1151dnl + See http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00131.html 1152dnl http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00284.html 1153dnl http://gcc.gnu.org/ml/libstdc++/2000-q1/msg00035.html 1154dnl + Usage: GLIBCPP_ENABLE_CXX_FLAGS(default flags) 1155dnl If "default flags" is an empty string (or "none"), the effect is 1156dnl the same as --disable or --enable=no. 1157AC_DEFUN(GLIBCPP_ENABLE_CXX_FLAGS, [dnl 1158define([GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT], ifelse($1,,, $1))dnl 1159AC_MSG_CHECKING([for extra compiler flags for building]) 1160AC_ARG_ENABLE(cxx_flags, 1161changequote(<<, >>)dnl 1162<< --enable-cxx-flags=FLAGS pass compiler FLAGS when building library; 1163 [default=>>GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT], 1164changequote([, ])dnl 1165[case "x$enable_cxx_flags" in 1166 xyes) 1167 AC_MSG_ERROR([--enable-cxx-flags needs compiler flags as arguments]) ;; 1168 xno | xnone | x) 1169 enable_cxx_flags='' ;; 1170 *) 1171 enable_cxx_flags="$enableval" ;; 1172esac], 1173enable_cxx_flags=GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT) 1174 1175dnl Run through flags (either default or command-line) and set anything 1176dnl extra (e.g., #defines) that must accompany particular g++ options. 1177if test -n "$enable_cxx_flags"; then 1178 for f in $enable_cxx_flags; do 1179 case "$f" in 1180 -fhonor-std) ;; 1181 -*) ;; 1182 *) # and we're trying to pass /what/ exactly? 1183 AC_MSG_ERROR([compiler flags start with a -]) ;; 1184 esac 1185 done 1186fi 1187EXTRA_CXX_FLAGS="$enable_cxx_flags" 1188AC_MSG_RESULT($EXTRA_CXX_FLAGS) 1189AC_SUBST(EXTRA_CXX_FLAGS) 1190]) 1191 1192 1193dnl 1194dnl Check for which locale library to use: gnu or generic. 1195dnl 1196dnl GLIBCPP_ENABLE_CLOCALE 1197dnl --enable-clocale=gnu sets config/locale/c_locale_gnu.cc and friends 1198dnl --enable-clocale=generic sets config/locale/c_locale_generic.cc and friends 1199dnl 1200dnl default is generic 1201dnl 1202AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [ 1203 AC_MSG_CHECKING([for clocale to use]) 1204 AC_ARG_ENABLE(clocale, 1205 [ --enable-clocale enable model for target locale package. 1206 --enable-clocale=MODEL use MODEL target-speific locale package. [default=generic] 1207 ], 1208 if test x$enable_clocale = xno; then 1209 enable_clocale=no 1210 fi, 1211 enable_clocale=no) 1212 1213 enable_clocale_flag=$enable_clocale 1214 1215 dnl Probe for locale support if no specific model is specified. 1216 dnl Default to "generic" 1217 if test x$enable_clocale_flag = xno; then 1218 case x${target_os} in 1219 xlinux* | xgnu*) 1220 AC_EGREP_CPP([_GLIBCPP_ok], [ 1221 #include <features.h> 1222 #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) 1223 _GLIBCPP_ok 1224 #endif 1225 ], enable_clocale_flag=gnu, enable_clocale_flag=generic) 1226 1227 # Test for bugs early in glibc-2.2.x series 1228 if test x$enable_clocale_flag = xgnu; then 1229 AC_TRY_RUN([ 1230 #define _GNU_SOURCE 1 1231 #include <locale.h> 1232 #include <string.h> 1233 #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) 1234 extern __typeof(newlocale) __newlocale; 1235 extern __typeof(duplocale) __duplocale; 1236 extern __typeof(strcoll_l) __strcoll_l; 1237 #endif 1238 int main() 1239 { 1240 const char __one[] = "�uglein Augmen"; 1241 const char __two[] = "�uglein"; 1242 int i; 1243 int j; 1244 __locale_t loc; 1245 __locale_t loc_dup; 1246 loc = __newlocale(1 << LC_ALL, "de_DE", 0); 1247 loc_dup = __duplocale(loc); 1248 i = __strcoll_l(__one, __two, loc); 1249 j = __strcoll_l(__one, __two, loc_dup); 1250 return 0; 1251 } 1252 ], 1253 [enable_clocale_flag=gnu],[enable_clocale_flag=generic], 1254 [enable_clocale_flag=generic]) 1255 fi 1256 1257 # ... at some point put __strxfrm_l tests in as well. 1258 ;; 1259 *) 1260 enable_clocale_flag=generic 1261 ;; 1262 esac 1263 fi 1264 1265 dnl Deal with gettext issues. 1266 AC_ARG_ENABLE(nls, 1267 [ --enable-nls use Native Language Support (default)], 1268 , enable_nls=yes) 1269 USE_NLS=no 1270 1271 dnl Set configure bits for specified locale package 1272 case x${enable_clocale_flag} in 1273 xgeneric) 1274 AC_MSG_RESULT(generic) 1275 1276 CLOCALE_H=config/locale/generic/c_locale.h 1277 CLOCALE_CC=config/locale/generic/c_locale.cc 1278 CCODECVT_H=config/locale/generic/codecvt_specializations.h 1279 CCODECVT_CC=config/locale/generic/codecvt_members.cc 1280 CCOLLATE_CC=config/locale/generic/collate_members.cc 1281 CCTYPE_CC=config/locale/generic/ctype_members.cc 1282 CMESSAGES_H=config/locale/generic/messages_members.h 1283 CMESSAGES_CC=config/locale/generic/messages_members.cc 1284 CMONEY_CC=config/locale/generic/monetary_members.cc 1285 CNUMERIC_CC=config/locale/generic/numeric_members.cc 1286 CTIME_H=config/locale/generic/time_members.h 1287 CTIME_CC=config/locale/generic/time_members.cc 1288 CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h 1289 ;; 1290 xgnu) 1291 AC_MSG_RESULT(gnu) 1292 1293 # Declare intention to use gettext, and add support for specific 1294 # languages. 1295 # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT 1296 ALL_LINGUAS="de fr" 1297 1298 # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. 1299 AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no) 1300 if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then 1301 USE_NLS=yes 1302 fi 1303 # Export the build objects. 1304 for ling in $ALL_LINGUAS; do \ 1305 glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \ 1306 glibcpp_POFILES="$glibcpp_POFILES $ling.po"; \ 1307 done 1308 AC_SUBST(glibcpp_MOFILES) 1309 AC_SUBST(glibcpp_POFILES) 1310 1311 CLOCALE_H=config/locale/gnu/c_locale.h 1312 CLOCALE_CC=config/locale/gnu/c_locale.cc 1313 CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h 1314 CCODECVT_CC=config/locale/gnu/codecvt_members.cc 1315 CCOLLATE_CC=config/locale/gnu/collate_members.cc 1316 CCTYPE_CC=config/locale/gnu/ctype_members.cc 1317 CMESSAGES_H=config/locale/gnu/messages_members.h 1318 CMESSAGES_CC=config/locale/gnu/messages_members.cc 1319 CMONEY_CC=config/locale/gnu/monetary_members.cc 1320 CNUMERIC_CC=config/locale/gnu/numeric_members.cc 1321 CTIME_H=config/locale/gnu/time_members.h 1322 CTIME_CC=config/locale/gnu/time_members.cc 1323 CLOCALE_INTERNAL_H=config/locale/gnu/c++locale_internal.h 1324 ;; 1325 xieee_1003.1-2001) 1326 AC_MSG_RESULT(generic) 1327 1328 CLOCALE_H=config/locale/ieee_1003.1-2001/c_locale.h 1329 CLOCALE_CC=config/locale/ieee_1003.1-2001/c_locale.cc 1330 CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h 1331 CCODECVT_CC=config/locale/generic/codecvt_members.cc 1332 CCOLLATE_CC=config/locale/generic/collate_members.cc 1333 CCTYPE_CC=config/locale/generic/ctype_members.cc 1334 CMESSAGES_H=config/locale/ieee_1003.1-2001/messages_members.h 1335 CMESSAGES_CC=config/locale/ieee_1003.1-2001/messages_members.cc 1336 CMONEY_CC=config/locale/generic/monetary_members.cc 1337 CNUMERIC_CC=config/locale/generic/numeric_members.cc 1338 CTIME_H=config/locale/generic/time_members.h 1339 CTIME_CC=config/locale/generic/time_members.cc 1340 CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h 1341 ;; 1342 *) 1343 echo "$enable_clocale is an unknown locale package" 1>&2 1344 exit 1 1345 ;; 1346 esac 1347 1348 # This is where the testsuite looks for locale catalogs, using the 1349 # -DLOCALEDIR define during testsuite compilation. 1350 glibcpp_localedir=${glibcpp_builddir}/po/share/locale 1351 AC_SUBST(glibcpp_localedir) 1352 1353 AC_SUBST(USE_NLS) 1354 AC_SUBST(CLOCALE_H) 1355 AC_SUBST(CCODECVT_H) 1356 AC_SUBST(CMESSAGES_H) 1357 AC_SUBST(CCODECVT_CC) 1358 AC_SUBST(CCOLLATE_CC) 1359 AC_SUBST(CCTYPE_CC) 1360 AC_SUBST(CMESSAGES_CC) 1361 AC_SUBST(CMONEY_CC) 1362 AC_SUBST(CNUMERIC_CC) 1363 AC_SUBST(CTIME_H) 1364 AC_SUBST(CTIME_CC) 1365 AC_SUBST(CLOCALE_CC) 1366 AC_SUBST(CLOCALE_INTERNAL_H) 1367]) 1368 1369 1370dnl 1371dnl Check for which I/O library to use: libio, or something specific. 1372dnl 1373dnl GLIBCPP_ENABLE_CSTDIO 1374dnl --enable-cstdio=libio sets config/io/c_io_libio.h and friends 1375dnl 1376dnl default is stdio 1377dnl 1378AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [ 1379 AC_MSG_CHECKING([for cstdio to use]) 1380 AC_ARG_ENABLE(cstdio, 1381 [ --enable-cstdio enable stdio for target io package. 1382 --enable-cstdio=LIB use LIB target-speific io package. [default=stdio] 1383 ], 1384 if test x$enable_cstdio = xno; then 1385 enable_cstdio=stdio 1386 fi, 1387 enable_cstdio=stdio) 1388 1389 enable_cstdio_flag=$enable_cstdio 1390 1391 dnl Check if a valid I/O package 1392 case x${enable_cstdio_flag} in 1393 xlibio) 1394 CSTDIO_H=config/io/c_io_libio.h 1395 BASIC_FILE_H=config/io/basic_file_libio.h 1396 BASIC_FILE_CC=config/io/basic_file_libio.cc 1397 AC_MSG_RESULT(libio) 1398 1399 # see if we are on a system with libio native (ie, linux) 1400 AC_CHECK_HEADER(libio.h, has_libio=yes, has_libio=no) 1401 1402 # Need to check and see what version of glibc is being used. If 1403 # it's not glibc-2.2 or higher, then we'll need to go ahead and 1404 # compile most of libio for linux systems. 1405 if test x$has_libio = x"yes"; then 1406 case "$target" in 1407 *-*-linux*) 1408 AC_MSG_CHECKING([for glibc version >= 2.2]) 1409 AC_EGREP_CPP([ok], [ 1410 #include <features.h> 1411 #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) 1412 ok 1413 #endif 1414 ], glibc_satisfactory=yes, glibc_satisfactory=no) 1415 AC_MSG_RESULT($glibc_satisfactory) 1416 ;; 1417 esac 1418 1419 # XXX at the moment, admit defeat and force the recompilation 1420 # XXX of glibc even on glibc-2.2 systems, because libio is not synched. 1421 glibc_satisfactory=no 1422 1423 if test x$glibc_satisfactory = x"yes"; then 1424 need_libio=no 1425 need_wlibio=no 1426 else 1427 need_libio=yes 1428 # bkoz XXX need to add checks to enable this 1429 # pme XXX here's a first pass at such a check 1430 if test x$enable_c_mbchar != xno; then 1431 need_wlibio=yes 1432 else 1433 need_wlibio=no 1434 fi 1435 fi 1436 1437 else 1438 # Using libio, but <libio.h> doesn't exist on the target system. . . 1439 need_libio=yes 1440 # bkoz XXX need to add checks to enable this 1441 # pme XXX here's a first pass at such a check 1442 if test x$enable_c_mbchar != xno; then 1443 need_wlibio=yes 1444 else 1445 need_wlibio=no 1446 fi 1447 fi 1448 ;; 1449 xstdio | x | xno | xnone | xyes) 1450 # default 1451 CSTDIO_H=config/io/c_io_stdio.h 1452 BASIC_FILE_H=config/io/basic_file_stdio.h 1453 BASIC_FILE_CC=config/io/basic_file_stdio.cc 1454 AC_MSG_RESULT(stdio) 1455 1456 # We're not using stdio. 1457 need_libio=no 1458 need_wlibio=no 1459 ;; 1460 *) 1461 echo "$enable_cstdio is an unknown io package" 1>&2 1462 exit 1 1463 ;; 1464 esac 1465 AC_SUBST(CSTDIO_H) 1466 AC_SUBST(BASIC_FILE_H) 1467 AC_SUBST(BASIC_FILE_CC) 1468 1469 # 2000-08-04 bkoz hack 1470 CCODECVT_C=config/io/c_io_libio_codecvt.c 1471 AC_SUBST(CCODECVT_C) 1472 # 2000-08-04 bkoz hack 1473 1474 AM_CONDITIONAL(GLIBCPP_BUILD_LIBIO, 1475 test "$need_libio" = yes || test "$need_wlibio" = yes) 1476 AM_CONDITIONAL(GLIBCPP_NEED_LIBIO, test "$need_libio" = yes) 1477 AM_CONDITIONAL(GLIBCPP_NEED_WLIBIO, test "$need_wlibio" = yes) 1478 if test "$need_libio" = yes || test "$need_wlibio" = yes; then 1479 libio_la=../libio/libio.la 1480 else 1481 libio_la= 1482 fi 1483 AC_SUBST(libio_la) 1484]) 1485 1486 1487dnl 1488dnl Setup to use the gcc gthr.h thread-specific memory and mutex model. 1489dnl We must stage the required headers so that they will be installed 1490dnl with the library (unlike libgcc, the STL implementation is provided 1491dnl solely within headers). Since we must not inject random user-space 1492dnl macro names into user-provided C++ code, we first stage into <file>-in 1493dnl and process to <file> with an output command. The reason for a two- 1494dnl stage process here is to correctly handle $srcdir!=$objdir without 1495dnl having to write complex code (the sed commands to clean the macro 1496dnl namespace are complex and fragile enough as it is). We must also 1497dnl add a relative path so that -I- is supported properly. 1498dnl 1499AC_DEFUN(GLIBCPP_ENABLE_THREADS, [ 1500 AC_MSG_CHECKING([for thread model used by GCC]) 1501 target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'` 1502 AC_MSG_RESULT([$target_thread_file]) 1503 1504 if test $target_thread_file != single; then 1505 AC_DEFINE(HAVE_GTHR_DEFAULT) 1506 AC_DEFINE(_GLIBCPP_SUPPORTS_WEAK, __GXX_WEAK__) 1507 fi 1508 1509 glibcpp_thread_h=gthr-$target_thread_file.h 1510 AC_SUBST(glibcpp_thread_h) 1511]) 1512 1513 1514dnl 1515dnl Check for exception handling support. If an explicit enable/disable 1516dnl sjlj exceptions is given, we don't have to detect. Otherwise the 1517dnl target may or may not support call frame exceptions. 1518dnl 1519dnl GLIBCPP_ENABLE_SJLJ_EXCEPTIONS 1520dnl --enable-sjlj-exceptions forces the use of builtin setjmp. 1521dnl --disable-sjlj-exceptions forces the use of call frame unwinding. 1522dnl 1523dnl Define _GLIBCPP_SJLJ_EXCEPTIONS if the compiler is configured for it. 1524dnl 1525AC_DEFUN(GLIBCPP_ENABLE_SJLJ_EXCEPTIONS, [ 1526 AC_MSG_CHECKING([for exception model to use]) 1527 AC_LANG_SAVE 1528 AC_LANG_CPLUSPLUS 1529 AC_ARG_ENABLE(sjlj-exceptions, 1530 [ --enable-sjlj-exceptions force use of builtin_setjmp for exceptions], 1531 [:], 1532 [dnl Botheration. Now we've got to detect the exception model. 1533 dnl Link tests against libgcc.a are problematic since -- at least 1534 dnl as of this writing -- we've not been given proper -L bits for 1535 dnl single-tree newlib and libgloss. 1536 dnl 1537 dnl This is what AC_TRY_COMPILE would do if it didn't delete the 1538 dnl conftest files before we got a change to grep them first. 1539 cat > conftest.$ac_ext << EOF 1540[#]line __oline__ "configure" 1541struct S { ~S(); }; 1542void bar(); 1543void foo() 1544{ 1545 S s; 1546 bar(); 1547} 1548EOF 1549 old_CXXFLAGS="$CXXFLAGS" 1550 CXXFLAGS=-S 1551 if AC_TRY_EVAL(ac_compile); then 1552 if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then 1553 enable_sjlj_exceptions=yes 1554 elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then 1555 enable_sjlj_exceptions=no 1556 fi 1557 fi 1558 CXXFLAGS="$old_CXXFLAGS" 1559 rm -f conftest*]) 1560 if test x$enable_sjlj_exceptions = xyes; then 1561 AC_DEFINE(_GLIBCPP_SJLJ_EXCEPTIONS, 1, 1562 [Define if the compiler is configured for setjmp/longjmp exceptions.]) 1563 ac_exception_model_name=sjlj 1564 elif test x$enable_sjlj_exceptions = xno; then 1565 ac_exception_model_name="call frame" 1566 else 1567 AC_MSG_ERROR([unable to detect exception model]) 1568 fi 1569 AC_LANG_RESTORE 1570 AC_MSG_RESULT($ac_exception_model_name) 1571]) 1572 1573 1574dnl 1575dnl Check for libunwind exception handling support. If enabled then 1576dnl we assume that the _Unwind_* functions that make up the Unwind ABI 1577dnl (_Unwind_RaiseException, _Unwind_Resume, etc.) are defined by 1578dnl libunwind instead of libgcc and that libstdc++ has a dependency 1579dnl on libunwind as well as libgcc. 1580dnl 1581dnl GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS 1582dnl --enable-libunwind-exceptions forces the use of libunwind. 1583dnl --disable-libunwind-exceptions assumes there is no libunwind. 1584dnl 1585dnl Define _GLIBCPP_LIBUNWIND_EXCEPTIONS if requested. 1586dnl 1587AC_DEFUN(GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS, [ 1588 AC_MSG_CHECKING([for use of libunwind]) 1589 AC_ARG_ENABLE(libunwind-exceptions, 1590 [ --enable-libunwind-exceptions force use of libunwind for exceptions], 1591 use_libunwind_exceptions=$enableval, 1592 use_libunwind_exceptions=no) 1593 AC_MSG_RESULT($use_libunwind_exceptions) 1594 dnl Option parsed, now set things appropriately 1595 if test x"$use_libunwind_exceptions" = xyes; then 1596 LIBUNWIND_FLAG="-lunwind" 1597 else 1598 LIBUNWIND_FLAG="" 1599 fi 1600 AC_SUBST(LIBUNWIND_FLAG) 1601]) 1602 1603dnl 1604dnl Check for ISO/IEC 9899:1999 "C99" support. 1605dnl 1606dnl GLIBCPP_ENABLE_C99 1607dnl --enable-c99 defines _GLIBCPP_USE_C99 1608dnl --disable-c99 leaves _GLIBCPP_USE_C99 undefined 1609dnl + Usage: GLIBCPP_ENABLE_C99[(DEFAULT)] 1610dnl Where DEFAULT is either `yes' or `no'. If omitted, it 1611dnl defaults to `no'. 1612dnl + If 'C99' stuff is not available, ignores DEFAULT and sets `no'. 1613dnl 1614dnl GLIBCPP_ENABLE_C99 1615AC_DEFUN(GLIBCPP_ENABLE_C99, [dnl 1616 define([GLIBCPP_ENABLE_C99_DEFAULT], ifelse($1, yes, yes, no))dnl 1617 1618 AC_ARG_ENABLE(c99, 1619 changequote(<<, >>)dnl 1620 <<--enable-c99 turns on 'ISO/IEC 9899:1999 support' [default=>>GLIBCPP_ENABLE_C99_DEFAULT], 1621 changequote([, ])dnl 1622 [case "$enableval" in 1623 yes) enable_c99=yes ;; 1624 no) enable_c99=no ;; 1625 *) AC_MSG_ERROR([Unknown argument to enable/disable C99]) ;; 1626 esac], 1627 enable_c99=GLIBCPP_ENABLE_C99_DEFAULT)dnl 1628 1629 AC_LANG_SAVE 1630 AC_LANG_CPLUSPLUS 1631 1632 # Check for the existence of <math.h> functions used if C99 is enabled. 1633 ac_c99_math=yes; 1634 AC_MSG_CHECKING([for ISO C99 support in <math.h>]) 1635 AC_TRY_COMPILE([#include <math.h>],[fpclassify(0.0);],, [ac_c99_math=no]) 1636 AC_TRY_COMPILE([#include <math.h>],[isfinite(0.0);],, [ac_c99_math=no]) 1637 AC_TRY_COMPILE([#include <math.h>],[isinf(0.0);],, [ac_c99_math=no]) 1638 AC_TRY_COMPILE([#include <math.h>],[isnan(0.0);],, [ac_c99_math=no]) 1639 AC_TRY_COMPILE([#include <math.h>],[isnormal(0.0);],, [ac_c99_math=no]) 1640 AC_TRY_COMPILE([#include <math.h>],[signbit(0.0);],, [ac_c99_math=no]) 1641 AC_TRY_COMPILE([#include <math.h>],[isgreater(0.0,0.0);],, [ac_c99_math=no]) 1642 AC_TRY_COMPILE([#include <math.h>], 1643 [isgreaterequal(0.0,0.0);],, [ac_c99_math=no]) 1644 AC_TRY_COMPILE([#include <math.h>],[isless(0.0,0.0);],, [ac_c99_math=no]) 1645 AC_TRY_COMPILE([#include <math.h>],[islessequal(0.0,0.0);],,[ac_c99_math=no]) 1646 AC_TRY_COMPILE([#include <math.h>], 1647 [islessgreater(0.0,0.0);],, [ac_c99_math=no]) 1648 AC_TRY_COMPILE([#include <math.h>], 1649 [isunordered(0.0,0.0);],, [ac_c99_math=no]) 1650 AC_MSG_RESULT($ac_c99_math) 1651 1652 # Check for the existence in <stdio.h> of vscanf, et. al. 1653 ac_c99_stdio=yes; 1654 AC_MSG_CHECKING([for ISO C99 support in <stdio.h>]) 1655 AC_TRY_COMPILE([#include <stdio.h>], 1656 [snprintf("12", 0, "%i");],, [ac_c99_stdio=no]) 1657 AC_TRY_COMPILE([#include <stdio.h> 1658 #include <stdarg.h> 1659 void foo(char* fmt, ...) 1660 {va_list args; va_start(args, fmt); 1661 vfscanf(stderr, "%i", args);}], 1662 [],, [ac_c99_stdio=no]) 1663 AC_TRY_COMPILE([#include <stdio.h> 1664 #include <stdarg.h> 1665 void foo(char* fmt, ...) 1666 {va_list args; va_start(args, fmt); 1667 vscanf("%i", args);}], 1668 [],, [ac_c99_stdio=no]) 1669 AC_TRY_COMPILE([#include <stdio.h> 1670 #include <stdarg.h> 1671 void foo(char* fmt, ...) 1672 {va_list args; va_start(args, fmt); 1673 vsnprintf(fmt, 0, "%i", args);}], 1674 [],, [ac_c99_stdio=no]) 1675 AC_TRY_COMPILE([#include <stdio.h> 1676 #include <stdarg.h> 1677 void foo(char* fmt, ...) 1678 {va_list args; va_start(args, fmt); 1679 vsscanf(fmt, "%i", args);}], 1680 [],, [ac_c99_stdio=no]) 1681 AC_MSG_RESULT($ac_c99_stdio) 1682 1683 # Check for the existence in <stdlib.h> of lldiv_t, et. al. 1684 ac_c99_stdlib=yes; 1685 AC_MSG_CHECKING([for lldiv_t declaration]) 1686 AC_CACHE_VAL(ac_c99_lldiv_t, [ 1687 AC_TRY_COMPILE([#include <stdlib.h>], 1688 [ lldiv_t mydivt;], 1689 [ac_c99_lldiv_t=yes], [ac_c99_lldiv_t=no]) 1690 ]) 1691 AC_MSG_RESULT($ac_c99_lldiv_t) 1692 1693 AC_MSG_CHECKING([for ISO C99 support in <stdlib.h>]) 1694 AC_TRY_COMPILE([#include <stdlib.h>], 1695 [char* tmp; strtof("gnu", &tmp);],, [ac_c99_stdlib=no]) 1696 AC_TRY_COMPILE([#include <stdlib.h>], 1697 [char* tmp; strtold("gnu", &tmp);],, [ac_c99_stdlib=no]) 1698 AC_TRY_COMPILE([#include <stdlib.h>], [llabs(10);],, [ac_c99_stdlib=no]) 1699 AC_TRY_COMPILE([#include <stdlib.h>], [lldiv(10,1);],, [ac_c99_stdlib=no]) 1700 AC_TRY_COMPILE([#include <stdlib.h>], [atoll("10");],, [ac_c99_stdlib=no]) 1701 AC_TRY_COMPILE([#include <stdlib.h>], [_Exit(0);],, [ac_c99_stdlib=no]) 1702 if test x"$ac_c99_lldiv_t" = x"no"; then 1703 ac_c99_stdlib=no; 1704 fi; 1705 AC_MSG_RESULT($ac_c99_stdlib) 1706 1707 # Check for the existence of <wchar.h> functions used if C99 is enabled. 1708 # XXX the wchar.h checks should be rolled into the general C99 bits. 1709 ac_c99_wchar=yes; 1710 AC_MSG_CHECKING([for additional ISO C99 support in <wchar.h>]) 1711 AC_TRY_COMPILE([#include <wchar.h>], 1712 [wcstold(L"10.0", NULL);],, [ac_c99_wchar=no]) 1713 AC_TRY_COMPILE([#include <wchar.h>], 1714 [wcstoll(L"10", NULL, 10);],, [ac_c99_wchar=no]) 1715 AC_TRY_COMPILE([#include <wchar.h>], 1716 [wcstoull(L"10", NULL, 10);],, [ac_c99_wchar=no]) 1717 AC_MSG_RESULT($ac_c99_wchar) 1718 1719 AC_MSG_CHECKING([for enabled ISO C99 support]) 1720 if test x"$ac_c99_math" = x"no" || 1721 test x"$ac_c99_stdio" = x"no" || 1722 test x"$ac_c99_stdlib" = x"no" || 1723 test x"$ac_c99_wchar" = x"no"; then 1724 enable_c99=no; 1725 fi; 1726 AC_MSG_RESULT($enable_c99) 1727 1728 # Option parsed, now set things appropriately 1729 if test x"$enable_c99" = x"yes"; then 1730 AC_DEFINE(_GLIBCPP_USE_C99) 1731 fi 1732 1733 AC_LANG_RESTORE 1734]) 1735 1736 1737dnl 1738dnl Check for template specializations for the 'long long' type extension. 1739dnl The result determines only whether 'long long' I/O is enabled; things 1740dnl like numeric_limits<> specializations are always available. 1741dnl 1742dnl GLIBCPP_ENABLE_LONG_LONG 1743dnl --enable-long-long defines _GLIBCPP_USE_LONG_LONG 1744dnl --disable-long-long leaves _GLIBCPP_USE_LONG_LONG undefined 1745dnl + Usage: GLIBCPP_ENABLE_LONG_LONG[(DEFAULT)] 1746dnl Where DEFAULT is either `yes' or `no'. If omitted, it 1747dnl defaults to `no'. 1748dnl + If 'long long' stuff is not available, ignores DEFAULT and sets `no'. 1749dnl 1750dnl GLIBCPP_ENABLE_LONG_LONG 1751AC_DEFUN(GLIBCPP_ENABLE_LONG_LONG, [dnl 1752 define([GLIBCPP_ENABLE_LONG_LONG_DEFAULT], ifelse($1, yes, yes, no))dnl 1753 1754 AC_ARG_ENABLE(long-long, 1755 changequote(<<, >>)dnl 1756 <<--enable-long-long turns on 'long long' [default=>>GLIBCPP_ENABLE_LONG_LONG_DEFAULT], 1757 changequote([, ])dnl 1758 [case "$enableval" in 1759 yes) enable_long_long=yes ;; 1760 no) enable_long_long=no ;; 1761 *) AC_MSG_ERROR([Unknown argument to enable/disable long long]) ;; 1762 esac], 1763 enable_long_long=GLIBCPP_ENABLE_LONG_LONG_DEFAULT)dnl 1764 1765 AC_LANG_SAVE 1766 AC_LANG_CPLUSPLUS 1767 1768 AC_MSG_CHECKING([for enabled long long I/O support]) 1769 # iostreams require strtoll, strtoull to compile 1770 AC_TRY_COMPILE([#include <stdlib.h>], 1771 [char* tmp; strtoll("gnu", &tmp, 10);],,[enable_long_long=no]) 1772 AC_TRY_COMPILE([#include <stdlib.h>], 1773 [char* tmp; strtoull("gnu", &tmp, 10);],,[enable_long_long=no]) 1774 1775 # Option parsed, now set things appropriately 1776 if test x"$enable_long_long" = xyes; then 1777 AC_DEFINE(_GLIBCPP_USE_LONG_LONG) 1778 fi 1779 AC_MSG_RESULT($enable_long_long) 1780 1781 AC_LANG_RESTORE 1782]) 1783 1784 1785dnl 1786dnl Check for what type of C headers to use. 1787dnl 1788dnl GLIBCPP_ENABLE_CHEADERS 1789dnl --enable-cheaders= [does stuff]. 1790dnl --disable-cheaders [does not do anything, really]. 1791dnl + Usage: GLIBCPP_ENABLE_CHEADERS[(DEFAULT)] 1792dnl Where DEFAULT is either `c' or `c_std'. 1793dnl If ommitted, it defaults to `c_std'. 1794AC_DEFUN(GLIBCPP_ENABLE_CHEADERS, [dnl 1795define([GLIBCPP_ENABLE_CHEADERS_DEFAULT], ifelse($1, c_std, c_std, c_std))dnl 1796AC_MSG_CHECKING([for c header strategy to use]) 1797AC_ARG_ENABLE(cheaders, 1798changequote(<<, >>)dnl 1799<< --enable-cheaders=MODEL construct "C" header files for g++ [default=>>GLIBCPP_ENABLE_CHEADERS_DEFAULT], 1800changequote([, ]) 1801 [case "$enableval" in 1802 c) 1803 enable_cheaders=c 1804 ;; 1805 c_std) 1806 enable_cheaders=c_std 1807 ;; 1808 *) AC_MSG_ERROR([Unknown argument to enable/disable "C" headers]) 1809 ;; 1810 esac], 1811 enable_cheaders=GLIBCPP_ENABLE_CHEADERS_DEFAULT) 1812 AC_MSG_RESULT($enable_cheaders) 1813 1814 dnl Option parsed, now set things appropriately 1815 case "$enable_cheaders" in 1816 c_std) 1817 C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std' 1818 ;; 1819 c) 1820 C_INCLUDE_DIR='${glibcpp_srcdir}/include/c' 1821 ;; 1822 esac 1823 1824 AC_SUBST(C_INCLUDE_DIR) 1825 AM_CONDITIONAL(GLIBCPP_C_HEADERS_C, test "$enable_cheaders" = c) 1826 AM_CONDITIONAL(GLIBCPP_C_HEADERS_C_STD, test "$enable_cheaders" = c_std) 1827 AM_CONDITIONAL(GLIBCPP_C_HEADERS_COMPATIBILITY, test "$c_compatibility" = yes) 1828]) 1829 1830 1831dnl 1832dnl Check for wide character support. Has the same effect as the option 1833dnl in gcc's configure, but in a form that autoconf can mess with. 1834dnl 1835dnl GLIBCPP_ENABLE_C_MBCHAR 1836dnl --enable-c-mbchar requests all the wchar_t stuff. 1837dnl --disable-c-mbchar doesn't. 1838dnl + Usage: GLIBCPP_ENABLE_C_MBCHAR[(DEFAULT)] 1839dnl Where DEFAULT is either `yes' or `no'. If ommitted, it 1840dnl defaults to `no'. 1841AC_DEFUN(GLIBCPP_ENABLE_C_MBCHAR, [dnl 1842define([GLIBCPP_ENABLE_C_MBCHAR_DEFAULT], ifelse($1, yes, yes, no))dnl 1843AC_ARG_ENABLE(c-mbchar, 1844changequote(<<, >>)dnl 1845<< --enable-c-mbchar enable multibyte (wide) characters [default=>>GLIBCPP_ENABLE_C_MBCHAR_DEFAULT], 1846changequote([, ])dnl 1847[case "$enableval" in 1848 yes) enable_c_mbchar=yes ;; 1849 no) enable_c_mbchar=no ;; 1850 *) AC_MSG_ERROR([Unknown argument to enable/disable c-mbchar]) ;; 1851 esac], 1852enable_c_mbchar=GLIBCPP_ENABLE_C_MBCHAR_DEFAULT)dnl 1853dnl Option parsed, now other scripts can test enable_c_mbchar for yes/no. 1854]) 1855 1856 1857dnl 1858dnl Set up *_INCLUDES and *_INCLUDE_DIR variables for all sundry Makefile.am's. 1859dnl 1860dnl TOPLEVEL_INCLUDES 1861dnl LIBMATH_INCLUDES 1862dnl LIBSUPCXX_INCLUDES 1863dnl LIBIO_INCLUDES 1864dnl 1865dnl GLIBCPP_EXPORT_INCLUDES 1866AC_DEFUN(GLIBCPP_EXPORT_INCLUDES, [ 1867 # Root level of the build directory include sources. 1868 GLIBCPP_INCLUDES="-I${glibcpp_builddir}/include/${target_alias} -I${glibcpp_builddir}/include" 1869 1870 # Passed down for canadian crosses. 1871 if test x"$CANADIAN" = xyes; then 1872 TOPLEVEL_INCLUDES='-I$(includedir)' 1873 fi 1874 1875 LIBMATH_INCLUDES='-I$(top_srcdir)/libmath' 1876 1877 LIBSUPCXX_INCLUDES='-I$(top_srcdir)/libsupc++' 1878 1879 if test x"$need_libio" = xyes; then 1880 LIBIO_INCLUDES='-I$(top_builddir)/libio -I$(top_srcdir)/libio' 1881 AC_SUBST(LIBIO_INCLUDES) 1882 fi 1883 1884 # Now, export this to all the little Makefiles.... 1885 AC_SUBST(GLIBCPP_INCLUDES) 1886 AC_SUBST(TOPLEVEL_INCLUDES) 1887 AC_SUBST(LIBMATH_INCLUDES) 1888 AC_SUBST(LIBSUPCXX_INCLUDES) 1889]) 1890 1891 1892dnl 1893dnl Set up *_FLAGS and *FLAGS variables for all sundry Makefile.am's. 1894dnl 1895AC_DEFUN(GLIBCPP_EXPORT_FLAGS, [ 1896 # Optimization flags that are probably a good idea for thrill-seekers. Just 1897 # uncomment the lines below and make, everything else is ready to go... 1898 # OPTIMIZE_CXXFLAGS = -O3 -fstrict-aliasing -fvtable-gc 1899 OPTIMIZE_CXXFLAGS= 1900 AC_SUBST(OPTIMIZE_CXXFLAGS) 1901 1902 WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings' 1903 AC_SUBST(WARN_FLAGS) 1904]) 1905 1906dnl 1907dnl GLIBCPP_EXPORT_INSTALL_INFO 1908dnl calculates gxx_install_dir 1909dnl exports glibcpp_toolexecdir 1910dnl exports glibcpp_toolexeclibdir 1911dnl exports glibcpp_prefixdir 1912dnl 1913dnl Assumes cross_compiling bits already done, and with_cross_host in 1914dnl particular 1915dnl 1916dnl GLIBCPP_EXPORT_INSTALL_INFO 1917AC_DEFUN(GLIBCPP_EXPORT_INSTALL_INFO, [ 1918# Assumes glibcpp_builddir, glibcpp_srcdir are alreay set up and 1919# exported correctly in GLIBCPP_CONFIGURE. 1920glibcpp_toolexecdir=no 1921glibcpp_toolexeclibdir=no 1922glibcpp_prefixdir=${prefix} 1923 1924# Process the option --with-gxx-include-dir=<path to include-files directory> 1925AC_MSG_CHECKING([for --with-gxx-include-dir]) 1926AC_ARG_WITH(gxx-include-dir, 1927[ --with-gxx-include-dir the installation directory for include files], 1928[case "${withval}" in 1929 yes) 1930 AC_MSG_ERROR(Missing directory for --with-gxx-include-dir) 1931 gxx_include_dir=no 1932 ;; 1933 no) 1934 gxx_include_dir=no 1935 ;; 1936 *) 1937 gxx_include_dir=${withval} 1938 ;; 1939esac], [gxx_include_dir=no]) 1940AC_MSG_RESULT($gxx_include_dir) 1941 1942# Process the option "--enable-version-specific-runtime-libs" 1943AC_MSG_CHECKING([for --enable-version-specific-runtime-libs]) 1944AC_ARG_ENABLE(version-specific-runtime-libs, 1945[ --enable-version-specific-runtime-libs Specify that runtime libraries should be installed in a compiler-specific directory ], 1946[case "$enableval" in 1947 yes) version_specific_libs=yes ;; 1948 no) version_specific_libs=no ;; 1949 *) AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);; 1950 esac], 1951version_specific_libs=no)dnl 1952# Option set, now we can test it. 1953AC_MSG_RESULT($version_specific_libs) 1954 1955# Default case for install directory for include files. 1956if test $version_specific_libs = no && test $gxx_include_dir = no; then 1957 gxx_include_dir='$(prefix)'/include/c++/${gcc_version} 1958fi 1959 1960# Version-specific runtime libs processing. 1961if test $version_specific_libs = yes; then 1962 # Need the gcc compiler version to know where to install libraries 1963 # and header files if --enable-version-specific-runtime-libs option 1964 # is selected. 1965 if test x"$gxx_include_dir" = x"no"; then 1966 gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/c++ 1967 fi 1968 glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' 1969 glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)' 1970fi 1971 1972# Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir 1973# Install a library built with a cross compiler in tooldir, not libdir. 1974if test x"$glibcpp_toolexecdir" = x"no"; then 1975 if test -n "$with_cross_host" && 1976 test x"$with_cross_host" != x"no"; then 1977 glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)' 1978 glibcpp_toolexeclibdir='$(toolexecdir)/lib' 1979 else 1980 glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)' 1981 glibcpp_toolexeclibdir='$(libdir)' 1982 fi 1983 glibcpp_toolexeclibdir=$glibcpp_toolexeclibdir/`$CC -print-multi-os-directory` 1984fi 1985 1986AC_MSG_CHECKING([for install location]) 1987AC_MSG_RESULT($gxx_include_dir) 1988 1989AC_SUBST(glibcpp_prefixdir) 1990AC_SUBST(gxx_include_dir) 1991AC_SUBST(glibcpp_toolexecdir) 1992AC_SUBST(glibcpp_toolexeclibdir) 1993]) 1994 1995 1996# Check for functions in math library. 1997# Ulrich Drepper <drepper@cygnus.com>, 1998. 1998# 1999# This file can be copied and used freely without restrictions. It can 2000# be used in projects which are not available under the GNU Public License 2001# but which still want to provide support for the GNU gettext functionality. 2002# Please note that the actual code is *not* freely available. 2003 2004# serial 1 2005 2006dnl AC_REPLACE_MATHFUNCS(FUNCTION...) 2007AC_DEFUN(AC_REPLACE_MATHFUNCS, 2008[AC_CHECK_FUNCS([$1], , [LIBMATHOBJS="$LIBMATHOBJS ${ac_func}.lo"])]) 2009 2010 2011dnl This macro searches for a GNU version of make. If a match is found, the 2012dnl makefile variable `ifGNUmake' is set to the empty string, otherwise it is 2013dnl set to "#". This is useful for including a special features in a Makefile, 2014dnl which cannot be handled by other versions of make. The variable 2015dnl _cv_gnu_make_command is set to the command to invoke GNU make if it exists, 2016dnl the empty string otherwise. 2017dnl 2018dnl Here is an example of its use: 2019dnl 2020dnl Makefile.in might contain: 2021dnl 2022dnl # A failsafe way of putting a dependency rule into a makefile 2023dnl $(DEPEND): 2024dnl $(CC) -MM $(srcdir)/*.c > $(DEPEND) 2025dnl 2026dnl @ifGNUmake@ ifeq ($(DEPEND),$(wildcard $(DEPEND))) 2027dnl @ifGNUmake@ include $(DEPEND) 2028dnl @ifGNUmake@ endif 2029dnl 2030dnl Then configure.in would normally contain: 2031dnl 2032dnl CHECK_GNU_MAKE() 2033dnl AC_OUTPUT(Makefile) 2034dnl 2035dnl Then perhaps to cause gnu make to override any other make, we could do 2036dnl something like this (note that GNU make always looks for GNUmakefile first): 2037dnl 2038dnl if ! test x$_cv_gnu_make_command = x ; then 2039dnl mv Makefile GNUmakefile 2040dnl echo .DEFAULT: > Makefile ; 2041dnl echo \ $_cv_gnu_make_command \$@ >> Makefile; 2042dnl fi 2043dnl 2044dnl Then, if any (well almost any) other make is called, and GNU make also 2045dnl exists, then the other make wraps the GNU make. 2046dnl 2047dnl @author John Darrington <j.darrington@elvis.murdoch.edu.au> 2048dnl @version 1.1 #### replaced Id string now that Id is for lib-v3; pme 2049dnl 2050dnl #### Changes for libstdc++-v3: reformatting and linewrapping; prepending 2051dnl #### GLIBCPP_ to the macro name; adding the :-make fallback in the 2052dnl #### conditional's subshell (" --version" is not a command), using a 2053dnl #### different option to grep(1). 2054dnl #### -pme 2055dnl #### Fixed Bourne shell portability bug (use ${MAKE-make}, not 2056dnl #### ${MAKE:-make}). 2057dnl #### -msokolov 2058AC_DEFUN( 2059 GLIBCPP_CHECK_GNU_MAKE, [AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command, 2060 _cv_gnu_make_command='' ; 2061dnl Search all the common names for GNU make 2062 for a in "${MAKE-make}" make gmake gnumake ; do 2063 if ( $a --version 2> /dev/null | grep -c GNU > /dev/null ) 2064 then 2065 _cv_gnu_make_command=$a ; 2066 break; 2067 fi 2068 done ; 2069 ) ; 2070dnl If there was a GNU version, then set @ifGNUmake@ to the empty 2071dnl string, '#' otherwise 2072 if test "x$_cv_gnu_make_command" != "x" ; then 2073 ifGNUmake='' ; 2074 else 2075 ifGNUmake='#' ; 2076 fi 2077 AC_SUBST(ifGNUmake) 2078]) 2079 2080 2081dnl Check for headers for, and arguments to, the setrlimit() function. 2082dnl Used only in testsuite_hooks.h. 2083AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT_ancilliary, [ 2084 AC_TRY_COMPILE([#include <unistd.h> 2085 #include <sys/time.h> 2086 #include <sys/resource.h> 2087 ], [ int f = RLIMIT_$1 ; ], 2088 [glibcpp_mresult=1], [glibcpp_mresult=0]) 2089 AC_DEFINE_UNQUOTED(HAVE_MEMLIMIT_$1, $glibcpp_mresult, 2090 [Only used in build directory testsuite_hooks.h.]) 2091]) 2092AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT, [ 2093 setrlimit_have_headers=yes 2094 AC_CHECK_HEADERS(unistd.h sys/time.h sys/resource.h, 2095 [], 2096 setrlimit_have_headers=no) 2097 # If don't have the headers, then we can't run the tests now, and we 2098 # won't be seeing any of these during testsuite compilation. 2099 if test $setrlimit_have_headers = yes; then 2100 # Can't do these in a loop, else the resulting syntax is wrong. 2101 GLIBCPP_CHECK_SETRLIMIT_ancilliary(DATA) 2102 GLIBCPP_CHECK_SETRLIMIT_ancilliary(RSS) 2103 GLIBCPP_CHECK_SETRLIMIT_ancilliary(VMEM) 2104 GLIBCPP_CHECK_SETRLIMIT_ancilliary(AS) 2105 2106 # Check for rlimit, setrlimit. 2107 AC_CACHE_VAL(ac_setrlimit, [ 2108 AC_TRY_COMPILE([#include <unistd.h> 2109 #include <sys/time.h> 2110 #include <sys/resource.h> 2111 ], 2112 [ struct rlimit r; setrlimit(0, &r);], 2113 [ac_setrlimit=yes], [ac_setrlimit=no]) 2114 ]) 2115 fi 2116 2117 AC_MSG_CHECKING([for testsuite memory limit support]) 2118 if test $setrlimit_have_headers = yes && test $ac_setrlimit = yes; then 2119 ac_mem_limits=yes 2120 AC_DEFINE(_GLIBCPP_MEM_LIMITS) 2121 else 2122 ac_mem_limits=no 2123 fi 2124 AC_MSG_RESULT($ac_mem_limits) 2125]) 2126 2127 2128dnl 2129dnl Does any necessary configuration of the testsuite directory. Generates 2130dnl the testsuite_hooks.h header. 2131dnl 2132dnl GLIBCPP_CONFIGURE_TESTSUITE [no args] 2133AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [ 2134 if test x"$GLIBCPP_IS_CROSS_COMPILING" = xfalse; then 2135 # Do checks for memory limit functions. 2136 GLIBCPP_CHECK_SETRLIMIT 2137 2138 # Look for setenv, so that extended locale tests can be performed. 2139 GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv) 2140 fi 2141 2142 # Export file names for ABI checking. 2143 baseline_dir="${glibcpp_srcdir}/config/abi/${abi_baseline_pair}\$(MULTISUBDIR)" 2144 AC_SUBST(baseline_dir) 2145 2146 # Determine if checking the ABI is desirable. 2147 if test x$enable_symvers = xno; then 2148 enable_abi_check=no 2149 else 2150 case "$host" in 2151 *-*-cygwin*) 2152 enable_abi_check=no ;; 2153 *) 2154 enable_abi_check=yes ;; 2155 esac 2156 fi 2157 AM_CONDITIONAL(GLIBCPP_TEST_ABI, test "$enable_abi_check" = yes) 2158]) 2159 2160 2161sinclude(../libtool.m4) 2162dnl The lines below arrange for aclocal not to bring an installed 2163dnl libtool.m4 into aclocal.m4, while still arranging for automake to 2164dnl add a definition of LIBTOOL to Makefile.in. 2165ifelse(,,,[AC_SUBST(LIBTOOL) 2166AC_DEFUN([AM_PROG_LIBTOOL]) 2167AC_DEFUN([AC_LIBTOOL_DLOPEN]) 2168AC_DEFUN([AC_PROG_LD]) 2169]) 2170 2171dnl 2172dnl Check whether S_ISREG (Posix) or S_IFREG is available in <sys/stat.h>. 2173dnl 2174 2175AC_DEFUN(GLIBCPP_CHECK_S_ISREG_OR_S_IFREG, [ 2176 AC_CACHE_VAL(glibcpp_cv_S_ISREG, [ 2177 AC_TRY_LINK([#include <sys/stat.h>], 2178 [struct stat buffer; fstat(0, &buffer); S_ISREG(buffer.st_mode); ], 2179 [glibcpp_cv_S_ISREG=yes], 2180 [glibcpp_cv_S_ISREG=no]) 2181 ]) 2182 AC_CACHE_VAL(glibcpp_cv_S_IFREG, [ 2183 AC_TRY_LINK([#include <sys/stat.h>], 2184 [struct stat buffer; fstat(0, &buffer); S_IFREG & buffer.st_mode; ], 2185 [glibcpp_cv_S_IFREG=yes], 2186 [glibcpp_cv_S_IFREG=no]) 2187 ]) 2188 if test x$glibcpp_cv_S_ISREG = xyes; then 2189 AC_DEFINE(HAVE_S_ISREG) 2190 elif test x$glibcpp_cv_S_IFREG = xyes; then 2191 AC_DEFINE(HAVE_S_IFREG) 2192 fi 2193]) 2194 2195dnl 2196dnl Check whether poll is available in <poll.h>. 2197dnl 2198 2199AC_DEFUN(GLIBCPP_CHECK_POLL, [ 2200 AC_CACHE_VAL(glibcpp_cv_POLL, [ 2201 AC_TRY_COMPILE([#include <poll.h>], 2202 [struct pollfd pfd[1]; pfd[0].events = POLLIN; poll(pfd, 1, 0); ], 2203 [glibcpp_cv_POLL=yes], 2204 [glibcpp_cv_POLL=no]) 2205 ]) 2206 if test x$glibcpp_cv_POLL = xyes; then 2207 AC_DEFINE(HAVE_POLL) 2208 fi 2209]) 2210 2211# Check whether LC_MESSAGES is available in <locale.h>. 2212# Ulrich Drepper <drepper@cygnus.com>, 1995. 2213# 2214# This file file be copied and used freely without restrictions. It can 2215# be used in projects which are not available under the GNU Public License 2216# but which still want to provide support for the GNU gettext functionality. 2217# Please note that the actual code is *not* freely available. 2218 2219# serial 1 2220 2221AC_DEFUN(AC_LC_MESSAGES, [ 2222 AC_CHECK_HEADER(locale.h, [ 2223 AC_CACHE_CHECK([for LC_MESSAGES], ac_cv_val_LC_MESSAGES, 2224 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], 2225 ac_cv_val_LC_MESSAGES=yes, ac_cv_val_LC_MESSAGES=no)]) 2226 if test $ac_cv_val_LC_MESSAGES = yes; then 2227 AC_DEFINE(HAVE_LC_MESSAGES) 2228 fi 2229 ]) 2230]) 2231 2232 2233dnl 2234dnl Check for whether the Boost-derived checks should be turned on. 2235dnl 2236dnl GLIBCPP_ENABLE_CONCEPT_CHECKS 2237dnl --enable-concept-checks turns them on. 2238dnl --disable-concept-checks leaves them off. 2239dnl + Usage: GLIBCPP_ENABLE_CONCEPT_CHECKS[(DEFAULT)] 2240dnl Where DEFAULT is either `yes' or `no'. If ommitted, it 2241dnl defaults to `no'. 2242AC_DEFUN(GLIBCPP_ENABLE_CONCEPT_CHECKS, [dnl 2243define([GLIBCPP_ENABLE_CONCEPT_CHECKS_DEFAULT], ifelse($1, yes, yes, no))dnl 2244AC_ARG_ENABLE(concept-checks, 2245changequote(<<, >>)dnl 2246<< --enable-concept-checks use Boost-derived template checks [default=>>GLIBCPP_ENABLE_CONCEPT_CHECKS_DEFAULT], 2247changequote([, ])dnl 2248[case "$enableval" in 2249 yes) enable_concept_checks=yes ;; 2250 no) enable_concept_checks=no ;; 2251 *) AC_MSG_ERROR([Unknown argument to enable/disable concept checks]) ;; 2252 esac], 2253enable_concept_checks=GLIBCPP_ENABLE_CONCEPT_CHECKS_DEFAULT)dnl 2254dnl Option parsed, now set things appropriately 2255if test x"$enable_concept_checks" = xyes; then 2256 AC_DEFINE(_GLIBCPP_CONCEPT_CHECKS) 2257fi 2258]) 2259 2260 2261dnl 2262dnl Add version tags to symbols in shared library (or not), additionally 2263dnl marking other symbols as private/local (or not). 2264dnl 2265dnl GLIBCPP_ENABLE_SYMVERS 2266dnl --enable-symvers=style adds a version script to the linker call when 2267dnl creating the shared library. The choice of version script is 2268dnl controlled by 'style'. 2269dnl --disable-symvers does not. 2270dnl + Usage: GLIBCPP_ENABLE_SYMVERS[(DEFAULT)] 2271dnl Where DEFAULT is either `yes' or `no'. If ommitted, it 2272dnl defaults to `no'. Passing `yes' tries to choose a default style 2273dnl based on linker characteristics. Passing 'no' disables versioning. 2274AC_DEFUN(GLIBCPP_ENABLE_SYMVERS, [dnl 2275define([GLIBCPP_ENABLE_SYMVERS_DEFAULT], ifelse($1, yes, yes, no))dnl 2276AC_ARG_ENABLE(symvers, 2277changequote(<<, >>)dnl 2278<< --enable-symvers=style enables symbol versioning of the shared library [default=>>GLIBCPP_ENABLE_SYMVERS_DEFAULT], 2279changequote([, ])dnl 2280[case "$enableval" in 2281 yes) enable_symvers=yes ;; 2282 no) enable_symvers=no ;; 2283 # other names here, just as sanity checks 2284 #gnu|sun|etcetera) enable_symvers=$enableval ;; 2285 gnu) enable_symvers=$enableval ;; 2286 *) AC_MSG_ERROR([Unknown argument to enable/disable symvers]) ;; 2287 esac], 2288enable_symvers=GLIBCPP_ENABLE_SYMVERS_DEFAULT)dnl 2289 2290# If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we 2291# don't know enough about $LD to do tricks... 2292if test x$enable_shared = xno || 2293 test "x$LD" = x || 2294 test x$glibcpp_gnu_ld_version = x; then 2295 enable_symvers=no 2296fi 2297 2298# Check to see if libgcc_s exists, indicating that shared libgcc is possible. 2299if test $enable_symvers != no; then 2300 AC_MSG_CHECKING([for shared libgcc]) 2301 ac_save_CFLAGS="$CFLAGS" 2302 CFLAGS=' -lgcc_s' 2303 AC_TRY_LINK(, [return 0], glibcpp_shared_libgcc=yes, glibcpp_shared_libgcc=no) 2304 CFLAGS="$ac_save_CFLAGS" 2305 AC_MSG_RESULT($glibcpp_shared_libgcc) 2306fi 2307 2308# For GNU ld, we need at least this version. It's 2.12 in the same format 2309# as the tested-for version. See GLIBCPP_CHECK_LINKER_FEATURES for more. 2310glibcpp_min_gnu_ld_version=21200 2311 2312# Check to see if unspecified "yes" value can win, given results 2313# above. 2314if test $enable_symvers = yes ; then 2315 if test $with_gnu_ld = yes && 2316 test $glibcpp_shared_libgcc = yes ; 2317 then 2318 if test $glibcpp_gnu_ld_version -ge $glibcpp_min_gnu_ld_version ; then 2319 enable_symvers=gnu 2320 else 2321 ac_test_CFLAGS="${CFLAGS+set}" 2322 ac_save_CFLAGS="$CFLAGS" 2323 CFLAGS='-shared -Wl,--version-script,conftest.map' 2324 enable_symvers=no 2325 changequote(,) 2326 echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map 2327 changequote([,]) 2328 AC_TRY_LINK([int foo;],, enable_symvers=gnu) 2329 if test "$ac_test_CFLAGS" = set; then 2330 CFLAGS="$ac_save_CFLAGS" 2331 else 2332 # this is the suspicious part 2333 CFLAGS='' 2334 fi 2335 rm -f conftest.map 2336 fi 2337 else 2338 # just fail for now 2339 enable_symvers=no 2340 fi 2341fi 2342 2343dnl Everything parsed; figure out what file to use. 2344case $enable_symvers in 2345 no) 2346 SYMVER_MAP=config/linker-map.dummy 2347 ;; 2348 gnu) 2349 SYMVER_MAP=config/linker-map.gnu 2350 AC_DEFINE(_GLIBCPP_SYMVER) 2351 ;; 2352esac 2353 2354AC_SUBST(SYMVER_MAP) 2355AM_CONDITIONAL(GLIBCPP_BUILD_VERSIONED_SHLIB, test $enable_symvers != no) 2356AC_MSG_CHECKING([versioning on shared library symbols]) 2357AC_MSG_RESULT($enable_symvers) 2358]) 2359 2360 2361# isc-posix.m4 serial 2 (gettext-0.11.2) 2362dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. 2363dnl This file is free software, distributed under the terms of the GNU 2364dnl General Public License. As a special exception to the GNU General 2365dnl Public License, this file may be distributed as part of a program 2366dnl that contains a configuration script generated by Autoconf, under 2367dnl the same distribution terms as the rest of that program. 2368 2369# This file is not needed with autoconf-2.53 and newer. Remove it in 2005. 2370 2371# This test replaces the one in autoconf. 2372# Currently this macro should have the same name as the autoconf macro 2373# because gettext's gettext.m4 (distributed in the automake package) 2374# still uses it. Otherwise, the use in gettext.m4 makes autoheader 2375# give these diagnostics: 2376# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX 2377# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX 2378 2379undefine([AC_ISC_POSIX]) 2380 2381AC_DEFUN([AC_ISC_POSIX], 2382 [ 2383 dnl This test replaces the obsolescent AC_ISC_POSIX kludge. 2384 AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) 2385 ] 2386) 2387 2388# Add --enable-maintainer-mode option to configure. 2389# From Jim Meyering 2390 2391# serial 1 2392 2393AC_DEFUN([AM_MAINTAINER_MODE], 2394[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) 2395 dnl maintainer-mode is disabled by default 2396 AC_ARG_ENABLE(maintainer-mode, 2397[ --enable-maintainer-mode enable make rules and dependencies not useful 2398 (and sometimes confusing) to the casual installer], 2399 USE_MAINTAINER_MODE=$enableval, 2400 USE_MAINTAINER_MODE=no) 2401 AC_MSG_RESULT($USE_MAINTAINER_MODE) 2402 AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) 2403 MAINT=$MAINTAINER_MODE_TRUE 2404 AC_SUBST(MAINT)dnl 2405] 2406) 2407 2408# Define a conditional. 2409 2410AC_DEFUN([AM_CONDITIONAL], 2411[AC_SUBST($1_TRUE) 2412AC_SUBST($1_FALSE) 2413if $2; then 2414 $1_TRUE= 2415 $1_FALSE='#' 2416else 2417 $1_TRUE='#' 2418 $1_FALSE= 2419fi]) 2420 2421# Do all the work for Automake. This macro actually does too much -- 2422# some checks are only needed if your package does certain things. 2423# But this isn't really a big deal. 2424 2425# serial 1 2426 2427dnl Usage: 2428dnl AM_INIT_AUTOMAKE(package,version, [no-define]) 2429 2430AC_DEFUN([AM_INIT_AUTOMAKE], 2431[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl 2432AC_REQUIRE([AC_PROG_INSTALL]) 2433PACKAGE=[$1] 2434AC_SUBST(PACKAGE) 2435VERSION=[$2] 2436AC_SUBST(VERSION) 2437dnl test to see if srcdir already configured 2438if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then 2439 AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) 2440fi 2441ifelse([$3],, 2442AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) 2443AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) 2444AC_REQUIRE([AM_SANITY_CHECK]) 2445AC_REQUIRE([AC_ARG_PROGRAM]) 2446dnl FIXME This is truly gross. 2447missing_dir=`cd $ac_aux_dir && pwd` 2448AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir) 2449AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) 2450AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir) 2451AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) 2452AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) 2453AC_REQUIRE([AC_PROG_MAKE_SET])]) 2454 2455# Copyright 2002 Free Software Foundation, Inc. 2456 2457# This program is free software; you can redistribute it and/or modify 2458# it under the terms of the GNU General Public License as published by 2459# the Free Software Foundation; either version 2, or (at your option) 2460# any later version. 2461 2462# This program is distributed in the hope that it will be useful, 2463# but WITHOUT ANY WARRANTY; without even the implied warranty of 2464# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 2465# GNU General Public License for more details. 2466 2467# You should have received a copy of the GNU General Public License 2468# along with this program; if not, write to the Free Software 2469# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 2470 2471# AM_AUTOMAKE_VERSION(VERSION) 2472# ---------------------------- 2473# Automake X.Y traces this macro to ensure aclocal.m4 has been 2474# generated from the m4 files accompanying Automake X.Y. 2475AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"]) 2476 2477# AM_SET_CURRENT_AUTOMAKE_VERSION 2478# ------------------------------- 2479# Call AM_AUTOMAKE_VERSION so it can be traced. 2480# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. 2481AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], 2482 [AM_AUTOMAKE_VERSION([1.4-p6])]) 2483 2484# 2485# Check to make sure that the build environment is sane. 2486# 2487 2488AC_DEFUN([AM_SANITY_CHECK], 2489[AC_MSG_CHECKING([whether build environment is sane]) 2490# Just in case 2491sleep 1 2492echo timestamp > conftestfile 2493# Do `set' in a subshell so we don't clobber the current shell's 2494# arguments. Must try -L first in case configure is actually a 2495# symlink; some systems play weird games with the mod time of symlinks 2496# (eg FreeBSD returns the mod time of the symlink's containing 2497# directory). 2498if ( 2499 set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` 2500 if test "[$]*" = "X"; then 2501 # -L didn't work. 2502 set X `ls -t $srcdir/configure conftestfile` 2503 fi 2504 if test "[$]*" != "X $srcdir/configure conftestfile" \ 2505 && test "[$]*" != "X conftestfile $srcdir/configure"; then 2506 2507 # If neither matched, then we have a broken ls. This can happen 2508 # if, for instance, CONFIG_SHELL is bash and it inherits a 2509 # broken ls alias from the environment. This has actually 2510 # happened. Such a system could not be considered "sane". 2511 AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken 2512alias in your environment]) 2513 fi 2514 2515 test "[$]2" = conftestfile 2516 ) 2517then 2518 # Ok. 2519 : 2520else 2521 AC_MSG_ERROR([newly created file is older than distributed files! 2522Check your system clock]) 2523fi 2524rm -f conftest* 2525AC_MSG_RESULT(yes)]) 2526 2527dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) 2528dnl The program must properly implement --version. 2529AC_DEFUN([AM_MISSING_PROG], 2530[AC_MSG_CHECKING(for working $2) 2531# Run test in a subshell; some versions of sh will print an error if 2532# an executable is not found, even if stderr is redirected. 2533# Redirect stdin to placate older versions of autoconf. Sigh. 2534if ($2 --version) < /dev/null > /dev/null 2>&1; then 2535 $1=$2 2536 AC_MSG_RESULT(found) 2537else 2538 $1="$3/missing $2" 2539 AC_MSG_RESULT(missing) 2540fi 2541AC_SUBST($1)]) 2542 2543# Like AC_CONFIG_HEADER, but automatically create stamp file. 2544 2545AC_DEFUN([AM_CONFIG_HEADER], 2546[AC_PREREQ([2.12]) 2547AC_CONFIG_HEADER([$1]) 2548dnl When config.status generates a header, we must update the stamp-h file. 2549dnl This file resides in the same directory as the config header 2550dnl that is generated. We must strip everything past the first ":", 2551dnl and everything past the last "/". 2552AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl 2553ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, 2554<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, 2555<<am_indx=1 2556for am_file in <<$1>>; do 2557 case " <<$>>CONFIG_HEADERS " in 2558 *" <<$>>am_file "*<<)>> 2559 echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx 2560 ;; 2561 esac 2562 am_indx=`expr "<<$>>am_indx" + 1` 2563done<<>>dnl>>) 2564changequote([,]))]) 2565 2566