Unspecified location of chown for Linux (Linux doesn't put chown in /etc).
[bpt/emacs.git] / configure1.in
index 5218a22..eac31e2 100755 (executable)
@@ -2,26 +2,26 @@ dnl This is an autoconf script.
 dnl To rebuild the `configure' script from this, execute the command
 dnl    autoconf
 dnl in the directory containing this script.  You must have autoconf
-dnl version 1.4 or later.
+dnl version 1.8 or later.
 dnl
 dnl The following text appears in the resulting `configure' script,
 dnl explaining how to rebuild it.
 [#!/bin/sh
 #### Configuration script for GNU Emacs
-#### Copyright (C) 1992 Free Software Foundation, Inc.
+#### Copyright (C) 1992, 1994 Free Software Foundation, Inc.
 
 ### Don't edit this script!
 ### This script was automatically generated by the `autoconf' program
 ### from the file `./configure.in'.
 ### To rebuild it, execute the command
 ###    autoconf
-### in the this directory.  You must have autoconf version 1.4 or later.
+### in the this directory.  You must have autoconf version 1.7 or later.
 
 ### This file is part of GNU Emacs.
 
 ### GNU Emacs is free software; you can redistribute it and/or modify
 ### it under the terms of the GNU General Public License as published by
-### the Free Software Foundation; either version 1, or (at your option)
+### 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,
@@ -79,6 +79,15 @@ lisppath='${locallisppath}:${lispdir}'
 etcdir='${datadir}/emacs/${version}/etc'
 lockdir='${statedir}/emacs/lock'
 archlibdir='${libdir}/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
@@ -95,10 +104,12 @@ 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.
---x-includes=DIR       Search for X header files in DIR.
---x-libraries=DIR      Search for X libraries in DIR.
+--with-x-toolkit       Use an X toolkit.
+--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
@@ -185,6 +196,31 @@ Set it to either \`yes' or \`no'."
           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 ;;
+# These don't currently work.
+#          m | mo | mot | moti | motif )       val=motif ;;
+#          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', or \`athena'.
+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".
@@ -212,7 +248,7 @@ Set it to either \`yes' or \`no'."
               echo "${short_usage}") >&2
              exit 1
            fi
-            val="$1"; shift
+           val="$1"; shift
          fi
           srcdir="${val}"
        ;;
@@ -256,10 +292,16 @@ Set it to either \`yes' or \`no'."
          run_in_place=1
        ;;
 
+        ## Should this use the "single tree" configuration?
+       "single_tree" )
+          run_in_place=
+          single_tree=1
+       ;;
+
        ## Has the user specified one of the path options?
        prefix | exec_prefix | bindir | libdir | etcdir | datadir | \
        archlibdir | statedir | mandir | infodir | lispdir | lockdir | \
-       lisppath | locallisppath )
+       lisppath | locallisppath | docdir )
           ## If the value was omitted, get it from the next argument.
           if [ "${valomitted}" = "yes" ]; then
              if [ $# = 0 ]; then
@@ -390,16 +432,17 @@ if [ `pwd` != `(cd ${srcdir} && pwd)` ] \
    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
-  # We need a multi-line sed script, which cannot go in a makefile.
-  vpath_sed='-f vpath.sed'
-else
-  # Do the normal substitution for VPATH.  This will not crash non-GNU make.
-  vpath_sed=]'AC_QUOTE_SQUOTE(AC_QUOTE_SQUOTE('-e '\''s|^\(VPATH *=\).*$$|\1 ='\''"${srcdir}/${subdir}|"'))'[
+  extrasub='/^VPATH[    ]*=/c\
+vpath %.c $(srcdir)\
+vpath %.h $(srcdir)\
+vpath %.y $(srcdir)\
+vpath %.l $(srcdir)\
+vpath %.s $(srcdir)\
+vpath %.in $(srcdir)'
 fi
-] AC_SUBST(vpath_sed) [
 
 ### Make the necessary directories, if they don't exist.
-for dir in ./src ./lib-src ./cpp ./oldXMenu ./etc ; do
+for dir in ./src ./lib-src ./cpp ./oldXMenu ./lwlib ./etc ; do
   if [ ! -d ${dir} ]; then
     mkdir ${dir}
   fi
@@ -478,6 +521,11 @@ case "${canonical}" in
     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
@@ -523,6 +571,12 @@ case "${canonical}" in
   ;;
 
   ## Data General AViiON Machines
+  m88k-dg-dgux5.4R3* )
+    machine=aviion opsys=dgux5-4R3
+  ;;
+  m88k-dg-dgux5.4R2* )
+    machine=aviion opsys=dgux5-4R2
+  ;;
   m88k-dg-dgux* )
     machine=aviion opsys=dgux
   ;;
@@ -539,8 +593,16 @@ case "${canonical}" in
   ;;
 
   ## Motorola Delta machines
-  m68*-motorola-sysv* )
+  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
@@ -580,6 +642,20 @@ case "${canonical}" in
     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
@@ -606,13 +682,13 @@ case "${canonical}" in
 
   ## HP 9000 series 700 and 800, running HP/UX
   hppa*-hp-hpux7* )
-    machine=hp9000s800 opsys=hpux
+    machine=hp800 opsys=hpux
   ;;
   hppa*-hp-hpux8* )
-    machine=hp9000s800 opsys=hpux8
+    machine=hp800 opsys=hpux8
   ;;
   hppa*-hp-hpux9* )
-    machine=hp9000s800 opsys=hpux9
+    machine=hp800 opsys=hpux9
   ;;
 
   ## HP 9000 series 700 and 800, running HP/UX
@@ -621,10 +697,10 @@ case "${canonical}" in
     case "`uname -r`" in
       ## Someone's system reports A.B8.05 for this.
       ## I wonder what other possibilities there are.
-      *.B8.* ) machine=hp9000s800 opsys=hpux8 ;;
-      *.08.* ) machine=hp9000s800 opsys=hpux8 ;;
-      *.09.* ) machine=hp9000s800 opsys=hpux9 ;;
-      *) machine=hp9000s800 opsys=hpux ;;
+      *.B8.* ) machine=hp800 opsys=hpux8 ;;
+      *.08.* ) machine=hp800 opsys=hpux8 ;;
+      *.09.* ) machine=hp800 opsys=hpux9 ;;
+      *) machine=hp800 opsys=hpux ;;
     esac
   ;;
 
@@ -649,6 +725,9 @@ case "${canonical}" in
   rs6000-ibm-aix3.1* )
     machine=ibmrs6000 opsys=aix3-1
   ;;
+  rs6000-ibm-aix3.2.5)
+    machine=ibmrs6000 opsys=aix3-2-5
+  ;;
   rs6000-ibm-aix3.2* | rs6000-ibm-aix* )
     machine=ibmrs6000 opsys=aix3-2
   ;;
@@ -697,28 +776,15 @@ case "${canonical}" in
     machine=symmetry opsys=bsd4-3
   ;;
 
-  ## Intel 860
-  i860-*-sysvr4* )
-    machine=i860 opsys=usg5-4
+  ## Unspecified sysv on an ncr machine defaults to svr4.2.
+  ## (Plain usg5-4 doesn't turn on POSIX signals, which we need.)
+  i[34]86-ncr-sysv* )
+    machine=intel386 opsys=usg5-4-2
   ;;
 
-  ## 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
+  ## Intel 860
+  i860-*-sysv4* )
+    machine=i860 opsys=usg5-4
   ;;
 
   ## Masscomp machines
@@ -748,6 +814,8 @@ case "${canonical}" in
   ;;
   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
@@ -757,7 +825,7 @@ case "${canonical}" in
   ;;
 
   ## NeXT
-  m68*-next-mach* | m68*-next-bsd* )
+  m68*-next-* )
     machine=next opsys=mach2
   ;;
 
@@ -804,6 +872,32 @@ case "${canonical}" in
     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/bin/cc -E
+  ;;
+
+  ## 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
@@ -817,6 +911,9 @@ case "${canonical}" in
   mips-sony-bsd* )
     machine=news-risc opsys=bsd4-3
   ;;
+  mips-sony-newsos* )
+    machine=mips opsys=newsos5
+  ;;
 
   ## Stride
   m68*-stride-sysv* )
@@ -838,8 +935,16 @@ case "${canonical}" in
       i386-*-sunos4      ) opsys=sunos4-0 ;;
       *-sunos4.0*        ) opsys=sunos4-0 ;;
       *-sunos4.1.3*      ) opsys=sunos4-1-3 ;;
+      *-sunos4shr*       ) opsys=sunos4shr ;;
       *-sunos4* | *-sunos ) opsys=sunos4-1 ;;
-      *-sunos5* | *-solaris* ) opsys=sol2 ;;
+      *-sunos5.3* | *-solaris2.3* )
+               opsys=sol2-3
+               NON_GNU_CPP=/usr/ccs/lib/cpp
+               ;;
+      *-sunos5* | *-solaris* )
+               opsys=sol2
+               NON_GNU_CPP=/usr/ccs/lib/cpp
+               ;;
       *                          ) opsys=bsd4-2   ;;
     esac
   ;;
@@ -921,15 +1026,18 @@ case "${canonical}" in
     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 ;;
+      *-esix5* )               opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;;
       *-esix* )                        opsys=esix ;;
       *-xenix* )               opsys=xenix ;;
       *-linux* )               opsys=linux ;;
       *-sco3.2v4* )            opsys=sco4 ;;
       *-bsd386* )              opsys=bsd386 ;;
       *-386bsd* )              opsys=386bsd ;;
+      *-freebsd* )             opsys=freebsd ;;
       *-netbsd* )              opsys=netbsd ;;
+      *-nextstep* )             opsys=mach2 ;;
       ## Otherwise, we'll fall through to the generic opsys code at the bottom.
     esac
   ;;
@@ -955,6 +1063,9 @@ if [ x"${opsys}" = x ]; then
     *-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
@@ -974,17 +1085,46 @@ opsysfile="s/${opsys}.h"
 
 ]
 AC_PREPARE(lisp)
+ifdef([AC_LANG_C], AC_LANG_C)dnl
 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"  ) CC="cc"        ;;
+  "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
+
 #### 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.
@@ -998,9 +1138,17 @@ AC_PROG_YACC
 dnl checks for UNIX variants that set `DEFS'
 
 dnl checks for header files
-AC_HAVE_HEADERS(sys/timeb.h sys/time.h)
+AC_HAVE_HEADERS(sys/timeb.h sys/time.h unistd.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 checks for typedefs
 AC_RETSIGTYPE
@@ -1012,13 +1160,15 @@ 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 window system."
 
@@ -1029,15 +1179,28 @@ case "${with_x}" in
   ;;
   no )
     window_system=${window_system}none
-esac
-case "${with_x11}" in
-  yes )
-    window_system=${window_system}x11
   ;;
 esac
-case "${with_x10}" in
-  yes )
-    window_system=${window_system}x10
+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
 
@@ -1082,6 +1245,7 @@ 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}"
 
 # Avoid forcing the search of /usr/include before fixed include files.
@@ -1094,18 +1258,39 @@ case "${window_system}" in
     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
@@ -1138,8 +1323,12 @@ echo '
 #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
@@ -1175,9 +1364,9 @@ configure___ system_malloc=no
 #endif
 
 #ifdef __GNUC__
-configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH
+configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${CFLAGS}'
 #else
-configure___ CFLAGS=C_DEBUG_SWITCH
+configure___ CFLAGS=C_DEBUG_SWITCH '${CFLAGS}'
 #endif
 ' > ${tempcname}
 # The value of CPP is a quoted variable reference, so we need to do this
@@ -1210,12 +1399,15 @@ LISP_FLOAT_TYPE=yes
 #### Add the libraries to LIBS and check for some functions.
 
 ]
-DEFS="$c_switch_system $DEFS"
+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")
 
@@ -1228,14 +1420,17 @@ fi
 if test "${HAVE_X11}" = "yes"; then
   DEFS="$C_SWITCH_X_SITE $DEFS"
   LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS"
-  AC_HAVE_FUNCS(XrmSetDatabase XScreenResourceString XScreenNumberOfScreen)
+  AC_HAVE_FUNCS(XrmSetDatabase XScreenResourceString \
+XScreenNumberOfScreen XSetWMProtocols)
 fi
 
 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 bcopy logb frexp ftime res_init)
+AC_HAVE_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \
+random bcopy bcmp logb frexp fmod drem ftime res_init setsid strerror \
+fpathconf)
 
 ok_so_far=true
 AC_FUNC_CHECK(socket, , ok_so_far=)
@@ -1251,7 +1446,7 @@ fi
 [
 #### Find out which version of Emacs this is.
 version=`grep 'defconst[        ]*emacs-version' ${srcdir}/lisp/version.el \
-        | sed -e 's/^.*"\([0-9][0-9]*\.[0-9][0-9]*\)\..*$/\1/'`
+        | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`
 if [ x"${version}" = x ]; then
   echo "${progname}: can't find current emacs version in
        \`${srcdir}/lisp/version.el'." >&2
@@ -1264,12 +1459,11 @@ if [ -f /usr/lpp/X11/bin/smt.exp ]; then
   [
 fi
 
-
 #### Specify what sort of things we'll be editing into Makefile and config.h.
 ### Use configuration here uncanonicalized to avoid exceeding size limits.
 ]
-AC_SUBST(configuration)
 AC_SUBST(version)
+AC_SUBST(configuration)
 AC_SUBST(srcdir)
 AC_SUBST(prefix)
 AC_SUBST(exec_prefix)
@@ -1285,15 +1479,22 @@ AC_SUBST(lisppath)
 AC_SUBST(etcdir)
 AC_SUBST(lockdir)
 AC_SUBST(archlibdir)
+AC_SUBST(docdir)
 AC_SUBST(c_switch_system)
-AC_SUBST(libsrc_libs)
+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(CONFIGURATION,  "\"${configuration}\"")
 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})
 
@@ -1301,6 +1502,9 @@ 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
@@ -1330,10 +1534,11 @@ fi
 
 if [ "$run_in_place" = "1" ]; then
    lispdir='${srcdir}/lisp'
-   locallisppath='${srcdir}/site-lisp:${datadir}/emacs/site-lisp'
+   locallisppath='${srcdir}/site-lisp'
    etcdir='${srcdir}/etc'
    lockdir='${srcdir}/lock'
-   archlibdir='${srcdir}/lib-src'
+   archlibdir=`(cd lib-src && pwd)`
+   docdir=`(cd etc && pwd)`
    infodir='${srcdir}/info'
 elif [ "$single_tree" = "1" ]; then
    if [ "$exec_prefix_specified" = "" ]; then
@@ -1366,6 +1571,9 @@ elif [ "$single_tree" = "1" ]; then
    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.
@@ -1379,7 +1587,8 @@ Configured for \`${canonical}'.
   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}${x_includes+
+  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}
 
@@ -1391,48 +1600,46 @@ test -n "${prefix}" &&
 test -n "${exec_prefix}" &&
   exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
 ]
-AC_OUTPUT(Makefile lib-src/Makefile oldXMenu/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.  Only do the
-# build if "config.status" is present, since it's non-presence indicates
-# an error occured.
-status=$?
-if [ ! -f ./config.status ]; then
-   exit $status
-fi
-topsrcdir=${srcdir}
-makefile_command='echo "creating src/Makefile";
-  topsrcdir='"${topsrcdir}"';
-( cd ./src;
-  cp Makefile.in junk.c;
-  eval `echo ${CPP} -I. -I${topsrcdir}/src ${CPPFLAGS} junk.c \>junk.cpp`;
-  < junk.cpp                                                   '\
-'    sed -e '\''s/^#.*//'\''                                   '\
-'      -e '\''s/^[ \f\t][ \f\t]*$//'\''                        '\
-'      -e '\''s/^ /    /'\''                                   '\
-'      | sed -n -e '\''/^..*$/p'\''                            '\
-'      > Makefile.new;
-dnl There is a window of lossage if you mv Makefile.new before chmoding it.
-    chmod 444 Makefile.new;
-    mv -f Makefile.new Makefile;
-    rm -f junk.c junk.cpp;
-)'
-eval `echo $makefile_command`
-# AC-OUTPUT has created `config.status' already.  We need to add the above
-# commands to re-create `src/Makefile', and we need to insert them before
-# the final "exit 0" which appears at the end of `config.status'.
-<config.status sed -e 's/^exit 0$//' >config.new
-echo $makefile_command >>config.new
-echo exit 0 >>config.new
-mv -f config.new config.status
-chmod +x config.status
-# Don't let the fact that we just rewrote config.status make Makefile think
-# that it is now newer.  We have just rewritten all of the Makefiles as well.
-MFS="Makefile src/Makefile src/Makefile.in lib-src/Makefile oldXMenu/Makefile"
-for file in $MFS; do
-   chmod a+w $file; touch $file; chmod 444 $file
-done
-exit 0
-]
+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 |
+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
+  sed -e 's@^# \(Generated.*\)$@/* \1 */@' \
+      -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
+      < Makefile.in > junk.c
+  $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c |
+  sed -e 's/^ /        /' -e '/^#/d' -e '/^[   \f]*$/d' > Makefile.new
+  rm -f junk.c
+  chmod 444 Makefile.new;
+  mv -f Makefile.new Makefile;
+)
+
+echo creating src/Makefile
+( cd src
+  rm -f junk.c
+  sed -e 's@^# \(Generated.*\)$@/* \1 */@' \
+      -e 's@/\*\*/#\(.*\)$@/* \1 */@' \
+      < Makefile.in > junk.c
+  $CPP $undefs -I. -I$top_srcdir/src $CPPFLAGS junk.c |
+  sed -e 's/^ /        /' -e '/^#/d' -e '/^[   \f]*$/d' > Makefile.new
+  rm -f junk.c
+  chmod 444 Makefile.new;
+  mv -f Makefile.new Makefile;
+)])