XEmacs 21.2.33 "Melpomene".
[chise/xemacs-chise.git.1] / configure.in
index 54eccbf..ff22b3f 100644 (file)
@@ -14,7 +14,7 @@ define([AC_INIT_NOTICE],
 ### from the file `./configure.in'.
 ### To rebuild it, execute the command
 ###    autoconf
-### in the this directory.  You must have autoconf version 2.12 or later.
+### in the this directory.  You must have autoconf version 2.13 or later.
 
 ### This file is part of XEmacs.
 
@@ -50,7 +50,7 @@ dnl configuration code and autoconf macros.
 dnl We use the m4 quoting characters [ ] (as established by the
 dnl autoconf system), so quote them like this: [[foo]]
 
-AC_PREREQ(2.12)dnl
+AC_PREREQ(2.13)dnl
 dnl Redefine some standard autoconf macros
 dnl here is how XEmacs is different:
 dnl - no cache file
@@ -307,6 +307,7 @@ mandir='${prefix}/man'
 dnl Initialize some other variables.
 subdirs=
 MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
 dnl Maximum number of lines to put in a shell here document.
 ac_max_here_lines=12
 ])dnl AC_INIT_PARSE_ARGS
@@ -368,9 +369,6 @@ with_scrollbars=''
 with_widgets=''
 with_dialogs=''
 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'
 cpp='' cppflags='' libs='' ldflags=''
 dynamic=''
 with_x11=''
@@ -389,6 +387,8 @@ with_tty=""
 use_union_type="no"
 with_dnet=""
 pdump="no"
+dnl dragndrop is still experimental.  When it is stable, comment out the following line:
+with_dragndrop="no"
 
 dnl ------------------
 dnl Options Processing
@@ -506,6 +506,7 @@ while test $# != 0; do
        with_sparcworks | \
        with_tooltalk   | \
        with_ldap       | \
+       with_postgresql | \
        with_pop        | \
        with_kerberos   | \
        with_hesiod     | \
@@ -514,7 +515,6 @@ while test $# != 0; do
        external_widget | \
        verbose         | \
        extra_verbose   | \
-       const_is_losing | \
        usage_tracking  | \
        use_union_type  | \
        pdump           | \
@@ -523,7 +523,7 @@ while test $# != 0; do
        memory_usage_stats | \
        with_clash_detection | \
        with_modules | \
-       no_doc_file )
+       quick_build )
          dnl Make sure the value given was either "yes" or "no".
          case "$val" in
            y | ye | yes )      val=yes ;;
@@ -673,9 +673,10 @@ The default is to autodetect all sound support."])
          case "$val" in
            lockf )     val=lockf ;;
            flock )     val=flock ;;
-           file )      val=file  ;;
+           file | dot ) val=file  ;;
+           locking )   val=locking  ;;
            * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
