Formerly ../hurd/hurdkill.c.~5~
[kopensolaris-gnu/glibc.git] / configure.in
index 9a6dbea..9bc21ac 100644 (file)
@@ -7,7 +7,7 @@ changequote(,)dnl
 dnl You can ignore the following line if you are reading this sentence.
 # DO NOT EDIT!  This script is generated from configure.in; edit that instead.
 
-# Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
+# Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
 # The GNU C Library is free software; you can redistribute it and/or
@@ -31,113 +31,90 @@ dnl You can ignore the following line if you are reading this sentence.
 
 prog="`basename $0`"
 
-if [ $# -eq 0 -a "${ARCH-${machine}}" != "" ]; then
-  set "${ARCH-${machine}}"
-fi
-
 # All the standard GNU configure options are accepted but only
 # --nfp, --with-gnu-ld, and --with-gnu-as are meaningful.
 nfp=
 gnu_ld=
 gnu_as=
-version=
-release=
 prefix=
 exec_prefix=
 verbose=
 
+next=
 lose=
 for arg in $*; do
   if [ x$next != x ]; then
-    eval "$next = \$arg"
+    eval "$next=\$arg"
     next=
   else
     case $arg in
-     -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=* | --s=*)
-       srcdir=`echo $arg | sed 's/-*s[a-z]*=//'`
-       ;;
-     -srcdir | --srcdir | --srcdi | --srcd | --src | --sr | --s)
-       next=srcdir
-       ;;
-     -target | --target | --targe | --targ | --tar | --ta | --t)
-       next=target
-       ;;
-     -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-       target=`echo $arg | sed 's/-*t[a-z]*=//'`
-       ;; 
-
-     -with-gnu-ld | --with-gnu-ld | --with-gnu-l)
-       gnu_ld=--with-gnu-ld
-       ;;
-
-     -gas | --gas | --ga | --g | -with-gnu-as | --with-gnu-as | -with-gnu-a)
-        gnu_as=--with-gnu-as
-       ;;
-
-     -nfp | --nfp | --nf | --n)
-       nfp=--nfp
-       ;;
-
-     -with-* | --with-*)
-       ;; # ignored
-
-     -x | --x)
-       ;; # ignored
-
-     -os-release=* | -os-releas=* | -os-relea=* | -os-rele=* | -os-rel=* \
-     | -os-re=* | -os-r=* | --os-release=* | --os-releas=* | --os-relea=* \
-     | --os-rele=* | --os-rel=* | --os-re=* | --os-r=*)
-       release=`echo $arg | sed 's/-*os-r[a-z]*=//'`
+    -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=* | --s=*)
+       srcdir=`echo $arg | sed 's/-*s[a-z]*=//'`
        ;;
-     -os-release | -os-releas | -os-relea | -os-rele | -os-rel \
-     | -os-re | -os-r | --os-release | --os-releas | --os-relea \
-     | --os-rele | --os-rel | --os-re | --os-r)
-       next=release
+    -srcdir | --srcdir | --srcdi | --srcd | --src | --sr | --s)
+       next=srcdir
        ;;
+    -target | --target | --targe | --targ | --tar | --ta | --t)
+       next=target
+       ;;
+    -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+       target=`echo $arg | sed 's/-*t[a-z]*=//'`
+       ;; 
 
-     -os-version=* | -os-versio=* | -os-versi=* | -os-vers=* | -os-ver=* \
-     | -os-ver=* | -os-ve=* | -os-v=* | --os-version=* | --os-versio=* \
-     | --os-versi=* | --os-vers=* | --os-ver=* | --os-ver=* | --os-ve=* \
-     | --os-v=*)
-       version=`echo $arg | sed 's/-*os-v[a-z]*=//'`
+    -with-gnu-ld | --with-gnu-ld | --with-gnu-l)
+       gnu_ld=--with-gnu-ld
        ;;
-     -os-version | -os-versio | -os-versi | -os-vers | -os-ver \
-     | -os-ver | -os-ve | -os-v |--os-version | --os-versio \
-     | --os-versi | --os-vers | --os-ver | --os-ver | --os-ve | --os-v)
-       next=version
+
+    -gas | --gas | --ga | --g | -with-gnu-as | --with-gnu-as | -with-gnu-a)
+       gnu_as=--with-gnu-as
        ;;
 
