(rmail-mmdf-delim1, rmail-mmdf-delim2): Doc fixes.
[bpt/emacs.git] / configure.in
index 054a556..9e9321a 100644 (file)
@@ -23,7 +23,7 @@ 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.51)dnl
+AC_PREREQ(2.54)dnl
 AC_INIT(src/lisp.h)
 AC_CONFIG_HEADER(src/config.h:src/config.in)
 
@@ -38,25 +38,9 @@ lisppath='${locallisppath}:${lispdir}'
 etcdir='${datadir}/emacs/${version}/etc'
 archlibdir='${libexecdir}/emacs/${version}/${configuration}'
 docdir='${datadir}/emacs/${version}/etc'
-gamedir=yes
-
-AC_ARG_WITH(game-dir,
-[  --with-game-dir         use a shared game directory if possible],
-   [if test "$withval" = yes; then
-      gamedir="${localstatedir}/games/emacs"
-    else
-      if test "$withval" = no; then
-        gamedir=no
-      else
-        gamedir="$withval"
-      fi
-    fi
-])
+gamedir='${localstatedir}/games/emacs'
 
 gameuser=games
-AC_ARG_WITH(game-user,
-[  --with-game-user        use specified user for game directory],
-   [gameuser="$withval"])
 
 AC_ARG_WITH(gcc,
 [  --without-gcc           don't use GCC to compile Emacs if GCC is found])
@@ -104,11 +88,11 @@ dnl These don't currently work.
 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([\`--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.])
+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([`--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
@@ -158,23 +142,21 @@ esac
 #### Check if the source directory already has a configured system in it.
 if test `pwd` != `(cd ${srcdir} && pwd)` \
    && test -f "${srcdir}/src/config.h" ; then
-  AC_MSG_WARN([The directory tree \`${srcdir}' is being used
+  AC_MSG_WARN([[The directory tree `${srcdir}' is being used
    as a build directory right now; it has been configured in its own
    right.  To configure in another directory as well, you MUST
    use GNU make.  If you do not have GNU make, then you must
-   now do \`make distclean' in ${srcdir},
-   and then run $0 again.])
+   now do `make distclean' in ${srcdir},
+   and then run $0 again.]])
 
-changequote(, )dnl
-  extrasub='/^VPATH[    ]*=/c\
-changequote([, ])dnl
+[extrasub='/^VPATH[     ]*=/c\
 vpath %.c $(srcdir)\
 vpath %.h $(srcdir)\
 vpath %.y $(srcdir)\
 vpath %.l $(srcdir)\
 vpath %.s $(srcdir)\
 vpath %.in $(srcdir)\
-vpath %.texi $(srcdir)'
+vpath %.texi $(srcdir)']
 fi
 
 #### Given the configuration name, set machfile and opsysfile to the
@@ -186,7 +168,11 @@ AC_CANONICAL_HOST
 canonical=$host
 configuration=${host_alias-$host}
 
-changequote(, )dnl
+dnl This used to use changequote, but, apart from `changequote is evil'
+dnl per the autoconf manual, we can speed up autoconf somewhat by quoting
+dnl the great gob of text.  Thus it's not processed for possible expansion.
+dnl Just make sure the brackets remain balanced.
+[
 
 ### If you add support for a new configuration, add code to this
 ### switch statement to recognize your configuration name and select
@@ -235,6 +221,7 @@ case "${canonical}" in
       powerpc-apple-netbsd*) machine=macppc ;;
       mips-*-netbsd*)  machine=pmax ;;
       mipsel-*-netbsd*)        machine=pmax ;;
+      mipseb-*-netbsd*)        machine=pmax ;;
       ns32k-*-netbsd*) machine=ns32000 ;;
       powerpc-*-netbsd*) machine=macppc ;;
       sparc*-*-netbsd*)        machine=sparc ;;
@@ -811,12 +798,6 @@ 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.
@@ -956,8 +937,13 @@ case "${canonical}" in
                NON_GNU_CPP=/usr/ccs/lib/cpp
                RANLIB="ar -ts"
                ;;
+      *-sunos5.6* | *-solaris2.6* )
+               opsys=sol2-6
+               NON_GNU_CPP=/usr/ccs/lib/cpp
+               RANLIB="ar -ts"
+               ;;
       *-sunos5* | *-solaris* )
-               opsys=sol2-5
+               opsys=sol2-6
                NON_GNU_CPP=/usr/ccs/lib/cpp
                ;;
       *                          ) opsys=bsd4-2   ;;
@@ -1090,7 +1076,7 @@ case "${canonical}" in
   ;;
 
   ## Mips Linux-based GNU system
-  mips-*-linux-gnu* )
+  mips-*-linux-gnu* | mipsel-*-linux-gnu* )
     machine=mips opsys=gnu-linux
   ;;
 
@@ -1113,6 +1099,11 @@ case "${canonical}" in
     CPP="cc -E -traditional-cpp"
   ;;
 
+  ## AMD x86-64 Linux-based GNU system
+  x86_64-*-linux-gnu* )
+    machine=amdx86-64 opsys=gnu-linux 
+  ;;
+
   * )
     unported=yes
   ;;
@@ -1154,11 +1145,11 @@ if test x"${opsys}" = x; then
   esac
 fi
 
-changequote([, ])dnl
+]
 
 if test $unported = yes; then
-  AC_MSG_ERROR([Emacs hasn't been ported to \`${canonical}' systems.
-Check \`etc/MACHINES' for recognized configuration names.])
+  AC_MSG_ERROR([Emacs hasn't been ported to `${canonical}' systems.
+Check `etc/MACHINES' for recognized configuration names.])
 fi
 
 machfile="m/${machine}.h"
@@ -1210,16 +1201,6 @@ then
   CC="$CC $NON_GCC_TEST_OPTIONS"
 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.
@@ -1228,10 +1209,24 @@ dnl checks for programs
 AC_PROG_LN_S
 AC_PROG_CPP
 AC_PROG_INSTALL
-AC_PROG_YACC
 if test "x$RANLIB" = x; then
   AC_PROG_RANLIB
 fi
+AC_PATH_PROG(INSTALL_INFO, install-info)
+AC_PATH_PROG(INSTALL_INFO, install-info,, /usr/sbin)
+AC_PATH_PROG(INSTALL_INFO, install-info,:, /sbin)
+
+dnl Add our options to ac_link now, after it is set up.
+
+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
 
 dnl checks for Unix variants
 AC_AIX
@@ -1358,16 +1353,14 @@ configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
 # The value of CPP is a quoted variable reference, so we need to do this
 # to get its actual value...
 CPP=`eval "echo $CPP"`
-changequote(, )dnl
-eval `${CPP} -Isrc ${tempcname} \
+[eval `${CPP} -Isrc ${tempcname} \
        | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
 if test "x$SPECIFIED_CFLAGS" = x; then
   eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
         | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
 else
   REAL_CFLAGS="$CFLAGS"
-fi
-changequote([, ])dnl
+fi]
 rm ${tempcname}
 
 ac_link="$ac_link $ld_switch_machine $ld_switch_system"
@@ -1380,6 +1373,11 @@ else
   CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
 fi
 
+dnl For AC_FUNC_GETLOADAVG, at least:
+AC_CONFIG_LIBOBJ_DIR(src)
+
+AC_GNU_SOURCE
+
 dnl Do this early because it can frob feature test macros for Unix-98 &c.
 AC_SYS_LARGEFILE
 
@@ -1394,10 +1392,22 @@ fi
 dnl checks for header files
 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 stdio_ext.h fcntl.h term.h strings.h coff.h)
+  termcap.h stdio_ext.h fcntl.h term.h strings.h coff.h pty.h sys/mman.h \
+  sys/param.h sys/vlimit.h sys/resource.h)
+dnl On Solaris 8 there's a compilation warning for term.h because
+dnl it doesn't define `bool'.
+AC_CHECK_HEADERS(term.h, , , -)
 AC_HEADER_STDC
 AC_HEADER_TIME
-AC_DECL_SYS_SIGLIST
+AC_CHECK_DECLS([sys_siglist])
+if test $ac_cv_have_decl_sys_siglist != yes; then
+  # For Tru64, at least:
+  AC_CHECK_DECLS([__sys_siglist])
+  if test $ac_cv_have_decl___sys_siglist = yes; then
+    AC_DEFINE(sys_siglist, __sys_siglist,
+              [Define to any substitute for sys_siglist.])
+  fi
+fi
 AC_HEADER_SYS_WAIT
 
 dnl Some systems have utime.h but don't declare the struct anyplace.
@@ -1425,10 +1435,11 @@ AC_TYPE_SIGNAL
 
 dnl Check for speed_t typedef.
 AC_CACHE_CHECK(for speed_t, emacs_cv_speed_t,
-AC_TRY_COMPILE([#include <termios.h>], [speed_t x = 1;],
-  emacs_cv_speed_t=yes, emacs_cv_speed_t=no))
+  [AC_TRY_COMPILE([#include <termios.h>], [speed_t x = 1;],
+    emacs_cv_speed_t=yes, emacs_cv_speed_t=no)])
 if test $emacs_cv_speed_t = yes; then
-  AC_DEFINE(HAVE_SPEED_T, 1, [Define to 1 if `speed_t' is declared by <termios.h>.])
+  AC_DEFINE(HAVE_SPEED_T, 1, 
+          [Define to 1 if `speed_t' is declared by <termios.h>.])
 fi
 
 AC_CACHE_CHECK(for struct timeval, emacs_cv_struct_timeval,
@@ -1489,32 +1500,16 @@ AH_TEMPLATE(POINTER_TYPE,
            [Define as `void' if your compiler accepts `void *'; otherwise
             define as `char'.])dnl
 
+dnl This could be used for targets which can have both byte sexes.
+dnl We could presumably replace the hardwired WORDS_BIG_ENDIAN generally.
+dnl AC_C_BIGENDIAN
+
 dnl check for Make feature
 AC_PROG_MAKE_SET
 
 dnl checks for operating system services
 AC_SYS_LONG_FILE_NAMES
 
-if test "$gamedir" = no; then :
-else
-  AC_MSG_CHECKING([for access to game group "$gameuser"])
-  rm -f conf$$chown.file
-  touch conf$$chown.file
-  dnl If we can't chown a file to group games, then the users
-  dnl can't share scores.
-  if chown "$gameuser" conf$$chown.file 1>/dev/null 2>&1; then
-    AC_MSG_RESULT([yes])
-    if test "$gamedir" = "yes"; then
-      gamedir="${localstatedir}/games/emacs"
-    fi
-    eval tgamedir=\"$gamedir\"
-    AC_DEFINE_UNQUOTED(HAVE_SHARED_GAME_DIR, "$tgamedir",
-                      [Define to the name of the shared game directory.])
-  else
-    AC_MSG_RESULT([no])
-    gamedir=no
-  fi
-fi
 #### Choose a window system.
 
 AC_PATH_X
@@ -1675,8 +1670,9 @@ else
 fi
 AC_MSG_RESULT($HAVE_XFREE386)
 
-# 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.
+# Change CFLAGS and CPPFLAGS temporarily so that C_SWITCH_X_SITE gets
+# used for the tests that follow.  We set them back to REAL_CFLAGS and
+# REAL_CPPFLAGS later on.
 
 REAL_CPPFLAGS="$CPPFLAGS"
 
@@ -1846,6 +1842,29 @@ if test "${HAVE_X11}" = "yes"; then
 fi
 
 if test "${USE_X_TOOLKIT}" = "MOTIF"; then
+  AC_CACHE_CHECK(for LessTif where some systems put it, emacs_cv_lesstif,
+  # We put this in CFLAGS temporarily to precede other -I options
+  # that might be in CFLAGS temporarily.
+  # We put this in CPPFLAGS where it precedes the other -I options.
+  OLD_CPPFLAGS=$CPPFLAGS
+  OLD_CFLAGS=$CFLAGS
+  CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS"
+  CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS"
+  [AC_TRY_COMPILE([#include </usr/X11R6/LessTif/Motif1.2/include/Xm/Xm.h>],
+    [int x = 5;],
+    emacs_cv_lesstif=yes, emacs_cv_lesstif=no)])
+  if test $emacs_cv_lesstif = yes; then
+    # Make sure this -I option remains in CPPFLAGS after it is set
+    # back to REAL_CPPFLAGS.
+    # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not
+    # have those other -I options anyway.  Ultimately, having this
+    # directory ultimately in CPPFLAGS will be enough.
+    REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS"
+    LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS"
+  else
+    CFLAGS=$OLD_CFLAGS
+    CPPFLAGS=$OLD_CPPFLAGS
+  fi
   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)
@@ -1871,8 +1890,10 @@ fi
 HAVE_XAW3D=no
 if test "${HAVE_X11}" = "yes"; then
   if test "${USE_X_TOOLKIT}" != "none"; then
+    dnl Fixme: determine what Scrollbar.h needs to avoid compilation
+    dnl errors from the test without the `-'.
     AC_CHECK_HEADER(X11/Xaw3d/Scrollbar.h,
-       AC_CHECK_LIB(Xaw3d, XawScrollbarSetThumb, HAVE_XAW3D=yes))
+       [AC_CHECK_LIB(Xaw3d, XawScrollbarSetThumb, HAVE_XAW3D=yes)], , -)
     if test "${HAVE_XAW3D}" = "yes"; then
        AC_DEFINE(HAVE_XAW3D, 1,
                  [Define to 1 if you have the Xaw3d library (-lXaw3d).])
@@ -1940,7 +1961,7 @@ fi
 HAVE_JPEG=no
 if test "${HAVE_X11}" = "yes"; then
   if test "${with_jpeg}" != "no"; then
-    dnl Checking for jpeglib.h can lose becsue of a redefinition of
+    dnl Checking for jpeglib.h can lose because of a redefinition of
     dnl  HAVE_STDLIB_H.
     AC_CHECK_HEADER(jerror.h,
       AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes))
@@ -1949,10 +1970,7 @@ if test "${HAVE_X11}" = "yes"; then
   AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
   if test "${HAVE_JPEG}" = "yes"; then
     AC_DEFINE(HAVE_JPEG)
-    AC_EGREP_CPP(
-changequote({, })dnl avoid leadingspace on the next line
-{version= *(6[2-9]|[7-9][0-9])},
-changequote([, ])dnl
+    AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])],
         [#include <jpeglib.h>
         version=JPEG_LIB_VERSION
 ],    
@@ -2013,7 +2031,7 @@ if test "${with_carbon}" != "no"; then
 fi
 
 if test "${HAVE_CARBON}" = "yes"; then
-  AC_DEFINE(HAVE_CARBON)
+  AC_DEFINE(HAVE_CARBON, 1, [Define to 1 if you are using the Carbon API on Mac OS X.])
 fi
 
 ### Use session management (-lSM -lICE) if available
@@ -2063,7 +2081,7 @@ if test "$ac_cv_lib_lockfile_maillock" = no; then
   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.])
+There may be a `development' package to install containing liblockfile.])
   else AC_DEFINE(LIBMAIL, -llockfile, [Define to -llockfile if it is usable.])
   fi
   else :
@@ -2078,7 +2096,7 @@ strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
 utimes setrlimit setpgid getcwd getwd shutdown strftime getaddrinfo \
 __fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \
 sendto recvfrom getsockopt setsockopt getsockname getpeername \
-gai_strerror mkstemp getline getdelim)
+gai_strerror mkstemp getline getdelim mremap memmove fsync bzero memset)
 
 AC_CHECK_HEADERS(sys/un.h)
 
@@ -2091,6 +2109,8 @@ AC_FUNC_GETLOADAVG
 
 AC_FUNC_FSEEKO
 
+AC_FUNC_GETPGRP
+
 # UNIX98 PTYs.
 AC_CHECK_FUNCS(grantpt)
 
@@ -2263,6 +2283,7 @@ if test $ok_so_far = yes; then
   AC_CHECK_HEADER(arpa/inet.h, , ok_so_far=no)
 fi
 if test $ok_so_far = yes; then
+dnl Fixme: Not used.  Should this be HAVE_SOCKETS?
   AC_DEFINE(HAVE_INET_SOCKETS, 1,
            [Define to 1 if you have inet sockets.])
 fi
@@ -2282,20 +2303,52 @@ fi
 
 AC_FUNC_FORK
 
-# Fixme: This should be replaced when we have autoconf 2.14.
-AC_SIZE_T
+AC_CHECK_TYPES(size_t)
+
+dnl Restrict could probably be used effectively other than in regex.c.
+AC_CACHE_CHECK([for C restrict keyword], emacs_cv_c_restrict,
+  [AC_TRY_COMPILE([void fred (int *restrict x);], [],
+                  emacs_cv_c_restrict=yes,
+                  [AC_TRY_COMPILE([void fred (int *__restrict x);], [],
+                                  emacs_cv_c_restrict=__restrict,
+                                 emacs_cv_c_restrict=no)])])
+case "$emacs_cv_c_restrict" in
+  yes) emacs_restrict=restrict;;
+  no) emacs_restrict="";;
+  *) emacs_restrict="$emacs_cv_c_restrict";;
+esac
+if test "$emacs_restrict" != __restrict; then
+  AC_DEFINE_UNQUOTED(__restrict, $emacs_restrict,
+    [Define to compiler's equivalent of C99 restrict keyword.
+     Don't define if equivalent is `__restrict'.])
+fi
+
+AC_CACHE_CHECK([for C restricted array declarations], emacs_cv_c_restrict_arr,
+  [AC_TRY_COMPILE([void fred (int x[__restrict]);], [],
+                  emacs_cv_c_restrict_arr=yes, emacs_cv_c_restrict_arr=no)])
+if test "$emacs_cv_c_restrict_arr" = yes; then
+  AC_DEFINE(__restrict_arr, __restrict,
+    [Define to compiler's equivalent of C99 restrict keyword in array
+     declarations.  Define as empty for no equivalent.])
+fi
+
+AC_CHECK_HEADERS(nlist.h, [AC_DEFINE(NLIST_STRUCT, 1,
+                 [Define to 1 if you have <nlist.h>.])])
+
+dnl Fixme: AC_SYS_POSIX_TERMIOS should probably be used, but it's not clear
+dnl how the tty code is related to POSIX and/or other versions of termios.
+
+dnl Fixme: Use AC_FUNC_MEMCMP since memcmp is used.  (Needs libobj replacement.)
 
 # Set up the CFLAGS for real compilation, so we can substitute it.
 CFLAGS="$REAL_CFLAGS"
 CPPFLAGS="$REAL_CPPFLAGS"
 
-changequote(, )dnl
 #### Find out which version of Emacs this is.
-version=`grep 'defconst[        ]*emacs-version' ${srcdir}/lisp/version.el \
-        | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`
-changequote([, ])dnl
+[version=`grep 'defconst[       ]*emacs-version' ${srcdir}/lisp/version.el \
+        | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`]
 if test x"${version}" = x; then
-  AC_MSG_ERROR(can't find current emacs version in \`${srcdir}/lisp/version.el'.)
+  AC_MSG_ERROR([can't find current emacs version in `${srcdir}/lisp/version.el'.])
 fi
 
 ### Specify what sort of things we'll be editing into Makefile and config.h.
@@ -2390,11 +2443,8 @@ if test "${REL_ALLOC}" = "yes" ; then
             buffer space.])
 fi
 
-AC_CHECK_HEADERS(nlist.h, [AC_DEFINE(NLIST_STRUCT, 1,
-                 [Define to 1 if you have <nlist.h>.])])
-
-AH_TOP([/* GNU Emacs site configuration template file.  -*- C -*-
-   Copyright (C) 1988, 1993, 1994, 1999, 2000 Free Software Foundation, Inc.
+AH_TOP([/* GNU Emacs site configuration template file.
+   Copyright (C) 1988, 93, 94, 99, 2000, 2002 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -2414,7 +2464,7 @@ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
 
-/* No code in Emacs #includes config.h twice, but some of the code
+/* No code in Emacs #includes config.h twice, but some bits of code
    intended to work with other packages as well (like gmalloc.c) 
    think they can include it as many times as they like.  */
 #ifndef EMACS_CONFIG_H
@@ -2429,6 +2479,14 @@ AH_BOTTOM([
 #define HAVE_MOUSE
 #endif
 
+/* If we're using the Carbon API on Mac OS X, define a few more
+   variables as well.  */
+#ifdef HAVE_CARBON
+#define HAVE_WINDOW_SYSTEM
+#define HAVE_MOUSE
+#define HAVE_MENUS
+#endif
+
 /* Define USER_FULL_NAME to return a string
    that is the user's full name.
    It can assume that the variable `pw'
@@ -2539,8 +2597,6 @@ AH_BOTTOM([
 extern char *getenv ();
 #endif
 
-#endif /* EMACS_CONFIG_H */
-
 /* These default definitions are good for almost all machines.
    The exceptions override them in m/MACHINE.h.  */
 
@@ -2580,16 +2636,30 @@ extern char *getenv ();
 # endif  /* GCC.  */
 #endif /* __P */
 
-
 /* Don't include "string.h" or <stdlib.h> in non-C code.  */
 #ifndef NOT_C_CODE
 #ifdef HAVE_STRING_H
 #include "string.h"
 #endif
+#ifdef HAVE_STRINGS_H
+#include "strings.h"  /* May be needed for bcopy & al. */
+#endif
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
+#ifndef __GNUC__
+# ifdef HAVE_ALLOCA_H
+#  include <alloca.h>
+# else /* AIX files deal with #pragma.  */
+#  ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+#  endif
+# endif /* HAVE_ALLOCA_H */
+#endif /* __GNUC__ */
+#ifndef HAVE_SIZE_T
+typedef size_t unsigned
 #endif
+#endif /* NOT_C_CODE */
 
 /* Define HAVE_X_I18N if we have usable i18n support.  */
 
@@ -2614,6 +2684,40 @@ extern char *getenv ();
 #else
 #define NO_RETURN      /* nothing */
 #endif
+
+/* These won't be used automatically yet.  We also need to know, at least,
+   that the stack is continuous.  */
+#ifdef __GNUC__
+#  ifndef GC_SETJMP_WORKS
+  /* GC_SETJMP_WORKS is nearly always appropriate for GCC --
+     see NON_SAVING_SETJMP in the target descriptions.  */   
+  /* Exceptions (see NON_SAVING_SETJMP in target description) are ns32k,
+     SCO5 non-ELF (but Emacs specifies ELF) and SVR3 on x86.
+     Fixme: Deal with ns32k, SVR3.  */
+#    define GC_SETJMP_WORKS 1
+#  endif
+#  ifndef GC_LISP_OBJECT_ALIGNMENT
+#    define GC_LISP_OBJECT_ALIGNMENT (__alignof__ (Lisp_Object))
+#  endif
+#endif
+
+#ifndef HAVE_BCOPY
+#define bcopy(a,b,s) memcpy (b,a,s)
+#endif
+#ifndef HAVE_BZERO
+#define bzero(a,s) memset (a,0,s)
+#endif
+#ifndef HAVE_BCMP
+#define BCMP memcmp
+#endif
+
+#endif /* EMACS_CONFIG_H */
+
+/* 
+Local Variables:
+mode: c
+End:
+*/
 ])dnl
 
 #### Report on what we decided to do.
@@ -2628,8 +2732,7 @@ Configured for \`${canonical}'.
   Should Emacs use a relocating allocator for buffers?    ${REL_ALLOC}
   Should Emacs use mmap(2) for buffer allocation?         $use_mmap_for_buffers
   What window system should Emacs use?                    ${window_system}
-  What toolkit should Emacs use?                          ${USE_X_TOOLKIT}
-  Should Emacs use a shared game state directory?         ${gamedir}"
+  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}"
@@ -2652,12 +2755,10 @@ echo "  Does Emacs use X toolkit scroll bars?                   ${USE_TOOLKIT_SC
 echo
 
 # Remove any trailing slashes in these variables.
-changequote(, )dnl
-test "${prefix}" != NONE &&
+[test "${prefix}" != NONE &&
   prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`
 test "${exec_prefix}" != NONE &&
-  exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
-changequote([, ])dnl
+  exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`]
 
 ## Check if the C preprocessor will convert `..' to `. .'.  If so, set
 ## CPP_NEED_TRADITIONAL to `yes' so that the code to generate Makefile
@@ -2682,18 +2783,16 @@ done
 # 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
 # or the ${configuration} value might, just might, happen to be an
 # identifier like `sun4' or `i386' or something, and be predefined by
 # the C preprocessor to some helpful value like 1, or maybe the empty
 # string.  Needless to say consequent macro substitutions are less
 # than conducive to the makefile finding the correct directory.
-undefs="`echo $top_srcdir $configuration $canonical |
+[undefs="`echo $top_srcdir $configuration $canonical |
 sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/  *$//' \
     -e 's/  */ -U/g' -e 's/-U[0-9][^ ]*//g' \
-`"
-changequote([, ])dnl
+`"]
 
 echo creating src/epaths.h
 ${MAKE-make} epaths-force