-  \`lockf', \`flock', or \`file'."]) ;;
+  \`lockf', \`flock', \`file', \`locking', or \`mmdf'."]) ;;
          esac
           eval "$opt=\"$val\""
         ;;
@@ -710,14 +711,17 @@ The default is to autodetect all sound support."])
              byte_code )     error_check_byte_code=yes ;;
              nobyte_code )   error_check_byte_code=no ;;
 
+             glyphs )     error_check_glyphs=yes ;;
+             noglyphs )   error_check_glyphs=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
-                 types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nobufpos', \`nogc', \`nomalloc', and \`nobyte-code'."
+                 types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nobufpos', \`nogc', \`nomalloc', \`noglyphs' and \`nobyte-code'."
                else
-                 types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', \`malloc', and \`byte-code'."
+                 types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', \`malloc', \`glyphs' and \`byte-code'."
                fi
                USAGE_ERROR(["Valid types for the \`--$optname' option are:
   $types."])
@@ -728,6 +732,7 @@ The default is to autodetect all sound support."])
                error_check_gc=$new_default
                error_check_malloc=$new_default
                error_check_byte_code=$new_default
+               error_check_glyphs=$new_default
                new_default=    # reset this
            fi
            echeck_notfirst=true
@@ -801,6 +806,7 @@ The default is to autodetect all sound support."])
        "use_minimal_tagbits" | \
        "use_indexed_lrecord_implementation" | \
        "run_in_place"  | \
+       "const_is_losing" | \
        "with_gnu_make" )
          AC_MSG_WARN([Obsolete option \`--$optname' ignored.])
        ;;
@@ -906,7 +912,7 @@ dnl is still relative.  We do not symlink lock because someone may
 dnl have stuck the source on a read-only partition.  Instead we
 dnl create it as an actual directory later on if it does not already
 dnl exist.
-for dir in lisp etc man info; do
+for dir in lisp etc man info tests; do
   if test ! -d "$dir" ; then
     echo Making symbolic link to "$srcdir/$dir"
     ${LN_S} "$srcdir/$dir" "$dir"
@@ -1001,6 +1007,8 @@ else
   PROGNAME=xemacs
 fi
 
+AC_DEFINE_UNQUOTED(EMACS_PROGNAME, "$PROGNAME")
+
 dnl ----------------------------------
 dnl Error checking and debugging flags
 dnl ----------------------------------
@@ -1013,12 +1021,14 @@ 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)
+test "${error_check_glyphs=$beta}" = yes && AC_DEFINE(ERROR_CHECK_GLYPHS)
 dnl debug=yes must be set when error checking is present.  This should be
 dnl fixed up.
 dnl debug implies other options
 if test "${debug:=$beta}" = "yes"; then
   use_assertions=yes memory_usage_stats=yes
   XE_ADD_OBJS(debug.o)
+  XE_ADD_OBJS(tests.o)
   AC_DEFINE(DEBUG_XEMACS)
 fi
 test "$use_assertions"     = "yes" && AC_DEFINE(USE_ASSERTIONS)
@@ -1070,6 +1080,7 @@ case "$canonical" in
   alpha*-*-*       ) machine=alpha ;;
   vax-*-*          ) machine=vax ;;
   mips-dec-*       ) machine=pmax ;;
+  mips-sgi-irix6*  ) machine=iris6d ;;
   mips-sgi-*       ) machine=iris4d ;;
   mips*-linux      ) machine=mips ;;
   romp-ibm-*       ) machine=ibmrt ;;
@@ -1081,7 +1092,7 @@ case "$canonical" in
   m68*-sony-*      ) machine=news ;;
   mips-sony-*      ) machine=news-risc ;;
   clipper-*        ) machine=clipper ;;
-  arm-*            ) machine=arm ;;
+  arm*             ) machine=arm ;;
   ns32k-*          ) machine=ns32000 ;;
 esac
 
@@ -1591,7 +1602,7 @@ if test "$with_workshop" = "yes"; then
   XE_ADD_OBJS(sunpro.o)
 fi
 
-if test "$with_clash_detection" = "yes"; then
+if test "$with_clash_detection" != "no"; then
   AC_DEFINE(CLASH_DETECTION)
   XE_ADD_OBJS(filelock.o)
 fi
@@ -1638,7 +1649,44 @@ test -n "$NON_GNU_CPP" -a "$GCC" != "yes" -a -z "$CPP" && CPP="$NON_GNU_CPP"
 
 AC_PROG_CPP
 
-AC_AIX
+dnl --------------------------------------------------------------------
+dnl Compiler feature macros
+dnl --------------------------------------------------------------------
+
+AC_AIX dnl Defines _ALL_SOURCE on AIX.
+
+dnl Determine which SMART_INCLUDE macro will work for this system
+cat > $srcdir/conffoo.h <<EOF
+#define CONFFOO 1
+EOF
+AC_MSG_CHECKING(for a working inclusion macro)
+AC_TRY_COMPILE(,[
+#define SMART_INCLUDE(path,file) <path/file>
+#define CONFFOO_H_PATH $srcdir
+#define CONFFOO_INCLUDE(file) SMART_INCLUDE (CONFFOO_H_PATH,file)
+#include CONFFOO_INCLUDE(conffoo.h)
+], [ AC_MSG_RESULT(direct); AC_DEFINE(SMART_INCLUDE_INDIRECTIONS,0) ],
+AC_TRY_COMPILE(,[
+#define GLUE_INCLUDE(path,file)  <##path##/##file##>
+#define SMART_INCLUDE(path,file) GLUE_INCLUDE(path,file)
+#define CONFFOO_H_PATH $srcdir
+#define CONFFOO_INCLUDE(file) SMART_INCLUDE(CONFFOO_H_PATH,file)
+#include CONFFOO_INCLUDE(conffoo.h)
+], [ AC_MSG_RESULT(simple); AC_DEFINE(SMART_INCLUDE_INDIRECTIONS,1) ],
+AC_TRY_COMPILE(,[
+#define GLUE_INCLUDE_2(path,file)  <##path##/##file##>
+#define GLUE_INCLUDE_1(path,file) GLUE_INCLUDE_2(path,file)
+#define SMART_INCLUDE(path,file) GLUE_INCLUDE_1(path,file)
+#define CONFFOO_H_PATH $srcdir
+#define CONFFOO_INCLUDE(file) SMART_INCLUDE (CONFFOO_H_PATH,file)
+#include CONFFOO_INCLUDE(conffoo.h)
+], [ AC_MSG_RESULT(double); AC_DEFINE(SMART_INCLUDE_INDIRECTIONS,2) ],
+  AC_MSG_ERROR([Cannot define a proper SMART_INCLUDE macro. Please report.]))))
+rm -f $srcdir/conffoo.h
+
+
+dnl We want feature macros defined here and in config.h.in, so that
+dnl the compilation environment at configure time and compile time agree.
 
 AC_MSG_CHECKING(for GNU libc)
 AC_TRY_COMPILE([#include <features.h>],[
@@ -1652,6 +1700,23 @@ dnl I'm tired of pop being broken with GLIBC -slb
 dnl Well. then why not fix fucking pop?
 test "$have_glibc" = "yes" && AC_DEFINE(_GNU_SOURCE)
 
+dnl We'd like to use vendor extensions, where available.
+dnl We'd like to use functions from the latest Unix98 standards.
+dnl See http://www.opengroup.org/onlinepubs/007908799/xsh/compilation.html
+case "$opsys" in
+  sol2)
+   AC_DEFINE(__EXTENSIONS__)
+   dnl Solaris 2 before 2.5 had some bugs with feature test macro interaction.
+   if test "$os_release" -ge 55; then
+     AC_DEFINE(_XOPEN_SOURCE,500)
+     AC_DEFINE(_XOPEN_SOURCE_EXTENDED)
+   fi ;;
+  linux)
+    AC_DEFINE(_POSIX_C_SOURCE,199506L)
+    AC_DEFINE(_XOPEN_SOURCE,500)
+    AC_DEFINE(_XOPEN_SOURCE_EXTENDED)
+    ;;
+esac
 
 dnl Identify compilers to enable compiler-specific hacks.
 dnl Add support for other compilers HERE!
@@ -1732,8 +1797,11 @@ CPP_to_sh(UNEXEC, unexec, unexec.o)
 
 CPP_to_sh(LD_SWITCH_SHARED, ld_switch_shared, -c)
 
+#define ORDINARY_LD "\$(CC) \$(CFLAGS)"
+configure___ ordinary_ld=ORDINARY_LD
+
 #ifdef ORDINARY_LINK
-#define LD "\$(CC) \$(CFLAGS)"
+#define LD ORDINARY_LD
 #else /* no ORDINARY LINK */
 #ifdef COFF_ENCAPSULATE
 #define LD "\$(CC) -nostdlib"
@@ -1769,8 +1837,10 @@ configure___ start_files=START_FILES
 CPP_boolean_to_sh(ORDINARY_LINK, ordinary_link)
 CPP_boolean_to_sh(SYSTEM_MALLOC, system_malloc)
 CPP_boolean_to_sh(TERMINFO, have_terminfo)
+dnl The MAIL_USE_xxx variables come from the s&m headers
 CPP_boolean_to_sh(MAIL_USE_FLOCK, mail_use_flock)
 CPP_boolean_to_sh(MAIL_USE_LOCKF, mail_use_lockf)
+CPP_boolean_to_sh(MAIL_USE_LOCKING, mail_use_locking)
 CPP_boolean_to_sh(HAVE_WIN32_PROCESSES, win32_processes)
 EOF
 
@@ -1785,6 +1855,15 @@ changequote([, ])dnl
 
 rm $tempcname
 
+if test "$pdump" = "yes"; then
+  ordinary_link="yes"
+  ld="${ordinary_ld}"
+  start_files=
+  libs_standard=
+  unexec=
+  lib_gcc=     
+fi
+
 dnl For debugging...
 test "$extra_verbose" = "yes" && \
   PRINT_VAR(libs_machine libs_system libs_termcap libs_standard
@@ -1793,6 +1872,13 @@ test "$extra_verbose" = "yes" && \
   ld lib_gcc ld_text_start_addr start_files ordinary_link
   have_terminfo mail_use_flock mail_use_lockf) && echo ""
 
+dnl Pick up mingw32 include path
+case "$opsys" in mingw*) mingw_include=`eval "gcc -print-file-name=libc.a"` ;
+       mingw_include=`eval "dirname $mingw_include"` ;
+       mingw_include="-I$mingw_include/../include/mingw32" ;
+       XE_APPEND($mingw_include, c_switch_system) ;;
+esac
+
 dnl Non-ordinary link usually requires -lc
 test "$ordinary_link" = "no" -a -z "$libs_standard" && libs_standard="-lc"
 
@@ -1806,7 +1892,7 @@ if test "$cflags_specified" = "no"; then
   dnl Following values of CFLAGS are known to work well.
   dnl Should we take debugging options into consideration?
   if   test "$GCC" = "yes"; then
-    CFLAGS="-g -O3 -Wall -Wno-switch"
+    CFLAGS="-g -O3 -Wall -Wno-switch -Wpointer-arith -Winline -Wmissing-prototypes -Wshadow"
     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"
@@ -1825,6 +1911,70 @@ if test "$cflags_specified" = "no"; then
   fi
 fi
 
+dnl Search for GCC specific build problems we know about
+if test "$GCC" = "yes"; then
+AC_MSG_CHECKING(for buggy gcc versions)
+GCC_VERSION=`$CC --version`
+case `uname -s`:`uname -m`:$GCC_VERSION in
+       dnl egcs 2.90.21 (egcs-1.00 release)
+       dnl egcs 2.90.29 (egcs-1.0.3 release)
+    *:sun4*:2.8.1|*:sun4*:egcs-2.90.*)
+        dnl Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures
+        dnl without also using `-fno-schedule-insns'.
+        case "$CFLAGS" in
+            *-O2*|*-O3*)
+                case "$CFLAGS" in
+                    *-fno-schedule-insns*) ;;
+                    *)
+                        AC_MSG_RESULT(Yes)
+                        AC_MSG_WARN(Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures)
+                        AC_MSG_WARN(without also using -fno-schedule-insns.)
+                        AC_MSG_ERROR(Aborting due to known problem)
+                        ;;
+                esac
+                ;;
+        esac
+        ;;
+       dnl egcs-2.91.57 (egcs-1.1 release)
+       dnl egcs-2.91.66 (egcs-1.1.2 release)
+    Linux:alpha:egcs-2.91.*)
+        AC_MSG_RESULT(Yes)
+        AC_MSG_WARN(There have been reports of egcs-1.1 not compiling XEmacs correctly on)
+        AC_MSG_WARN(Alpha Linux.  There have also been reports that egcs-1.0.3a is O.K.)
+        AC_MSG_ERROR(Aborting due to known problem)
+        ;;
+    *:i*86*:2.7.2*)
+       case "$GCC_VERSION" in
+           2.7.2)
+               case "$CFLAGS" in
+                   *-O2*|*-O3*)
+                       case "$CFLAGS" in
+                           *-fno-strength-reduce*) ;;
+                           *)
+                                AC_MSG_RESULT(Yes)
+                               AC_MSG_WARN(Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using)
+                               AC_MSG_WARN(-fno-strength-reduce.)
+                               AC_MSG_ERROR(Aborting due to known problem)
+                               ;;
+                       esac
+                       ;;
+               esac
+               ;;
+       esac
+        case "$CFLAGS" in
+        *-fno-caller-saves*) ;;
+        *)
+            AC_MSG_RESULT(Yes)
+           AC_MSG_WARN(Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using)
+           AC_MSG_WARN(-fno-caller-saves.)
+            AC_MSG_ERROR(Aborting due to known problem)
+           ;;
+        esac
+       ;;
+esac
+fi
+AC_MSG_RESULT(No)
+
 dnl Inform compiler that certain flags are meant for the linker
 dnl XE_PROTECT_LINKER_FLAGS(shell_var)
 define([XE_PROTECT_LINKER_FLAGS], [
@@ -1848,7 +1998,8 @@ XE_PROTECT_LINKER_FLAGS(ld_call_shared)
 dnl Add s&m-determined objects (including unexec) to link line
 test -n "$objects_machine" && XE_ADD_OBJS($objects_machine)
 test -n "$objects_system"  && XE_ADD_OBJS($objects_system)
-test -n "$unexec"          && XE_ADD_OBJS($unexec)
+test -n "$unexec"          && test ! "$pdump" = "yes" && XE_ADD_OBJS($unexec)
+test "$pdump" = "yes" && XE_ADD_OBJS(dumper.o)
 
 dnl Dynodump (Solaris 2.x, x<6)
 AC_MSG_CHECKING(for dynodump)
@@ -1968,7 +2119,7 @@ dnl fi
 
 dnl Extra system-specific library directories - please add to list
 for dir in "/usr/ccs/lib"; do
-  test -d "$dir" && XE_APPEND(-L${dir}, ld_switch_site)
+  test -d "$dir" && XE_APPEND(-L${dir}, ld_switch_system)
 done
 
 dnl --site-runtime-libraries (multiple dirs)
@@ -1978,11 +2129,31 @@ if test -n "$site_runtime_libraries"; then
   export LD_RUN_PATH
 fi
 
+dnl Linux systems have dynamic runtime library directories listed in
+dnl /etc/ld.so.conf.  Since those are used at run time, it seems pretty
+dnl safe to use them at link time, and less controversial than forcing
+dnl the run-time to use the link-time libraries.  This also helps avoid
+dnl mismatches between the link-time and run-time libraries.
+
+dnl #### Unfortunately, there are horrible libc4 and libc5 libraries
+dnl listed in /etc/ld.so.conf on some systems, and including them on
+dnl the link path leads to linking in utterly broken libc's.
+dnl There are many clever ways of approaching this problem,
+dnl but finding out that actually works...
+
+dnl if test -z "$LD_RUN_PATH" -a -r "/etc/ld.so.conf"; then
+dnl   for dir in `cat /etc/ld.so.conf`; do
+dnl     test -d "$dir" && XE_APPEND(-L${dir}, ld_switch_system)
+dnl   done
+dnl   add_runtime_path=no
+dnl fi
+
 dnl -------------------------------------
 dnl Compute runtime library path
 dnl -------------------------------------
 
-if   test "$dynamic" = "no"; then add_runtime_path=no
+if test -n "$add_runtime_path"; then :;
+elif test "$dynamic" = "no"; then add_runtime_path=no
 elif test -n "$LD_RUN_PATH"; then add_runtime_path=yes
 else case "$opsys" in
        sol2 | irix* | *bsd* | decosf* ) add_runtime_path=yes ;;
@@ -2110,26 +2281,26 @@ AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook =
 if test "$system_malloc" = "yes" ; then
   GNU_MALLOC=no
   GNU_MALLOC_reason="
-  (The GNU allocators don't work with this system configuration)."
+    - The GNU allocators don't work with this system configuration."
 elif test "$with_system_malloc" = "yes" ; then
   GNU_MALLOC=no
   GNU_MALLOC_reason="
-  (User chose not to use GNU allocators)."
+    - User chose not to use GNU allocators."
 elif test "$with_debug_malloc" = "yes" ; then
   GNU_MALLOC=no
   GNU_MALLOC_reason="
-  (User chose to use Debugging Malloc)."
+    - User chose to use Debugging Malloc."
 fi
 
 if test "$doug_lea_malloc" = "yes" ; then
   if test "$GNU_MALLOC" = yes ; then
     GNU_MALLOC_reason="
-  (Using Doug Lea's new malloc from the GNU C Library.)"
+    - Using Doug Lea's new malloc from the GNU C Library."
   fi
   AC_DEFINE(DOUG_LEA_MALLOC)
   if test "$after_morecore_hook_exists" = "no" ; then
     GNU_MALLOC_reason="
-  (Using Doug Lea's new malloc from the Linux C Library.)"
+    - Using Doug Lea's new malloc from the Linux C Library."
     AC_DEFINE(_NO_MALLOC_WARNING_)
   fi
   use_minimal_tagbits=yes
@@ -2161,9 +2332,25 @@ AC_PROG_INSTALL
 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)
-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_CHECK_HEADERS(dnl
+  a.out.h dnl
+  cygwin/version.h dnl
+  fcntl.h dnl
+  inttypes.h dnl
+  libgen.h dnl
+  locale.h dnl
+  mach/mach.h dnl
+  sys/param.h dnl
+  sys/pstat.h dnl
+  sys/stropts.h dnl
+  sys/time.h dnl
+  sys/timeb.h dnl
+  sys/un.h dnl
+  kstat.h dnl
+  ulimit.h dnl
+  unistd.h dnl
+  utime.h dnl
+)
 AC_HEADER_SYS_WAIT
 AC_HEADER_STDC
 AC_HEADER_TIME
@@ -2255,12 +2442,22 @@ AC_TRY_LINK([#include <math.h>],
 
 dnl Determine type of mail locking from configure args and s&m headers
 AC_CHECKING(type of mail spool file locking)
+AC_CHECK_FUNCS(lockf flock)
+dnl The mail_use_xxx variables are set according to the s&m headers.
 test -z "$mail_locking" -a "$mail_use_flock" = "yes" && mail_locking=flock
 test -z "$mail_locking" -a "$mail_use_lockf" = "yes" && mail_locking=lockf
-if   test "$mail_locking" = "lockf"; then AC_DEFINE(REAL_MAIL_USE_LOCKF)
-elif test "$mail_locking" = "flock"; then AC_DEFINE(REAL_MAIL_USE_FLOCK)
-else mail_locking="dot-locking"
+test -z "$mail_locking" -a "$mail_use_locking" = "yes" && mail_locking=locking
+if   test "$mail_locking" = "lockf"; then AC_DEFINE(MAIL_LOCK_LOCKF)
+elif test "$mail_locking" = "flock"; then AC_DEFINE(MAIL_LOCK_FLOCK)
+elif test "$mail_locking" = "locking"; then AC_DEFINE(MAIL_LOCK_LOCKING)
+else mail_locking="dot-locking"; AC_DEFINE(MAIL_LOCK_DOT)
 fi
+test "$mail_locking" = "lockf" -a "$ac_cv_func_lockf" != "yes" && \
+  XE_DIE("lockf mail locking requested but not available.")
+test "$mail_locking" = "flock" -a "$ac_cv_func_flock" != "yes" && \
+  XE_DIE("flock mail locking requested but not available.")
+test "$mail_locking" = "locking" -a "$ac_cv_func_locking" != "yes" && \
+  XE_DIE("locking mail locking requested but not available.")
 
 case "$opsys" in decosf*)
   AC_CHECK_LIB(pthreads, cma_open)
@@ -2278,13 +2475,15 @@ if   ${CC-cc} '-###' -xildon  no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/nu
 fi
 
 dnl Link with "-z ignore" on Solaris if supported
-if test "$opsys" = "sol2" && test "$OS_RELEASE" -ge 56; then
-  AC_MSG_CHECKING(for \"-z ignore\" linker flag)
-  case "`ld -h 2>&1`" in
-    *-z\ ignore\|record* ) AC_MSG_RESULT(yes)
-      XE_PREPEND(-z ignore, ld_switch_site) ;;
-    *) AC_MSG_RESULT(no) ;;
-  esac
+if test "$opsys" = "sol2"; then
+  if test "$os_release" -ge 56; then
+    AC_MSG_CHECKING(for \"-z ignore\" linker flag)
+    case "`ld -h 2>&1`" in
+      *-z\ ignore\|record* ) AC_MSG_RESULT(yes)
+        XE_PREPEND(-z ignore, ld_switch_site) ;;
+      *) AC_MSG_RESULT(no) ;;
+    esac
+  fi
 fi
 
 dnl ----------------------
@@ -2466,6 +2665,8 @@ EOF
   AC_MSG_RESULT(R${x11_release})
   AC_DEFINE_UNQUOTED(THIS_IS_X11R${x11_release})
 
+  AC_CHECK_FUNCS(XConvertCase)
+
   AC_CHECK_HEADERS(X11/Xlocale.h)
 
   dnl remove this - we should avoid checking for specific OS
@@ -2517,7 +2718,7 @@ if test "$with_msw" != "no"; then
   if test "$with_msw" = "yes"; then
     AC_DEFINE(HAVE_MS_WINDOWS)
     install_pp="$blddir/lib-src/installexe.sh"
-    XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomctl32, libs_system)
+    XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomctl32 -lwinspool, libs_system)
     test "$with_dragndrop" != no && XE_APPEND(msw, dragndrop_proto)
     if test "$window_system" != x11; then
        window_system=msw
