]> code.delx.au - gnu-emacs/blobdiff - configure1.in
* autoload.el (generate-file-autoloads): Add another
[gnu-emacs] / configure1.in
index f44611c22728053b96f72fc5e02882e6e830ddad..1dba271670bb39060c38f4d141be8c028d52c180 100755 (executable)
-#!/bin/sh
-# Configuration script for GNU Emacs
-#   Copyright (C) 1992 Free Software Foundation, Inc.
-
-#This file is part of GNU Emacs.
-
-#GNU Emacs is free software; you can redistribute it and/or modify
-#it under the terms of the GNU General Public License as published by
-#the Free Software Foundation; either version 1, or (at your option)
-#any later version.
-
-#GNU Emacs is distributed in the hope that it will be useful,
-#but WITHOUT ANY WARRANTY; without even the implied warranty of
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#GNU General Public License for more details.
-
-#You should have received a copy of the GNU General Public License
-#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.
-#
-# Usage: configure machine
-#
-# 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.
-#
-# 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:^\./::'`"
 
-short_usage="Type \`${progname} -usage' for more information about options."
+### The above line is deliberately left blank.  If it starts with a #,
+### some CSH's will think this is a csh script.
+
+#### Configuration script for GNU Emacs
+#### Copyright (C) 1992 Free Software Foundation, Inc.
+
+### This file is part of GNU Emacs.
+
+### GNU Emacs is free software; you can redistribute it and/or modify
+### it under the terms of the GNU General Public License as published by
+### the Free Software Foundation; either version 1, or (at your option)
+### any later version.
+
+### GNU Emacs is distributed in the hope that it will be useful,
+### but WITHOUT ANY WARRANTY; without even the implied warranty of
+### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+### GNU General Public License for more details.
+
+### You should have received a copy of the GNU General Public License
+### 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.
+###
+### 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-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.
+progname="`echo $0 | sed 's:^\./::'`"
 
-usage_message="Usage: ${progname} MACHINENAME [-OPTION[=VALUE] ...]
 
-This message needs to be updated.
+#### Usage messages.
 
