* gnus.el (gnus-summary-pipe-output, gnus-buffer-configuration,
[bpt/emacs.git] / configure.in
index 9824375..17eb367 100644 (file)
@@ -1,13 +1,33 @@
-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(2.4.1)dnl
+dnl
+dnl  Copyright (C) 1994, 1995, 1996 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
+dnl  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+
+AC_PREREQ(2.8)dnl
 AC_INIT(src/lisp.h)
 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'
 lisppath='${locallisppath}:${lispdir}'
 etcdir='${datadir}/emacs/${version}/etc'
 lockdir='${sharedstatedir}/emacs/lock'
@@ -34,7 +54,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 \
@@ -42,8 +62,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
@@ -169,15 +189,15 @@ case "${canonical}" in
     machine=alpha opsys=osf1
   ;;
 
-  alpha-*-linux* )
-    machine=alpha opsys=linux
+  alpha-*-linux* | alpha-*-lignux* )
+    machine=alpha opsys=lignux
   ;;
 
   ## Altos 3068
   m68*-altos-sysv* )
     machine=altos opsys=usg5-2
   ;;
-    
+
   ## Amdahl UTS
   580-amdahl-sysv* )
     machine=amdahl opsys=usg5-2-2
@@ -235,7 +255,7 @@ 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"
   ;;
 
@@ -285,7 +305,7 @@ case "${canonical}" in
       if test -s /etc/167config
       then CC="gnucc -m68040"
       else CC="gnucc -m68881"
-      fi 
+      fi
     else
       if test -z "`type gcc | grep 'not found'`"
       then CC=gcc
@@ -343,11 +363,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* )
@@ -385,7 +411,7 @@ case "${canonical}" in
     machine=hp800 opsys=hpux9
   ;;
   hppa*-hp-hpux10* )
-    machine=hp800 opsys=hpux9shr
+    machine=hp800 opsys=hpux10
   ;;
 
   ## HP 9000 series 700 and 800, running HP/UX
@@ -400,6 +426,9 @@ case "${canonical}" in
       *) machine=hp800 opsys=hpux ;;
     esac
   ;;
+  hppa-*-nextstep* )
+    machine=hp800 opsys=nextstep
+  ;;
 
   ## Orion machines
   orion-orion-bsd* )
@@ -436,13 +465,13 @@ case "${canonical}" in
   ;;
   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
   ;;
@@ -595,7 +624,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
@@ -617,7 +646,7 @@ case "${canonical}" in
     machine=iris4d opsys=irix4-0
   ;;
   mips-sgi-irix6* )
-    machine=iris4d opsys=irix6-0
+    machine=iris4d opsys=irix6-0  NON_GNU_CPP=/lib/cpp
   ;;
   mips-sgi-irix5.[01]* )
     machine=iris4d opsys=irix5-0
@@ -649,13 +678,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
@@ -667,7 +699,14 @@ case "${canonical}" in
                opsys=sunos4shr
                NON_GNU_CPP=/usr/lib/cpp
                ;;
-      *-sunos4* | *-sunos ) opsys=sunos4-1
+      *-sunos4.1.[3-9]*-noshare )
+               opsys=sunos4-1-3
+               NON_GNU_CPP=/usr/lib/cpp
+               NON_GCC_TEST_OPTIONS=-Bstatic
+               GCC_TEST_OPTIONS=-static
+               ;;
+      *-sunos4* | *-sunos )
+               opsys=sunos4-1
                NON_GCC_TEST_OPTIONS=-Bstatic
                GCC_TEST_OPTIONS=-static
                ;;
@@ -686,14 +725,25 @@ case "${canonical}" in
                RANLIB="ar -ts"
                ;;
       *-sunos5* | *-solaris* )
-               opsys=sol2
+               opsys=sol2-4
                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.h opsys=nextstep.h
+    machine=sparc opsys=nextstep
   ;;
 
   ## Tadpole 68k
@@ -734,7 +784,7 @@ case "${canonical}" in
   titan-titan-sysv* )
     machine=titan opsys=usg5-3
   ;;
-  
+
   ## Ustation E30 (SS5E)
   m68*-unisys-uniplus* )
     machine=ustation opsystem=unipl5-2
@@ -781,7 +831,7 @@ case "${canonical}" in
       *-esix5* )               opsys=esix5r4; NON_GNU_CPP=/usr/lib/cpp ;;
       *-esix* )                        opsys=esix ;;
       *-xenix* )               opsys=xenix ;;
-      *-linux* )               opsys=linux ;;
+      *-linux* | *-lignux* )   opsys=lignux ;;
       *-sco3.2v4* )            opsys=sco4 ; NON_GNU_CPP=/lib/cpp  ;;
       *-bsd386* | *-bsdi1* )   opsys=bsd386 ;;
       *-bsdi2* )               opsys=bsdos2 ;;
@@ -792,6 +842,11 @@ case "${canonical}" in
     esac
   ;;
 
+  ## Lignux/68k
+  m68k-*-linux* | m68k-*-lignux* )
+    machine=m68k opsys=lignux
+  ;;
+
   * )
     unported=yes
   ;;
@@ -880,12 +935,12 @@ 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
 
 #### 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
@@ -901,7 +956,7 @@ dnl checks for Unix variants
 AC_AIX
 
 dnl checks for header files
-AC_CHECK_HEADERS(sys/select.h 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 linux/version.h)
 AC_HEADER_STDC
 AC_HEADER_TIME
 AC_DECL_SYS_SIGLIST
