]> code.delx.au - gnu-emacs/blobdiff - configure1.in
(Fmove_overlay): Avoid initializer for Lisp_Object vars.
[gnu-emacs] / configure1.in
index 88aee113e2e2cd47b2170862028640878efdb7a7..5aefb917feb74b72aaa7a893f980c8ab150ba071 100755 (executable)
@@ -1,10 +1,22 @@
-
-### The above line is deliberately left blank.  If it starts with a #,
-### some CSH's will think this is a csh script.
-
+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
 ###
 ###
 ### Usage: configure config_name
 ###
@@ -48,41 +66,20 @@ 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 --x-includes=DIR option tells the build process where to search for
-       the X Windows header files.  If this option is omitted, the
-       build process assumes they exist in a directory the compiler
-       checks by default.
-
-The --x-libraries=DIR option tells the build process where to look for
-       the X windows libraries.  If this option is omitted, the build
-       process assumes they are in a directory the compiler checks by
-       default.
-
-The --with-gcc option says that the build process should use GCC to
-       compile Emacs.  If you have GCC but don't want to use it,
-       specify \`--with-gcc=no'.  \`configure' tries to guess whether
-       or not you have GCC by searching your executable path, but if
-       it guesses incorrectly, you may need to use this.
-
-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.  This option doesn't work yet.
+--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."
@@ -90,19 +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 HAVE_CONST\
-LD_SWITCH_SITE C_SWITCH_SITE"
-
 ### 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.
@@ -126,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.
@@ -138,7 +143,7 @@ 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
 Set it to either \`yes' or \`no'."
               echo "${short_usage}") >&2
              exit 1
@@ -148,13 +153,13 @@ Set it to either \`yes' or \`no'."
         ;;
 
        ## Has the user specified whether or not they want GCC?
         ;;
 
        ## Has the user specified whether or not they want GCC?
-       "with_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  ;;
            * )
          ## 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 \`--${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
 Set it to either \`yes' or \`no'."
               echo "${short_usage}") >&2
              exit 1
@@ -168,57 +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}"
-
-         echo "${progname}: Beware - the \`--srcdir' option doesn't work yet." >&2
        ;;
 
        ## 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.
        ;;
 
        ## 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" )
+       "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 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
          x_includes="${val}"
          fi
          x_includes="${val}"
-         C_SWITCH_SITE="-I${x_includes}"
         ;;
         ;;
-       "x-libraries" )
+       "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 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
          x_libraries="${val}"
          fi
          x_libraries="${val}"
-         LD_SWITCH_SITE="-L${x_libraries}"
         ;;
 
         ;;
 
+       ## 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
        ;;
 
@@ -233,35 +282,45 @@ 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
 
   ## If it's not specified, see if  `.' or `..' might work.
   "" )
 #### Decide where the source is.
 case "${srcdir}" in
 
   ## If it's not specified, see if  `.' or `..' might work.
   "" )
-    if [ -f "./src/lisp.h" -a -f "./lisp/version.el" ]; then
-      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
     else
-      if [ -f "../src/lisp.h" -a -f "../lisp/version.el" ]; then
-       srcdir=`(cd .. ; pwd)`
+      if [ -f "./src/lisp.h" -a -f "./lisp/version.el" ]; then
+        srcdir='.'
       else
       else
-       (echo "\
+        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."
 ${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
+           echo "${short_usage}") >&2
+         exit 1
+        fi
       fi
     fi
   ;;
       fi
     fi
   ;;
@@ -279,30 +338,48 @@ are."
       exit 1
     fi
   ;;
       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
 
-### 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
-if [ ! -d ./oldXMenu ]; then
-  mkdir ./oldXMenu
+#### 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
 
 fi
 
+### Make the necessary directories, if they don't exist.
+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=`${srcdir}/config.sub "${configuration}"` ; then : ; else
+if canonical=`${srcdir}/config.sub "${configuration}"` ; then : ; else
   exit $?
 fi
 
   exit $?
 fi
 
@@ -330,7 +407,7 @@ fi
 ### confusion between `system' and `release' levels'."
 
 machine='' opsys='' unported='false'
 ### confusion between `system' and `release' levels'."
 
 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
@@ -357,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
@@ -370,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
   ;;
 
@@ -409,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
@@ -424,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
   ;;
@@ -468,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* )
@@ -490,7 +600,7 @@ 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
   ;;
   rs6000-ibm-aix3.1 )
     machine=ibmps2-aix opsys=usg5-3
   ;;
   rs6000-ibm-aix3.1 )