-Set compilation and installation parameters for GNU Emacs, and report.
-MACHINENAME is the machine to build for.  See \`etc/MACHINES'.
-Options are:
-  -opsystem=SYSTEM - operating system to build for; see \`etc/MACHINES'.
-  -prefix=DIR - where to install Emacs's library files
-These options have reasonable defaults (in []s), and may not be needed:
-  -g, -O - Passed to the compiler.  If omitted, use -O only.
-  -cc=COMPILER - Which compiler to use.  Defaults to gcc if available.
-  -libdir=DIR - where to look for arch-dependent library files
-  -datadir=DIR - where to look for architecture-independent library files
-  -bindir=DIR - where to install the Emacs executable, and some friends
-  -lisppath=PATH - colon-separated list of Elisp directories
-  -lockdir=DIR - where Emacs should do its file-locking stuff
-  -window_system=none or [x11, if it is installed] - what window system to use
-  -have_x_menu=yes or [no] - include menu support under X11
-  -gnu_malloc=[yes] or no - use the GNU memory allocator
-  -rel_alloc=[yes] or no - use compacting allocator for buffers
-  -highpri=N - run at N points higher-than-normal priority
-  -lisp_float_type=[yes] or no - Support native floating point in Elisp
-If successful, ${progname} leaves its status in config.status.  If
-unsuccessful after disturbing the status quo, config.status is removed."
+short_usage="Type \`${progname} --usage' for more information about options."
 
-if [ ! -r ./src/lisp.h ]; then
-  echo "${progname}: Can't find Emacs sources in \`./src'.
-Run this config script in the top directory of the Emacs source tree." >&2
-  exit 1
-fi
+long_usage="Usage: ${progname} CONFIGURATION [-OPTION[=VALUE] ...]
 
-options=":\
-usage:help:\
-machine:opsystem:\
-g:O:cc:\
-prefix:bindir:emacsdir:datadir:lispdir:locallisppath:\
-lisppath:buildlisppath:statedir:lockdir:libdir:mandir:infodir:\
-gnu_malloc:rel_alloc:highpri:lisp_float_type:\
-window_system:have_x_menu:\
-"
+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 --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.
 
-boolean_opts=":\
-g:O:\
-gnu_malloc:rel_alloc:lisp_float_type:have_x_menu:\
-"
+If successful, ${progname} leaves its status in config.status.  If
+unsuccessful after disturbing the status quo, it removes config.status."
 
-config_h_opts=":\
-highpri:gnu_malloc:rel_alloc:lisp_float_type:\
-have_x_windows:have_x11:have_x_menu:\
-c_switch_site:sigtype:\
-"
 
-prefix=
-bindir=/usr/local/bin
-gnu_malloc=yes
-lisp_float_type=yes
+#### Option processing.
 
-# The default values for the following options are guessed at after other
-# options have been checked and given values, so we set them to null here.
-lisppath=""
-datadir=""
-libdir=""
-lockdir=""
-window_system=""
-have_x_menu=""
+### 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"
 
-# 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="$@"
 
-echo "Examining options."
 while [ $# != 0 ]; do
   arg="$1"
   case "${arg}" in
-    -*)
-      # Separate the switch name from the value it's being given.
+
+    ## Anything starting with a hyphen we assume is an option.
+    -* )
+
+      ## Separate the switch name from the value it's being given.
       case "${arg}" in
-        -*=* )
-         opt=`echo ${arg} | sed 's:^-\([^=]*\)=.*$:\1:'`
-         val=`echo ${arg} | sed 's:^-[^=]*=\(.*\)$:\1:'`
+        -*=*)
+         opt=`echo ${arg} | sed 's:^-*\([^=]*\)=.*$:\1:'`
+         val=`echo ${arg} | sed 's:^-*[^=]*=\(.*\)$:\1:'`
          valomitted=no
        ;;
-        -* )
-          # If FOO is a boolean argument, -FOO is equivalent to
-          # -FOO=yes.  Otherwise, the value comes from the next
-          # argument - see below.
-         opt=`echo ${arg} | sed 's:^-\(.*\)$:\1:'`
+        -*)
+          ## If FOO is a boolean argument, --FOO is equivalent to
+          ## --FOO=yes.  Otherwise, the value comes from the next
+          ## argument - see below.
+         opt=`echo ${arg} | sed 's:^-*\(.*\)$:\1:'`
           val="yes"
           valomitted=yes
         ;;
       esac
 
-      # Make sure the argument is valid and unambiguous.
-      case ${options} in
-        *:${opt}:* )   # Exact match.
-          optvar=${opt}
-        ;;
-        *:${opt}*:${opt}*:* )  # Ambiguous prefix.
-         echo "\`-${opt}' is an ambiguous switch; it could be any of the following:"
-         # We can't just use tr to translate colons to newlines, since
-         # BSD sed and SYSV sed use different syntaxes for that.
-         spaced_options=`echo ${options} | tr ':' ' '`
-         echo `(for option in ${spaced_options}; do echo $option; done) \
-               | grep "^${opt}"`
-         echo ${short_usage}
-         exit 1
-       ;;
-        *:${opt}*:* )          # Unambigous prefix.
-         optvar=`echo ${options} | sed 's/^.*:\('${opt}'[^:]*\):.*$/\1/'`
-        ;;
-       * )
-         (echo "\`-${opt}' is not a valid option."
-          echo "${short_usage}") | more
-         exit 1
-       ;;
-      esac
+      ## Change `-' in the option name to `_'.
+      opt="`echo ${opt} | tr - _`"
+
+      ## Process the option.
+      case "${opt}" in
 