@@ -2540,7 +2741,6 @@ if test "$with_msw" != "no"; then
     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
     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
@@ -2635,9 +2835,9 @@ if test "$with_tooltalk" != "no" ; then
   dnl autodetect the location of tt_c.h
   dnl tt_c.h might be in Tt or desktop include directories
   for dir in "" "Tt/" "desktop/" ; do
-    AC_CHECK_HEADER(${dir}tt_c.h, tt_c_h_path="${dir}tt_c.h"; break)
+    AC_CHECK_HEADER(${dir}tt_c.h, tt_c_h_file="${dir}tt_c.h"; break)
   done
-  if test -z "$tt_c_h_path"; then
+  if test -z "$tt_c_h_file"; then
     if test "$with_tooltalk" = "yes"; then
       USAGE_ERROR("Unable to find required tooltalk header files.")
     fi
@@ -2659,7 +2859,7 @@ fi
 test -z "$with_tooltalk" && with_tooltalk=yes
 if test "$with_tooltalk" = "yes"; then
   AC_DEFINE(TOOLTALK)
-  AC_DEFINE_UNQUOTED(TT_C_H_PATH, "$tt_c_h_path")
+  AC_DEFINE_UNQUOTED(TT_C_H_FILE, "$tt_c_h_file")
   XE_PREPEND($tt_libs, libs_x)
   XE_ADD_OBJS(tooltalk.o)
 fi