@@ -499,9 +609,24 @@ case "${configuration}" in
   rs6000-ibm-aix3.2 | rs6000-ibm-aix* )
     machine=ibmrs6000 opsys=aix3-2
   ;;
   rs6000-ibm-aix3.2 | rs6000-ibm-aix* )
     machine=ibmrs6000 opsys=aix3-2
   ;;
-  romp-ibm-bsd* )
+  romp-ibm-bsd4-3 )
+    machine=ibmrt opsys=bsd4-3
+  ;;   
+  romp-ibm-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
   ;;
     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
   ;;
@@ -518,17 +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 ;;
-      *-isc2.2 )               opsys=isc2-2 ;;
-      *-isc* )                 opsys=isc3-0 ;;
-      *-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
@@ -568,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
@@ -578,6 +710,11 @@ 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
   ## The complete machine from National Semiconductor
   ns32k-ns-genix* )
     machine=ns32000 opsys=usg5-2
@@ -606,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.
@@ -625,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 )
@@ -647,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 ;;
@@ -656,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
   ;;
@@ -681,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
@@ -705,10 +840,11 @@ case "${configuration}" in
   ## Vaxen.
   vax-dec-* )
     machine=vax
   ## Vaxen.
   vax-dec-* )
     machine=vax
-    case "${configuration}" in
+    case "${canonical}" in
       *-bsd4.1 )                                       opsys=bsd4-1 ;;
       *-bsd4.2 | *-ultrix[0-3].* | *-ultrix4.0 )       opsys=bsd4-2 ;;
       *-bsd4.3 | *-ultrix* )                           opsys=bsd4-3 ;;
       *-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 ;;
       *-sysv[01]* | *-sysvr[01]* )                     opsys=usg5-0 ;;
       *-sysv2* | *-sysvr2* )                           opsys=usg5-2 ;;
       *-vms* )                                                 opsys=vms ;;
@@ -728,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
   ;;
@@ -739,8 +893,8 @@ 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 ;;
@@ -749,6 +903,7 @@ if [ ! "${opsys}" ]; then
     *-sysv2.2 | *-sysvr2.2 )           opsys=usg5-2-2 ;;
     *-sysv3 | *-sysvr3 )               opsys=usg5-3 ;;
     *-sysv4 | *-sysvr4 )               opsys=usg5-4 ;;
     *-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
     ;;
@@ -756,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
@@ -765,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 )
@@ -790,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
@@ -828,97 +1058,17 @@ case ${HAVE_X11} in
   ;;
 esac
 
   ;;
 esac
 
-
-#### Choose a compiler.
-echo "Checking compilers."
-if [ "${with_gcc}" = "" ]; then
-  echo "  Searching load path 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
-  )`
-else
-  case ${with_gcc} in
-    "yes" ) default_cc="gcc" ;;
-    "no"  ) default_cc="cc"  ;;
-  esac
-fi
-
-case "${default_cc}" in
-  "gcc" )
-    echo "  Using GCC."
-    default_cflags='-g -O'
-  ;;
-  * )
-    echo "  Using the system's CC."
-    default_cflags='-g'
-  ;;
-esac
-
-
-#### Does this compiler support the `const' keyword?
-#### The code for this test was adapted from autoconf's test.
-echo "Checking if the compiler supports \`const'."
-rm -f conftest*
-compile='${default_cc} conftest.c -o conftest >/dev/null 2>&1'
-echo "
-main() { exit(0); } t() { /* Ultrix mips cc rejects this.  */
-typedef int charset[2]; const charset x;
-/* SunOS 4.1.1 cc rejects this. */
-char const *const *p;
-char **p2;
-/* HPUX 7.0 cc rejects these. */
-++p;
-p2 = (char const* const*) p;
- }" > conftest.c
-if eval $compile; then
-  echo "  It seems to."
-  HAVE_CONST=yes
-else
-  echo "  It doesn't seem to."
-  HAVE_CONST=no
-fi
-rm -f conftest*
-
-#### 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"
+
+### 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}'"
 echo '
 #include "'${srcdir}'/src/'${opsysfile}'"
 #include "'${srcdir}'/src/'${machfile}'"
