21.4.14 "Reasonable Discussion".
[chise/xemacs-chise.git.1] / configure.in
index e348ef6..4135e38 100644 (file)
@@ -359,6 +359,7 @@ with_msw=''
 rel_alloc='default'
 with_system_malloc='default'
 with_dlmalloc='default'
 rel_alloc='default'
 with_system_malloc='default'
 with_dlmalloc='default'
+use_regex_malloc='yes'
 dnl ESD is associated with crashes and lockups due to incorrect signal use.
 with_esd_sound='no'
 native_sound_lib=''
 dnl ESD is associated with crashes and lockups due to incorrect signal use.
 with_esd_sound='no'
 native_sound_lib=''
@@ -516,9 +517,10 @@ while test $# != 0; do
        pdump           | \
        debug           | \
        use_assertions  | \
        pdump           | \
        debug           | \
        use_assertions  | \
+       use_regex_malloc | \
        memory_usage_stats | \
        with_clash_detection | \
        memory_usage_stats | \
        with_clash_detection | \
-       with_modules | \
+       with_modules    | \
        quick_build )
          dnl Make sure the value given was either "yes" or "no".
          case "$val" in
        quick_build )
          dnl Make sure the value given was either "yes" or "no".
          case "$val" in
@@ -1923,6 +1925,10 @@ if test "$cflags_specified" = "no"; then
     CFLAGS="-g -O3 -Wall -Wno-switch -Winline -Wmissing-prototypes"
     dnl Yuck, bad compares have been worth at least 3 crashes!
     CFLAGS="$CFLAGS -Wsign-compare"
     CFLAGS="-g -O3 -Wall -Wno-switch -Winline -Wmissing-prototypes"
     dnl Yuck, bad compares have been worth at least 3 crashes!
     CFLAGS="$CFLAGS -Wsign-compare"
+    dnl XEmacs is known not to be strict-aliasing-safe.
+    case "`gcc -v --help 2>&1`" in
+      *-fstrict-aliasing* ) CFLAGS="$CFLAGS -fno-strict-aliasing" ;;
+    esac
     dnl You get five zillion shadowing warnings with g++.
     dnl Even with gcc, -Wshadow is questionable because of its complaints
     dnl about parameters with the same names as global functions.
     dnl You get five zillion shadowing warnings with g++.
     dnl Even with gcc, -Wshadow is questionable because of its complaints
     dnl about parameters with the same names as global functions.
@@ -3578,11 +3584,14 @@ esac
 case "$with_scrollbars" in "" | "yes" )
   with_scrollbars="lucid" ;;
 esac
 case "$with_scrollbars" in "" | "yes" )
   with_scrollbars="lucid" ;;
 esac
-case "$with_widgets" in "" | "yes" | "lucid")
-  if   test "$have_motif" = "yes"; then with_widgets="motif"
-  elif test "$have_xaw"   = "yes"; then with_widgets="athena"
-  else with_widgets=no
-  fi ;;
+case "$with_widgets" in
+  "yes" | "lucid")
+    if   test "$have_motif" = "yes"; then with_widgets="motif"
+    elif test "$have_xaw"   = "yes"; then with_widgets="athena"
+    else with_widgets=no
+    fi ;;
+  "" )
+    with_widgets=no ;;
 esac
 
 all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars $with_widgets"
 esac
 
 all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars $with_widgets"
@@ -4484,28 +4493,33 @@ if test "$with_modules" != "no"; then
   if test "$with_msw" = "yes"; then
     have_dl=yes;
   else
   if test "$with_msw" = "yes"; then
     have_dl=yes;
   else