-     # For backward compatibility, also recognize exact --exec_prefix.
-     -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* | --exec=* | --exe=* | --ex=* | --e=*)
-       exec_prefix=`echo $arg | sed 's/[-a-z_]*=//'`
-       ;;
-     -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- | --exec | --exe | --ex | --e)
-       next=exec_prefix
-       ;;
-
-     -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-       prefix=`echo $arg | sed 's/[-a-z_]*=//'`
-       ;;
-     -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-       next=prefix
-       ;;
-
-     -v | -verbose | --verbose | --verbos | --verbo | --verb | --ver | --ve | --v)
-       # Autoconf-generated code below will test this.
-       verbose=yes
+    -nfp | --nfp | --nf | --n)
+       nfp=--nfp
        ;;
 
-     -*)
-       echo "Invalid option \`$arg'" 1>&2
-       lose=yes
-       ;;
-     *)
-       if [ ! "$target" ]; then
-         target=$arg
-       else
-         lose=yes
-       fi
-       ;;
+    -with-* | --with-*)
+      # For `--with-foo=bar', do "with_foo='bar'".
+      # For `--with-fnord', do "with_fnord=yes".
+      # These variables may be examined by sysdep configure fragments.
+      eval `echo "$arg" | sed '{s/^-*//;s/-/_/g
+s/^\([^=]*\)=\(.*\)$/\1='\''\2'\''/;s/^\([^=]*\)$/\1=yes/;}'`
+      ;;
+
+    -x | --x)
+      ;; # ignored
+
+    # For backward compatibility, also recognize exact --exec_prefix.
+    -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* | --exec=* | --exe=* | --ex=* | --e=*)
+       exec_prefix=`echo $arg | sed 's/[-a-z_]*=//'`
+       ;;
+    -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- | --exec | --exe | --ex | --e)
+       next=exec_prefix
+       ;;
+
+    -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+       prefix=`echo $arg | sed 's/[-a-z_]*=//'`
+       ;;
+    -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+       next=prefix
+       ;;
+
+    -v | -verbose | --verbose | --verbos | --verbo | --verb | --ver | --ve | --v)
+      # Autoconf-generated code below will test this.
+      verbose=yes
+      ;;
+
+    -*)
+       echo "Invalid option \`$arg'" 1>&2
+       lose=yes
+       ;;
+    *)
+       if [ ! "$target" ]; then
+        target=$arg
+       else
+        lose=yes
+       fi
+       ;;
     esac
   fi
 done
@@ -148,18 +125,45 @@ if [ "$next" ]; then
   lose=yes
 fi
 
+dnl This deals with setting srcdir if it needs to be set.
+changequote([,])
+AC_PREPARE(features.h)
+AC_LANG_C
+changequote(,)
+
+# Decanonicalize srcdir so we can tell when we are configuring in srcdir.
+if [ "`(cd ${srcdir}; pwd)`" = "`pwd`" ]; then
+  srcdir=.
+fi
+
+if [ ! "$target" ]; then
+  target=`$srcdir/config.guess`
+  test -n "$target" && echo "No target given; guessing target is ${target}."
+fi
+
 if [ "$lose" = yes -o ! "$target" ]; then
-  echo "Usage: $prog [--srcdir=DIR] [--nfp] [--with-gnu-ld] TARGET" >&2
+  echo "\
+Usage: $prog [--srcdir=DIR] [--prefix=DIR] [--exec-prefix=DIR]
+            [--nfp] [--with-gnu-ld] [--with-gnu-as] TARGET" >&2
   if [ -r config.status ]; then
     cat config.status >&2
   fi
   exit 1
 fi
 
-dnl This deals with setting srcdir if it needs to be set.
-changequote([,])
-AC_PREPARE(features.h)
-changequote(,)
+# Done parsing the arguments.
+
+# This will get text that should go into config.make.
+config_vars=
+
+# Check for a --with-gmp argument and set gmp-srcdir in config.make.
+case "$with_gmp" in
+yes) echo "$prog: --with-gmp requires an argument; use --with-gmp=DIRECTORY"
+     exit 1 ;;
+'') ;;
+*) config_vars="$config_vars
+gmp-srcdir = $with_gmp" ;;
+esac
 
 # Canonicalize the configuration name.
 config=`$srcdir/config.sub $target`
@@ -172,19 +176,53 @@ sysdep_dir=$srcdir/sysdeps
 
 # machine-vendor-os
 eval "`echo $config | \
-       sed 's/^\(.*\)-\(.*\)-\(.*\)$/machine=\1 vendor=\2 os=\3/'`"
+       sed 's/^\(.*\)-\(.*\)-\(.*\)$/\
+config_machine=\1 config_vendor=\2 config_os=\3/'`"
+
+# We keep the original values in `$config_*' and never modify them, so we
+# can write them unchanged into config.make.  Everything else uses
+# $machine, $vendor, and $os, and changes them whenever convenient.
+machine=$config_machine
+vendor=$config_vendor
+os=$config_os
+
+# Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
+os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
+
+case "$machine" in
+i[34]86)
+  machine=i386/$machine ;;
+sparc[6789])
+  machine=sparc/$machine ;;
+m68k)
+  machine=m68k/m68020 ;;
+m680?0)
+  machine=m68k/$machine ;;
+m88k)
+  machine=m88k/m88100 ;;
+m88???)
+  machine=m88k/$machine ;;
+mips|r2000)
+  machine=mips/r3000 ;;
+r[34]000)
+  machine=mips/$machine ;;
+esac
 
 case "$os" in
 gnu*)