@@ -2750,6 +2950,70 @@ if test "$with_ldap" = "yes"; then
   AC_CHECK_FUNCS(ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result)
 fi
 
+dnl Autodetect PostgreSQL
+dnl The default installation location (non-Linux) is /usr/local/pgsql;
+dnl  a different prefix can be selected at build/install time.  If PostgreSQL
+dnl  is installed into a different prefix, that prefix must be specified in
+dnl  in the --site-prefixes flag.
+dnl The default RPM-based Linux installation location is /usr.
+AC_CHECKING(for PostgreSQL)
+postgres_h_path=""
+postgres_includes_found=no
+save_c_switch_site="$c_switch_site"
+
+dnl First, test standard location and site prefixes only:
+if test "$with_postgresql" != "no"; then
+       AC_CHECK_HEADER(libpq-fe.h,postgres_includes_found=yes)
+fi
+
+dnl Otherwise, test different known headers locations on linux:
+if test "$postgres_includes_found" = "no" -a "$with_postgresql" != "no" -a \
+       -d "/usr/local/pgsql/include"; then
+       c_switch_site="$c_switch_site -I/usr/local/pgsql/include"
+       AC_CHECK_HEADER(libpq-fe.h,postgres_includes_found=yes)
+       if test "$postgres_includes_found" != "yes"; then
+               postgres_h_path="/usr/local/pgsql/include"
+       fi
+       c_switch_site="$save_c_switch_site"
+fi
+if test "$postgres_includes_found" = "no" -a "$with_postgresql" != "no" -a \
+       -d "/usr/include/pgsql"; then
+       c_switch_site="$c_switch_site -I/usr/include/pgsql"
+       AC_CHECK_HEADER(libpq-fe.h,postgres_includes_found=yes)
+       if test "$postgres_includes_found" = "yes"; then
+               postgres_h_path="pgsql"
+       fi
+               c_switch_site="$save_c_switch_site"
+       fi
+if test "$postgres_includes_found" = "no" -a "$with_postgresql" != "no" -a \
+       -d "/usr/include/postgresql"; then
+       c_switch_site="$c_switch_site -I/usr/include/postgresql"
+       AC_CHECK_HEADER(libpq-fe.h,postgres_includes_found=yes)
+       if test "$postgres_includes_found" = "yes"; then
+               postgres_h_path="postgresql"
+fi
+       c_switch_site="$save_c_switch_site"
+fi
+
+dnl Finally, check if we can link with libpq:
+if test "$postgres_includes_found" = "yes"; then
+       AC_CHECK_LIB(pq,PQconnectdb,with_postgresql=yes,with_postgresql=no)
+fi
+if test "$with_postgresql" = "yes"; then
+       AC_CHECK_LIB(pq,PQconnectStart,with_postgresqlv7=yes,with_postgresqlv7=no)
+fi
+if test "$with_postgresql" = "yes"; then
+       if test -n "$postgres_h_path"; then
+               AC_DEFINE_UNQUOTED(POSTGRES_H_PATH, $postgres_h_path)
+       fi
+       AC_DEFINE(HAVE_POSTGRESQL)
+       if test "$with_postgresqlv7" = "yes"; then
+               AC_DEFINE(HAVE_POSTGRESQLV7)
+       fi
+       XE_PREPEND(-lpq, LIBS)
+       XE_ADD_OBJS(postgresql.o)
+fi
+
 dnl ----------------------
 dnl Graphics libraries
 dnl ----------------------