@@ -942,7 +997,8 @@ AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
   [AC_MSG_RESULT(yes)
    HAVE_TIMEVAL=yes
    AC_DEFINE(HAVE_TIMEVAL)],
-  AC_MSG_RESULT(no))
+  [AC_MSG_RESULT(no)
+   HAVE_TIMEVAL=no])
 
 dnl checks for structure members
 AC_STRUCT_TM
@@ -977,7 +1033,7 @@ fi
 if test x"${x_includes}" = x; then
   bitmapdir=/usr/include/X11/bitmaps
 else
-  # accumulate include directories that have X11 bitmap sudirectories
+  # 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
@@ -996,10 +1052,13 @@ case "${window_system}" in
     HAVE_X_WINDOWS=yes
     HAVE_X11=yes
     case "${with_x_toolkit}" in
-      athena | lucid ) USE_X_TOOLKIT=LUCID ;;  
-      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 )
@@ -1008,12 +1067,11 @@ 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
@@ -1042,7 +1100,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 Lignux needs them to be different because it treats -g
 ### as implying static linking.
 
 ### If the CFLAGS env var is specified, we use that value
@@ -1163,7 +1221,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.
@@ -1177,6 +1235,12 @@ AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
 
 AC_CHECK_LIB(pthreads, cma_open)
 
+dnl If we can find a tparm in libcurses.a, it means we have ncurses.
+AC_CHECK_LIB(curses, tparm, HAVE_NCURSES=yes)
+if test x"${HAVE_NCURSES}" = "xyes" ; then
+  AC_DEFINE(HAVE_NCURSES)
+fi
+
 AC_MSG_CHECKING(for XFree86)
 if test -d /usr/X386/include; then
   HAVE_XFREE386=yes
@@ -1191,10 +1255,20 @@ AC_MSG_RESULT($HAVE_XFREE386)
 
 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"
 
-  if test "${opsys}" = "linux"; then
+  # 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}" = "lignux"; then
     AC_MSG_CHECKING(whether X on GNU/Linux needs -b to link)
     AC_TRY_LINK([],
      [XOpenDisplay ("foo");],
@@ -1233,15 +1307,54 @@ if test "${HAVE_X11}" = "yes"; then
 XScreenNumberOfScreen XSetWMProtocols)
 fi
 
+if test "${window_system}" = "x11"; then
+  AC_MSG_CHECKING(X11 version 6)
+  AC_TRY_LINK([#include <X11/Xlib.h>],
+[#if XlibSpecificationRelease < 6
+fail;
+#endif
+], [AC_MSG_RESULT(6 or newer)
+    AC_DEFINE(HAVE_X11R6)],
+   [AC_MSG_RESULT(before 6)])
+fi
+
+if test x"${USE_X_TOOLKIT}" = xmaybe; then
+  AC_MSG_CHECKING(X11 version 5)
+  AC_TRY_LINK([#include <X11/Xlib.h>],
+[#if XlibSpecificationRelease < 5
+fail;
+#endif
+], [AC_MSG_RESULT(5 or newer; use toolkit by default)
+    USE_X_TOOLKIT=LUCID
+    AC_DEFINE(HAVE_X11R5)],
+   [AC_MSG_RESULT(before 5; do not use toolkit by default)
+    USE_X_TOOLKIT=none])
+fi
+
+X_TOOLKIT_TYPE=$USE_X_TOOLKIT
+
 if test "${USE_X_TOOLKIT}" != "none"; then
   AC_MSG_CHECKING(X11 toolkit version)
   AC_TRY_LINK([#include <X11/Intrinsic.h>],
 [#if XtSpecificationRelease < 6
 fail;
 #endif
-], [AC_MSG_RESULT(6)
+], [AC_MSG_RESULT(6 or newer)
+    HAVE_X11XTR6=yes
     AC_DEFINE(HAVE_X11XTR6)],
-   [AC_MSG_RESULT(not 6)])
+   [AC_MSG_RESULT(before 6)
+    HAVE_X11XTR6=no])
+
+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 netdb.h doesn't declare h_errno, we must declare it by hand.
@@ -1256,28 +1369,44 @@ 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(0.0) + t)
+AC_CHECK_LIB(m, sqrt)
+
 AC_CHECK_FUNCS(gettimeofday gethostname dup2 rename closedir mkdir rmdir \
-random lrand48 bcopy bcmp logb frexp fmod drem ftime res_init setsid \
+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
+[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 ()
+{
+  char **from, **to;
+  for (to = from = environ; (*to = *from); from++)
+    if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
+      to++;
+}
 main()
 {
   time_t now = time ((time_t *) 0);
-  int hour;
+  int hour_GMT0, hour_unset;
   if (putenv ("TZ=GMT0") != 0)
     exit (1);
-  hour = localtime (&now)->tm_hour;
+  hour_GMT0 = localtime (&now)->tm_hour;
+  unset_TZ ();
+  hour_unset = localtime (&now)->tm_hour;
   if (putenv ("TZ=PST8") != 0)
     exit (1);
-  exit (localtime (&now)->tm_hour == hour);
+  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])
@@ -1291,7 +1420,7 @@ if test $emacs_cv_localtime_cache = yes; then
   AC_DEFINE(LOCALTIME_CACHE)
 fi
 
-if test $HAVE_TIMEVAL = yes; then
+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
@@ -1397,8 +1526,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)