X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=configure.in;h=2d1847b215f5303ed1f9a77f95207ee1e6e4fb03;hb=852cbb1fd8f91a29dc204564495fd035e9210680;hp=e348ef6ed3f4c79b501bf2e3e74e0d90c5163e73;hpb=d81014e89b5102527e5b50aac62edeed2955671d;p=chise%2Fxemacs-chise.git.1 diff --git a/configure.in b/configure.in index e348ef6..2d1847b 100644 --- a/configure.in +++ b/configure.in @@ -348,6 +348,7 @@ with_site_lisp='no' with_site_modules='yes' with_menubars='' with_scrollbars='' +dnl can't turn off widgets here because of systems where they are demanded with_widgets='' with_dialogs='' with_file_coding='' @@ -359,6 +360,7 @@ with_msw='' 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='' @@ -492,6 +494,9 @@ while test $# != 0; do with_xfs | \ with_i18n3 | \ with_mule | \ + with_utf_2000 | \ + with_chise | \ + with_text_coding| \ with_file_coding| \ with_canna | \ with_wnn | \ @@ -516,9 +521,10 @@ while test $# != 0; do pdump | \ debug | \ use_assertions | \ + use_regex_malloc | \ 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 @@ -1449,9 +1455,14 @@ case "$canonical" in esac case "$canonical" in - *-solaris* ) + *-solaris* ) opsys=sol2 - os_release=`uname -r | sed -e 's/^\([[0-9]]\)\.\([[0-9]]\).*/\1\2/'` + os_release_major=`uname -r | sed -e 's/^\([[0-9]]\{1,\}\)\.\([[0-9]]\{1,\}\).*/\1/'` + os_release_minor=`uname -r | sed -e 's/^\([[0-9]]\{1,\}\)\.\([[0-9]]\{1,\}\).*/\2/'` + case "$os_release_minor" in [[0-9]]) + os_release_minor="0${os_release_minor}";; + esac + os_release="${os_release_major}${os_release_minor}" AC_DEFINE_UNQUOTED(OS_RELEASE, $os_release) ;; dnl The last Sun386 ran 4.0. @@ -1701,7 +1712,7 @@ 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 + if test "$os_release" -ge 505; then AC_DEFINE(_XOPEN_SOURCE,500) AC_DEFINE(_XOPEN_SOURCE_EXTENDED) fi ;; @@ -1722,14 +1733,19 @@ return 11; return 12; #elif defined __USLC__ && defined __SCO_VERSION__ return 13; +#elif defined __INTEL_COMPILER +return 14; #else return 0; #endif }], [], [case "$conftest_rc" in - 11) echo "You appear to be using the SunPro C compiler."; __SUNPRO_C=yes ;; - 12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;; - 13) echo "You appear to be using the SCO C compiler." ; __USLC__=yes ;; + 11) echo "You appear to be using the SunPro C compiler." ; __SUNPRO_C=yes ;; + 12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;; + 13) echo "You appear to be using the SCO C compiler." ; __USLC__=yes ;; + 14) echo "You appear to be using the Intel C++ compiler."; __ICC=yes + dnl Newer versions of icc claim to be GCC + GCC=no ;; esac]) @@ -1923,6 +1939,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" + 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. @@ -1944,6 +1964,8 @@ if test "$cflags_specified" = "no"; then CFLAGS="-O3" elif test "$CC" = "xlc"; then CFLAGS="-g -O3 -qstrict -qnoansialias -qlibansi -qinfo -qro -qmaxmem=20000" + elif test "$__ICC" = "yes"; then + CFLAGS="-g -O3 -Ob2 -Wall -W1" dnl ### Add optimal CFLAGS support for other compilers HERE! else CFLAGS="-O" ;dnl The only POSIX-approved flag @@ -2295,6 +2317,7 @@ if test "$add_runtime_path" = "yes" -a -n "$dash_r"; then case "$arg" in -L*) XE_ADD_RUNPATH_DIR(`echo '' "$arg" | sed -e 's:^ ::' -e 's/^-L//'`);; esac done dnl Sometimes /opt/SUNWdt/lib is the only installed Motif available + dnl #### this test always fails here as need_motif is null if test "$opsys $need_motif" = "sol2 yes"; then xe_runpath_dir="/opt/SUNWdt/lib"; eval "$xe_add_unique_runpath_dir"; @@ -2557,7 +2580,7 @@ fi dnl Link with "-z ignore" on Solaris if supported if test "$opsys" = "sol2"; then - if test "$os_release" -ge 56; then + if test "$os_release" -ge 506; then AC_MSG_CHECKING(for \"-z ignore\" linker flag) case "`ld -h 2>&1`" in *-z\ ignore\|record* ) AC_MSG_RESULT(yes) @@ -2962,7 +2985,7 @@ if test "$with_msw" != "no"; then XE_APPEND(netinstall, INSTALL_ARCH_DEP_SUBDIR) fi - install_pp="$blddir/lib-src/installexe.sh" + install_pp="$srcdir/lib-src/installexe.sh" 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 @@ -3564,25 +3587,47 @@ fi dnl "$with_x11" = "yes" dnl Finish ensuring that we have values for the various toolkit items. dnl Not all toolkits support all widgets -dnl if Motif is available we use it for the dialog boxes. + +dnl Avoid using Motif :-( +case "$opsys" in + *linux* ) lucid_prefers_motif = "no" ;; + * ) lucid_prefers_motif = "yes" ;; +esac case "$with_menubars" in "" | "yes" | "athena" ) with_menubars="lucid" ;; esac case "$with_dialogs" in "" | "yes" | "lucid" ) - if test "$have_motif" = "yes"; then with_dialogs="motif" - elif test "$have_xaw" = "yes"; then with_dialogs="athena" - else with_dialogs=no + if test "$lucid_prefers_motif" = "yes"; then + if test "$have_motif" = "yes"; then with_dialogs="motif" + elif test "$have_xaw" = "yes"; then with_dialogs="athena" + else with_dialogs=no + fi + else + if test "$have_xaw" = "yes"; then with_dialogs="athena" + elif test "$have_motif" = "yes"; then with_dialogs="motif" + else with_dialogs=no + fi fi ;; 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 "$lucid_prefers_motif" = "yes"; then + if test "$have_motif" = "yes"; then with_widgets="motif" + elif test "$have_xaw" = "yes"; then with_widgets="athena" + else with_widgets=no + fi + else + if test "$have_xaw" = "yes"; then with_widgets="athena" + elif test "$have_motif" = "yes"; then with_widgets="motif" + else with_widgets=no + fi + fi ;; + "" ) + with_widgets=no ;; esac all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars $with_widgets" @@ -3712,16 +3757,59 @@ if test "$with_file_coding" = "yes" && test "$with_mule" = "no"; then 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) - 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(HAVE_CHISE) + AC_DEFINE(HAVE_LIBCHISE) + 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) + 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... @@ -3730,7 +3818,10 @@ if test "$with_mule" = "yes" ; then AC_CHECKING(for XIM) AC_CHECK_LIB(X11, XOpenIM, with_xim=xlib, with_xim=no) dnl XIM + Lesstif is not (yet?) usable - if test "$have_motif $have_lesstif" = "yes no"; then + dnl Only use Motif if linking Motif anyway, or don't have xlib XIM + if test "$need_motif $have_lesstif" = "yes no"; then + AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif) + elif test "$have_motif $have_lesstif $with_xim" = "yes no no"; then AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif) fi ;; esac @@ -4141,17 +4232,25 @@ if test "$with_native_sound" != "no"; then dnl Autodetect Sun native sound from SUNWaudmo package if test -z "$sound_found" -a -d "/usr/demo/SOUND"; then - sound_found=yes - XE_ADD_OBJS(sunplay.o) - if test -d "/usr/demo/SOUND/include" - then sound_cflags="-I/usr/demo/SOUND/include" - else sound_cflags="-I/usr/demo/SOUND" + if test -d "/usr/demo/SOUND/include/multimedia"; then + sun_sound_cflags="-I/usr/demo/SOUND/include" + elif test -d "/usr/demo/SOUND/multimedia"; then + sun_sound_cflags="-I/usr/demo/SOUND" fi - if test -z "$native_sound_lib" ; then - if test -r "/usr/demo/SOUND/lib/libaudio.a" - then native_sound_lib="/usr/demo/SOUND/lib/libaudio.a" - else native_sound_lib="/usr/demo/SOUND/libaudio.a" - fi + + if test -n "$native_sound_lib"; then + sun_sound_lib="$native_sound_lib" + elif test -r "/usr/demo/SOUND/lib/libaudio.a"; then + sun_sound_lib="/usr/demo/SOUND/lib/libaudio.a" + elif test -r "/usr/demo/SOUND/libaudio.a"; then + sun_sound_lib="/usr/demo/SOUND/libaudio.a" + fi + + if test -n "$sun_sound_cflags" -a -n "$sun_sound_lib"; then + native_sound_lib="$sun_sound_lib" + sound_cflags="$sun_sound_cflags" + sound_found=yes + XE_ADD_OBJS(sunplay.o) fi fi @@ -4462,6 +4561,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) + if test "$with_utf_2000" = "yes" -a "$with_chise" != "yes" ; then + AC_DEFINE(HAVE_CHISE) + fi fi dnl Socks support @@ -4484,28 +4586,33 @@ if test "$with_modules" != "no"; then 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 ],dnl - [dlopen ("", 0);], [ have_dl=yes ], [ - AC_MSG_CHECKING([for dlopen in -ldl]) - ac_save_LIBS="$LIBS" - LIBS="-ldl $LIBS" - AC_TRY_LINK([#include ],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 ],dnl + [dlopen ("", 0);], [ have_dl=yes ], [ + AC_MSG_CHECKING([for dlopen in -ldl]) + ac_save_LIBS="$LIBS" + LIBS="-ldl $LIBS" + AC_TRY_LINK([#include ],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 @@ -4894,6 +5001,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 "$use_regex_malloc" = "yes" && AC_DEFINE(REGEX_MALLOC) test "$pdump" = "yes" && AC_DEFINE(PDUMP) test "$with_ipv6_cname" = "yes" && AC_DEFINE(IPV6_CANONICALIZE) @@ -4955,6 +5063,73 @@ else echo " Not using any machine description file" fi echo " Compiler: $CC $CFLAGS" +dnl Let's save some helpful-for-debugging info like compiler and libc versions.. +dnl First, see if it's gcc - the same check works everyplace... +case "$CC" in + gcc*) echo " Compiler version: `$CC --version | head -1`" + echo " Compiler specs file: `$CC -v 2>&1 | sed 's/.* \([[^ ]]\)/\1/' | head -1`" + ;; +dnl non-gcc machine-specific magic - contributions welcome + *) case "$canonical" in + *-*-aix* ) + dnl Yes, it's this ugly for AIX... + realcc=`which $CC` + dnl Might be a symlink created by replaceCset command + if test -L $realcc ; then + ccdir=`dirname $realcc` + ccprog=`/bin/ls -l $realcc | sed 's/.* \([[^ ]]\)/\1/'` + dnl This doesn't handle ../../xlc type stuff, but I've not seen one... + case $ccprog in + */*) realcc=$ccprog;; + *) realcc=$ccdir/$ccprog;; + esac + fi + lpp=`lslpp -wqc $realcc | cut -f2 -d:` + if test ! -z "$lpp" ; then + lppstr=`lslpp -Lqc $lpp` + lpplev=`echo "$lppstr" | cut -f3 -d:` + lppdesc=`echo "$lppstr" | cut -f8 -d:` + fi + if test ! -z "$lpplev" ; then + echo " Compiler version: $lpp $lpplev - $lppdesc" + else + echo " Compiler version: (unknown version)" + fi + ;; + + *-*-solaris*) + ccvers=`$CC -V 2>&1 | head -1` + if test ! -z "$ccvers" ; then + echo " Compiler version: $ccvers" + fi + ;; + + alpha*-dec-osf*) + ccvers=`$CC -V | tr '\n' ' '` + if test ! -z "$ccvers" ; then + echo " Compiler version: $ccvers" + fi + ;; + + mips-sgi-irix*) + ccvers=`$CC -version` + if test ! -z "$ccvers" ; then + echo " Compiler version: $ccvers" + fi + ;; + + dnl Intel C++ Compiler on Linux + i[[3-9]]86-pc-linux) + ccvers=`$CC -V 2>&1 | sed -n 's@^Intel.*Version @@'p` + if test ! -z "$ccvers" ; then + echo " Compiler version: $ccvers" + fi + ;; + + *) echo " Compiler version: $CC on $canonical";; + esac +esac + echo " Relocating allocator for buffers: $rel_alloc" echo " GNU version of malloc: ${GNU_MALLOC}${GNU_MALLOC_reason}" case "$ld_switch_site" in @@ -4962,6 +5137,45 @@ case "$ld_switch_site" in - Consider configuring with --pdump." ;; esac +dnl Now get the libc version - contributions welcome +case "$canonical" in + *-*-linux*) + if test -f /etc/redhat-release ; then + echo " libc: `rpm -q glibc`"; +dnl need a Debian and Suse check here... + else + echo "Need to guess glibc1/2/etc here"; + fi + ;; + + *-*-aix*) + echo " libc: bos.rte.libc `lslpp -Lqc bos.rte.libc | cut -f3 -d:`" + ;; + + *-*-solaris*) + libc=`pkginfo -l SUNWcsl | grep VERSION: | awk '{print $2}'` + echo " libc: SUNWcsl $libc" + + ;; + + mips-sgi-irix*) + echo " IRIX version: `uname -sRm`'" + ;; + + + alpha*-dec-osf*) + dnl Another ugly case + (cd /usr/.smdb.; + libc=` grep -h libc.so *.inv | awk '$9 == "f" {print $12}' | tr '\n' ','` + echo " libc: $libc" + + ) + ;; + + *) echo " libc: system-provided libc on $canonical" ;; +esac + + echo " Window System:" if test "$with_msw" = "yes"; then @@ -4981,6 +5195,16 @@ if test "$with_x11" = "yes"; then echo " - Handling WM_COMMAND properly." fi fi +if test "$need_motif" = "yes" ; then + echo " Compiling in support for Motif." + if test "$have_lesstif" = "yes"; then + echo " - Using LessTif implementation." + fi + 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" @@ -5083,8 +5307,11 @@ if test "$with_postgresql" = yes; then fi echo " -Internationalization:" +Multiscriptization / Multilingualization / Internationalization:" 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." @@ -5119,6 +5346,13 @@ if test "$use_union_type" = yes; then 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)."