-      case "${optvar}" in
-        usage | help)
-          echo "${usage_message}" | more
-          exit 1
+        ## Has the user specified which window systems they want to support?
+        "with_x" | "with_x11" | "with_x10" )
+         ## 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.
+Set it to either \`yes' or \`no'."
+              echo "${short_usage}") >&2
+             exit 1
+           ;;
+         esac
+          eval "${opt}=\"${val}\""
         ;;
-      esac
 
-      # If the variable is supposed to be boolean, make sure the value
-      # given is either "yes" or "no".  If not, make sure some value
-      # was given.
-      case "${boolean_opts}" in
-        *:${optvar}:* )
+       ## Has the user specified whether or not they want GCC?
+       "with_gcc" )
+         ## Make sure the value given was either "yes" or "no".
          case "${val}" in
            y | ye | yes )      val=yes ;;
            n | no )            val=no  ;;
            * )
-             echo "The \`-${optvar}' option (\`-${opt}') is supposed to have a boolean
-  value - set it to either \`yes' or \`no'." >&2
+             (echo "${progname}: the \`--${opt}' 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 a source directory?
+       "srcdir" )
+         ## 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'."
-              echo "${short_usage}") | more
+             (echo "${progname}: You must give a value for the \`--${opt}' option, as in
+    \`--${opt}=FOO'."
+              echo "${short_usage}") >&2
              exit 1
            fi
            shift; val="$1"
          fi
-        ;;
-      esac
+          srcdir="${val}"
 
-      eval "${optvar}=\"${val}\""
+         echo "${progname}: Beware - the \`--srcdir' option doesn't work yet." >&2
+       ;;
+
+       ## Has the user asked for some help?
+       "usage" | "help" )
+         echo "${long_usage}" | more
+         exit
+       ;;
+
+        ## We ignore all other options silently.
+      esac
     ;;
+
+    ## Anything not starting with a hyphen we assume is a
+    ## configuration name.
     *)
-      machine=${arg}
+      configuration=${arg}
     ;;
+
   esac
   shift
 done
 
-if [ "${machine}" = "" ]; then
-  (echo "You must specify a machine name as an argument to ${progname}."
-   echo "${short_usage}") | more
+if [ "${configuration}" = "" ]; then
+  (echo "${progname}: You must specify a configuration name as an argument."
+   echo "${short_usage}") >&2
   exit 1
 fi
 
-echo "Checking the machine."
-machfile="m/${machine}.h"
-if [ ! -r src/${machfile} ]; then
-  echo "${progname}: Emacs has no configuration info for the machine called
-\`${machine}'.  Look at etc/MACHINES for the names of machines
-that Emacs has been ported to." >&2
-  exit 1
-fi
 
-echo "Checking the operating system."
-if [ "${opsystem}" = "" ]; then
-
-  echo "  No operating system explicitly specified."
-  echo "  Guessing, based on machine."
-  # Get the default operating system to go with the specified machine.
-  opsystem=`grep 'USUAL-OPSYS="' src/${machfile} \
-           | sed 's/^.*USUAL-OPSYS="\([^"]*\)".*$/\1/'`
-
-  if [ "${opsystem}" = "" ]; then
-    echo "${progname}: Emacs's configuration files don't suggest what operating
-system a \`${machine}' machine might run.  Try specifying the
-operating system explicitly by passing ${progname} an
-\`-opsystem=SYSTEM-NAME' flag.  Look at etc/MACHINES for the
-names of operating systems that Emacs has been ported to." >&2
-    exit 1
-  fi
+#### Decide where the source is.
+case "${srcdir}" in
 
-  if [ "${opsystem}" = "note" ]; then
-    echo "The \`${machine}' machine can be used with more than one operating
-system, and Emacs's configuration info isn't clever enough to figure
-out which one you're running.  Run ${progname} with -machine and
--opsystem arguments as specified below for the appropriate system.
-(This information comes from the file \`etc/MACHINES' - see that
-file for more detail.)
-
-" >&2
-    sed < src/${machfile} -e '1,/NOTE-START/d' -e '/NOTE-END/,$d' | more
-    echo
-    exit 1
-  fi
+  ## If it's not specified, see if  `.' or `..' might work.
+  "" )
+    if [ -f "./src/lisp.h" -a -f "./lisp/version.el" ]; then
+      srcdir=`pwd`
+    else
+      if [ -f "../src/lisp.h" -a -f "../lisp/version.el" ]; then
+       srcdir=`(cd .. ; pwd)`
+      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
+  ;;
 
-  opsysfile="s/${opsystem}.h"
-  if [ ! -r src/${opsysfile} ]; then
-    echo "${progname}: Emacs's configuration files say that the default
-operating system for the machine \`${machine}' is \`${opsystem}',
-but there is no configuration file for \`${opsystem}', so Emacs's
-default info is screwed up.  Try specifying the operating system
-explicitly by passing ${progname} an \`-opsystem=SYSTEM-NAME' flag." >&2
-    exit 1
-  fi
-else
-  opsysfile="s/${opsystem}.h"
-  if [ ! -r src/${opsysfile} ]; then
-    echo "${progname}: Emacs has no configuration info for the operating system
-\`${opsystem}'.  Look at etc/MACHINES for the names of operating
-systems that Emacs has been ported to." >&2
-    exit 1
-  fi
-fi
+  ## Otherwise, check if the directory they specified is okay.
+  * )
+    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
+  ;;
 
-if [ ! "${prefix}" ]; then
-  prefix="/usr/local"
-fi
+esac
 
-if [ ! "${emacsdir}" ]; then
-  emacsdir="${prefix}/emacs-19.0"
+### Make the necessary directories, if they don't exist.
+if [ ! -d ./src ]; then
+  mkdir ./src
 fi
-
-if [ ! "${datadir}" ]; then
-  datadir="${emacsdir}/etc"
+if [ ! -d ./lib-src ]; then
+  mkdir ./lib-src
 fi
-
-if [ ! "${lispdir}" ]; then
-  lispdir="${emacsdir}/lisp"
+if [ ! -d ./cpp ]; then
+  mkdir ./cpp
 fi
-
-if [ ! "${locallisppath}" ]; then
-  locallisppath="${emacsdir}/local-lisp"
+if [ ! -d ./oldXMenu ]; then
+  mkdir ./oldXMenu
 fi
 
-if [ ! "${lisppath}" ]; then
-  lisppath="${locallisppath}:${lispdir}"
-fi
 
-if [ ! "${buildlisppath}" ]; then
-  buildlisppath=../lisp
-fi
+#### Given the configuration name, set machfile and opsysfile to the
+#### names of the m/*.h and s/*.h files we should use.
 
-if [ ! "${statedir}" ]; then
-  statedir="${emacsdir}"
+### Canonicalize the configuration name.
+echo "Checking the configuration name."
+if configuration=`${srcdir}/config.sub "${configuration}"` ; then : ; else
+  exit $?
 fi
 
-if [ ! "${lockdir}" ]; then
-  lockdir="${statedir}/lock"
-fi
+### 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
+### that each m/*.h file is pretty manufacturer-specific - for
+### example, apollo.h, hp9000s300.h, mega68k, news.h, and tad68k are
+### 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.
+machine='' opsys='' unported='false'
+case "${configuration}" in
+
+  ## Alliant machines
+  ## Strictly speaking, we need the version of the alliant operating
+  ## system to choose the right machine file, but currently the
+  ## configuration name doesn't tell us enough to choose the right
+  ## one; we need to give alliants their own operating system name to
+  ## do this right.  When someone cares, they can help us.
+  fx80-alliant-* )
+    machine=alliant4 opsys=bsd4-2
+  ;;
+  i860-alliant-* )
+    machine=alliant-2800 opsys=bsd4-3
+  ;;
 
-if [ "${libdir}" = "" ]; then
-  libdir="${emacsdir}/arch-lib"
-fi
+  ## Altos 3068
+  m68*-altos-sysv* )
+    machine=altos opsys=usg5-2
+  ;;
+    
+  ## Amdahl UTS
+  580-amdahl-sysv* )
+    machine=amdahl opsys=usg5-2-2
+  ;;
+
+  ## Appallings - I mean, Apollos - running Domain
+  m68*-apollo* )
+    machine=apollo opsysfile=bsd4-2.h
+  ;;
+
+  ## AT&T 3b2, 3b5, 3b15, 3b20
+  we32k-att-sysv* )
+    machine=att3b opsys=usg5-2-2
+  ;;
+
+  ## AT&T 3b1 - The Mighty Unix PC!
+  m68*-att-sysv* )
+    machine=7300 opsys=usg5-2-2
+  ;;
+
+  ## Bull sps7
+  m68*-bull-sysv* )
+    machine=sps7 opsys=usg5-2
+  ;;
+
+  ## CCI 5/32, 6/32 -- see "Tahoe".
+
+  ## Celerity
+  ## I don't know what configuration name to use for this; config.sub
+  ## doesn't seem to know anything about it.  Hey, Celerity users, get
+  ## in touch with us!
+  celerity-celerity-bsd* )
+    machine=celerity opsys=bsd4-2
+  ;;
+
+  ## Clipper
+  ## What operating systems does this chip run that Emacs has been
+  ## tested on?
+  clipper-* )
+    machine=clipper
+    ## We'll use the catch-all code at the bottom to guess the
+    ## operating system.
+  ;;
+
+  ## Convex
+  *-convex-bsd* )
+    machine=convex opsys=bsd4-3
+  ;;
+
+  ## Cubix QBx/386
+  i386-cubix-sysv* )
+    machine=intel386 opsys=usg5-3
+  ;;
+
+  ## Cydra 5
+  cydra*-cydrome-sysv* )
+    machine=cydra5 opsys=usg5-3
+  ;;
+
+  ## DECstations
+  mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0 | mips-dec-bsd4.2 )
+    machine=pmax opsys=bsd4-2
+  ;;
+  mips-dec-ultrix* | mips-dec-bsd* )
+    machine=pmax opsys=bsd4-3
+  ;;
+  mips-dec-osf* )
+    machine=pmax opsys=osf1
+  ;;
+
+  ## Motorola Delta machines
+  m68*-motorola-sysv* )
+    machine=delta opsys=usg5-3
+  ;;
+  m88k-motorola-sysv* | m88k-motorola-m88kbcs* )
+    machine=delta88k opsys=usg5-3
+  ;;
+
+  ## Dual machines
+  m68*-dual-sysv* )
+    machine=dual opsys=usg5-2
+  ;;
+  m68*-dual-uniplus* )
+    machine=dual opsys=unipl5-2
+  ;;
+
+  ## Elxsi 6400
+  elxsi-elxsi-sysv* )
+    machine=elxsi opsys=usg5-2
+  ;;
+
+  ## Encore machines
+  ns16k-encore-bsd* )
+    machine=ns16000 opsys=umax
+  ;;
+
+  ## The GEC 93 - apparently, this port isn't really finished yet.
+
+  ## Gould Power Node and NP1
+  pn-gould-bsd4.2 )
+    machine=gould opsys=bsd4-2
+  ;;
+  pn-gould-bsd4.3 )
+    machine=gould opsys=bsd4-3
+  ;;
+  np1-gould-bsd* )
+    machine=gould-np1 opsys=bsd4-3
+  ;;
+
+  ## Honeywell XPS100
+  xps*-honeywell-sysv* )
+    machine=xps100 opsys=usg5-2
+  ;;
+
+  ## HP 9000 series 200 or 300
+  m68*-hp-bsd* )
+    machine=hp9000s300 opsys=bsd4-3
+  ;;
+  ## HP/UX 8 doesn't run on these machines, so use HP/UX 7.
+  m68*-hp-hpux* )
+    machine=hp9000s300 opsys=hpux
+  ;;
+
+  ## HP 9000 series 800, running HP/UX
+  hppa1.0-hp-hpux* )
+    machine=hp9000s800 opsys=hpux
+  ;;
+
+  ## Orion machines
+  orion-orion-bsd* )
+    machine=orion opsys=bsd4-2
+  ;;
+  clipper-orion-bsd* )
+    machine=orion105 opsys=bsd4-2
+  ;;
+
+  ## IBM machines
+  i386-ibm-aix1.1 )
+    machine=ibmps2-aix opsys=usg5-2-2
+  ;;
+  i386-ibm-aix1.2 )
+    machine=ibmps2-aix opsys=usg5-3
+  ;;
+  rs6000-ibm-aix* )
+    machine=ibmrs6000 opsys=aix3-1
+  ;;
+  romp-ibm-bsd* )
+    machine=ibmrt opsys=bsd4-2
+  ;;
+  romp-ibm-aix* )
+    machine=ibmrt-aix opsys=usg5-2-2
+  ;;
 
-if [ ! "${mandir}" ]; then
-  mandir="/usr/man/man1"
+  ## Integrated Solutions `Optimum V'
+  m68*-isi-bsd4.2 )
+    machine=isi-ov opsys=bsd4-2
+  ;;
+  m68*-isi-bsd4.3 )
+    machine=isi-ov opsys=bsd4-3
+  ;;
+
+  ## Intel 386 machines where we do care about the manufacturer
+  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
+  ;;
+
+  ## Silicon Graphics machines
+  ## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
+  m68*-sgi-iris3.5 )
+    machine=irist opsys=iris3-5
+  ;;
+  m68*-sgi-iris3.6 | m68*-sgi-iris*)
+    machine=irist opsys=iris3-6
+  ;;
+  ## Iris 4D
+  mips-sgi-irix3.* )
+    machine=iris4d opsys=irix3-3
+  ;;
+  mips-sgi-irix4.* | mips-sgi-irix* )
+    machine=iris4d opsys=irix4-0
+  ;;
+
+  ## Masscomp machines
+  m68*-masscomp-rtu )
+    machine=masscomp opsys=rtu
+  ;;
+
+  ## Megatest machines
+  m68*-megatest-bsd* )
+    machine=mega68 opsys=bsd4-2
+  ;;
+
+  ## Workstations sold by MIPS
+  ## This is not necessarily all workstations using the MIPS processor -
+  ## Irises are produced by SGI, and DECstations by DEC.
+
+  ## etc/MACHINES lists mips.h and mips4.h as possible machine files,
+  ## and usg5-2-2 and bsd4-3 as possible OS files.  The only guidance
+  ## it gives for choosing between the alternatives seems to be "Use
+  ## -machine=mips4 for RISCOS version 4; use -opsystem=bsd4-3 with
+  ## 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-riscos4* )
+    machine=mips4 opsys=usg5-2-2
+  ;;
+  mips-mips-bsd* )
+    machine=mips opsys=bsd4-3
+  ;;
+  mips-mips-* )
+    machine=mips opsys=usg5-2-2
+  ;;
+
+  ## The complete machine from National Semiconductor
+  ns32k-ns-genix* )
+    machine=ns32000 opsys=usg5-2
+  ;;
+
+  ## NCR machines
+  m68*-ncr-sysv2* )
+    machine=tower32 opsys=usg5-2-2
+  ;;
+  m68*-ncr-sysv3* )
+    machine=tower32v3 opsys=usg5-3
+  ;;
+
+  ## Nixdorf Targon 31
+  m68*-nixdorf-sysv* )
+    machine=targon31 opsys=usg5-2-2
+  ;;
+
+  ## Nu (TI or LMI)
+  m68*-nu-sysv* )
+    machine=nu opsys=usg5-2
+  ;;
+
+  ## Plexus
+  m68*-plexus-sysv* )
+    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-pyramid-bsd* )
+    machine=pyramid opsys=bsd4-2
+  ;;
+
+  ## Sequent Balance
+  ns32k-sequent-bsd4.2 )
+    machine=sequent opsys=bsd4-2
+  ;;
+  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 )
+    machine=news opsys=bsd4-2
+  ;;
+  m68*-sony-bsd4.3 )
+    machine=news opsys=bsd4-3
+  ;;
+  mips-sony-bsd* )
+    machine=news-risc opsys=bsd4-3
+  ;;
+
+  ## Stride
+  m68*-stride-sysv* )
+    machine=stride opsys=usg5-2
+  ;;
+
+  ## Suns
+  *-sun-sunos* | *-sun-bsd* )
+    case "${configuration}" in
+      m68*-sunos1* )   machine=sun1 ;;
+      m68*-sunos2* )   machine=sun2 ;;
+      m68* )           machine=sun3 ;;
+      i[34]86* )       machine=sun386 ;;
+      sparc* )         machine=sparc ;;
+      * )              unported=true ;;
+    esac
+    case "${configuration}" in
+      *-sunos4.0*        ) opsys=sunos4-0 ;;
+      *-sunos4* | *-sunos ) opsys=sunos4-1 ;;
+      *                          ) opsys=bsd4-2   ;;
+    esac
+  ;;
+
+  ## Tadpole 68k
+  m68*-tadpole-sysv* )
+    machine=tad68k opsys=usg5-3
+  ;;
+
+  ## Tahoe machines
+  tahoe-tahoe-bsd4.2 )
+    machine=tahoe opsys=bsd4-2
+  ;;
+  tahoe-tahoe-bsd4.3 )
+    machine=tahoe opsys=bsd4-3
+  ;;
+
+  ## Tandem Integrity S2
+  mips-tandem-sysv* )
+    machine=tandem-s2 opsys=usg5-3
+  ;;
+
+  ## Tektronix 16000 box (6130?)
+  ns16k-tektronix-bsd* )
+    machine=ns16000 opsys=bsd4-2
+  ;;
+  ## Tektronix 4300
+  ## src/m/tek4300.h hints that this is a m68k machine.
+  m68*-tektronix-bsd* )
+    machine=tex4300 opsys=bsd4-3
+  ;;
+
+  ## Titan P2 or P3
+  ## We seem to have lost the machine-description file titan.h!
+  titan-titan-sysv* )
+    machine=titan opsys=usg5-3
+  ;;
+  
+  ## Ustation E30 (SS5E)
+  m68*-unisys-uniplus* )
+    machine=ustation opsystem=unipl5-2
+  ;;
+
+  ## 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
+    esac
+  ;;
+
+  ## Whitechapel MG1
+  ns16k-whitechapel-* )
+    machine=mg1
+    ## We don't know what sort of OS runs on these; we'll let the
+    ## operating system guessing code below try.
+  ;;
+
+  ## Wicat
+  m68*-wicat-sysv* )
+    machine=wicat opsys=usg5-2
+  ;;
+
+  * )
+    unported=true
+  ;;
+esac
+
+### If the code above didn't choose an operating system, just choose
+### an operating system based on the configuration name.  You really
+### only want to use this when you have no idea what the right
+### 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
+    *-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 ;;
+    * )
+      unported=true
+    ;;
+  esac
 fi
 
-if [ ! "${infodir}" ]; then
-  infodir="${prefix}/info"
+if $unported ; then
+  (echo "${progname}: Emacs hasn't been ported to \`${configuration}' systems."
+   echo "${progname}: Check \`etc/MACHINES' for recognized configuration names."
+  ) >&2
+  exit 1
 fi
 
+machfile="m/${machine}.h"
+opsysfile="s/${opsys}.h"
+
+
+#### Choose a window system.
 echo "Checking window system."
-# Note that SYSV `tr' doesn't handle character ranges.
-window_system="`echo ${window_system} \
-                | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
+window_system=''
+case "${with_x}" in
+  yes )
+    window_system=${window_system}x11
+  ;;
+  no )
+    window_system=${window_system}none
+esac
+case "${with_x11}" in
+  yes )
+    window_system=${window_system}x11
+  ;;
+esac
+case "${with_x10}" in
+  yes )
+    window_system=${window_system}x10
+  ;;
+esac
+
 case "${window_system}" in
   "none" | "x11" | "x10" ) ;;
-  "x" ) window_system=x11 ;;
   "" )
     echo "  No window system specifed.  Looking for X Windows."
     window_system=none
@@ -333,72 +738,99 @@ case "${window_system}" in
     fi
   ;;
   * )
-    echo "The \`-window_system' option must be set to \`none' or \`X11'." >&2
+    echo "Don\'t specify the window system more than once." >&2
     exit 1
   ;;
 esac
 
 case "${window_system}" in
   x11 )
