]> code.delx.au - gnu-emacs/blobdiff - configure.in
#
[gnu-emacs] / configure.in
index 11d7ad0451a4a3d96e5c1210eb139291db14a35b..0e10721fe6d788f5fa32909127e0226c4bde2aca 100644 (file)
@@ -1,65 +1,95 @@
-dnl This is an autoconf script.
+dnl  Autoconf script for GNU Emacs
 dnl To rebuild the `configure' script from this, execute the command
 dnl    autoconf
 dnl in the directory containing this script.
-AC_PREREQ(1.111)dnl
+dnl
+dnl  Copyright (C) 1994, 1995, 1996, 1999 Free Software Foundation, Inc.
+dnl
+dnl  This file is part of GNU Emacs.
+dnl
+dnl  GNU Emacs is free software; you can redistribute it and/or modify
+dnl  it under the terms of the GNU General Public License as published by
+dnl  the Free Software Foundation; either version 2, or (at your option)
+dnl  any later version.
+dnl
+dnl  GNU Emacs is distributed in the hope that it will be useful,
+dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+dnl  GNU General Public License for more details.
+dnl
+dnl  You should have received a copy of the GNU General Public License
+dnl  along with GNU Emacs; see the file COPYING.  If not, write to the
+dnl  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+dnl  Boston, MA 02111-1307, USA.
+
+AC_PREREQ(2.8)dnl
 AC_INIT(src/lisp.h)
-AC_CONFIG_HEADER(src/config.h)
-
-bindir='${exec_prefix}/bin'
-datadir='${prefix}/lib'
-statedir='${prefix}/lib'
-libdir='${exec_prefix}/lib'
-mandir='${prefix}/man/man1'
-infodir='${prefix}/info'
+AC_CONFIG_HEADER(src/config.h:src/config.in)
+
 lispdir='${datadir}/emacs/${version}/lisp'
-locallisppath='${datadir}/emacs/site-lisp'
+locallisppath='${datadir}/emacs/${version}/site-lisp:'\
+'${datadir}/emacs/site-lisp:${datadir}/emacs/${version}/leim'
 lisppath='${locallisppath}:${lispdir}'
 etcdir='${datadir}/emacs/${version}/etc'
-lockdir='${statedir}/emacs/lock'
-archlibdir='${libdir}/emacs/${version}/${configuration}'
+archlibdir='${libexecdir}/emacs/${version}/${configuration}'
 docdir='${datadir}/emacs/${version}/etc'
 
+AC_ARG_WITH(gcc,
+[  --with-gcc              use GCC to compile Emacs])
+AC_ARG_WITH(pop,
+[  --with-pop              support POP for mail retrieval],
+[AC_DEFINE(MAIL_USE_POP)])
+AC_ARG_WITH(hesiod,
+[  --with-hesiod           support Hesiod to get the POP server host],
+[AC_DEFINE(HESIOD)])
+dnl This should be the last --with option, because --with-x is
+dnl added later on when we find the path of X, and it's best to
+dnl keep them together visually.
 AC_ARG_WITH(x-toolkit,
-[  --with-x-toolkit=KIT    Use an X toolkit (KIT = lucid or athena)],
+[  --with-x-toolkit=KIT    use an X toolkit (KIT = yes/lucid/athena/motif/no)],
 [        case "${withval}" in
            y | ye | yes )      val=athena ;;
            n | no )            val=no  ;;
            l | lu | luc | luci | lucid )       val=lucid ;;
-           a | at | ath | athe | athena )      val=athena ;;
+           a | at | ath | athe | athen | athena )      val=athena ;;
+           m | mo | mot | moti | motif )       val=motif ;;
 dnl These don't currently work.
-dnl        m | mo | mot | moti | motif )       val=motif ;;
 dnl        o | op | ope | open | open- | open-l | open-lo \
 dnl            | open-loo | open-look )        val=open-look ;;
            * )
 dnl AC_MSG_ERROR([the \`--with-x-toolkit' option is supposed to have a value
 dnl which is \`yes', \`no', \`lucid', \`athena', \`motif' or \`open-look'.])
-AC_MSG_ERROR([the \`--with-x-toolkit' option is supposed to have a value
-which is \`yes', \`no', \`lucid', or \`athena'.
+AC_MSG_ERROR([\`--with-x-toolkit=$withval' is invalid\;
+this option's value should be \`yes', \`no', \`lucid', \`athena', or \`motif'.
 Currently, \`yes', \`athena' and \`lucid' are synonyms.])
            ;;
          esac
          with_x_toolkit=$val
 ])
-AC_ARG_WITH(gcc,
-[  --with-gcc              Use GCC to compile Emacs])
-dnl AC_ARG_ENABLE(single-tree,
-dnl [  --enable-single-tree    Create a directory tree at DIR which looks like:
-dnl                           .../DIR/bin/CONFIGNAME (emacs, etags, etc.)
-dnl                           .../DIR/bin/CONFIGNAME/etc (movemail, etc.)
-dnl                           .../DIR/common/lisp  (emacs' lisp files)
-dnl                           .../DIR/common/site-lisp (local lisp files)
-dnl                           .../DIR/common/lib (DOC, TUTORIAL, etc.)
-dnl                           .../DIR/common/lock (lockfiles)])
+AC_ARG_WITH(xpm,
+[  --with-xpm              use -lXpm for displaying XPM images])
+AC_ARG_WITH(jpeg,
+[  --with-jpeg             use -ljpeg for displaying JPEG images])
+AC_ARG_WITH(tiff,
+[  --with-tiff             use -ltiff for displaying TIFF images])
+AC_ARG_WITH(gif,
+[  --with-gif              use -lungif for displaying GIF images])
+AC_ARG_WITH(png,
+[  --with-png              use -lpng for displaying PNG images])
+AC_ARG_WITH(toolkit-scroll-bars,
+[  --with-toolkit-scroll-bars  use Motif or Xaw3d scroll bars])
 
 #### 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.
+#### give you automounter prefixes, which can go away.  We do all this
+#### so Emacs can find its files when run uninstalled.
 case "${srcdir}" in
   /* ) ;;
   . )
     ## We may be able to use the $PWD environment variable to make this
     ## absolute.  But sometimes PWD is inaccurate.
+    ## Make sure CDPATH doesn't affect cd (in case PWD is relative).
+    unset CDPATH
     if test "${PWD}" != "" && test "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`"  ;
     then
       srcdir="$PWD"
