Formerly ../hurd/hurdkill.c.~5~
[kopensolaris-gnu/glibc.git] / configure.in
index ef1cd0d..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,107 +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
-       ;;
-
-     -*)
-       echo "Invalid option \`$arg'" 1>&2
-       lose=yes
-       ;;
-     *)
-       if [ ! "$target" ]; then
-         target=$arg
-       else
-         lose=yes
-       fi
-       ;;
+    -nfp | --nfp | --nf | --n)
+       nfp=--nfp
+       ;;
+
+    -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
@@ -142,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`
@@ -166,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
@@ -204,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
@@ -229,77 +282,167 @@ if [ ! "$machine_used" -a "$machine" != none ]; then
   exit 1
 fi
 
-# Uniquize the list.
+# We have now validated the configuration.
+
+PWD=`pwd`
+echo Configuring the GNU C library in $PWD
+echo on `(hostname || uname -n) 2>/dev/null | sed 1q` for ${config}.
+
+# Remove the leading slashes.
+sysnames="`echo $sysnames | sed -e 's@^/@@' -e 's@ /@ @g'`"
+
+# Prepend the machine's FPU directory unless --nfp.
+if [ ! "$nfp" -a -d $sysdep_dir/$machine/fpu ]; then
+  sysnames="${machine}/fpu $sysnames"
+fi
+
+# Expand the list of system names into a full list of directories
+# from each element's parent name and Implies file (if present).
+set $sysnames
+while [ $# -gt 0 ]; do
+  name=$1
+  shift
+
+  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
+
+  # Add NAME to the list of names.
+  names="$names $name"
+
+  # Find the parent of NAME, using the empty string if it has none.
+  parent="`echo $name | sed -n -e '/\//!q' -e 's=/[^/]*$==p'`"
+
+  # 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
+done
+
+# Add the default directories.
+names="$names generic stub"
+
+# Now uniquize the list.
 seen=
-for name in $sysnames; do
+sysnames=
+for name in $names; do
   if echo "$seen" | fgrep -x $name >/dev/null; then
     # Already in the list.
     true;
   else
     # A new one.
     if [ "$seen" = "" ]; then
-      seen="$name"
+      seen="$name" sysnames="$name"
     else
       seen="$seen
 $name"
+      sysnames="$sysnames $name"
     fi
   fi
 done
-sysnames="$seen"
 
-# We have now validated the configuration.
+echo Using system-dependent files from directories:
+for dir in $sysnames; do echo "        $dir"; done
 
-changequote([,])
+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
 
 AC_PROG_CC
 AC_PROG_CPP
+
 echo checking for signed size_t type
 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 long int')
+|| {
+  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*
 
-# Find out what this system calls `sys_siglist'.
-AC_HAVE_FUNCS(sys_siglist _sys_siglist)
-
-# Find out the name of the table the system's <ctype.h> uses for character
-# classification.  This is used by sysdeps/unix/common/glue-ctype.c.
-AC_HAVE_FUNCS(_ctype_ __ctype_ __ctype _ctype__)
-changequote(,)
+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*
 
-sysnames="`echo $sysnames | sed -e 's@^/@@' -e 's@ /@ @g'`"
+# Iterate over all the sysdep directories we will use, running their
+# configure fragments, and looking for a uname implementation.
+uname=
+for dir in $sysnames; do
+  if test -r $sysdep_dir/$dir/configure; then
+    echo running configure fragment for $dir
+    . $sysdep_dir/$dir/configure
+  fi
+  test ! "$uname" && \
+  test -r $sysdep_dir/$dir/uname.c -o -r $sysdep_dir/$dir/uname.S && uname=$dir
+done
 
-if [ ! "$nfp" -a -d $sysdep_dir/$machine/fpu ]; then
-  sysnames="${machine}/fpu $sysnames"
-fi
+# If we will use the generic uname implementation, we must figure out what
+# it will say by examining the system, and write the results in config-name.h.
+if [ "$uname" = generic ]; then
 
-rm -f sysdirs
-echo $sysnames > Sysnames
+  echo trying to guess OS release and version for uname
 
-cat - Sysnames <<END
-Configuring the GNU C Library for \`${config}'.
-Using system-dependent files from directories:
-END
+  kernel_release=
+  kernel_version=
 
-export sysdep_dir
-for dir in `$srcdir/find-sysdirs < Sysnames`; do
-  if [ -r $sysdep_dir/$dir/uname.c -o -r $sysdep_dir/$dir/uname.S ]; then
-    uname=$dir
-    break
-  fi
-done
-if [ $uname = generic ]; then
-  if [ ! "$release" -o ! "$version" ] && [ -r /vmunix ]; then
-    kernel_id=`strings /vmunix | grep UNIX`
-    kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
-    kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
-  else
-    kernel_release=
-    kernel_version=
+  if [ ! "$release" -o ! "$version" ]; then
+    if [ -r /vmunix ]; then
+      kernel_id=`strings /vmunix | grep UNIX`
+    elif [ -r /dynix ]; then
+      kernel_id=`strings /dynix | grep DYNIX`
+    else
+      kernel_id=
+    fi
+    if [ "$kernel_id" ]; then
+      kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
+      kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
+    fi
   fi
 
   sysname=`echo $os | sed 's/[0-9.]*$//'`
@@ -353,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"
@@ -372,9 +515,10 @@ 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}"
   fi
@@ -385,35 +529,9 @@ fi
   for var in INSTALL INSTALL_PROGRAM INSTALL_DATA RANLIB; do
     eval "echo \"${var} = \${$var}\""
   done
+  echo "$config_vars"
 ) > config.make
-
-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
-
-cat > config.status <<END
-#!/bin/sh
-# 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
-END
+echo "Wrote config.make in $PWD."
 
 if [ $srcdir != . ]; then
   if [ $srcdir = .. ]; then
@@ -427,16 +545,25 @@ if [ $srcdir != . ]; then
 srcdir = $srcdir
 
 all .DEFAULT:
-       \$(MAKE) -C \$(srcdir) ARCH=$objdir \$@
+       \$(MAKE) -C \$(srcdir) objdir=\`pwd\` \$@
 END
 
-echo "# Wrote Makefile in `pwd`." >> config.status
+echo "Wrote Makefile in $PWD."
 fi
+
+cat > config.status <<END
+#!/bin/sh
+# This file was generated automatically by configure.  Do not edit.
+# The GNU C library was configured in $PWD for
+# $system_name as follows:
+release=$release version=$version $0 $configure_args \$*
+END
 chmod a+x config.status
+echo "Wrote config.status in $PWD."
 
 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: