]> code.delx.au - gnu-emacs/commitdiff
Merge from trunk and resolve conflicts.
authorEli Zaretskii <eliz@gnu.org>
Thu, 28 Mar 2013 18:13:59 +0000 (20:13 +0200)
committerEli Zaretskii <eliz@gnu.org>
Thu, 28 Mar 2013 18:13:59 +0000 (20:13 +0200)
1  2 
configure.ac
nt/inc/sys/socket.h
nt/inc/sys/time.h
nt/inc/unistd.h

diff --combined configure.ac
index c941fcb21225a6d1a83dbc272b44ed2dcbe1667f,0cff34b8a16669c70ccbaf4273fb802768188003..e412dd342e0bb27894ee6fceb1478eb9a4a5b8e7
@@@ -4,7 -4,7 +4,7 @@@ dnl      autocon
  dnl in the directory containing this script.
  dnl If you changed any AC_DEFINES, also run autoheader.
  dnl
- dnl Copyright (C) 1994-1996, 1999-2012 Free Software Foundation, Inc.
+ dnl Copyright (C) 1994-1996, 1999-2013 Free Software Foundation, Inc.
  dnl
  dnl  This file is part of GNU Emacs.
  dnl
@@@ -23,6 -23,21 +23,21 @@@ dnl  along with GNU Emacs.  If not, se
  
  AC_PREREQ(2.65)
  AC_INIT(emacs, 24.3.50)
+ dnl This is the documented way to record the args passed to configure,
+ dnl rather than $ac_configure_args.
+ emacs_config_options="$@"
+ ## Add some environment variables, if they were passed via the environment
+ ## rather than on the command-line.
+ for var in CFLAGS CPPFLAGS LDFLAGS; do
+     case "$emacs_config_options" in
+       *$var=*) continue ;;
+     esac
+     eval val="\$${var}"
+     test x"$val" = x && continue
+     emacs_config_options="${emacs_config_options}${emacs_config_options:+ }$var=\"$val\""
+ done
  AC_CONFIG_HEADER(src/config.h:src/config.in)
  AC_CONFIG_SRCDIR(src/lisp.h)
  AC_CONFIG_AUX_DIR(build-aux)
