X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=configure.in;h=0e645ae8b005e540d4762f2f50d2ee16cd7f8a51;hp=9708606a25c92a4580f3158f03914590615d44b8;hb=0298dde5c47a900f2542bc7ec6c9dafc92ce3015;hpb=dbf2768f7b146e97e37a27316f70bb313f1acf15 diff --git a/configure.in b/configure.in index 9708606..0e645ae 100644 --- a/configure.in +++ b/configure.in @@ -6,7 +6,7 @@ define([AC_INIT_NOTICE], #### Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. #### Copyright (C) 1993-1995 Board of Trustees, University of Illinois. #### Copyright (C) 1996, 1997 Sun Microsystems, Inc. -#### Copyright (C) 1995, 1996 Ben Wing. +#### Copyright (C) 1995, 1996, 2005 Ben Wing. #### Copyright (C) 2000, 2001 Martin Buchholz. #### Copyright (C) 1998, 1999 J. Kean Johnston. @@ -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='' @@ -375,7 +377,8 @@ with_toolbars="" 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 Too annoying, even if mandated by IPv6 (and I'm not even sure of that) @@ -515,9 +518,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 @@ -1119,12 +1123,12 @@ case "$canonical" in *-*-ultrix* ) opsys=ultrix4-3 ;; dnl AIX - *-*-aix3.1* ) opsys=aix3-1 ;; - *-*-aix3.2.5 ) opsys=aix3-2-5 ;; - *-*-aix3* ) opsys=aix3-2 ;; - *-*-aix4.0* ) opsys=aix4 ;; - *-*-aix4.1* ) opsys=aix4-1 ;; - *-*-aix4* ) opsys=aix4-2 ;; + *-*-aix3.1* ) opsys=aix3-1 ;; + *-*-aix3.2.5 ) opsys=aix3-2-5 ;; + *-*-aix3* ) opsys=aix3-2 ;; + *-*-aix4.0* ) opsys=aix4 ;; + *-*-aix4.1* ) opsys=aix4-1 ;; + *-*-aix[[4-9]]* ) opsys=aix4-2 ;; dnl Other generic OSes *-gnu* ) opsys=gnu ;; @@ -1218,7 +1222,6 @@ case "$canonical" in *-*-darwin*) opsys=darwin RANLIB="ranlib -c" dnl Avoids a link error with lwlib-config.c - pdump=yes dnl No "native" working dumper available ;; dnl Data General AViiON Machines @@ -1449,9 +1452,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. @@ -1573,6 +1581,18 @@ else 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 + cygwin* ) pdump=yes ;; dnl unexec is broken + *) pdump=no ;; + esac +fi if test -z "$dynamic"; then case "$opsys" in @@ -1584,6 +1604,7 @@ if test "$dynamic" = "yes"; then case "$opsys" in hpux* | sunos4* | sco5 ) opsys="${opsys}-shr" ;; decosf* ) ld_call_shared="-call_shared" ;; + darwin ) AC_DEFINE(DLSYM_NEEDS_UNDERSCORE) ;; esac else dnl "$dynamic" = "no" case "$opsys" in @@ -1689,7 +1710,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 ;; @@ -1710,14 +1731,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]) @@ -1911,6 +1937,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. @@ -1932,6 +1962,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 @@ -2058,14 +2090,14 @@ else *86* ) dynodump_arch=i386 ;; powerpc ) dynodump_arch=ppc ;; esac - dnl Dynodump requires the system linker - test "$GCC" = "yes" && XE_APPEND(-fno-gnu-linker, ld_switch_site) fi dnl Feed s&m crud to src/Makefile dnl Linux/powerpc needs the following magic for some reason -test "$machine$opsys" = "powerpclinux" && start_flags="-T $srcdir/src/ppc.ldscript" +dnl [Not needed with YellowDog 2.3 and causes link problems with YellowDog 3.0, +dnl the two most popular PowerPC distributions.] +dnl test "$machine$opsys" = "powerpclinux" && start_flags="-T $srcdir/src/ppc.ldscript" if test "$unexec" = "unexaix.o"; then dnl AIX needs various hacks to make static linking work. @@ -2283,6 +2315,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"; @@ -2475,6 +2508,14 @@ AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(long long) AC_CHECK_SIZEOF(void *) +dnl Cygwin from 1003022 has intptr_t, uintptr_t in +case $opsys in + cygwin* ) AC_EGREP_HEADER([typedef.*intptr_t;], [cygwin/types.h], + [AC_MSG_RESULT(yes) + AC_DEFINE(INTPTR_T_IN_CYGWIN_TYPES_H,1)], + [AC_MSG_RESULT(no)]) ;; +esac + dnl check for long file names AC_SYS_LONG_FILE_NAMES @@ -2537,7 +2578,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) @@ -2592,16 +2633,16 @@ if test "$with_gtk" != "no";then possible_version=`${possible} --version 2> /dev/null` if test "x${possible_version}" != "x"; then GTK_CONFIG="${possible}" + case "${possible_version}" in + 1.0.*) AC_MSG_WARN([GTK 1.2 is required, please upgrade your version of GTK.]); with_gtk=no;; + 1.3.*) AC_MSG_WARN([GTK 1.3 is not supported right now]); with_gtk=no;; + 1.2.*) + with_gtk=yes + break + ;; + *) AC_MSG_WARN([Found unsupported version of GTK: $possible_version]);; + esac fi - case "${possible_version}" in - 1.0.*) AC_MSG_WARN([GTK 1.2 is required, please upgrade your version of GTK.]); with_gtk=no;; - 1.3.*) AC_MSG_WARN([GTK 1.3 is not supported right now]); with_gtk=no;; - 1.2.*) - with_gtk=yes - break - ;; - *) AC_MSG_WARN([Found unsupported version of GTK: $possible_version]);; - esac done AC_MSG_RESULT([${GTK_CONFIG}]) fi @@ -2724,22 +2765,29 @@ if test "$with_x11" = "yes"; then XE_APPEND(lwlib, MAKE_SUBDIR) XE_APPEND(lwlib, SRC_SUBDIR_DEPS) - dnl Try to find Motif/CDE/Tooltalk dirs - dnl These take precedence over other X libs/includes, so PRE-pend - for lib_dir in "/usr/dt/lib" "/usr/lib/Motif2.1" "/usr/lib/Motif1.2" "/usr/lib/Motif1.1"; do - inc_dir=`echo $lib_dir | sed -e 's/lib/include/'` - if test -d "$lib_dir" -a -d "$inc_dir"; then - case "$x_libraries" in *"$lib_dir"* ) ;; *) - x_libraries="$lib_dir $x_libraries" - XE_PREPEND(-L${lib_dir}, X_LIBS) ;; - esac - case "$x_includes" in "$inc_dir"* ) ;; *) - x_includes="$inc_dir $x_includes" - XE_PREPEND(-I${inc_dir}, X_CFLAGS) ;; - esac - break; dnl only need ONE Motif implementation! - fi - done + + dnl Look for Motif, but only if not found in $x_includes and $x_libraries + AC_CHECK_HEADER(Xm/Xm.h, [AC_CHECK_LIB(Xm, XmStringFree, got_motif=yes)]) + + if test "$got_motif" != "yes"; then + dnl Try to find Motif/CDE/Tooltalk dirs + dnl These take precedence over other X libs/includes, so PRE-pend + for lib_dir in "/usr/dt/lib" "/usr/lib/Motif2.1" \ + "/usr/lib/Motif1.2" "/usr/lib/Motif1.1"; do + inc_dir=`echo $lib_dir | sed -e 's/lib/include/'` + if test -d "$lib_dir" -a -d "$inc_dir"; then + case "$x_libraries" in *"$lib_dir"* ) ;; *) + x_libraries="$lib_dir $x_libraries" + XE_PREPEND(-L${lib_dir}, X_LIBS) ;; + esac + case "$x_includes" in "$inc_dir"* ) ;; *) + x_includes="$inc_dir $x_includes" + XE_PREPEND(-I${inc_dir}, X_CFLAGS) ;; + esac + break; dnl only need ONE Motif implementation! + fi + done + fi dnl Contrib X libs/includes do NOT take precedence, so AP-pend for rel in "X11R6" "X11R5" "X11R4"; do @@ -2863,7 +2911,7 @@ dnl Avoid re-AC_DEFINE-ing xmkmf symbols we've already defined above. esac fi - AC_CHECK_FUNCS(XConvertCase) + AC_CHECK_FUNCS(XConvertCase XtRegisterDrawable) AC_CHECK_HEADERS(X11/Xlocale.h) @@ -2898,13 +2946,24 @@ extern Bool XRegisterIMInstantiateCallback( if test "$unexec" = "unexaix.o" -a "$x11_release" = "6"; then dnl X11R6 requires thread-safe code on AIX for some reason if test "$GCC" = "yes"; then - XE_PREPEND(-mthreads, X_CFLAGS) - XE_PREPEND(-mthreads, libs_x) + dnl gcc changed the name of the `-mthreads' option to `-pthread' + dnl on 2000-06-12 + AC_MSG_CHECKING(for name of AIX gcc threads option) + case `$CC -v --help 2>&1` in + *-mthreads*) aix_threads=-mthreads ;; + *) aix_threads=-pthread ;; + esac + AC_MSG_RESULT($aix_threads) + XE_PREPEND($aix_threads, X_CFLAGS) + XE_PREPEND($aix_threads, libs_x) else - case "$CC" in - "xlc" ) CC="xlc_r" ;; - "xlC" ) CC="xlC_r" ;; - "cc" ) CC="cc_r" ;; + dnl Try to use the thread-safe "_r" versions of xlc + case "$CC" in *_r) : ;; + *) + xe_save_CC="$CC" + CC="${CC}_r" + AC_CHECK_SIZEOF(short) + test "$ac_cv_sizeof_short" = 0 && CC="$xe_save_CC" ;; esac fi fi @@ -2924,8 +2983,8 @@ if test "$with_msw" != "no"; then XE_APPEND(netinstall, INSTALL_ARCH_DEP_SUBDIR) fi - install_pp="$blddir/lib-src/installexe.sh" - XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lwinspool, libs_system) + 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 window_system=msw @@ -3147,29 +3206,63 @@ dnl Autodetect LDAP AC_CHECKING(for LDAP) test -z "$with_ldap" && { AC_CHECK_HEADER(ldap.h, ,with_ldap=no) } test -z "$with_ldap" && { AC_CHECK_HEADER(lber.h, ,with_ldap=no) } -if test "$with_ldap" != "no"; then - AC_CHECK_LIB(ldap, ldap_search, with_ldap_nolber=yes, with_ldap_nolber=no) - test "$with_ldap_nolber" = "no" && { AC_CHECK_LIB(ldap, ldap_open, with_ldap_lber=yes, with_ldap_lber=no, -llber) } - test "$with_ldap_nolber" = "no" -a "$with_ldap_lber" = "no" && { AC_CHECK_LIB(ldap, ldap_open, with_ldap_krb=yes, with_ldap_krb=no, -llber -lkrb) } - test "$with_ldap_nolber" = "no" -a "$with_ldap_lber" = "no" -a "$with_ldap_krb" = "no" && { AC_CHECK_LIB(ldap, ldap_open, with_ldap_krbdes=yes, with_ldap_krbdes=no, -llber -lkrb -ldes) } - test -z "$with_ldap" -a \( "$with_ldap_lber" = "yes" -o "$with_ldap_nolber" = "yes" -o "$with_ldap_krb" = "yes" -o "$with_ldap_krbdes" = "yes" \) && with_ldap=yes +if test no != "$with_ldap";then + if test . != "${ldap_libs+.}";then + ldap_libs= + AC_CHECK_FUNC(ldap_open,dnl Allow it to be in generic "$LIBS" + [with_ldap=yes + test yes = "$extra_verbose" && + echo "Setting ldap_libs to $ldap_libs"],dnl + [AC_CHECK_LIB(ldap, ldap_open,dnl + [with_ldap=yes],dnl + [ldap_needs_lber=yes ldap_other_libs=-llber +dnl This requires `AC_CACHE_VAL' (which is called by `AC_CHECK_LIB') +dnl to be redefined to ignore cached (shell variable) value, as it is +dnl done above, because the same variable is used in all +dnl `AC_CHECK_LIB' expansions in macro invocation below. Worse, if it +dnl is not done, there is no portable way to compensate for this +dnl locally since `unset' command is not supported by all shells. The +dnl other solution would be changing `AC_CHECK_LIB' so that cache +dnl variable name depends on the macro OTHER-LIBRARIES argument. + AC_CHECK_LIB(ldap, ldap_open,dnl + [with_ldap=yes],dnl + [ldap_needs_krb=yes ldap_other_libs="$ldap_other_libs -lkrb" + AC_CHECK_LIB(ldap, ldap_open,dnl + [with_ldap=yes],dnl + [ldap_needs_des=yes ldap_other_libs="$ldap_other_libs -ldes" + AC_CHECK_LIB(ldap, ldap_open,dnl + [with_ldap=yes],dnl + [with_ldap=no],dnl + $ldap_other_libs)],dnl + $ldap_other_libs)],dnl + $ldap_other_libs)]) + if test yes = "$with_ldap";then + if test yes = "$ldap_needs_des";then + XE_PREPEND(-ldes, ldap_libs) + fi + if test yes = "$ldap_needs_krb";then + XE_PREPEND(-lkrb, ldap_libs) + fi + if test yes = "$ldap_needs_lber";then + XE_PREPEND(-llber, ldap_libs) + fi + XE_PREPEND(-lldap, ldap_libs) + fi]) + else +dnl Allow builder to override "$ldap_libs". + save_LIBS="$LIBS" LIBS="$ldap_libs $LIBS" + AC_CHECK_FUNC(ldap_open,dnl + [with_ldap=yes + test yes = "$extra_verbose" && + echo "Setting ldap_libs to $ldap_libs"],dnl + [with_ldap=no]) + LIBS="$save_LIBS" + fi fi if test "$with_ldap" = "yes"; then AC_DEFINE(HAVE_LDAP) XE_ADD_OBJS(eldap.o) - if test "$with_ldap_nolber" = "yes" ; then - XE_PREPEND(-lldap, LIBS) - else - if test "$with_ldap_krb" = "yes" ; then - XE_PREPEND(-lkrb, LIBS) - fi - if test "$with_ldap_krbdes" = "yes" ; then - XE_PREPEND(-ldes, LIBS) - XE_PREPEND(-lkrb, LIBS) - fi - XE_PREPEND(-llber, LIBS) - XE_PREPEND(-lldap, LIBS) - fi + LIBS="$ldap_libs $LIBS" AC_CHECK_FUNCS(ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result) fi @@ -3401,15 +3494,7 @@ if test "$with_x11" = "yes"; then AC_CHECKING(for X11 graphics libraries) fi -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 +if test "$with_x11" = "yes"; then AC_CHECKING(for the Athena widgets) dnl What in heck did the user actually want? @@ -3423,22 +3508,24 @@ if test "$with_x11" = "yes" -a "$detect_athena" = "yes" ; then *) XE_DIE("Unknown Athena widget set \`$with_athena'. This should not happen.") ;; esac + athena_3d_function=Xaw3dComputeBottomShadowRGB + dnl Search for the Athena library... if test "$athena_3d" = "no"; then AC_CHECK_LIB($athena_variant, XawScrollbarSetThumb, [ dnl Must not be a 3d library... - AC_CHECK_LIB($athena_variant, threeDClassRec, + AC_CHECK_LIB($athena_variant, $athena_3d_function, 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, + AC_CHECK_LIB($athena_variant, $athena_3d_function, 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, $athena_3d_function, [ athena_lib=Xaw; AC_MSG_WARN("Assuming that libXaw is actually $athena_variant."); @@ -3508,7 +3595,7 @@ if test "$with_x11" = "yes" -a "$detect_athena" = "yes" ; then else have_xaw=no -fi dnl "$with_x11" = "yes" -a "detect_athena" = "yes" +fi dnl "$with_x11" = "yes" if test "$with_x11" = "yes"; then dnl autodetect Motif - but only add to libs_x later (if necessary) @@ -3532,25 +3619,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* | cygwin* ) 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" @@ -3698,7 +3807,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 @@ -3802,8 +3914,22 @@ if test "$need_motif" = "yes" ; then 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) +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 ---------------------------------------------------------------- @@ -4095,17 +4221,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 @@ -4278,13 +4412,20 @@ if test "$with_tty" = "yes" ; then 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) } - test -z "$with_gpm" && { AC_CHECK_LIB(gpm, Gpm_Open, with_gpm=yes, with_gpm=no) } - if test "$with_gpm" = "yes"; then - AC_DEFINE(HAVE_GPM) - XE_ADD_OBJS(gpmevent.o) - XE_PREPEND(-lgpm, LIBS) + dnl General Purpose Mouse (libgpm) support + if test "$with_gpm" != "no"; then + AC_CHECK_HEADER(gpm.h, [ + AC_CHECK_LIB(gpm, Gpm_Open, have_gpm=yes)]) + if test "$have_gpm" = "yes"; then + with_gpm=yes + AC_DEFINE(HAVE_GPM) + XE_ADD_OBJS(gpmevent.o) + XE_PREPEND(-lgpm, LIBS) + elif test "$with_gpm" = "yes"; then + XE_DIE(["GPM requested, but gpm.h or libgpm seems to be missing."]) + else + with_gpm=no + fi fi else dnl "$with_tty" = "no" @@ -4343,26 +4484,68 @@ test "$with_database_gdbm" = "yes" -o \ "$with_database_dbm" = "yes" && \ AC_DEFINE(HAVE_DBM) +dnl Check for u_int*_t typedefs. +AC_CHECK_TYPE(u_int8_t, uint8_t) +if test $ac_cv_type_u_int8_t = yes; then +AC_DEFINE(HAVE_U_INT8_T,1) +fi +AC_CHECK_TYPE(u_int16_t, uint16_t) +if test $ac_cv_type_u_int16_t = yes; then +AC_DEFINE(HAVE_U_INT16_T,1) +fi +AC_CHECK_TYPE(u_int32_t, uint32_t) +if test $ac_cv_type_u_int32_t = yes; then +AC_DEFINE(HAVE_U_INT32_T,1) +fi +AC_CHECK_TYPE(u_int64_t, uint64_t) +if test $ac_cv_type_u_int64_t = yes; then +AC_DEFINE(HAVE_U_INT64_T,1) +fi + dnl Check for Berkeley DB. if test "$with_database_berkdb" != "no"; then AC_MSG_CHECKING(for Berkeley db.h) for header in "db/db.h" "db.h"; do + case "$opsys" in + *freebsd*) + AC_TRY_COMPILE([ +#include +#if !(defined __GLIBC__ && __GLIBC_MINOR__ >= 1) +#ifdef HAVE_INTTYPES_H +#define __BIT_TYPES_DEFINED__ +#include +#endif +#endif +#include <$header> +],[], db_h_file="$header"; break) + ;; + *) AC_TRY_COMPILE([ #include #if !(defined __GLIBC__ && __GLIBC_MINOR__ >= 1) #ifdef HAVE_INTTYPES_H #define __BIT_TYPES_DEFINED__ #include +#if !HAVE_U_INT8_T typedef uint8_t u_int8_t; +#endif +#if !HAVE_U_INT16_T typedef uint16_t u_int16_t; +#endif +#if !HAVE_U_INT32_T typedef uint32_t u_int32_t; +#endif #ifdef WE_DONT_NEED_QUADS +#if !HAVE_U_INT64_T typedef uint64_t u_int64_t; #endif #endif #endif +#endif #include <$header> ],[], db_h_file="$header"; break) + ;; + esac done if test -z "$db_h_file" then AC_MSG_RESULT(no); with_database_berkdb=no @@ -4422,28 +4605,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 @@ -4474,19 +4662,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 "" - 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 @@ -4765,8 +4959,8 @@ AC_SUBST(ld_libs_all) AC_SUBST(CFLAGS) AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) -RECURSIVE_MAKE="\$(MAKE) \$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'" -AC_SUBST(RECURSIVE_MAKE) +RECURSIVE_MAKE_ARGS="\$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'" +AC_SUBST(RECURSIVE_MAKE_ARGS) AC_SUBST(native_sound_lib) AC_SUBST(sound_cflags) @@ -4826,6 +5020,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) @@ -4887,6 +5082,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 | sed 1q`" + echo " Compiler specs file: `$CC -v 2>&1 | sed 's/.* \([[^ ]]\)/\1/' | sed 1q`" + ;; +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 | sed 1q` + 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 @@ -4894,6 +5156,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 @@ -4913,6 +5214,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" @@ -5044,7 +5355,20 @@ 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 +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)."