-  os=mach/hurd ;;
-sunos* | ultrix* | newsos* | dynix* | bsd*)
+  base_os=mach/hurd ;;
+netbsd* | 386bsd*)
+  base_os=unix/bsd/bsd4.4 ;;
+osf1* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
   base_os=unix/bsd ;;
-linux* | sysv* | isc* | esix* | sco* | minix*)
+linux* | sysv* | isc* | esix* | sco* | minix* | irix4*)
   base_os=unix/sysv ;;
+solaris[2-9]*)
+  base_os=unix/sysv/sysv4 ;;
 esac
 
-case "$os" in
-gnu* | linux*)
+case "$os:$base_os" in
+gnu* | linux* | bsd4.4* | *:bsd4.4)
   gnu_ld=--with-gnu-ld
   gnu_as=--with-gnu-as
 esac
@@ -210,12 +248,21 @@ while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; [ "$b" ]; do
   tail="$2"
 done
 
+# For sparc/sparc9, try sparc/sparc9 and then sparc.
+mach=
+tail=$machine
+while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; [ "$m" ]; do
+  set $m
+  mach="$mach /$1"
+  tail="$2"
+done
+
 # Find what sysdep directories exist.
 sysnames=
 for b in $base ''; do
   for v in /$vendor ''; do
     for o in /$ostry ''; do
-      for m in /$machine ''; do
+      for m in $mach ''; do
         if [ -d $sysdep_dir$b$v$o$m ]; then
           sysnames="$sysnames $b$v$o$m"
          [ "$o" -o "$b" ] && os_used=t