@@ -2762,7 +3026,8 @@ if test "$window_system" != "none"; then
   if test -z "$with_xpm"; then
     AC_MSG_CHECKING(for Xpm - no older than 3.4f)
     xe_check_libs=-lXpm
-    AC_TRY_RUN([#include <X11/xpm.h>
+    AC_TRY_RUN([#define XPM_NUMBERS
+#include <X11/xpm.h>
     int main(int c, char **v) {
     return c == 1 ? 0 :
       XpmIncludeVersion != XpmLibraryVersion() ? 1 :
@@ -2899,7 +3164,7 @@ if test "$with_x11" = "yes"; then
 
   dnl What in heck did the user actually want?
   case "$with_athena" in
-    dnl This is the default, old fashioned flat Athena. 
+    dnl This is the default, old fashioned flat Athena.
     "xaw" | "")        athena_variant=Xaw      athena_3d=no  ;;
     "3d")      athena_variant=Xaw3d    athena_3d=yes ;;
     "next")    athena_variant=neXtaw   athena_3d=yes ;;
@@ -2910,22 +3175,22 @@ if test "$with_x11" = "yes"; then
 
   dnl Search for the Athena library...
   if test "$athena_3d" = "no"; then
-    AC_CHECK_LIB($athena_variant, XawScrollbarSetThumb, 
+    AC_CHECK_LIB($athena_variant, XawScrollbarSetThumb,
       [
         dnl Must not be a 3d library...
-        AC_CHECK_LIB($athena_variant, threeDClassRec, 
+        AC_CHECK_LIB($athena_variant, threeDClassRec,
           AC_MSG_WARN("Could not find a non-3d Athena widget library."),
           athena_lib=$athena_variant)
-      ], 
+      ],
       AC_MSG_WARN("Could not find an Athena widget library."))
   else
     dnl The real configuration, need 3d library
     AC_CHECK_LIB($athena_variant, threeDClassRec, athena_lib=$athena_variant,
       dnl OK, couldn't find it with a proper name, try the standard Athena lib
       dnl If that is 3d, presume the user asked for what they have installed.
-      AC_CHECK_LIB(Xaw, threeDClassRec, 
+      AC_CHECK_LIB(Xaw, threeDClassRec,
         [
-          athena_lib=Xaw; 
+          athena_lib=Xaw;
           AC_MSG_WARN("Assuming that libXaw is actually $athena_variant.");
         ],
         AC_MSG_WARN("Could not find a 3d Athena widget library that looked like $athena_variant.")))
@@ -2945,6 +3210,13 @@ if test "$with_x11" = "yes"; then
       AC_CHECK_HEADER(X11/$athena_variant/ThreeD.h,
         athena_h_path=X11/$athena_variant,))
 
+    dnl Is the variant specific header directory directly under include?
+    if test -z "$athena_h_path"; then
+      AC_CHECK_HEADER($athena_variant/XawInit.h,
+        AC_CHECK_HEADER($athena_variant/ThreeD.h,
+          athena_h_path=$athena_variant,))
+    fi
+
     dnl If we couldn't find the specific variant, try the generic Athena 3d headers
     if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
       AC_CHECK_HEADER(X11/Xaw3d/XawInit.h,
@@ -2955,6 +3227,16 @@ if test "$with_x11" = "yes"; then
           ],))
     fi
 
+    dnl Also generic 3d headers directly under include dir
+    if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
+      AC_CHECK_HEADER(Xaw3d/XawInit.h,
+        AC_CHECK_HEADER(Xaw3d/ThreeD.h,
+          [
+            AC_MSG_WARN("Assuming that Xaw3d headers are suitable for $athena_variant.")
+            athena_h_path=Xaw3d
+          ],))
+    fi
+
     dnl If nothing yet found, see if Xaw is a 3d header set...
     dnl We AC_MSG_WARN if we fail because I am all out of ideas...
     if test -z "$athena_h_path"; then
@@ -3081,7 +3363,7 @@ test "$with_menubars"   != "no"    && AC_DEFINE(HAVE_MENUBARS)
 test "$with_scrollbars" != "no"    && AC_DEFINE(HAVE_SCROLLBARS)
 test "$with_dialogs"    != "no"    && AC_DEFINE(HAVE_DIALOGS)
 test "$with_toolbars"   != "no"    && AC_DEFINE(HAVE_TOOLBARS)
-test "$with_widgets"   != "no"    && AC_DEFINE(HAVE_WIDGETS)
+test "$with_widgets"    != "no"    && AC_DEFINE(HAVE_WIDGETS)
 
 test "$with_menubars"   = "lucid"  && AC_DEFINE(LWLIB_MENUBARS_LUCID)
 test "$with_scrollbars" = "lucid"  && AC_DEFINE(LWLIB_SCROLLBARS_LUCID)
@@ -3091,16 +3373,16 @@ test "$with_scrollbars" = "motif"  && AC_DEFINE(LWLIB_SCROLLBARS_MOTIF)
 test "$with_dialogs"    = "motif"  && AC_DEFINE(LWLIB_DIALOGS_MOTIF)
 test "$with_widgets"    = "motif"  && AC_DEFINE(LWLIB_WIDGETS_MOTIF)
 
-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_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)
 
 if test "$with_x11" = "yes"; then
-  test "$with_menubars"   != "no"      && XE_ADD_OBJS(menubar-x.o)
-  test "$with_scrollbars" != "no"      && XE_ADD_OBJS(scrollbar-x.o)
-  test "$with_dialogs"    != "no"      && XE_ADD_OBJS(dialog-x.o)
-  test "$with_toolbars"   != "no"      && XE_ADD_OBJS(toolbar-x.o)
+  test "$with_menubars"   != "no"  && XE_ADD_OBJS(menubar-x.o)
+  test "$with_scrollbars" != "no"  && XE_ADD_OBJS(scrollbar-x.o)
+  test "$with_dialogs"    != "no"  && XE_ADD_OBJS(dialog-x.o)
+  test "$with_toolbars"   != "no"  && XE_ADD_OBJS(toolbar-x.o)
   test "$all_widgets" != "no no no no no" && XE_ADD_OBJS(gui-x.o)
 fi
 
@@ -3243,25 +3525,10 @@ if test "$need_motif" = "yes" ; then
   XE_COMPUTE_RUNPATH()
 fi
 
-AC_CHECK_FUNCS(cbrt closedir dup2 eaccess fmod fpathconf frexp ftime gethostname getpagesize gettimeofday getcwd getpt getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strcasecmp strerror tzset ulimit usleep utimes waitpid vsnprintf)
+AC_CHECK_FUNCS(cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getpt getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strcasecmp strerror tzset ulimit usleep utimes waitpid vsnprintf fsync ftruncate umask)
 
-dnl realpath is buggy on linux, decosf and aix4
-
-dnl The realpath() in linux libc (4.6.27) sometimes fails with ELOOP.
-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 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 "$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
+dnl Use our own realpath always.
+XE_ADD_OBJS(realpath.o)
 
 dnl Check whether the system provides getloadavg (Solaris 7 has it)
 AC_CHECK_FUNCS(getloadavg)