-    have_x_windows=yes
-    have_x11=yes
+    HAVE_X_WINDOWS=yes
+    HAVE_X11=yes
+    echo "  Using X11."
   ;;
   x10 )
-    have_x_windows=yes
-    have_x11=no
+    HAVE_X_WINDOWS=yes
+    HAVE_X11=no
+    echo "  Using X10."
   ;;
   none )
-    have_x_windows=no
-    have_x11=no
+    HAVE_X_WINDOWS=no
+    HAVE_X11=no
+    echo "  Using no window system."
   ;;
 esac
 
-if [ "${have_x_menu}" = "" ]; then
-  have_x_menu=no
-fi
-
-echo "Checking for GCC."
-case "${cc}" in
-  "" )
-    temppath=`echo $PATH | sed 's/^:/.:/
-                               s/::/:.:/g
-                               s/:$/:./
-                               s/:/ /g'`
-    cc=`(
-      for dir in ${temppath}; do
-        if [ -f ${dir}/gcc ]; then echo gcc; exit 0; fi
-      done
-      echo cc
-    )`
+### If we're using X11, we should use the X menu package.
+HAVE_X_MENU=no
+case ${HAVE_X11} in
+  yes )
+    HAVE_X_MENU=yes
   ;;
 esac
 
-case "${cc}" in
+
+#### 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" )
-    # With GCC, both O and g should default to yes, no matter what
-    # the other is.
-    case "${O},${g}" in
-      ,  ) O=yes; g=yes ;;
-      ,* ) O=yes;      ;;
-      *, )        g=yes ;;
-    esac
+    echo "  Using GCC."
+    default_cflags='-g -O'
   ;;
-  "*" )
-    # With other compilers, treat them as mutually exclusive,
-    # defaulting to debug.
-    case "${O},${g}" in
-      ,    ) O=no ; g=yes ;;
-      ,no  ) O=yes;       ;;
-      ,yes ) O=no ;       ;;
-      no,  )        g=yes ;;
-      yes, )        g=no  ;;
-    esac
+  * )
+    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.
+
+#### 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
@@ -406,26 +838,31 @@ if [ -r /usr/include/signal.h ]; then
 elif [ -r /usr/include/sys/signal.h ]; then
   signal_h_file=/usr/include/sys/signal.h
 fi
-sigtype=void
+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.
+  ## 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 ${cc} -E ${tempcname} | grep "int${sigpattern}" > /dev/null; then
-    sigtype=int
+  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."
 tempcname="configure.tmp.$$.c"
-echo '#include "src/'${opsysfile}'"
-#include "src/'${machfile}'"
+echo '
+#include "'${srcdir}'/src/'${opsysfile}'"
+#include "'${srcdir}'/src/'${machfile}'"
 #ifndef LIBS_MACHINE
 #define LIBS_MACHINE
 #endif
@@ -439,179 +876,144 @@ echo '#include "src/'${opsysfile}'"
 @configure@ system_malloc=no
 #endif
 ' > ${tempcname}
-eval `${cc} -E ${tempcname} \
+eval `${default_cc} -E ${tempcname} \
       | grep '@configure@' \
       | sed -e 's/^@configure@//'`
 rm ${tempcname}
 
 # 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 machine and/or operating system.)"
+  GNU_MALLOC=no
+  GNU_MALLOC_reason="
+  (The GNU allocators don't work with this system configuration.)"
+fi
+
+if [ ! "${REL_ALLOC}" ]; then
+  REL_ALLOC=${GNU_MALLOC}
 fi
 
-if [ ! "${rel_alloc}" ]; then
-  rel_alloc=${gnu_malloc}
+LISP_FLOAT_TYPE=yes
+
+
+#### 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
+  echo "${progname}: can't find current emacs version in
+       \`${srcdir}/lisp/version.el'." >&2
+  exit 1
 fi
 
+
+#### Make the proper settings in `src/config.h'.
 rm -f config.status
 set -e
 
-# Make the proper settings in the config file.
-echo "Making src/config.h from src/config.h.in"
-if [ "${highpri}" != "" ]; then
-  highpri="(-${highpri})"
-fi
-case "${g}" in
-  "yes" ) c_switch_site="${c_switch_site} -g" ;;
-esac
-case "${O}" in
-  "yes" ) c_switch_site="${c_switch_site} -O" ;;
-esac
-sed_flags="-e 's:@machine@:${machfile}:'"
-sed_flags="${sed_flags} -e 's:@opsystem@:${opsysfile}:'"
-for flag in `echo ${config_h_opts} | tr ':' ' '`; do
-  # Note that SYSV `tr' doesn't handle character ranges.
-  cflagname=`echo ${flag} \
-            | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
+echo "Making \`./src/config.h' from \`${srcdir}/src/config.h.in'."
+sed_flags="-e 's:@machine@:${machfile}:' -e 's:@opsystem@:${opsysfile}:'"
+
+for flag in ${config_h_opts}; do
   val=`eval echo '$'${flag}`
   case ${val} in
     no | "")
-      f="-e 's:.*#define ${cflagname}.*:/\\* #define ${cflagname} \\*/:'"
+      f="-e 's:.*#define ${flag}.*:/\\* #define ${flag} \\*/:'"
     ;;
     yes)
-      f="-e 's:.*#define ${cflagname}.*:#define ${cflagname}:'"
+      f="-e 's:.*#define ${flag}.*:#define ${flag}:'"
     ;;
     *)
-      f="-e 's:.*#define ${cflagname}.*:#define ${cflagname} ${val}:'"
+      f="-e 's:.*#define ${flag}.*:#define ${flag} ${val}:'"
     ;;
   esac
   sed_flags="${sed_flags} ${f}"
 done
-rm -f src/config.h.tmp
-eval '/bin/sed '${sed_flags}' < src/config.h.in > src/config.h.tmp'
-./move-if-change src/config.h.tmp src/config.h
-# Remind people not to edit this.
+
+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 makefile.
-echo "Producing ./Makefile from ./Makefile.in."
+
+#### 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 \`./Makefile.in'.
-# If you are thinking about editing it, you should seriously consider
-# editing \`./Makefile.in' itself, or running \`${progname}' instead."
- /bin/sed < Makefile.in                                        \
- -e '/^# DIST: /d'                                     \
- -e 's;^\(prefix=\).*$;\1'"${prefix};"                 \
- -e 's;^\(bindir=\).*$;\1'"${bindir};"                 \
- -e 's;^\(emacsdir=\).*$;\1'"${emacsdir};"             \
- -e 's;^\(datadir=\).*$;\1'"${datadir};"               \
- -e 's;^\(lispdir=\).*$;\1'"${lispdir};"               \
- -e 's;^\(locallisppath=\).*$;\1'"${locallisppath};"   \
- -e 's;^\(lisppath=\).*$;\1'"${lisppath};"             \
- -e 's;^\(buildlisppath=\).*$;\1'"${buildlisppath};"   \
- -e 's;^\(statedir=\).*$;\1'"${statedir};"             \
- -e 's;^\(lockdir=\).*$;\1'"${lockdir};"               \
- -e 's;^\(libdir=\).*$;\1'"${libdir};"                 \
- -e 's;^\(mandir=\).*$;\1'"${mandir};"                 \
- -e 's;^\(infodir=\).*$;\1'"${infodir};"               \
-) > ./Makefile.tmp
-./move-if-change Makefile.tmp Makefile
-# Remind people not to edit this.
-chmod -w ./Makefile
-
-# Modify the parameters in the `build-install' script.
-echo "Producing ./build-install from ./build-install.in."
-rm -f ./build-install.tmp
-(echo "# This file is generated by \`${progname}' from \`./build-install.in'.
+(echo "\
+# This file is generated by \`${progname}' from
+# \`${srcdir}/Makefile.in'.
 # If you are thinking about editing it, you should seriously consider
-# editing \`./build-install.in' itself, or running \`${progname}' instead."
- /bin/sed < 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 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 '/^# DIST: /d'                                     \
- -e 's;^\(CC[ ]*=\).*$;\1'"${cc};") > 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;^\(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.
-if [ "${highpri}" ]; then
-  desc_highpri="${highpri}"
-else
-  desc_highpri="none"
-fi
-message="Configured for machine \`${machine}' running \`${opsystem}'.
-The following values have been set in ./Makefile and ./build-install:
-  \`make install' or \`build-install' will placed 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:
-  At how much higher than normal priority should Emacs run? ${desc_highpri}
-  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 Elisp type?       ${lisp_float_type}
+# 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}'.
+
+  What operating system and machine description files should Emacs use?
+        \`${opsysfile}' and \`${machfile}'
+  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}
-  Should Emacs support mouse menus, which require X11?    ${have_x_menu}
-  What compiler should emacs be built with?               ${cc}
-  Should the compilation use \`-g' and/or \`-O'?           ${c_switch_site- neither}"
+  What compiler should emacs be built with?               ${default_cc}
+  Should the compilation use \`-g' and/or \`-O'?            ${default_cflags-neither}"
 
-# Document the damage we have done by writing config.status.
+### Write config.status, documenting the damage we have done.
 
-echo '#!/bin/sh' > config.status
+(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
 
-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.
+### Remind people not to edit this.
 chmod -w config.status
 chmod +x config.status
 
-# Print the description.
+### Print the description.
 echo
 echo "${message}"