Contents in 1999-06-04-13 of release-21-2.
[chise/xemacs-chise.git.1] / configure.in
index e746fc8..cfa5b20 100644 (file)
@@ -7,6 +7,7 @@ define([AC_INIT_NOTICE],
 #### Copyright (C) 1993-1995 Board of Trustees, University of Illinois.
 #### Copyright (C) 1996, 1997 Sun Microsystems, Inc.
 #### Copyright (C) 1995, 1996 Ben Wing.
 #### Copyright (C) 1993-1995 Board of Trustees, University of Illinois.
 #### Copyright (C) 1996, 1997 Sun Microsystems, Inc.
 #### Copyright (C) 1995, 1996 Ben Wing.
+#### Copyright (C) 1998, 1999 J. Kean Johnston.
 
 ### Don't edit this script!
 ### This script was automatically generated by the `autoconf' program
 
 ### Don't edit this script!
 ### This script was automatically generated by the `autoconf' program
@@ -229,6 +230,13 @@ define([XE_PREPEND],
 [[$2]="[$1] $[$2]" && dnl
  if test "$extra_verbose" = "yes"; then echo "    Prepending \"[$1]\" to \$[$2]"; fi])
 
 [[$2]="[$1] $[$2]" && dnl
  if test "$extra_verbose" = "yes"; then echo "    Prepending \"[$1]\" to \$[$2]"; fi])
 
+dnl XE_DIE(message)
+define([XE_DIE], [{ echo "Error:" $1 >&2; exit 1; }])
+
+dnl XE_STRIP_4TH_COMPONENT(var)
+dnl Changes i986-pc-linux-gnu to i986-pc-linux, as God (not RMS) intended.
+define([XE_STRIP_4TH_COMPONENT],
+[$1=`echo "$$1" | sed '[s/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/]'`])
 
 dnl Initialize some variables set by options.
 dnl The variables have the same names as the options, with
 
 dnl Initialize some variables set by options.
 dnl The variables have the same names as the options, with
@@ -326,7 +334,6 @@ dnl -----------------------------
 XE_APPEND(lib-src, MAKE_SUBDIR)
 XE_APPEND(lib-src, INSTALL_ARCH_DEP_SUBDIR)
 
 XE_APPEND(lib-src, MAKE_SUBDIR)
 XE_APPEND(lib-src, INSTALL_ARCH_DEP_SUBDIR)
 
-dnl run_in_place='no'
 prefix='/usr/local'
 exec_prefix='${prefix}'
 bindir='${exec_prefix}/bin'
 prefix='/usr/local'
 exec_prefix='${prefix}'
 bindir='${exec_prefix}/bin'
@@ -342,13 +349,16 @@ infodir='${datadir}/${PROGNAME}-${version}/info'
 infopath=''
 install_pp=''
 lispdir='${datadir}/${PROGNAME}-${version}/lisp'
 infopath=''
 install_pp=''
 lispdir='${datadir}/${PROGNAME}-${version}/lisp'
-dnl sitelispdir='${datadir}/xemacs/site-lisp'
+moduledir='${datadir}/${PROGNAME}-${version}/${configuration}/modules'
+sitelispdir='${datadir}/xemacs/site-lisp'
+sitemoduledir='${datadir}/xemacs/site-modules'
 pkgdir='${datadir}/${PROGNAME}-${version}/lisp'
 package_path=''
 etcdir='${datadir}/${PROGNAME}-${version}/etc'
 lockdir='${statedir}/${PROGNAME}/lock'
 pkgdir='${datadir}/${PROGNAME}-${version}/lisp'
 package_path=''
 etcdir='${datadir}/${PROGNAME}-${version}/etc'
 lockdir='${statedir}/${PROGNAME}/lock'
-archlibdir='${libdir}/${PROGNAME}-${version}/${configuration}'
+archlibdir='${datadir}/${PROGNAME}-${version}/${configuration}'
 with_site_lisp='no'
 with_site_lisp='no'
+with_site_modules='yes'
 with_menubars=''
 with_scrollbars=''
 with_dialogs=''
 with_menubars=''
 with_scrollbars=''
 with_dialogs=''
@@ -356,7 +366,6 @@ with_file_coding=''
 dnl const_is_losing is removed - we rely on AC_C_CONST instead.
 dnl We accept (and ignore) the --const-is-losing option for compatibility.
 dnl const_is_losing='yes'
 dnl const_is_losing is removed - we rely on AC_C_CONST instead.
 dnl We accept (and ignore) the --const-is-losing option for compatibility.
 dnl const_is_losing='yes'
-puresize=''
 cpp='' cppflags='' libs='' ldflags=''
 dynamic=''
 with_x11=''
 cpp='' cppflags='' libs='' ldflags=''
 dynamic=''
 with_x11=''
@@ -453,13 +462,12 @@ while test $# != 0; do
       case "$opt" in
 
       dnl Process (many) boolean options
       case "$opt" in
 
       dnl Process (many) boolean options
-       run_in_place    | \
-        with_site_lisp  | \
+       with_site_lisp  | \
+    with_site_modules | \
        with_x          | \
        with_x11        | \
        with_msw        | \
        with_gcc        | \
        with_x          | \
        with_x11        | \
        with_msw        | \
        with_gcc        | \
-       with_gnu_make   | \
        dynamic         | \
        with_ncurses    | \
        with_dnet       | \
        dynamic         | \
        with_ncurses    | \
        with_dnet       | \
@@ -474,21 +482,22 @@ while test $# != 0; do
        with_jpeg       | \
        with_png        | \
        with_tiff       | \
        with_jpeg       | \
        with_png        | \
        with_tiff       | \
-       with_session    | \
+       with_wmcommand  | \
        with_xmu        | \
        with_xmu        | \
+       with_purify     | \
        with_quantify   | \
        with_toolbars   | \
        with_tty        | \
        with_xfs        | \
        with_i18n3      | \
        with_mule       | \
        with_quantify   | \
        with_toolbars   | \
        with_tty        | \
        with_xfs        | \
        with_i18n3      | \
        with_mule       | \
-       with_file_coding        | \
+       with_file_coding| \
        with_canna      | \
        with_wnn        | \
        with_wnn6       | \
        with_workshop   | \
        with_sparcworks | \
        with_canna      | \
        with_wnn        | \
        with_wnn6       | \
        with_workshop   | \
        with_sparcworks | \
-       with_tooltalk   | \
+       with_tooltalk   | \
        with_ldap       | \
        with_pop        | \
        with_kerberos   | \
        with_ldap       | \
        with_pop        | \
        with_kerberos   | \
@@ -499,14 +508,10 @@ while test $# != 0; do
        verbose         | \
        extra_verbose   | \
        const_is_losing | \
        verbose         | \
        extra_verbose   | \
        const_is_losing | \
-       usage_tracking  | \
-       use_union_type  | \
+       usage_tracking  | \
+       use_union_type  | \
        debug           | \
        use_assertions  | \
        debug           | \
        use_assertions  | \
-       use_minimal_tagbits                     | \
-       use_indexed_lrecord_implementation      | \
-       gung_ho         | \
-       use_assertions  | \
        memory_usage_stats | \
        with_clash_detection | \
        with_shlib | \
        memory_usage_stats | \
        with_clash_detection | \
        with_shlib | \
@@ -514,13 +519,13 @@ while test $# != 0; do
          dnl Make sure the value given was either "yes" or "no".
          case "$val" in
            y | ye | yes )      val=yes ;;
          dnl Make sure the value given was either "yes" or "no".
          case "$val" in
            y | ye | yes )      val=yes ;;
-           n | no )            val=no  ;;
+           n | no )            val=no  ;;
            * ) USAGE_ERROR("The \`--$optname' option requires a boolean value: \`yes' or \`no'.") ;;
          esac
            * ) USAGE_ERROR("The \`--$optname' option requires a boolean value: \`yes' or \`no'.") ;;
          esac
-          eval "$opt=\"$val\"" ;;
+         eval "$opt=\"$val\"" ;;
 
 
 
 
-       dnl Options that take a user-supplied value, as in --puresize=8000000
+       dnl Options that take a user-supplied value, as in --x-includes=/usr/X11R6/include
        dnl The cache-file option is ignored (for compatibility with other configures)
        srcdir          | \
        compiler        | \
        dnl The cache-file option is ignored (for compatibility with other configures)
        srcdir          | \
        compiler        | \
@@ -529,9 +534,8 @@ while test $# != 0; do
        cppflags        | \
        libs            | \
        ldflags         | \
        cppflags        | \
        libs            | \
        ldflags         | \
-       puresize        | \
        cache_file      | \
        cache_file      | \
-       native_sound_lib | \
+       native_sound_lib| \
        site_lisp       | \
        x_includes      | \
        x_libraries     | \
        site_lisp       | \
        x_includes      | \
        x_libraries     | \
