(GT-48918): New character.
[chise/xemacs-chise.git.1] / configure.in
index 9a86a7f..9d3f532 100644 (file)
@@ -57,7 +57,7 @@ dnl Redefine some standard autoconf macros
 dnl here is how XEmacs is different:
 dnl - no cache file
 dnl - non-standard options
 dnl here is how XEmacs is different:
 dnl - no cache file
 dnl - non-standard options
-dnl - suport for extra-verbosity
+dnl - support for extra-verbosity
 dnl - ordinary libs are handled separately from X libs (might be a mistake)
 dnl - various random kludges (e.g. -with-dnet=no)
 
 dnl - ordinary libs are handled separately from X libs (might be a mistake)
 dnl - various random kludges (e.g. -with-dnet=no)
 
@@ -126,7 +126,7 @@ EOF
 
 dnl redefine AC_CHECK_LIB in accordance with our own value of ac_link
 dnl Add in extra kludgy check to support with_dnet=no
 
 dnl redefine AC_CHECK_LIB in accordance with our own value of ac_link
 dnl Add in extra kludgy check to support with_dnet=no
-dnl Add in extra LDFLAGS arg, which PRECEDE libs
+dnl Add in extra LDFLAGS arg, which PRECEDES libs
 dnl Support --with-dnet=no
 
 dnl AC_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
 dnl Support --with-dnet=no
 
 dnl AC_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
@@ -375,11 +375,12 @@ with_toolbars=""
 with_tty=""
 use_union_type="no"
 with_dnet=""
 with_tty=""
 use_union_type="no"
 with_dnet=""
-pdump="no"
+dnl pdump now defaults by opsys
+pdump=''
 dnl dragndrop is still experimental.  When it is stable, comment out the following line:
 with_dragndrop="no"
 dnl dragndrop is still experimental.  When it is stable, comment out the following line:
 with_dragndrop="no"
-dnl I think this is mandated by IPv6 standards.
-with_ipv6_cname="yes"
+dnl Too annoying, even if mandated by IPv6 (and I'm not even sure of that)
+with_ipv6_cname="no"
 
 dnl ------------------
 dnl Options Processing
 
 dnl ------------------
 dnl Options Processing
@@ -491,6 +492,9 @@ while test $# != 0; do
        with_xfs        | \
        with_i18n3      | \
        with_mule       | \
        with_xfs        | \
        with_i18n3      | \
        with_mule       | \
+       with_utf_2000   | \
+       with_chise      | \
+       with_text_coding| \
        with_file_coding| \
        with_canna      | \
        with_wnn        | \
        with_file_coding| \
        with_canna      | \
        with_wnn        | \
@@ -743,7 +747,7 @@ The default is to autodetect native and NAS sound support."])
        dnl Has the user specified one of the path options?
        prefix | exec_prefix | bindir | datadir | statedir | libdir | \
        mandir | infodir | infopath | lispdir | etcdir | pkgdir | \
        dnl Has the user specified one of the path options?
        prefix | exec_prefix | bindir | datadir | statedir | libdir | \
        mandir | infodir | infopath | lispdir | etcdir | pkgdir | \
-       archlibdir | docdir | package_path )
+       archlibdir | docdir | package_path | moduledir )
           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
@@ -794,6 +798,8 @@ The default is to autodetect native and NAS sound support."])
            a | at | ath | athe | athen | athena )      val=athena ;;
            n | no | non | none )                       val=no     ;;
            y | ye | yes )                              val=yes    ;;
            a | at | ath | athe | athen | athena )      val=athena ;;
            n | no | non | none )                       val=no     ;;
            y | ye | yes )                              val=yes    ;;
+           dnl Explicit --with-widgets on command line means yes.
+            "")                                                val=yes    ;;
            g | gt | gtk )                              val=gtk    ;;
            ms | msw )                                  val=msw    ;;
            * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
            g | gt | gtk )                              val=gtk    ;;
            ms | msw )                                  val=msw    ;;
            * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
