
1: dnl Process this file with autoconf to produce a configure script. 2: AC_REVISION([$CVSid$]) 3: AC_PREREQ(2.53)dnl dnl Minimum Autoconf version required. 4: AC_INIT([GNU C Library], [(see version.h)], [glibc]) 5: AC_CONFIG_SRCDIR([include/features.h]) 6: AC_CONFIG_HEADERS([config.h]) 7: AC_CONFIG_AUX_DIR([scripts]) 8: 9: if test "`cd $srcdir; /bin/pwd`" = "`/bin/pwd`"; then 10: AC_MSG_ERROR([you must configure in a separate build directory]) 11: fi 12: 13: # This will get text that should go into config.make. 14: config_vars= 15: 16: # Check for a --with-gd argument and set libgd-LDFLAGS in config.make. 17: AC_ARG_WITH([gd], 18: AC_HELP_STRING([--with-gd=DIR], 19: [find libgd include dir and library with prefix DIR]), 20: [dnl 21: case "$with_gd" in 22: yes|''|no) ;; 23: *) libgd_include="-I$withval/include" 24: libgd_ldflags="-L$withval/lib" ;; 25: esac 26: ]) 27: AC_ARG_WITH([gd-include], 28: AC_HELP_STRING([--with-gd-include=DIR], 29: [find libgd include files in DIR]), 30: [dnl 31: case "$with_gd_include" in 32: ''|no) ;; 33: *) libgd_include="-I$withval" ;; 34: esac 35: ]) 36: AC_ARG_WITH([gd-lib], 37: AC_HELP_STRING([--with-gd-lib=DIR], 38: [find libgd library files in DIR]), 39: [dnl 40: case "$with_gd_lib" in 41: ''|no) ;; 42: *) libgd_ldflags="-L$withval" ;; 43: esac 44: ]) 45: 46: if test -n "$libgd_include"; then 47: config_vars="$config_vars 48: CFLAGS-memusagestat.c = $libgd_include" 49: fi 50: if test -n "$libgd_ldflags"; then 51: config_vars="$config_vars 52: libgd-LDFLAGS = $libgd_ldflags" 53: fi 54: 55: dnl Arguments to specify presence of other packages/features. 56: AC_ARG_WITH([fp], 57: AC_HELP_STRING([--with-fp], 58: [if using floating-point hardware @<:@default=yes@:>@]), 59: [with_fp=$withval], 60: [with_fp=yes]) 61: AC_SUBST(with_fp) 62: AC_ARG_WITH([binutils], 63: AC_HELP_STRING([--with-binutils=PATH], 64: [specify location of binutils (as and ld)]), 65: [path_binutils=$withval], 66: [path_binutils='']) 67: AC_ARG_WITH([elf], 68: AC_HELP_STRING([--with-elf], 69: [if using the ELF object format]), 70: [elf=$withval], 71: [elf=no]) 72: AC_ARG_WITH([selinux], 73: AC_HELP_STRING([--with-selinux], 74: [if building with SELinux support]), 75: [with_selinux=$withval], 76: [with_selinux=auto]) 77: AC_ARG_WITH([xcoff], 78: AC_HELP_STRING([--with-xcoff], 79: [if using the XCOFF object format]), 80: [xcoff=$withval], 81: [xcoff=no]) 82: AC_ARG_WITH([cvs], 83: AC_HELP_STRING([--without-cvs], 84: [if CVS should not be used]), 85: [with_cvs=$withval], 86: [with_cvs=yes]) 87: if test "$with_cvs" = yes; then 88: if test -d $srcdir/CVS && grep :pserver: $srcdir/CVS/Root > /dev/null 89: then 90: with_cvs=no 91: fi 92: fi 93: AC_SUBST(with_cvs) 94: 95: AC_ARG_WITH([headers], 96: AC_HELP_STRING([--with-headers=PATH], 97: [location of system headers to use 98: (for example /usr/src/linux/include) 99: @<:@default=compiler default@:>@]), 100: [sysheaders=$withval], 101: [sysheaders='']) 102: 103: AC_ARG_ENABLE([sanity-checks], 104: AC_HELP_STRING([--disable-sanity-checks], 105: [really do not use threads (should not be used except in special situations) @<:@default=yes@:>@]), 106: [enable_sanity=$enableval], 107: [enable_sanity=yes]) 108: 109: AC_SUBST(enable_check_abi) 110: AC_ARG_ENABLE([check-abi], 111: AC_HELP_STRING([--enable-check-abi], 112: [do "make check-abi" in "make check" (no/warn/yes) 113: @<:@default=no@:>@]), 114: [enable_check_abi=$enableval], 115: [enable_check_abi=no]) 116: 117: dnl Arguments to enable or disable building the static, shared, profiled, 118: dnl and -fomit-frame-pointer libraries. 119: dnl I've disabled this for now since we cannot build glibc without static 120: dnl libraries built in the moment. 121: dnl AC_ARG_ENABLE([static], 122: dnl AC_HELP_STRING([--enable-static], 123: dnl [build static library @<:@default=yes@:>@]), 124: dnl [static=$enableval], 125: dnl [static=yes]) 126: static=yes 127: AC_ARG_ENABLE([shared], 128: AC_HELP_STRING([--enable-shared], 129: [build shared library @<:@default=yes if GNU ld & ELF@:>@]), 130: [shared=$enableval], 131: [shared=default]) 132: AC_ARG_ENABLE([profile], 133: AC_HELP_STRING([--enable-profile], 134: [build profiled library @<:@default=no@:>@]), 135: [profile=$enableval], 136: [profile=no]) 137: AC_ARG_ENABLE([omitfp], 138: AC_HELP_STRING([--enable-omitfp], 139: [build undebuggable optimized library @<:@default=no@:>@]), 140: [omitfp=$enableval], 141: [omitfp=no]) 142: AC_ARG_ENABLE([bounded], 143: AC_HELP_STRING([--enable-bounded], 144: [build with runtime bounds checking @<:@default=no@:>@]), 145: [bounded=$enableval], 146: [bounded=no]) 147: AC_ARG_ENABLE([versioning], 148: AC_HELP_STRING([--disable-versioning], 149: [do not include versioning information in the library objects @<:@default=yes if supported@:>@]), 150: [enable_versioning=$enableval], 151: [enable_versioning=yes]) 152: 153: AC_ARG_ENABLE([oldest-abi], 154: AC_HELP_STRING([--enable-oldest-abi=ABI], 155: [configure the oldest ABI supported @<:@e.g. 2.2@:>@ @<:@default=glibc default@:>@]), 156: [oldest_abi=$enableval], 157: [oldest_abi=no]) 158: if test "$oldest_abi" = yes || test "$oldest_abi" = no; then 159: oldest_abi=default 160: else 161: AC_DEFINE_UNQUOTED(GLIBC_OLDEST_ABI, "$oldest_abi") 162: fi 163: AC_SUBST(oldest_abi) 164: 165: AC_ARG_ENABLE([stackguard-randomization], 166: AC_HELP_STRING([--enable-stackguard-randomization], 167: [initialize __stack_chk_guard canary with a random number at program start]), 168: [enable_stackguard_randomize=$enableval], 169: [enable_stackguard_randomize=no]) 170: if test "$enable_stackguard_randomize" = yes; then 171: AC_DEFINE(ENABLE_STACKGUARD_RANDOMIZE) 172: fi 173: 174: dnl Generic infrastructure for drop-in additions to libc. 175: AC_ARG_ENABLE([add-ons], 176: AC_HELP_STRING([--enable-add-ons@<:@=DIRS...@:>@], 177: [configure and build add-ons in DIR1,DIR2,... 178: search for add-ons if no parameter given]), 179: , [enable_add_ons=yes]) 180: 181: dnl Let the user avoid using TLS. Don't know why but... 182: AC_ARG_WITH([tls], 183: AC_HELP_STRING([--with-tls], 184: [enable support for TLS]), 185: [usetls=$withval], 186: [usetls=yes]) 187: 188: AC_ARG_WITH([__thread], 189: AC_HELP_STRING([--without-__thread], 190: [do not use TLS features even when supporting them]), 191: [use__thread=$withval], 192: [use__thread=yes]) 193: 194: AC_ARG_ENABLE([hidden-plt], 195: AC_HELP_STRING([--disable-hidden-plt], 196: [do not hide internal function calls to avoid PLT]), 197: [hidden=$enableval], 198: [hidden=yes]) 199: if test "x$hidden" = xno; then 200: AC_DEFINE(NO_HIDDEN) 201: fi 202: 203: AC_ARG_ENABLE([bind-now], 204: AC_HELP_STRING([--enable-bind-now], 205: [disable lazy relocations in DSOs]), 206: [bindnow=$enableval], 207: [bindnow=no]) 208: AC_SUBST(bindnow) 209: 210: dnl On some platforms we cannot use dynamic loading. We must provide 211: dnl static NSS modules. 212: AC_ARG_ENABLE([static-nss], 213: AC_HELP_STRING([--enable-static-nss], 214: [build static NSS modules @<:@default=no@:>@]), 215: [static_nss=$enableval], 216: [static_nss=no]) 217: dnl Enable static NSS also if we build no shared objects. 218: if test x"$static_nss" = xyes || test x"$shared" = xno; then 219: static_nss=yes 220: AC_DEFINE(DO_STATIC_NSS) 221: fi 222: 223: AC_ARG_ENABLE([force-install], 224: AC_HELP_STRING([--disable-force-install], 225: [don't force installation of files from this package, even if they are older than the installed files]), 226: [force_install=$enableval], 227: [force_install=yes]) 228: AC_SUBST(force_install) 229: 230: dnl On some platforms we allow dropping compatibility with all kernel 231: dnl versions. 232: AC_ARG_ENABLE([kernel], 233: AC_HELP_STRING([--enable-kernel=VERSION], 234: [compile for compatibility with kernel not older than VERSION]), 235: [minimum_kernel=$enableval], 236: []) 237: dnl Prevent unreasonable values. 238: if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then 239: # Better nothing than this. 240: minimum_kernel="" 241: else 242: if test "$minimum_kernel" = current; then 243: minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel= 244: fi 245: fi 246: 247: dnl For the development we sometimes want gcc to issue even more warnings. 248: dnl This is not the default since many of the extra warnings are not 249: dnl appropriate. 250: AC_ARG_ENABLE([all-warnings], 251: AC_HELP_STRING([--enable-all-warnings], 252: [enable all useful warnings gcc can issue]), 253: [all_warnings=$enableval], 254: []) 255: AC_SUBST(all_warnings) 256: 257: AC_CANONICAL_HOST 258: 259: # The way shlib-versions is used to generate soversions.mk uses a 260: # fairly simplistic model for name recognition that can't distinguish 261: # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os 262: # of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can 263: # tell. This doesn't get used much beyond that, so it's fairly safe. 264: case "$host_os" in 265: linux*) 266: ;; 267: gnu*) 268: host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'` 269: ;; 270: esac 271: 272: # We keep the original values in `$config_*' and never modify them, so we 273: # can write them unchanged into config.make. Everything else uses 274: # $machine, $vendor, and $os, and changes them whenever convenient. 275: config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os 276: 277: # Don't allow vendor == "unknown" 278: test "$config_vendor" = unknown && config_vendor= 279: config_os="`echo $config_os | sed 's/^unknown-//'`" 280: 281: # Some configurations imply other options. 282: case "$host_os" in 283: # i586-linuxaout is mangled into i586-pc-linux-gnuaout 284: linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*) 285: ;; 286: gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*) 287: # These systems (almost) always use the ELF format. 288: elf=yes 289: ;; 290: aix*) 291: # These systems are always xcoff 292: xcoff=yes 293: elf=no 294: ;; 295: esac 296: 297: # The configure fragment of an add-on port can modify these to supplement 298: # or override the table in the case statement below. No fragment should 299: # ever change the config_* variables, however. 300: machine=$config_machine 301: vendor=$config_vendor 302: os=$config_os 303: 304: # config.guess on some IBM machines says `rs6000' instead of `powerpc'. 305: # Unify this here. 306: if test "$machine" = rs6000; then 307: machine="powerpc" 308: fi 309: 310: # Braindead PowerPC box with absolutely no FPU. 311: case "$machine-$host_os" in 312: powerpc*-*soft) 313: with_fp=no 314: ;; 315: esac 316: 317: submachine= 318: AC_ARG_WITH([cpu], 319: AS_HELP_STRING([--with-cpu=CPU], [select code for CPU variant]), 320: [dnl 321: case "$withval" in 322: yes|'') AC_MSG_ERROR([--with-cpu requires an argument]) ;; 323: no) ;; 324: *) submachine="$withval" ;; 325: esac 326: ]) 327: 328: 329: # An add-on can set this when it wants to disable the sanity check below. 330: libc_config_ok=no 331: 332: dnl Having this here, though empty, makes sure that if add-ons' fragments 333: dnl do AC_CONFIG_SUBDIRS([some-dir]), which just sets $subdirs, then 334: dnl our AC_OUTPUT will actually use it. 335: AC_CONFIG_SUBDIRS() 336: 337: case "$enable_add_ons" in 338: ''|no) add_ons= ;; 339: yes|'*') 340: add_ons=`cd $srcdir && ls -d 2> /dev/null */configure */sysdeps | 341: sed 's@/[[^/]]*$@@' | sort | uniq` 342: add_ons_automatic=yes 343: ;; 344: *) add_ons=`echo "$enable_add_ons" | sed 's/,/ /g'` 345: add_ons_automatic=no ;; 346: esac 347: 348: configured_add_ons= 349: add_ons_sfx= 350: add_ons_pfx= 351: if test x"$add_ons" != x; then 352: for f in $add_ons; do 353: # Some sanity checks 354: case "$f" in 355: crypt) 356: AC_MSG_ERROR([ 357: *** It seems that you're using an old \`crypt' add-on. crypt is now 358: *** part of glibc and using the old add-on will not work with this 359: *** release. Start again with fresh sources and without the old 360: *** \`crypt' add-on.]) 361: ;; 362: localedata) 363: AC_MSG_ERROR([ 364: *** It seems that you're using an old \`localedata' add-on. localedata 365: *** is now part of glibc and using the old add-on will not work with 366: *** this release. Start again with fresh sources and without the old 367: *** \`localedata' add-on.]) 368: ;; 369: esac 370: done 371: 372: # Now source each add-on's configure fragment. 373: # The fragments can use $srcdir/$libc_add_on to find themselves, 374: # and test $add_ons_automatic to see if they were explicitly requested. 375: # A fragment can clear (or even change) $libc_add_on to affect 376: # whether it goes into the list to be actually used in the build. 377: use_add_ons= 378: for libc_add_on in $add_ons; do 379: # Test whether such a directory really exists. 380: # It can be absolute, or relative to $srcdir, or relative to the build dir. 381: case "$libc_add_on" in 382: /*) 383: libc_add_on_srcdir=$libc_add_on 384: ;; 385: *) 386: test -d "$srcdir/$libc_add_on" || { 387: if test -d "$libc_add_on"; then 388: libc_add_on="`pwd`/$libc_add_on" 389: else 390: AC_MSG_ERROR(add-on directory \"$libc_add_on\" does not exist) 391: fi 392: } 393: libc_add_on_srcdir=$srcdir/$libc_add_on 394: ;; 395: esac 396: 397: libc_add_on_frag=$libc_add_on_srcdir/configure 398: libc_add_on_canonical= 399: if test -r "$libc_add_on_frag"; then 400: AC_MSG_NOTICE(running configure fragment for add-on $libc_add_on) 401: libc_add_on_canonical=unknown 402: libc_add_on_subdirs= 403: . "$libc_add_on_frag" 404: test -z "$libc_add_on" || { 405: configured_add_ons="$configured_add_ons $libc_add_on" 406: if test "x$libc_add_on_canonical" = xunknown; then 407: AC_MSG_ERROR(fragment must set \$libc_add_on_canonical) 408: fi 409: for d in $libc_add_on_subdirs; do 410: case "$libc_add_on" in 411: /*) subdir_srcdir="$libc_add_on" ;; 412: *) subdir_srcdir="\$(..)$libc_add_on" ;; 413: esac 414: case "$d" in 415: .) 416: d="${libc_add_on_canonical:-$libc_add_on}" 417: ;; 418: /*) 419: subdir_srcdir="$d" 420: ;; 421: *) 422: subdir_srcdir="$subdir_srcdir/$d" 423: ;; 424: esac 425: d=`echo "$d" | sed 's@/*$@@;s@^.*/@@'` 426: add_on_subdirs="$add_on_subdirs $d" 427: test "$subdir_srcdir" = "\$(..)$d" || config_vars="$config_vars 428: $d-srcdir = $subdir_srcdir" 429: done 430: } 431: fi 432: if test -n "$libc_add_on"; then 433: if frags=`ls -d $libc_add_on_srcdir/sysdeps/*/preconfigure 2> /dev/null` 434: then 435: AC_MSG_CHECKING(add-on $libc_add_on for preconfigure fragments) 436: for frag in $frags; do 437: name=`echo "$frag" | sed 's@/[[^/]]*$@@;s@^.*/@@'` 438: echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD 439: . "$frag" 440: done 441: AC_MSG_RESULT() 442: fi 443: use_add_ons="$use_add_ons $libc_add_on" 444: add_ons_pfx="$add_ons_pfx $libc_add_on/" 445: test -z "$libc_add_on_canonical" || 446: add_ons_sfx="$add_ons_sfx /$libc_add_on_canonical" 447: fi 448: done 449: # Use echo to strip excess whitespace. 450: add_ons="`echo $use_add_ons`" 451: fi 452: AC_SUBST(add_ons) 453: AC_SUBST(add_on_subdirs) 454: 455: 456: ### 457: ### I put this here to prevent those annoying emails from people who cannot 458: ### read and try to compile glibc on unsupported platforms. --drepper 459: ### 460: ### By using the undocumented --enable-hacker-mode option for configure 461: ### one can skip this test to make the configuration not fail for unsupported 462: ### platforms. 463: ### 464: if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then 465: case "$machine-$host_os" in 466: *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*) 467: ;; 468: *) 469: echo "*** The GNU C library is currently not available for this platform." 470: echo "*** So far nobody cared to port it and if there is no volunteer it" 471: echo "*** might never happen. So, if you have interest to see glibc on" 472: echo "*** this platform visit" 473: echo "*** http://www.gnu.org/software/libc/porting.html" 474: echo "*** and join the group of porters" 475: exit 1 476: ;; 477: esac 478: fi 479: 480: dnl We need to use [ and ] for other purposes for a while now. 481: changequote(,)dnl 482: # Expand the configuration machine name into a subdirectory by architecture 483: # type and particular chip. If an add-on configure fragment already set 484: # base_machine, we don't change it. 485: test -n "$base_machine" || case "$machine" in 486: a29k | am29000) base_machine=a29k machine=a29k ;; 487: alpha*) base_machine=alpha machine=alpha/$machine ;; 488: c3[012]) base_machine=cx0 machine=cx0/c30 ;; 489: c4[04]) base_machine=cx0 machine=cx0/c40 ;; 490: i[34567]86) base_machine=i386 machine=i386/$machine ;; 491: ia64) base_machine=ia64 machine=ia64 ;; 492: m88???) base_machine=m88k machine=m88k/$machine ;; 493: m88k) base_machine=m88k machine=m88k/m88100 ;; 494: powerpc) base_machine=powerpc machine=powerpc/powerpc32 ;; 495: powerpc64) base_machine=powerpc machine=powerpc/powerpc64 ;; 496: s390) base_machine=s390 machine=s390/s390-32 ;; 497: s390x) base_machine=s390 machine=s390/s390-64 ;; 498: sh3*) base_machine=sh machine=sh/sh3 ;; 499: sh4*) base_machine=sh machine=sh/sh4 ;; 500: sparc | sparcv[67]) 501: base_machine=sparc machine=sparc/sparc32 ;; 502: sparcv8 | supersparc | hypersparc) 503: base_machine=sparc machine=sparc/sparc32/sparcv8 ;; 504: sparcv8plus | sparcv8plusa | sparcv9) 505: base_machine=sparc machine=sparc/sparc32/sparcv9 ;; 506: sparcv8plusb | sparcv9b) 507: base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9b ;; 508: sparcv9v) 509: base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9v ;; 510: sparc64) 511: base_machine=sparc machine=sparc/sparc64 ;; 512: sparc64b) 513: base_machine=sparc machine=sparc/sparc64/sparcv9b ;; 514: sparc64v) 515: base_machine=sparc machine=sparc/sparc64/sparcv9v ;; 516: *) base_machine=$machine ;; 517: esac 518: changequote([,])dnl 519: AC_SUBST(base_machine) 520: 521: if test "$base_machine" = "i386"; then 522: AC_DEFINE(USE_REGPARMS) 523: fi 524: 525: # Compute the list of sysdep directories for this configuration. 526: # This can take a while to compute. 527: sysdep_dir=$srcdir/sysdeps 528: AC_MSG_CHECKING(sysdep dirs) 529: dnl We need to use [ and ] for other purposes for a while now. 530: changequote(,)dnl 531: # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1. 532: os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`" 533: 534: case "$os" in 535: gnu*) 536: base_os=mach/hurd ;; 537: netbsd* | 386bsd* | freebsd* | bsdi*) 538: base_os=unix/bsd/bsd4.4 ;; 539: osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*) 540: base_os=unix/bsd ;; 541: sysv* | isc* | esix* | sco* | minix* | irix4* | linux*) 542: base_os=unix/sysv ;; 543: irix6*) 544: base_os=unix/sysv/irix6/$os ;; 545: solaris[2-9]*) 546: base_os=unix/sysv/sysv4 ;; 547: hpux*) 548: base_os=unix/sysv/hpux/$os ;; 549: aix4.3*) 550: base_os=unix/sysv/aix/aix4.3 ;; 551: none) 552: base_os=standalone ;; 553: *) 554: base_os='' ;; 555: esac 556: 557: # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos. 558: tail=$os 559: ostry=$os 560: while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do 561: ostry="$ostry /$o" 562: tail=$o 563: done 564: o=`echo $tail | sed 's/[0-9]*$//'` 565: if test $o != $tail; then 566: ostry="$ostry /$o" 567: fi 568: # For linux-gnu, try linux-gnu, then linux. 569: o=`echo $tail | sed 's/-.*$//'` 570: if test $o != $tail; then 571: ostry="$ostry /$o" 572: fi 573: 574: # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix. 575: base= 576: tail=$base_os 577: while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do 578: set $b 579: base="$base /$1" 580: tail="$2" 581: done 582: 583: # For sparc/sparc32, try sparc/sparc32 and then sparc. 584: mach= 585: tail=$machine${submachine:+/$submachine} 586: while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do 587: set $m 588: # Prepend the machine's FPU directory unless --without-fp. 589: if test "$with_fp" = yes; then 590: mach="$mach /$1/fpu" 591: else 592: mach="$mach /$1/nofpu" 593: fi 594: mach="$mach /$1" 595: tail="$2" 596: done 597: 598: dnl We are done with glob and regexp uses of [ and ]; return to autoconf. 599: changequote([,])dnl 600: 601: # Find what sysdep directories exist. 602: sysnames_add_ons= 603: sysnames= 604: for b in $base ''; do 605: for m0 in $mach ''; do 606: for v in /$vendor ''; do 607: test "$v" = / && continue 608: for o in /$ostry ''; do 609: test "$o" = / && continue 610: for m in $mach ''; do 611: for d in $add_ons_pfx ''; do 612: for a in $add_ons_sfx ''; do 613: if test -n "$m0$m0sub$b$v$o$m$msub"; then 614: try_srcdir="${srcdir}/" 615: case "$d" in 616: /*) try_srcdir= ;; 617: esac 618: try="${d}sysdeps$m0$m0sub$b$v$o$m$msub$a" 619: test -n "$enable_debug_configure" && 620: echo "$0 [DEBUG]: try $try" >&2 621: if test -d "$try_srcdir$try"; then 622: sysnames="$sysnames $try" 623: { test -n "$o" || test -n "$b"; } && os_used=t 624: { test -n "$m" || test -n "$m0"; } && machine_used=t 625: case x${m0:-$m} in 626: x*/$submachine) submachine_used=t ;; 627: esac 628: if test -n "$d"; then 629: case "$sysnames_add_ons" in 630: *" $d "*) ;; 631: *|'') sysnames_add_ons="$sysnames_add_ons $d" ;; 632: esac 633: fi 634: fi 635: fi 636: done 637: done 638: done 639: done 640: done 641: done 642: done 643: 644: if test -z "$os_used" && test "$os" != none; then 645: AC_MSG_ERROR(Operating system $os is not supported.) 646: fi 647: if test -z "$machine_used" && test "$machine" != none; then 648: AC_MSG_ERROR(The $machine is not supported.) 649: fi 650: if test -z "$submachine_used" && test -n "$submachine"; then 651: AC_MSG_ERROR(The $submachine subspecies of $host_cpu is not supported.) 652: fi 653: AC_SUBST(submachine) 654: 655: # We have now validated the configuration. 656: 657: 658: # If using ELF, look for an `elf' subdirectory of each machine directory. 659: # We prepend these rather than inserting them whereever the machine appears 660: # because things specified by the machine's ELF ABI should override 661: # OS-specific things, and should always be the same for any OS on the 662: # machine (otherwise what's the point of an ABI?). 663: if test "$elf" = yes; then 664: elf_dirs= 665: for d in $add_ons_pfx ''; do 666: for m in $mach; do 667: if test -d $srcdir/${d}sysdeps$m/elf; then 668: elf_dirs="$elf_dirs ${d}sysdeps$m/elf" 669: fi 670: done 671: done 672: sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames" 673: fi 674: 675: 676: # Expand the list of system names into a full list of directories 677: # from each element's parent name and Implies file (if present). 678: set $sysnames 679: names= 680: while test $# -gt 0; do 681: name=$1 682: shift 683: 684: case " $names " in *" $name "*) 685: # Already in the list. 686: continue 687: esac 688: 689: # Report each name as we discover it, so there is no long pause in output. 690: echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD 691: 692: name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'` 693: 694: case $name in 695: /*) xsrcdir= ;; 696: *) xsrcdir=$srcdir/ ;; 697: esac 698: test -n "$enable_debug_configure" && 699: echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2 700: 701: if test -f $xsrcdir$name/Implies; then 702: # Collect more names from the `Implies' file (removing comments). 703: implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`" 704: implied= 705: for x in $implied_candidate; do 706: found=no 707: if test -d $xsrcdir$name_base/$x; then 708: implied="$implied $name_base/$x"; 709: found=yes 710: fi 711: for d in $add_ons_pfx ''; do 712: try="${d}sysdeps/$x" 713: case $d in 714: /*) try_srcdir= ;; 715: *) try_srcdir=$srcdir/ ;; 716: esac 717: test -n "$enable_debug_configure" && 718: echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2 719: if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try; 720: then 721: implied="$implied $try" 722: found=yes 723: case "$sysnames_add_ons" in 724: *" $d "*) ;; 725: *|'') sysnames_add_ons="$sysnames_add_ons $d" ;; 726: esac 727: fi 728: done 729: if test $found = no; then 730: AC_MSG_WARN($name/Implies specifies nonexistent $x) 731: fi 732: done 733: else 734: implied= 735: fi 736: 737: # Add NAME to the list of names. 738: names="$names $name" 739: 740: # Find the parent of NAME, using the empty string if it has none. 741: changequote(,)dnl 742: parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`" 743: changequote([,])dnl 744: 745: # Add the names implied by NAME, and NAME's parent (if it has one), to 746: # the list of names to be processed (the argument list). We prepend the 747: # implied names to the list and append the parent. We want implied 748: # directories to come before further directories inferred from the 749: # configuration components; this ensures that for sysv4, unix/common 750: # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*) 751: # after sysv4). 752: sysnames="`echo $implied $* $parent`" 753: test -n "$sysnames" && set $sysnames 754: done 755: 756: # Add the default directories. 757: default_sysnames=sysdeps/generic 758: if test "$elf" = yes; then 759: default_sysnames="sysdeps/generic/elf $default_sysnames" 760: fi 761: sysnames="$names $default_sysnames" 762: AC_SUBST(sysnames) 763: # The other names were emitted during the scan. 764: AC_MSG_RESULT($default_sysnames) 765: 766: # Collect the list of add-ons that supply partial sysdeps trees. 767: sysdeps_add_ons= 768: for add_on in $add_ons; do 769: case "$add_on" in 770: /*) xsrcdir= ;; 771: *) xsrcdir="$srcdir/" ;; 772: esac 773: 774: test -d "$xsrcdir$add_on/sysdeps" || { 775: case "$configured_add_ons " in 776: *" $add_on "*) ;; 777: *|'') 778: AC_MSG_ERROR(add-on $add_on has no configure fragment or sysdeps tree) 779: ;; 780: esac 781: continue 782: } 783: 784: sysdeps_add_ons="$sysdeps_add_ons $add_on" 785: case "$sysnames_add_ons" in 786: *" $add_on/ "*) ;; 787: *|'') 788: AC_MSG_WARN(add-on $add_on contributed no sysdeps directories) 789: continue ;; 790: esac 791: 792: found=no 793: for d in $sysnames; do 794: case "$d" in 795: $add_on/sysdeps/*) ;; 796: *) continue ;; 797: esac 798: (cd "$xsrcdir$d" && for f in *[[!~]]; do 799: case "$f" in 800: sys|bits) 801: for ff in $f/*.h; do 802: test -d "$ff" || { test -e "$ff" && exit 88; } 803: done 804: ;; 805: *) 806: test -d "$f" || { test -e "$f" && exit 88; } 807: ;; 808: esac 809: done) 810: if test $? -eq 88; then 811: found=yes 812: break