@@ -579,7 +583,7 @@ while test $# != 0; do
                g | gn | gnu | gnud | gnudb | gnudbm )  with_database_gnudbm=yes ;;
                * ) USAGE_ERROR(["The \`--$optname' option value
   must be either \`no' or a comma-separated list
                g | gn | gnu | gnud | gnudb | gnudbm )  with_database_gnudbm=yes ;;
                * ) USAGE_ERROR(["The \`--$optname' option value
   must be either \`no' or a comma-separated list
-  of one or more of \`berkdb', \`dbm', or \`gnudbm'."]) ;;
+  of one or more of \`berkdb' and either \`dbm' or \`gnudbm'."]) ;;
             esac
          done
          if test "$with_database_dbm"    = "yes" -a \
             esac
          done
          if test "$with_database_dbm"    = "yes" -a \
@@ -618,17 +622,6 @@ while test $# != 0; do
           eval "$opt=\"$val\""
         ;;
 
           eval "$opt=\"$val\""
         ;;
 
-        dnl XFontSet support?
-       "with_xfs" )
-         case "$val" in
-         y | ye | yes )                val=yes ;;
-         n | no | non | none )         val=no  ;;
-         * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
- \`yes', or \`no'."]) ;;
-         esac
-         eval "$opt=\"$val\""
-       ;;
-
         dnl Mail locking specification
        "mail_locking" )
          case "$val" in
         dnl Mail locking specification
        "mail_locking" )
          case "$val" in
@@ -668,14 +661,17 @@ while test $# != 0; do
              malloc )        error_check_malloc=yes ;;
              nomalloc )      error_check_malloc=no ;;
 
              malloc )        error_check_malloc=yes ;;
              nomalloc )      error_check_malloc=no ;;
 
+             byte_code )     error_check_byte_code=yes ;;
+             nobyte_code )   error_check_byte_code=no ;;
+
              * ) bogus_error_check=yes ;;
            esac
            if test "$bogus_error_check" -o \
                 \( -n "$new_default" -a -n "$echeck_notfirst" \) ; then
                if test "$error_check_default" = yes ; then
              * ) bogus_error_check=yes ;;
            esac
            if test "$bogus_error_check" -o \
                 \( -n "$new_default" -a -n "$echeck_notfirst" \) ; then
                if test "$error_check_default" = yes ; then
-                 types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nobufpos', \`nogc', and \`nomalloc'."
+                 types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nobufpos', \`nogc', \`nomalloc', and \`nobyte-code'."
                else
                else
-                 types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', and \`malloc'."
+                 types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', \`malloc', and \`byte-code'."
                fi
                USAGE_ERROR(["Valid types for the \`--$optname' option are:
   $types."])
                fi
                USAGE_ERROR(["Valid types for the \`--$optname' option are:
   $types."])
@@ -685,6 +681,7 @@ while test $# != 0; do
                error_check_bufpos=$new_default
                error_check_gc=$new_default
                error_check_malloc=$new_default
                error_check_bufpos=$new_default
                error_check_gc=$new_default
                error_check_malloc=$new_default
+               error_check_byte_code=$new_default
                new_default=    # reset this
            fi
            echeck_notfirst=true
                new_default=    # reset this
            fi
            echeck_notfirst=true
@@ -699,7 +696,7 @@ while test $# != 0; do
        dnl Has the user specified one of the path options?
        prefix | exec_prefix | bindir | datadir | statedir | libdir | \
        mandir | infodir | infopath | lispdir | etcdir | lockdir | pkgdir | \
        dnl Has the user specified one of the path options?
        prefix | exec_prefix | bindir | datadir | statedir | libdir | \
        mandir | infodir | infopath | lispdir | etcdir | lockdir | pkgdir | \
-       archlibdir | docdir | package_path )    
+       archlibdir | docdir | package_path )
           dnl If the value was omitted, get it from the next argument.
           if test "$valomitted" = "yes"; then
             if test "$#" = 0; then
           dnl If the value was omitted, get it from the next argument.
           if test "$valomitted" = "yes"; then
             if test "$#" = 0; then
@@ -713,7 +710,8 @@ while test $# != 0; do
            dnl default values are built.
           case "$opt" in
              lispdir ) AC_DEFINE(LISPDIR_USER_DEFINED) ;;
            dnl default values are built.
           case "$opt" in
              lispdir ) AC_DEFINE(LISPDIR_USER_DEFINED) ;;
-dnl             sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
+             sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
+             moduledir ) AC_DEFINE(MODULEDIR_USER_DEFINED) ;;
              etcdir  )  AC_DEFINE(ETCDIR_USER_DEFINED) ;;
              infodir ) AC_DEFINE(INFODIR_USER_DEFINED) ;;
              infopath ) AC_DEFINE(INFOPATH_USER_DEFINED) ;;
              etcdir  )  AC_DEFINE(ETCDIR_USER_DEFINED) ;;
              infodir ) AC_DEFINE(INFODIR_USER_DEFINED) ;;
              infopath ) AC_DEFINE(INFOPATH_USER_DEFINED) ;;
@@ -721,6 +719,7 @@ dnl             sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
              datadir )
                AC_DEFINE(INFODIR_USER_DEFINED)
                AC_DEFINE(LISPDIR_USER_DEFINED)
              datadir )
                AC_DEFINE(INFODIR_USER_DEFINED)
                AC_DEFINE(LISPDIR_USER_DEFINED)
+            AC_DEFINE(MODULEDIR_USER_DEFINED)
                AC_DEFINE(ETCDIR_USER_DEFINED) ;;
              statedir | lockdir ) AC_DEFINE(LOCKDIR_USER_DEFINED) ;;
              exec_prefix | libdir | archlibdir ) AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;;
                AC_DEFINE(ETCDIR_USER_DEFINED) ;;
              statedir | lockdir ) AC_DEFINE(LOCKDIR_USER_DEFINED) ;;
              exec_prefix | libdir | archlibdir ) AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;;
@@ -733,9 +732,10 @@ dnl             sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
        dnl Has the user asked for some help?
        "usage" | "help" ) ${PAGER-more} ${srcdir}/configure.usage; exit 0 ;;
 
        dnl Has the user asked for some help?
        "usage" | "help" ) ${PAGER-more} ${srcdir}/configure.usage; exit 0 ;;
 
-       dnl Has the user specified what toolkit to use for the menubars,
-       dnl scrollbar or dialogs?
-       "with_menubars" | "with_scrollbars" | "with_dialogs" )
+       dnl Has the user specified the toolkit(s) to use for GUI elements?
+       "with_menubars"   | \
+       "with_scrollbars" | \
+       "with_dialogs" )
          case "$val" in
            l | lu | luc | luci | lucid )               val=lucid  ;;
            m | mo | mot | moti | motif )               val=motif  ;;
          case "$val" in
            l | lu | luc | luci | lucid )               val=lucid  ;;
            m | mo | mot | moti | motif )               val=motif  ;;
@@ -748,7 +748,13 @@ dnl             sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
          eval "$opt=\"$val\""
        ;;
 
          eval "$opt=\"$val\""
        ;;
 
-        dnl Fail on unrecognized arguments.
+       dnl Obsolete legacy argument?  Warn, but otherwise ignore.
+       "run_in_place"  | \
+       "with_gnu_make" )
+         AC_MSG_WARN([Obsolete option \`--$optname' ignored.])
+       ;;
+
+        dnl Unrecognized option?  No mercy for user errors.
        * ) USAGE_ERROR("Unrecognized option: $arg") ;;
 
       esac
        * ) USAGE_ERROR("Unrecognized option: $arg") ;;
 
       esac
@@ -757,7 +763,7 @@ dnl             sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
     dnl Assume anything with multiple hyphens is a configuration name.
     *-*-*) configuration="$arg" ;;
 
     dnl Assume anything with multiple hyphens is a configuration name.
     *-*-*) configuration="$arg" ;;
 
-    dnl Anything else is an error
+    dnl Unrecognized argument?  No mercy for user errors.
     *) USAGE_ERROR("Unrecognized argument: $arg") ;;
 
   esac
     *) USAGE_ERROR("Unrecognized argument: $arg") ;;
 
   esac
@@ -779,29 +785,12 @@ eval set x "$quoted_arguments"; shift
 dnl --extra-verbose implies --verbose
 test "$extra_verbose" = "yes" && verbose=yes
 
 dnl --extra-verbose implies --verbose
 test "$extra_verbose" = "yes" && verbose=yes
 
-dnl Allow use of either ":" or spaces for lists of directories
-define(COLON_TO_SPACE,
-  [case "$[$1]" in *:* [)] [$1]="`echo '' $[$1] | sed -e 's/^ //' -e 's/:/ /g'`";; esac])dnl
-COLON_TO_SPACE(site_includes)
-COLON_TO_SPACE(site_libraries)
-COLON_TO_SPACE(site_prefixes)
-COLON_TO_SPACE(site_runtime_libraries)
-
 dnl with_x is an obsolete synonym for with_x11
 test -n "$with_x" && with_x11="$with_x"
 
 dnl with_x is an obsolete synonym for with_x11
 test -n "$with_x" && with_x11="$with_x"
 
-dnl --gung-ho=val is a synonym for
-dnl --use-minimal-tagbits=val --use-indexed-lrecord-implementation=val
-
-if test -n "$gung_ho"; then
-  test -z "$use_minimal_tagbits" && use_minimal_tagbits="$gung_ho"
-  test -z "$use_indexed_lrecord_implementation" && \
-    use_indexed_lrecord_implementation="$gung_ho"
-fi
-if test "$use_minimal_tagbits" = "no"; then
-  test "$with_dlmalloc" = "yes" && \
-    USAGE_ERROR("--with-dlmalloc requires --use-minimal-tagbits")
-  with_dlmalloc=no
+dnl --with-quantify or --with-purify imply --use-system-malloc
+if test "$with_purify" = "yes" -o "$with_quantify" = "yes"; then
+  test "$with_system_malloc" = "default" && with_system_malloc=yes
 fi
 
 dnl XE_CHECK_FEATURE_DEPENDENCY(feature1, feature2)
 fi
 
 dnl XE_CHECK_FEATURE_DEPENDENCY(feature1, feature2)
@@ -816,11 +805,6 @@ fi
 dnl CDE requires tooltalk
 XE_CHECK_FEATURE_DEPENDENCY(cde, tooltalk)
 
 dnl CDE requires tooltalk
 XE_CHECK_FEATURE_DEPENDENCY(cde, tooltalk)
 
-dnl Ignore useless run-in-place flag
-if test "$run_in_place" = "yes"; then
-  AC_MSG_WARN("The --run-in-place option is ignored because it is unnecessary.")
-fi
-
 dnl Find the source directory.
 case "$srcdir" in
 
 dnl Find the source directory.
 case "$srcdir" in
 
@@ -856,13 +840,9 @@ esac
 
 dnl ###########################################################################
 if test -z "$configuration"; then
 
 dnl ###########################################################################
 if test -z "$configuration"; then
-  AC_MSG_CHECKING("host system type")
-  dnl Guess the configuration and remove 4th name component, if present.
-  if configuration=`${CONFIG_SHELL-/bin/sh} $srcdir/config.guess | \
-    sed '[s/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/]'` ; then
-    AC_MSG_RESULT($configuration)
-  else
-    AC_MSG_RESULT(unknown)
+  dnl Guess the configuration
+  configuration=`${CONFIG_SHELL-/bin/sh} $srcdir/config.guess`
+  if test -z "$configuration"; then
     USAGE_ERROR(["XEmacs has not been ported to this host type.
 Try explicitly specifying the CONFIGURATION when rerunning configure."])
   fi
     USAGE_ERROR(["XEmacs has not been ported to this host type.
 Try explicitly specifying the CONFIGURATION when rerunning configure."])
   fi
@@ -882,13 +862,22 @@ for dir in lisp etc man info; do
   fi
 done
 
   fi
 done
 
+dnl Do our best to deal with automounter brokenness
+dnl CANONICALIZE_PATH(varname)
+define([CANONICALIZE_PATH],
+[if test -d "/net"; then
+  if test -d "/tmp_mnt/net"; then tdir="tmp_mnt/net"; else tdir="tmp_mnt"; fi
+  $1=`echo "[$]$1" | \
+   sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
+fi])dnl
+
 dnl Calculate canonical name for blddir (i.e. current directory).
 dnl PWD may already be the preferable absolute name for ".",
 dnl but we can't trust it - it is sometimes inaccurate.
 absolute_pwd="`pwd`";
 if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd"
 then blddir="$PWD"
 dnl Calculate canonical name for blddir (i.e. current directory).
 dnl PWD may already be the preferable absolute name for ".",
 dnl but we can't trust it - it is sometimes inaccurate.
 absolute_pwd="`pwd`";
 if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd"
 then blddir="$PWD"
-else blddir="$absolute_pwd"
+else blddir="$absolute_pwd"; CANONICALIZE_PATH(blddir)
 fi
 AC_SUBST(blddir)
 
 fi
 AC_SUBST(blddir)
 