@@ -1212,6 +1218,12 @@ case "$canonical" in
   dnl Cubix QBx/386
   i[[3-9]]86-cubix-sysv* ) machine=intel386 opsys=usg5-3 ;;
 
   dnl Cubix QBx/386
   i[[3-9]]86-cubix-sysv* ) machine=intel386 opsys=usg5-3 ;;
 
+  dnl Darwin, a.k.a. MacOS X (based on Mach and Freebsd)
+  *-*-darwin*)
+    opsys=darwin
+    RANLIB="ranlib -c" dnl Avoids a link error with lwlib-config.c
+    ;;
+
   dnl Data General AViiON Machines
   i586-dg-dgux*R4*   | i586-dg-dgux5.4.4* ) machine=aviion opsys=dgux5-4r4 ;;
   m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* ) opsys=dgux5-4r3 ;;
   dnl Data General AViiON Machines
   i586-dg-dgux*R4*   | i586-dg-dgux5.4.4* ) machine=aviion opsys=dgux5-4r4 ;;
   m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* ) opsys=dgux5-4r3 ;;
@@ -1564,6 +1576,17 @@ else
   echo "Using configure-time autodetection only."
 fi
 
   echo "Using configure-time autodetection only."
 fi
 
+dnl --------------------------------------------------------------
+dnl $opsys detection complete; defaults depending on $opsys follow
+dnl --------------------------------------------------------------
+
+if test -z "$pdump"; then
+  case "$opsys" in
+    linux* )      pdump=yes ;;    dnl glibc 2.3.1 seems to hose unexec
+    *-*-darwin* ) pdump=yes ;;    dnl No "native" working dumper available
+    *)            pdump=no ;;
+  esac
+fi
 
 if test -z "$dynamic"; then
   case "$opsys" in
 
 if test -z "$dynamic"; then
   case "$opsys" in
@@ -1993,6 +2016,21 @@ esac
 AC_MSG_RESULT(no)
 fi
 
 AC_MSG_RESULT(no)
 fi
 
+dnl GNU ld now defaults to combreloc, which screws up unexec, but not pdump.
+dnl Note that it's OK if the GNU style long option causes non-GNU ld to barf
+dnl a usage message, that's often good enough.  Please report it, though.
+dnl #### Should make this Solaris-friendly.
+dnl Link with -z nocombreloc for now.
+if test "$pdump" != "yes"; then
+  AC_MSG_CHECKING(for \"-z nocombreloc\" linker flag)
+  case "`ld --help 2>&1`" in
+    *-z\ nocombreloc* ) AC_MSG_RESULT(yes)
+      XE_PREPEND(-z nocombreloc, ld_switch_site) ;;
+    *) AC_MSG_RESULT(no) ;;
+  esac
+fi
+
+
 dnl Inform compiler that certain flags are meant for the linker
 dnl XE_PROTECT_LINKER_FLAGS(shell_var)
 define([XE_PROTECT_LINKER_FLAGS], [
 dnl Inform compiler that certain flags are meant for the linker
 dnl XE_PROTECT_LINKER_FLAGS(shell_var)
 define([XE_PROTECT_LINKER_FLAGS], [
@@ -2010,6 +2048,7 @@ if test "$GCC" = "yes"; then
 fi])dnl
 XE_PROTECT_LINKER_FLAGS(ld_switch_system)
 XE_PROTECT_LINKER_FLAGS(ld_switch_machine)
 fi])dnl
 XE_PROTECT_LINKER_FLAGS(ld_switch_system)
 XE_PROTECT_LINKER_FLAGS(ld_switch_machine)
+XE_PROTECT_LINKER_FLAGS(ld_switch_site)
 XE_PROTECT_LINKER_FLAGS(LDFLAGS)
 XE_PROTECT_LINKER_FLAGS(ld_call_shared)
 
 XE_PROTECT_LINKER_FLAGS(LDFLAGS)
 XE_PROTECT_LINKER_FLAGS(ld_call_shared)
 
@@ -2157,7 +2196,7 @@ 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 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 but finding one 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 if test -z "$LD_RUN_PATH" -a -r "/etc/ld.so.conf"; then
 dnl   for dir in `cat /etc/ld.so.conf`; do