@@ -3355,8 +3622,7 @@ AC_TRY_LINK([
   ],
   [
   struct timeval time;
-  struct timezone dummy;
-  gettimeofday (&time, &dummy);
+  gettimeofday (&time, 0);
 ],
   [AC_MSG_RESULT(two)],
   [AC_MSG_RESULT(one)
@@ -3365,10 +3631,7 @@ fi
 
 
 AC_C_INLINE
-if test "$ac_cv_c_inline" != "no"; then
-  AC_DEFINE(HAVE_INLINE)
-  test "$GCC" = "yes" && XE_ADD_OBJS(inline.o)
-fi
+test "$ac_cv_c_inline" != "no" -a "$GCC" = "yes" && XE_ADD_OBJS(inline.o)
 
 dnl HP-UX has a working alloca in libPW.
 dnl case "${GCC}${opsys}" in hpux* )
@@ -3433,8 +3696,21 @@ test "$have_mmap" = "yes" && AC_DEFINE(HAVE_MMAP)
 
 dnl rel_alloc requires either GNU malloc or system malloc with mmap
 dnl We only turn rel_alloc on by default if mmap is available.
-test "$GNU_MALLOC" != "yes"   -a "$have_mmap" != "yes" && rel_alloc=no
-test "$rel_alloc" = "default" -a "$have_mmap"  = "yes" && rel_alloc=yes
+test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && rel_alloc=no
+if test "$rel_alloc $have_mmap" = "default yes"; then
+  if test "$doug_lea_malloc" = "yes"; then
+    dnl Check if malloc() calls mmap(), making rel_alloc pointless.
+    AC_MSG_CHECKING(for M_MMAP_THRESHOLD)
+    AC_TRY_COMPILE([#include <malloc.h>],[
+#ifndef M_MMAP_THRESHOLD
+#error No M_MMAP_THRESHOLD :-(
+!@+$%^&*_)(_ - unlikely to compile...
+#endif
+], [rel_alloc=no; AC_MSG_RESULT(yes);], [rel_alloc=yes; AC_MSG_RESULT(no);])
+  else
+    rel_alloc=yes
+  fi
+fi
 test "$rel_alloc" = "yes" && AC_DEFINE(REL_ALLOC)
 
 dnl Check for terminal I/O variants
@@ -3545,7 +3821,7 @@ if test "$with_native_sound" != "no"; then
         sound_found=yes
        need_miscplay=yes
         XE_ADD_OBJS(linuxplay.o)
-        [AC_DEFINE_UNQUOTED(SOUNDCARD_H_PATH, "${dir}/soundcard.h")]
+        [AC_DEFINE_UNQUOTED(SOUNDCARD_H_FILE, "${dir}/soundcard.h")]
         break)
     done
   fi
@@ -3620,8 +3896,8 @@ if test "$with_tty" = "yes"  ; then
   fi
   if test "$with_ncurses" = "yes"; then
     AC_DEFINE(HAVE_NCURSES)
-    AC_CHECK_HEADER(ncurses/curses.h, curses_h_path=ncurses/curses.h)
-    AC_CHECK_HEADER(ncurses/term.h, term_h_path=ncurses/term.h)
+    AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h)
+    AC_CHECK_HEADER(ncurses/term.h, term_h_file=ncurses/term.h)
     XE_ADD_OBJS(terminfo.o)
     XE_PREPEND(-lncurses, LIBS)
 
@@ -3631,7 +3907,7 @@ if test "$with_tty" = "yes"  ; then
       dnl <ncurses/unctrl.h>)
       save_c_switch_site="$c_switch_site"
       c_switch_site="$c_switch_site -I/usr/include/ncurses"
-      AC_CHECK_HEADER(ncurses/curses.h, curses_h_path=ncurses/curses.h)
+      AC_CHECK_HEADER(ncurses/curses.h, curses_h_file=ncurses/curses.h)
       if test "$ac_cv_header_ncurses_curses_h" = "yes"
         then AC_MSG_WARN("Your system has the bogus ncurses include bug.")
         else c_switch_site="$save_c_switch_site"
@@ -3663,8 +3939,8 @@ if test "$with_tty" = "yes"  ; then
       fi
     fi
   fi
-  AC_DEFINE_UNQUOTED(CURSES_H_PATH, "${curses_h_path-curses.h}")
-  AC_DEFINE_UNQUOTED(TERM_H_PATH, "${term_h_path-term.h}")
+  AC_DEFINE_UNQUOTED(CURSES_H_FILE, "${curses_h_file-curses.h}")
+  AC_DEFINE_UNQUOTED(TERM_H_FILE, "${term_h_file-term.h}")
 
   dnl Autodetect gpm
   test -z "$with_gpm" && { AC_CHECK_HEADER(gpm.h, , with_gpm=no) }
@@ -3732,8 +4008,11 @@ test "$with_database_gdbm" = "yes" -o \
 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
-    AC_TRY_COMPILE([#ifdef HAVE_INTTYPES_H
+  for header in "db/db.h" "db.h"; do
+    AC_TRY_COMPILE([
+#include <stdlib.h>
+#if !(defined __GLIBC__ && __GLIBC_MINOR__ >= 1)
+#ifdef HAVE_INTTYPES_H
 #define __BIT_TYPES_DEFINED__
 #include <inttypes.h>
 typedef uint8_t  u_int8_t;
@@ -3743,18 +4022,19 @@ typedef uint32_t u_int32_t;
 typedef uint64_t u_int64_t;
 #endif
 #endif
-#include <$path>
-],[], db_h_path="$path"; break)
+#endif
+#include <$header>
+],[], db_h_file="$header"; break)
   done
-  if test -z "$db_h_path"
+  if test -z "$db_h_file"
   then AC_MSG_RESULT(no); with_database_berkdb=no
-  else AC_MSG_RESULT($db_h_path)
+  else AC_MSG_RESULT($db_h_file)
   fi
 
   if test "$with_database_berkdb" != "no"; then
     AC_MSG_CHECKING(for Berkeley DB version)
     AC_EGREP_CPP(yes,
-[#include <$db_h_path>
+[#include <$db_h_file>
 #if DB_VERSION_MAJOR > 1
 yes
 #endif
@@ -3764,7 +4044,7 @@ yes
   fi
 
   if test "$with_database_berkdb" = "yes"; then
-    AC_DEFINE_UNQUOTED(DB_H_PATH, "$db_h_path")
+    AC_DEFINE_UNQUOTED(DB_H_FILE, "$db_h_file")
     AC_DEFINE(HAVE_BERKELEY_DB)
     test "$need_libdb" = "yes" && XE_PREPEND(-ldb, LIBS)
   else with_database_berkdb=no
@@ -3914,15 +4194,32 @@ if test "$extra_verbose" = "yes"; then
   echo ""
 fi
 
-dnl Create some auxiliary files
-if test -f $srcdir/src/gdbinit -a ! -f src/gdbinit ; then
-  echo "creating src/gdbinit"; echo ""
-  echo "source $srcdir/src/gdbinit" > src/gdbinit
+dnl ----------------------------------------------
+dnl Create some auxiliary files for developers.
+dnl ----------------------------------------------
+
+dnl Create a .gdbinit useful for debugging XEmacs
+if test -f "$srcdir/src/.gdbinit" -a ! -f "src/.gdbinit"; then
+  test "$extra_verbose" = "yes" && echo "creating src/.gdbinit"
+  echo "source $srcdir/src/.gdbinit" > "src/.gdbinit"
+fi
+
+dnl Create a .dbxrc useful for debugging XEmacs
+if test -f "$srcdir/src/.dbxrc" -a ! -f "src/.dbxrc"; then
+  test "$extra_verbose" = "yes" && echo "creating src/.dbxrc"
+  echo ". $srcdir/src/.dbxrc" > "src/.dbxrc"
+fi
+
+dnl Create a useful TAGS file
+if test -f "$srcdir/TAGS" -a ! -f "TAGS"; then
+  test "$extra_verbose" = "yes" && echo "creating TAGS"
+  echo "\f
+$srcdir/TAGS,include" > "TAGS"
 fi
 
 dnl Create top level .sbinit for Sun compilers
 if test "$__SUNPRO_C" = "yes"; then
-  echo "creating .sbinit"; echo ""
+  test "$extra_verbose" = "yes" && echo "creating .sbinit"
   ( echo "# For use with Sun WorkShop's Source browser."
     echo "# See sbquery(1) and sbinit(4) for more information"
     for dir in $MAKE_SUBDIR; do echo "import $dir"; done
@@ -4176,8 +4473,7 @@ fi
 test "$with_i18n3"         = "yes" && AC_DEFINE(I18N3)
 test "$GCC"                = "yes" && AC_DEFINE(USE_GCC)
 test "$external_widget"    = "yes" && AC_DEFINE(EXTERNAL_WIDGET)
-test "$no_doc_file"        = "yes" && AC_DEFINE(NO_DOC_FILE)
-dnl test "$const_is_losing"    = "yes" && AC_DEFINE(CONST_IS_LOSING)
+test "$quick_build"        = "yes" && AC_DEFINE(QUICK_BUILD)
 test "$with_purify"        = "yes" && AC_DEFINE(PURIFY)
 test "$with_quantify"      = "yes" && AC_DEFINE(QUANTIFY)
 test "$with_pop"           = "yes" && AC_DEFINE(MAIL_USE_POP)
@@ -4216,55 +4512,113 @@ dnl Start stdout redirection to '| tee -a Installation'
 echo "
 
 XEmacs ${emacs_major_version}.${emacs_minor_version}${xemacs_betaname} \"$xemacs_codename\" configured for \`$canonical'.
-
-  Where should the build process find the source code?    $srcdir
-  What installation prefix should install use?           $prefix
-  What operating system and machine description files should XEmacs use?
-        \`$opsysfile' and \`$machfile'
-  What compiler should XEmacs be built with?              $CC $CFLAGS
-  Should XEmacs use the GNU version of malloc?            ${GNU_MALLOC}${GNU_MALLOC_reason}
-  Should XEmacs use the relocating allocator for buffers? $rel_alloc
-  What window system should XEmacs use?                   ${window_system}"
-if test "$with_x11" = "yes"; then
-  echo "  Where do we find X Windows header files?                $x_includes"
-  echo "  Where do we find X Windows libraries?                   $x_libraries"
-fi
+"
+echo "
+Compilation / Installation:"
+echo "  Source code location:              $srcdir"
+echo "  Installation prefix:               $prefix"
 if test -n "$site_includes"; then
-  echo "  Additional header files:                                $site_includes"
+  echo "  Additional header files:           $site_includes"
 fi
 if test -n "$site_libraries"; then
-  echo "  Additional libraries:                                   $site_libraries"
+  echo "  Additional libraries:              $site_libraries"
 fi
 if test -n "$site_prefixes"; then
-  echo "  Additional prefixes:                                    $site_prefixes"
+  echo "  Additional prefixes:               $site_prefixes"
 fi
 if test -n "$runpath"; then
-  echo "  Runtime library search path:                            $runpath"
+  echo "  Runtime library search path:       $runpath"
 fi
-test "$with_dnet"  = yes && echo "  Compiling in support for DNET."
-test "$with_socks" = yes && echo "  Compiling in support for SOCKS."
-test "$with_xauth" = yes && echo "  Compiling in support for XAUTH."
-if test "$with_xmu" != yes -a "$with_x11" = yes; then
-  echo "  No Xmu; substituting equivalent routines."
+echo "  Operating system description file: \`$opsysfile'"
+echo "  Machine description file:          \`$machfile'"
+echo "  Compiler:                          $CC $CFLAGS"
+echo "  Relocating allocator for buffers:  $rel_alloc"
+echo "  GNU version of malloc:             ${GNU_MALLOC}${GNU_MALLOC_reason}"
+
+echo "
+Window System:"
+if test "$with_msw" = "yes"; then
+  echo "  Compiling in support for the Microsoft window system."
+fi
+if test "$with_x11" = "yes"; then
+  echo "  Compiling in support for the X window system:"
+  echo "    - X Windows headers location:                 $x_includes"
+  echo "    - X Windows libraries location:               $x_libraries"
+  if test "$with_xauth" != yes; then
+    echo "    - Xau (X authority) not available."
+  fi
+  if test "$with_xmu" != yes; then
+    echo "    - Xmu library not available; substituting equivalent routines."
+  fi
+  if test "$with_wmcommand" != no; then
+    echo "    - Handling WM_COMMAND properly."
+  fi
+fi
+if test "$have_xaw" = "yes"; then
+  echo "  Compiling in support for the Athena widget set:"
+  echo "    - Athena headers location:                    $athena_h_path"
+  echo "    - Athena library to link:                     $athena_lib"
 fi
+case "$with_menubars" in
+  lucid ) echo "  Using Lucid menubars." ;;
+  motif ) echo "  Using Motif menubars."
+          echo "  *WARNING*  The Motif menubar implementation is currently buggy."
+          echo "             We recommend using the Lucid menubar instead."
+          echo "             Re-run configure with --with-menubars='lucid'." ;;
+    msw ) echo "  Using MS-Windows menubars." ;;
+esac
+case "$with_scrollbars" in
+  lucid  ) echo "  Using Lucid scrollbars."      ;;
+  motif  ) echo "  Using Motif scrollbars."      ;;
+  athena ) echo "  Using Athena scrollbars."     ;;
+     msw ) echo "  Using MS-Windows scrollbars." ;;
+esac
+case "$with_dialogs" in
+  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."     ;;
+     msw ) echo "  Using MS-Windows dialog boxes." ;;
+esac
+case "$with_widgets" in
+  motif  ) echo "  Using Motif native widgets."      ;;
+  athena ) echo "  Using Athena native widgets."     ;;
+     msw ) echo "  Using MS-Windows native widgets." ;;
+esac
+if test "$with_dragndrop" = yes; then
+  echo "  Compiling in support for Drag'n'Drop (EXPERIMENTAL)."
+  echo "    -  Drag'n'Drop prototype:                             $dragndrop_proto."
+fi
+
+echo "
+TTY:"
+test "$with_ncurses" = yes && echo "  Compiling in support for ncurses."
+test "$with_gpm" = yes && echo "  Compiling in support for GPM (General Purpose Mouse)."
 
+echo "
+Images:"
+test "$with_gif" = yes && echo "  Compiling in support for GIF  images (builtin)."
 if test "$with_xpm" = yes; then
-  echo "  Compiling in support for XPM images."
+  echo "  Compiling in support for XPM  images."
 elif test "$with_x11" = yes; then
-  echo "  --------------------------------------------------------------------"
-  echo "  WARNING: Compiling without XPM support."
+  echo "  WARNING: -----------------------------------------------------------"
+  echo "  WARNING: Compiling without XPM image support."
   if test "$xpm_problem" != ""; then
     echo "  Reason: $xpm_problem"
   fi
   echo "  WARNING: You should strongly consider installing XPM."
   echo "  WARNING: Otherwise toolbars and other graphics will look suboptimal."
   echo "  WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
-  echo "  --------------------------------------------------------------------"
+  echo "  WARNING: -----------------------------------------------------------"
 fi
 if test "$with_png" = yes; then
-  echo "  Compiling in support for PNG image handling."
+  echo "  Compiling in support for PNG  images."
 elif test "$window_system" != "none"; then
-  echo "  --------------------------------------------------------------------"
+  echo "  WARNING: -----------------------------------------------------------"
   echo "  WARNING: Compiling without PNG image support."
   if test "$png_problem" != ""; then
     echo "  Reason: $png_problem"
@@ -4272,94 +4626,72 @@ elif test "$window_system" != "none"; then
   echo "  WARNING: You should strongly consider installing the PNG libraries."
   echo "  WARNING: Otherwise certain images and glyphs may not display."
   echo "  WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
-  echo "  --------------------------------------------------------------------"
+  echo "  WARNING: -----------------------------------------------------------"
 fi
-test "$with_gif"   = yes && echo "  Compiling in support for (builtin) GIF image handling."
-test "$with_jpeg"  = yes && echo "  Compiling in support for JPEG image handling."
-test "$with_tiff"  = yes && echo "  Compiling in support for TIFF image handling."
+test "$with_jpeg" = yes && echo "  Compiling in support for JPEG images."
+test "$with_tiff" = yes && echo "  Compiling in support for TIFF images."
 test "$with_xface" = yes && echo "  Compiling in support for X-Face message headers."
 
-test "$with_native_sound" = yes && echo "  Compiling in native sound support."
-test "$with_nas_sound"    = yes && echo "  Compiling in network sound (NAS) support."
-test "$old_nas"           = yes && echo "     nas library lacks error trapping, will play synchronously."
-test "$with_esd_sound"    = yes && echo "  Compiling in support for Enlightened Sound Daemon (ESD)."
+echo "
+Sound:"
+test "$with_native_sound" = yes && echo "  Compiling in support for sound (native)."
+test "$with_nas_sound" = yes && echo "  Compiling in support for NAS (network audio system)."
+test "$old_nas" = yes && echo "    - NAS library lacks error trapping; will play synchronously."
+test "$with_esd_sound" = yes && echo "  Compiling in support for ESD (Enlightened Sound Daemon)."
 
-test "$with_database_berkdb" = yes && echo "  Compiling in support for Berkeley DB."
+echo "
+Databases:"
+test "$with_database_berkdb" = yes && echo "  Compiling in support for Berkeley database."
 test "$with_database_dbm"    = yes && echo "  Compiling in support for DBM."
 test "$with_database_gdbm"   = yes && echo "  Compiling in support for GNU DBM."
+test "$with_ldap" = yes && echo "  Compiling in support for LDAP."
+if test "$with_postgresql" = yes; then
+  echo "  Compiling in support for PostgreSQL."
+  if test "$with_postgresqlv7" = yes; then
+    echo "    - Using PostgreSQL V7 bindings."
+  fi
+  if test -n "$postgres_h_path"; then
+    echo "    - PostgreSQL headers location:  $postgres_h_path"
+  fi
+fi
 
-test "$with_ldap"           = yes && echo "  Compiling in support for LDAP."
-
-test "$with_ncurses"  = yes && echo "  Compiling in support for ncurses."
-test "$with_gpm"      = yes && echo "  Compiling in support for GPM (General Purpose Mouse)."
-
-test "$with_mule"     = yes && echo "  Compiling in Mule (multi-lingual) support."
-test "$with_file_coding"     = yes && echo "  Compiling in File coding support."
-test "$with_xim"      != no && echo "  Compiling in XIM (X11R5+ I18N input method) support."
-test "$with_xim" = motif    && echo "    Using Motif to provide XIM support."
-test "$with_xim" = xlib     && echo "    Using raw Xlib to provide XIM support."
-test "$with_xfs" = yes      && echo "    Using XFontSet to provide bilingual menubar."
-test "$with_canna"    = yes && echo "  Compiling in support for Canna on Mule."
+echo "
+Internationalization:"
+test "$with_mule" = yes && echo "  Compiling in support for Mule (multi-lingual Emacs)."
+test "$with_file_coding" = yes && echo "  Compiling in support for file coding."
+test "$with_xim" != no && echo "  Compiling in support for XIM (X11R5+ I18N input method)."
+test "$with_xim" = motif && echo "    - Using Motif to provide XIM support."
+test "$with_xim" = xlib && echo "    - Using raw Xlib to provide XIM support."
+test "$with_xfs" = yes && echo "    - Using XFontSet to provide bilingual menubar."
+test "$with_canna" = yes && echo "  Compiling in support for Canna on Mule."
 if test "$with_wnn" = yes; then
   echo "  Compiling in support for the WNN input method on Mule."
-  test "$with_wnn6" = yes && echo "    Using WNN version 6."
+  test "$with_wnn6" = yes && echo "    - Using WNN version 6."
 fi
-test "$with_i18n3"    = yes && echo "  Compiling in I18N support, level 3 (doesn't currently work)."
+test "$with_i18n3" = yes && echo "  Compiling in support for I18N level 3 (doesn't currently work)."
+
+echo "
+Mail:"
+test "$with_pop" = yes && echo "  Compiling in support for POP mail retrieval."
+test "$with_kerberos" = yes && echo "  Compiling in support for Kerberos POP authentication."
+test "$with_hesiod" = yes && echo "  Compiling in support for Hesiod POP server access."
+echo "  Compiling in support for \"$mail_locking\" mail spool file locking method."
 
-test "$with_cde"      = yes && echo "  Compiling in support for CDE."
+echo "
+Other Features:"
 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_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."
-          echo "  *WARNING*  The Motif menubar implementation is currently buggy."
-          echo "             We recommend using the Lucid menubar instead."
-          echo "             Re-run configure with --with-menubars='lucid'." ;;
-  msw ) echo "  Using MS-Windows menubars." ;;
-esac
-case "$with_scrollbars" in
-  lucid    ) echo "  Using Lucid scrollbars."     ;;
-  motif    ) echo "  Using Motif scrollbars."     ;;
-  athena   ) echo "  Using Athena scrollbars."    ;;
-  athena3d ) echo "  Using Athena-3d scrollbars." ;;
-  msw ) echo "  Using MS-Windows scrollbars." ;;
-esac
-case "$with_widgets" in
-  motif    ) echo "  Using Motif native widgets."     ;;
-  athena   ) echo "  Using Athena native widgets."    ;;
-  athena3d ) echo "  Using Athena-3d native widgets." ;;
-  msw ) echo "  Using MS-Windows native widgets." ;;
-esac
-case "$with_dialogs" in
-  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." ;;
-  msw ) echo "  Using MS-Windows dialog boxes." ;;
-esac
-test "$with_modules" = "yes" && echo "  Compiling in dynamic shared object module support."
-test "$with_clash_detection" = yes && \
+test "$with_socks" = yes && echo "  Compiling in support for SOCKS."
+test "$with_dnet" = yes && echo "  Compiling in support for DNET."
+test "$with_modules" = "yes" && echo "  Compiling in support for dynamic shared object modules."
+test "$with_clash_detection" != "no" && \
   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 "$use_union_type"  = yes && echo "  Using the union type for Lisp_Objects."
-test "$pdump"           = yes && echo "  Using the new portable dumper (wishful thinking)."
-test "$debug"           = yes && echo "  Compiling in extra code for debugging."
-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 "$use_union_type" = yes && echo "  Using the union type for Lisp_Objects."
+test "$pdump" = yes && echo "  Using the new portable dumper."
+test "$debug" = yes && echo "  Compiling in support for extra debugging code."
+test "$usage_tracking" = yes && echo "  Compiling in support for active usage tracking (Sun internal)."
+if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc $error_check_glyphs" \
+  != "no no no no no no"; then
   echo "  WARNING: ---------------------------------------------------------"
   echo "  WARNING: Compiling in support for runtime error checking."
   echo "  WARNING: XEmacs will run noticeably more slowly as a result."