@@ -898,7 +887,7 @@ dnl give you automounter prefixes, which can go away.
 case "$srcdir" in
   /* ) ;;
   .  ) srcdir="$blddir" ;;
 case "$srcdir" in
   /* ) ;;
   .  ) srcdir="$blddir" ;;
-  *  ) srcdir="`cd $srcdir && pwd`" ;;
+  *  ) srcdir="`cd $srcdir && pwd`"; CANONICALIZE_PATH(srcdir) ;;
 esac
 
 dnl Check if the source directory already has a configured system in it.
 esac
 
 dnl Check if the source directory already has a configured system in it.
@@ -924,14 +913,19 @@ dnl Find out which version of XEmacs this is
 dnl ----------------------------------------
 . "$srcdir/version.sh" || exit 1;
 dnl Must do the following first to determine verbosity for AC_DEFINE
 dnl ----------------------------------------
 . "$srcdir/version.sh" || exit 1;
 dnl Must do the following first to determine verbosity for AC_DEFINE
-if test -n "$emacs_beta_version"; then beta=yes; else beta=no; fi
+if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi
 : "${extra_verbose=$beta}"
 version="${emacs_major_version}.${emacs_minor_version}"
 AC_DEFINE_UNQUOTED(EMACS_MAJOR_VERSION, $emacs_major_version)
 AC_DEFINE_UNQUOTED(EMACS_MINOR_VERSION, $emacs_minor_version)
 : "${extra_verbose=$beta}"
 version="${emacs_major_version}.${emacs_minor_version}"
 AC_DEFINE_UNQUOTED(EMACS_MAJOR_VERSION, $emacs_major_version)
 AC_DEFINE_UNQUOTED(EMACS_MINOR_VERSION, $emacs_minor_version)
-if test -n "$emacs_beta_version"; then
-  version="${version}-b${emacs_beta_version}"
-  AC_DEFINE_UNQUOTED(EMACS_BETA_VERSION, $emacs_beta_version)
+if test -n "$emacs_beta_version" ; then
+  if test "$beta" = "yes"; then
+       version="${version}-b${emacs_beta_version}"
+       AC_DEFINE_UNQUOTED(EMACS_BETA_VERSION, $emacs_beta_version)
+  else
+       version="${version}.${emacs_beta_version}"
+       AC_DEFINE_UNQUOTED(EMACS_PATCH_LEVEL, $emacs_beta_version)
+  fi
 fi
 AC_DEFINE_UNQUOTED(XEMACS_CODENAME, "$xemacs_codename")
 AC_DEFINE_UNQUOTED(EMACS_VERSION, "$version")
 fi
 AC_DEFINE_UNQUOTED(XEMACS_CODENAME, "$xemacs_codename")
 AC_DEFINE_UNQUOTED(EMACS_VERSION, "$version")
@@ -961,12 +955,13 @@ dnl Error checking and debugging flags
 dnl ----------------------------------
 dnl Error checking default to "yes" in beta versions, to "no" in releases.
 dnl Same goes for --debug and --extra-verbosity.
 dnl ----------------------------------
 dnl Error checking default to "yes" in beta versions, to "no" in releases.
 dnl Same goes for --debug and --extra-verbosity.
-if test -n "$emacs_beta_version"; then beta=yes; else beta=no; fi
+if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi
 test "${error_check_extents=$beta}"   = yes && AC_DEFINE(ERROR_CHECK_EXTENTS)
 test "${error_check_typecheck=$beta}" = yes && AC_DEFINE(ERROR_CHECK_TYPECHECK)
 test "${error_check_bufpos=$beta}"    = yes && AC_DEFINE(ERROR_CHECK_BUFPOS)
 test "${error_check_gc=$beta}"        = yes && AC_DEFINE(ERROR_CHECK_GC)
 test "${error_check_malloc=$beta}"    = yes && AC_DEFINE(ERROR_CHECK_MALLOC)
 test "${error_check_extents=$beta}"   = yes && AC_DEFINE(ERROR_CHECK_EXTENTS)
 test "${error_check_typecheck=$beta}" = yes && AC_DEFINE(ERROR_CHECK_TYPECHECK)
 test "${error_check_bufpos=$beta}"    = yes && AC_DEFINE(ERROR_CHECK_BUFPOS)
 test "${error_check_gc=$beta}"        = yes && AC_DEFINE(ERROR_CHECK_GC)
 test "${error_check_malloc=$beta}"    = yes && AC_DEFINE(ERROR_CHECK_MALLOC)
+test "${error_check_byte_code=$beta}" = yes && AC_DEFINE(ERROR_CHECK_BYTE_CODE)
 dnl debug=yes must be set when error checking is present.  This should be
 dnl fixed up.
 dnl debug implies other options
 dnl debug=yes must be set when error checking is present.  This should be
 dnl fixed up.
 dnl debug implies other options
@@ -985,12 +980,13 @@ dnl Given the configuration name, set machfile and opsysfile to the
 dnl names of the m/*.h and s/*.h files we should use.
 
 dnl Canonicalize the configuration name.
 dnl names of the m/*.h and s/*.h files we should use.
 
 dnl Canonicalize the configuration name.
-AC_CHECKING("the configuration name")
+AC_MSG_CHECKING("host system type")
 dnl allow -workshop suffix on configuration name
 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'`
 dnl allow -workshop suffix on configuration name
 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'`
-if canonical=`$srcdir/config.sub "$internal_configuration"` ; then : ; else
-  exit $?
-fi
+canonical=`${CONFIG_SHELL-/bin/sh} $srcdir/config.sub "$internal_configuration"`
+XE_STRIP_4TH_COMPONENT(configuration)
+XE_STRIP_4TH_COMPONENT(canonical)
+AC_MSG_RESULT($configuration)
 
 dnl If you add support for a new configuration, add code to this
 dnl switch statement to recognize your configuration name and select
 
 dnl If you add support for a new configuration, add code to this
 dnl switch statement to recognize your configuration name and select
@@ -1033,6 +1029,8 @@ case "$canonical" in
   m68*-sony-*      ) machine=news ;;
   mips-sony-*      ) machine=news-risc ;;
   clipper-*        ) machine=clipper ;;
   m68*-sony-*      ) machine=news ;;
   mips-sony-*      ) machine=news-risc ;;
   clipper-*        ) machine=clipper ;;
+  arm-*            ) machine=arm ;;
+  ns32k-*          ) machine=ns32000 ;;
 esac
 
 dnl Straightforward OS determination
 esac
 
 dnl Straightforward OS determination
@@ -1103,13 +1101,9 @@ case "$canonical" in
   dnl OpenBSD ports
   *-*-openbsd* )
     case "${canonical}" in
   dnl OpenBSD ports
   *-*-openbsd* )
     case "${canonical}" in
-      alpha*-*-openbsd*)       machine=alpha ;;
       i386-*-openbsd*)         machine=intel386 ;;
       m68k-*-openbsd*)         machine=hp9000s300 ;;
       mipsel-*-openbsd*)       machine=pmax ;;
       i386-*-openbsd*)         machine=intel386 ;;
       m68k-*-openbsd*)         machine=hp9000s300 ;;
       mipsel-*-openbsd*)       machine=pmax ;;
-      ns32k-*-openbsd*)                machine=ns32000 ;;
-      sparc-*-openbsd*)                machine=sparc ;;
-      vax-*-openbsd*)          machine=vax ;;
      esac
    ;;
 
      esac
    ;;
 
@@ -1325,6 +1319,13 @@ case "$canonical" in
     NON_GNU_CPP=/usr/ccs/lib/cpp
   ;;
 
     NON_GNU_CPP=/usr/ccs/lib/cpp
   ;;
 
+  dnl NEC
+  mips-nec-sysv*)
+    machine=mips-nec
+    NON_GNU_CC=/usr/ccs/bin/cc
+    NON_GNU_CPP=/usr/ccs/lib/cpp
+  ;;
+
   dnl Silicon Graphics machines
   dnl Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
   m68*-sgi-iris3.5* ) machine=irist opsys=iris3-5 ;;
   dnl Silicon Graphics machines
   dnl Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
   m68*-sgi-iris3.5* ) machine=irist opsys=iris3-5 ;;
@@ -1456,6 +1457,7 @@ case "$canonical" in
       *-xenix* )               opsys=xenix ;;
       *-sco3.2v4* )            opsys=sco4 NON_GNU_CPP=/lib/cpp  ;;
       *-bsd386* | *-bsdi1* )   opsys=bsd386 ;;
       *-xenix* )               opsys=xenix ;;
       *-sco3.2v4* )            opsys=sco4 NON_GNU_CPP=/lib/cpp  ;;
       *-bsd386* | *-bsdi1* )   opsys=bsd386 ;;
+      *-bsdi4* )               opsys=bsdos4 ;;
       *-bsdi3* )               opsys=bsdos3 ;;
       *-bsdi2.1* )             opsys=bsdos2-1 ;;
       *-bsdi2* )               opsys=bsdos2 ;;
       *-bsdi3* )               opsys=bsdos3 ;;
       *-bsdi2.1* )             opsys=bsdos2-1 ;;
       *-bsdi2* )               opsys=bsdos2 ;;
@@ -1474,7 +1476,9 @@ case "$canonical" in
       *-386bsd* )              opsys=386bsd ;;
       *-freebsd* )             opsys=freebsd ;;
       *-nextstep* )            opsys=nextstep ;;
       *-386bsd* )              opsys=386bsd ;;
       *-freebsd* )             opsys=freebsd ;;
       *-nextstep* )            opsys=nextstep ;;
-      *-pc-cygwin32 )          opsys=cygwin32 ;;
+      *-pc-cygwin* )           opsys=cygwin32 ;;
+      *-pc-mingw* )            opsys=mingw32 ;
+                               test -z "$with_tty" && with_tty="no";;
       dnl Otherwise, we fall through to the generic opsys code at the bottom.
     esac
   ;;
       dnl Otherwise, we fall through to the generic opsys code at the bottom.
     esac
   ;;
@@ -1493,7 +1497,7 @@ fi
 
 if test -z "$dynamic"; then
   case "$opsys" in
 
 if test -z "$dynamic"; then
   case "$opsys" in
-    hpux* | sunos4* | sco5 ) dynamic=no ;;
+    hpux* | sunos4* ) dynamic=no ;;
     *) dynamic=yes ;;
   esac
 fi
     *) dynamic=yes ;;
   esac
 fi
@@ -1714,11 +1718,12 @@ CPP_boolean_to_sh(SYSTEM_MALLOC, system_malloc)
 CPP_boolean_to_sh(TERMINFO, have_terminfo)
 CPP_boolean_to_sh(MAIL_USE_FLOCK, mail_use_flock)
 CPP_boolean_to_sh(MAIL_USE_LOCKF, mail_use_lockf)
 CPP_boolean_to_sh(TERMINFO, have_terminfo)
 CPP_boolean_to_sh(MAIL_USE_FLOCK, mail_use_flock)
 CPP_boolean_to_sh(MAIL_USE_LOCKF, mail_use_lockf)
+CPP_boolean_to_sh(HAVE_WIN32_PROCESSES, win32_processes)
 EOF
 
 dnl The value of CPP is a quoted variable reference, so we need to do this
 dnl to get its actual value...
 EOF
 
 dnl The value of CPP is a quoted variable reference, so we need to do this
 dnl to get its actual value...
-CPP=`eval "echo $CPP"`
+CPP=`eval "echo $CPP $CPPFLAGS"`
 define(TAB, [  ])dnl
 changequote(, )dnl
 eval `$CPP -Isrc $tempcname \
 define(TAB, [  ])dnl
 changequote(, )dnl
 eval `$CPP -Isrc $tempcname \
@@ -1752,9 +1757,6 @@ if test "$cflags_specified" = "no"; then
     dnl I'm not convinced this is a good idea any more. -sb
     dnl test "$opsys $machine" = "linux intel386" && \
     dnl CFLAGS="$CFLAGS -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2"
     dnl I'm not convinced this is a good idea any more. -sb
     dnl test "$opsys $machine" = "linux intel386" && \
     dnl CFLAGS="$CFLAGS -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2"
-    dnl cygwin can't cope with -O3
-    test "$opsys $machine" = "cygwin32 intel386" && \
-      CFLAGS="-g -O2 -Wall -Wno-switch"
   elif test "$__SUNPRO_C" = "yes"; then
     case "$opsys" in
       sol2    ) CFLAGS="-v -xO4" ;;
   elif test "$__SUNPRO_C" = "yes"; then
     case "$opsys" in
       sol2    ) CFLAGS="-v -xO4" ;;
@@ -1777,8 +1779,8 @@ if test "$GCC" = "yes"; then
   set x $[$1]; shift; [$1]=""
   while test -n "[$]1"; do
     case [$]1 in
   set x $[$1]; shift; [$1]=""
   while test -n "[$]1"; do
     case [$]1 in
-      -L  | -l  | -u         ) [$1]="$[$1] [$]1 [$]2"; shift ;;
-      -L* | -l* | -u* | -Wl* ) [$1]="$[$1] [$]1" ;;
+      -L  | -l  | -u               ) [$1]="$[$1] [$]1 [$]2"; shift ;;
+      -L* | -l* | -u* | -Wl* | -pg ) [$1]="$[$1] [$]1" ;;
       -Xlinker* ) ;;
       * ) [$1]="$[$1] -Xlinker [$]1" ;;
     esac
       -Xlinker* ) ;;
       * ) [$1]="$[$1] -Xlinker [$]1" ;;
     esac
@@ -1850,39 +1852,60 @@ dnl ---------------------------------------------------------------
 dnl Add site and system specific flags to compile and link commands
 dnl ---------------------------------------------------------------
 
 dnl Add site and system specific flags to compile and link commands
 dnl ---------------------------------------------------------------
 
-dnl All dirs present in site-prefixes will be searched for include/ and lib/
-dnl subdirs. This can avoid specifying both site-includes and site-libraries.
-dnl Those dirs will take precedence over the standard places, but not over
-dnl site-includes and site-libraries.
-
-dnl --site-prefixes (multiple dirs)
-if test -n "$site_prefixes"; then
-  for arg in $site_prefixes; do
-    case "$arg" in
-       -* ) ;;
-       * ) argi="-I${arg}/include" ; argl="-L${arg}/lib" ;;
-    esac
-    XE_APPEND($argi, c_switch_site)
-    XE_APPEND($argl, ld_switch_site)
-  done
-fi
+dnl Allow use of either ":" or spaces for lists of directories
+define(COLON_TO_SPACE,
+  [case "$[$1]" in *:* [)] [$1]="`echo '' $[$1] | sed -e 's/^ //' -e 's/:/ /g'`";; esac])dnl
 
 dnl --site-libraries (multiple dirs)
 
 dnl --site-libraries (multiple dirs)
+COLON_TO_SPACE(site_libraries)
 if test -n "$site_libraries"; then
   for arg in $site_libraries; do
 if test -n "$site_libraries"; then
   for arg in $site_libraries; do
-    case "$arg" in -* ) ;; * ) arg="-L${arg}" ;; esac
+    case "$arg" in
+     -* ) ;;
+     * ) test -d "$arg" || \
+           XE_DIE("Invalid site library \`$arg': no such directory")
+       arg="-L${arg}" ;;
+    esac
     XE_APPEND($arg, ld_switch_site)
   done
 fi
 
 dnl --site-includes (multiple dirs)
     XE_APPEND($arg, ld_switch_site)
   done
 fi
 
 dnl --site-includes (multiple dirs)
+COLON_TO_SPACE(site_includes)
 if test -n "$site_includes"; then
   for arg in $site_includes; do
 if test -n "$site_includes"; then
   for arg in $site_includes; do
-    case "$arg" in -* ) ;; * ) arg="-I${arg}" ;; esac
+    case "$arg" in
+      -* ) ;;
+      * ) test -d "$arg" || \
+           XE_DIE("Invalid site include \`$arg': no such directory")
+      arg="-I${arg}" ;;
+    esac
     XE_APPEND($arg, c_switch_site)
   done
 fi
 
     XE_APPEND($arg, c_switch_site)
   done
 fi
 
+dnl --site-prefixes (multiple dirs)
+dnl --site-prefixes=dir1:dir2 is a convenient shorthand for
+dnl --site-libraries=dir1/lib:dir2/lib --site-includes=dir1/include:dir2/include
+dnl Site prefixes take precedence over the standard places, but not over
+dnl site-includes and site-libraries.
+COLON_TO_SPACE(site_prefixes)
+if test -n "$site_prefixes"; then
+  for dir in $site_prefixes; do
+    lib_dir="${dir}/lib"
+    if test ! -d "$dir"; then
+      XE_DIE("Invalid site prefix \`$dir': no such directory")
+    elif test ! -d "$lib_dir"; then
+      XE_DIE("Invalid site prefix \`$dir': no such directory \`$lib_dir'")
+    else
+      if test -d "$inc_dir"; then
+       XE_APPEND("-I$inc_dir", c_switch_site)
+      fi
+      XE_APPEND("-L$lib_dir", ld_switch_site)
+    fi
+  done
+fi
+
 dnl GNU software installs by default into /usr/local/{include,lib}
 dnl if test -d "/usr/local/include" -a -d "/usr/local/lib"; then
 dnl   XE_APPEND("-L/usr/local/lib",    ld_switch_site)
 dnl GNU software installs by default into /usr/local/{include,lib}
 dnl if test -d "/usr/local/include" -a -d "/usr/local/lib"; then
 dnl   XE_APPEND("-L/usr/local/lib",    ld_switch_site)
@@ -1895,6 +1918,7 @@ for dir in "/usr/ccs/lib"; do
 done
 
 dnl --site-runtime-libraries (multiple dirs)
 done
 
 dnl --site-runtime-libraries (multiple dirs)
+COLON_TO_SPACE(site_runtime_libraries)
 if test -n "$site_runtime_libraries"; then
   LD_RUN_PATH="`echo $site_runtime_libraries | sed -e 's/  */:/g'`"
   export LD_RUN_PATH
 if test -n "$site_runtime_libraries"; then
   LD_RUN_PATH="`echo $site_runtime_libraries | sed -e 's/  */:/g'`"
   export LD_RUN_PATH