@@ -2394,10 +2433,12 @@ AC_CHECK_TYPE(ssize_t, int)
 
 dnl check for Unix98 socklen_t
 AC_MSG_CHECKING(for socklen_t)
 
 dnl check for Unix98 socklen_t
 AC_MSG_CHECKING(for socklen_t)
-AC_TRY_COMPILE([#include <sys/socket.h>
+AC_TRY_COMPILE([#include <sys/types.h>
+#include <sys/socket.h>
 socklen_t x;
 ],[],[AC_MSG_RESULT(yes)],[
 socklen_t x;
 ],[],[AC_MSG_RESULT(yes)],[
-AC_TRY_COMPILE([#include <sys/socket.h>
+AC_TRY_COMPILE([#include <sys/types.h>
+#include <sys/socket.h>
 int accept (int, struct sockaddr *, size_t *);
 ],[],[
 AC_MSG_RESULT(size_t)
 int accept (int, struct sockaddr *, size_t *);
 ],[],[
 AC_MSG_RESULT(size_t)
@@ -2495,6 +2536,10 @@ case "$opsys" in decosf*)
     c_switch_site="$c_switch_site -threads" ;;
 esac
 
     c_switch_site="$c_switch_site -threads" ;;
 esac
 
+dnl ----------------------------------------------------------------
+dnl Miscellaneous flags
+dnl ----------------------------------------------------------------
+
 AC_MSG_CHECKING(whether the -xildoff compiler flag is required)
 if   ${CC-cc} '-###' -xildon  no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then
   if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ;
 AC_MSG_CHECKING(whether the -xildoff compiler flag is required)
 if   ${CC-cc} '-###' -xildon  no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then
   if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ;
@@ -2587,6 +2632,9 @@ if test "${GTK_CONFIG}" != "no"; then
 
       AC_MSG_CHECKING(gtk cflags)
       GTK_CFLAGS=`${GTK_CONFIG} --cflags`
 
       AC_MSG_CHECKING(gtk cflags)
       GTK_CFLAGS=`${GTK_CONFIG} --cflags`
+      if test "$GCC" = "yes"; then
+       GTK_CFLAGS="${GTK_CFLAGS} -Wno-shadow"
+      fi
       XE_APPEND(${GTK_CFLAGS}, c_switch_gtk)
       AC_MSG_RESULT(${GTK_CFLAGS})
 
       XE_APPEND(${GTK_CFLAGS}, c_switch_gtk)
       AC_MSG_RESULT(${GTK_CFLAGS})
 
@@ -2891,7 +2939,7 @@ if test "$with_msw" != "no"; then
     fi
 
     install_pp="$blddir/lib-src/installexe.sh"
     fi
 
     install_pp="$blddir/lib-src/installexe.sh"
-    XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lwinspool, libs_system)
+    XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lkernel32 -lwinspool, libs_system)
     test "$with_dragndrop" != no && XE_APPEND(msw, dragndrop_proto)
     if test "$window_system" != x11; then
        window_system=msw
     test "$with_dragndrop" != no && XE_APPEND(msw, dragndrop_proto)
     if test "$window_system" != x11; then
        window_system=msw
@@ -3367,7 +3415,15 @@ if test "$with_x11" = "yes"; then
   AC_CHECKING(for X11 graphics libraries)
 fi
 
   AC_CHECKING(for X11 graphics libraries)
 fi
 
-if test "$with_x11" = "yes" -a "$with_widgets" = "athena"; then
+dnl We don't automatically trigger widgets if athena is present
+dnl because of stability concerns.
+dnl But if the user wants widgets, still offer him autodetections
+case "$with_widgets" in
+  "yes" | "athena")            detect_athena=yes ;;
+   *)                          detect_athena=no ;;
+esac
+
+if test "$with_x11" = "yes" -a "$detect_athena" = "yes" ; then
   AC_CHECKING(for the Athena widgets)
 
   dnl What in heck did the user actually want?
   AC_CHECKING(for the Athena widgets)
 
   dnl What in heck did the user actually want?
@@ -3466,7 +3522,7 @@ if test "$with_x11" = "yes" -a "$with_widgets" = "athena"; then
 
 else
   have_xaw=no
 
 else
   have_xaw=no
-fi dnl "$with_x11" = "yes" -a "$with_widgets" = "athena"
+fi dnl "$with_x11" = "yes" -a "detect_athena" = "yes"
 
 if test "$with_x11" = "yes"; then
   dnl autodetect Motif - but only add to libs_x later (if necessary)
 
 if test "$with_x11" = "yes"; then
   dnl autodetect Motif - but only add to libs_x later (if necessary)
@@ -3638,16 +3694,58 @@ if test "$with_file_coding" = "yes" && test "$with_mule" = "no"; then
   XE_ADD_OBJS(file-coding.o)
 fi
 
   XE_ADD_OBJS(file-coding.o)
 fi
 
+test -z "$with_chise" && with_chise=yes
+if test "$with_chise" = "yes"; then
+    with_mule=yes
+    with_utf_2000=yes
+    with_text_coding=yes
+fi
+
 if test "$with_mule" = "yes" ; then
   AC_CHECKING(for Mule-related features)
   AC_DEFINE(MULE)
 if test "$with_mule" = "yes" ; then
   AC_CHECKING(for Mule-related features)
   AC_DEFINE(MULE)
-  AC_DEFINE(FILE_CODING)
-  XE_ADD_OBJS(mule.o mule-ccl.o mule-charset.o file-coding.o)
 
 
+  dnl Autodetect chise
+  chise_includes_found=no
+  if test "$with_chise" != "no"; then
+    AC_CHECK_HEADER(chise.h, ,with_chise=no)
+  fi
+  if test "$chise_includes_found" = "no" -a "$with_chise" != "no" -a \
+      -d "/usr/local/chise/include"; then
+    save_c_switch_site="$c_switch_site"
+    c_switch_site="$c_switch_site -I/usr/local/chise/include"
+    AC_CHECK_HEADER(chise.h,chise_includes_found=yes)
+    if test "$chise_includes_found" != "yes"; then
+      c_switch_site="$save_c_switch_site"
+      with_chise="no"
+    fi
+  fi
+
+  test -z "$with_chise" && with_chise=yes
+  if test "$with_chise" = "yes"; then
+    AC_DEFINE(CHISE)
+    XE_PREPEND(-lchise, libs_x)
+  fi
+
+  AC_DEFINE(FILE_CODING)
+  XE_ADD_OBJS(mule.o mule-ccl.o mule-charset.o)
+  if test "$with_utf_2000" = "yes" && test "$with_text_coding" = "yes"; then
+    AC_DEFINE(TEXT_CODING)
+    XE_ADD_OBJS(text-coding.o)
+  else
+    XE_ADD_OBJS(file-coding.o)
+  fi
   dnl Use -lintl to get internationalized strerror for Mule
   AC_CHECK_HEADERS(libintl.h)
   AC_CHECK_LIB(intl, strerror)
 
   dnl Use -lintl to get internationalized strerror for Mule
   AC_CHECK_HEADERS(libintl.h)
   AC_CHECK_LIB(intl, strerror)
 
+  if test "$with_utf_2000" = "yes" ; then
+    AC_DEFINE(CHAR_IS_UCS4)
+    AC_DEFINE(UTF2000)
+    with_wnn=no
+    with_wnn6=no
+  fi
+
   AC_CHECKING(for Mule input methods)
   dnl Do we have the XmIm* routines?  And if so, do we want to use them?
   dnl XIM seems to be flaky except on Solaris...
   AC_CHECKING(for Mule input methods)
   dnl Do we have the XmIm* routines?  And if so, do we want to use them?
   dnl XIM seems to be flaky except on Solaris...
@@ -3760,8 +3858,22 @@ if test "$need_motif" = "yes" ; then
   XE_COMPUTE_RUNPATH()
 fi
 
   XE_COMPUTE_RUNPATH()
 fi
 
+dnl ----------------------------------------------------------------
+dnl Check for POSIX functions.
+dnl ----------------------------------------------------------------
+
 AC_CHECK_FUNCS(cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strerror tzset ulimit usleep waitpid vsnprintf fsync ftruncate umask)
 
 AC_CHECK_FUNCS(cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strerror tzset ulimit usleep waitpid vsnprintf fsync ftruncate umask)
 
+dnl getaddrinfo() is borked under hpux11
+if test "$ac_cv_func_getaddrinfo" != "no" ; then
+  case "$opsys" in
+    hpux11* )
+      AC_MSG_WARN([Use of getaddrinfo is disabled for HP-UX 11.XX.])
+      ac_cv_func_getaddrinfo=no
+      ;;
+  esac
+fi
+
 dnl ----------------------------------------------------------------
 dnl Check for PTY support functions.
 dnl ----------------------------------------------------------------
 dnl ----------------------------------------------------------------
 dnl Check for PTY support functions.
 dnl ----------------------------------------------------------------
@@ -4212,7 +4324,14 @@ if test "$with_tty" = "yes"  ; then
        done
       fi
     else dnl "$have_terminfo" = "no" && "with_ncurses" = "no"
        done
       fi
     else dnl "$have_terminfo" = "no" && "with_ncurses" = "no"
-      XE_ADD_OBJS(tparam.o)
+      if test -n "$libs_termcap" -a "$opsys" = "openbsd"; then
+        dnl We need to check if tgoto does not exist in termcap yet
+        dnl because on OpenBSD libtermcap is another name for libcurses
+        dnl which provides the same tgoto as ncurses
+        AC_CHECK_LIB(termcap, tgoto, , XE_ADD_OBJS(tparam.o))
+      else
+        XE_ADD_OBJS(tparam.o)
+      fi
       dnl The HP-UX curses library seems to have a badly broken version of select(2)
       dnl that makes "poll: interrupted system call" messages to appear and
       dnl Emacs subprocesses to hang (e.g. TeX compilation w/ AUCTeX) */
       dnl The HP-UX curses library seems to have a badly broken version of select(2)
       dnl that makes "poll: interrupted system call" messages to appear and
       dnl Emacs subprocesses to hang (e.g. TeX compilation w/ AUCTeX) */
@@ -4351,6 +4470,9 @@ if test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \
      != "no no no"; then
   AC_DEFINE(HAVE_DATABASE)
   XE_ADD_OBJS(database.o)
      != "no no no"; then
   AC_DEFINE(HAVE_DATABASE)
   XE_ADD_OBJS(database.o)
+  if test "$with_utf_2000" = "yes"; then
+    AC_DEFINE(HAVE_CHISE_CLIENT)
+  fi
 fi
 
 dnl Socks support
 fi
 
 dnl Socks support
@@ -4425,19 +4547,25 @@ dnl executables to fail to run.  Also any tests using AC_TRY_RUN will
 dnl have reported incorrect results.
 AC_TRY_RUN([int main(int c,char *v[]){return 0;}],[:],[
   echo ""
 dnl have reported incorrect results.
 AC_TRY_RUN([int main(int c,char *v[]){return 0;}],[:],[
   echo ""
-  echo "*** PANIC *** The C compiler can no longer build working executables."
-  echo "*** PANIC *** Please examine the tail of config.log for runtime errors."
-  echo "*** PANIC *** The most likely reason for this problem is that configure"
-  echo "*** PANIC *** links with shared libraries, but those libraries cannot be"
-  echo "*** PANIC *** found at run time."
-  echo "*** PANIC ***"
-  echo "*** PANIC *** On a Linux system, edit /etc/ld.so.conf and re-run ldconfig."
-  echo "*** PANIC *** On other systems, try telling configure where to find the"
-  echo "*** PANIC *** shared libraries using the --site-runtime-libraries option"
-  echo "*** PANIC ***"
-  echo "*** PANIC *** Another way to shoot yourself in the foot is to specify"
-  echo "*** PANIC *** --with-FEATURE when FEATURE is not actually installed"
-  echo "*** PANIC *** on your system.  Don't do that."
+  echo "*** PANIC *** configure forgot how to build working executables!"
+  echo ""
+  echo "*** This is most commonly due to an unforeseen environment, causing"
+  echo "*** configure to incorrectly compute the sequence of libraries to link."
+  echo "*** Please examine the tail of config.log for runtime errors."
+  echo "*** Pay special attention to the -l flags, and perhaps -I and -L."
+  echo "*** Often adding or removing explicit options in the configure"
+  echo "*** invocation can work around this kind of problem.  If so, please"
+  echo "*** report it as a bug to xemacs-beta@xemacs.org."
+  echo "***"
+  echo "*** Other possible causes are inability to write to the file system"
+  echo "*** (bogus permissions or disk full) or a misconfiguration of the dynamic"
+  echo "*** linker.  On Linux, check /etc/ld.conf and rerun ldconfig if"
+  echo "*** necessary.  On other systems, try telling configure where to find"
+  echo "*** the shared libraries using the --site-runtime-libraries option."
+  echo "***"
+  echo "*** Another way to shoot yourself in the foot is to specify"
+  echo "*** --with-FEATURE when FEATURE is not actually installed on your"
+  echo "*** system.  Don't do that."
   exit 1])
 
 dnl Process support
   exit 1])
 
 dnl Process support
@@ -4840,6 +4968,10 @@ fi
 echo "  Compiler:                          $CC $CFLAGS"
 echo "  Relocating allocator for buffers:  $rel_alloc"
 echo "  GNU version of malloc:             ${GNU_MALLOC}${GNU_MALLOC_reason}"
 echo "  Compiler:                          $CC $CFLAGS"
 echo "  Relocating allocator for buffers:  $rel_alloc"
 echo "  GNU version of malloc:             ${GNU_MALLOC}${GNU_MALLOC_reason}"
+case "$ld_switch_site" in
+  *nocombreloc*) echo "  Linking with \`-z nocombreloc'.
+    - Consider configuring with --pdump." ;;
+esac
 
 echo "
 Window System:"
 
 echo "
 Window System:"
@@ -4962,8 +5094,11 @@ if test "$with_postgresql" = yes; then
 fi
 
 echo "
 fi
 
 echo "
-Internationalization:"
+Multiscriptization / Multilingualization / Internationalization:"
 test "$with_mule" = yes && echo "  Compiling in support for Mule (multi-lingual Emacs)."
 test "$with_mule" = yes && echo "  Compiling in support for Mule (multi-lingual Emacs)."
+test "$with_chise" = yes && echo "  Using CHISE (CHaracter Information Service Environment) support."
+test "$with_utf_2000" = yes && echo "  Using UTF-2000 (UTF-8) buffer/string representation."
+test "$with_text_coding" = yes && echo "  Compiling in support for text coding."
 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_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."
@@ -4985,13 +5120,19 @@ test -n "$mail_locking" && echo "  Compiling in support for \"$mail_locking\" ma
 
 echo "
 Other Features:"
 
 echo "
 Other Features:"
-test "with_ipv6_cname" = no && echo "  Inhibiting IPv6 canonicalization at startup."
+test "$with_ipv6_cname" = no && echo "  Inhibiting IPv6 canonicalization at startup."
 test "$with_tooltalk" = yes && echo "  Compiling in support for ToolTalk."
 test "$with_workshop" = yes && echo "  Compiling in support for Sun WorkShop."
 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_tooltalk" = yes && echo "  Compiling in support for ToolTalk."
 test "$with_workshop" = yes && echo "  Compiling in support for Sun WorkShop."
 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 "$use_union_type" = yes && echo "  Using the union type for Lisp_Objects."
+if test "$use_union_type" = yes; then
+  echo "  WARNING: ---------------------------------------------------------"
+  echo "  Using the union type for Lisp_Objects."
+  echo "  Union type has been implicated in hard-to-debug runtime crashes."
+  echo "  Do NOT use this build of XEmacs for ordinary work.  See PROBLEMS."
+  echo "  WARNING: ---------------------------------------------------------"
+fi
 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)."
 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)."