@@ -80,13 +110,16 @@ if test `pwd` != `(cd ${srcdir} && pwd)` \
    now do \`make distclean' in ${srcdir},
    and then run $0 again.])
 
+changequote(, )dnl
   extrasub='/^VPATH[    ]*=/c\
+changequote([, ])dnl
 vpath %.c $(srcdir)\
 vpath %.h $(srcdir)\
 vpath %.y $(srcdir)\
 vpath %.l $(srcdir)\
 vpath %.s $(srcdir)\
-vpath %.in $(srcdir)'
+vpath %.in $(srcdir)\
+vpath %.texi $(srcdir)'
 fi
 
 #### Given the configuration name, set machfile and opsysfile to the
@@ -130,13 +163,57 @@ case "${canonical}" in
   *-*-netbsd* )
     opsys=netbsd
     case "${canonical}" in
-      i[345]86-*-netbsd*) machine=intel386 ;;
+      alpha*-*-netbsd*)        machine=alpha ;;
+      i[3456]86-*-netbsd*) machine=intel386 ;;
       m68k-*-netbsd*)
                        # This is somewhat bogus.
                        machine=hp9000s300 ;;
+      powerpc-apple-netbsd*) machine=macppc ;;
       mips-*-netbsd*)  machine=pmax ;;
       ns32k-*-netbsd*) machine=ns32000 ;;
       sparc-*-netbsd*) machine=sparc ;;
+      vax-*-netbsd*)   machine=vax ;;
+    esac
+  ;;
+
+  ## OpenBSD ports
+  *-*-openbsd* )
+    opsys=openbsd
+    case "${canonical}" in
+      alpha*-*-openbsd*)       machine=alpha ;;
+      i386-*-openbsd*) machine=intel386 ;;
+      m68k-*-openbsd*)  machine=hp9000s300 ;;
+      mipsel-*-openbsd*) machine=pmax ;;
+      ns32k-*-openbsd*)        machine=ns32000 ;;
+      sparc-*-openbsd*)        machine=sparc ;;
+      vax-*-openbsd*)  machine=vax ;;
+    esac
+  ;;
+
+  ## Acorn RISCiX:
+  arm-acorn-riscix1.1* )
+    machine=acorn opsys=riscix1-1
+  ;;
+  arm-acorn-riscix1.2* | arm-acorn-riscix )
+    ## This name is riscix12 instead of riscix1.2
+    ## to avoid a file name conflict on MSDOS.
+    machine=acorn opsys=riscix12
+  ;;
+
+  ## BSDI ports
+  *-*-bsdi* )
+    opsys=bsdi
+    case "${canonical}" in
+      i[345]86-*-bsdi*) machine=intel386 ;;
+      sparc-*-bsdi*)  machine=sparc ;;
+      powerpc-*-bsdi*)  machine=powerpc ;;
+    esac
+    case "${canonical}" in
+      *-*-bsd386* | *-*-bsdi1* )       opsys=bsd386 ;;
+      *-*-bsdi2.0* )           opsys=bsdos2 ;;
+      *-*-bsdi2* )             opsys=bsdos2-1 ;;
+      *-*-bsdi3* )             opsys=bsdos3 ;;
+      *-*-bsdi4* )             opsys=bsdos4 ;;
     esac
   ;;
 
@@ -153,19 +230,31 @@ case "${canonical}" in
     machine=alliant-2800 opsys=bsd4-3
   ;;
 
+  ## Alpha (DEC) machines.
+  alpha*-dec-osf* )
+    machine=alpha opsys=osf1
+    # This is needed to find X11R6.1 libraries for certain tests.
+    NON_GCC_LINK_TEST_OPTIONS=-Wl,-rpath,/usr/X11R6/lib
+    GCC_LINK_TEST_OPTIONS=-Wl,-rpath,/usr/X11R6/lib
+  ;;
+
+  alpha*-*-linux-gnu* )
+    machine=alpha opsys=gnu-linux
+  ;;
+
   ## 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
+  ## Apollo, Domain/OS
+  m68*-apollo-* )
+    machine=apollo opsys=bsd4-3
   ;;
 
   ## AT&T 3b2, 3b5, 3b15, 3b20
@@ -215,12 +304,12 @@ case "${canonical}" in
   ## Convex
   *-convex-bsd* | *-convex-convexos* )
     machine=convex opsys=bsd4-3
-    ## Prevents suprious white space in makefiles - d.m.cooke@larc.nasa.gov
+    ## Prevents spurious white space in makefiles - d.m.cooke@larc.nasa.gov
     NON_GNU_CPP="cc -E -P"
   ;;
 
   ## Cubix QBx/386
-  i[345]86-cubix-sysv* )
+  i[3456]86-cubix-sysv* )
     machine=intel386 opsys=usg5-3
   ;;
 
@@ -230,8 +319,18 @@ case "${canonical}" in
   ;;
 
   ## Data General AViiON Machines
+  ## DG changed naming conventions with the release of 5.4.4.10, they
+  ## dropped the initial 5.4 but left the intervening R.  Because of the
+  ## R this shouldn't conflict with older versions of the OS (which I
+  ## think were named like dgux4.*). In addition, DG new AViiONs series
+  ## uses either Motorola M88k or Intel Pentium CPUs.
+  m88k-dg-dguxR4.* | m88k-dg-dgux4* )
+    machine=aviion opsys=dgux4
+  ;;
   m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* )
-    machine=aviion opsys=dgux5-4r3
+    ## This name is dgux5-4-3 instead of dgux5-4r3
+    ## to avoid a file name conflict on MSDOS.
+    machine=aviion opsys=dgux5-4-3
   ;;
   m88k-dg-dgux5.4R2* | m88k-dg-dgux5.4.2* )
     machine=aviion opsys=dgux5-4r2
@@ -240,22 +339,39 @@ case "${canonical}" in
     machine=aviion opsys=dgux
   ;;
 
+  ## Data General AViiON Intel (x86) Machines
+  ## Exists from 5.4.3 (current i586-dg-dguxR4.11)
+  ## Ehud Karni, 1998-may-30, ehud@unix.simonwiesel.co.il
+  i[345]86-dg-dguxR4* )
+    machine=aviion-intel opsys=dgux4
+  ;;
+
   ## 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* )
+  mips-dec-ultrix4.[12]* | mips-dec-bsd* )
     machine=pmax opsys=bsd4-3
   ;;
+  mips-dec-ultrix* )
+    machine=pmax opsys=ultrix4-3
+  ;;
   mips-dec-osf* )
     machine=pmax opsys=osf1
   ;;
+  mips-dec-mach_bsd4.3* )
+    machine=pmax opsys=mach-bsd4-3
+  ;;
 
   ## Motorola Delta machines
   m68k-motorola-sysv* | m68000-motorola-sysv* )
     machine=delta opsys=usg5-3
     if test -z "`type gnucc | grep 'not found'`"
-    then CC=gnucc
+    then
+      if test -s /etc/167config
+      then CC="gnucc -m68040"
+      else CC="gnucc -m68881"
+      fi
     else
       if test -z "`type gcc | grep 'not found'`"
       then CC=gcc
@@ -264,7 +380,11 @@ case "${canonical}" in
     fi
   ;;
   m88k-motorola-sysv4* )
-    machine=delta88k opsys=usg5-4
+    # jbotte@bnr.ca says that UNIX_System_V <hostName> 4.0 R40V4.3 m88k mc88110
+    # needs POSIX_SIGNALS and therefore needs usg5-4-2.
+    # I hope there are not other 4.0 versions for this machine
+    # which really need usg5-4 instead.
+    machine=delta88k opsys=usg5-4-2
   ;;
   m88k-motorola-sysv* | m88k-motorola-m88kbcs* )
     machine=delta88k opsys=usg5-3
@@ -309,12 +429,21 @@ case "${canonical}" in
        [56].[0-9] ) machine=nh4000 opsys=cxux ;;
        [7].[0-9] ) machine=nh4000 opsys=cxux7 ;;
     esac
+    NON_GNU_CPP="/lib/cpp"
   ;;
   ## Harris ecx or gcx running CX/UX (Series 1200, Series 3000)
   m68k-harris-cxux* )
     machine=nh3000 opsys=cxux
   ;;
-
+  ## Harris power pc NightHawk running Power UNIX (Series 6000)
+  powerpc-harris-powerunix )
+    machine=nh6000 opsys=powerunix
+    NON_GNU_CPP="cc -Xo -E -P"
+  ;;
+  ## SR2001/SR2201 running HI-UX/MPP
+  hppa1.1-hitachi-hiuxmpp* )
+    machine=sr2k opsys=hiuxmpp
+  ;;
   ## Honeywell XPS100
   xps*-honeywell-sysv* )
     machine=xps100 opsys=usg5-2
@@ -324,7 +453,7 @@ case "${canonical}" in
   m68*-hp-bsd* )
     machine=hp9000s300 opsys=bsd4-3
   ;;
-  ## HP/UX 7, 8 and 9 are supported on these machines.
+  ## HP/UX 7, 8, 9, and 10 are supported on these machines.
   m68*-hp-hpux* )
     case "`uname -r`" in
       ## Someone's system reports A.B8.05 for this.
@@ -332,6 +461,7 @@ case "${canonical}" in
       *.B8.* ) machine=hp9000s300 opsys=hpux8 ;;
       *.08.* ) machine=hp9000s300 opsys=hpux8 ;;
       *.09.* ) machine=hp9000s300 opsys=hpux9 ;;
+      *.1[0-9].* ) machine=hp9000s300 opsys=hpux9shr ;;
       *) machine=hp9000s300 opsys=hpux ;;
     esac
   ;;
@@ -349,6 +479,9 @@ case "${canonical}" in
   hppa*-hp-hpux9* )
     machine=hp800 opsys=hpux9
   ;;
+  hppa*-hp-hpux1[0-9]* )
+    machine=hp800 opsys=hpux10
+  ;;
 
   ## HP 9000 series 700 and 800, running HP/UX
   hppa*-hp-hpux* )
@@ -359,9 +492,12 @@ case "${canonical}" in
       *.B8.* ) machine=hp800 opsys=hpux8 ;;
       *.08.* ) machine=hp800 opsys=hpux8 ;;
       *.09.* ) machine=hp800 opsys=hpux9 ;;
-      *) machine=hp800 opsys=hpux ;;
+      *) machine=hp800 opsys=hpux10 ;;
     esac
   ;;
+  hppa*-*-nextstep* )
+    machine=hp800 opsys=nextstep
+  ;;
 
   ## Orion machines
   orion-orion-bsd* )
@@ -372,10 +508,10 @@ case "${canonical}" in
   ;;
 
   ## IBM machines
-  i[345]86-ibm-aix1.1* )
+  i[3456]86-ibm-aix1.1* )
     machine=ibmps2-aix opsys=usg5-2-2
   ;;
-  i[345]86-ibm-aix1.[23]* | i[345]86-ibm-aix* )
+  i[3456]86-ibm-aix1.[23]* | i[3456]86-ibm-aix* )
     machine=ibmps2-aix opsys=usg5-3
   ;;
   i370-ibm-aix*)
@@ -387,18 +523,30 @@ case "${canonical}" in
   rs6000-ibm-aix3.2.5 | powerpc-ibm-aix3.2.5 )
     machine=ibmrs6000 opsys=aix3-2-5
   ;;
+  rs6000-ibm-aix4.1* | powerpc-ibm-aix4.1*  )
+    machine=ibmrs6000 opsys=aix4-1
+  ;;
+  rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2*  )
+    machine=ibmrs6000 opsys=aix4-2
+  ;;
+  rs6000-ibm-aix4.0* | powerpc-ibm-aix4.0*  )
+    machine=ibmrs6000 opsys=aix4
+  ;;
+  rs6000-ibm-aix4* | powerpc-ibm-aix4*  )
+    machine=ibmrs6000 opsys=aix4-1
+  ;;
   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
   ;;
@@ -421,24 +569,47 @@ case "${canonical}" in
   ;;
 
   ## Intel 386 machines where we do care about the manufacturer
-  i[345]86-intsys-sysv* )
+  i[3456]86-intsys-sysv* )
     machine=is386 opsys=usg5-2-2
   ;;
 
   ## Prime EXL
-  i[345]86-prime-sysv* )
+  i[3456]86-prime-sysv* )
     machine=i386 opsys=usg5-3
   ;;
 
-  ## Sequent Symmetry
-  i[345]86-sequent-bsd* )
+  ## Sequent Symmetry running Dynix
+  i[3456]86-sequent-bsd* )
     machine=symmetry opsys=bsd4-3
   ;;
 
+  ## Sequent Symmetry running ptx 4, which is a modified SVR4.
+  i[3456]86-sequent-ptx4* | i[3456]86-sequent-sysv4* )
+    machine=sequent-ptx opsys=ptx4
+    NON_GNU_CPP=/lib/cpp
+  ;;
+
+  ## Sequent Symmetry running DYNIX/ptx
+  ## Use the old cpp rather than the newer ANSI one.
+  i[3456]86-sequent-ptx* )
+    machine=sequent-ptx opsys=ptx
+    NON_GNU_CPP="/lib/cpp"
+  ;;
+
+  ## ncr machine running svr4.3.
+  i[3456]86-ncr-sysv4.3 )
+    machine=ncr386 opsys=usg5-4-3
+  ;;
+
   ## 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
+  i[3456]86-ncr-sysv* )
+    machine=ncr386 opsys=usg5-4-2
+  ;;
+
+  ## Intel Paragon OSF/1
+  i860-intel-osf1* )
+    machine=paragon opsys=osf1 NON_GNU_CPP=/usr/mach/lib/cpp
   ;;
 
   ## Intel 860
@@ -478,6 +649,11 @@ case "${canonical}" in
     NON_GNU_CC="cc -systype bsd43"
     NON_GNU_CPP="cc -systype bsd43 -E"
   ;;
+  mips-mips-riscos5* )
+    machine=mips4 opsys=riscos5
+    NON_GNU_CC="cc -systype bsd43"
+    NON_GNU_CPP="cc -systype bsd43 -E"
+  ;;
   mips-mips-bsd* )
     machine=mips opsys=bsd4-3
   ;;
@@ -486,8 +662,8 @@ case "${canonical}" in
   ;;
 
   ## NeXT
-  m68*-next-* | i[345]86-next-* )
-    machine=next opsys=mach2
+  m68*-next-* | m68k-*-nextstep* )
+    machine=m68k opsys=nextstep
   ;;
 
   ## The complete machine from National Semiconductor
@@ -503,6 +679,11 @@ case "${canonical}" in
     machine=tower32v3 opsys=usg5-3
   ;;
 
+  ## NEC EWS4800
+  mips-nec-sysv4*)
+  machine=ews4800 opsys=ux4800
+  ;;
+
   ## Nixdorf Targon 31
   m68*-nixdorf-sysv* )
     machine=targon31 opsys=usg5-2-2
@@ -518,6 +699,12 @@ case "${canonical}" in
     machine=plexus opsys=usg5-2
   ;;
 
+  ## PowerPC reference platform
+  powerpcle-*-solaris2* )
+    machine=prep
+    opsys=sol2-5
+  ;;
+
   ## 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.
@@ -534,7 +721,7 @@ case "${canonical}" in
   ;;
 
   ## Siemens Nixdorf
-  mips-siemens-sysv* )
+  mips-siemens-sysv* | mips-sni-sysv*)
     machine=mips-siemens opsys=usg5-4
     NON_GNU_CC=/usr/ccs/bin/cc
     NON_GNU_CPP=/usr/ccs/lib/cpp
@@ -552,11 +739,24 @@ case "${canonical}" in
   mips-sgi-irix3* )
     machine=iris4d opsys=irix3-3
   ;;
-  mips-sgi-irix5* )
+  mips-sgi-irix4* )
+    machine=iris4d opsys=irix4-0
+  ;;
+  mips-sgi-irix6.5 )
+    machine=iris4d opsys=irix6-5
+    NON_GNU_CPP=/lib/cpp
+    NON_GCC_TEST_OPTIONS="-n32 -G0"
+  ;;
+  mips-sgi-irix6* )
+    machine=iris4d opsys=irix6-0
+    NON_GNU_CPP=/lib/cpp
+    NON_GCC_TEST_OPTIONS=-32
+  ;;
+  mips-sgi-irix5.[01]* )
     machine=iris4d opsys=irix5-0
   ;;
-  mips-sgi-irix4* | mips-sgi-irix* )
-    machine=iris4d opsys=irix4-0
+  mips-sgi-irix5* | mips-sgi-irix* )
+    machine=iris4d opsys=irix5-2
   ;;
 
   ## SONY machines
@@ -566,13 +766,16 @@ case "${canonical}" in
   m68*-sony-bsd4.3* )
     machine=news opsys=bsd4-3
   ;;
-  m68*-sony-newsos3*)
+  m68*-sony-newsos3* | m68*-sony-news3*)
     machine=news opsys=bsd4-3
   ;;
-  mips-sony-bsd* | mips-sony-newsos4* )
+  mips-sony-bsd* | mips-sony-newsos4* | mips-sony-news4*)
     machine=news-risc opsys=bsd4-3
   ;;
-  mips-sony-newsos* )
+  mips-sony-newsos6* )
+    machine=news-r6 opsys=newsos6
+  ;;
+  mips-sony-news* )
     machine=news-risc opsys=newsos5
   ;;
 
@@ -582,26 +785,42 @@ case "${canonical}" in
   ;;
 
   ## Suns
-  *-sun-sunos* | *-sun-bsd* | *-sun-solaris* | i[345]86-*-solaris2* | i[345]86-*-sunos5* )
+  sparc-*-linux-gnu* | sparc64-*-linux-gnu* )
+    machine=sparc opsys=gnu-linux
+  ;;
+
+  *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \
+    | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* | powerpc*-*-solaris2* \
+    | rs6000-*-solaris2*)
     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 ;;
+      i[3456]86-sun-sunos[34]* )       machine=sun386 ;;
+      i[3456]86-*-* )     machine=intel386 ;;
+      powerpcle* )      machine=powerpcle ;;
+      powerpc* | rs6000* )  machine=ibmrs6000 ;;
       sparc* )         machine=sparc ;;
       * )              unported=yes ;;
     esac
     case "${canonical}" in
       ## The Sun386 didn't get past 4.0.
-      i[345]86-*-sunos4          ) opsys=sunos4-0 ;;
+      i[3456]86-*-sunos4         ) opsys=sunos4-0 ;;
       *-sunos4.0*        ) opsys=sunos4-0 ;;
-      *-sunos4.1.3*      ) opsys=sunos4-1-3
+      *-sunos4.1.[3-9]*noshare )
+               ## This name is sunos413 instead of sunos4-1-3
+               ## to avoid a file name conflict on MSDOS.
+               opsys=sunos413
+               NON_GNU_CPP=/usr/lib/cpp
                NON_GCC_TEST_OPTIONS=-Bstatic
                GCC_TEST_OPTIONS=-static
                ;;
-      *-sunos4shr*       ) opsys=sunos4shr ;;
-      *-sunos4* | *-sunos ) opsys=sunos4-1
+      *-sunos4.1.[3-9]* | *-sunos4shr*)
+               opsys=sunos4shr
+               NON_GNU_CPP=/usr/lib/cpp
+               ;;
+      *-sunos4* | *-sunos )
+               opsys=sunos4-1
                NON_GCC_TEST_OPTIONS=-Bstatic
                GCC_TEST_OPTIONS=-static
                ;;
@@ -612,13 +831,33 @@ case "${canonical}" in
       *-sunos5.4* | *-solaris2.4* )
                opsys=sol2-4
                NON_GNU_CPP=/usr/ccs/lib/cpp
+               RANLIB="ar -ts"
+               ;;
+      *-sunos5.5* | *-solaris2.5* )
+               opsys=sol2-5
+               NON_GNU_CPP=/usr/ccs/lib/cpp
+               RANLIB="ar -ts"
                ;;
       *-sunos5* | *-solaris* )
-               opsys=sol2
+               opsys=sol2-5
                NON_GNU_CPP=/usr/ccs/lib/cpp
                ;;
       *                          ) opsys=bsd4-2   ;;
     esac
+    ## Watch out for a compiler that we know will not work.
+    case "${canonical}" in
+     *-solaris* | *-sunos5* )
+               if [ "x$CC" = x/usr/ucb/cc ]; then
+                 ## /usr/ucb/cc doesn't work;
+                 ## we should find some other compiler that does work.
+                 unset CC
+               fi
+               ;;
+      *) ;;
+    esac
+  ;;
+  sparc-*-nextstep* )
+    machine=sparc opsys=nextstep
   ;;
 
   ## Tadpole 68k
@@ -659,7 +898,7 @@ case "${canonical}" in
   titan-titan-sysv* )
     machine=titan opsys=usg5-3
   ;;
-  
+
   ## Ustation E30 (SS5E)
   m68*-unisys-uniplus* )
     machine=ustation opsystem=unipl5-2
@@ -672,7 +911,6 @@ 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 ;;
@@ -693,26 +931,58 @@ case "${canonical}" in
   ;;
 
   ## Intel 386 machines where we don't care about the manufacturer
-  i[345]86-*-* )
+  i[3456]86-*-* )
     machine=intel386
     case "${canonical}" in
       *-isc1.* | *-isc2.[01]* )        opsys=386-ix ;;
       *-isc2.2* )              opsys=isc2-2 ;;
       *-isc4.0* )              opsys=isc4-0 ;;
+      *-isc4.* )               opsys=isc4-1
+                               GCC_TEST_OPTIONS=-posix
+                               NON_GCC_TEST_OPTIONS=-Xp
+                               ;;
       *-isc* )                 opsys=isc3-0 ;;
       *-esix5* )               opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;;
       *-esix* )                        opsys=esix ;;
       *-xenix* )               opsys=xenix ;;
-      *-linux* )               opsys=linux ;;
+      *-linux-gnu* )           opsys=gnu-linux ;;
       *-sco3.2v4* )            opsys=sco4 ; NON_GNU_CPP=/lib/cpp  ;;
-      *-bsd386* | *-bsdi* )    opsys=bsd386 ;;
+      *-sco3.2v5* )            opsys=sco5 
+                               NON_GNU_CPP=/lib/cpp
+                               # Prevent -belf from being passed to $CPP.
+                               # /lib/cpp does not accept it.
+                               OVERRIDE_CPPFLAGS=" "
+                               ;;
+      *-sysv4.2uw* )           opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
       *-386bsd* )              opsys=386bsd ;;
       *-freebsd* )             opsys=freebsd ;;
-      *-nextstep* )             opsys=mach2 ;;
+      *-nextstep* )             opsys=nextstep ;;
       ## Otherwise, we'll fall through to the generic opsys code at the bottom.
     esac
   ;;
 
+  ## m68k Linux-based GNU system
+  m68k-*-linux-gnu* )
+    machine=m68k opsys=gnu-linux
+  ;;
+
+  ## Mips Linux-based GNU system
+  mips-*-linux-gnu* )
+    machine=mips opsys=gnu-linux
+  ;;
+
+  ## UXP/DS
+  sparc-fujitsu-sysv4* )
+    machine=sparc opsys=uxpds
+    NON_GNU_CPP=/usr/ccs/lib/cpp
+    RANLIB="ar -ts"
+  ;;
+
+  ## UXP/V
+  f301-fujitsu-uxpv4.1)
+    machine=f301 opsys=uxpv
+  ;;
+
   * )
     unported=yes
   ;;
@@ -733,18 +1003,31 @@ if test x"${opsys}" = x; then
     *-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 )
+    *-sysv3* | *-sysvr3* )             opsys=usg5-3 ;;
+    *-sysv4.2uw* )                     opsys=unixware ;;
+    *-sysv4.1* | *-sysvr4.1* )
        NON_GNU_CPP=/usr/lib/cpp
        opsys=usg5-4 ;;
-    *-sysv4.2 | *-sysvr4.2 )           opsys=usg5-4-2 ;;
+    *-sysv4.[2-9]* | *-sysvr4.[2-9]* )
+       if [ x$NON_GNU_CPP = x ]; then
+         if [ -f /usr/ccs/lib/cpp ]; then
+           NON_GNU_CPP=/usr/ccs/lib/cpp
+         else
+           NON_GNU_CPP=/lib/cpp
+         fi
+       fi
+       opsys=usg5-4-2 ;;
+    *-sysv4* | *-sysvr4* )             opsys=usg5-4 ;;
     * )
       unported=yes
     ;;
   esac
 fi
 
+if test "x$RANLIB" = x; then
+  RANLIB=ranlib
+fi
+
 changequote([, ])dnl
 
 if test $unported = yes; then
@@ -759,9 +1042,12 @@ opsysfile="s/${opsys}.h"
 #### Choose a compiler.
 test -n "$CC" && cc_specified=yes
 
+# Save the value of CFLAGS that the user specified.
+SPECIFIED_CFLAGS="$CFLAGS"
+
 case ${with_gcc} in
   "yes" ) CC="gcc" GCC=yes ;;
-  "no"  ) test -z "$CC" && CC=cc ;;
+  "no"  ) : ${CC=cc} ;;
   * ) AC_PROG_CC
 esac
 
@@ -790,69 +1076,156 @@ fi
 if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
 then
   CC="$CC $GCC_TEST_OPTIONS"
-fi  
+fi
 
 if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
 then
   CC="$CC $NON_GCC_TEST_OPTIONS"
-fi  
+fi
+
+if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x
+then
+  ac_link="$ac_link $GCC_LINK_TEST_OPTIONS"
+fi
+
+if test x$GCC = x && test "x$NON_GCC_LINK_TEST_OPTIONS" != x
+then
+  ac_link="$ac_link $NON_GCC_LINK_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_LN_S
 AC_PROG_CPP
 AC_PROG_INSTALL
 AC_PROG_YACC
 
+dnl checks for Unix variants
+AC_AIX
+
+# Sound support for GNU/Linux and the free BSDs.
+AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h)
+
 dnl checks for header files
-AC_HAVE_HEADERS(sys/timeb.h sys/time.h unistd.h)
-AC_STDC_HEADERS
-AC_TIME_WITH_SYS_TIME
-AC_SYS_SIGLIST_DECLARED
+AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h termcap.h)
+AC_HEADER_STDC
+AC_HEADER_TIME
+AC_DECL_SYS_SIGLIST
+
+dnl Some systems have utime.h but don't declare the struct anyplace.
+AC_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf,
+AC_TRY_COMPILE([#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;],
+  emacs_cv_struct_utimbuf=yes, emacs_cv_struct_utimbuf=no))
+if test $emacs_cv_struct_utimbuf = yes; then
+  AC_DEFINE(HAVE_STRUCT_UTIMBUF)
+fi
 
 dnl checks for typedefs
-AC_RETSIGTYPE
+AC_TYPE_SIGNAL
+
+AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval,
+AC_TRY_COMPILE([#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;],
+  emacs_cv_struct_timeval=yes, emacs_cv_struct_timeval=no))
+HAVE_TIMEVAL=$emacs_cv_struct_timeval
+if test $emacs_cv_struct_timeval = yes; then
+  AC_DEFINE(HAVE_TIMEVAL)
+fi
 
 dnl checks for structure members
 AC_STRUCT_TM
-AC_TIMEZONE
+AC_STRUCT_TIMEZONE
 
 dnl checks for compiler characteristics
-AC_CONST
+AC_C_CONST
 
 dnl check for Make feature
-AC_SET_MAKE
+AC_PROG_MAKE_SET
 
 dnl checks for operating system services
-AC_LONG_FILE_NAMES
-
-dnl other checks for UNIX variants
+AC_SYS_LONG_FILE_NAMES
 
 #### Choose a window system.
 
-AC_FIND_X
+AC_PATH_X
 if test "$no_x" = yes; then
   window_system=none
 else
   window_system=x11
 fi
 
-test "${x_libraries}" != NONE && LD_SWITCH_X_SITE="-L${x_libraries}"
-test "${x_libraries}" != NONE && LD_SWITCH_X_SITE_AUX="-R${x_libraries}"
-test "${x_includes}" != NONE && C_SWITCH_X_SITE="-I${x_includes}"
+if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
+  LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
+  LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
+  x_default_search_path=""
+  for x_library in `echo ${x_libraries} | sed -e "s/:/ /g"`; do
+    x_search_path="${x_library}/X11/%L/%T/%N%C%S:\
+${x_library}/X11/%L/%T/%N%C%S:${x_libary}/X11/%l/%T/%N%C%S:\
+${x_library}/X11/%T/%N%C%S:${x_library}/X11/%L/%T/%N%S:\
+${x_library}/X11/%l/%T/%N%S:${x_library}/X11/%T/%N%S"
+    if test x"${x_default_search_path}" = x; then
+      x_default_search_path=${x_search_path}
+    else
+      x_default_search_path="${x_search_path}:${x_default_search_path}"
+    fi
+  done
+fi
+if test "${x_includes}" != NONE && test -n "${x_includes}"; then
+  C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
+fi
+
+if test x"${x_includes}" = x; then
+  bitmapdir=/usr/include/X11/bitmaps
+else
+  # accumulate include directories that have X11 bitmap subdirectories
+  bmd_acc="dummyval"
+  for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
+    if test -d "${bmd}/X11/bitmaps"; then
+      bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
+    elif test -d "${bmd}/bitmaps"; then
+      bmd_acc="${bmd_acc}:${bmd}/bitmaps"
+    fi
+  done
+  if test ${bmd_acc} != "dummyval"; then
+    bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"`
+  fi
+fi
 
 case "${window_system}" in
   x11 )
     HAVE_X_WINDOWS=yes
     HAVE_X11=yes
     case "${with_x_toolkit}" in