@@ -1917,8 +1941,8 @@ if test "$add_runtime_path" = "yes"; then
   dnl and whether it works (or at least does no harm)
   AC_MSG_CHECKING("for runtime libraries flag")
   case "$opsys" in
   dnl and whether it works (or at least does no harm)
   AC_MSG_CHECKING("for runtime libraries flag")
   case "$opsys" in
-    sol2 ) dash_r = "-R" ;;
-    decosf* | linux* ) dash_r = "-rpath " ;;
+    sol2 ) dash_r="-R" ;;
+    decosf* | linux* | irix*) dash_r="-rpath " ;;
     *)
       dash_r=""
       for try_dash_r in "-R" "-R " "-rpath "; do
     *)
       dash_r=""
       for try_dash_r in "-R" "-R " "-rpath "; do
@@ -2006,6 +2030,9 @@ fi
 ])dnl
 XE_COMPUTE_RUNPATH()
 
 ])dnl
 XE_COMPUTE_RUNPATH()
 
+dnl JKJ REMOVEME
+dnl XE_SHLIB_STUFF
+
 dnl -----------------------------------
 dnl Do some misc autoconf-special tests
 dnl -----------------------------------
 dnl -----------------------------------
 dnl Do some misc autoconf-special tests
 dnl -----------------------------------
@@ -2081,8 +2108,8 @@ AC_PROG_YACC
 
 dnl checks for header files
 AC_CHECK_HEADERS(mach/mach.h sys/stropts.h sys/timeb.h sys/time.h unistd.h)
 
 dnl checks for header files
 AC_CHECK_HEADERS(mach/mach.h sys/stropts.h sys/timeb.h sys/time.h unistd.h)
-AC_CHECK_HEADERS(utime.h locale.h libgen.h fcntl.h ulimit.h cygwin32/version.h)
-AC_CHECK_HEADERS(linux/version.h kstat.h sys/pstat.h inttypes.h sys/un.h a.out.h)
+AC_CHECK_HEADERS(utime.h locale.h libgen.h fcntl.h ulimit.h cygwin/version.h)
+AC_CHECK_HEADERS(kstat.h sys/pstat.h inttypes.h sys/un.h a.out.h)
 AC_HEADER_SYS_WAIT
 AC_HEADER_STDC
 AC_HEADER_TIME
 AC_HEADER_SYS_WAIT
 AC_HEADER_STDC
 AC_HEADER_TIME
@@ -2162,7 +2189,7 @@ dnl check for long file names
 AC_SYS_LONG_FILE_NAMES
 
 dnl -lm is required by LISP_FLOAT_TYPE, among other things
 AC_SYS_LONG_FILE_NAMES
 
 dnl -lm is required by LISP_FLOAT_TYPE, among other things
-AC_CHECK_LIB(m, sin)
+AC_CHECK_FUNC(sin, ,AC_CHECK_LIB(m, sin))
 
 dnl Floating operation support is now unconditional
 AC_DEFINE(LISP_FLOAT_TYPE)
 
 dnl Floating operation support is now unconditional
 AC_DEFINE(LISP_FLOAT_TYPE)
@@ -2180,12 +2207,6 @@ elif test "$mail_locking" = "flock"; then AC_DEFINE(REAL_MAIL_USE_FLOCK)
 else mail_locking="dot-locking"
 fi
 
 else mail_locking="dot-locking"
 fi
 
-dnl Used by getloadavg() - does not require root priveleges
-AC_CHECK_LIB(kstat, kstat_open)
-
-dnl Another way to get the load average
-AC_CHECK_LIB(kvm, kvm_read)
-
 case "$opsys" in decosf*)
   AC_CHECK_LIB(pthreads, cma_open)
   test "$ac_cv_lib_pthreads_cma_open" = "yes" && \
 case "$opsys" in decosf*)
   AC_CHECK_LIB(pthreads, cma_open)
   test "$ac_cv_lib_pthreads_cma_open" = "yes" && \
@@ -2454,20 +2475,18 @@ if test "$with_msw" != "no"; then
        test "$with_dialogs"   != "no" && with_dialogs=msw \
            && XE_ADD_OBJS(dialog-msw.o)
     else
        test "$with_dialogs"   != "no" && with_dialogs=msw \
            && XE_ADD_OBJS(dialog-msw.o)
     else
-       test "$with_scrollbars"   != "no" && XE_ADD_OBJS(scrollbar-msw.o)
+       test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-msw.o)
        test "$with_menubars"   != "no" && XE_ADD_OBJS(menubar-msw.o)
        test "$with_toolbars"   != "no" && XE_ADD_OBJS(toolbar-msw.o)
        test "$with_menubars"   != "no" && XE_ADD_OBJS(menubar-msw.o)
        test "$with_toolbars"   != "no" && XE_ADD_OBJS(toolbar-msw.o)
