view configure1.in @ 25689:60a23f3bd0cc

(help-highlight-p): Doc fix.
author Dave Love <fx@gnu.org>
date Mon, 13 Sep 1999 14:07:03 +0000
parents c1e70445780e
children
line wrap: on
line source

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.
[#!/bin/sh
#### Configuration script for GNU Emacs
#### Copyright (C) 1992, 1994 Free Software Foundation, Inc.
#### This script requires autoconf version 1.9 or later.

### 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.

### 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 2, 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.

### Since Emacs has configuration requirements that autoconf can't
### meet, this file is an unholy marriage of custom-baked
### configuration code and autoconf macros.
###
### We use the m4 quoting characters [ ] (as established by the
### autoconf system) to include large sections of raw sewage - Oops, I
### mean, shell code - in the final configuration script.
###
### Usage: configure config_name
###
### If configure succeeds, it leaves its status in config.status.
### If configure fails after disturbing the status quo,
### 	config.status is removed.

### Remove any more than one leading "." element from the path name.
### If we don't remove them, then another "./" will be prepended to
### the file name each time we use config.status, and the program name
### will get larger and larger.  This wouldn't be a problem, except
### that since progname gets recorded in all the Makefiles this script
### produces, move-if-change thinks they're different when they're
### not.
###
### It would be nice if we could put the ./ in a \( \) group and then
### apply the * operator to that, so we remove as many leading ./././'s
### as are present, but some seds (like Ultrix's sed) don't allow you to
### apply * to a \( \) group.  Bleah.
progname="`echo $0 | sed 's:^\./\./:\./:'`"


### Establish some default values.
run_in_place=
single_tree=
prefix='/usr/local'
exec_prefix='${prefix}'
bindir='${exec_prefix}/bin'
datadir='${prefix}/share'
sharedstatedir='${prefix}/com'
libexecdir='${exec_prefix}/libexec'
mandir='${prefix}/man/man1'
infodir='${prefix}/info'
lispdir='${datadir}/emacs/${version}/lisp'
locallisppath='${datadir}/emacs/site-lisp'
lisppath='${locallisppath}:${lispdir}'
etcdir='${datadir}/emacs/${version}/etc'
lockdir='${sharedstatedir}/emacs/lock'
archlibdir='${libexecdir}/emacs/${version}/${configuration}'
docdir='${datadir}/emacs/${version}/etc'

# On Sun systems, people sometimes set up the variable CPP
# with a value that is a directory, not an executable at all.
# Detect that case, and ignore that value.
if [ "x$CPP" != x ] && [ -d "$CPP" ];
then
  CPP=
fi

# We cannot use this variable in the case statement below, because many
# /bin/sh's have broken semantics for "case".  Unfortunately, you must
# actually edit the clause itself.
# path_options="prefix | exec_prefix | bindir | libexecdir | etcdir | datadir"
# path_options="$path_options | archlibdir | sharedstatedir | mandir | infodir"
# path_options="$path_options | lispdir | lockdir | lisppath | locallisppath"

#### Usage messages.

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.
--with-x		Support the X Window System.
--with-x=no		Don't support X.
--with-x-toolkit=yes	Use the X toolkit. Default to Lucid/Athena widgets.
--with-x-toolkit=athena	Use the X toolkit with Athena widgets.
--with-x-toolkit=lucid	Use the X toolkit with Lucid widgets.
--with-x-toolkit=motif	Use the X toolkit with Motif widgets.
--with-x-toolkit=no	Don't use an X toolkit.
--with-gcc		Use GCC to compile Emacs.
--with-gcc=no		Don't use GCC to compile Emacs.
--x-includes=DIR 	Search for X header files in DIR.
--x-libraries=DIR	Search for X libraries in DIR.
--run-in-place		Use libraries and data files directly out of the 
			source tree.
--single-tree=DIR	Has the effect of creating a directory tree at DIR
			which looks like:
			  .../DIR/bin/CONFIGNAME (emacs, etags, etc.)
			  .../DIR/bin/CONFIGNAME/etc (movemail, etc.)
			  .../DIR/common/lisp  (emacs' lisp files)
			  .../DIR/common/site-lisp (local lisp files)
			  .../DIR/common/lib (DOC, TUTORIAL, etc.)
			  .../DIR/common/lock (lockfiles)
--srcdir=DIR		Look for the Emacs source files in DIR.
--prefix=DIR		Install files below DIR. Defaults to \`${prefix}'.

You may also specify any of the \`path' variables found in Makefile.in,
including --bindir, --libexecdir, --etcdir, --infodir, and so on.  This allows
you to override a single default location when configuring.

If successful, ${progname} leaves its status in config.status.  If
unsuccessful after disturbing the status quo, it removes config.status."


#### Option processing.

### Record all the arguments, so we can save them in config.status.
arguments="$@"

### Shell Magic: Quote the quoted arguments in ARGUMENTS.  At a later date,
### in order to get the arguments back in $@, we have to do an
###  `eval set x "$quoted_arguments"; shift'.
quoted_arguments=
for i in "$@"; do
   quoted_arguments="$quoted_arguments '$i'"
done

### 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.
### However, it also turns out that many shells cannot expand ${10} at all.
### So using an index variable doesn't work either.  It is possible to use
### some shell magic to make 'set x "$arguments"; shift' work portably.
config_options="$*"
while [ $# != 0 ]; do
  arg="$1"; shift
  case "${arg}" in

    ## 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:'`
	  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:^-*::'`
          val="yes"
          valomitted=yes
        ;;
      esac

      ## Change `-' in the option name to `_'.
      optname="${opt}"
      opt="`echo ${opt} | tr - _`"

      ## Process the option.
      case "${opt}" in

        ## 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 \`--${optname}' option is supposed to have a boolean value.
Set it to either \`yes' or \`no'."
	       echo "${short_usage}") >&2
	      exit 1
	    ;;
	  esac
          eval "${opt}=\"${val}\""
        ;;

        ## Has the user specified which toolkit they want to support?
        "with_x_toolkit" )
	  case "${val}" in
	    y | ye | yes )	val=athena ;;
	    n | no )		val=no  ;;
	    l | lu | luc | luci | lucid )	val=lucid ;;
	    a | at | ath | athe | athena )	val=athena ;;
	    m | mo | mot | moti | motif )	val=motif ;;
# These don't currently work.
#	    o | op | ope | open | open- | open-l | open-lo \
#		| open-loo | open-look )	val=open-look ;;
	    * )
	      (
#echo "${progname}: the \`--${optname}' option is supposed to have a value
#which is \`yes', \`no', \`lucid', \`athena', \`motif' or \`open-look'."
echo "${progname}: the \`--${optname}' option is supposed to have a value
which is \`yes', \`no', \`lucid', \`athena', or \`motif'.
Currently, \`yes', \`athena' and \`lucid' are synonyms."
	       echo "${short_usage}") >&2
	      exit 1
	    ;;
	  esac
          eval "${opt}=\"${val}\""
        ;;

	## Has the user specified whether or not they want GCC?
	"with_gcc" | "with_gnu_cc" )
	  ## Make sure the value given was either "yes" or "no".
	  case "${val}" in
	    y | ye | yes )	val=yes ;;
	    n | no )		val=no  ;;
	    * )
	      (echo "${progname}: the \`--${optname}' option is supposed to have a boolean value.
Set it to either \`yes' or \`no'."
	       echo "${short_usage}") >&2
	      exit 1
	    ;;
	  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 [ $# = 0 ]; then
	      (echo "${progname}: You must give a value for the \`--${optname}' option, as in
    \`--${optname}=FOO'."
	       echo "${short_usage}") >&2
	      exit 1
	    fi
	    val="$1"; shift
	  fi
          srcdir="${val}"
	;;

	## Has the user tried to tell us where the X files are?
	## I think these are dopey, but no less than three alpha
	## testers, at large sites, have said they have their X files
	## installed in odd places.
	"x_includes" )
	  ## If the value was omitted, get it from the next argument.
	  if [ "${valomitted}" = "yes" ]; then
	    ## Get the next argument from the argument list, if there is one.
            if [ $# = 0 ]; then
	      (echo "${progname}: You must give a value for the \`--${optname}' option, as in
    \`--${optname}=/usr/local/X11/include'."
	       echo "${short_usage}") >&2
	      exit 1
	    fi
            val="$1"; shift
	  fi
	  x_includes="${val}"
        ;;
	"x_libraries" )
	  ## If the value was omitted, get it from the next argument.
	  if [ "${valomitted}" = "yes" ]; then
	    ## Get the next argument from the argument list, if there is one.
            if [ $# = 0 ]; then
	      (echo "${progname}: You must give a value for the \`--${optname}' option, as in
    \`--${optname}=/usr/local/X11/lib'."
	       echo "${short_usage}") >&2
	      exit 1
	    fi
            val="$1"; shift
	  fi
	  x_libraries="${val}"
        ;;

	## Should this use the "development" file organization?
	"run_in_place" )
	  single_tree=
	  run_in_place=1
	;;

        ## Should this use the "single tree" file organization?
	"single_tree" )
	   run_in_place=
	   single_tree=1
	;;

	## Has the user specified one of the path options?
	prefix | exec_prefix | bindir | libexecdir | etcdir | datadir | \
	archlibdir | sharedstatedir | mandir | infodir | lispdir | lockdir | \
	lisppath | locallisppath | docdir )
	   ## If the value was omitted, get it from the next argument.
	   if [ "${valomitted}" = "yes" ]; then
	      if [ $# = 0 ]; then
		 (echo \
"$progname: You must give a value for the \`--${optname}' option,";
		  echo \
"as in \`--${optname}=`eval echo '$'$optname`.'"
		  echo "$short_usage") >&2
		 exit 1
	      fi
	      val="$1"; shift
	   fi
	   eval "${opt}=\"${val}\""
	   eval "${opt}_specified=1"
	;;

	## Verbose flag, tested by autoconf macros.
	"verbose" )
	  verbose=yes
	;;

	## Has the user asked for some help?
	"usage" | "help" )
	  if [ "x$PAGER" = x ]
	  then
	    echo "${short_usage}" | more
	  else
	    echo "${short_usage}" | $PAGER
	  fi
	  exit
	;;

        ## We ignore all other options silently.
      esac
    ;;

    ## Anything not starting with a hyphen we assume is a
    ## configuration name.
    *)
      configuration=${arg}
    ;;

  esac
done

### Get the arguments back.  See the diatribe on Shell Magic above.
eval set x "$quoted_arguments"; shift

if [ "${configuration}" = "" ]; then
  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

#### Decide where the source is.
case "${srcdir}" in

  ## If it's not specified, see if  `.' or `..' might work.
  "" )
    confdir=`echo $0 | sed 's|//|/|' | sed 's|/[^/]*$||'`
    if [ -f $confdir/src/lisp.h -a -f $confdir/lisp/version.el ]; then
      srcdir="${confdir}"
    else
      if [ -f "./src/lisp.h" -a -f "./lisp/version.el" ]; then
        srcdir='.'
      else
        if [ -f "../src/lisp.h" -a -f "../lisp/version.el" ]; then
	  srcdir='..'
        else
	  (echo "\
${progname}: Neither the current directory nor its parent seem to
contain the Emacs sources.  If you do not want to build Emacs in its
source tree, you should run \`${progname}' in the directory in which
you wish to build Emacs, using its \`--srcdir' option to say where the
sources may be found."
	    echo "${short_usage}") >&2
	  exit 1
        fi
      fi
    fi
  ;;

  ## Otherwise, 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
  ;;
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} ; sh -c pwd)`" = "`pwd`" ] ; then
      srcdir="$PWD"
    else
      srcdir="`(cd ${srcdir}; pwd)`"
    fi
  ;;
  *  ) srcdir="`(cd ${srcdir}; pwd)`" ;;
esac

### Remove trailing slashes.
srcdir=`echo "${srcdir}" | sed 's,\([^/]\)/*$,\1,'`

#### Check if the source directory already has a configured system in it.
if [ `pwd` != `(cd ${srcdir} && pwd)` ] \
   && [ -f "${srcdir}/src/config.h" ] ; then
  (echo "${progname}: WARNING: The directory tree \`${srcdir}' is being used"
   echo "   as a build directory right now; it has been configured in its own"
   echo "   right.  To configure in another directory as well, you MUST"
   echo "   use GNU make.  If you do not have GNU make, then you must"
   echo "   now do \`make distclean' in ${srcdir},"
   echo "   and then run ${progname} again.") >&2
  extrasub='/^VPATH[	 ]*=/c\
vpath %.c $(srcdir)\
vpath %.h $(srcdir)\
vpath %.y $(srcdir)\
vpath %.l $(srcdir)\
vpath %.s $(srcdir)\
vpath %.in $(srcdir)'
fi

### Make the necessary directories, if they don't exist.
for dir in ./src ./lib-src ./cpp ./oldXMenu ./lwlib ./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"
if canonical=`${srcdir}/config.sub "${configuration}"` ; then : ; else
  exit $?
fi

### If you add support for a new configuration, add code to this
### switch statement to recognize your configuration name and select
### the appropriate operating system and machine description files.

### You would hope that you could choose an m/*.h file pretty much
### based on the machine portion of the configuration name, and an s-
### file based on the operating system portion.  However, it turns out
### 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.
###
### Eric Raymond says we should accept strings like "sysvr4" to mean
### "System V Release 4"; he writes, "The old convention encouraged
### confusion between `system' and `release' levels'."

machine='' opsys='' unported='false'
case "${canonical}" in

  ## NetBSD ports
  *-*-netbsd* )
    opsys=netbsd
    case "${canonical}" in
      i[345]86-*-netbsd*) machine=intel386 ;;
      m68k-*-netbsd*)
			# This is somewhat bogus.
			machine=hp9000s300 ;;
      mips-*-netbsd*)	machine=pmax ;;
      ns32k-*-netbsd*)	machine=ns32000 ;;
      sparc-*-netbsd*)	machine=sparc ;;
    esac
  ;;

  ## Acorn RISCiX:
  arm-acorn-riscix1.1* )
    machine=acorn opsys=riscix1-1
  ;;
  arm-acorn-riscix1.2* | arm-acorn-riscix )
    machine=acorn opsys=riscix1-2
  ;;

  ## 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
  ;;

  alpha-dec-osf* )
    machine=alpha opsys=osf1
  ;;

  ## 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 opsys=bsd4-2
  ;;

  ## 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 dpx20
  rs6000-bull-bosx* )
    machine=ibmrs6000 opsys=aix3-2
  ;;

  ## Bull dpx2
  m68*-bull-sysv3* )
    machine=dpx2 opsys=usg5-3
  ;;

  ## Bull sps7
  m68*-bull-sysv2* )
    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* | *-convex-convexos* )
    machine=convex opsys=bsd4-3
    ## Prevents suprious white space in makefiles - d.m.cooke@larc.nasa.gov
    NON_GNU_CPP="cc -E -P"
  ;;

  ## Cubix QBx/386
  i[345]86-cubix-sysv* )
    machine=intel386 opsys=usg5-3
  ;;

  ## Cydra 5
  cydra*-cydrome-sysv* )
    machine=cydra5 opsys=usg5-3
  ;;

  ## Data General AViiON Machines
  m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* )
    machine=aviion opsys=dgux5-4r3
  ;;
  m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* )
    machine=aviion opsys=dgux5-4r2
  ;;
  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
  ;;
  mips-dec-ultrix* | mips-dec-bsd* )
    machine=pmax opsys=bsd4-3
  ;;
  mips-dec-osf* )
    machine=pmax opsys=osf1
  ;;

  ## Motorola Delta machines
  m68k-motorola-sysv* | m68000-motorola-sysv* )
    machine=delta opsys=usg5-3
    if [ -z "`type gnucc | grep 'not found'`" ]
    then CC=gnucc
    else
      if [ -z "`type gcc | grep 'not found'`" ]
      then CC=gcc
      else CC=cc
      fi
    fi
  ;;
  m88k-motorola-sysv4* )
    machine=delta88k opsys=usg5-4
  ;;
  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
  ;;

  ## Harris Night Hawk machines running CX/UX (a 5000 looks just like a 4000
  ## as far as Emacs is concerned).
  m88k-harris-cxux* )
    # Build needs to be different on 7.0 and later releases
    case "`uname -r`" in
       [56].[0-9] ) machine=nh4000 opsys=cxux ;;
       [7].[0-9] ) machine=nh4000 opsys=cxux7 ;;
    esac
  ;;
  ## Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
  m68k-harris-cxux* )
    machine=nh3000 opsys=cxux
  ;;

  ## 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 7, 8 and 9 are supported on these machines.
  m68*-hp-hpux* )
    case "`uname -r`" in
      ## Someone's system reports A.B8.05 for this.
      ## I wonder what other possibilities there are.
      *.B8.* ) machine=hp9000s300 opsys=hpux8 ;;
      *.08.* ) machine=hp9000s300 opsys=hpux8 ;;
      *.09.* ) machine=hp9000s300 opsys=hpux9 ;;
      *) machine=hp9000s300 opsys=hpux ;;
    esac
  ;;

  ## HP 9000 series 700 and 800, running HP/UX
  hppa*-hp-hpux7* )
    machine=hp800 opsys=hpux
  ;;
  hppa*-hp-hpux8* )
    machine=hp800 opsys=hpux8
  ;;
  hppa*-hp-hpux9shr* )
    machine=hp800 opsys=hpux9shr
  ;;
  hppa*-hp-hpux9* )
    machine=hp800 opsys=hpux9
  ;;

  ## HP 9000 series 700 and 800, running HP/UX
  hppa*-hp-hpux* )
    ## Cross-compilation?  Nah!
    case "`uname -r`" in
      ## Someone's system reports A.B8.05 for this.
      ## I wonder what other possibilities there are.
      *.B8.* ) machine=hp800 opsys=hpux8 ;;
      *.08.* ) machine=hp800 opsys=hpux8 ;;
      *.09.* ) machine=hp800 opsys=hpux9 ;;
      *) machine=hp800 opsys=hpux ;;
    esac
  ;;

  ## Orion machines
  orion-orion-bsd* )
    machine=orion opsys=bsd4-2
  ;;
  clipper-orion-bsd* )
    machine=orion105 opsys=bsd4-2
  ;;

  ## IBM machines
  i[345]86-ibm-aix1.1* )
    machine=ibmps2-aix opsys=usg5-2-2
  ;;
  i[345]86-ibm-aix1.[23]* | i[345]86-ibm-aix* )
    machine=ibmps2-aix opsys=usg5-3
  ;;
  i370-ibm-aix*)
    machine=ibm370aix opsys=usg5-3
  ;;
  rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1*  )
    machine=ibmrs6000 opsys=aix3-1
  ;;
  rs6000-ibm-aix3.2.5 | powerpc-ibm-aix3.2.5 )
    machine=ibmrs6000 opsys=aix3-2-5
  ;;
  rs6000-ibm-aix* | powerpc-ibm-aix* )
    machine=ibmrs6000 opsys=aix3-2
  ;;
  romp-ibm-bsd4.3* )
    machine=ibmrt opsys=bsd4-3
  ;;	
  romp-ibm-bsd4.2* )
    machine=ibmrt opsys=bsd4-2
  ;;
  romp-ibm-aos4.3* )
    machine=ibmrt opsys=bsd4-3
  ;;	
  romp-ibm-aos4.2* )
    machine=ibmrt opsys=bsd4-2
  ;;
  romp-ibm-aos* )
    machine=ibmrt opsys=bsd4-3
  ;;
  romp-ibm-bsd* )
    machine=ibmrt opsys=bsd4-3
  ;;
  romp-ibm-aix* )
    machine=ibmrt-aix opsys=usg5-2-2
  ;;

  ## 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[345]86-intsys-sysv* )
    machine=is386 opsys=usg5-2-2
  ;;

  ## Prime EXL
  i[345]86-prime-sysv* )
    machine=i386 opsys=usg5-3
  ;;

  ## Sequent Symmetry running Dynix
  i[345]86-sequent-bsd* )
    machine=symmetry opsys=bsd4-3
  ;;

  ## Sequent Symmetry running DYNIX/ptx
  ## Use the old cpp rather than the newer ANSI one.
  i[345]86-sequent-ptx* )
    machine=sequent-ptx opsys=ptx
    NON_GNU_CPP="/lib/cpp"
  ;;
 
  ## Unspecified sysv on an ncr machine defaults to svr4.2.
  ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.)
  i[345]86-ncr-sysv* )
    machine=intel386 opsys=usg5-4-2
  ;;

  ## Intel 860
  i860-*-sysv4* )
    machine=i860 opsys=usg5-4
    NON_GNU_CC="/bin/cc" # Ie, not the one in /usr/ucb/cc.
    NON_GNU_CPP="/usr/ccs/lib/cpp" # cc -E tokenizes macro expansion.
  ;;

  ## 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-usg* )
    machine=mips4
    ## Fall through to the general code at the bottom to decide on the OS.
  ;;
  mips-mips-riscos4* )
    machine=mips4 opsys=bsd4-3
    NON_GNU_CC="cc -systype bsd43"
    NON_GNU_CPP="cc -systype bsd43 -E"
  ;;
  mips-mips-bsd* )
    machine=mips opsys=bsd4-3
  ;;
  mips-mips-* )
    machine=mips opsys=usg5-2-2
  ;;

  ## NeXT
  m68*-next-* | i[345]86-next-* )
    machine=next opsys=mach2
  ;;

  ## The complete machine from National Semiconductor
  ns32k-ns-genix* )
    machine=ns32000 opsys=usg5-2
  ;;

  ## NCR machines
  m68*-ncr-sysv2* | m68*-ncr-sysvr2* )
    machine=tower32 opsys=usg5-2-2
  ;;
  m68*-ncr-sysv3* | m68*-ncr-sysvr3* )
    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
  ;;

  ## 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
  ;;

  ## Siemens Nixdorf
  mips-siemens-sysv* )
    machine=mips-siemens opsys=usg5-4
    NON_GNU_CC=/usr/ccs/bin/cc
    NON_GNU_CPP=/usr/ccs/lib/cpp
  ;;

  ## 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-irix5* )
    machine=iris4d opsys=irix5-0
  ;;
  mips-sgi-irix4* | mips-sgi-irix* )
    machine=iris4d opsys=irix4-0
  ;;

  ## SONY machines
  m68*-sony-bsd4.2* )
    machine=news opsys=bsd4-2
  ;;
  m68*-sony-bsd4.3* )
    machine=news opsys=bsd4-3
  ;;
  m68*-sony-newsos3*)
    machine=news opsys=bsd4-3
  ;;
  mips-sony-bsd* | mips-sony-newsos4* )
    machine=news-risc opsys=bsd4-3
  ;;
  mips-sony-newsos* )
    machine=news-risc opsys=newsos5
  ;;

  ## Stride
  m68*-stride-sysv* )
    machine=stride opsys=usg5-2
  ;;

  ## Suns
  *-sun-sunos* | *-sun-bsd* | *-sun-solaris* | i[345]86-*-solaris2* | i[345]86-*-sunos5* )
    case "${canonical}" in
      m68*-sunos1* )	machine=sun1 ;;
      m68*-sunos2* )	machine=sun2 ;;
      m68* )		machine=sun3 ;;
      i[345]86-sun-sunos[34]* )	machine=sun386 ;;
      i[345]86-*-* )     machine=intel386 ;;
      sparc* )		machine=sparc ;;
      * )		unported=true ;;
    esac
    case "${canonical}" in
      ## The Sun386 didn't get past 4.0.
      i[345]86-*-sunos4	  ) opsys=sunos4-0 ;;
      *-sunos4.0*	  ) opsys=sunos4-0 ;;
      *-sunos4.1.3*	  ) opsys=sunos4-1-3
		NON_GCC_TEST_OPTIONS=-Bstatic
		GCC_TEST_OPTIONS=-static
		;;
      *-sunos4shr*	  ) opsys=sunos4shr ;;
      *-sunos4* | *-sunos ) opsys=sunos4-1
		NON_GCC_TEST_OPTIONS=-Bstatic
		GCC_TEST_OPTIONS=-static
		;;
      *-sunos5.3* | *-solaris2.3* )
		opsys=sol2-3
		NON_GNU_CPP=/usr/ccs/lib/cpp
		;;
      *-sunos5.4* | *-solaris2.4* )
		opsys=sol2-4
		NON_GNU_CPP=/usr/ccs/lib/cpp
		;;
      *-sunos5* | *-solaris* )
		opsys=sol2
		NON_GNU_CPP=/usr/ccs/lib/cpp
		;;
      *			  ) 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 XD88
  m88k-tektronix-sysv3* )
  machine=tekxd88 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=tek4300 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 "${canonical}" in
      *-bsd4.1* ) 					opsys=bsd4-1 ;;
      *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* )	opsys=bsd4-2 ;;
      *-bsd4.3* | *-ultrix* ) 				opsys=bsd4-3 ;;
      *-bsd386* | *-bsdi* )				opsys=bsd386 ;;
      *-sysv[01]* | *-sysvr[01]* ) 			opsys=usg5-0 ;;
      *-sysv2* | *-sysvr2* )				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
  ;;

  ## Intel 386 machines where we don't care about the manufacturer
  i[345]86-*-* )
    machine=intel386
    case "${canonical}" in
      *-isc1.* | *-isc2.[01]* )	opsys=386-ix ;;
      *-isc2.2* )		opsys=isc2-2 ;;
      *-isc4.0* )		opsys=isc4-0 ;;
      *-isc* )			opsys=isc3-0 ;;
      *-esix5* )		opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;;
      *-esix* )			opsys=esix ;;
      *-xenix* )		opsys=xenix ;;
      *-linux* )		opsys=linux ;;
      *-sco3.2v4* )		opsys=sco4 ; NON_GNU_CPP=/lib/cpp  ;;
      *-bsd386* | *-bsdi* )	opsys=bsd386 ;;
      *-386bsd* )	        opsys=386bsd ;;
      *-freebsd* )	        opsys=freebsd ;;
      *-nextstep* )             opsys=mach2 ;;
      ## Otherwise, we'll fall through to the generic opsys code at the bottom.
    esac
  ;;

  * )
    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 [ x"${opsys}" = x ]; then
  case "${canonical}" in
    *-gnu* )				opsys=gnu ;;
    *-bsd4.[01] )			opsys=bsd4-1 ;;
    *-bsd4.2 )				opsys=bsd4-2 ;;
    *-bsd4.3 )				opsys=bsd4-3 ;;
    *-sysv0 | *-sysvr0 )		opsys=usg5-0 ;;
    *-sysv2 | *-sysvr2 )		opsys=usg5-2 ;;
    *-sysv2.2 | *-sysvr2.2 )		opsys=usg5-2-2 ;;
    *-sysv3 | *-sysvr3 )		opsys=usg5-3 ;;
    *-sysv4 | *-sysvr4 )		opsys=usg5-4 ;;
    *-sysv4.1 | *-sysvr4.1 )
	NON_GNU_CPP=/usr/lib/cpp
	opsys=usg5-4 ;;
    *-sysv4.2 | *-sysvr4.2 )		opsys=usg5-4-2 ;;
    * )
      unported=true
    ;;
  esac