@@@ -130,7 -145,7 +145,7 @@@ OPTION_DEFAULT_ON([sound],[don't compil
  
  dnl FIXME currently it is not the last.
  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 added later on when we find the file name of X, and it's best to
  dnl keep them together visually.
  AC_ARG_WITH([x-toolkit],[AS_HELP_STRING([--with-x-toolkit=KIT],
   [use an X toolkit (KIT one of: yes or gtk, gtk2, gtk3, lucid or athena, motif, no)])],
@@@ -177,14 -192,16 +192,16 @@@ OPTION_DEFAULT_ON([toolkit-scroll-bars]
  OPTION_DEFAULT_ON([xaw3d],[don't use Xaw3d])
  OPTION_DEFAULT_ON([xim],[don't use X11 XIM])
  OPTION_DEFAULT_OFF([ns],[use NeXTstep (Cocoa or GNUstep) windowing system])
 -OPTION_DEFAULT_OFF([w32], [use native MS Windows GUI])
 +OPTION_DEFAULT_OFF([w32], [use native MS Windows GUI in a Cygwin build])
  
  OPTION_DEFAULT_ON([gpm],[don't use -lgpm for mouse support on a GNU/Linux console])
  OPTION_DEFAULT_ON([dbus],[don't compile with D-Bus support])
  OPTION_DEFAULT_ON([gconf],[don't compile with GConf support])
  OPTION_DEFAULT_ON([gsettings],[don't compile with GSettings support])
  OPTION_DEFAULT_ON([selinux],[don't compile with SELinux support])
+ OPTION_DEFAULT_ON([acl],[don't compile with ACL support])
  OPTION_DEFAULT_ON([gnutls],[don't use -lgnutls for SSL/TLS support])
+ OPTION_DEFAULT_ON([inotify],[don't compile with inotify (file-watch) support])
  
  ## For the times when you want to build Emacs but don't have
  ## a suitable makeinfo, and can live without the manuals.
  AC_SUBST(GZIP_INFO)
  
  AC_ARG_WITH([pkg-config-prog],dnl
- [AS_HELP_STRING([--with-pkg-config-prog=PATH],
-                   [path to pkg-config for finding GTK and librsvg])])
+ [AS_HELP_STRING([--with-pkg-config-prog=FILENAME],
+                   [file name of pkg-config for finding GTK and librsvg])])
  if test "X${with_pkg_config_prog}" != X; then
     if test "${with_pkg_config_prog}" != yes; then
        PKG_CONFIG="${with_pkg_config_prog}"
     fi
  fi
  
- CRT_DIR=
- AC_ARG_WITH([crt-dir],dnl
- [AS_HELP_STRING([--with-crt-dir=DIR],[directory containing crtn.o etc.
- The default is /usr/lib, or /usr/lib64 on some platforms.])])
- CRT_DIR="${with_crt_dir}"
  AC_ARG_WITH(gameuser,dnl
  [AS_HELP_STRING([--with-gameuser=USER],[user for shared game score files])])
  test "X${with_gameuser}" != X && test "${with_gameuser}" != yes \
  test "X$gameuser" = X && gameuser=games
  
  AC_ARG_WITH([gnustep-conf],dnl
- [AS_HELP_STRING([--with-gnustep-conf=PATH],[path to GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf])])
+ [AS_HELP_STRING([--with-gnustep-conf=FILENAME],
+    [name of GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf])])
  test "X${with_gnustep_conf}" != X && test "${with_gnustep_conf}" != yes && \
    GNUSTEP_CONFIG_FILE="${with_gnustep_conf}"
  test "X$GNUSTEP_CONFIG_FILE" = "X" && \
@@@ -353,28 -365,33 +365,33 @@@ AC_ARG_ENABLE(autodepend
                 found])],
  [ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes])
  
+ AC_ARG_ENABLE(gtk-deprecation-warnings,
+ [AS_HELP_STRING([--enable-gtk-deprecation-warnings],
+               [Show Gtk+/Gdk deprecation warnings for Gtk+ >= 3.0])],
+ [ac_enable_gtk_deprecation_warnings="${enableval}"],[])
  #### Make srcdir absolute, if it isn't already.  It's important to
- #### avoid running the path through pwd unnecessarily, since pwd can
+ #### avoid running the file name through pwd unnecessarily, since pwd can
  #### give you automounter prefixes, which can go away.  We do all this
  #### so Emacs can find its files when run uninstalled.
  ## Make sure CDPATH doesn't affect cd (in case PWD is relative).
  unset CDPATH
  case "${srcdir}" in
 -  /* ) ;;
 +  [[\\/]]* | ?:[[\\/]]*) ;;
    . )
      ## We may be able to use the $PWD environment variable to make this
      ## absolute.  But sometimes PWD is inaccurate.
-     ## Note: we used to use ${PWD} at the end instead of `pwd`,
+     ## Note: we used to use $PWD at the end instead of `pwd`,
      ## but that tested only for a well-formed and valid PWD,
      ## it did not object when PWD was well-formed and valid but just wrong.
-     if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".`pwd`"  ;
+     if test ".$PWD" != "." && test ".`(cd "$PWD" ; sh -c pwd)`" = ".`pwd`"  ;
      then
        srcdir="$PWD"
      else
-       srcdir="`(cd ${srcdir}; pwd)`"
+       srcdir=`(cd "$srcdir"; pwd)`
      fi
    ;;
-   *  ) srcdir="`(cd ${srcdir}; pwd)`" ;;
+   *  ) srcdir=`(cd "$srcdir"; pwd)` ;;
  esac
  
  ### Canonicalize the configuration name.
@@@ -529,11 -546,6 +546,11 @@@ case "${canonical}" i
      case "${canonical}" in
        *-cygwin )                opsys=cygwin ;;
        *-darwin* )               opsys=darwin ;;
 +      *-mingw32 )             
 +              opsys=mingw32
 +              # MinGW overrides and adds some system headers in nt/inc.
 +              GCC_TEST_OPTIONS="-I nt/inc"
 +              ;;
        *-sysv4.2uw* )          opsys=unixware ;;
        *-sysv5uw* )            opsys=unixware ;;
        *-sysv5OpenUNIX* )      opsys=unixware ;;
@@@ -582,7 -594,8 +599,8 @@@ els
    test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS"
  fi
  
- # Avoid gnulib's tests for O_NOATIME and O_NOFOLLOW, as we don't use them.
+ # Avoid gnulib's tests for HAVE_WORKING_O_NOATIME and HAVE_WORKING_O_NOFOLLOW,
+ # as we don't use them.
  AC_DEFUN([gl_FCNTL_O_FLAGS])
  # Avoid gnulib's threadlib module, as we do threads our own way.
  AC_DEFUN([gl_THREADLIB])
@@@ -606,9 -619,6 +624,9 @@@ if test "$ac_test_CFLAGS" != set; the
    if test -n "$emacs_g3_CFLAGS"; then
      emacs_save_CFLAGS=$CFLAGS
      CFLAGS=$emacs_g3_CFLAGS
 +    if test $opsys = mingw32; then
 +      CFLAGS="$CFLAGS -gdwarf-2"
 +    fi
      AC_CACHE_CHECK([whether $CC accepts $emacs_g3_CFLAGS],
        [emacs_cv_prog_cc_g3],
        [AC_LINK_IFELSE([AC_LANG_PROGRAM()],
@@@ -624,7 -634,7 +642,7 @@@ f
  
  AC_ARG_ENABLE([gcc-warnings],
    [AS_HELP_STRING([--enable-gcc-warnings],
-                   [turn on lots of GCC warnings. This is intended for
+                   [turn on lots of GCC warnings/errors. This is intended for
                   developers, and may generate false alarms when used
                   with older or non-GNU development tools.])],
    [case $enableval in
@@@ -732,23 -742,12 +750,12 @@@ els
    # <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
    nw="$nw -Wshadow"
  
+   # Emacs's use of alloca inhibits protecting the stack.
+   nw="$nw -Wstack-protector"
    # The following line should be removable at some point.
    nw="$nw -Wsuggest-attribute=pure"
  
-   AC_MSG_CHECKING([whether to use -Wstack-protector])
-   AC_PREPROC_IFELSE(
-     [AC_LANG_PROGRAM(
-        [[#if (1 <= __LONG_MAX__ >> 31 >> 31 \
-            && 4 < __GNUC__ + (7 < __GNUC_MINOR__ + (2 <= __GNUC_PATCHLEVEL__)))
-          /* OK */
-          #else
-          #error "Not GCC, or GCC before 4.7.2, or 'long int' has < 64 bits."
-        #endif
-        ]])],
-     [AC_MSG_RESULT(yes)],
-     [AC_MSG_RESULT(no)
-      nw="$nw -Wstack-protector"])
    gl_MANYWARN_ALL_GCC([ws])
    gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw])
    for w in $ws; do
  AC_PATH_PROG(MAKEINFO, makeinfo, no)
  dnl By this stage, configure has already checked for egrep and set EGREP,
  dnl or exited with an error if no egrep was found.
- if test "$MAKEINFO" != "no" && \
-   test x"`$MAKEINFO --version 2> /dev/null | $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[7-9]]|4\.[[1-6]][[0-9]]+)'`" = x; then
-    MAKEINFO=no
+ if test "$MAKEINFO" != "no"; then
+   case `
+     $MAKEINFO --version 2> /dev/null |
+     $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[7-9]]|4\.[[1-6]][[0-9]]+)'
+   ` in
+     '') MAKEINFO=no;;
+   esac
  fi
  
  ## Makeinfo is unusual.  For a released Emacs, the manuals are
@@@ -838,7 -841,7 +849,7 @@@ if test "$MAKEINFO" = "no"; the
    MAKEINFO=makeinfo
    if test "x${with_makeinfo}" = "xno"; then
      HAVE_MAKEINFO=no
-   elif test ! -e $srcdir/info/emacs; then
+   elif test ! -e "$srcdir/info/emacs" && test ! -e "$srcdir/info/emacs.info"; then
      AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.7, and your
  source tree does not seem to have pre-built manuals in the `info' directory.
  Either install a suitable version of makeinfo, or re-run configure
@@@ -899,6 -902,7 +910,6 @@@ AC_SUBST(CANNOT_DUMP
  UNEXEC_OBJ=unexelf.o
  case "$opsys" in
    # MSDOS uses unexcoff.o
 -  # MSWindows uses unexw32.o
    aix4-2)
     UNEXEC_OBJ=unexaix.o
     ;;
    hpux10-20 | hpux11)
     UNEXEC_OBJ=unexhp9k800.o
     ;;
 +  mingw32)
 +   UNEXEC_OBJ=unexw32.o
 +   ;;
    sol2-10)
     # Use the Solaris dldump() function, called from unexsol.c, to dump
     # emacs, instead of the generic ELF dump code found in unexelf.c.
@@@ -1008,7 -1009,6 +1019,7 @@@ C_SWITCH_SYSTEM
  ## additional optimization.  --nils@exp-math.uni-essen.de
  test "$opsys" = "aix4.2" && test "x$GCC" != "xyes" && \
    C_SWITCH_SYSTEM="-ma -qmaxmem=4000"
 +test "$opsys" = "mingw32" && C_SWITCH_SYSTEM="-mtune=pentium4"
  ## gnu-linux might need -D_BSD_SOURCE on old libc5 systems.
  ## It is redundant in glibc2, since we define _GNU_SOURCE.
  AC_SUBST(C_SWITCH_SYSTEM)
@@@ -1046,45 -1046,29 +1057,32 @@@ AC_DEFUN([AC_TYPE_UID_T]
  
  
  LIB_MATH=-lm
- LIB_STANDARD=
- START_FILES=
  dnl Current possibilities handled by sed (aix4-2 -> aix,
  dnl gnu-linux -> gnu/linux, etc.):
  dnl gnu, gnu/linux, gnu/kfreebsd, aix, cygwin, darwin, hpux, irix.
  dnl And special cases: berkeley-unix, usg-unix-v, ms-dos, windows-nt.
  SYSTEM_TYPE=`echo $opsys | sed -e 's/[[0-9]].*//' -e 's|-|/|'`
  
- dnl NB do not use CRT_DIR unquoted here, since it might not be set yet.
  case $opsys in
    cygwin )
      LIB_MATH=
-     START_FILES='pre-crt0.o'
      ;;
    darwin )
      ## Adding -lm confuses the dynamic linker, so omit it.
      LIB_MATH=
-     START_FILES='pre-crt0.o'
      ;;
    freebsd )
-     LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtn.o'
-     START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o'
      SYSTEM_TYPE=berkeley-unix
      ;;
    gnu-linux | gnu-kfreebsd )
-     LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtn.o'
-     START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o'
      ;;
    hpux10-20 | hpux11 )
-     LIB_STANDARD=-lc
-     START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o'
      ;;
 +  mingw32 )
 +    LIB_MATH=
 +    ;;
    dnl NB this may be adjusted below.
    netbsd | openbsd )
-     LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o'
-     START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crtbegin.o'
      SYSTEM_TYPE=berkeley-unix
      ;;
  
  esac
  
  AC_SUBST(LIB_MATH)
- AC_SUBST(START_FILES)
  AC_DEFINE_UNQUOTED(SYSTEM_TYPE, "$SYSTEM_TYPE",
    [The type of system you are compiling for; sets `system-type'.])
  
- dnl Not all platforms use crtn.o files.  Check if the current one does.
- crt_files=
- for file in x $LIB_STANDARD $START_FILES; do
-   case "$file" in
-     *CRT_DIR*) crt_files="$crt_files `echo $file | sed -e 's|.*/||'`" ;;
-   esac
- done
- if test "x$crt_files" != x; then
-   ## If user specified a crt-dir, use that unconditionally.
-   crt_gcc=no
-   if test "X$CRT_DIR" = "X"; then
-     CRT_DIR=/usr/lib            # default
-     case "$canonical" in
-       x86_64-*-linux-gnu* | s390x-*-linux-gnu*)
-       ## On x86-64 and s390x GNU/Linux distributions, the standard library
-       ## can be in a variety of places.  We only try /usr/lib64 and /usr/lib.
-       ## For anything else (eg /usr/lib32), it is up the user to specify
-       ## the location (bug#5655).
-       ## Test for crtn.o, not just the directory, because sometimes the
-       ## directory exists but does not have the relevant files (bug#1287).
-       ## FIXME better to test for binary compatibility somehow.
-       test -e /usr/lib64/crtn.o && CRT_DIR=/usr/lib64
-       ;;
-       powerpc64-*-linux-gnu* | sparc64-*-linux-gnu*) CRT_DIR=/usr/lib64 ;;
-     esac
-     case "$opsys" in
-       hpux10-20) CRT_DIR=/lib ;;
-     esac
-     test "x${GCC}" = xyes && crt_gcc=yes
-   fi                            # CRT_DIR = ""
-   crt_missing=
-   for file in $crt_files; do
-     ## If we're using gcc, try to determine it automatically by asking
-     ## gcc.  [If this doesn't work, CRT_DIR will remain at the
-     ## system-dependent default from above.]
-     if test $crt_gcc = yes && test ! -e $CRT_DIR/$file; then
-        crt_file=`$CC --print-file-name=$file 2>/dev/null`
-        case "$crt_file" in
-          */*)
-            CRT_DIR=`AS_DIRNAME(["$crt_file"])`
-            ;;
-        esac
-     fi
-     dnl We expect all the files to be in a single directory, so after the
-     dnl first there is no point asking gcc.
-     crt_gcc=no
-     test -e $CRT_DIR/$file || crt_missing="$crt_missing $file"
-   done                          # $crt_files
-   test "x$crt_missing" = x || \
-     AC_MSG_ERROR([Required file(s) not found:$crt_missing
- Try using the --with-crt-dir option.])
- fi                              # crt_files != ""
- AC_SUBST(CRT_DIR)
- case $opsys in
-   netbsd | openbsd )
-     if test -f $CRT_DIR/crti.o; then
-         test -f $CRT_DIR/crtn.o || \
-           AC_MSG_ERROR([Required file not found: crtn.o])
-         LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o'
-         START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o'
-     fi
-     ;;
- esac
  
  pre_PKG_CONFIG_CFLAGS=$CFLAGS
  pre_PKG_CONFIG_LIBS=$LIBS
@@@ -1200,15 -1097,15 +1111,15 @@@ AC_DEFUN([PKG_CHECK_MODULES], 
  
    if test "$PKG_CONFIG" = "no" ; then
       ifelse([$4], , [AC_MSG_ERROR([
-       *** The pkg-config script could not be found. Make sure it is in your path, or give the full path to pkg-config with the PKG_CONFIG environment variable or --with-pkg-config-prog.  Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config.])], [$4])
+       *** The pkg-config script could not be found. Make sure it is in your path, or give the full name of pkg-config with the PKG_CONFIG environment variable or --with-pkg-config-prog.  Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config.])], [$4])
    else
       PKG_CONFIG_MIN_VERSION=0.9.0
-      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+      if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
          AC_MSG_CHECKING(for $2)
  
-         if $PKG_CONFIG --exists "$2" 2>&AS_MESSAGE_LOG_FD &&
-          $1_CFLAGS=`$PKG_CONFIG --cflags "$2" 2>&AS_MESSAGE_LOG_FD` &&
-          $1_LIBS=`$PKG_CONFIG --libs "$2" 2>&AS_MESSAGE_LOG_FD`; then
+         if "$PKG_CONFIG" --exists "$2" 2>&AS_MESSAGE_LOG_FD &&
+          $1_CFLAGS=`"$PKG_CONFIG" --cflags "$2" 2>&AS_MESSAGE_LOG_FD` &&
+          $1_LIBS=`"$PKG_CONFIG" --libs "$2" 2>&AS_MESSAGE_LOG_FD`; then
            edit_cflags="
              s,///*,/,g
              s/^/ /
              ## If we have a custom action on failure, don't print errors, but
            ## do set a variable so people can do so.  Do it in a subshell
            ## to capture any diagnostics in invoking pkg-config.
-           $1_PKG_ERRORS=`($PKG_CONFIG --print-errors "$2") 2>&1`
+           $1_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "$2") 2>&1`
            ifelse([$4], ,echo "$$1_PKG_ERRORS",)
          fi
  
    fi
  ])
  
 +test "$opsys" = "mingw32" && with_sound=no
  
  if test "${with_sound}" != "no"; then
    # Sound support for GNU/Linux and the free BSDs.
@@@ -1303,7 -1199,7 +1214,7 @@@ dnl checks for header file
  AC_CHECK_HEADERS_ONCE(
    linux/version.h sys/systeminfo.h
    coff.h pty.h
-   sys/vlimit.h sys/resource.h
+   sys/resource.h
    sys/utsname.h pwd.h utmp.h util.h)
  
  AC_MSG_CHECKING(if personality LINUX32 can be set)
@@@ -1491,8 -1387,8 +1402,8 @@@ tmp_CPPFLAGS="$CPPFLAGS
  tmp_CFLAGS="$CFLAGS"
  CPPFLAGS="$CPPFLAGS -x objective-c"
  CFLAGS="$CFLAGS -x objective-c"
- TEMACS_LDFLAGS2="\${LDFLAGS}"
  GNU_OBJC_CFLAGS=
+ LIBS_GNUSTEP=
  if test "${with_ns}" != no; then
    if test "${opsys}" = darwin; then
       NS_IMPL_COCOA=yes
       CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
       CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
       LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES}"
-      LIB_STANDARD=
-      START_FILES=
-      TEMACS_LDFLAGS2=
+      LIBS_GNUSTEP="-lgnustep-gui -lgnustep-base -lobjc -lpthread"
       dnl GNUstep defines BASE_NATIVE_OBJC_EXCEPTIONS to 0 or 1.
       dnl If they had chosen to either define it or not, we could have
       dnl just used AC_CHECK_DECL here.
@@@ -1572,7 -1466,7 +1481,7 @@@ fail
    fi
  fi
  
- AC_SUBST(TEMACS_LDFLAGS2)
+ AC_SUBST(LIBS_GNUSTEP)
  
  INSTALL_ARCH_INDEP_EXTRA=install-etc
  ns_self_contained=no
@@@ -1610,53 -1504,35 +1519,62 @@@ AC_SUBST(INSTALL_ARCH_INDEP_EXTRA
  AC_SUBST(ns_self_contained)
  AC_SUBST(NS_OBJ)
  AC_SUBST(NS_OBJC_OBJ)
- AC_SUBST(LIB_STANDARD)
  
  HAVE_W32=no
  W32_OBJ=
  W32_LIBS=
+ W32_RES=
+ W32_RES_LINK=
  if test "${with_w32}" != no; then
    if test "${opsys}" != "cygwin"; then
 -    AC_MSG_ERROR([Using w32 with an autotools build is only supported for Cygwin.])
 +    if test "${opsys}" != "mingw32"; then
 +      AC_MSG_ERROR([Using w32 with an autotools build is only supported for Cygwin and MinGW32.])
 +    fi
    fi
    AC_CHECK_HEADER([windows.h], [HAVE_W32=yes],
                    [AC_MSG_ERROR([`--with-w32' was specified, but windows.h
                    cannot be found.])])
 +fi
 +if test "${opsys}" = "mingw32"; then
 +  AC_CHECK_HEADER([windows.h], [HAVE_W32=yes],
 +                  [AC_MSG_ERROR([The windows.h header file is required,
 +                but cannot be found.])])
 +  AC_MSG_CHECKING([whether Windows API headers are recent enough])
 +  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 +     #include <windows.h>
 +     #include <usp10.h>]],
 +   [[void test(PIMAGE_NT_HEADERS pHeader)
 +     {PIMAGE_SECTION_HEADER pSection = IMAGE_FIRST_SECTION(pHeader);}]])],
 +   emacs_cv_w32api=yes, emacs_cv_w32api=no)
 +  AC_MSG_RESULT($emacs_cv_w32api)
 +  if test "${emacs_cv_w32api}" = "no"; then
 +    AC_MSG_ERROR([the Windows API headers are too old to support this build.])
 +  fi
 +fi
 +
 +if test "${HAVE_W32}" = "yes"; then
    AC_DEFINE(HAVE_NTGUI, 1, [Define to use native MS Windows GUI.])
+   AC_CHECK_TOOL(WINDRES, [windres],
+                 [AC_MSG_ERROR([No resource compiler found.])])
    W32_OBJ="w32fns.o w32menu.o w32reg.o w32font.o w32term.o"
    W32_OBJ="$W32_OBJ w32xfns.o w32select.o w32uniscribe.o"
 -  W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32"
 -  W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool"
 -  W32_RES="emacs.res"
 -  # Tell the linker that emacs.res is an object (which we compile from
 -  # the rc file), not a linker script.
 -  W32_RES_LINK="-Wl,-bpe-i386 -Wl,emacs.res"
 +  if test "${opsys}" = "cygwin"; then
 +    W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32"
 +    W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool"
++    W32_RES="emacs.res"
++    # Tell the linker that emacs.res is an object (which we compile from
++    # the rc file), not a linker script.
++    W32_RES_LINK="-Wl,-bpe-i386 -Wl,emacs.res"
 +  else
 +    W32_OBJ="$W32_OBJ w32.o w32console.o w32heap.o w32inevt.o w32proc.o"
 +    W32_LIBS="$W32_LIBS -lwinmm -ladvapi32 -lgdi32 -lcomdlg32 -luser32"
 +    W32_LIBS="$W32_LIBS -lmpr -lshell32 -lwinspool -lole32 -lcomctl32 -lusp10"
 +  fi
  fi
  AC_SUBST(W32_OBJ)
  AC_SUBST(W32_LIBS)
+ AC_SUBST(W32_RES)
+ AC_SUBST(W32_RES_LINK)
  
  if test "${HAVE_W32}" = "yes"; then
    window_system=w32
@@@ -1704,11 -1580,6 +1622,6 @@@ dnl use the toolkit if we have gtk, or 
    ;;
  esac
  
- if test -n "${term_header}"; then
-     AC_DEFINE_UNQUOTED(TERM_HEADER, "${term_header}",
-         [Define to the header for the built-in window system.])
- fi
  if test "$window_system" = none && test "X$with_x" != "Xno"; then
     AC_CHECK_PROG(HAVE_XSERVER, X, true, false)
     if test "$HAVE_XSERVER" = true ||
@@@ -1767,6 -1638,20 +1680,20 @@@ if test "${system_malloc}" = "yes"; the
  else
    test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o
    VMLIMIT_OBJ=vm-limit.o
+   AC_CHECK_HEADERS([sys/vlimit.h])
+   AC_CACHE_CHECK([for data_start], [emacs_cv_data_start],
+     [AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+        [[extern char data_start[]; char ch;]],
+        [[return data_start < &ch;]])],
+        [emacs_cv_data_start=yes],
+        [emacs_cv_data_start=no])])
+   if test $emacs_cv_data_start = yes; then
+     AC_DEFINE([HAVE_DATA_START], 1,
+       [Define to 1 if data_start is the address of the start
+        of the main data segment.])
+   fi
  fi
  AC_SUBST(GMALLOC_OBJ)
  AC_SUBST(VMLIMIT_OBJ)
@@@ -1936,7 -1821,7 +1863,7 @@@ if test "${HAVE_X11}" = "yes"; the
        emacs_xkb=yes, emacs_xkb=no)
    AC_MSG_RESULT($emacs_xkb)
    if test $emacs_xkb = yes; then
-     AC_DEFINE(HAVE_XKBGETKEYBOARD, 1, [Define to 1 if you have the XkbGetKeyboard function.])
+     AC_DEFINE(HAVE_XKB, 1, [Define to 1 if you have the Xkb extension.])
    fi
  
    AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
  
  ### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified.
  HAVE_RSVG=no
 -if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes"; then
 +if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes" || test "${opsys}" = "mingw32"; then
    if test "${with_rsvg}" != "no"; then
      RSVG_REQUIRED=2.11.0
      RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED"
@@@ -1995,7 -1880,8 +1922,8 @@@ if test "${HAVE_X11}" = "yes"; the
      ## 6.2.8 is the earliest version known to work, but earlier versions
      ## might work - let us know if you find one.
      ## 6.0.7 does not work.  See bug#7955.
-     IMAGEMAGICK_MODULE="Wand >= 6.2.8"
+     ## 6.8.2 makes Emacs crash; see Bug#13867.
+     IMAGEMAGICK_MODULE="Wand >= 6.2.8 Wand != 6.8.2"
      PKG_CHECK_MODULES(IMAGEMAGICK, $IMAGEMAGICK_MODULE, HAVE_IMAGEMAGICK=yes, :)
      AC_SUBST(IMAGEMAGICK_CFLAGS)
      AC_SUBST(IMAGEMAGICK_LIBS)
@@@ -2014,42 -1900,43 +1942,45 @@@ HAVE_GTK=n
  GTK_OBJ=
  check_gtk2=no
  gtk3_pkg_errors=
 -if test "${with_gtk3}" = "yes" || test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then
 -  GLIB_REQUIRED=2.28
 -  GTK_REQUIRED=3.0
 -  GTK_MODULES="gtk+-3.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
 -
 -  dnl Checks for libraries.
 -  PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
 -  if test "$pkg_check_gtk" = "no" && test "$with_gtk3" = "yes"; then
 -     AC_MSG_ERROR($GTK_PKG_ERRORS)
 -  fi
 -  if test "$pkg_check_gtk" = "yes"; then
 -     AC_DEFINE(HAVE_GTK3, 1, [Define to 1 if using GTK 3 or later.])
 -     GTK_OBJ=emacsgtkfixed.o
 -     term_header=gtkutil.h
 -     USE_GTK_TOOLKIT="GTK3"
 -     if test "x$ac_enable_gtk_deprecation_warnings" = x; then
 -         GTK_CFLAGS="$GTK_CFLAGS -DGDK_DISABLE_DEPRECATION_WARNINGS"
 -     fi
 -  else
 -     check_gtk2=yes
 -     gtk3_pkg_errors="$GTK_PKG_ERRORS "
 +if test "${opsys}" != "mingw32"; then
 +  if test "${with_gtk3}" = "yes" || test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then
 +    GLIB_REQUIRED=2.28
 +    GTK_REQUIRED=3.0
 +    GTK_MODULES="gtk+-3.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
 +
 +    dnl Checks for libraries.
 +    PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
 +    if test "$pkg_check_gtk" = "no" && test "$with_gtk3" = "yes"; then
 +       AC_MSG_ERROR($GTK_PKG_ERRORS)
 +    fi
 +    if test "$pkg_check_gtk" = "yes"; then
 +       AC_DEFINE(HAVE_GTK3, 1, [Define to 1 if using GTK 3 or later.])
 +       GTK_OBJ=emacsgtkfixed.o
 +       term_header=gtkutil.h
 +       USE_GTK_TOOLKIT="GTK3"
++       if test "x$ac_enable_gtk_deprecation_warnings" = x; then
++                GTK_CFLAGS="$GTK_CFLAGS -DGDK_DISABLE_DEPRECATION_WARNINGS"
++       fi
 +    else
 +       check_gtk2=yes
 +       gtk3_pkg_errors="$GTK_PKG_ERRORS "
 +    fi
    fi
 -fi
  
 -if test "${with_gtk2}" = "yes" || test "$check_gtk2" = "yes"; then
 -  GLIB_REQUIRED=2.10
 -  GTK_REQUIRED=2.10
 -  GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
 -
 -  dnl Checks for libraries.
 -  PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
 -  if test "$pkg_check_gtk" = "no" &&
 -     { test "$with_gtk" = yes || test "$with_gtk2" = "yes"; }
 -  then
 -    AC_MSG_ERROR($gtk3_pkg_errors$GTK_PKG_ERRORS)
 +  if test "${with_gtk2}" = "yes" || test "$check_gtk2" = "yes"; then
 +    GLIB_REQUIRED=2.10
 +    GTK_REQUIRED=2.10
 +    GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
 +
 +    dnl Checks for libraries.
 +    PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
 +    if test "$pkg_check_gtk" = "no" &&
 +       { test "$with_gtk" = yes || test "$with_gtk2" = "yes"; }
 +    then
 +      AC_MSG_ERROR($gtk3_pkg_errors$GTK_PKG_ERRORS)
 +    fi
 +    test "$pkg_check_gtk" = "yes" && USE_GTK_TOOLKIT="GTK2"
    fi
 -  test "$pkg_check_gtk" = "yes" && USE_GTK_TOOLKIT="GTK2"
  fi
  
  if test x"$pkg_check_gtk" = xyes; then
      AC_DEFINE(USE_GTK, 1, [Define to 1 if using GTK.])
      GTK_OBJ="gtkutil.o $GTK_OBJ"
      USE_X_TOOLKIT=none
-     if $PKG_CONFIG --atleast-version=2.10 gtk+-2.0; then
+     if "$PKG_CONFIG" --atleast-version=2.10 gtk+-2.0; then
        :
      else
        AC_MSG_WARN([[Your version of Gtk+ will have problems with
@@@ -2106,6 -1993,23 +2037,23 @@@ if test "${HAVE_GTK}" = "yes"; the
      AC_CHECK_FUNCS(gtk_file_selection_new)
    fi
  
+   dnl Same as above for gtk_handle_box.
+   HAVE_GTK_HANDLE_BOX=no
+   AC_CHECK_DECL(GTK_TYPE_HANDLE_BOX, HAVE_GTK_HANDLE_BOX=yes,
+                    HAVE_GTK_HANDLE_BOX=no, [AC_INCLUDES_DEFAULT
+ #include <gtk/gtk.h>])
+   if test "$HAVE_GTK_HANDLE_BOX" = yes; then
+     AC_CHECK_FUNCS(gtk_handle_box_new)
+   fi
+   dnl Same as above for gtk_tearoff_menu_item.
+   HAVE_GTK_TEAROFF_MENU_ITEM=no
+   AC_CHECK_DECL(GTK_TYPE_TEAROFF_MENU_ITEM, HAVE_GTK_TEAROFF_MENU_ITEM=yes,
+                    HAVE_GTK_TEAROFF_MENU_ITEM=no, [AC_INCLUDES_DEFAULT
+ #include <gtk/gtk.h>])
+   if test "$HAVE_GTK_TEAROFF_MENU_ITEM" = yes; then
+     AC_CHECK_FUNCS(gtk_tearoff_menu_item_new)
+   fi
  
    dnl Check for functions introduced in 2.14 and later.
    AC_CHECK_FUNCS(gtk_widget_get_window gtk_widget_set_has_window \
@@@ -2209,16 -2113,39 +2157,44 @@@ if test "${with_gnutls}" = "yes" ; the
    if test "${HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY}" = "yes"; then
      AC_DEFINE(HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY, 1, [Define if using GnuTLS certificate verification callbacks.])
    fi
 +
 +  # Windows loads GnuTLS dynamically
 +  if test "${opsys}" = "mingw32"; then
 +    LIBGNUTLS_LIBS=
 +  fi
  fi
  
  AC_SUBST(LIBGNUTLS_LIBS)
  AC_SUBST(LIBGNUTLS_CFLAGS)
  
+ dnl inotify is only available on GNU/Linux.
+ if test "${with_inotify}" = "yes"; then
+    AC_CHECK_HEADERS(sys/inotify.h)
+    if test "$ac_cv_header_sys_inotify_h" = yes ; then
+      AC_CHECK_FUNC(inotify_init1)
+    fi
+ fi
+ if test "$ac_cv_func_inotify_init1" = yes; then
+   AC_DEFINE(HAVE_INOTIFY, 1, [Define to 1 to use inotify.])
+ fi
+ dnl POSIX ACL support: provided by libacl on GNU/Linux, by libc on FreeBSD.
+ HAVE_POSIX_ACL=no
+ LIBACL_LIBS=
+ if test "${with_acl}" = "yes"; then
+   AC_CHECK_LIB([acl], [acl_set_file], HAVE_POSIX_ACL=yes, HAVE_POSIX_ACL=no)
+   if test "$HAVE_POSIX_ACL" = yes; then
+     AC_DEFINE(HAVE_POSIX_ACL, 1, [Define to 1 if using POSIX ACL support.])
+     LIBACL_LIBS=-lacl
+   else
+     AC_CHECK_FUNC(acl_set_file, HAVE_POSIX_ACL=yes, HAVE_POSIX_ACL=no)
+     if test "$HAVE_POSIX_ACL" = yes; then
+       AC_DEFINE(HAVE_POSIX_ACL, 1, [Define to 1 if using POSIX ACL support.])
+     fi
+  fi
+ fi
+ AC_SUBST(LIBACL_LIBS)
  dnl Do not put whitespace before the #include statements below.
  dnl Older compilers (eg sunos4 cc) choke on it.
  HAVE_XAW3D=no
@@@ -2318,9 -2245,6 +2294,9 @@@ case $opsys i
    hpux* | aix4-2 )
      test "X$ac_cv_lib_Xmu_XmuConvertStandardSelection" != "Xyes" && LIBXMU=
      ;;
 +  mingw32 )
 +    LIBXMU=
 +    ;;
  esac
  AC_SUBST(LIBXMU)
  
@@@ -2579,10 -2503,10 +2555,10 @@@ AC_SUBST(M17N_FLT_CFLAGS
  AC_SUBST(M17N_FLT_LIBS)
  
  ### Use -lXpm if available, unless `--with-xpm=no'.
 +### mingw32 doesn't use -lXpm, since it loads the library dynamically.
  HAVE_XPM=no
  LIBXPM=
 -
 -if test "${HAVE_W32}" = "yes"; then
 +if test "${HAVE_W32}" = "yes" && test "${opsys}" = "cygwin"; then
    if test "${with_xpm}" != "no"; then
      SAVE_CPPFLAGS="$CPPFLAGS"
      SAVE_LDFLAGS="$LDFLAGS"
@@@ -2643,29 -2567,19 +2619,29 @@@ no_return_alloc_pixel
    fi
  fi
  
 +if test "${opsys}" = "mingw32"; then
 +  if test "${with_xpm}" != "no"; then
 +    AC_CHECK_HEADER(X11/xpm.h, HAVE_XPM=yes, HAVE_XPM=no, [
 +#define FOR_MSW 1])
 +  fi
 +
 +  if test "${HAVE_XPM}" = "yes"; then
 +    AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm library (-lXpm).])
 +  fi
 +fi
 +
  AC_SUBST(LIBXPM)
  
  ### Use -ljpeg if available, unless `--with-jpeg=no'.
 +### mingw32 doesn't use -ljpeg, since it loads the library dynamically.
  HAVE_JPEG=no
  LIBJPEG=
 -if test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
 +if test "${opsys}" = "mingw32"; then
    if test "${with_jpeg}" != "no"; then
      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)])
 +    dnl HAVE_STDLIB_H.
 +    AC_CHECK_HEADER(jerror.h, HAVE_JPEG=yes, HAVE_JPEG=no)
    fi
 -
    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_MSG_WARN([libjpeg found, but not version 6b or later])
          HAVE_JPEG=no])
    fi
 +elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
 +  if test "${with_jpeg}" != "no"; then
 +    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)])
 +  fi
 +
 +  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([version= *(6[2-9]|[7-9][0-9])],
 +      [#include <jpeglib.h>
 +       version=JPEG_LIB_VERSION
 +],
 +      [AC_DEFINE(HAVE_JPEG)],
 +      [AC_MSG_WARN([libjpeg found, but not version 6b or later])
 +      HAVE_JPEG=no])
 +  fi
    if test "${HAVE_JPEG}" = "yes"; then
      LIBJPEG=-ljpeg
    fi
  AC_SUBST(LIBJPEG)
  
  ### Use -lpng if available, unless `--with-png=no'.
 +### mingw32 doesn't use -lpng, since it loads the library dynamically.
  HAVE_PNG=no
  LIBPNG=
 -if test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
 +if test "${opsys}" = "mingw32"; then
 +  if test "${with_png}" != "no"; then
 +    AC_CHECK_HEADER(png.h, HAVE_PNG=yes, HAVE_PNG=no)
 +  fi
 +  if test "${HAVE_PNG}" = "yes"; then
 +    AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).])
 +
 +    AC_CHECK_DECL(png_longjmp,
 +      [],
 +      [AC_DEFINE(PNG_DEPSTRUCT, [],
 +       [Define to empty to suppress deprecation warnings when building
 +        with --enable-gcc-warnings and with libpng versions before 1.5,
 +        which lack png_longjmp.])],
 +      [[#ifdef HAVE_LIBPNG_PNG_H
 +      # include <libpng/png.h>
 +      #else
 +      # include <png.h>
 +      #endif
 +      ]])
 +  fi
 +elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
    if test "${with_png}" != "no"; then
      # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
      # in /usr/include/libpng.
  AC_SUBST(LIBPNG)
  
  ### Use -ltiff if available, unless `--with-tiff=no'.
 +### mingw32 doesn't use -ltiff, since it loads the library dynamically.
  HAVE_TIFF=no
  LIBTIFF=
 -if test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
 +if test "${opsys}" = "mingw32"; then
 +  if test "${with_tiff}" != "no"; then
 +    AC_CHECK_HEADER(tiffio.h, HAVE_TIFF=yes, HAVE_TIFF=no)
 +  fi
 +  if test "${HAVE_TIFF}" = "yes"; then
 +    AC_DEFINE(HAVE_TIFF, 1, [Define to 1 if you have the tiff library (-ltiff).])
 +  fi
 +elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
    if test "${with_tiff}" != "no"; then
      AC_CHECK_HEADER(tiffio.h,
        [tifflibs="-lz -lm"
  AC_SUBST(LIBTIFF)
  
  ### Use -lgif or -lungif if available, unless `--with-gif=no'.
 +### mingw32 doesn't use -lgif/-lungif, since it loads the library dynamically.
  HAVE_GIF=no
  LIBGIF=
 -if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no" \
 +if test "${opsys}" = "mingw32"; then
 +  if test "${with_gif}" != "no"; then
 +    AC_CHECK_HEADER(gif_lib.h, HAVE_GIF=yes, HAVE_GIF=no)
 +  fi
 +  if test "${HAVE_GIF}" = "yes"; then
 +    AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have a gif (or ungif) library.])
 +  fi
 +elif test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no" \
          || test "${HAVE_W32}" = "yes"; then
    AC_CHECK_HEADER(gif_lib.h,
  # EGifPutExtensionLast only exists from version libungif-4.1.0b1.
  AC_SUBST(LIBXSM)
  
  ### Use libxml (-lxml2) if available
 +### mingw32 doesn't use -lxml2, since it loads the library dynamically.
  HAVE_LIBXML2=no
  if test "${with_xml2}" != "no"; then
    ### I'm not sure what the version number should be, so I just guessed.
    PKG_CHECK_MODULES(LIBXML2, libxml-2.0 > 2.6.17, HAVE_LIBXML2=yes, HAVE_LIBXML2=no)
    if test "${HAVE_LIBXML2}" = "yes"; then
 -    LIBS="$LIBXML2_LIBS $LIBS"
 -    AC_CHECK_LIB(xml2, htmlReadMemory, HAVE_LIBXML2=yes, HAVE_LIBXML2=no)
 +    if test "${opsys}" != "mingw32"; then
 +      LIBS="$LIBXML2_LIBS $LIBS"
 +      AC_CHECK_LIB(xml2, htmlReadMemory, HAVE_LIBXML2=yes, HAVE_LIBXML2=no)
 +    else
 +      LIBXML2_LIBS=""
 +    fi
      if test "${HAVE_LIBXML2}" = "yes"; then
        AC_DEFINE(HAVE_LIBXML2, 1, [Define to 1 if you have the libxml library (-lxml2).])
      else
@@@ -2925,10 -2778,6 +2901,10 @@@ AC_SUBST(LIBXML2_LIBS
  AC_SUBST(LIBXML2_CFLAGS)
  
  # If netdb.h doesn't declare h_errno, we must declare it by hand.
 +# On MinGW, that is provided by nt/inc/sys/socket.h and w32.c.
 +if test "${opsys}" = "mingw32"; then
 +  emacs_cv_netdb_declares_h_errno=yes
 +fi
  AC_CACHE_CHECK(whether netdb declares h_errno,
               emacs_cv_netdb_declares_h_errno,
  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]],
@@@ -2939,10 -2788,8 +2915,10 @@@ if test $emacs_cv_netdb_declares_h_errn
  fi
  
  # sqrt and other floating-point functions such as fmod and frexp
 -# are found in -lm on most systems.
 -AC_CHECK_LIB(m, sqrt)
 +# are found in -lm on most systems, but mingw32 doesn't use -lm.
 +if test "${opsys}" != "mingw32"; then
 +  AC_CHECK_LIB(m, sqrt)
 +fi
  
  # Check for mail-locking functions in a "mail" library.  Probably this should
  # have the same check as for liblockfile below.
@@@ -3026,7 -2873,7 +3002,7 @@@ select getpagesize setlocale 
  utimes getrlimit setrlimit shutdown getaddrinfo \
  strsignal setitimer \
  sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \
- gai_strerror mkstemp getline getdelim fsync sync \
+ gai_strerror mkstemp getline getdelim sync \
  difftime posix_memalign \
  getpwent endpwent getgrent endgrent \
  touchlock \
@@@ -3085,29 -2932,25 +3061,29 @@@ AC_DEFUN([tputs_link_source], 
          return 0;
         }]])
  ])
 -# Maybe curses should be tried earlier?
 -# See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9736#35
 -for tputs_library in '' tinfo ncurses terminfo termcap curses; do
 -  OLIBS=$LIBS
 -  if test -z "$tputs_library"; then
 -    LIBS_TERMCAP=
 -    msg='none required'
 -  else
 -    LIBS_TERMCAP=-l$tputs_library
 -    msg=$LIBS_TERMCAP
 -    LIBS="$LIBS_TERMCAP $LIBS"
 -  fi
 -  AC_RUN_IFELSE([tputs_link_source], [], [msg=no],
 -    [AC_LINK_IFELSE([tputs_link_source], [], [msg=no])])
 -  LIBS=$OLIBS
 -  if test "X$msg" != Xno; then
 -    break
 -  fi
 -done
 +if test "${opsys}" = "mingw32"; then
 +  msg='none required'
 +else
 +  # Maybe curses should be tried earlier?
 +  # See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9736#35
 +  for tputs_library in '' tinfo ncurses terminfo termcap curses; do
 +    OLIBS=$LIBS
 +    if test -z "$tputs_library"; then
 +      LIBS_TERMCAP=
 +      msg='none required'
 +    else
 +      LIBS_TERMCAP=-l$tputs_library
 +      msg=$LIBS_TERMCAP
 +      LIBS="$LIBS_TERMCAP $LIBS"
 +    fi
 +    AC_RUN_IFELSE([tputs_link_source], [], [msg=no],
 +      [AC_LINK_IFELSE([tputs_link_source], [], [msg=no])])
 +    LIBS=$OLIBS
 +    if test "X$msg" != Xno; then
 +      break
 +    fi
 +  done
 +fi
  AC_MSG_RESULT([$msg])
  if test "X$msg" = Xno; then
    AC_MSG_ERROR([The required function `tputs' was not found in any library.
@@@ -3153,11 -2996,6 +3129,11 @@@ fail
      fi
      ;;
  
 +  mingw32)
 +    TERMINFO=no
 +    LIBS_TERMCAP=
 +    ;;
 +
    netbsd)
      if test "x$LIBS_TERMCAP" != "x-lterminfo"; then
        TERMINFO=no
@@@ -3450,22 -3288,18 +3426,22 @@@ dnl Turned on June 1996 supposing nobod
  AC_DEFINE(AMPERSAND_FULL_NAME, 1, [Define to use the convention that &
    in the full name stands for the login id.])
  
 -dnl Every platform that uses configure (ie every non-MS platform)
 +dnl Every platform that uses configure, except MinGW,
  dnl supports this.  There is a create-lockfiles option you can
  dnl customize if you do not want the lock files to be written.
  dnl So it is not clear that this #define still needs to exist.
 -AC_DEFINE(CLASH_DETECTION, 1, [Define if you want lock files to be written,
 -  so that Emacs can tell instantly when you try to modify a file that
 -  someone else has modified in his/her Emacs.])
 +if test "${opsys}" != "mingw32"; then
 +  AC_DEFINE(CLASH_DETECTION, 1, [Define if you want lock files to be written,
 +    so that Emacs can tell instantly when you try to modify a file that
 +    someone else has modified in his/her Emacs.])
 +fi
  
  dnl Everybody supports this, except MS.
  dnl Seems like the kind of thing we should be testing for, though.
  ## Note: PTYs are broken on darwin <6.  Use at your own risk.
 -AC_DEFINE(HAVE_PTYS, 1, [Define if the system supports pty devices.])
 +if test "${opsys}" != "mingw32"; then
 +  AC_DEFINE(HAVE_PTYS, 1, [Define if the system supports pty devices.])
 +fi
  
  dnl Everybody supports this, except MS-DOS.
  dnl Seems like the kind of thing we should be testing for, though.
@@@ -3475,19 -3309,10 +3451,19 @@@ AC_DEFINE(HAVE_SOCKETS, 1, [Define if t
  
  AH_TEMPLATE(INTERNAL_TERMINAL, [This is substituted when $TERM is "internal".])
  
 -AC_DEFINE(NULL_DEVICE, ["/dev/null"], [Name of the file to open to get
 -  a null file, or a data sink.])
 +if test "${opsys}" = "mingw32"; then
 +  AC_DEFINE(NULL_DEVICE, ["NUL:"], [Name of the file to open to get
 +    a null file, or a data sink.])
 +else
 +  AC_DEFINE(NULL_DEVICE, ["/dev/null"], [Name of the file to open to get
 +    a null file, or a data sink.])
 +fi
  
 -AC_DEFINE(SEPCHAR, [':'], [Character that separates PATH elements.])
 +if test "${opsys}" = "mingw32"; then
 +  AC_DEFINE(SEPCHAR, [';'], [Character that separates PATH elements.])
 +else
 +  AC_DEFINE(SEPCHAR, [':'], [Character that separates PATH elements.])
 +fi
  
  dnl Everybody supports this, except MS-DOS.
  AC_DEFINE(subprocesses, 1, [Define to enable asynchronous subprocesses.])
@@@ -3498,29 -3323,19 +3474,29 @@@ AC_DEFINE(USER_FULL_NAME, [pw->pw_gecos
  AC_DEFINE(DIRECTORY_SEP, ['/'],
    [Character that separates directories in a file name.])
  
 -dnl Only used on MS platforms.
 -AH_TEMPLATE(DEVICE_SEP, [Character that separates a device in a file name.])
 +if test "${opsys}" = "mingw32"; then
 +  dnl Only used on MS platforms.
 +  AC_DEFINE(DEVICE_SEP, ':', [Character that separates a device in a file name.])
 +  AC_DEFINE(IS_DEVICE_SEP(_c_), [((_c_) == DEVICE_SEP)],
 +    [Returns true if character is a device separator.])
 +
 +  AC_DEFINE(IS_DIRECTORY_SEP(_c_), [((_c_) == '/' || (_c_) == '\\')],
 +    [Returns true if character is a directory separator.])
  
 -AC_DEFINE(IS_DEVICE_SEP(_c_), 0,
 -  [Returns true if character is a device separator.])
 +  AC_DEFINE(IS_ANY_SEP(_c_), [(IS_DIRECTORY_SEP (_c_) || IS_DEVICE_SEP(_c_))],
 +    [Returns true if character is any form of separator.])
 +else
 +  AH_TEMPLATE(DEVICE_SEP, [Character that separates a device in a file name.])
  
 -AC_DEFINE(IS_DIRECTORY_SEP(_c_), [((_c_) == DIRECTORY_SEP)],
 -  [Returns true if character is a directory separator.])
 +  AC_DEFINE(IS_DEVICE_SEP(_c_), 0,
 +    [Returns true if character is a device separator.])
  
 -dnl On MS, this also accepts IS_DEVICE_SEP.
 -AC_DEFINE(IS_ANY_SEP(_c_), [(IS_DIRECTORY_SEP (_c_))],
 -  [Returns true if character is any form of separator.])
 +  AC_DEFINE(IS_DIRECTORY_SEP(_c_), [((_c_) == DIRECTORY_SEP)],
 +    [Returns true if character is a directory separator.])
  
 +  AC_DEFINE(IS_ANY_SEP(_c_), [(IS_DIRECTORY_SEP (_c_))],
 +    [Returns true if character is any form of separator.])
 +fi
  
  AH_TEMPLATE(NO_EDITRES, [Define if XEditRes should not be used.])
  
@@@ -3761,7 -3576,7 +3737,7 @@@ case $opsys i
      AC_DEFINE(PTY_ITERATION, [])
      dnl Not used, because PTY_ITERATION is defined.
      AC_DEFINE(FIRST_PTY_LETTER, ['q'])
-     AC_DEFINE(PTY_OPEN, [ { struct sigaction ocstat, cstat; struct stat stb; char * name; sigemptyset(&cstat.sa_mask); cstat.sa_handler = SIG_DFL; cstat.sa_flags = 0; sigaction(SIGCLD, &cstat, &ocstat); name = _getpty (&fd, O_RDWR | O_NDELAY, 0600, 0); sigaction(SIGCLD, &ocstat, (struct sigaction *)0); if (name == 0) return -1; if (fd < 0) return -1; if (fstat (fd, &stb) < 0) return -1; strcpy (pty_name, name); }])
+     AC_DEFINE(PTY_OPEN, [ { struct sigaction ocstat, cstat; struct stat stb; char * name; sigemptyset(&cstat.sa_mask); cstat.sa_handler = SIG_DFL; cstat.sa_flags = 0; sigaction(SIGCHLD, &cstat, &ocstat); name = _getpty (&fd, O_RDWR | O_NDELAY, 0600, 0); sigaction(SIGCHLD, &ocstat, (struct sigaction *)0); if (name == 0) return -1; if (fd < 0) return -1; if (fstat (fd, &stb) < 0) return -1; strcpy (pty_name, name); }])
      dnl No need to get the pty name at all.
      AC_DEFINE(PTY_NAME_SPRINTF, [])
      dnl No need to use sprintf to get the tty name--we get that from _getpty.
      dnl On SysVr4, grantpt(3) forks a subprocess, so keep sigchld_handler()
      dnl from intercepting that death.  If any child but grantpt's should die
      dnl within, it should be caught after sigrelse(2).
-     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, sizeof pty_name, "%s", ptyname); }])
+     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, sizeof pty_name, "%s", ptyname); }])
      ;;
  
    unixware )
      dnl Comments are as per sol2*.
-     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal("could not grant slave pty"); if (unlockpt(fd) == -1) fatal("could not unlock slave pty"); if (!(ptyname = ptsname(fd))) fatal ("could not enable slave pty"); snprintf (pty_name, sizeof pty_name, "%s", ptyname); }])
+     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal("could not grant slave pty"); if (unlockpt(fd) == -1) fatal("could not unlock slave pty"); if (!(ptyname = ptsname(fd))) fatal ("could not enable slave pty"); snprintf (pty_name, sizeof pty_name, "%s", ptyname); }])
      ;;
  esac
  
@@@ -3800,7 -3615,7 +3776,7 @@@ AH_TEMPLATE(SIGNALS_VIA_CHARACTERS, [Ma
  case $opsys in
    dnl Perry Smith <pedz@ddivt1.austin.ibm.com> says this is correct for AIX.
    dnl thomas@mathematik.uni-bremen.de says this is needed for IRIX.
-   aix4-2 | cygwin | gnu | irix6-5 | freebsd | netbsd | openbsd )
+   aix4-2 | cygwin | gnu | irix6-5 | freebsd | netbsd | openbsd | darwin )
      AC_DEFINE(SIGNALS_VIA_CHARACTERS, 1)
      ;;
  
  esac
  
  
- dnl Used in vm-limit.c
- AH_TEMPLATE(DATA_START, [Address of the start of the data segment.])
- dnl Used in lisp.h, emacs.c, mem-limits.h
+ dnl Used in lisp.h, emacs.c, vm-limit.c
  dnl NEWS.18 describes this as "a number which contains
  dnl the high bits to be inclusive or'ed with pointers that are unpacked."
  AH_TEMPLATE(DATA_SEG_BITS, [Extra bits to be or'd in with any pointers
@@@ -3832,24 -3645,20 +3806,20 @@@ stored in a Lisp_Object.]
  dnl if Emacs uses fewer than 32 bits for the value field of a LISP_OBJECT.
  
  case $opsys in
-   gnu)
-     dnl libc defines data_start.
-     AC_DEFINE(DATA_START, [({ extern int data_start; (char *) &data_start; })])
+   aix*)
+     dnl This works with 32-bit executables; Emacs doesn't support 64-bit.
+     AC_DEFINE(DATA_SEG_BITS, [0x20000000])
      ;;
    hpux*)
      dnl The data segment on this machine always starts at address 0x40000000.
-     AC_DEFINE(DATA_START, [0x40000000])
      AC_DEFINE(DATA_SEG_BITS, [0x40000000])
      ;;
    irix6-5)
-     AC_DEFINE(DATA_START, [0x10000000])
      AC_DEFINE(DATA_SEG_BITS, [0x10000000])
      ;;
  esac
  
  
- AH_TEMPLATE(ULIMIT_BREAK_VALUE, [Undocumented.])
  AH_TEMPLATE(TAB3, [Undocumented.])
  
  case $opsys in
      ;;
  
    gnu-linux | gnu-kfreebsd )
-     dnl libc-linux/sysdeps/linux/i386/ulimit.c says that due to shared
-     dnl library, we cannot get the maximum address for brk.
-     AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
- #ifndef __i386__
- # error "not i386"
- #endif
-       ]], [[]])], AC_DEFINE(ULIMIT_BREAK_VALUE, [(32*1024*1024)]), [])
      AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
  #ifndef __ia64__
  # error "not ia64"
      AC_DEFINE(RUN_TIME_REMAP, 1, [Define if emacs.c needs to call
        run_time_remap; for HPUX.])
      ;;
-   irix6-5)
-     dnl Ulimit(UL_GMEMLIM) is busted...
-     AC_DEFINE(ULIMIT_BREAK_VALUE, [0x14000000])
-     ;;
  esac
  
  
- dnl These won't be used automatically yet.  We also need to know, at least,
+ dnl This won't be used automatically yet.  We also need to know, at least,
  dnl that the stack is continuous.
  AH_TEMPLATE(GC_SETJMP_WORKS, [Define if setjmp is known to save all
    registers relevant for conservative garbage collection in the jmp_buf.])
  
- AH_TEMPLATE(GC_MARK_STACK, [Define to GC_USE_GCPROS_AS_BEFORE if
-   conservative garbage collection is not known to work.])
  
  case $opsys in
-   aix4-2 | hpux* | unixware)
-     dnl Conservative garbage collection has not been tested, so for now
-     dnl play it safe and stick with the old-fashioned way of marking.
-     AC_DEFINE(GC_MARK_STACK, [GC_USE_GCPROS_AS_BEFORE])
-     ;;
    dnl Not all the architectures are tested, but there are Debian packages
    dnl for SCM and/or Guile on them, so the technique must work.  See also
    dnl comments in alloc.c concerning setjmp and gcc.
  #else
  # error "setjmp not known to work on this arch"
  #endif
-     ]], [[]])], AC_DEFINE(GC_SETJMP_WORKS, 1),
-       AC_DEFINE(GC_MARK_STACK, [GC_USE_GCPROS_AS_BEFORE]) )
+     ]], [[]])], AC_DEFINE(GC_SETJMP_WORKS, 1))
      ;;
  esac
  
    esac
  fi                              dnl GCC?
  
 +dnl In a weird quirk, MS runtime uses _setjmp and longjmp.
  AC_CACHE_CHECK([for _setjmp], [emacs_cv_func__setjmp],
    [AC_LINK_IFELSE(
       [AC_LANG_PROGRAM(
         [[#include <setjmp.h>
 +         #ifdef __MINGW32__
 +         # define _longjmp longjmp
 +         #endif
         ]],
         [[jmp_buf j;
         if (! _setjmp (j))
@@@ -3993,8 -3775,6 +3940,6 @@@ esa
  
  dnl Define symbols to identify the version of Unix this is.
  dnl Define all the symbols that apply correctly.
- AH_TEMPLATE(BSD4_2, [Define if the system is compatible with BSD 4.2.])
- AH_TEMPLATE(BSD_SYSTEM, [Define if the system is compatible with BSD 4.2.])
  AH_TEMPLATE(DOS_NT, [Define if the system is MS DOS or MS Windows.])
  AH_TEMPLATE(MSDOS, [Define if the system is MS DOS.])
  AH_TEMPLATE(USG, [Define if the system is compatible with System III.])
@@@ -4018,33 -3798,12 +3963,12 @@@ case $opsys i
      ;;
  
    darwin)
-     dnl BSD4_3 and BSD4_4 are already defined in sys/param.h.
-     AC_DEFINE(BSD4_2, [])
-     AC_DEFINE(BSD_SYSTEM, [])
-     dnl More specific than the above two.  We cannot use __APPLE__ as this
-     dnl may not be defined on non-OSX Darwin, and we cannot define DARWIN
-     dnl here because Panther and lower CoreFoundation.h uses DARWIN to
+     dnl Not __APPLE__, as this may not be defined on non-OSX Darwin.
+     dnl Not DARWIN, because Panther and lower CoreFoundation.h use DARWIN to
      dnl distinguish OS X from pure Darwin.
      AC_DEFINE(DARWIN_OS, [], [Define if the system is Darwin.])
      ;;
  
-   freebsd)
-     AC_DEFINE(BSD4_2, [])
-     dnl Hack to avoid calling AC_PREPROC_IFELSE multiple times.
-     dnl Would not be needed with autoconf >= 2.67, where the
-     dnl preprocessed output is accessible in "conftest.i".
-     AC_DEFINE(BSD_SYSTEM_AHB, 1, [Define if AH_BOTTOM should change BSD_SYSTEM.])
-     ;;
-   gnu | netbsd | openbsd )
-     AC_DEFINE(BSD4_2, [])
-     AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
- #ifndef BSD_SYSTEM
- # error "BSD_SYSTEM not defined"
- #endif
-     ]], [[]])], [], AC_DEFINE(BSD_SYSTEM, 43) )
-     ;;
    gnu-linux | gnu-kfreebsd )
      AC_DEFINE(USG, [])
      AC_DEFINE(GNU_LINUX, [], [Define if ths system is compatible with GNU/Linux.])
      AC_DEFINE(IRIX6_5, [], [Define if the system is IRIX.])
      ;;
  
 +  mingw32)
 +    AC_DEFINE(DOS_NT, [])
 +    AC_DEFINE(WINDOWSNT, 1, [Define if compiling for native MS Windows.])
 +    ;;
 +
    sol2*)
      AC_DEFINE(USG, [])
      AC_DEFINE(USG5, [])
@@@ -4089,10 -3843,6 +4013,10 @@@ AC_CACHE_CHECK([for usable FIONREAD], [
         emacs_cv_usable_FIONREAD=no
         ;;
  
 +     mingw32)
 +       emacs_cv_usable_FIONREAD=yes
 +       ;;
 +
       *)
         AC_COMPILE_IFELSE(
         [AC_LANG_PROGRAM([[#include <sys/types.h>
  
  version=$PACKAGE_VERSION
  
- copyright="Copyright (C) 2012 Free Software Foundation, Inc."
+ copyright="Copyright (C) 2013 Free Software Foundation, Inc."
  AC_DEFINE_UNQUOTED(COPYRIGHT, ["$copyright"],
    [Short copyright string for this version of Emacs.])
  AC_SUBST(copyright)
  
  AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "${canonical}",
                   [Define to the canonical Emacs configuration name.])
- AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}",
+ dnl Replace any embedded " characters (bug#13274).
+ emacs_config_options=`echo "$emacs_config_options " | sed -e 's/--no-create //' -e 's/--no-recursion //' -e 's/ *$//' -e "s/\"/'/g"`
+ AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${emacs_config_options}",
                   [Define to the options passed to configure.])
  AH_TEMPLATE(config_opsysfile, [Some platforms that do not use configure
    define this to include extra configuration information.])
@@@ -4291,14 -4043,12 +4217,14 @@@ case "$USE_X_TOOLKIT" i
  esac
  AC_SUBST(TOOLKIT_LIBW)
  
 -if test "$USE_X_TOOLKIT" = "none"; then
 -  LIBXT_OTHER="\$(LIBXSM)"
 -  OLDXMENU_TARGET="really-oldXMenu"
 -else
 -  LIBXT_OTHER="\$(LIBXMU) -lXt \$(LIBXTR6) -lXext"
 -  OLDXMENU_TARGET="really-lwlib"
 +if test "${opsys}" != "mingw32"; then
 +  if test "$USE_X_TOOLKIT" = "none"; then
 +    LIBXT_OTHER="\$(LIBXSM)"
 +    OLDXMENU_TARGET="really-oldXMenu"
 +  else
 +    LIBXT_OTHER="\$(LIBXMU) -lXt \$(LIBXTR6) -lXext"
 +    OLDXMENU_TARGET="really-lwlib"
 +  fi
  fi
  AC_SUBST(LIBXT_OTHER)
  
@@@ -4372,10 -4122,6 +4298,10 @@@ if test "$opsys" = "cygwin"; the
    ## Cygwin differs because of its unexec().
    PRE_ALLOC_OBJ=
    POST_ALLOC_OBJ=lastfile.o
 +elif test "$opsys" = "mingw32"; then
 +  CYGWIN_OBJ=
 +  PRE_ALLOC_OBJ=
 +  POST_ALLOC_OBJ=lastfile.o
  else
    CYGWIN_OBJ=
    PRE_ALLOC_OBJ=lastfile.o
@@@ -4403,12 -4149,6 +4329,12 @@@ gl_INI
  CFLAGS=$SAVE_CFLAGS
  LIBS=$SAVE_LIBS
  
 +if test "${opsys}" = "mingw32"; then
 +  CPPFLAGS="-DUSE_CRT_DLL=1 -I../nt/inc"
 +  # Remove unneeded switches from the value of CC that goes to Makefiles
 +  CC=`echo $CC | sed -e "s,$GCC_TEST_OPTIONS,,"`
 +fi
 +
  case "$opsys" in
    aix4-2) LD_SWITCH_SYSTEM_TEMACS="-Wl,-bnodelcsect" ;;
  
     LD_SWITCH_SYSTEM_TEMACS="-fno-pie -prebind $libs_nsgui -Xlinker -headerpad -Xlinker $headerpad_extra"
  
     ## This is here because src/Makefile.in did some extra fiddling around
-    ## with LD_SWITCH_SYSTEM.  The cpp logic was:
-    ##   #ifndef LD_SWITCH_SYSTEM
-    ##   #if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF)))
-    ## Since all the *bsds define LD_SWITCH_SYSTEM, this simplifies to:
-    ## not using gcc, darwin.
-    ## Because this was done in src/Makefile.in, the resulting part of
-    ## LD_SWITCH_SYSTEM was not used in configure (ie, in ac_link).
-    ## It therefore seems cleaner to put this in LD_SWITCH_SYSTEM_TEMACS,
-    ## rather than LD_SWITCH_SYSTEM.
+    ## with LD_SWITCH_SYSTEM.  It seems cleaner to put this in
+    ## LD_SWITCH_SYSTEM_TEMACS instead,
     test "x$LD_SWITCH_SYSTEM" = "x" && test "x$GCC" != "xyes" && \
       LD_SWITCH_SYSTEM_TEMACS="-X $LD_SWITCH_SYSTEM_TEMACS"
     ;;
    ## It seems clearer therefore to put this piece in LD_SWITCH_SYSTEM_TEMACS.
    gnu*) LD_SWITCH_SYSTEM_TEMACS="\$(LD_SWITCH_X_SITE_RPATH)" ;;
  
 +  mingw32)
 +   LD_SWITCH_SYSTEM_TEMACS="-Wl,-stack,0x00800000 -Wl,-heap,0x00100000 -Wl,-image-base,0x01000000 -Wl,-subsystem,console -Wl,-entry,__start -Wl,-Map,./temacs.map"
 +   ;;
 +
    *) LD_SWITCH_SYSTEM_TEMACS= ;;
  esac
  
- if test "$NS_IMPL_GNUSTEP" = "yes"; then
-   LD_SWITCH_SYSTEM_TEMACS="${LD_SWITCH_SYSTEM_TEMACS} -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES} -lgnustep-gui -lgnustep-base -lobjc -lpthread"
- fi
  AC_SUBST(LD_SWITCH_SYSTEM_TEMACS)
  
- LD_FIRSTFLAG=
- ORDINARY_LINK=
- case "$opsys" in
-   ## gnu: GNU needs its own crt0.
-   aix4-2|cygwin|darwin|gnu|hpux*|irix6-5|mingw32|sol2*|unixware) ORDINARY_LINK=yes ;;
-   ## On post 1.3 releases of NetBSD, gcc -nostdlib also clears the
-   ## library search parth, i.e. it won't search /usr/lib for libc and
-   ## friends.  Using -nostartfiles instead avoids this problem, and
-   ## will also work on earlier NetBSD releases.
-   netbsd|openbsd) LD_FIRSTFLAG="-nostartfiles" ;;
-   ## powerpc*: NAKAJI Hiroyuki <nakaji@tutrp.tut.ac.jp> says
-   ##   MkLinux/LinuxPPC needs this.
-   ## s390x-* only supports opsys = gnu-linux so it can be added here.
-   gnu-*)
-     case "$canonical" in
-       powerpc*|s390x-*) LD_FIRSTFLAG="-nostdlib" ;;
-     esac
-     ;;
- esac
- if test "x$ORDINARY_LINK" = "xyes"; then
-   LD_FIRSTFLAG=""
-   AC_DEFINE(ORDINARY_LINK, 1, [Define if the C compiler is the linker.])
- ## The system files defining neither ORDINARY_LINK nor LD_FIRSTFLAG are:
- ## freebsd, gnu-* not on powerpc*|s390x*.
- elif test "x$GCC" = "xyes" && test "x$LD_FIRSTFLAG" = "x"; then
-   ## Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
-   ## places that are difficult to figure out at make time.  Fortunately,
-   ## these same versions allow you to pass arbitrary flags on to the
-   ## linker, so there is no reason not to use it as a linker.
-   ##
-   ## Well, it is not quite perfect.  The "-nostdlib" keeps GCC from
-   ## searching for libraries in its internal directories, so we have to
-   ## ask GCC explicitly where to find libgcc.a (LIB_GCC below).
-   LD_FIRSTFLAG="-nostdlib"
- fi
- ## FIXME? What setting of EDIT_LDFLAGS should this have?
- test "$NS_IMPL_GNUSTEP" = "yes" && LD_FIRSTFLAG="-rdynamic"
- AC_SUBST(LD_FIRSTFLAG)
- ## FIXME? The logic here is not precisely the same as that above.
- ## There is no check here for a pre-defined LD_FIRSTFLAG.
- ## Should we only be setting LIB_GCC if LD ~ -nostdlib?
- LIB_GCC=
- if test "x$GCC" = "xyes" && test "x$ORDINARY_LINK" != "xyes"; then
-   case "$opsys" in
-     freebsd|netbsd|openbsd) LIB_GCC= ;;
-     gnu-*)
-       ## armin76@gentoo.org reported that the lgcc_s flag is necessary to
-       ## build on ARM EABI under GNU/Linux.  (Bug#5518)
-       case $host_cpu in
-       arm*)
-         LIB_GCC="-lgcc_s"
-       ;;
-       *)
-         ## FIXME? s/gnu-linux.h used to define LIB_GCC as below, then
-         ## immediately undefine it again and redefine it to empty.
-         ## Was the C_SWITCH_X_SITE part really necessary?
- ##      LIB_GCC=`$CC $C_SWITCH_X_SITE -print-libgcc-file-name`
-         LIB_GCC=
-       ;;
-       esac
-       ;;
-     ## Ask GCC where to find libgcc.a.
-     *) LIB_GCC=`$CC -print-libgcc-file-name 2> /dev/null` ;;
-   esac
- fi                              dnl if $GCC
- AC_SUBST(LIB_GCC)
  ## Common for all window systems
  if test "$window_system" != "none"; then
    AC_DEFINE(HAVE_WINDOW_SYSTEM, 1, [Define if you have a window system.])
-   AC_DEFINE(HAVE_MOUSE, 1, [Define if you have mouse support.])
    WINDOW_SYSTEM_OBJ="fontset.o fringe.o image.o"
  fi
  
@@@ -4555,7 -4197,7 +4387,7 @@@ AC_SUBST(WINDOW_SYSTEM_OBJ
  
  AH_TOP([/* GNU Emacs site configuration template file.
  
- Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2012
+ Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2013
    Free Software Foundation, Inc.
  
  This file is part of GNU Emacs.
@@@ -4713,7 -4355,7 +4545,7 @@@ AC_CONFIG_FILES([Makefile lib/Makefile 
  dnl test/ is not present in release tarfiles.
  opt_makefile=test/automated/Makefile
  
- if test -f $srcdir/${opt_makefile}.in; then
+ if test -f "$srcdir/$opt_makefile.in"; then
    SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile"
    dnl Again, it's best not to use a variable.  Though you can add
    dnl ", [], [opt_makefile='$opt_makefile']" and it should work.
  dnl admin/ may or may not be present.
  opt_makefile=admin/unidata/Makefile
  
- if test -f $srcdir/${opt_makefile}.in; then
+ if test -f "$srcdir/$opt_makefile.in"; then
    SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile"
    AC_CONFIG_FILES([admin/unidata/Makefile])
  fi
@@@ -4755,9 -4397,9 +4587,9 @@@ ${MAKE-make} MAKEFILE_NAME=do-not-make-
  ], [GCC="$GCC" CPPFLAGS="$CPPFLAGS"])
  
  AC_CONFIG_COMMANDS([gdbinit], [
- if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
+ if test ! -f src/.gdbinit && test -f "$srcdir/src/.gdbinit"; then
    echo creating src/.gdbinit
-   echo source $srcdir/src/.gdbinit > src/.gdbinit
+   echo "source $srcdir/src/.gdbinit" > src/.gdbinit
  fi
  ])
  
diff --combined nt/inc/sys/socket.h
index 1c8be6c452f11df8d9d96587a081655fefc83116,6029778394b45fc3d11f4354d2d9240922674efd..99227d75d2822b4cffd46ca0a55a6d9fd07539aa
@@@ -1,4 -1,4 +1,4 @@@
- /* Copyright (C) 1995, 2001-201 Free Software Foundation, Inc.
+ /* Copyright (C) 1995, 2001-2013 Free Software Foundation, Inc.
  
  This file is part of GNU Emacs.
  
@@@ -43,9 -43,8 +43,9 @@@ along with GNU Emacs.  If not, see <htt
  #undef FD_ZERO
  #endif
  
 -/* avoid duplicate definition of timeval */
 -#ifdef HAVE_TIMEVAL
 +/* Avoid duplicate definition of timeval.  MinGW uses _TIMEVAL_DEFINED
 +   in sys/time.h to avoid that.  */
 +#if defined (HAVE_TIMEVAL) && defined (_MSC_VER)
  #define timeval ws_timeval
  #endif
  
@@@ -63,9 -62,7 +63,9 @@@ typedef unsigned short uint16_t
  #undef MUST_REDEF_SELECT
  #endif
  
 -/* revert to our version of FD_SET */
 +/* Revert to our version of FD_SET, but not when included from test
 +   programs run by configure.  */
 +#ifdef EMACS_CONFIG_H
  #undef FD_SET
  #undef FD_CLR
  #undef FD_ISSET
@@@ -74,9 -71,8 +74,9 @@@
  /* allow us to provide our own version of fd_set */
  #define fd_set ws_fd_set
  #include "w32.h"
 +#endif        /* EMACS_CONFIG_H */
  
 -#ifdef HAVE_TIMEVAL
 +#if defined (HAVE_TIMEVAL) && defined (_MSC_VER)
  #undef timeval
  #endif
  
diff --combined nt/inc/sys/time.h
index 2d2c3abe222e82a828edac92c30638e8d02de8d8,80c725385bb31e252a304acbf9126b5fd2c1ed55..aa51041bcd806d32ac692c832001752e068ec03a
@@@ -6,28 -6,23 +6,34 @@@
   * have the below stuff.
   */
  
+ /* The guards are for MinGW64, which defines these structs on its
+    system headers which are included by ms-w32.h.  */
+ #ifndef _W64
 +/* Allow inclusion of sys/time.h and winsock2.h in any order.  Needed
 +   for running the configure test, which is only relevant to MinGW.  */
 +#ifndef _TIMEVAL_DEFINED
 +#define _TIMEVAL_DEFINED
  struct timeval
  {
    long                tv_sec;         /* seconds */
    long                tv_usec;        /* microseconds */
  };
 -#endif
 +#define timerisset(tvp)  ((tvp)->tv_sec || (tvp)->tv_usec)
 +#define timercmp(tvp, uvp, cmp) \
 +        (((tvp)->tv_sec != (uvp)->tv_sec) ? \
 +        ((tvp)->tv_sec cmp (uvp)->tv_sec) : \
 +        ((tvp)->tv_usec cmp (uvp)->tv_usec))
 +#define timerclear(tvp)  (tvp)->tv_sec = (tvp)->tv_usec = 0
 +#endif /* _TIMEVAL_DEFINED */
++#endif /* _W64 */
  
+ #ifndef _TIMEZONE_DEFINED
  struct timezone
  {
    int         tz_minuteswest; /* minutes west of Greenwich */
    int         tz_dsttime;     /* type of dst correction */
  };
+ #endif
  
  void gettimeofday (struct timeval *, struct timezone *);
  
diff --combined nt/inc/unistd.h
index b75e7d7d6bf5711e8265a85ea55b37b959598c7b,e07c46533f7331ca594bdb76b0543d542f3fccb0..8ad8cf213b1f7aeaec37703228c6d8ce1737947a
@@@ -3,9 -3,6 +3,9 @@@
  #ifndef _UNISTD_H
  #define _UNISTD_H
  
 +#include <sys/types.h>
 +#include <pwd.h>
 +
  /* On Microsoft platforms, <stdlib.h> declares 'environ'; on POSIX
     platforms, <unistd.h> does.  Every file in Emacs that includes
     <unistd.h> also includes <stdlib.h>, so there's no need to declare
@@@ -15,6 -12,7 +15,7 @@@
     and whose prototypes are usually found in unistd.h on POSIX
     platforms.  */
  extern ssize_t readlink (const char *, char *, size_t);
+ extern ssize_t readlinkat (int, const char *, char *, size_t);
  extern int symlink (char const *, char const *);
  extern int setpgid (pid_t, pid_t);
  extern pid_t getpgrp (void);
@@@ -29,6 -27,11 +30,11 @@@ extern int faccessat (int, char const *
  #define AT_EACCESS 4
  #define AT_SYMLINK_NOFOLLOW 4096
  
+ #define O_IGNORE_CTTY 0
  #define O_NOCTTY 0
+ #define O_NOFOLLOW 0
+ /* This is normally on stdlib.h, but we don't override that header.  */
+ extern int unsetenv (const char *);
  
  #endif        /* _UNISTD_H */