@@ -259,6 +306,9 @@ while [ $# -gt 0 ]; do
   if [ -f $sysdep_dir/$name/Implies ]; then
     # Collect more names from the `Implies' file (removing comments).
     implied="`sed 's/#.*$//' < $sysdep_dir/$name/Implies`"
+    for x in $implied; do
+      test -d $sysdep_dir/$x || echo "Warning: $name implies nonexistent $x">&2
+    done
   else
     implied=
   fi
@@ -269,9 +319,14 @@ while [ $# -gt 0 ]; do
   # Find the parent of NAME, using the empty string if it has none.
   parent="`echo $name | sed -n -e '/\//!q' -e 's=/[^/]*$==p'`"
 
-  # Append the names implied by NAME, and NAME's parent (if it has one),
-  # to the list of names to be processed (the argument list).
-  sysnames="`echo $* $implied $parent`"
+  # Add the names implied by NAME, and NAME's parent (if it has one), to
+  # the list of names to be processed (the argument list).  We prepend the
+  # implied names to the list and append the parent.  We want implied
+  # directories to come before further directories inferred from the
+  # configuration components; this ensures that for sysv4, unix/common
+  # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
+  # after sysv4).
+  sysnames="`echo $implied $* $parent`"
   if [ "$sysnames" != "" ]; then
     set $sysnames
   fi
@@ -302,11 +357,11 @@ done
 echo Using system-dependent files from directories:
 for dir in $sysnames; do echo "        $dir"; done
 
-# This will get text that should go into config.make.
-config_vars=
-
 changequote([,])dnl The world is now safe for m4, and unsafe for shell.
 dnl Be sure to add each macro used here to aclocal.m4 (which see).
+
+dnl Without this hack, AC_PROG_INSTALL will expand ${srcdir} in the name.
+define([AC_PROG_INSTALL_INSTALL_SH], ['$(..)install.sh -c'])
 AC_PROG_INSTALL
 AC_PROG_RANLIB
 
@@ -318,14 +373,43 @@ echo '#include <stddef.h>
 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
 eval "$CPP conftest.c 2>/dev/null" \
 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null \
-|| AC_DEFINE(__SIZE_TYPE__, unsigned)
+|| {
+  dnl Do this by hand instead of AC_DEFINE so we can use -U to avoid warnings.
+  DEFS="$DEFS -U__SIZE_TYPE__ -D__SIZE_TYPE__=unsigned"
+  (echo '#undef __SIZE_TYPE__';
+   echo '#define __SIZE_TYPE__ unsigned') >> confdefs.h
+  test -n "$verbose" && echo ' using unsigned int for size_t'
+}
 rm -f conftest*
 
-AC_HEADER_EGREP(__gnuc_va_list, stdarg.h, [config_vars="$config_vars
-stdarg.h = # The installed <stdarg.h> defines __gnuc_va_list."])
+AC_COMPILE_CHECK([libc-friendly stddef.h],
+[#define __need_size_t
+#define __need_wchar_t
+#include <stddef.h>
+#define __need_NULL
+#include <stddef.h>], [size_t size; wchar_t wchar;
+#ifdef offsetof
+#error stddef.h ignored __need_*
+#endif
+if (&size == NULL || &wchar == NULL) abort ();],
+[config_vars="$config_vars
+stddef.h = # The installed <stddef.h> seems to be libc-friendly."
+test -n "$verbose" && echo '   installed stddef.h looks friendly'])
 
 changequote(,)dnl The world is again safe for shell scripts.
 
+echo 'checking for need to use -P to assemble .S files'
+cat > conftest.S <<EOF
+#include "confdefs.h"
+/* Nothing whatsoever.  */
+EOF
+${CC-cc} $CFLAGS -c conftest.S 2>/dev/null || {
+  config_vars="$config_vars
+asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
+  test -n "$verbose" && echo ' using -P flag'
+}
+rm -f conftest*
+
 # Iterate over all the sysdep directories we will use, running their
 # configure fragments, and looking for a uname implementation.
 uname=
@@ -412,7 +496,7 @@ END
 #define UNAME_SYSNAME "${sysname}"
 #define UNAME_RELEASE "${release}"
 #define UNAME_VERSION "${version}"
-#define UNAME_MACHINE "${machine}-${vendor}"
+#define UNAME_MACHINE "${config_machine}-${config_vendor}"
 END
 
   system_name="$sysname $release version $version on $vendor $machine"
@@ -431,9 +515,9 @@ fi
 (
   echo '# This file was generated automatically by configure.  Do not edit.'
   echo '# Put configuration parameters in configparms instead.'
-  echo "config-machine = ${machine}"
-  echo "config-vendor = ${vendor}"
-  echo "config-os = ${os}"
+  echo "config-machine = ${config_machine}"
+  echo "config-vendor = ${config_vendor}"
+  echo "config-os = ${config_os}"
   echo "config-sysdirs = ${sysnames}"
   if [ "$prefix" ]; then
     echo "prefix = ${prefix}"
@@ -449,26 +533,6 @@ fi
 ) > config.make
 echo "Wrote config.make in $PWD."
 
-switches=
-if [ "$gnu_as" ]; then
-  switches="$switches --with-gnu-as"
-fi
-if [ "$gnu_ld" ]; then
-  switches="$switches --with-gnu-ld"
-fi
-if [ "$exec_prefix" ]; then
-  switches="$switches --exec_prefix=$exec_prefix"
-fi
-if [ "$prefix" ]; then
-  switches="$switches --prefix=$prefix"
-fi
-if [ "$release" ]; then
-  switches="$switches --os-release='$release'"
-fi
-if [ "$version" ]; then
-  switches="$switches --os-version='$version'"
-fi
-
 if [ $srcdir != . ]; then
   if [ $srcdir = .. ]; then
     cwd=`pwd`
@@ -481,7 +545,7 @@ if [ $srcdir != . ]; then
 srcdir = $srcdir
 
 all .DEFAULT:
-       \$(MAKE) -C \$(srcdir) ARCH=$objdir \$@
+       \$(MAKE) -C \$(srcdir) objdir=\`pwd\` \$@
 END
 
 echo "Wrote Makefile in $PWD."
@@ -492,7 +556,7 @@ cat > config.status <<END
 # This file was generated automatically by configure.  Do not edit.
 # The GNU C library was configured in $PWD for
 # $system_name as follows:
-$0 $config --srcdir=$srcdir $switches
+release=$release version=$version $0 $configure_args \$*
 END
 chmod a+x config.status
 echo "Wrote config.status in $PWD."
@@ -501,5 +565,5 @@ exit 0
 dnl This gets rid of the random stuff autoconf has stuffed in weird places.
 divert(-1)dnl AC_This is here so I can search for `AC_' to find the frobs.
 dnl Local Variables:
-dnl compile-command: "m4 /gd/gnu/autoconf/acgeneral.m4 /gd/gnu/autoconf/acspecific.m4 configure.in > configure && chmod a+x configure"
+dnl compile-command: "autoconf"
 dnl End: