]> code.delx.au - gnu-emacs/blobdiff - configure1.in
* configure.in: If we found X on our own, set C_SWITCH_X_SITE and
[gnu-emacs] / configure1.in
index f40702a8c5fd5578ec00d66758c7b1f1b32771a5..d87414a8485e495c9af0ebe97def47fa74585e55 100755 (executable)
@@ -1,7 +1,22 @@
-#!/bin/sh
+dnl This is an autoconf script.
+dnl To rebuild the `configure' script from this, execute the command
+dnl    autoconf
+dnl in the directory containing this script.  You must have autoconf
+dnl version 1.4 or later.
+dnl
+dnl The following text appears in the resulting `configure' script,
+dnl explaining how to rebuild it.
+[#!/bin/sh
 #### Configuration script for GNU Emacs
 #### Copyright (C) 1992 Free Software Foundation, Inc.
 
 #### Configuration script for GNU Emacs
 #### Copyright (C) 1992 Free Software Foundation, Inc.
 
+### Don't edit this script!
+### This script was automatically generated by the `autoconf' program
+### from the file `./configure.in'.
+### To rebuild it, execute the command
+###    autoconf
+### in the this directory.  You must have autoconf version 1.4 or later.
+
 ### This file is part of GNU Emacs.
 
 ### GNU Emacs is free software; you can redistribute it and/or modify
 ### This file is part of GNU Emacs.
 
 ### GNU Emacs is free software; you can redistribute it and/or modify
 ### along with GNU Emacs; see the file COPYING.  If not, write to
 ### the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 
 ### along with GNU Emacs; see the file COPYING.  If not, write to
 ### the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 
-### Shell script to edit files and make symlinks in preparation for
-### compiling Emacs.
+
+### Since Emacs has configuration requirements that autoconf can't
+### meet, this file is an unholy marriage of custom-baked
+### configuration code and autoconf macros.
+###
+### We use the m4 quoting characters [ ] (as established by the
+### autoconf system) to include large sections of raw sewage - Oops, I
+### mean, shell code - in the final configuration script.
 ###
 ### Usage: configure config_name
 ###
 ### If configure succeeds, it leaves its status in config.status.
 ### If configure fails after disturbing the status quo,
 ###    config.status is removed.
 ###
 ### Usage: configure config_name
 ###
 ### If configure succeeds, it leaves its status in config.status.
 ### If configure fails after disturbing the status quo,
 ###    config.status is removed.
-###
 
 
 
 
-### Remove any leading "." elements from the path name.  If we don't
-### remove them, then another "./" will be prepended to the file name
-### each time we use config.status, and the program name will get larger
-### and larger.  This wouldn't be a problem, except that since progname
-### gets recorded in all the Makefiles this script produces,
-### move-if-changed thinks they're different when they're not.
+### Remove any more than one leading "." element from the path name.
+### If we don't remove them, then another "./" will be prepended to
+### the file name each time we use config.status, and the program name
+### will get larger and larger.  This wouldn't be a problem, except
+### that since progname gets recorded in all the Makefiles this script
+### produces, move-if-change thinks they're different when they're
+### not.
 ###
 ### It would be nice if we could put the ./ in a \( \) group and then
 ### apply the * operator to that, so we remove as many leading ./././'s
 ### as are present, but some seds (like Ultrix's sed) don't allow you to
 ### apply * to a \( \) group.  Bleah.
 ###
 ### It would be nice if we could put the ./ in a \( \) group and then
 ### apply the * operator to that, so we remove as many leading ./././'s
 ### as are present, but some seds (like Ultrix's sed) don't allow you to
 ### apply * to a \( \) group.  Bleah.
-progname="`echo $0 | sed 's:^\./::'`"
+progname="`echo $0 | sed 's:^\./\./:\./:'`"
 
 
 #### Usage messages.
 
 
 
 #### Usage messages.
 
-short_usage="Type \`${progname} --usage' for more information about options."
-
-long_usage="Usage: ${progname} CONFIGURATION [-OPTION[=VALUE] ...]
+short_usage="Usage: ${progname} CONFIGURATION [-OPTION[=VALUE] ...]
 
 Set compilation and installation parameters for GNU Emacs, and report.
 CONFIGURATION specifies the machine and operating system to build for.
 
 Set compilation and installation parameters for GNU Emacs, and report.
 CONFIGURATION specifies the machine and operating system to build for.
-For example:
-        ${progname} sparc-sun-sunos4.1
-configures Emacs to build on a Sun Sparc machine running SunOS 4.1, and 
-        ${progname} decstation
-configures Emacs to run on a DECstation running Ultrix.  See \`etc/MACHINES'.
-
-The --with-x, --with-x11 and --with-x10 options specify what window
-       system to use; if all are omitted, use X11 if present.  If you
-       don't want X, specify \`--with-x=no'.
-
-The --srcdir=DIR option specifies that the configuration and build
-       processes should look for the Emacs source code in DIR, when
-       DIR is not the current directory.  To use this, you must build
-       Emacs using a \`make' program which supports the \`VPATH'
-       feature.
+--with-x               Support the X Window System.
+--with-x=no            Don't support X.
+--x-includes=DIR       Search for X header files in DIR.
+--x-libraries=DIR      Search for X libraries in DIR.
+--with-gcc             Use GCC to compile Emacs.
+--with-gcc=no          Don't use GCC to compile Emacs.
+--run-in-place         Use libraries and data files directly out of the 
+                       source tree.
+--srcdir=DIR           Look for source in DIR.
+--prefix=DIR           Install files below dir.
 
 If successful, ${progname} leaves its status in config.status.  If
 unsuccessful after disturbing the status quo, it removes config.status."
 
 If successful, ${progname} leaves its status in config.status.  If
 unsuccessful after disturbing the status quo, it removes config.status."
@@ -73,18 +87,26 @@ unsuccessful after disturbing the status quo, it removes config.status."
 
 #### Option processing.
 
 
 #### Option processing.
 
-### These are the names of CPP symbols we want to define or leave undefined
-### in src/config.h; their values are given by the shell variables of the same
-### names.
-config_h_opts=" \
-HAVE_X_WINDOWS HAVE_X11 HAVE_X_MENU \
-SIGTYPE GNU_MALLOC REL_ALLOC LISP_FLOAT_TYPE "
-
 ### Record all the arguments, so we can save them in config.status.
 arguments="$@"
 
 ### Record all the arguments, so we can save them in config.status.
 arguments="$@"
 
-while [ $# != 0 ]; do
-  arg="$1"
+### These values are used to comment and uncomment different values
+### for the path variables in the Makefile, to choose the installed
+### configuration or the run-in-place configuration.
+rip_paths='#disabled# '
+inst_paths=''
+
+### Establish some default values.
+prefix='/usr/local'
+exec_prefix='${prefix}'
+
+### Don't use shift -- that destroys the argument list, which autoconf needs
+### to produce config.status.  It turns out that "set - ${arguments}" doesn't
+### work portably.
+index=0
+while [ $index -lt $# ]; do
+  index=`expr $index + 1`
+  arg=`eval echo '$'$index`
   case "${arg}" in
 
     ## Anything starting with a hyphen we assume is an option.
   case "${arg}" in
 
     ## Anything starting with a hyphen we assume is an option.
@@ -108,6 +130,7 @@ while [ $# != 0 ]; do
       esac
 
       ## Change `-' in the option name to `_'.
       esac
 
       ## Change `-' in the option name to `_'.
+      optname="${opt}"
       opt="`echo ${opt} | tr - _`"
 
       ## Process the option.
       opt="`echo ${opt} | tr - _`"
 
       ## Process the option.
@@ -120,7 +143,23 @@ while [ $# != 0 ]; do
            y | ye | yes )      val=yes ;;
            n | no )            val=no  ;;
            * )
            y | ye | yes )      val=yes ;;
            n | no )            val=no  ;;
            * )
-             (echo "${progname}: the \`--${opt}' option is supposed to have a boolean value.
+             (echo "${progname}: the \`--${optname}' option is supposed to have a boolean value.
+Set it to either \`yes' or \`no'."
+              echo "${short_usage}") >&2
+             exit 1
+           ;;
+         esac
+          eval "${opt}=\"${val}\""
+        ;;
+
+       ## Has the user specified whether or not they want GCC?
+       "with_gcc" | "with_gnu_cc" )
+         ## Make sure the value given was either "yes" or "no".
+         case "${val}" in
+           y | ye | yes )      val=yes ;;
+           n | no )            val=no  ;;
+           * )
+             (echo "${progname}: the \`--${optname}' option is supposed to have a boolean value.
 Set it to either \`yes' or \`no'."
               echo "${short_usage}") >&2
              exit 1
 Set it to either \`yes' or \`no'."
               echo "${short_usage}") >&2
              exit 1
@@ -134,20 +173,101 @@ Set it to either \`yes' or \`no'."
          ## If the value was omitted, get it from the next argument.
          if [ "${valomitted}" = "yes" ]; then
            ## Get the next argument from the argument list, if there is one.
          ## If the value was omitted, get it from the next argument.
          if [ "${valomitted}" = "yes" ]; then
            ## Get the next argument from the argument list, if there is one.
-            if [ $# = 1 ]; then
-             (echo "${progname}: You must give a value for the \`--${opt}' option, as in
-    \`--${opt}=FOO'."
+            if [ $index = $# ]; then
+             (echo "${progname}: You must give a value for the \`--${optname}' option, as in
+    \`--${optname}=FOO'."
               echo "${short_usage}") >&2
              exit 1
            fi
               echo "${short_usage}") >&2
              exit 1
            fi
-           shift; val="$1"
+            index=`expr $index + 1`
+            val=`eval echo '$'$index`
          fi
           srcdir="${val}"
        ;;
 
          fi
           srcdir="${val}"
        ;;
 
+       ## Has the user tried to tell us where the X files are?
+       ## I think these are dopey, but no less than three alpha
+       ## testers, at large sites, have said they have their X files
+       ## installed in odd places.
+       "x_includes" )
+         ## If the value was omitted, get it from the next argument.
+         if [ "${valomitted}" = "yes" ]; then
+           ## Get the next argument from the argument list, if there is one.
+            if [ $index = $# ]; then
+             (echo "${progname}: You must give a value for the \`--${optname}' option, as in
+    \`--${optname}=FOO'."
+              echo "${short_usage}") >&2
+             exit 1
+           fi
+            index=`expr $index + 1`
+            val=`eval echo '$'$index`
+         fi
+         x_includes="${val}"
+        ;;
+       "x_libraries" )
+         ## If the value was omitted, get it from the next argument.
+         if [ "${valomitted}" = "yes" ]; then
+           ## Get the next argument from the argument list, if there is one.
+            if [ $index = $# ]; then
+             (echo "${progname}: You must give a value for the \`--${optname}' option, as in
+    \`--${optname}=FOO'."
+              echo "${short_usage}") >&2
+             exit 1
+           fi
+            index=`expr $index + 1`
+            val=`eval echo '$'$index`
+         fi
+         x_libraries="${val}"
+        ;;
+
+       ## Should this use the "development configuration"?
+       "run_in_place" )
+         rip_paths=''
+         inst_paths='#disabled# '
+       ;;
+
+       ## Has the user specified an installation prefix?
+       "prefix" )
+         ## If the value was omitted, get it from the next argument.
+         if [ "${valomitted}" = "yes" ]; then
+           ## Get the next argument from the argument list, if there is one.
+            if [ $index = $# ]; then
+             (echo "${progname}: You must give a value for the \`--${optname}' option, as in
+    \`--${optname}=FOO'."
+              echo "${short_usage}") >&2
+             exit 1
+           fi
+            index=`expr $index + 1`
+            val=`eval echo '$'$index`
+         fi
+         prefix="${val}"
+        ;;
+
+       ## Has the user specified an installation prefix?
+       "exec_prefix" )
+         ## If the value was omitted, get it from the next argument.
+         if [ "${valomitted}" = "yes" ]; then
+           ## Get the next argument from the argument list, if there is one.
+            if [ $index = $# ]; then
+             (echo "${progname}: You must give a value for the \`--${optname}' option, as in
+    \`--${optname}=FOO'."
+              echo "${short_usage}") >&2
+             exit 1
+           fi
+            index=`expr $index + 1`
+            val=`eval echo '$'$index`
+         fi
+         exec_prefix="${val}"
+        ;;
+
+       ## Verbose flag, tested by autoconf macros.
+       "verbose" )
+         verbose=yes
+       ;;
+
        ## Has the user asked for some help?
        "usage" | "help" )
        ## Has the user asked for some help?
        "usage" | "help" )
-         echo "${long_usage}" | more
+         echo "${short_usage}" | more
          exit
        ;;
 
          exit
        ;;
 
@@ -162,67 +282,111 @@ Set it to either \`yes' or \`no'."
     ;;
 
   esac
     ;;
 
   esac
-  shift
 done
 
 if [ "${configuration}" = "" ]; then
 done
 
 if [ "${configuration}" = "" ]; then
-  (echo "${progname}: You must specify a configuration name as an argument."
-   echo "${short_usage}") >&2
-  exit 1
+  echo '- You did not tell me what kind of host system you want to configure.
+- I will attempt to guess the kind of system this is.' 1>&2
+  guesssys=`echo ${progname} | sed 's/configure$/config.guess/'`
+  if configuration=`${guesssys}` ; then
+    echo "- Looks like this is a ${configuration}" 1>&2
+  else
+    echo '- Failed to guess the system type.  You need to tell me.' 1>&2
+    echo "${short_usage}" >&2
+    exit 1
+  fi
 fi
 
 fi
 
-
 #### Decide where the source is.
 case "${srcdir}" in
 
 #### Decide where the source is.
 case "${srcdir}" in
 
-  ## By default, it's in the current directory.
+  ## If it's not specified, see if  `.' or `..' might work.
   "" )
   "" )
-    srcdir=`pwd`
+    confdir=`echo $0 | sed 's|//|/|' | sed 's|/[^/]*$||'`
+    if [ -f $confdir/src/lisp.h -a -f $confdir/lisp/version.el ]; then
+      srcdir="${confdir}"
+    else
+      if [ -f "./src/lisp.h" -a -f "./lisp/version.el" ]; then
+        srcdir='.'
+      else
+        if [ -f "../src/lisp.h" -a -f "../lisp/version.el" ]; then
+         srcdir='..'
+        else
+         (echo "\
+${progname}: Neither the current directory nor its parent seem to
+contain the Emacs sources.  If you do not want to build Emacs in its
+source tree, you should run \`${progname}' in the directory in which
+you wish to build Emacs, using its \`--srcdir' option to say where the
+sources may be found."
+           echo "${short_usage}") >&2
+         exit 1
+        fi
+      fi
+    fi
   ;;
 
   ;;
 
-  ## Otherwise, make sure it's a directory at all.
+  ## Otherwise, check if the directory they specified is okay.
   * )
   * )
-    if [ ! -d "${srcdir}" ]; then
-      (echo "${progname}: The path specified with the `--srcdir' option"
-       echo "isn't a valid directory."
+    if [ ! -d "${srcdir}" -o ! -f "${srcdir}/src/lisp.h" -o ! -f "${srcdir}/lisp/version.el" ]; then
+      (echo "\
+${progname}: The directory specified with the \`--srcdir' option,
+\`${srcdir}', doesn't seem to contain the Emacs sources.  You should
+either run the \`${progname}' script at the top of the Emacs source
+tree, or use the \`--srcdir' option to specify where the Emacs sources
+are."
        echo "${short_usage}") >&2
       exit 1
     fi
   ;;
        echo "${short_usage}") >&2
       exit 1
     fi
   ;;
+esac
 
 
+#### Make srcdir absolute, if it isn't already.  It's important to
+#### avoid running the path through pwd unnecessary, since pwd can
+#### give you automounter prefixes, which can go away.
+case "${srcdir}" in
+  /* ) ;;
+  . )
+    ## We may be able to use the $PWD environment variable to make this
+    ## absolute.  But sometimes PWD is inaccurate.
+    if [ "${PWD}" != "" ] && [ "`(cd ${PWD} ; pwd)`" = "`pwd`" ] ; then
+      srcdir="$PWD"
+    else
+      srcdir="`(cd ${srcdir}; pwd)`"
+    fi
+  ;;
+  *  ) srcdir="`(cd ${srcdir}; pwd)`" ;;
 esac
 
 esac
 
-### Check that the source directory actually contains the source.
-if [ ! -f "${srcdir}/src/lisp.h" -o ! -f "${srcdir}/lisp/version.el" ]; then
-  (echo "The directory \`${srcdir}' doesn't contain the Emacs sources."
-   echo "You should either run the \`${progname}' script at the top of"
-   echo "the Emacs source tree, or use the \`--srcdir' option to specify"
-   echo "where the Emacs sources are."
-   echo "${short_usage}") >&2
+#### Make sure that the source directory doesn't already have a
+#### configured system in it.
+if [ `pwd` != `(cd ${srcdir} && pwd)` ] \
+   && [ -f "${srcdir}/src/config.h" ] ; then
+  (echo "${progname}: the directory tree \`${srcdir}' is being used"
+   echo "   as a build directory right now; it has been configured in its own"
+   echo "   right.  You can't use srcdir in this situation.") >&2
   exit 1
 fi
 
 ### Make the necessary directories, if they don't exist.
   exit 1
 fi
 
 ### Make the necessary directories, if they don't exist.
-if [ ! -d ./src ]; then
-  mkdir ./src
-fi
-if [ ! -d ./lib-src ]; then
-  mkdir ./lib-src
-fi
-if [ ! -d ./cpp ]; then
-  mkdir ./cpp
-fi
-
+for dir in ./src ./lib-src ./cpp ./oldXMenu ./etc ; do
+  if [ ! -d ${dir} ]; then
+    mkdir ${dir}
+  fi
+done
 
 #### Given the configuration name, set machfile and opsysfile to the
 #### names of the m/*.h and s/*.h files we should use.
 
 ### Canonicalize the configuration name.
 echo "Checking the configuration name."
 
 #### Given the configuration name, set machfile and opsysfile to the
 #### names of the m/*.h and s/*.h files we should use.
 
 ### Canonicalize the configuration name.
 echo "Checking the configuration name."
-if configuration=`./config.sub "${configuration}"` ; then : ; else
+if canonical=`${srcdir}/config.sub "${configuration}"` ; then : ; else
   exit $?
 fi
 
   exit $?
 fi
 
+### If you add support for a new configuration, add code to this
+### switch statement to recognize your configuration name and select
+### the appropriate operating system and machine description files.
+
 ### You would hope that you could choose an m/*.h file pretty much
 ### based on the machine portion of the configuration name, and an s-
 ### file based on the operating system portion.  However, it turns out
 ### You would hope that you could choose an m/*.h file pretty much
 ### based on the machine portion of the configuration name, and an s-
 ### file based on the operating system portion.  However, it turns out
@@ -231,14 +395,19 @@ fi
 ### all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
 ### machines.  So we basically have to have a special case for each
 ### configuration name.
 ### all 68000 machines; mips.h, pmax.h, and news-risc are all MIPS
 ### machines.  So we basically have to have a special case for each
 ### configuration name.
-
+###
 ### As far as handling version numbers on operating systems is
 ### concerned, make sure things will fail in a fixable way.  If
 ### /etc/MACHINES doesn't say anything about version numbers, be
 ### prepared to handle anything reasonably.  If version numbers
 ### matter, be sure /etc/MACHINES says something about it.
 ### As far as handling version numbers on operating systems is
 ### concerned, make sure things will fail in a fixable way.  If
 ### /etc/MACHINES doesn't say anything about version numbers, be
 ### prepared to handle anything reasonably.  If version numbers
 ### matter, be sure /etc/MACHINES says something about it.
+###
+### Eric Raymond says we should accept strings like "sysvr4" to mean
+### "System V Release 4"; he writes, "The old convention encouraged
+### confusion between `system' and `release' levels'."
+
 machine='' opsys='' unported='false'
 machine='' opsys='' unported='false'
-case "${configuration}" in
+case "${canonical}" in
 
   ## Alliant machines
   ## Strictly speaking, we need the version of the alliant operating
 
   ## Alliant machines
   ## Strictly speaking, we need the version of the alliant operating
@@ -265,7 +434,7 @@ case "${configuration}" in
 
   ## Appallings - I mean, Apollos - running Domain
   m68*-apollo* )
 
   ## Appallings - I mean, Apollos - running Domain
   m68*-apollo* )
-    machine=apollo opsysfile=bsd4-2.h
+    machine=apollo opsys=bsd4-2
   ;;
 
   ## AT&T 3b2, 3b5, 3b15, 3b20
   ;;
 
   ## AT&T 3b2, 3b5, 3b15, 3b20
@@ -278,8 +447,13 @@ case "${configuration}" in
     machine=7300 opsys=usg5-2-2
   ;;
 
     machine=7300 opsys=usg5-2-2
   ;;
 
+  ## Bull dpx2
+  m68*-bull-sysv3* )
+    machine=dpx2 opsys=usg5-3
+  ;;
+
   ## Bull sps7
   ## Bull sps7
-  m68*-bull-sysv* )
+  m68*-bull-sysv2* )
     machine=sps7 opsys=usg5-2
   ;;
 
     machine=sps7 opsys=usg5-2
   ;;
 
@@ -317,6 +491,11 @@ case "${configuration}" in
     machine=cydra5 opsys=usg5-3
   ;;
 
     machine=cydra5 opsys=usg5-3
   ;;
 
+  ## Data General AViiON Machines
+  m88k-dg-dgux* )
+    machine=aviion opsys=dgux
+  ;;
+
   ## DECstations
   mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0 | mips-dec-bsd4.2 )
     machine=pmax opsys=bsd4-2
   ## DECstations
   mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0 | mips-dec-bsd4.2 )
     machine=pmax opsys=bsd4-2
@@ -332,6 +511,9 @@ case "${configuration}" in
   m68*-motorola-sysv* )
     machine=delta opsys=usg5-3
   ;;
   m68*-motorola-sysv* )
     machine=delta opsys=usg5-3
   ;;
+  m88k-motorola-sysv4* )
+    machine=delta88k opsys=usg5-4
+  ;;
   m88k-motorola-sysv* | m88k-motorola-m88kbcs* )
     machine=delta88k opsys=usg5-3
   ;;
   m88k-motorola-sysv* | m88k-motorola-m88kbcs* )
     machine=delta88k opsys=usg5-3
   ;;
@@ -376,15 +558,35 @@ case "${configuration}" in
   m68*-hp-bsd* )
     machine=hp9000s300 opsys=bsd4-3
   ;;
   m68*-hp-bsd* )
     machine=hp9000s300 opsys=bsd4-3
   ;;
-  ## HP/UX 8 doesn't run on these machines, so use HP/UX 7.
+  ## HP/UX 7, 8 and 9 are supported on these machines.
   m68*-hp-hpux* )
   m68*-hp-hpux* )
-    machine=hp9000s300 opsys=hpux
+    case "`uname -r`" in
+      *.08.* ) machine=hp9000s300 opsys=hpux8 ;;
+      *.09.* ) machine=hp9000s300 opsys=hpux9 ;;
+      *) machine=hp9000s300 opsys=hpux ;;
+    esac
   ;;
 
   ;;
 
-  ## HP 9000 series 800, running HP/UX
-  hppa1.0-hp-hpux* )
+  ## HP 9000 series 700 and 800, running HP/UX
+  hppa*-hp-hpux7* )
     machine=hp9000s800 opsys=hpux
   ;;
     machine=hp9000s800 opsys=hpux
   ;;
+  hppa*-hp-hpux8* )
+    machine=hp9000s800 opsys=hpux8
+  ;;
+  hppa*-hp-hpux9* )
+    machine=hp9000s800 opsys=hpux9
+  ;;
+
+  ## HP 9000 series 700 and 800, running HP/UX
+  hppa*-hp-hpux* )
+    ## Cross-compilation?  Nah!
+    case "`uname -r`" in
+      *.08.* ) machine=hp9000s800 opsys=hpux8 ;;
+      *.09.* ) machine=hp9000s800 opsys=hpux9 ;;
+      *) machine=hp9000s800 opsys=hpux ;;
+    esac
+  ;;
 
   ## Orion machines
   orion-orion-bsd* )
 
   ## Orion machines
   orion-orion-bsd* )
@@ -398,15 +600,33 @@ case "${configuration}" in
   i386-ibm-aix1.1 )
     machine=ibmps2-aix opsys=usg5-2-2
   ;;
   i386-ibm-aix1.1 )
     machine=ibmps2-aix opsys=usg5-2-2
   ;;
-  i386-ibm-aix1.2 )
+  i386-ibm-aix1.[23] | i386-ibm-aix* )
     machine=ibmps2-aix opsys=usg5-3
   ;;
     machine=ibmps2-aix opsys=usg5-3
   ;;
-  rs6000-ibm-aix* )
+  rs6000-ibm-aix3.1 )
     machine=ibmrs6000 opsys=aix3-1
   ;;
     machine=ibmrs6000 opsys=aix3-1
   ;;
-  romp-ibm-bsd* )
+  rs6000-ibm-aix3.2 | rs6000-ibm-aix* )
+    machine=ibmrs6000 opsys=aix3-2
+  ;;
+  romp-ibm-bsd4-3 )
+    machine=ibmrt opsys=bsd4-3
+  ;;   
+  romp-ibm-bsd4-2 )
     machine=ibmrt opsys=bsd4-2
   ;;
     machine=ibmrt opsys=bsd4-2
   ;;
+  romp-ibm-aos4-3 )
+    machine=ibmrt opsys=bsd4-3
+  ;;   
+  romp-ibm-aos4-2 )
+    machine=ibmrt opsys=bsd4-2
+  ;;
+  romp-ibm-aos* )
+    machine=ibmrt opsys=bsd4-3
+  ;;
+  romp-ibm-bsd* )
+    machine=ibmrt opsys=bsd4-3
+  ;;
   romp-ibm-aix* )
     machine=ibmrt-aix opsys=usg5-2-2
   ;;
   romp-ibm-aix* )
     machine=ibmrt-aix opsys=usg5-2-2
   ;;
@@ -423,16 +643,20 @@ case "${configuration}" in
   i[34]86-intsys-sysv* )
     machine=is386 opsys=usg5-2-2
   ;;
   i[34]86-intsys-sysv* )
     machine=is386 opsys=usg5-2-2
   ;;
-  ## Intel 386 machines where we don't care about the manufacturer
-  i[34]86-* )
-    machine=intel386
-    case "${configuration}" in
-      *-isc1.* | *-isc2.[01]* )        opsys=386-ix ;;
-      *-isc* )                 opsys=isc2-2 ;;
-      *-esix* )                        opsys=esix ;;
-      *-xenix* )               opsys=xenix ;;
-      ## Otherwise, we'll fall through to the generic opsys code at the bottom.
-    esac
+
+  ## Prime EXL
+  i386-prime-sysv* )
+    machine=i386 opsys=usg5-3
+  ;;
+
+  ## Sequent Symmetry
+  i386-sequent-bsd* )
+    machine=symmetry opsys=bsd4-3
+  ;;
+
+  ## Intel 860
+  i860-*-sysvr4 )
+    machine=i860 opsys=usg5-4
   ;;
 
   ## Silicon Graphics machines
   ;;
 
   ## Silicon Graphics machines
@@ -472,8 +696,12 @@ case "${configuration}" in
   ## the BSD world."  I'll assume that these are instructions for
   ## handling two odd situations, and that every other situation
   ## should use mips.h and usg5-2-2, they being listed first.
   ## the BSD world."  I'll assume that these are instructions for
   ## handling two odd situations, and that every other situation
   ## should use mips.h and usg5-2-2, they being listed first.
+  mips-mips-usg* )
+    machine=mips4
+    ## Fall through to the general code at the bottom to decide on the OS.
+  ;;
   mips-mips-riscos4* )
   mips-mips-riscos4* )
-    machine=mips4 opsys=usg5-2-2
+    machine=mips4 opsys=bsd4-3
   ;;
   mips-mips-bsd* )
     machine=mips opsys=bsd4-3
   ;;
   mips-mips-bsd* )
     machine=mips opsys=bsd4-3
@@ -482,16 +710,21 @@ case "${configuration}" in
     machine=mips opsys=usg5-2-2
   ;;
 
     machine=mips opsys=usg5-2-2
   ;;
 
+  ## NeXT
+  m68*-next-mach* | m68*-next-bsd* )
+    machine=next opsys=mach2
+  ;;
+
   ## The complete machine from National Semiconductor
   ns32k-ns-genix* )
     machine=ns32000 opsys=usg5-2
   ;;
 
   ## NCR machines
   ## The complete machine from National Semiconductor
   ns32k-ns-genix* )
     machine=ns32000 opsys=usg5-2
   ;;
 
   ## NCR machines
-  m68*-ncr-sysv2* )
+  m68*-ncr-sysv2* | m68*-ncr-sysvr2* )
     machine=tower32 opsys=usg5-2-2
   ;;
     machine=tower32 opsys=usg5-2-2
   ;;
-  m68*-ncr-sysv3* )
+  m68*-ncr-sysv3* | m68*-ncr-sysvr3* )
     machine=tower32v3 opsys=usg5-3
   ;;
 
     machine=tower32v3 opsys=usg5-3
   ;;
 
@@ -510,11 +743,6 @@ case "${configuration}" in
     machine=plexus opsys=usg5-2
   ;;
 
     machine=plexus opsys=usg5-2
   ;;
 
-  ## Prime EXL
-  i386-prime-sysv* )
-    machine=i386 opsys=usg5-3
-  ;;
-
   ## Pyramid machines
   ## I don't really have any idea what sort of processor the Pyramid has,
   ## so I'm assuming it is its own architecture.
   ## Pyramid machines
   ## I don't really have any idea what sort of processor the Pyramid has,
   ## so I'm assuming it is its own architecture.
@@ -529,10 +757,6 @@ case "${configuration}" in
   ns32k-sequent-bsd4.3 )
     machine=sequent opsys=bsd4-3
   ;;
   ns32k-sequent-bsd4.3 )
     machine=sequent opsys=bsd4-3
   ;;
-  ## Sequent Symmetry
-  i386-sequent-bsd* )
-    machine=symmetry opsys=bsd4-3
-  ;;
 
   ## SONY machines
   m68*-sony-bsd4.2 )
 
   ## SONY machines
   m68*-sony-bsd4.2 )
@@ -551,8 +775,8 @@ case "${configuration}" in
   ;;
 
   ## Suns
   ;;
 
   ## Suns
-  *-sun-sunos* | *-sun-bsd* )
-    case "${configuration}" in
+  *-sun-sunos* | *-sun-bsd* | *-sun-solaris* )
+    case "${canonical}" in
       m68*-sunos1* )   machine=sun1 ;;
       m68*-sunos2* )   machine=sun2 ;;
       m68* )           machine=sun3 ;;
       m68*-sunos1* )   machine=sun1 ;;
       m68*-sunos2* )   machine=sun2 ;;
       m68* )           machine=sun3 ;;
@@ -560,9 +784,11 @@ case "${configuration}" in
       sparc* )         machine=sparc ;;
       * )              unported=true ;;
     esac
       sparc* )         machine=sparc ;;
       * )              unported=true ;;
     esac
-    case "${configuration}" in
+    case "${canonical}" in
       *-sunos4.0*        ) opsys=sunos4-0 ;;
       *-sunos4.0*        ) opsys=sunos4-0 ;;
+      *-sunos4.1.3*      ) opsys=sunos4-1-3 ;;
       *-sunos4* | *-sunos ) opsys=sunos4-1 ;;
       *-sunos4* | *-sunos ) opsys=sunos4-1 ;;
+      *-sunos5* | *-solaris* ) opsys=sol2 ;;
       *                          ) opsys=bsd4-2   ;;
     esac
   ;;
       *                          ) opsys=bsd4-2   ;;
     esac
   ;;
@@ -585,6 +811,11 @@ case "${configuration}" in
     machine=tandem-s2 opsys=usg5-3
   ;;
 
     machine=tandem-s2 opsys=usg5-3
   ;;
 
+  ## Tektronix XD88
+  m88k-tektronix-sysv3 )
+  machine=tekXD88 opsys=usg5-3
+  ;;
+
   ## Tektronix 16000 box (6130?)
   ns16k-tektronix-bsd* )
     machine=ns16000 opsys=bsd4-2
   ## Tektronix 16000 box (6130?)
   ns16k-tektronix-bsd* )
     machine=ns16000 opsys=bsd4-2
@@ -609,14 +840,15 @@ case "${configuration}" in
   ## Vaxen.
   vax-dec-* )
     machine=vax
   ## Vaxen.
   vax-dec-* )
     machine=vax
-    case "${configuration}" in
-      *-bsd4.1 ) opsys=bsd4-1 ;;
-      *-bsd4.2 | *-ultrix[0-3].* | *-ultrix4.0 ) opsys=bsd4-2 ;;
-      *-bsd4.3 | *-ultrix* ) opsys=bsd4-3 ;;
-      *-sysv[01]* ) opsys=usg5-0 ;;
-      *-sysv2* ) opsys=usg5-2 ;;
-      *-vms* ) opsys=vms ;;
-      * ) unported=true
+    case "${canonical}" in
+      *-bsd4.1 )                                       opsys=bsd4-1 ;;
+      *-bsd4.2 | *-ultrix[0-3].* | *-ultrix4.0 )       opsys=bsd4-2 ;;
+      *-bsd4.3 | *-ultrix* )                           opsys=bsd4-3 ;;
+      *-bsd386 )                                       opsys=bsd386 ;;
+      *-sysv[01]* | *-sysvr[01]* )                     opsys=usg5-0 ;;
+      *-sysv2* | *-sysvr2* )                           opsys=usg5-2 ;;
+      *-vms* )                                                 opsys=vms ;;
+      * )                                              unported=true
     esac
   ;;
 
     esac
   ;;
 
@@ -632,6 +864,24 @@ case "${configuration}" in
     machine=wicat opsys=usg5-2
   ;;
 
     machine=wicat opsys=usg5-2
   ;;
 
+  ## Intel 386 machines where we don't care about the manufacturer
+  i[34]86-*-* )
+    machine=intel386
+    case "${canonical}" in
+      *-isc1.* | *-isc2.[01]* )        opsys=386-ix ;;
+      *-isc2.2 )               opsys=isc2-2 ;;
+      *-isc* )                 opsys=isc3-0 ;;
+      *-esix5* )               opsys=esix5r4 ;;
+      *-esix* )                        opsys=esix ;;
+      *-xenix* )               opsys=xenix ;;
+      *-linux* )               opsys=linux ;;
+      *-sco3.2v4* )            opsys=sco4 ;;
+      *-bsd386* )              opsys=bsd386 ;;
+      *-386bsd )               opsys=386bsd ;;
+      ## Otherwise, we'll fall through to the generic opsys code at the bottom.
+    esac
+  ;;
+
   * )
     unported=true
   ;;
   * )
     unported=true
   ;;
@@ -643,16 +893,17 @@ esac
 ### operating system is; if you know what operating systems a machine
 ### runs, it's cleaner to make it explicit in the case statement
 ### above.
 ### operating system is; if you know what operating systems a machine
 ### runs, it's cleaner to make it explicit in the case statement
 ### above.
-if [ ! "${opsys}" ]; then
-  case "${configuration}" in
+if [ x"${opsys}" = x ]; then
+  case "${canonical}" in
     *-bsd4.[01] )      opsys=bsd4-1 ;;
     *-bsd4.2 )         opsys=bsd4-2 ;;
     *-bsd4.3 )         opsys=bsd4-3 ;;
     *-bsd4.[01] )      opsys=bsd4-1 ;;
     *-bsd4.2 )         opsys=bsd4-2 ;;
     *-bsd4.3 )         opsys=bsd4-3 ;;
-    *-sysv0 )          opsys=usg5-0 ;;
-    *-sysv2 )          opsys=usg5-2 ;;
-    *-sysv2.2 )                opsys=usg5-2-2 ;;
-    *-sysv3 )          opsys=usg5-3 ;;
-    *-sysv4 )          opsys=usg5-4 ;;
+    *-sysv0 | *-sysvr0 )               opsys=usg5-0 ;;
+    *-sysv2 | *-sysvr2 )               opsys=usg5-2 ;;
+    *-sysv2.2 | *-sysvr2.2 )           opsys=usg5-2-2 ;;
+    *-sysv3 | *-sysvr3 )               opsys=usg5-3 ;;
+    *-sysv4 | *-sysvr4 )               opsys=usg5-4 ;;
+    *-sysv4.2 | *-sysvr4.2 )           opsys=usg5-4-2 ;;
     * )
       unported=true
     ;;
     * )
       unported=true
     ;;
@@ -660,7 +911,7 @@ if [ ! "${opsys}" ]; then
 fi
 
 if $unported ; then
 fi
 
 if $unported ; then
-  (echo "${progname}: Emacs hasn't been ported to \`${configuration}' systems."
+  (echo "${progname}: Emacs hasn't been ported to \`${canonical}' systems."
    echo "${progname}: Check \`etc/MACHINES' for recognized configuration names."
   ) >&2
   exit 1
    echo "${progname}: Check \`etc/MACHINES' for recognized configuration names."
   ) >&2
   exit 1
@@ -669,9 +920,56 @@ fi
 machfile="m/${machine}.h"
 opsysfile="s/${opsys}.h"
 
 machfile="m/${machine}.h"
 opsysfile="s/${opsys}.h"
 
+]
+AC_PREPARE(lisp)
+AC_CONFIG_HEADER(src/config.h)
+[
+
+#### Choose a compiler.
+case ${with_gcc} in
+  "yes" ) CC="gcc" GCC=1 ;;
+  "no"  ) CC="cc"        ;;
+  * )
+    ] AC_PROG_CC [
+esac
+
+#### Some other nice autoconf tests.  If you add a test here which
+#### should make an entry in src/config.h, don't forget to add an
+#### #undef clause to src/config.h.in for autoconf to modify.
+]
+dnl checks for programs
+AC_LN_S
+AC_PROG_CPP
+AC_PROG_INSTALL
+AC_PROG_YACC
+
+dnl checks for UNIX variants that set `DEFS'
+
+dnl checks for header files
+AC_HAVE_HEADERS(sys/timeb.h sys/time.h)
+AC_STDC_HEADERS
+AC_TIME_WITH_SYS_TIME
+
+dnl checks for typedefs
+AC_RETSIGTYPE
+
+dnl checks for structure members
+AC_STRUCT_TM
+AC_TIMEZONE
+
+dnl checks for compiler characteristics
+AC_CONST
+
+dnl checks for operating system services
+AC_LONG_FILE_NAMES
+
+dnl other checks for UNIX variants
+[
+
 
 #### Choose a window system.
 echo "Checking window system."
 
 #### Choose a window system.
 echo "Checking window system."
+
 window_system=''
 case "${with_x}" in
   yes )
 window_system=''
 case "${with_x}" in
   yes )
@@ -694,18 +992,46 @@ esac
 case "${window_system}" in
   "none" | "x11" | "x10" ) ;;
   "" )
 case "${window_system}" in
   "none" | "x11" | "x10" ) ;;
   "" )
-    echo "  No window system specifed.  Looking for X Windows."
-    window_system=none
-    if [ -r /usr/lib/libX11.a -o -d /usr/include/X11 ]; then
+    # --x-includes or --x-libraries implies --with-x11.
+    if [ -n "${x_includes}" ] || [ -n "${x_libraries}" ]; then
       window_system=x11
       window_system=x11
+    else
+      echo "  No window system specified.  Looking for X11."
+      # If the user didn't specify a window system and we found X11, use it.
+      if [ -r /usr/lib/libX11.a \
+        -o -d /usr/include/X11 \
+         -o -d /usr/X386/include \
+        -o -d ${x_includes}/X11 ]; then
+        window_system=x11
+      fi
     fi
   ;;
   * )
     fi
   ;;
   * )
-    echo "Don\'t specify the window system more than once." >&2
+    echo "Don't specify a window system more than once." >&2
     exit 1
   ;;
 esac
 
     exit 1
   ;;
 esac
 
+case "${window_system}" in
+  "" | "x11" )
+    ### If the user hasn't specified where we should find X, try
+    ### letting autoconf figure that out.
+    if [ -z "${x_includes}" ] && [ -z "${x_libraries}" ]; then
+      ]
+      AC_FIND_X
+      [
+    fi
+    if [ -n "${x_includes}" ] || [ -n "${x_libraries}" ]; then
+      window_system=x11
+    fi
+  ;;
+esac
+
+[ -z "${window_system}" ] && window_system=none
+
+[ -n "${x_libraries}" ] && LD_SWITCH_X_SITE="-L${x_libraries}"
+[ -n "${x_includes}" ] && C_SWITCH_X_SITE="-I${x_includes}"
+
 case "${window_system}" in
   x11 )
     HAVE_X_WINDOWS=yes
 case "${window_system}" in
   x11 )
     HAVE_X_WINDOWS=yes
@@ -732,243 +1058,212 @@ case ${HAVE_X11} in
   ;;
 esac
 
   ;;
 esac
 
-
-#### Choose a compiler.
-echo "Checking for GCC."
-temppath=`echo $PATH | sed 's/^:/.:/
-                           s/::/:.:/g
-                           s/:$/:./
-                           s/:/ /g'`
-default_cc=`(
-  for dir in ${temppath}; do
-    if [ -f ${dir}/gcc ]; then echo gcc; exit 0; fi
-  done
-  echo cc
-)`
-
-case "${default_cc}" in
-  "gcc" )
-    echo "  Using GCC."
-    default_cflags='-g -O'
-  ;;
-  "*" )
-    echo "  Using the system's CC."
-    default_cflags='-g'
-  ;;
-esac
-
-
-#### What is the return type of a signal handler?
-
-### We run /usr/include/signal.h through cpp and grep for the
-### declaration of the signal function.  Yuck.
-echo "Looking for return type of signal handler functions."
-signal_h_file=''
-if [ -r /usr/include/signal.h ]; then
-  signal_h_file=/usr/include/signal.h
-elif [ -r /usr/include/sys/signal.h ]; then
-  signal_h_file=/usr/include/sys/signal.h
-fi
-SIGTYPE=void
-if [ "${signal_h_file}" ]; then
-  sigpattern='[        ]*([    ]*\*[   ]*signal[       ]*('
-
-  ## We make a copy whose name ends in .c, so the compiler
-  ## won't complain about having only been given a .h file.
-  tempcname="configure.tmp.$$.c"
-  cp ${signal_h_file}  ${tempcname}
-  if ${default_cc} -E ${tempcname} | grep "int${sigpattern}" > /dev/null; then
-    SIGTYPE=int
-  fi
-  rm -f ${tempcname}
-fi
-echo "  Guessing that signals return \`${SIGTYPE}'."
-
-
 #### Extract some information from the operating system and machine files.
 
 echo "Examining the machine- and system-dependent files to find out"
 echo " - which libraries the lib-src programs will want, and"
 echo " - whether the GNU malloc routines are usable."
 #### Extract some information from the operating system and machine files.
 
 echo "Examining the machine- and system-dependent files to find out"
 echo " - which libraries the lib-src programs will want, and"
 echo " - whether the GNU malloc routines are usable."
-tempcname="configure.tmp.$$.c"
-echo '#include "src/'${opsysfile}'"
-#include "src/'${machfile}'"
+
+### It's not important that this name contain the PID; you can't run
+### two configures in the same directory and have anything work
+### anyway.
+tempcname="conftest.c"
+
+echo '
+#include "'${srcdir}'/src/'${opsysfile}'"
+#include "'${srcdir}'/src/'${machfile}'"
 #ifndef LIBS_MACHINE
 #define LIBS_MACHINE
 #endif
 #ifndef LIBS_SYSTEM
 #define LIBS_SYSTEM
 #endif
 #ifndef LIBS_MACHINE
 #define LIBS_MACHINE
 #endif
 #ifndef LIBS_SYSTEM
 #define LIBS_SYSTEM
 #endif
+#ifndef C_SWITCH_SYSTEM
+#define C_SWITCH_SYSTEM
+#endif
 @configure@ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
 @configure@ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
+@configure@ c_switch_system=C_SWITCH_SYSTEM
+
+#ifndef LIB_X11_LIB
+#define LIB_X11_LIB
+#endif
+
+#ifndef LIBX11_MACHINE
+#define LIBX11_MACHINE
+#endif
+
+#ifndef LIBX11_SYSTEM
+#define LIBX11_SYSTEM
+#endif
+@configure@ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
+
+#ifdef UNEXEC
+@configure@ unexec=UNEXEC
+#else
+@configure@ unexec=unexec.o
+#endif
+
 #ifdef SYSTEM_MALLOC
 @configure@ system_malloc=yes
 #else
 @configure@ system_malloc=no
 #endif
 #ifdef SYSTEM_MALLOC
 @configure@ system_malloc=yes
 #else
 @configure@ system_malloc=no
 #endif
+
+#ifndef C_DEBUG_SWITCH
+#define C_DEBUG_SWITCH -g
+#endif
+
+#ifndef C_OPTIMIZE_SWITCH
+#define C_OPTIMIZE_SWITCH -O
+#endif
+
+#ifdef __GNUC__
+@configure@ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH
+#else
+@configure@ CFLAGS=C_DEBUG_SWITCH
+#endif
 ' > ${tempcname}
 ' > ${tempcname}
-eval `${default_cc} -E ${tempcname} \
-      | grep '@configure@' \
-      | sed -e 's/^@configure@//'`
+# The value of CPP is a quoted variable reference, so we need to do this
+# to get its actual value...
+CPP=`eval "echo $CPP"`
+eval `${CPP} -Isrc ${tempcname} \
+       | grep '@configure@' \
+       | sed -e 's/^@configure@ \([^=]*=\)\(.*\)$/\1"\2"/'`
 rm ${tempcname}
 
 rm ${tempcname}
 
+### Compute the unexec source name from the object name.
+UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
+
 # Do the opsystem or machine files prohibit the use of the GNU malloc?
 # Do the opsystem or machine files prohibit the use of the GNU malloc?
+# Assume not, until told otherwise.
+GNU_MALLOC=yes
 if [ "${system_malloc}" = "yes" ]; then
   GNU_MALLOC=no
   GNU_MALLOC_reason="
   (The GNU allocators don't work with this system configuration.)"
 fi
 
 if [ "${system_malloc}" = "yes" ]; then
   GNU_MALLOC=no
   GNU_MALLOC_reason="
   (The GNU allocators don't work with this system configuration.)"
 fi
 
-if [ ! "${REL_ALLOC}" ]; then
+if [ x"${REL_ALLOC}" = x ]; then
   REL_ALLOC=${GNU_MALLOC}
 fi
 
 LISP_FLOAT_TYPE=yes
 
   REL_ALLOC=${GNU_MALLOC}
 fi
 
 LISP_FLOAT_TYPE=yes
 
-#### Make the proper settings in `src/config.h'.
-rm -f config.status
-set -e
 
 
-echo "Making \`./src/config.h' from \`${srcdir}/src/config.h.in'."
-sed_flags="-e 's:@machine@:${machfile}:' -e 's:@opsystem@:${opsysfile}:'"
+#### Add the libraries to LIBS and check for some functions.
 
 
-for flag in ${config_h_opts}; do
-  val=`eval echo '$'${flag}`
-  case ${val} in
-    no | "")
-      f="-e 's:.*#define ${flag}.*:/\\* #define ${flag} \\*/:'"
-    ;;
-    yes)
-      f="-e 's:.*#define ${flag}.*:#define ${flag}:'"
-    ;;
-    *)
-      f="-e 's:.*#define ${flag}.*:#define ${flag} ${val}:'"
-    ;;
-  esac
-  sed_flags="${sed_flags} ${f}"
-done
+]
+DEFS="$c_switch_system $DEFS"
+LIBS="$libsrc_libs"
+
+dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
+dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
+AC_HAVE_LIBRARY(-ldnet)
+
+AC_HAVE_LIBRARY(-lXbsd, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd"
+    if test -d /usr/X386/include; then
+      HAVE_XFREE386=yes
+      test -z "${C_SWITCH_X_SITE}" && C_SWITCH_X_SITE="-I/usr/X386/include"
+    fi)
+
+if test "${HAVE_X11}" = "yes"; then
+  DEFS="$C_SWITCH_X_SITE $DEFS"
+  LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS"
+  AC_HAVE_FUNCS(XrmSetDatabase random)
+fi
+
+AC_ALLOCA
+AC_HAVE_FUNCS(gettimeofday gethostname dup2 rename closedir)
+
+ok_so_far=true
+AC_FUNC_CHECK(socket, , ok_so_far=)
+if test -n "$ok_so_far"; then
+  AC_HEADER_CHECK(netinet/in.h, , ok_so_far=)
+fi
+if test -n "$ok_so_far"; then
+  AC_HEADER_CHECK(arpa/inet.h, , ok_so_far=)
+fi
+if test -n "$ok_so_far"; then
+  AC_DEFINE(HAVE_INET_SOCKETS)
+fi
+[
+#### Find out which version of Emacs this is.
+version=`grep 'defconst[        ]*emacs-version' ${srcdir}/lisp/version.el \
+        | sed -e 's/^.*"\([0-9][0-9]*\.[0-9][0-9]*\)\..*$/\1/'`
+if [ x"${version}" = x ]; then
+  echo "${progname}: can't find current emacs version in
+       \`${srcdir}/lisp/version.el'." >&2
+  exit 1
+fi
+
+
+#### Specify what sort of things we'll be editing into Makefile and config.h.
+### Use configuration here uncanonicalized to avoid exceeding size limits.
+]
+AC_SUBST(configuration)
+AC_SUBST(version)
+AC_SUBST(srcdir)
+AC_SUBST(c_switch_system)
+AC_SUBST(libsrc_libs)
+AC_SUBST(rip_paths)
+AC_SUBST(inst_paths)
+AC_SUBST(LD_SWITCH_X_SITE)
+AC_SUBST(C_SWITCH_X_SITE)
+AC_SUBST(CFLAGS)
+AC_SUBST(prefix)
+AC_SUBST(exec_prefix)
+
+AC_DEFINE_UNQUOTED(config_machfile,  "\"${machfile}\"")
+AC_DEFINE_UNQUOTED(config_opsysfile, "\"${opsysfile}\"")
+AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE})
+AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE,  ${C_SWITCH_X_SITE})
+AC_DEFINE_UNQUOTED(UNEXEC_SRC,       ${UNEXEC_SRC})
+
+[
+if [ "${HAVE_X_WINDOWS}" = "yes" ] ; then
+  ] AC_DEFINE(HAVE_X_WINDOWS) [
+fi
+if [ "${HAVE_X11}" = "yes" ] ; then
+  ] AC_DEFINE(HAVE_X11) [
+fi
+if [ "${HAVE_XFREE386}" = "yes" ] ; then
+  ] AC_DEFINE(HAVE_XFREE386) [
+fi
+if [ "${HAVE_X_MENU}" = "yes" ] ; then
+  ] AC_DEFINE(HAVE_X_MENU) [
+fi
+if [ "${GNU_MALLOC}" = "yes" ] ; then
+  ] AC_DEFINE(GNU_MALLOC) [
+fi
+if [ "${REL_ALLOC}" = "yes" ] ; then
+  ] AC_DEFINE(REL_ALLOC) [
+fi
+if [ "${LISP_FLOAT_TYPE}" = "yes" ] ; then
+  ] AC_DEFINE(LISP_FLOAT_TYPE) [
+fi
+
+
+#### Report on what we decided to do.
+echo "
+
+Configured for \`${canonical}'.
 
 
-rm -f ./src/config.h.tmp
-(echo "/* This file is generated by \`${progname}' from"
- echo "   \`${srcdir}/src/config.h.in'."
- echo "   If you are thinking about editing it, you should seriously consider"
- echo "   running \`${progname} instead, or editing"
- echo "   \`${srcdir}/src/config.h.in' itself." 
- eval '/bin/sed '${sed_flags}' < "${srcdir}/src/config.h.in"'
-) > src/config.h.tmp
-./move-if-change src/config.h.tmp src/config.h
-### Remind people not to edit this.
-chmod -w src/config.h
-
-
-### Modify the parameters in the top makefile.
-echo "Producing \`./Makefile' from \`${srcdir}/Makefile.in'."
-rm -f Makefile.tmp
-(echo "\
-# This file is generated by \`${progname}' from \`${srcdir}/Makefile.in'.
-# If you are thinking about editing it, you should seriously consider
-# editing \`./Makefile.in' itself, or running \`${progname}' instead."
- /bin/sed < ${srcdir}/Makefile.in                      \
- -e 's/^CC=.*$/CC='"${default_cc}"'/'                  \
- -e 's/^CFLAGS=.*$/CFLAGS='"${default_cflags}"'/'      \
- -e '/^# DIST: /d') > ./Makefile.tmp
-./move-if-change ./Makefile.tmp ./Makefile
-# Remind people not to edit this.
-chmod -w ./Makefile
-
-### I'm commenting out this section until I bring the `build-install' script
-### into line with the rest of the configuration stuff.
-
-### # Modify the parameters in the `build-install' script.
-### echo "Producing \`./build-install' from \`${srcdir}/build-install.in'."
-### rm -f ./build-install.tmp
-### (echo "\
-### # This file is generated by \`${progname}' from \`${srcdir}/build-install.in'.
-### # If you are thinking about editing it, you should seriously consider
-### # editing \`./build-install.in' itself, or running \`${progname}' instead."
-###  /bin/sed < ${srcdir}/build-install.in                     \
-###  -e 's;^\(prefix=\).*$;\1'"${prefix};"                     \
-###  -e 's;^\(bindir=\).*$;\1'"${bindir};"                     \
-###  -e 's;^\(lisppath=\).*$;\1'"${lisppath};"         \
-###  -e 's;^\(datadir=\).*$;\1'"${datadir};"           \
-###  -e 's;^\(lockdir=\).*$;\1'"${lockdir};"           \
-###  -e 's;^\(libdir=\).*$;\1'"${libdir};") > ./build-install.tmp
-### ./move-if-change build-install.tmp build-install
-### # Remind people not to edit this.
-### chmod -w build-install
-### chmod +x build-install
-
-# Modify the parameters in the src makefile.
-echo "Producing \`./src/Makefile' from \`${srcdir}/src/Makefile.in'."
-rm -f src/Makefile.tmp
-(echo "# This file is generated by \`${progname}' from \`Makefile.in'.
-# If you are thinking about editing it, you should seriously consider
-# editing \`Makefile.in' itself, or running \`${progname}' instead."
- /bin/sed < src/Makefile.in                            \
- -e 's;^\(CC *=\).*$;\1'"${default_cc};"               \
- -e 's;^\(CFLAGS *=\).*$;\1'"${default_cflags};"       \
- -e '/^# DIST: /d') > src/Makefile.tmp
-./move-if-change src/Makefile.tmp src/Makefile
-# Remind people not to edit this.
-chmod -w src/Makefile
-
-# Modify the parameters in the lib-src makefile.
-echo "Producing lib-src/Makefile from lib-src/Makefile.in."
-rm -f lib-src/Makefile.tmp
-(echo "# This file is generated by \`${progname}' from \`Makefile.in'.
-# If you are thinking about editing it, you should seriously consider
-# editing \`Makefile.in' itself, or running \`${progname}' instead."
- /bin/sed < lib-src/Makefile.in                                \
- -e '/^# DIST: /d'                                     \
- -e 's;^\(CONFIG_CFLAGS=\).*$;\1'"${c_switch_site};"   \
- -e 's;^\(LOADLIBES=\).*$;\1'"${libsrc_libs};"         \
- -e 's;^\(CC=\).*$;\1'"${cc};") > lib-src/Makefile.tmp
-./move-if-change lib-src/Makefile.tmp lib-src/Makefile
-# Remind people not to edit this.
-chmod -w lib-src/Makefile
-
-
-# Create a verbal description of what we have done.
-message="Configured for \`${configuration}'.
-
-The following values have been set in ./Makefile and ./build-install:
-  \`make install' or \`build-install' will place executables in
-        ${bindir}.
-  Emacs's lisp search path will be
-        \`${lisppath}'.
-  Emacs will look for its architecture-independent data in
-        ${datadir}.
-  Emacs will look for its utility programs and other architecture-
-  dependent data in
-        ${libdir}.
-  Emacs will keep track of file-locking in
-        ${lockdir}.
-
-The following values have been set in src/config.h:
+  Where should the build process find the source code?    ${srcdir}
   What operating system and machine description files should Emacs use?
         \`${opsysfile}' and \`${machfile}'
   What operating system and machine description files should Emacs use?
         \`${opsysfile}' and \`${machfile}'
+  What compiler should emacs be built with?               ${CC} ${CFLAGS}
   Should Emacs use the GNU version of malloc?             ${GNU_MALLOC}${GNU_MALLOC_reason}
   Should Emacs use the relocating allocator for buffers?  ${REL_ALLOC}
   Should Emacs use the GNU version of malloc?             ${GNU_MALLOC}${GNU_MALLOC_reason}
   Should Emacs use the relocating allocator for buffers?  ${REL_ALLOC}
-  Should Emacs support a floating point data type?        ${lisp_float_type}
-  What window system should Emacs use?                    ${window_system}
-  What compiler should emacs be built with?               ${cc}
-  Should the compilation use \`-g' and/or \`-O'?           ${c_switch_site- neither}"
-
-# Document the damage we have done by writing config.status.
-
-echo '#!/bin/sh' > config.status
-
-echo "# This file is generated by \`${progname}.'
-# If you are thinking about editing it, you should seriously consider
-# running \`${progname}' instead.
-" >> config.status
-echo "${message}" | sed -e 's/^/# /' >> config.status
-echo "'${progname}' ${arguments} "'$@' >> config.status
-# Remind people not to edit this.
-chmod -w config.status
-chmod +x config.status
-
-# Print the description.
-echo
-echo "${message}"
-
-exit 0
+  What window system should Emacs use?                    ${window_system}${x_includes+
+  Where do we find X Windows header files?                }${x_includes}${x_libraries+
+  Where do we find X Windows libraries?                   }${x_libraries}
+
+"
+
+# Remove any trailing slashes in these variables.
+test -n "${prefix}" &&
+  prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
+test -n "${exec_prefix}" &&
+  exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
+]
+AC_OUTPUT(Makefile)