-       test "$with_dialogs"   != "no" && XE_ADD_OBJS(dialog-msw.o)
+       test "$with_dialogs"    != "no" && XE_ADD_OBJS(dialog-msw.o)
     fi
     fi
-    dnl check for our special version of select        
+    dnl check for our special version of select
     AC_TRY_RUN([#include <fcntl.h>
     int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }],
     [AC_DEFINE(HAVE_MSG_SELECT)])
     const_is_losing=no
     with_file_coding=yes
     AC_TRY_RUN([#include <fcntl.h>
     int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }],
     [AC_DEFINE(HAVE_MSG_SELECT)])
     const_is_losing=no
     with_file_coding=yes
-    use_minimal_tagbits=yes
-    use_indexed_lrecord_implementation=yes
-    XE_ADD_OBJS(console-msw.o device-msw.o event-msw.o frame-msw.o objects-msw.o select-msw.o redisplay-msw.o glyphs-msw.o)
+    XE_ADD_OBJS(console-msw.o device-msw.o event-msw.o frame-msw.o objects-msw.o select-msw.o redisplay-msw.o glyphs-msw.o gui-msw.o)
   fi
 fi
 
   fi
 fi
 
@@ -2477,7 +2496,7 @@ test -z "$window_system" && window_system="none"
 
 dnl Test for features that require a window system - ANY window system
 if test "$window_system" = "none"; then
 
 dnl Test for features that require a window system - ANY window system
 if test "$window_system" = "none"; then
-  for feature in menubars scrollbars toolbars dialogs dragndrop
+  for feature in menubars scrollbars toolbars dialogs dragndrop xface
   do
     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
        AC_MSG_WARN([--with-$feature ignored:  Not valid without window system support])
   do
     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
        AC_MSG_WARN([--with-$feature ignored:  Not valid without window system support])
@@ -2509,8 +2528,7 @@ if test "$with_x11" != "yes"; then
   dnl if test "$with_tty" = "no" ; then
   dnl   AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.])
   dnl fi
   dnl if test "$with_tty" = "no" ; then
   dnl   AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.])
   dnl fi
-  for feature in tooltalk cde offix session xim xmu \
-                 xface
+  for feature in tooltalk cde offix wmcommand xim xmu
   do
     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
        AC_MSG_WARN([--with-$feature ignored:  Not valid without X support])
   do
     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
        AC_MSG_WARN([--with-$feature ignored:  Not valid without X support])
@@ -2533,11 +2551,11 @@ case "$x_libraries" in *X11R4* )
   test "$opsys" = "hpux9-shr" && opsysfile="s/hpux9shxr4.h"
 esac
 
   test "$opsys" = "hpux9-shr" && opsysfile="s/hpux9shxr4.h"
 esac
 
-dnl Enable or disable proper session-management
-AC_CHECKING(for session-management option);
-dnl if test "$with_session" = "yes"; then
-if test "$with_session" != "no"; then
-  AC_DEFINE(HAVE_SESSION)
+dnl Enable or disable proper handling of WM_COMMAND
+AC_CHECKING(for WM_COMMAND option);
+dnl if test "$with_wmcommand" = "yes"; then
+if test "$with_wmcommand" != "no"; then
+  AC_DEFINE(HAVE_WMCOMMAND)
 fi
 
 dnl Autodetect Xauth
 fi
 
 dnl Autodetect Xauth
@@ -2607,7 +2625,7 @@ if test "$with_cde" = "yes" ; then
 fi
 
 dnl Always compile OffiX unless --without-offix is given, no
 fi
 
 dnl Always compile OffiX unless --without-offix is given, no
-dnl X11 support is compiled in, no standard Xmu is avaiable,
+dnl X11 support is compiled in, no standard Xmu is available,
 dnl or dragndrop support is disabled
 dnl Because OffiX support currently loses when more than one display
 dnl is in use, we now disable it by default -slb 07/10/1998.
 dnl or dragndrop support is disabled
 dnl Because OffiX support currently loses when more than one display
 dnl is in use, we now disable it by default -slb 07/10/1998.
@@ -2724,6 +2742,15 @@ if test "$window_system" != "none"; then
     fi
   fi
 
     fi
   fi
 
+  dnl Autodetect XFACE
+  test -z "$with_xface" && { AC_CHECK_HEADER(compface.h,          ,with_xface=no) }
+  test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) }
+  test -z "$with_xface" && with_xface=yes
+  if test "$with_xface" = "yes"; then
+    AC_DEFINE(HAVE_XFACE)
+    XE_PREPEND(-lcompface, libs_x)
+  fi
+
   dnl For a brief period we had the GIF code split out into a separate library,
   dnl but patent problems, etc. sort of squashed that idea.
   dnl We default to building with builtin GIF decoding
   dnl For a brief period we had the GIF code split out into a separate library,
   dnl but patent problems, etc. sort of squashed that idea.
   dnl We default to building with builtin GIF decoding
@@ -2806,15 +2833,6 @@ if test "$with_x11" = "yes"; then
 
   AC_CHECKING(for X11 graphics libraries)
 
 
   AC_CHECKING(for X11 graphics libraries)
 
-  dnl Autodetect XFACE
-  test -z "$with_xface" && { AC_CHECK_HEADER(compface.h,          ,with_xface=no) }
-  test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) }
-  test -z "$with_xface" && with_xface=yes
-  if test "$with_xface" = "yes"; then
-    AC_DEFINE(HAVE_XFACE)
-    XE_PREPEND(-lcompface, libs_x)
-  fi
-
   dnl Autodetect -lXaw
   AC_CHECK_LIB(Xaw, XawScrollbarSetThumb, have_xaw=yes, have_xaw=no)
   dnl if test "$have_xaw" = "yes"; then
   dnl Autodetect -lXaw
   AC_CHECK_LIB(Xaw, XawScrollbarSetThumb, have_xaw=yes, have_xaw=no)
   dnl if test "$have_xaw" = "yes"; then
@@ -2906,7 +2924,6 @@ test "$with_menubars"   != "no"      && XE_ADD_OBJS(menubar.o)
 test "$with_scrollbars" != "no"      && XE_ADD_OBJS(scrollbar.o)
 test "$with_dialogs"    != "no"      && XE_ADD_OBJS(dialog.o)
 test "$with_toolbars"   != "no"      && XE_ADD_OBJS(toolbar.o)
 test "$with_scrollbars" != "no"      && XE_ADD_OBJS(scrollbar.o)
 test "$with_dialogs"    != "no"      && XE_ADD_OBJS(dialog.o)
 test "$with_toolbars"   != "no"      && XE_ADD_OBJS(toolbar.o)
-test "$all_widgets" != "no no no no" && XE_ADD_OBJS(gui.o)
 
 if test "$with_x11" = "yes"; then
   test "$with_menubars"   != "no"      && XE_ADD_OBJS(menubar-x.o)
 
 if test "$with_x11" = "yes"; then
   test "$with_menubars"   != "no"      && XE_ADD_OBJS(menubar-x.o)
@@ -2922,10 +2939,6 @@ else
   fi
 fi
 
   fi
 fi
 
-test "$use_minimal_tagbits" = "yes" && AC_DEFINE(USE_MINIMAL_TAGBITS)
-test "$use_indexed_lrecord_implementation" = "yes" && \
-  AC_DEFINE(USE_INDEXED_LRECORD_IMPLEMENTATION)
-
 dnl ----------------------
 dnl Mule-dependent options
 dnl ----------------------
 dnl ----------------------
 dnl Mule-dependent options
 dnl ----------------------
@@ -2949,7 +2962,7 @@ if test "$with_mule" = "yes" ; then
   AC_CHECKING(for Mule-related features)
   AC_DEFINE(MULE)
   AC_DEFINE(FILE_CODING)
   AC_CHECKING(for Mule-related features)
   AC_DEFINE(MULE)
   AC_DEFINE(FILE_CODING)
-  XE_ADD_OBJS(mule.o mule-ccl.o mule-charset.o mule-coding.o file-coding.o)
+  XE_ADD_OBJS(mule.o mule-ccl.o mule-charset.o file-coding.o)
 
   dnl Use -lintl to get internationalized strerror for Mule
   AC_CHECK_HEADERS(libintl.h)
 
   dnl Use -lintl to get internationalized strerror for Mule
   AC_CHECK_HEADERS(libintl.h)
@@ -2961,10 +2974,11 @@ if test "$with_mule" = "yes" ; then
   dnl test -z "$with_xim" -a "$opsys" != "sol2" && with_xim=no
   case "$with_xim" in "" | "yes" )
     AC_CHECKING(for XIM)
   dnl test -z "$with_xim" -a "$opsys" != "sol2" && with_xim=no
   case "$with_xim" in "" | "yes" )
     AC_CHECKING(for XIM)
+    AC_CHECK_LIB(X11, XOpenIM, with_xim=xlib, with_xim=no)
     dnl XIM + Lesstif is not (yet?) usable
     dnl XIM + Lesstif is not (yet?) usable
-    if test "$have_lesstif" = "yes"; then with_xim=xlib
-    else AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif, with_xim=xlib)
-    fi
+    if test "$have_motif $have_lesstif" = "yes no"; then
+      AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif)
+    fi ;;
   esac
   if test "$with_xim" != "no"; then
     AC_DEFINE(HAVE_XIM)
   esac
   if test "$with_xim" != "no"; then
     AC_DEFINE(HAVE_XIM)
@@ -2982,7 +2996,7 @@ if test "$with_mule" = "yes" ; then
     fi
   fi
 
     fi
   fi
 
-  dnl "with_xim" = "yes"
+  dnl "with_xfs" = "yes"
   if test "$with_xfs" = "yes" ; then
     AC_CHECKING(for XFontSet)
     AC_CHECK_LIB(X11, XmbDrawString, [:], with_xfs=no)
   if test "$with_xfs" = "yes" ; then
     AC_CHECKING(for XFontSet)
     AC_CHECK_LIB(X11, XmbDrawString, [:], with_xfs=no)
@@ -2992,7 +3006,7 @@ if test "$with_mule" = "yes" ; then
         XE_ADD_OBJS(input-method-xfs.o)
       fi
     fi
         XE_ADD_OBJS(input-method-xfs.o)
       fi
     fi
-  fi dnl with_xim
+  fi dnl with_xfs
 
   dnl Autodetect WNN
   test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
 
   dnl Autodetect WNN
   test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
@@ -3003,14 +3017,19 @@ if test "$with_mule" = "yes" ; then
     test "$ac_cv_func_crypt" != "yes" && { AC_CHECK_LIB(crypt, crypt) }
   fi
   dnl Back to our regularly scheduled wnn hunting
     test "$ac_cv_func_crypt" != "yes" && { AC_CHECK_LIB(crypt, crypt) }
   fi
   dnl Back to our regularly scheduled wnn hunting