fi

if $unported ; then
  (echo "${progname}: Emacs hasn't been ported to \`${canonical}' systems."
   echo "${progname}: Check \`etc/MACHINES' for recognized configuration names."
  ) >&2
  exit 1
fi

machfile="m/${machine}.h"
opsysfile="s/${opsys}.h"

]
AC_PREPARE(lisp)
AC_CONFIG_HEADER(src/config.h)
[

#### Choose a compiler.
if [ "x$CC" = x ]
then true
else cc_specified=1
fi

case ${with_gcc} in
  "yes" ) CC="gcc" GCC=1 ;;
  "no"  )
    if [ "x$CC" = x ]
    then CC=cc;
    else true;
    fi
    ;;
  * )
    ] AC_PROG_CC [
esac

#### Some systems specify a CPP to use unless we are using GCC.
#### Now that we know whether we are using GCC, we can decide whether
#### to use that one.
if [ "x$NON_GNU_CPP" = x ] || [ x$GCC = x1 ] || [ "x$CPP" != x ]
then true
else
  CPP="$NON_GNU_CPP"
fi

#### Some systems specify a CC to use unless we are using GCC.
#### Now that we know whether we are using GCC, we can decide whether
#### to use that one.
if [ "x$NON_GNU_CC" = x ] || [ x$GCC = x1 ] || [ x$cc_specified = x1 ]
then true
else
  CC="$NON_GNU_CC"
fi

if [ x$GCC = x1 ] && [ "x$GCC_TEST_OPTIONS" != x ]
then
  CC="$CC $GCC_TEST_OPTIONS"
fi  

if [ x$GCC = x ] && [ "x$NON_GCC_TEST_OPTIONS" != x ]
then
  CC="$CC $NON_GCC_TEST_OPTIONS"
fi  

#### 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'
AC_AIX

dnl checks for header files
AC_HAVE_HEADERS(sys/timeb.h sys/time.h unistd.h utime.h)
AC_STDC_HEADERS
AC_TIME_WITH_SYS_TIME
dnl In Autoconf 1.8 use AC_SYS_SIGLIST_DECLARED instead of this.
AC_COMPILE_CHECK(sys_siglist declaration in signal.h or unistd.h,
		 [#include <signal.h>
/* NetBSD declares sys_siglist in <unistd.h>.  */
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif], [char *msg = *(sys_siglist + 1);],
		 AC_DEFINE(SYS_SIGLIST_DECLARED))
dnl Some systems have utime.h but don't declare the struct anyplace.
AC_COMPILE_CHECK(struct utimbuf, [#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
#include <time.h>
#else
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#else
#include <time.h>
#endif
#endif
#ifdef HAVE_UTIME_H
#include <utime.h>
#endif], [static struct utimbuf x; x.actime = x.modtime;],
		AC_DEFINE(HAVE_STRUCT_UTIMBUF))

dnl checks for typedefs
AC_RETSIGTYPE
AC_COMPILE_CHECK(struct timeval, [#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
#include <time.h>
#else
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#else
#include <time.h>
#endif
#endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
		AC_DEFINE(HAVE_TIMEVAL))

dnl checks for structure members
AC_STRUCT_TM
AC_TIMEZONE

dnl checks for compiler characteristics
AC_CONST

dnl check for Make feature
AC_SET_MAKE

dnl checks for operating system services
AC_LONG_FILE_NAMES

dnl other checks for UNIX variants
[

#### Choose a window system.
echo "checking for specified window system"

window_system=''
case "${with_x}" in
  yes )
    window_system=${window_system}x11
  ;;
  no )
    window_system=${window_system}none
  ;;
esac
case "${window_system}" in
  .* )
  ;;
  * )
    case "${with_x11}" in
      yes )
	window_system=x11
      ;;
      no )
	window_system=none
      ;;
    esac
    case "${with_x10}" in
      yes )
	window_system=x10
      ;;
      no )
	window_system=none
      ;;
    esac
  ;;
esac

case "${window_system}" in
  "none" | "x11" | "x10" ) ;;
  "" )
    # --x-includes or --x-libraries implies --with-x11.
    if [ -n "${x_includes}" ] || [ -n "${x_libraries}" ]; then
      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
  ;;
  * )
    echo "Don't specify a window system more than once." >&2
    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_libraries}" ] && LD_SWITCH_X_SITE_AUX="-R${x_libraries}"
[ -n "${x_includes}" ] && C_SWITCH_X_SITE="-I${x_includes}"

if [ x"${x_includes}" = x ]; then
  bitmapdir=/usr/include/X11/bitmaps;
else
  bitmapdir="${x_includes}/bitmaps";
fi

# Avoid forcing the search of /usr/include before fixed include files.
if [ "$C_SWITCH_X_SITE" = "-I/usr/include" ]; then
   C_SWITCH_X_SITE=" "
fi

case "${window_system}" in
  x11 )
    HAVE_X_WINDOWS=yes
    HAVE_X11=yes
    echo "  Using X11."
    case "${with_x_toolkit}" in
      athena | lucid )
	USE_X_TOOLKIT=LUCID
	echo "  Using Xt toolkit."
	;;	
      motif )
	USE_X_TOOLKIT=MOTIF
	echo "  Using Motif toolkit."
	;;	
      open-look )
	USE_X_TOOLKIT=OPEN_LOOK
	echo "  Using Open-Look toolkit."
	;;	
      * )
	USE_X_TOOLKIT=none
	echo "  Using Xlib directly."
      ;;
    esac
  ;;
  x10 )
    HAVE_X_WINDOWS=yes
    HAVE_X11=no
    USE_X_TOOLKIT=none
    echo "  Using X10."
  ;;
  none )
    HAVE_X_WINDOWS=no
    HAVE_X11=no
    USE_X_TOOLKIT=none
    echo "  Using no window system."
  ;;
esac
X_TOOLKIT_TYPE=$USE_X_TOOLKIT

### 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

#### 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"

### First figure out CFLAGS (which we use for running the compiler here)
### and REAL_CFLAGS (which we use for real compilation).
### The two are the same except on a few systems, where they are made
### different to work around various lossages.  For example,
### GCC 2.5 on Linux needs them to be different because it treats -g
### as implying static linking.

### If the CFLAGS env var is specified, we use that value
### instead of the default.

### It's not important that this name contain the PID; you can't run
### two configures in the same directory and have anything work
### anyway.
tempcname="conftest.c"

echo '
#include "'${srcdir}'/src/'${opsysfile}'"
#include "'${srcdir}'/src/'${machfile}'"
#ifndef LIBS_MACHINE
#define LIBS_MACHINE
#endif
#ifndef LIBS_SYSTEM
#define LIBS_SYSTEM
#endif
#ifndef C_SWITCH_SYSTEM
#define C_SWITCH_SYSTEM
#endif
#ifndef C_SWITCH_MACHINE
#define C_SWITCH_MACHINE
#endif
configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
configure___ c_switch_system=C_SWITCH_SYSTEM
configure___ c_switch_machine=C_SWITCH_MACHINE

#ifndef LIB_X11_LIB
#define LIB_X11_LIB -lX11
#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

#ifndef C_DEBUG_SWITCH
#define C_DEBUG_SWITCH -g
#endif

#ifndef C_OPTIMIZE_SWITCH
#define C_OPTIMIZE_SWITCH -O
#endif

#ifdef THIS_IS_CONFIGURE

/* Get the CFLAGS for tests in configure.  */
#ifdef __GNUC__
configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
#else
configure___ CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
#endif

#else /* not THIS_IS_CONFIGURE */

/* Get the CFLAGS for real compilation.  */
#ifdef __GNUC__
configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
#else
configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
#endif

#endif /* not THIS_IS_CONFIGURE */
' > ${tempcname}
# 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"/'`
if [ "x$CFLAGS" = x ]; then
  eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
	 | grep 'configure___' \
	 | sed -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/'`
else
  REAL_CFLAGS="$CFLAGS"
fi
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
if [ "${system_malloc}" = "yes" ]; then
  GNU_MALLOC=no
  GNU_MALLOC_reason="
  (The GNU allocators don't work with this system configuration.)"
fi

if [ x"${REL_ALLOC}" = x ]; then
  REL_ALLOC=${GNU_MALLOC}
fi

LISP_FLOAT_TYPE=yes


#### Add the libraries to LIBS and check for some functions.

]
DEFS="$c_switch_system $c_switch_machine $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)
dnl This causes -lresolv to get used in subsequent tests,
dnl which causes failures on some systems such as HPUX 9.
dnl AC_HAVE_LIBRARY(-lresolv)

AC_HAVE_LIBRARY(-lXbsd, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")

echo checking for XFree86
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

# We change CFLAGS temporarily so that C_SWITCH_X_SITE gets used
# for the tests that follow.

if test "${HAVE_X11}" = "yes"; then
  DEFS="$C_SWITCH_X_SITE $DEFS"
  LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS"
  CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
  AC_HAVE_FUNCS(XrmSetDatabase XScreenResourceString \
XScreenNumberOfScreen XSetWMProtocols)
fi

if test "${USE_X_TOOLKIT}" != "none"; then
  AC_COMPILE_CHECK(X11 toolkit version,
		   [#include <X11/Intrinsic.h>],
		   [
#if XtSpecificationRelease < 6
fail;
#endif
],
		   AC_DEFINE(HAVE_X11XTR6))
fi

# If netdb.h doesn't declare h_errno, we must declare it by hand.
AC_COMPILE_CHECK(declaration of h_errno in netdb.h,
		 [#include <netdb.h>],
		 [
int
foo ()
{
  return h_errno;
}
],
		 AC_DEFINE(HAVE_H_ERRNO))

AC_ALLOCA

# logb and frexp are found in -lm on most systems.
AC_HAVE_LIBRARY(-lm)
AC_HAVE_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \
random lrand48 bcopy bcmp logb frexp fmod drem ftime res_init setsid \
strerror fpathconf select mktime eaccess getpagesize)

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

# Set up the CFLAGS for real compilation, so we can substitute it.
CFLAGS="$REAL_CFLAGS"

[
#### Find out which version of Emacs this is.
version=`grep 'defconst[	 ]*emacs-version' ${srcdir}/lisp/version.el \
	 | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`
if [ x"${version}" = x ]; then
  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

#### 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(version)
AC_SUBST(configuration)
AC_SUBST(canonical)
AC_SUBST(srcdir)
AC_SUBST(prefix)
AC_SUBST(exec_prefix)
AC_SUBST(bindir)
AC_SUBST(datadir)
AC_SUBST(sharedstatedir)
AC_SUBST(libexecdir)
AC_SUBST(mandir)
AC_SUBST(infodir)
AC_SUBST(lispdir)
AC_SUBST(locallisppath)
AC_SUBST(lisppath)
AC_SUBST(etcdir)
AC_SUBST(lockdir)
AC_SUBST(archlibdir)
AC_SUBST(docdir)
AC_SUBST(bitmapdir)
AC_SUBST(c_switch_system)
AC_SUBST(c_switch_machine)
AC_SUBST(LD_SWITCH_X_SITE)
AC_SUBST(LD_SWITCH_X_SITE_AUX)
AC_SUBST(C_SWITCH_X_SITE)
AC_SUBST(CFLAGS)
AC_SUBST(X_TOOLKIT_TYPE)
AC_SUBST(machfile)
AC_SUBST(opsysfile)

AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "\"${canonical}\"")
AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS,  "\"${config_options}\"")
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(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX})
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 [ "${USE_X_TOOLKIT}" != "none" ] ; then
  ] AC_DEFINE(USE_X_TOOLKIT) [
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

# ====================== Developer's configuration =======================

# The following assignments make sense if you're running Emacs on a single
# machine, one version at a time, and  you want changes to the lisp and etc
# directories in the source tree to show up immediately in your working
# environment.  It saves a great deal of disk space by not duplicating the
# lisp and etc directories.

if [ "$run_in_place" = "1" ]; then
   lispdir='${srcdir}/lisp'
   locallisppath='${srcdir}/site-lisp'
   etcdir='${srcdir}/etc'
   lockdir='${srcdir}/lock'
   # We used to make archlibdir and docdir absolute,
   # but that caused trouble with automounters.
   archlibdir='${srcdir}/lib-src'
   docdir='${srcdir}/etc'
   infodir='${srcdir}/info'
elif [ "$single_tree" = "1" ]; then
   if [ "$exec_prefix_specified" = "" ]; then
      exec_prefix='${prefix}'
   fi
   if [ "$bindir_specified" = "" ]; then
      bindir='${exec_prefix}/bin/${configuration}'
   fi
   if [ "$datadir_specified" = "" ]; then
      datadir='${prefix}/common'
   fi
   if [ "$sharedstatedir_specified" = "" ]; then
      sharedstatedir='${prefix}/common'
   fi
   if [ "$libexecdir_specified" = "" ]; then
      libexecdir='${bindir}'
   fi
   if [ "$lispdir_specified" = "" ]; then
      lispdir='${prefix}/common/lisp'
   fi
   if [ "$locallisppath_specified" = "" ]; then
      locallisppath='${prefix}/common/site-lisp'
   fi
   if [ "$lockdir_specified" = "" ]; then
      lockdir='${prefix}/common/lock'
   fi
   if [ "$archlibdir_specified" = "" ]; then
      archlibdir='${libexecdir}/etc'
   fi
   if [ "$etcdir_specified" = "" ]; then
      etcdir='${prefix}/common/data'
   fi
   if [ "$docdir_specified" = "" ]; then
      docdir='${prefix}/common/data'
   fi
fi

#### 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 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}
  What window system should Emacs use?                    ${window_system}
  What toolkit should Emacs use?                          ${USE_X_TOOLKIT}${x_includes+
  Where do we find X Windows header files?                }${x_includes}${x_libraries+
  Where do we find X Windows libraries?                   }${x_libraries}

"

# Remove any trailing slashes in these variables.
test -n "${prefix}" &&
  prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
test -n "${exec_prefix}" &&
  exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
]
AC_OUTPUT(Makefile lib-src/Makefile.in oldXMenu/Makefile lwlib/Makefile src/Makefile.in, [

# Build src/Makefile from ${srcdir}/src/Makefile.in.  This must be done
# after src/config.h is built, since we rely on that file.

changequote(,)dnl The horror, the horror.
# Now get this: Some word that is part of the ${srcdir} directory name
# or the ${configuration} value might, just might, happen to be an
# identifier like `sun4' or `i386' or something, and be predefined by
# the C preprocessor to some helpful value like 1, or maybe the empty
# string.  Needless to say consequent macro substitutions are less
# than conducive to the makefile finding the correct directory.
undefs="`echo $top_srcdir $configuration $canonical |
sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/  *$//' \
    -e 's/  */ -U/g' -e 's/-U[0-9][^ ]*//g' \
`"
changequote([,])dnl

echo creating lib-src/Makefile
( cd lib-src
  rm -f junk.c junk1.c junk2.c
  sed -e '/start of cpp stuff/q' \
      < Makefile.in > junk1.c
  sed -e '1,/start of cpp stuff/d'\
      -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
      < Makefile.in > junk.c
  $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
      sed -e 's/^ /	/' -e '/^#/d' -e '/^[ 	]*$/d' > junk2.c
  cat junk1.c junk2.c > Makefile.new
  rm -f junk.c junk1.c junk2.c
  chmod 444 Makefile.new
  mv -f Makefile.new Makefile
)

echo creating src/Makefile
( cd src
  rm -f junk.c junk1.c junk2.c
  sed -e '/start of cpp stuff/q' \
      < Makefile.in > junk1.c
  sed -e '1,/start of cpp stuff/d'\
      -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
      < Makefile.in > junk.c
  $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
      sed -e 's/^ /	/' -e '/^#/d' -e '/^[ 	]*$/d' > junk2.c
  cat junk1.c junk2.c > Makefile.new
  rm -f junk.c junk1.c junk2.c
  chmod 444 Makefile.new
  mv -f Makefile.new Makefile
)])