@@ -928,18 +1078,62 @@ echo '
 #ifndef LIBS_SYSTEM
 #define LIBS_SYSTEM
 #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?
 # Assume not, until told otherwise.
 GNU_MALLOC=yes
 # Do the opsystem or machine files prohibit the use of the GNU malloc?
 # Assume not, until told otherwise.
 GNU_MALLOC=yes
@@ -949,134 +1143,133 @@ if [ "${system_malloc}" = "yes" ]; then
   (The GNU allocators don't work with this system configuration.)"
 fi
 
   (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
 
 
+#### Add the libraries to LIBS and check for some functions.
+
+]
+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 XScreenResourceString random bcopy)
+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/'`
 #### 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 [ ! "${version}" ]; then
+if [ x"${version}" = x ]; then
   echo "${progname}: can't find current emacs version in
        \`${srcdir}/lisp/version.el'." >&2
   exit 1
 fi
 
   echo "${progname}: can't find current emacs version in
        \`${srcdir}/lisp/version.el'." >&2
   exit 1
 fi
 
+if [ -f /usr/lpp/X11/bin/smt.exp ]; then
+  ]
+  AC_DEFINE(HAVE_AIX_SMT_EXP)
+  [
+fi
 
 
-#### 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}:'"
+#### 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
 
 
-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
 
 
-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
-${srcdir}/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-level 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
-# running \`${progname}' instead, or editing
-# \`${srcdir}/Makefile.in' itself."
- /bin/sed < ${srcdir}/Makefile.in                              \
- -e 's|^configname *=.*$|configname='"${configuration}"'|'     \
- -e 's|^version *=.*$|version='"${version}"'|'                 \
- -e 's|^srcdir *=.*$|srcdir='"${srcdir}"'|'                    \
- -e 's|^CC *=.*$|CC='"${default_cc}"'|'                        \
- -e 's|^CONFIG_CFLAGS *=.*$|CONFIG_CFLAGS='"${default_cflags}"'|'      \
- -e 's|^LOADLIBES *=.*$|LOADLIBES='"${libsrc_libs}"'|' \
- -e '/^# DIST: /d') > Makefile.tmp
-${srcdir}/move-if-change Makefile.tmp 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
-### ${srcdir}/move-if-change build-install.tmp build-install
-### # Remind people not to edit this.
-### chmod -w build-install
-### chmod +x build-install
-
-
-#### Describe the results.
-
-### Create a verbal description of what we have done.
-
-message="Configured for \`${configuration}'.
+#### Report on what we decided to do.
+echo "
+
+Configured for \`${canonical}'.
 
 
+  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}
-  What window system should Emacs use?                    ${window_system}
-  What compiler should emacs be built with?               ${default_cc}
-  Should the compilation use \`-g' and/or \`-O'?            ${default_cflags-neither}${x_includes+
+  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 header files?                }${x_includes}${x_libraries+
-  Where do we find X Windows libraries?                   }${x_libraries}"
+  Where do we find X Windows libraries?                   }${x_libraries}
 
 
-### Write config.status, documenting the damage we have done.
-
-(echo "\
-#!/bin/sh
-### This file is generated by \`${progname}.'
-### If you are thinking about editing it, you should seriously consider
-### running \`${progname}' instead.
 "
 "
- echo "${message}" | sed -e 's/^/# /'
- echo "exec '${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
+# 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)