-  test -z "$with_wnn" && { AC_CHECK_LIB(wnn,jl_dic_list_e,[:],with_wnn=no) }
+  if test -z "$with_wnn" -o "$with_wnn" = "yes"; then
+    AC_CHECK_LIB(wnn,jl_dic_list_e,libwnn=wnn,
+      AC_CHECK_LIB(wnn4,jl_dic_list_e,libwnn=wnn4,
+       AC_CHECK_LIB(wnn6,jl_dic_list_e,libwnn=wnn6,
+         AC_CHECK_LIB(wnn6_fromsrc,dic_list_e,libwnn=wnn6_fromsrc,with_wnn=no))))
+  fi
   test -z "$with_wnn" && with_wnn=yes
   if test "$with_wnn" = "yes"; then
     AC_DEFINE(HAVE_WNN)
   test -z "$with_wnn" && with_wnn=yes
   if test "$with_wnn" = "yes"; then
     AC_DEFINE(HAVE_WNN)
-    XE_PREPEND(-lwnn, libs_x)
+    XE_PREPEND(-l$libwnn, libs_x)
     XE_ADD_OBJS(mule-wnnfns.o)
     if test "$with_wnn6" != "no"; then
     XE_ADD_OBJS(mule-wnnfns.o)
     if test "$with_wnn6" != "no"; then
-      AC_CHECK_LIB(wnn, jl_fi_dic_list, with_wnn6=yes)
+      AC_CHECK_LIB($libwnn, jl_fi_dic_list, with_wnn6=yes)
       test "$with_wnn6" = "yes" && AC_DEFINE(WNN6)
     fi
   fi
       test "$with_wnn6" = "yes" && AC_DEFINE(WNN6)
     fi
   fi
@@ -3068,13 +3087,31 @@ dnl The realpath in ELF linux libc's is O.K.
 dnl For example, call realpath on a file thirty-five or so directories deep
 dnl and you get ELOOP even if no symlinks at all are involved.
 dnl Reports as of 11/1997 indicate BSDi has problems too.
 dnl For example, call realpath on a file thirty-five or so directories deep
 dnl and you get ELOOP even if no symlinks at all are involved.
 dnl Reports as of 11/1997 indicate BSDi has problems too.
+dnl The realpath() in UnixWare2.1.3 could not get any pathname fragment in error condition.
 case "$opsys" in
   linuxaout* | bsdos3* | freebsd* | decosf4-0* | aix4* ) XE_ADD_OBJS(realpath.o) ;;
   * )
 case "$opsys" in
   linuxaout* | bsdos3* | freebsd* | decosf4-0* | aix4* ) XE_ADD_OBJS(realpath.o) ;;
   * )
-    AC_CHECK_FUNCS(realpath)
-    test "$ac_cv_func_realpath" != "yes" && XE_ADD_OBJS(realpath.o) ;;
+    case "$canonical" in
+      *-*-sysv4.2uw2* ) XE_ADD_OBJS(realpath.o) ;;
+      * ) AC_CHECK_FUNCS(realpath)
+         test "$ac_cv_func_realpath" != "yes" && XE_ADD_OBJS(realpath.o) ;;
+    esac ;;
 esac
 
 esac
 
+dnl Check whether the system provides getloadavg (Solaris 7 has it)
+AC_CHECK_FUNCS(getloadavg)
+
+if test "$ac_cv_func_getloadavg" != "yes"
+then
+  XE_ADD_OBJS(getloadavg.o)
+
+  dnl Used by getloadavg() - does not require root priveleges
+  AC_CHECK_LIB(kstat, kstat_open)
+
+  dnl Another way to get the load average
+  AC_CHECK_LIB(kvm, kvm_read)
+fi
+
 dnl If netdb.h does not declare h_errno, we must declare it by hand.
 AC_MSG_CHECKING(whether netdb declares h_errno)
 AC_TRY_LINK([#include <netdb.h>],
 dnl If netdb.h does not declare h_errno, we must declare it by hand.
 AC_MSG_CHECKING(whether netdb declares h_errno)
 AC_TRY_LINK([#include <netdb.h>],
@@ -3371,7 +3408,7 @@ case "$with_sound" in both | nas )
   XE_ADD_OBJS(nas.o)
   XE_PREPEND(-laudio, libs_x)
   dnl If the nas library does not contain the error jump point,
   XE_ADD_OBJS(nas.o)
   XE_PREPEND(-laudio, libs_x)
   dnl If the nas library does not contain the error jump point,
-  dnl then we force safer behaviour.
+  dnl then we force safer behavior.
   AC_EGREP_HEADER(AuXtErrorJump,audio/Xtutil.h,,[AC_DEFINE(NAS_NO_ERROR_JUMP)])
 esac
 
   AC_EGREP_HEADER(AuXtErrorJump,audio/Xtutil.h,,[AC_DEFINE(NAS_NO_ERROR_JUMP)])
 esac
 
@@ -3460,45 +3497,48 @@ dnl Do we need event-unixoid.o ?
 test "$with_x11" = "yes" -o "$with_tty" = "yes" && XE_ADD_OBJS(event-unixoid.o)
 
 dnl Database support
 test "$with_x11" = "yes" -o "$with_tty" = "yes" && XE_ADD_OBJS(event-unixoid.o)
 
 dnl Database support
-dnl <mdiers@logware.de>
 dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support.
 dnl On FreeBSD, both DB and DBM are part of libc.
 dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support.
 dnl On FreeBSD, both DB and DBM are part of libc.
-dnl Note that unless support for DB/(G)DBM is explicitly disabled, we always
-dnl want to check for libdb/lib(g)dbm. Also note that libc will not be
-dnl checked if we have the libraries.
-dnl If support for DB/(G)DBM is requested, but we neither have libdb/lib(g)dbm,
-dnl nor does libc implement it, we are a bit lost :)
-
-AC_CHECKING(for database support)
+dnl By default, we check for DBM support in libgdbm, then libc, then libdbm.
+
+test "$with_database_gnudbm $with_database_dbm $with_database_berkdb" \
+  != "no no no" && AC_CHECKING(for database support)
+
+dnl Check for ndbm.h, required for either kind of DBM support.
+if test "$with_database_gnudbm $with_database_dbm" != "no no"; then
+  AC_CHECK_HEADER(ndbm.h, [:], [
+    test "$with_database_gnudbm" = "yes" -o \
+         "$with_database_dbm"    = "yes" && \
+      XE_DIE("Required DBM support cannot be provided.")
+    with_database_gnudbm=no with_database_dbm=no])
+fi
 
 
+dnl Check for DBM support in libgdbm.
 if test "$with_database_gnudbm" != "no"; then
 if test "$with_database_gnudbm" != "no"; then
-  AC_CHECK_HEADERS(ndbm.h, have_ndbm_h=yes)
-  if test "$have_ndbm_h" = "yes"; then
-    AC_CHECK_LIB(gdbm, dbm_open, with_database_gnudbm=yes have_libgdbm=yes)
-  fi
-  if test "$with_database_gnudbm" != "yes"; then
-    AC_CHECK_FUNC(dbm_open, with_database_gnudbm=yes)
-      fi
-  if test "$with_database_gnudbm" = "yes"; then
-    AC_DEFINE(HAVE_DBM)
-    test "$have_libgdbm" = "yes" && XE_PREPEND(-lgdbm, LIBS)
-    with_database_dbm=no
-  else with_database_gnudbm=no
-  fi
+  AC_CHECK_LIB(gdbm, dbm_open, [
+   with_database_gnudbm=yes with_database_dbm=no libdbm=-lgdbm], [
+   if test "$with_database_gnudbm" = "yes"; then
+     XE_DIE("Required GNU DBM support cannot be provided.")
+   fi
+   with_database_gnudbm=no])
 fi
 
 fi
 
+dnl Check for DBM support in libc and libdbm.
 if test "$with_database_dbm" != "no"; then
 if test "$with_database_dbm" != "no"; then
-  AC_CHECK_FUNC(dbm_open, with_database_dbm=yes need_libdbm=no)
-  if test "$need_libdbm" != "no"; then
-    AC_CHECK_LIB(dbm, dbm_open, with_database_dbm=yes need_libdbm=yes)
-  fi
-  if test "$with_database_dbm" = "yes"; then
-    AC_DEFINE(HAVE_DBM)
-    test "$need_libdbm" = "yes" && XE_PREPEND(-ldbm, LIBS)
-  else with_database_dbm=no
-  fi
+  AC_CHECK_FUNC(dbm_open, [with_database_dbm=yes libdbm=], [
+    AC_CHECK_LIB(dbm, dbm_open, [with_database_dbm=yes libdbm=-ldbm], [
+      test "$with_database_dbm" = "yes" && \
+        XE_DIE("Required DBM support cannot be provided.")
+      with_database_dbm=no])])
 fi
 
 fi
 
+dnl Tell make about the DBM support we detected.
+test -n "$libdbm" && XE_PREPEND("$libdbm", LIBS)
+test "$with_database_gnudbm" = "yes" -o \
+     "$with_database_dbm"    = "yes" && \
+  AC_DEFINE(HAVE_DBM)
+
+dnl Check for Berkeley DB.
 if test "$with_database_berkdb" != "no"; then
   AC_MSG_CHECKING(for Berkeley db.h)
   for path in "db/db.h" "db.h"; do
 if test "$with_database_berkdb" != "no"; then
   AC_MSG_CHECKING(for Berkeley db.h)
   for path in "db/db.h" "db.h"; do
@@ -3558,30 +3598,27 @@ if test "$usage_tracking" = "yes"; then
   XE_PREPEND(-Bstatic -lut -Bdynamic, LIBS)
 fi
 
   XE_PREPEND(-Bstatic -lut -Bdynamic, LIBS)
 fi
 
-dnl cygwin can't cope with dlfcn at the moment
-test -z "$with_shlib" && test "$opsys $machine" = "cygwin32 intel386" && with_shlib=no
-
 dnl autodetect dll support
 dnl autodetect dll support
-AC_CHECK_HEADERS(dlfcn.h, have_dlfcn=yes)
+AC_CHECK_HEADERS(dlfcn.h, [have_dlfcn=yes
+  AC_DEFINE(HAVE_DLFCN_H)])
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(dl,  dlopen,   [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=dl;  with_shlib=yes]) }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c,   _dlopen,  [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=;   with_shlib=yes]) }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c,   dlopen,   [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=;   with_shlib=yes]) }
 test -z "$with_shlib" && { AC_CHECK_LIB(dld, shl_load, [ AC_DEFINE(HAVE_SHL_LOAD) DLL_LIB=dld; with_shlib=yes]) }
 test -z "$with_shlib" && { AC_CHECK_LIB(dld, dld_init, [ AC_DEFINE(HAVE_DLD_INIT) DLL_LIB=dld; with_shlib=yes]) }
 if test "$with_shlib" = "yes"; then
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(dl,  dlopen,   [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=dl;  with_shlib=yes]) }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c,   _dlopen,  [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=;   with_shlib=yes]) }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c,   dlopen,   [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=;   with_shlib=yes]) }
 test -z "$with_shlib" && { AC_CHECK_LIB(dld, shl_load, [ AC_DEFINE(HAVE_SHL_LOAD) DLL_LIB=dld; with_shlib=yes]) }
 test -z "$with_shlib" && { AC_CHECK_LIB(dld, dld_init, [ AC_DEFINE(HAVE_DLD_INIT) DLL_LIB=dld; with_shlib=yes]) }
 if test "$with_shlib" = "yes"; then
-  AC_DEFINE(HAVE_SHLIB)
-  XE_ADD_OBJS(sysdll.o)
-  XE_ADD_OBJS(dll.o)
-  test ! -z "$DLL_LIB" && XE_PREPEND(-l${DLL_LIB}, LIBS)
-  XE_MAKE_SHAREDLIB
-  AC_CHECK_FUNCS(dlerror)
-  ld_dynamic_link_flags=
-  dnl Fill this in with other values as this gets more testing
-  case "$opsys" in
-  hpux*)  ld_dynamic_link_flags="-Wl,-E" ;;
-  linux*) ld_dynamic_link_flags="-rdynamic" ;;
-  *) ;;
-  esac
+  XE_SHLIB_STUFF
+  if test "$can_build_shared" = "yes"; then
+    AC_DEFINE(HAVE_SHLIB)
+    XE_ADD_OBJS(sysdll.o)
+    XE_ADD_OBJS(emodules.o)
+    XE_APPEND(src, INSTALL_ARCH_DEP_SUBDIR)
+    test ! -z "$DLL_LIB" && XE_PREPEND(-l${DLL_LIB}, LIBS)
+    AC_CHECK_FUNCS(dlerror _dlerror)
+  else
+    AC_MSG_WARN(disabling shared library support)
+    with_shlib=no
+  fi
 fi
 
 dnl Unfortunately, just because we can link doesn't mean we can run.
 fi
 
 dnl Unfortunately, just because we can link doesn't mean we can run.
@@ -3605,12 +3642,13 @@ AC_TRY_RUN([int main(int c,char *v[]){return 0;}],[:],[
   echo "*** PANIC *** on your system.  Don't do that."
   exit 1])
 
   echo "*** PANIC *** on your system.  Don't do that."
   exit 1])
 
-dnl Process support (hardcoded)
-dnl every system that supports this runs configure, the others don't
-
-dnl We're not ready for this yet.
-AC_DEFINE(HAVE_UNIX_PROCESSES)
-XE_ADD_OBJS(process-unix.o)
+dnl Process support
+if test "$win32_processes" = "yes"; then
+  XE_ADD_OBJS(process-nt.o)
+else
+  AC_DEFINE(HAVE_UNIX_PROCESSES)
+  XE_ADD_OBJS(process-unix.o)
+fi
 
 dnl --------------------------------
 dnl Compute SUBST-itutable variables
 
 dnl --------------------------------
 dnl Compute SUBST-itutable variables
@@ -3633,7 +3671,7 @@ XE_SPACE(ld_libs_all, $ld_libs_window_system $ld_libs_general)
 dnl Compute lists of Makefiles and subdirs
 AC_SUBST(SRC_SUBDIR_DEPS)
 XE_APPEND(src, MAKE_SUBDIR)
 dnl Compute lists of Makefiles and subdirs
 AC_SUBST(SRC_SUBDIR_DEPS)
 XE_APPEND(src, MAKE_SUBDIR)
-internal_makefile_list="Makefile"
+internal_makefile_list="Makefile.in"
 SUBDIR_MAKEFILES=''
 test -d lock || mkdir lock
 for dir in $MAKE_SUBDIR; do
 SUBDIR_MAKEFILES=''
 test -d lock || mkdir lock
 for dir in $MAKE_SUBDIR; do
@@ -3643,7 +3681,7 @@ for dir in $MAKE_SUBDIR; do
       done ) ;;
    * ) test -d "$dir" || mkdir "$dir" ;;
   esac
       done ) ;;
    * ) test -d "$dir" || mkdir "$dir" ;;
   esac
-  XE_SPACE(SUBDIR_MAKEFILES, $SUBDIR_MAKEFILES $dir/Makefile)
+  XE_SPACE(SUBDIR_MAKEFILES, $SUBDIR_MAKEFILES $dir/Makefile $dir/GNUmakefile)
   XE_SPACE(internal_makefile_list, $internal_makefile_list $dir/Makefile.in)
 done
 AC_SUBST(INSTALL_ARCH_DEP_SUBDIR)
   XE_SPACE(internal_makefile_list, $internal_makefile_list $dir/Makefile.in)
 done
 AC_SUBST(INSTALL_ARCH_DEP_SUBDIR)
@@ -3769,16 +3807,38 @@ while true; do
 done
 AC_SUBST(LISPDIR)
 
 done
 AC_SUBST(LISPDIR)
 
-dnl AC_SUBST(sitelispdir)
-dnl AC_SUBST(SITELISPDIR_USER_DEFINED)
-dnl SITELISPDIR=$sitelispdir
-dnl while true; do
-dnl   case "$SITELISPDIR" in
-dnl     *\$* ) eval "SITELISPDIR=$SITELISPDIR" ;;
-dnl     *) break ;;
-dnl   esac
-dnl done
-dnl AC_SUBST(SITELISPDIR)
+AC_SUBST(moduledir)
+AC_SUBST(MODULEDIR_USER_DEFINED)
+MODULEDIR=$moduledir
+while true; do
+  case "$MODULEDIR" in
+    *\$* ) eval "MODULEDIR=$MODULEDIR" ;;
+    *) break ;;
+  esac
+done
+AC_SUBST(MODULEDIR)
+
+AC_SUBST(sitelispdir)
+AC_SUBST(SITELISPDIR_USER_DEFINED)
+SITELISPDIR=$sitelispdir
+while true; do
+  case "$SITELISPDIR" in
+    *\$* ) eval "SITELISPDIR=$SITELISPDIR" ;;
+    *) break ;;
+  esac
+done
+AC_SUBST(SITELISPDIR)
+
+AC_SUBST(sitemoduledir)
+AC_SUBST(SITEMODULEDIR_USER_DEFINED)
+SITEMODULEDIR=$sitemoduledir
+while true; do
+  case "$SITEMODULEDIR" in
+    *\$* ) eval "SITEMODULEDIR=$SITEMODULEDIR" ;;
+    *) break ;;
+  esac
+done
+AC_SUBST(SITEMODULEDIR)
 
 AC_SUBST(etcdir)
 AC_SUBST(ETCDIR_USER_DEFINED)
 
 AC_SUBST(etcdir)
 AC_SUBST(ETCDIR_USER_DEFINED)
@@ -3816,13 +3876,12 @@ AC_SUBST(ARCHLIBDIR)
 AC_SUBST(docdir)
 AC_SUBST(bitmapdir)
 AC_SUBST(extra_objs)
 AC_SUBST(docdir)
 AC_SUBST(bitmapdir)
 AC_SUBST(extra_objs)
-AC_SUBST(ld_dynamic_link_flags)
 
 dnl The following flags combine all the information from:
 dnl - command line options (user always gets priority)
 dnl - user environment variables
 dnl - determined by configure
 
 dnl The following flags combine all the information from:
 dnl - command line options (user always gets priority)
 dnl - user environment variables
 dnl - determined by configure
-dnl - the s&m header files (deprecated)
+dnl - the s&m header files (required for ellcc)
 AC_SUBST(machfile)
 AC_SUBST(opsysfile)
 AC_SUBST(c_switch_general)
 AC_SUBST(machfile)
 AC_SUBST(opsysfile)
 AC_SUBST(c_switch_general)
@@ -3845,10 +3904,20 @@ AC_SUBST(sound_cflags)
 AC_SUBST(RANLIB)
 AC_SUBST(dynodump_arch)
 
 AC_SUBST(RANLIB)
 AC_SUBST(dynodump_arch)
 
-# The default is yes
+dnl Preliminary support for using a different compiler for xemacs itself.
+dnl Useful for building XEmacs with a C++ or 64-bit compiler.
+: ${XEMACS_CC:=$CC}
+AC_SUBST(XEMACS_CC)
+
+
+dnl The default is no
 if test "$with_site_lisp" = "no"; then
   AC_DEFINE(INHIBIT_SITE_LISP)
 fi
 if test "$with_site_lisp" = "no"; then
   AC_DEFINE(INHIBIT_SITE_LISP)
 fi
+dnl The default is yes
+if test "$with_site_modules" = "no"; then
+  AC_DEFINE(INHIBIT_SITE_MODULES)
+fi
 
 XE_SPACE(ac_configure_args, $ac_configure_args)
 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "$canonical")
 
 XE_SPACE(ac_configure_args, $ac_configure_args)
 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "$canonical")
@@ -3871,8 +3940,6 @@ dnl at the point where the autodetection occurs or would occur,
 dnl so that the user gets immediate feedback on the results of the
 dnl autodetection.
 
 dnl so that the user gets immediate feedback on the results of the
 dnl autodetection.
 
-test -n "$puresize" && AC_DEFINE_UNQUOTED(RAW_PURESIZE, $puresize)
-
 if   test "$GNU_MALLOC"         = "yes"; then AC_DEFINE(GNU_MALLOC)
 elif test "$with_system_malloc" = "yes"; then AC_DEFINE(USE_SYSTEM_MALLOC)
 elif test "$with_debug_malloc"  = "yes"; then AC_DEFINE(USE_DEBUG_MALLOC)
 if   test "$GNU_MALLOC"         = "yes"; then AC_DEFINE(GNU_MALLOC)
 elif test "$with_system_malloc" = "yes"; then AC_DEFINE(USE_SYSTEM_MALLOC)
 elif test "$with_debug_malloc"  = "yes"; then AC_DEFINE(USE_DEBUG_MALLOC)
@@ -3881,9 +3948,9 @@ fi
 test "$with_i18n3"         = "yes" && AC_DEFINE(I18N3)
 test "$GCC"                = "yes" && AC_DEFINE(USE_GCC)
 test "$external_widget"    = "yes" && AC_DEFINE(EXTERNAL_WIDGET)
 test "$with_i18n3"         = "yes" && AC_DEFINE(I18N3)
 test "$GCC"                = "yes" && AC_DEFINE(USE_GCC)
 test "$external_widget"    = "yes" && AC_DEFINE(EXTERNAL_WIDGET)
-test "$with_gnu_make"      = "yes" && AC_DEFINE(USE_GNU_MAKE)
 test "$no_doc_file"        = "yes" && AC_DEFINE(NO_DOC_FILE)
 dnl test "$const_is_losing"    = "yes" && AC_DEFINE(CONST_IS_LOSING)
 test "$no_doc_file"        = "yes" && AC_DEFINE(NO_DOC_FILE)
 dnl test "$const_is_losing"    = "yes" && AC_DEFINE(CONST_IS_LOSING)
+test "$with_purify"        = "yes" && AC_DEFINE(PURIFY)
 test "$with_quantify"      = "yes" && AC_DEFINE(QUANTIFY)
 test "$with_pop"           = "yes" && AC_DEFINE(MAIL_USE_POP)
 test "$with_kerberos"      = "yes" && AC_DEFINE(KERBEROS)
 test "$with_quantify"      = "yes" && AC_DEFINE(QUANTIFY)
 test "$with_pop"           = "yes" && AC_DEFINE(MAIL_USE_POP)
 test "$with_kerberos"      = "yes" && AC_DEFINE(KERBEROS)
@@ -3905,8 +3972,15 @@ echo ""
 echo "$0 $quoted_arguments"
 ) > Installation
 
 echo "$0 $quoted_arguments"
 ) > Installation
 
-xemacs_betaname=""
-test ! -z "${emacs_beta_version}" && xemacs_betaname="-b${emacs_beta_version}"
+if test ! -z ${emacs_beta_version} ; then
+  if test -z "${emacs_is_beta}" ; then
+       xemacs_betaname=".${emacs_beta_version}"
+  else
+       xemacs_betaname="-b${emacs_beta_version}"
+  fi
+else
+  xemacs_betaname=""   
+fi
 
 dnl Start stdout redirection to '| tee -a Installation'
 (
 
 dnl Start stdout redirection to '| tee -a Installation'
 (
@@ -3980,7 +4054,7 @@ case "$with_sound" in
   native ) echo "  Compiling in native sound support." ;;
   both   ) echo "  Compiling in both network and native sound support." ;;
 esac
   native ) echo "  Compiling in native sound support." ;;
   both   ) echo "  Compiling in both network and native sound support." ;;
 esac
-test "$old_nas" = yes && echo "        nas library lacks error trapping, will play synchronously"
+test "$old_nas" = yes && echo "        nas library lacks error trapping, will play synchronously."
 
 test "$with_database_berkdb" = yes && echo "  Compiling in support for Berkeley DB."
 test "$with_database_dbm"    = yes && echo "  Compiling in support for DBM."
 
 test "$with_database_berkdb" = yes && echo "  Compiling in support for Berkeley DB."
 test "$with_database_dbm"    = yes && echo "  Compiling in support for DBM."
@@ -4011,7 +4085,7 @@ test "$with_tooltalk" = yes && echo "  Compiling in support for ToolTalk."
 test "$with_offix"    = yes && echo "  Compiling in support for OffiX."
 test "$with_dragndrop" = yes && echo "  Compiling in EXPERIMENTAL support for Drag'n'Drop ($dragndrop_proto )."
 test "$with_workshop" = yes && echo "  Compiling in support for Sun WorkShop."
 test "$with_offix"    = yes && echo "  Compiling in support for OffiX."
 test "$with_dragndrop" = yes && echo "  Compiling in EXPERIMENTAL support for Drag'n'Drop ($dragndrop_proto )."
 test "$with_workshop" = yes && echo "  Compiling in support for Sun WorkShop."
-test "$with_session"  != no && echo "  Compiling in support for proper session-management."
+test "$with_wmcommand"  != no && echo "  Compiling in support for proper WM_COMMAND handling."
 case "$with_menubars" in
   lucid ) echo "  Using Lucid menubars." ;;
   motif ) echo "  Using Motif menubars."
 case "$with_menubars" in
   lucid ) echo "  Using Lucid menubars." ;;
   motif ) echo "  Using Motif menubars."
@@ -4026,7 +4100,15 @@ case "$with_scrollbars" in
   athena3d ) echo "  Using Athena-3d scrollbars." ;;
 esac
 case "$with_dialogs" in
   athena3d ) echo "  Using Athena-3d scrollbars." ;;
 esac
 case "$with_dialogs" in
-  motif    ) echo "  Using Motif dialog boxes."     ;;
+  motif    )
+    echo "  Using Motif dialog boxes."
+    if test "$unexec" = "unexaix.o"; then if test "`uname -v`" = 4 -a "`uname -r`" -ge 3; then
+      echo "  *WARNING*  The Motif dialog boxes cause problems on AIX 4.3 and higher."
+      echo "             We recommend using the Athena dialog boxes instead."
+      echo "             Install libXaw and re-run configure with --with-dialogs='athena'."
+      echo "             Read the PROBLEMS file for more information."
+    fi; fi
+    ;;
   athena   ) echo "  Using Athena dialog boxes."    ;;
   athena3d ) echo "  Using Athena-3d dialog boxes." ;;
 esac
   athena   ) echo "  Using Athena dialog boxes."    ;;
   athena3d ) echo "  Using Athena-3d dialog boxes." ;;
 esac
@@ -4034,14 +4116,11 @@ test "$with_shlib" = "yes" && echo "  Compiling in DLL support."
 test "$with_clash_detection" = yes && \
   echo "  Clash detection will use \"$lockdir\" for locking files."
 echo "  movemail will use \"$mail_locking\" for locking mail spool files."
 test "$with_clash_detection" = yes && \
   echo "  Clash detection will use \"$lockdir\" for locking files."
 echo "  movemail will use \"$mail_locking\" for locking mail spool files."
-test "$with_pop"       = yes && echo "  Using POP for mail access"
-test "$with_kerberos"  = yes && echo "  Using Kerberos for POP authentication"
-test "$with_hesiod"    = yes && echo "  Using Hesiod to get POP server host"
+test "$with_pop"       = yes && echo "  Using POP for mail access."
+test "$with_kerberos"  = yes && echo "  Using Kerberos for POP authentication."
+test "$with_hesiod"    = yes && echo "  Using Hesiod to get POP server host."
 test "$use_union_type"  = yes && echo "  Using the union type for Lisp_Objects."
 test "$use_union_type"  = yes && echo "  Using the union type for Lisp_Objects."
-test "$use_minimal_tagbits" = yes && echo "  Using Lisp_Objects with minimal tagbits."
-test "$use_indexed_lrecord_implementation" = yes && echo "  Using indexed lrecord implementation."
 test "$debug"              = yes && echo "  Compiling in extra code for debugging."
 test "$debug"              = yes && echo "  Compiling in extra code for debugging."
-test "$memory_usage_stats" = yes && echo "  Compiling in code for checking XEmacs memory usage."
 test "$usage_tracking"     = yes && echo "  Compiling with usage tracking active (Sun internal)."
 if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc" \
   != "no no no no no"; then
 test "$usage_tracking"     = yes && echo "  Compiling with usage tracking active (Sun internal)."
 if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc" \
   != "no no no no no"; then
@@ -4056,15 +4135,9 @@ echo ""
 dnl echo "The above configure report is appended to \"Installation\" file."
 echo ""
 
 dnl echo "The above configure report is appended to \"Installation\" file."
 echo ""
 
-dnl Generate Installation.el
-echo '(setq Installation-string "' > Installation.el
-sed 's/"/\\"/g' Installation >> Installation.el
-echo '")' >> Installation.el
-
 dnl -----------------------------------
 dnl Now generate config.h and Makefiles
 dnl -----------------------------------
 dnl -----------------------------------
 dnl Now generate config.h and Makefiles
 dnl -----------------------------------
-
 dnl This has to be called in order for this variable to get into config.status
 AC_SUBST(internal_makefile_list)
 # Remove any trailing slashes in these variables.
 dnl This has to be called in order for this variable to get into config.status
 AC_SUBST(internal_makefile_list)
 # Remove any trailing slashes in these variables.
@@ -4082,43 +4155,62 @@ for file in $internal_makefile_list; do
   ac_output_files="${ac_output_files+$ac_output_files }$file"
 done
 ac_output_files="$ac_output_files src/paths.h lib-src/config.values"
   ac_output_files="${ac_output_files+$ac_output_files }$file"
 done
 ac_output_files="$ac_output_files src/paths.h lib-src/config.values"
+if test "$with_shlib" = "yes"; then
+  ac_output_files="$ac_output_files lib-src/ellcc.h"
+fi
 
 AC_OUTPUT($ac_output_files,
 
 AC_OUTPUT($ac_output_files,
-[for dir in $MAKE_SUBDIR; do
-  echo creating $dir/Makefile
+[for dir in . $MAKE_SUBDIR; do
   (
   (
-changequote(<<, >>)dnl
     cd $dir
     rm -f junk.c
     < Makefile.in \
       sed -e '/^# Generated/d' \
           -e 's%/\*\*/#.*%%' \
           -e 's/^ *# */#/' \
     cd $dir
     rm -f junk.c
     < Makefile.in \
       sed -e '/^# Generated/d' \
           -e 's%/\*\*/#.*%%' \
           -e 's/^ *# */#/' \
+dnl Delete Makefile.in.in comment lines
           -e '/^##/d' \
           -e '/^##/d' \
+dnl Pass through CPP directives unchanged
           -e '/^#/ {
 p
 d
           -e '/^#/ {
 p
 d
-}'        -e '/./ {
-s/\([\"]\)/\\\1/g
+}'        \
+dnl Quote other lines to protect from CPP substitution
+         -e '/./ {
+s/\([[\"]]\)/\\\1/g
 s/^/"/
 s/$/"/
 }'  > junk.c;
 s/^/"/
 s/$/"/
 }'  > junk.c;
-    $CPP -I. -I${top_srcdir}/src $CPPFLAGS junk.c > junk.cpp;
-    < junk.cpp                         \
-      sed -e 's/^#.*//'                        \
-       -e 's/^[ TAB][ TAB]*$//'        \
-       -e 's/^ /TAB/'                  \
-       | sed -n -e '/^..*$/p'          \
-       | sed '/^"/ {
-s/\\\([\"]\)/\1/g
-s/^[ TAB]*"//
-s/"[ TAB]*$//
-}'     > Makefile.new
+
+dnl Create a GNUmakefile and Makefile from Makefile.in.
+
+changequote(<<,>>)dnl
+dnl CPP_MAKEFILE(CPPFLAGS,filename)
+define(<<CPP_MAKEFILE>>,
+echo creating $dir/<<$2>>
+$CPP -I. -I${top_srcdir}/src <<$1>> junk.c \
+dnl Delete line directives inserted by $CPP
+  | sed -e 's/^\#.*//'         \
+dnl Delete spurious blanks inserted by $CPP
+       -e 's/^[ TAB][ TAB]*$//'\
+       -e 's/^ /TAB/'          \
+dnl Delete blank lines
+  | sed -n -e '/^..*$/p'       \
+dnl Restore lines quoted above to original contents.
+  | sed '/^\"/ {
+       s/\\\([\"]\)/\1/g
+       s/^[ TAB]*\"//
+       s/\"[ TAB]*$//
+}' > Makefile.new
     chmod 444 Makefile.new
     chmod 444 Makefile.new
-    mv -f Makefile.new Makefile
-    rm -f junk.c junk.cpp
-changequote([, ])dnl
-)
+    mv -f Makefile.new <<$2>>
+)dnl CPP_MAKEFILE
+
+    CPP_MAKEFILE(,Makefile)
+    CPP_MAKEFILE(-DUSE_GNU_MAKE,GNUmakefile)
+changequote([,])dnl
+    rm -f junk.c
+  )
 done
 
 dnl Append AC_DEFINE information to lib-src/config.values
 done
 
 dnl Append AC_DEFINE information to lib-src/config.values
@@ -4131,7 +4223,6 @@ sed < config.status >> lib-src/config.values \
 
 ],
 [CPP="$CPP"
 
 ],
 [CPP="$CPP"
- CPPFLAGS="$CPPFLAGS"
  top_srcdir="$srcdir"
  MAKE_SUBDIR="$MAKE_SUBDIR"
  top_srcdir="$srcdir"
  MAKE_SUBDIR="$MAKE_SUBDIR"
-])
+])dnl