-      athena | lucid ) USE_X_TOOLKIT=LUCID ;;  
-dnl      motif ) USE_X_TOOLKIT=MOTIF ;;        
-dnl      open-look ) USE_X_TOOLKIT=OPEN_LOOK ;;        
-      * ) USE_X_TOOLKIT=none ;;
+      athena | lucid ) USE_X_TOOLKIT=LUCID ;;
+      motif ) USE_X_TOOLKIT=MOTIF ;;
+dnl      open-look ) USE_X_TOOLKIT=OPEN_LOOK ;;
+      no ) USE_X_TOOLKIT=none ;;
+dnl If user did not say whether to use a toolkit,
+dnl make this decision later: use the toolkit if we have X11R5 or newer.
+      * ) USE_X_TOOLKIT=maybe ;;
     esac
   ;;
   none )
@@ -861,13 +1234,28 @@ dnl      open-look ) USE_X_TOOLKIT=OPEN_LOOK ;;
     USE_X_TOOLKIT=none
   ;;
 esac
-X_TOOLKIT_TYPE=$USE_X_TOOLKIT
 
 ### If we're using X11, we should use the X menu package.
-HAVE_X_MENU=no
+HAVE_MENUS=no
 case ${HAVE_X11} in
-  yes ) HAVE_X_MENU=yes ;;
+  yes ) HAVE_MENUS=yes ;;
 esac
+  
+if test "${opsys}" = "hpux9"; then
+  case "${x_libraries}" in
+    *X11R4* )
+      opsysfile="s/hpux9-x11r4.h"
+      ;;
+  esac
+fi
+
+if test "${opsys}" = "hpux9shr"; then
+  case "${x_libraries}" in
+    *X11R4* )
+      opsysfile="s/hpux9shxr4.h"
+      ;;
+  esac
+fi
 
 #### Extract some information from the operating system and machine files.
 
@@ -879,7 +1267,7 @@ AC_CHECKING([the machine- and system-dependent files to find out
 ### 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
+### GCC 2.5 on GNU/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
@@ -942,22 +1330,37 @@ configure___ system_malloc=no
 #define C_OPTIMIZE_SWITCH -O
 #endif
 
+#ifndef LD_SWITCH_MACHINE
+#define LD_SWITCH_MACHINE
+#endif
+
+#ifndef LD_SWITCH_SYSTEM
+#define LD_SWITCH_SYSTEM
+#endif
+
+#ifndef LD_SWITCH_X_SITE_AUX
+#define LD_SWITCH_X_SITE_AUX
+#endif  
+
+configure___ ld_switch_system=LD_SWITCH_SYSTEM
+configure___ ld_switch_machine=LD_SWITCH_MACHINE
+
 #ifdef THIS_IS_CONFIGURE
 
 /* Get the CFLAGS for tests in configure.  */
 #ifdef __GNUC__
-configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
+configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
 #else
-configure___ CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
+configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_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}'
+configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
 #else
-configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
+configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
 #endif
 
 #endif /* not THIS_IS_CONFIGURE */
@@ -969,7 +1372,7 @@ CPP=`eval "echo $CPP"`
 changequote(, )dnl
 eval `${CPP} -Isrc ${tempcname} \
        | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
-if test "x$CFLAGS" = x; then
+if test "x$SPECIFIED_CFLAGS" = x; then
   eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
         | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
 else
@@ -978,16 +1381,36 @@ fi
 changequote([, ])dnl
 rm ${tempcname}
 
+ac_link="$ac_link $ld_switch_machine $ld_switch_system"
+
 ### 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
+doug_lea_malloc=yes
+AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
+AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
+AC_CACHE_CHECK(whether __after_morecore_hook exists,
+              emacs_cv_var___after_morecore_hook,
+AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
+  emacs_cv_var___after_morecore_hook=yes,
+  emacs_cv_var___after_morecore_hook=no))
+if test $emacs_cv_var___after_morecore_hook = no; then
+  doug_lea_malloc=no
+fi
 if test "${system_malloc}" = "yes"; then
   GNU_MALLOC=no
   GNU_MALLOC_reason="
-  (The GNU allocators don't work with this system configuration.)"
+    (The GNU allocators don't work with this system configuration.)"
+fi
+if test "$doug_lea_malloc" = "yes" ; then
+  if test "$GNU_MALLOC" = yes ; then
+    GNU_MALLOC_reason="
+      (Using Doug Lea's new malloc from the GNU C Library.)"
+  fi
+  AC_DEFINE(DOUG_LEA_MALLOC)
 fi
 
 if test x"${REL_ALLOC}" = x; then
@@ -999,8 +1422,13 @@ LISP_FLOAT_TYPE=yes
 
 #### Add the libraries to LIBS and check for some functions.
 
-CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
-LIBS="$libsrc_libs"
+if test x"${OVERRIDE_CPPFLAGS}" != x; then
+  CPPFLAGS="${OVERRIDE_CPPFLAGS}"
+else
+  CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
+fi
+
+LIBS="$libsrc_libs $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.
@@ -1012,64 +1440,428 @@ dnl AC_CHECK_LIB(resolv, gethostbyname)
 dnl FIXME replace main with a function we actually want from this library.
 AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
 
-AC_MSG_CHECKING(for XFree86)
+AC_CHECK_LIB(pthreads, cma_open)
+
+AC_MSG_CHECKING(for XFree86 in /usr/X386)
 if test -d /usr/X386/include; then
-  AC_MSG_RESULT(yes)
   HAVE_XFREE386=yes
-  test -z "${C_SWITCH_X_SITE}" && C_SWITCH_X_SITE="-I/usr/X386/include"
+  : ${C_SWITCH_X_SITE="-I/usr/X386/include"}
 else
-  AC_MSG_RESULT(no)
+  HAVE_XFREE386=no
 fi
+AC_MSG_RESULT($HAVE_XFREE386)
 
-# We change CFLAGS temporarily so that C_SWITCH_X_SITE gets used
-# for the tests that follow.
+# Change CFLAGS temporarily so that C_SWITCH_X_SITE gets used
+# for the tests that follow.  We set it back to REAL_CFLAGS later on.
 
 if test "${HAVE_X11}" = "yes"; then
   DEFS="$C_SWITCH_X_SITE $DEFS"
-  LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS"
+  LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
+  LIBS="$LIBX $LIBS"
   CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
-  AC_HAVE_FUNCS(XrmSetDatabase XScreenResourceString \
+
+  # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests.
+  # This is handled by LD_SWITCH_X_SITE_AUX during the real build,
+  # but it's more convenient here to set LD_RUN_PATH
+  # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX.
+  if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
+    LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH
+    export LD_RUN_PATH
+  fi
+
+  if test "${opsys}" = "gnu-linux"; then
+    AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link)
+    AC_TRY_LINK([],
+     [XOpenDisplay ("foo");],
+     [xlinux_first_failure=no],
+     [xlinux_first_failure=yes])
+    if test "${xlinux_first_failure}" = "yes"; then
+      OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
+      OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
+      OLD_CPPFLAGS="$CPPFLAGS"
+      OLD_LIBS="$LIBS"
+      LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
+      C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
+      CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
+      LIBS="$LIBS -b i486-linuxaout"
+      AC_TRY_LINK([],
+       [XOpenDisplay ("foo");],
+       [xlinux_second_failure=no],
+       [xlinux_second_failure=yes])
+      if test "${xlinux_second_failure}" = "yes"; then
+       # If we get the same failure with -b, there is no use adding -b.
+       # So take it out.  This plays safe.
+       LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
+       C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
+       CPPFLAGS="$OLD_CPPFLAGS"
+       LIBS="$OLD_LIBS"
+        AC_MSG_RESULT(no)
+      else
+        AC_MSG_RESULT(yes)
+      fi
+    else
+      AC_MSG_RESULT(no)
+    fi
+  fi
+
+  AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
 XScreenNumberOfScreen XSetWMProtocols)
 fi
 
+if test "${window_system}" = "x11"; then
+  AC_MSG_CHECKING(X11 version 6)
+  AC_CACHE_VAL(emacs_cv_x11_version_6,
+  AC_TRY_LINK([#include <X11/Xlib.h>],
+[#if XlibSpecificationRelease < 6
+fail;
+#endif
+], emacs_cv_x11_version_6=yes, emacs_cv_x11_version_6=no))
+  if test $emacs_cv_x11_version_6 = yes; then
+    AC_MSG_RESULT(6 or newer)
+    AC_DEFINE(HAVE_X11R6)
+  else
+    AC_MSG_RESULT(before 6)
+  fi
+fi
+
+if test "${window_system}" = "x11"; then
+  AC_MSG_CHECKING(X11 version 5)
+  AC_CACHE_VAL(emacs_cv_x11_version_5,
+  AC_TRY_LINK([#include <X11/Xlib.h>],
+[#if XlibSpecificationRelease < 5
+fail;
+#endif
+], emacs_cv_x11_version_5=yes, emacs_cv_x11_version_5=no))
+  if test $emacs_cv_x11_version_5 = yes; then
+    AC_MSG_RESULT(5 or newer)
+    HAVE_X11R5=yes
+    AC_DEFINE(HAVE_X11R5)
+  else
+    HAVE_X11R5=no
+    AC_MSG_RESULT(before 5)
+  fi
+fi
+
+dnl Do not put whitespace before the #include statements below.
+dnl Older compilers (eg sunos4 cc) choke on it.
+if test x"${USE_X_TOOLKIT}" = xmaybe; then
+  if test x"${HAVE_X11R5}" = xyes; then
+    AC_MSG_CHECKING(X11 version 5 with Xaw)
+    AC_CACHE_VAL(emacs_cv_x11_version_5_with_xaw,
+    AC_TRY_LINK([
+#include <X11/Intrinsic.h>
+#include <X11/Xaw/Simple.h>],
+      [],
+      emacs_cv_x11_version_5_with_xaw=yes,
+      emacs_cv_x11_version_5_with_xaw=no))
+    if test $emacs_cv_x11_version_5_with_xaw = yes; then
+      AC_MSG_RESULT([5 or newer, with Xaw; use toolkit by default])
+      USE_X_TOOLKIT=LUCID
+    else
+      AC_MSG_RESULT(before 5 or no Xaw; do not use toolkit by default)
+      USE_X_TOOLKIT=none
+    fi
+  else
+    USE_X_TOOLKIT=none
+  fi
+fi
+
+X_TOOLKIT_TYPE=$USE_X_TOOLKIT
+
 if test "${USE_X_TOOLKIT}" != "none"; then
   AC_MSG_CHECKING(X11 toolkit version)
-  AC_COMPILE_CHECK(, [#include <X11/Intrinsic.h>],
+  AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
+  AC_TRY_LINK([#include <X11/Intrinsic.h>],
 [#if XtSpecificationRelease < 6
 fail;
 #endif
-], [AC_MSG_RESULT(6)
-    AC_DEFINE(HAVE_X11XTR6)],
-   [AC_MSG_RESULT(not 6)])
+], emacs_cv_x11_toolkit_version_6=yes, emacs_cv_x11_toolkit_version_6=no))
+  HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
+  if test $emacs_cv_x11_toolkit_version_6 = yes; then
+    AC_MSG_RESULT(6 or newer)
+    AC_DEFINE(HAVE_X11XTR6)
+  else
+    AC_MSG_RESULT(before 6)
+  fi
+
+dnl If using toolkit, check whether libXmu.a exists.
+dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link.
+  OLDLIBS="$LIBS"
+  if test x$HAVE_X11XTR6 = xyes; then
+    LIBS="-lXt -lSM -lICE $LIBS"
+  else
+    LIBS="-lXt $LIBS"
+  fi
+  AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
+  LIBS="$OLDLIBS"
+fi
+
+if test "${USE_X_TOOLKIT}" = "MOTIF"; then
+  AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1,
+  AC_TRY_COMPILE([#include <Xm/Xm.h>],
+    [#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
+int x = 5;
+#else
+Motif version prior to 2.1.
+#endif],
+    emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no))
+  HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1
+  if test $emacs_cv_motif_version_2_1 = yes; then
+    AC_DEFINE(HAVE_MOTIF_2_1)
+    AC_CHECK_LIB(Xp, XpCreateContext)
+  fi
+fi
+
+### Is -lXaw3d available?
+HAVE_XAW3D=no
+if test "${HAVE_X11}" = "yes"; then
+  if test "${USE_X_TOOLKIT}" != "none"; then
+    old_c_flags="${CFLAGS}"
+    CFLAGS="${LD_SWITCH_X_SITE}"
+    AC_CHECK_HEADER(X11/Xaw3d/Scrollbar.h,
+       AC_CHECK_LIB(Xaw3d, XawScrollbarSetThumb, HAVE_XAW3D=yes, , -lX11))
+    CFLAGS="${old_c_flags}"
+
+    if test "${HAVE_XAW3D}" = "yes"; then
+       AC_DEFINE(HAVE_XAW3D)
+    fi
+  fi
+fi
+  
+dnl Use toolkit scroll bars if configured for X toolkit and either
+dnl using Motif or Xaw3d is available, and unless
+dnl --with-toolkit-scroll-bars=no was specified.
+
+USE_TOOLKIT_SCROLL_BARS=no
+if test "${with_toolkit_scroll_bars}" != "no"; then
+  if test "${USE_X_TOOLKIT}" != "none"; then
+    if test "${USE_X_TOOLKIT}" = "MOTIF"; then
+      AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
+      HAVE_XAW3D=no
+      USE_TOOLKIT_SCROLL_BARS=yes
+    elif test "${HAVE_XAW3D}" = "yes"; then
+      AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
+      USE_TOOLKIT_SCROLL_BARS=yes
+    fi
+  fi
+fi
+
+### Use -lXpm if available, unless `--with-xpm=no'.
+HAVE_XPM=no
+if test "${HAVE_X11}" = "yes"; then
+  if test "${with_xpm}" != "no"; then
+    old_c_flags="${CFLAGS}"
+    CFLAGS="${LD_SWITCH_X_SITE}"
+    AC_CHECK_HEADER(X11/xpm.h,
+      AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11))
+    CFLAGS="${old_c_flags}"
+  fi
+
+  if test "${HAVE_XPM}" = "yes"; then
+    AC_DEFINE(HAVE_XPM)
+  fi
+fi
+  
+### Use -ljpeg if available, unless `--with-jpeg=no'.
+HAVE_JPEG=no
+if test "${HAVE_X11}" = "yes"; then
+  if test "${with_jpeg}" != "no"; then
+    old_c_flags="${CFLAGS}"
+    CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
+    AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes, , -lX11)
+    CFLAGS="${old_c_flags}"
+  fi
+
+  if test "${HAVE_JPEG}" = "yes"; then
+    AC_DEFINE(HAVE_JPEG)
+  fi
+fi
+  
+### Use -lpng if available, unless `--with-png=no'.
+HAVE_PNG=no
+if test "${HAVE_X11}" = "yes"; then
+  if test "${with_png}" != "no"; then
+    old_c_flags="${CFLAGS}"
+    CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
+    AC_CHECK_HEADER(png.h,
+      AC_CHECK_LIB(png, png_set_expand, HAVE_PNG=yes, , -lX11 -lz -lm))
+    CFLAGS="${old_c_flags}"
+  fi
+
+  if test "${HAVE_PNG}" = "yes"; then
+    AC_DEFINE(HAVE_PNG)
+  fi
+fi
+  
+### Use -ltiff if available, unless `--with-tiff=no'.
+HAVE_TIFF=no
+if test "${HAVE_X11}" = "yes"; then
+  if test "${with_tiff}" != "no"; then
+    old_c_flags="${CFLAGS}"
+    CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
+    AC_CHECK_HEADER(tiffio.h,
+      AC_CHECK_LIB(tiff, TIFFGetVersion, HAVE_TIFF=yes, , -lX11 -lm))
+    CFLAGS="${old_c_flags}"
+  fi
+
+  if test "${HAVE_TIFF}" = "yes"; then
+    AC_DEFINE(HAVE_TIFF)
+  fi
+fi
+  
+### Use -lgif if available, unless `--with-gif=no'.
+HAVE_GIF=no
+if test "${HAVE_X11}" = "yes"; then
+  if test "${with_gif}" != "no"; then
+    old_c_flags="${CFLAGS}"
+    CFLAGS="${LD_SWITCH_X_SITE} ${CFLAGS}"
+    AC_CHECK_HEADER(gif_lib.h,
+      AC_CHECK_LIB(ungif, DGifOpenFileName, HAVE_GIF=yes, , -lX11))
+    CFLAGS="${old_c_flags}"
+  fi
+
+  if test "${HAVE_GIF}" = "yes"; then
+    AC_DEFINE(HAVE_GIF)
+  fi
 fi
 
 # If netdb.h doesn't declare h_errno, we must declare it by hand.
-AC_MSG_CHECKING(whether netdb declarares h_errno)
-AC_COMPILE_CHECK(, [#include <netdb.h>],
-[int
-foo ()
+AC_CACHE_CHECK(whether netdb declares h_errno,
+              emacs_cv_netdb_declares_h_errno,
+AC_TRY_LINK([#include <netdb.h>],
+  [return h_errno;],
+  emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=no))
+if test $emacs_cv_netdb_declares_h_errno = yes; then
+  AC_DEFINE(HAVE_H_ERRNO)
+fi
+
+AC_FUNC_ALLOCA
+
+# fmod, logb, and frexp are found in -lm on most systems.
+# On HPUX 9.01, -lm does not contain logb, so check for sqrt.
+AC_CHECK_LIB(m, sqrt)
+
+# Check for mail-locking functions in a "mail" library
+AC_CHECK_LIB(mail, maillock)
+dnl Debian, at least:
+dnl AC_CHECK_LIB(lockfile, maillock, [AC_DEFINE(HAVE_LIBMAIL)])
+AC_CHECK_LIB(lockfile, maillock)
+# If we have the shared liblockfile, assume we must use it for mail
+# locking (e.g. Debian).  If we couldn't link against liblockfile
+# (no liblockfile.a installed), ensure that we don't need to.
+if test "$ac_cv_lib_lockfile_maillock" = no; then
+  dnl This works for files generally, not just executables.
+  dnl Should we look elsewhere for it?  Maybe examine /etc/ld.so.conf?
+  AC_CHECK_PROG(liblockfile, liblockfile.so, yes, no,
+                /usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH)
+  if test $ac_cv_prog_liblockfile = yes; then
+    AC_MSG_ERROR([Shared liblockfile found but can't link against it.
+This probably means that movemail could lose mail.
+There may be a \`development' package to install containing liblockfile.])
+  else AC_DEFINE(LIBMAIL, -llockfile)
+  fi
+  else :
+fi
+AC_CHECK_FUNCS(touchlock)
+AC_CHECK_HEADERS(maillock.h)
+
+AC_CHECK_FUNCS(gettimeofday gethostname getdomainname dup2 \
+rename closedir mkdir rmdir sysinfo \
+random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \
+strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
+utimes setrlimit setpgid getcwd shutdown strftime getaddrinfo)
+
+# Check this now, so that we will NOT find the above functions in ncurses.
+# That is because we have not set up to link ncurses in lib-src.
+# It's better to believe a function is not available
+# than to expect to find it in ncurses.
+AC_CHECK_LIB(ncurses, tparm)
+
+# Solaris requires -lintl if you want strerror (which calls dgettext)
+# to return localized messages.
+AC_CHECK_LIB(intl, dgettext)
+
+AC_MSG_CHECKING(whether localtime caches TZ)
+AC_CACHE_VAL(emacs_cv_localtime_cache,
+[if test x$ac_cv_func_tzset = xyes; then
+AC_TRY_RUN([#include <time.h>
+#if STDC_HEADERS
+# include <stdlib.h>
+#endif
+extern char **environ;
+unset_TZ ()
 {
-  return h_errno;
+  char **from, **to;
+  for (to = from = environ; (*to = *from); from++)
+    if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
+      to++;
 }
-], [AC_MSG_RESULT(yes)
-    AC_DEFINE(HAVE_H_ERRNO)],
-   [AC_MSG_RESULT(no)])
-
-AC_ALLOCA
+char TZ_GMT0[] = "TZ=GMT0";
+char TZ_PST8[] = "TZ=PST8";
+main()
+{
+  time_t now = time ((time_t *) 0);
+  int hour_GMT0, hour_unset;
+  if (putenv (TZ_GMT0) != 0)
+    exit (1);
+  hour_GMT0 = localtime (&now)->tm_hour;
+  unset_TZ ();
+  hour_unset = localtime (&now)->tm_hour;
+  if (putenv (TZ_PST8) != 0)
+    exit (1);
+  if (localtime (&now)->tm_hour == hour_GMT0)
+    exit (1);
+  unset_TZ ();
+  if (localtime (&now)->tm_hour != hour_unset)
+    exit (1);
+  exit (0);
+}], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
+[# If we have tzset, assume the worst when cross-compiling.
+emacs_cv_localtime_cache=yes])
+else
+       # If we lack tzset, report that localtime does not cache TZ,
+       # since we can't invalidate the cache if we don't have tzset.
+       emacs_cv_localtime_cache=no
+fi])dnl
+AC_MSG_RESULT($emacs_cv_localtime_cache)
+if test $emacs_cv_localtime_cache = yes; then
+  AC_DEFINE(LOCALTIME_CACHE)
+fi
 
-# logb and frexp are found in -lm on most systems.
-AC_CHECK_LIB(m, logb)
-AC_HAVE_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \
-random lrand48 bcopy bcmp logb frexp fmod drem ftime res_init setsid strerror \
-fpathconf)
+if test "x$HAVE_TIMEVAL" = xyes; then
+AC_CACHE_CHECK(whether gettimeofday can accept two arguments,
+              emacs_cv_gettimeofday_two_arguments,
+AC_TRY_LINK([
+#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
+  ],
+  [
+  struct timeval time;
+  struct timezone dummy;
+  gettimeofday (&time, &dummy);
+],
+  emacs_cv_gettimeofday_two_arguments=yes,
+  emacs_cv_gettimeofday_two_arguments=no))
+  if test $emacs_cv_gettimeofday_two_arguments = no; then
+    AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)
+  fi
+fi
 
 ok_so_far=yes
-AC_FUNC_CHECK(socket, , ok_so_far=no)
+AC_CHECK_FUNC(socket, , ok_so_far=no)
 if test $ok_so_far = yes; then
-  AC_HEADER_CHECK(netinet/in.h, , ok_so_far=no)
+  AC_CHECK_HEADER(netinet/in.h, , ok_so_far=no)
 fi
 if test $ok_so_far = yes; then
-  AC_HEADER_CHECK(arpa/inet.h, , ok_so_far=no)
+  AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
 fi
 if test $ok_so_far = yes; then
   AC_DEFINE(HAVE_INET_SOCKETS)
@@ -1095,22 +1887,24 @@ fi
 ### 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(statedir)
-AC_SUBST(libdir)
+AC_SUBST(sharedstatedir)
+AC_SUBST(libexecdir)
 AC_SUBST(mandir)
 AC_SUBST(infodir)
 AC_SUBST(lispdir)
 AC_SUBST(locallisppath)
 AC_SUBST(lisppath)
+AC_SUBST(x_default_search_path)
 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)
@@ -1120,8 +1914,10 @@ AC_SUBST(CFLAGS)
 AC_SUBST(X_TOOLKIT_TYPE)
 AC_SUBST(machfile)
 AC_SUBST(opsysfile)
+AC_SUBST(RANLIB)
 
-AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "${configuration}")
+AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "${canonical}")
+AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}")
 AC_DEFINE_UNQUOTED(config_machfile,  "${machfile}")
 AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}")
 AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE})
@@ -1141,8 +1937,8 @@ fi
 if test "${HAVE_XFREE386}" = "yes" ; then
   AC_DEFINE(HAVE_XFREE386)
 fi
-if test "${HAVE_X_MENU}" = "yes" ; then
-  AC_DEFINE(HAVE_X_MENU)
+if test "${HAVE_MENUS}" = "yes" ; then
+  AC_DEFINE(HAVE_MENUS)
 fi
 if test "${GNU_MALLOC}" = "yes" ; then
   AC_DEFINE(GNU_MALLOC)
@@ -1154,30 +1950,8 @@ if test "${LISP_FLOAT_TYPE}" = "yes" ; then
   AC_DEFINE(LISP_FLOAT_TYPE)
 fi
 
-dnl # ====================== Developer's configuration =======================
-dnl 
-dnl # The following assignments make sense if you're running Emacs on a single
-dnl # machine, one version at a time, and  you want changes to the lisp and etc
-dnl # directories in the source tree to show up immediately in your working
-dnl # environment.  It saves a great deal of disk space by not duplicating the
-dnl # lisp and etc directories.
-dnl 
-dnl if test "$enable_single_tree" = "yes"; then
-dnl    bindir='${exec_prefix}/bin/${configuration}'
-dnl    datadir='${prefix}/common'
-dnl    statedir='${prefix}/common'
-dnl    libdir='${bindir}'
-dnl    lispdir='${prefix}/common/lisp'
-dnl    locallisppath='${prefix}/common/site-lisp'
-dnl    lockdir='${prefix}/common/lock'
-dnl    archlibdir='${libdir}/etc'
-dnl    etcdir='${prefix}/common/data'
-dnl    docdir='${prefix}/common/data'
-dnl fi
-
 #### Report on what we decided to do.
 echo "
-
 Configured for \`${canonical}'.
 
   Where should the build process find the source code?    ${srcdir}
@@ -1187,11 +1961,27 @@ Configured for \`${canonical}'.
   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}
+  What toolkit should Emacs use?                          ${USE_X_TOOLKIT}"
+
+if test -n "${x_includes}"; then
+echo "  Where do we find X Windows header files?                ${x_includes}"
+else
+echo "  Where do we find X Windows header files?                Standard dirs"
+fi
+if test -n "${x_libraries}"; then
+echo "  Where do we find X Windows libraries?                   ${x_libraries}"
+else
+echo "  Where do we find X Windows libraries?                   Standard dirs"
+fi
 
-"
+echo "  Does Emacs use -lXaw3d?                                 ${HAVE_XAW3D}"
+echo "  Does Emacs use -lXpm?                                   ${HAVE_XPM}"
+echo "  Does Emacs use -ljpeg?                                  ${HAVE_JPEG}"
+echo "  Does Emacs use -ltiff?                                  ${HAVE_TIFF}"
+echo "  Does Emacs use -lungif?                                 ${HAVE_GIF}"
+echo "  Does Emacs use -lpng?                                   ${HAVE_PNG}"
+echo "  Does Emacs use X toolkit scroll bars?                   ${USE_TOOLKIT_SCROLL_BARS}"
+echo
 
 # Remove any trailing slashes in these variables.
 changequote(, )dnl
@@ -1201,20 +1991,20 @@ test "${exec_prefix}" != NONE &&
   exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
 changequote([, ])dnl
 
-AC_OUTPUT(Makefile lib-src/Makefile.in oldXMenu/Makefile \
-       lwlib/Makefile src/Makefile.in, [
+AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \
+       man/Makefile lwlib/Makefile src/Makefile.c:src/Makefile.in \
+       leim/Makefile, [
 
 ### Make the necessary directories, if they don't exist.
-for dir in ./src ./lib-src ./cpp ./oldXMenu ./lwlib ./etc ; do
-  if test ! -d ${dir}; then
-    mkdir ${dir}
-  fi
+for dir in etc lisp ; do
+  test -d ${dir} || mkdir ${dir}
 done
 
-# Build src/Makefile from ${srcdir}/src/Makefile.in.  This must be done
-# after src/config.h is built, since we rely on that file.
+# Build src/Makefile from ${srcdir}/src/Makefile.c
+# and lib-src/Makefile from ${srcdir}/lib-src/Makefile.c
+# This must be done after src/config.h is built, since we rely on that file.
 
-changequote(,)dnl The horror, the horror.
+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
@@ -1225,16 +2015,19 @@ 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
+changequote([, ])dnl
+
+echo creating src/epaths.h
+make epaths-force
 
 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
+      < Makefile.c > junk1.c
   sed -e '1,/start of cpp stuff/d'\
       -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
-      < Makefile.in > junk.c
+      < Makefile.c > junk.c
   $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
       sed -e 's/^ /    /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
   cat junk1.c junk2.c > Makefile.new
@@ -1247,10 +2040,10 @@ 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
+      < Makefile.c > junk1.c
   sed -e '1,/start of cpp stuff/d'\
       -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
-      < Makefile.in > junk.c
+      < Makefile.c > junk.c
   $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c | \
       sed -e 's/^ /    /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
   cat junk1.c junk2.c > Makefile.new
@@ -1258,4 +2051,13 @@ echo creating src/Makefile
   chmod 444 Makefile.new
   mv -f Makefile.new Makefile
 )
+
+if test ! -f src/.gdbinit && test -f $top_srcdir/src/.gdbinit; then
+  echo creating src/.gdbinit
+  echo source $top_srcdir/src/.gdbinit > src/.gdbinit
+fi
+
+# This is how we know whether to re-run configure in certain cases.
+touch src/config.stamp
+
 ], [CPP="$CPP" CPPFLAGS="$CPPFLAGS"])