-    dnl Find headers and libraries
-    AC_CHECK_HEADER(dlfcn.h, [
-      AC_MSG_CHECKING([for dlopen in -lc])
-      AC_TRY_LINK([#include <dlfcn.h>],dnl
-       [dlopen ("", 0);], [ have_dl=yes ], [
-      AC_MSG_CHECKING([for dlopen in -ldl])
-      ac_save_LIBS="$LIBS"
-      LIBS="-ldl $LIBS"
-      AC_TRY_LINK([#include <dlfcn.h>],dnl
-       [dlopen ("", 0);], [ have_dl=yes ],
-       [LIBS="$ac_save_LIBS"])
-      ac_save_LIBS=])])
-    if test -n "$have_dl"; then
-      AC_DEFINE(HAVE_DLOPEN)
-    else
-      AC_CHECK_LIB(dld, shl_load, [
-        libdl=dld have_dl=yes;
-        AC_DEFINE(HAVE_SHL_LOAD)], [
-        AC_CHECK_LIB(dld, dld_init, [
-        libdl=dld have_dl=yes;
-        AC_DEFINE(HAVE_DLD_INIT)])])
-    fi
+    dnl Check for Darwin
+    case "$opsys" in
+      darwin) have_dl=yes; AC_DEFINE(HAVE_DYLD) ;;
+      *) dnl Find headers and libraries
+         AC_CHECK_HEADER(dlfcn.h, [
+           AC_MSG_CHECKING([for dlopen in -lc])
+           AC_TRY_LINK([#include <dlfcn.h>],dnl
+             [dlopen ("", 0);], [ have_dl=yes ], [
+               AC_MSG_CHECKING([for dlopen in -ldl])
+               ac_save_LIBS="$LIBS"
+               LIBS="-ldl $LIBS"
+               AC_TRY_LINK([#include <dlfcn.h>],dnl
+                [dlopen ("", 0);], [ have_dl=yes ],
+                [LIBS="$ac_save_LIBS"])
+               ac_save_LIBS=])])
+        if test -n "$have_dl"; then
+           AC_DEFINE(HAVE_DLOPEN)
+        else
+           AC_CHECK_LIB(dld, shl_load, [
+           libdl=dld have_dl=yes;
+           AC_DEFINE(HAVE_SHL_LOAD)], [
+           AC_CHECK_LIB(dld, dld_init, [
+           libdl=dld have_dl=yes;
+           AC_DEFINE(HAVE_DLD_INIT)])])
+        fi
+    ;;
+    esac
   fi dnl end !MS-Windows
 
   if test -n "$have_dl"; then
   fi dnl end !MS-Windows
 
   if test -n "$have_dl"; then
@@ -4894,6 +4908,7 @@ test "$with_pop"           = "yes" && AC_DEFINE(MAIL_USE_POP)
 test "$with_kerberos"      = "yes" && AC_DEFINE(KERBEROS)
 test "$with_hesiod"        = "yes" && AC_DEFINE(HESIOD)
 test "$use_union_type"     = "yes" && AC_DEFINE(USE_UNION_TYPE)
 test "$with_kerberos"      = "yes" && AC_DEFINE(KERBEROS)
 test "$with_hesiod"        = "yes" && AC_DEFINE(HESIOD)
 test "$use_union_type"     = "yes" && AC_DEFINE(USE_UNION_TYPE)
+test "$use_regex_malloc"   = "yes" && AC_DEFINE(REGEX_MALLOC)
 test "$pdump"              = "yes" && AC_DEFINE(PDUMP)
 test "$with_ipv6_cname"    = "yes" && AC_DEFINE(IPV6_CANONICALIZE)
 
 test "$pdump"              = "yes" && AC_DEFINE(PDUMP)
 test "$with_ipv6_cname"    = "yes" && AC_DEFINE(IPV6_CANONICALIZE)
 
@@ -4981,6 +4996,13 @@ if test "$with_x11" = "yes"; then
     echo "    - Handling WM_COMMAND properly."
   fi
 fi
     echo "    - Handling WM_COMMAND properly."
   fi
 fi
+if test "$need_motif" = "yes" ; then
+  echo "  Compiling in support for Motif."
+  echo "  *WARNING*  Many versions of Motif are buggy, requiring workarounds."
+  echo "             You are likely to experience slow redisplay."
+  echo "             You may need to install vendor patches to Motif."
+  echo "             See PROBLEMS for more information."
+fi
 if test "$need_athena" = "yes"; then
   echo "  Compiling in support for the Athena widget set:"
   echo "    - Athena headers location:                    $athena_h_path"
 if test "$need_athena" = "yes"; then
   echo "  Compiling in support for the Athena widget set:"
   echo "    - Athena headers location:                    $athena_h_path"
@@ -5119,6 +5141,13 @@ if test "$use_union_type" = yes; then
   echo "  Do NOT use this build of XEmacs for ordinary work.  See PROBLEMS."
   echo "  WARNING: ---------------------------------------------------------"
 fi
   echo "  Do NOT use this build of XEmacs for ordinary work.  See PROBLEMS."
   echo "  WARNING: ---------------------------------------------------------"
 fi
+if test "$use_regex_malloc" = no; then
+  echo "  WARNING: -----------------------------------------------------------"
+  echo "  Using alloca to allocate the failure stack."
+  echo "  It may be impossible to detect stack exhaustion, and you will crash."
+  echo "  Do NOT use this build of XEmacs for ordinary work."
+  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)."