(docref-subst): Doc fix.
[bpt/emacs.git] / configure.in
index 31267bd..a72e4b9 100644 (file)
@@ -2,16 +2,10 @@ 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.
-AC_PREREQ(2.0)dnl
+AC_PREREQ(2.4.1)dnl
 AC_INIT(src/lisp.h)
-AC_CONFIG_HEADER(src/config.h)
-
-bindir='${exec_prefix}/bin'
-datadir='${prefix}/share'
-sharedstatedir='${prefix}/com'
-libexecdir='${exec_prefix}/libexec'
-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'
 lisppath='${locallisppath}:${lispdir}'
@@ -40,7 +34,7 @@ AC_ARG_WITH(x-toolkit,
            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        o | op | ope | open | open- | open-l | open-lo \
@@ -48,8 +42,8 @@ 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', \`athena', or \`motif'.
+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
@@ -65,6 +59,8 @@ 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).
+    CDPATH=
     if test "${PWD}" != "" && test "`(cd ${PWD} ; sh -c pwd)`" = "`pwd`"  ;
     then
       srcdir="$PWD"
@@ -168,10 +164,15 @@ case "${canonical}" in
     machine=alliant-2800 opsys=bsd4-3
   ;;
 
+  ## Alpha (DEC) machines.
   alpha-dec-osf* )
     machine=alpha opsys=osf1
   ;;
 
+  alpha-*-linux* )
+    machine=alpha opsys=linux
+  ;;
+
   ## Altos 3068
   m68*-altos-sysv* )
     machine=altos opsys=usg5-2
@@ -182,9 +183,9 @@ case "${canonical}" in
     machine=amdahl opsys=usg5-2-2
   ;;
 
-  ## Appallings - I mean, Apollos - running Domain
-  m68*-apollo* )
-    machine=apollo opsys=domain NON_GNU_CPP=/usr/lib/cpp
+  ## Apollo, Domain/OS
+  m68*-apollo-* )
+    machine=apollo opsys=bsd4-3
   ;;
 
   ## AT&T 3b2, 3b5, 3b15, 3b20
@@ -263,18 +264,28 @@ case "${canonical}" in
   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
@@ -283,7 +294,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
@@ -328,11 +343,17 @@ 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"
+  ;;
 
   ## Honeywell XPS100
   xps*-honeywell-sysv* )
@@ -343,7 +364,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.
@@ -351,6 +372,7 @@ case "${canonical}" in
       *.B8.* ) machine=hp9000s300 opsys=hpux8 ;;
       *.08.* ) machine=hp9000s300 opsys=hpux8 ;;
       *.09.* ) machine=hp9000s300 opsys=hpux9 ;;
+      *.10.* ) machine=hp9000s300 opsys=hpux9shr ;;
       *) machine=hp9000s300 opsys=hpux ;;
     esac
   ;;
@@ -368,6 +390,9 @@ case "${canonical}" in
   hppa*-hp-hpux9* )
     machine=hp800 opsys=hpux9
   ;;
+  hppa*-hp-hpux10* )
+    machine=hp800 opsys=hpux10
+  ;;
 
   ## HP 9000 series 700 and 800, running HP/UX
   hppa*-hp-hpux* )
@@ -470,7 +495,7 @@ case "${canonical}" in
   ## 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
+    machine=ncr386 opsys=usg5-4-2
   ;;
 
   ## Intel Paragon OSF/1
@@ -515,6 +540,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
   ;;
@@ -523,8 +553,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
@@ -571,7 +601,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
@@ -592,6 +622,9 @@ case "${canonical}" in
   mips-sgi-irix4* )
     machine=iris4d opsys=irix4-0
   ;;
+  mips-sgi-irix6* )
+    machine=iris4d opsys=irix6-0  NON_GNU_CPP=/lib/cpp
+  ;;
   mips-sgi-irix5.[01]* )
     machine=iris4d opsys=irix5-0
   ;;
@@ -622,13 +655,16 @@ case "${canonical}" in
   ;;
 
   ## Suns
-  *-sun-sunos* | *-sun-bsd* | *-sun-solaris* | i[345]86-*-solaris2* | i[345]86-*-sunos5* )
+  *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \
+    | i[345]86-*-solaris2* | i[345]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 ;;
+      powerpc* | rs6000* )  machine=rs6000 ;;
       sparc* )         machine=sparc ;;
       * )              unported=yes ;;
     esac
@@ -636,12 +672,18 @@ 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
+      *-sunos4.1.[3-9]* | *-sunos4shr*)
+               opsys=sunos4shr
+               NON_GNU_CPP=/usr/lib/cpp
+               ;;
+      *-sunos4.1.[3-9]*-noshare )
+               opsys=sunos4-1-3
+               NON_GNU_CPP=/usr/lib/cpp
                NON_GCC_TEST_OPTIONS=-Bstatic
                GCC_TEST_OPTIONS=-static
                ;;
-      *-sunos4shr*       ) opsys=sunos4shr ;;
-      *-sunos4* | *-sunos ) opsys=sunos4-1
+      *-sunos4* | *-sunos )
+               opsys=sunos4-1
                NON_GCC_TEST_OPTIONS=-Bstatic
                GCC_TEST_OPTIONS=-static
                ;;
@@ -652,14 +694,23 @@ 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-4
                NON_GNU_CPP=/usr/ccs/lib/cpp
                ;;
       *                          ) opsys=bsd4-2   ;;
     esac
   ;;
+  sparc-*-nextstep* )
+    machine=sparc opsys=nextstep
+  ;;
 
   ## Tadpole 68k
   m68*-tadpole-sysv* )
@@ -712,7 +763,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 ;;
@@ -739,20 +789,30 @@ 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 ;;
       *-sco3.2v4* )            opsys=sco4 ; NON_GNU_CPP=/lib/cpp  ;;
-      *-bsd386* | *-bsdi* )    opsys=bsd386 ;;
+      *-bsd386* | *-bsdi1* )   opsys=bsd386 ;;
+      *-bsdi2* )               opsys=bsdos2 ;;
       *-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
   ;;
 
+  ## Linux/68k
+  m68k-*-linux* )
+    machine=m68k opsys=linux
+  ;;
+
   * )
     unported=yes
   ;;
@@ -773,22 +833,26 @@ 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.1* | *-sysvr4.1* )
        NON_GNU_CPP=/usr/lib/cpp
        opsys=usg5-4 ;;
-    *-sysv4.2 | *-sysvr4.2 )
+    *-sysv4.[2-9]* | *-sysvr4.[2-9]* )
        if [ x$NON_GNU_CPP = x ]; then
          NON_GNU_CPP=/usr/ccs/lib/cpp
        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
@@ -803,6 +867,9 @@ 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"  ) : ${CC=cc} ;;
@@ -855,7 +922,7 @@ dnl checks for Unix variants
 AC_AIX
 
 dnl checks for header files
-AC_CHECK_HEADERS(sys/timeb.h sys/time.h unistd.h utime.h)
+AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h)
 AC_HEADER_STDC
 AC_HEADER_TIME
 AC_DECL_SYS_SIGLIST
@@ -894,6 +961,7 @@ AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
 #endif
 #endif], [static struct timeval x; x.tv_sec = x.tv_usec;],
   [AC_MSG_RESULT(yes)
+   HAVE_TIMEVAL=yes
    AC_DEFINE(HAVE_TIMEVAL)],
   AC_MSG_RESULT(no))
 
@@ -920,17 +988,28 @@ else
 fi
 
 if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
-  LD_SWITCH_X_SITE="-L${x_libraries}"
-  LD_SWITCH_X_SITE_AUX="-R${x_libraries}"
+  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"`
 fi
 if test "${x_includes}" != NONE && test -n "${x_includes}"; then
-  C_SWITCH_X_SITE="-I${x_includes}"
+  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
-  bitmapdir="${x_includes}/bitmaps"
+  # accumulate include directories that have X11 bitmap sudirectories
+  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
@@ -953,11 +1032,27 @@ 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.
 
 AC_CHECKING([the machine- and system-dependent files to find out
@@ -1035,18 +1130,18 @@ configure___ system_malloc=no
 
 /* 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 */
@@ -1058,7 +1153,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
@@ -1089,7 +1184,7 @@ 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"
+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.
@@ -1101,6 +1196,8 @@ 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_CHECK_LIB(pthreads, cma_open)
+
 AC_MSG_CHECKING(for XFree86)
 if test -d /usr/X386/include; then
   HAVE_XFREE386=yes
@@ -1110,15 +1207,63 @@ else
 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"
   CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
+
+  if test "${opsys}" = "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)
+  AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
+fi
+
+if test "${window_system}" = "x11"; then
+  AC_MSG_CHECKING(X11 version)
+  AC_TRY_LINK([#include <X11/Xlib.h>],
+[#if XlibSpecificationRelease < 6
+fail;
+#endif
+], [AC_MSG_RESULT(6)
+    AC_DEFINE(HAVE_X11R6)],
+   [AC_MSG_RESULT(not 6)])
 fi
 
 if test "${USE_X_TOOLKIT}" != "none"; then
@@ -1133,7 +1278,7 @@ fail;
 fi
 
 # If netdb.h doesn't declare h_errno, we must declare it by hand.
-AC_MSG_CHECKING(whether netdb declarares h_errno)
+AC_MSG_CHECKING(whether netdb declares h_errno)
 AC_TRY_LINK([#include <netdb.h>],
   [return h_errno;],
   [AC_MSG_RESULT(yes)
@@ -1142,11 +1287,66 @@ AC_TRY_LINK([#include <netdb.h>],
 
 AC_FUNC_ALLOCA
 
-# logb and frexp are found in -lm on most systems.
-AC_CHECK_LIB(m, logb)
+# 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(0.0) + t)
 AC_CHECK_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)
+random lrand48 bcopy bcmp logb frexp fmod ftime res_init setsid \
+strerror fpathconf select mktime eaccess getpagesize tzset)
+
+AC_MSG_CHECKING(whether localtime caches TZ)
+AC_CACHE_VAL(emacs_cv_localtime_cache,
+[if test $ac_cv_func_tzset = yes; then
+AC_TRY_RUN([#include <time.h>
+#if STDC_HEADERS
+# include <stdlib.h>
+#endif
+main()
+{
+  time_t now = time ((time_t *) 0);
+  int hour;
+  if (putenv ("TZ=GMT0") != 0)
+    exit (1);
+  hour = localtime (&now)->tm_hour;
+  if (putenv ("TZ=PST8") != 0)
+    exit (1);
+  exit (localtime (&now)->tm_hour == hour);
+}], 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
+
+if test "x$HAVE_TIMEVAL" = xyes; then
+AC_MSG_CHECKING(whether gettimeofday can't accept 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);
+],
+  [AC_MSG_RESULT(no)],
+  [AC_MSG_RESULT(yes)
+   AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT)])
+fi
 
 ok_so_far=yes
 AC_CHECK_FUNC(socket, , ok_so_far=no)
@@ -1207,9 +1407,10 @@ AC_SUBST(CFLAGS)
 AC_SUBST(X_TOOLKIT_TYPE)
 AC_SUBST(machfile)
 AC_SUBST(opsysfile)
+AC_SUBST(RANLIB)
 
 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "${canonical}")
-AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${config_options}")
+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})
@@ -1229,8 +1430,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)
@@ -1244,7 +1445,6 @@ fi
 
 #### Report on what we decided to do.
 echo "
-
 Configured for \`${canonical}'.
 
   Where should the build process find the source code?    ${srcdir}
@@ -1254,11 +1454,20 @@ 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
 
 # Remove any trailing slashes in these variables.
 changequote(, )dnl
@@ -1268,16 +1477,17 @@ test "${exec_prefix}" != NONE &&
   exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
 changequote([, ])dnl
 
-AC_OUTPUT(Makefile lib-src/Makefile.in oldXMenu/Makefile \
-       man/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, [
 
 ### Make the necessary directories, if they don't exist.
 for dir in cpp etc ; 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.
 # Now get this: Some word that is part of the ${srcdir} directory name
@@ -1296,10 +1506,10 @@ 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
@@ -1312,10 +1522,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
@@ -1323,4 +1533,10 @@ 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
+
 ], [CPP="$CPP" CPPFLAGS="$CPPFLAGS"])