Mercurial > hg > xemacs-beta
diff configure.in @ 398:74fd4e045ea6 r21-2-29
Import from CVS: tag r21-2-29
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:13:30 +0200 |
parents | 7d59cb494b73 |
children | a86b2b5e0111 |
line wrap: on
line diff
--- a/configure.in Mon Aug 13 11:12:06 2007 +0200 +++ b/configure.in Mon Aug 13 11:13:30 2007 +0200 @@ -345,28 +345,29 @@ statedir='${prefix}/lib' libdir='${exec_prefix}/lib' mandir='${prefix}/man/man1' -infodir='${datadir}/${PROGNAME}-${version}/info' +inststaticdir='${PROGNAME}' +instvardir='${PROGNAME}-${version}' +infodir='${datadir}/${instvardir}/info' infopath='' install_pp='' -lispdir='${datadir}/${PROGNAME}-${version}/lisp' -moduledir='${datadir}/${PROGNAME}-${version}/${configuration}/modules' -sitelispdir='${datadir}/xemacs/site-lisp' -sitemoduledir='${datadir}/xemacs/site-modules' -pkgdir='${datadir}/${PROGNAME}-${version}/lisp' +lispdir='${datadir}/${instvardir}/lisp' +moduledir='${datadir}/${instvardir}/${configuration}/modules' +sitelispdir='${datadir}/${inststaticdir}/site-lisp' +sitemoduledir='${datadir}/${inststaticdir}/site-modules' +pkgdir='${datadir}/${instvardir}/lisp' package_path='' -etcdir='${datadir}/${PROGNAME}-${version}/etc' -lockdir='${statedir}/${PROGNAME}/lock' -archlibdir='${datadir}/${PROGNAME}-${version}/${configuration}' +etcdir='${datadir}/${instvardir}/etc' +lockdir='${statedir}/${inststaticdir}/lock' +archlibdir='${datadir}/${instvardir}/${configuration}' +docdir='${archlibdir}' +with_prefix='yes' with_site_lisp='no' with_site_modules='yes' with_menubars='' 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' -puresize='' cpp='' cppflags='' libs='' ldflags='' dynamic='' with_x11='' @@ -384,6 +385,9 @@ 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 @@ -464,7 +468,8 @@ dnl Process (many) boolean options with_site_lisp | \ - with_site_modules | \ + with_prefix | \ + with_site_modules | \ with_x | \ with_x11 | \ with_msw | \ @@ -483,7 +488,7 @@ with_jpeg | \ with_png | \ with_tiff | \ - with_session | \ + with_wmcommand | \ with_xmu | \ with_purify | \ with_quantify | \ @@ -508,17 +513,14 @@ external_widget | \ verbose | \ extra_verbose | \ - const_is_losing | \ usage_tracking | \ use_union_type | \ + pdump | \ debug | \ use_assertions | \ - gung_ho | \ - use_minimal_tagbits | \ - use_indexed_lrecord_implementation | \ memory_usage_stats | \ with_clash_detection | \ - with_shlib | \ + with_modules | \ no_doc_file ) dnl Make sure the value given was either "yes" or "no". case "$val" in @@ -529,7 +531,7 @@ eval "$opt=\"$val\"" ;; - dnl Options that take a user-supplied value, as in --puresize=8000000 + dnl Options that take a user-supplied value, as in --x-includes=/usr/X11R6/include dnl The cache-file option is ignored (for compatibility with other configures) srcdir | \ compiler | \ @@ -538,7 +540,6 @@ cppflags | \ libs | \ ldflags | \ - puresize | \ cache_file | \ native_sound_lib| \ site_lisp | \ @@ -579,20 +580,20 @@ "with_database" ) with_database_berkdb=no with_database_dbm=no - with_database_gnudbm=no + with_database_gdbm=no for x in `echo "$val" | sed -e 's/,/ /g'` ; do case "$x" in - no ) ;; - b | be | ber | berk | berkd | berkdb ) with_database_berkdb=yes ;; - d | db | dbm ) with_database_dbm=yes ;; - g | gn | gnu | gnud | gnudb | gnudbm ) with_database_gnudbm=yes ;; - * ) USAGE_ERROR(["The \`--$optname' option value + no ) ;; + b | be | ber | berk | berkd | berkdb ) with_database_berkdb=yes ;; + d | db | dbm ) with_database_dbm=yes ;; + g | gn | gnu | gnud | gnudb | gnudbm | gdbm) with_database_gdbm=yes ;; + * ) USAGE_ERROR(["The \`--$optname' option value must be either \`no' or a comma-separated list of one or more of \`berkdb' and either \`dbm' or \`gnudbm'."]) ;; esac done - if test "$with_database_dbm" = "yes" -a \ - "$with_database_gnudbm" = "yes"; then + if test "$with_database_dbm" = "yes" -a \ + "$with_database_gdbm" = "yes"; then USAGE_ERROR("Only one of \`dbm' and \`gnudbm' may be specified with the \`--$optname' option.") fi @@ -600,16 +601,54 @@ dnl Has the user requested sound support? "with_sound" ) - dnl value can be native, nas or both. yes is allowed - dnl as a backwards compatible synonym for native + dnl values is a subset of all,native,nas,esd + dnl or their negatives: none,nonative,nonas,noesd + for x in `echo "$val" | sed -e 's/,/ /g'` ; do + case "$x" in + dnl all and none are only permitted as the first in the list. + n | no | non | none ) new_sdefault=no ;; + a | al | all | both ) new_sdefault=yes ;; + + native ) with_native_sound=yes ;; + nonative ) with_native_sound=no ;; + + nas ) with_nas_sound=yes ;; + nonas ) with_nas_sound=no ;; + + esd ) with_esd_sound=yes ;; + noesd ) with_esd_sound=no ;; + + * ) bogus_sound=yes ;; + esac + if test "$bogus_sound" -o \ + \( -n "$new_sdefault" -a -n "$sound_notfirst" \) ; then + types="\`all', \`none', \`(no)native', \`no(nas)', \`(no)esd'." + USAGE_ERROR(["Valid types for the \`--$optname' option are: + $types. +The default is to autodetect all sound support."]) + elif test -n "$new_sdefault" ; then + with_native_sound=$new_sdefault + with_nas_sound=$new_sdefault + with_esd_sound=$new_sdefault + new_sdefault= # reset this + fi + sound_notfirst=true + done + ;; + + dnl Has the user specified a prefered Athena widget set? + dnl This bit expands any alias names out for us... + "with_athena" ) case "$val" in - y | ye | yes ) val=native ;; - n | no | non | none ) val=no;; - na | nat | nati | nativ | native ) val=native ;; - ne | net | neta | netau | netaud | netaudi | netaudio | nas ) val=nas ;; - b | bo | bot | both ) val=both;; + xa | xaw ) val=xaw ;; + 3 | 3d | xaw3d ) val=3d ;; + dnl No `n' for next, someone may try `no' + ne | nex | next | naxtaw) val=next ;; + dnl Have not tested the next two... + 9 | 95 | xaw95 ) val=95 ;; + xp | xpm | xawxpm ) val=xpm ;; * ) USAGE_ERROR(["The \`--$optname' option must have one of these values: - \`native', \`nas', \`both', or \`none'."]) ;; + \`xaw', \`3d', \`next', \`95', or \`xpm'."]) ;; esac eval "$opt=\"$val\"" ;; @@ -632,9 +671,10 @@ 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\"" ;; @@ -666,14 +706,17 @@ malloc ) error_check_malloc=yes ;; nomalloc ) error_check_malloc=no ;; + byte_code ) error_check_byte_code=yes ;; + nobyte_code ) error_check_byte_code=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', and \`nomalloc'." + types="\`all' (default), \`none', \`noextents', \`notypecheck', \`nobufpos', \`nogc', \`nomalloc', and \`nobyte-code'." else - types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', and \`malloc'." + types="\`all', \`none' (default), \`extents', \`typecheck', \`bufpos', \`gc', \`malloc', and \`byte-code'." fi USAGE_ERROR(["Valid types for the \`--$optname' option are: $types."]) @@ -683,6 +726,7 @@ error_check_bufpos=$new_default error_check_gc=$new_default error_check_malloc=$new_default + error_check_byte_code=$new_default new_default= # reset this fi echeck_notfirst=true @@ -710,6 +754,8 @@ dnl You need to synchronize this with the way the dnl default values are built. case "$opt" in + dnl prefix is taken care of by --with-prefix + exec_prefix ) AC_DEFINE(EXEC_PREFIX_USER_DEFINED) ;; lispdir ) AC_DEFINE(LISPDIR_USER_DEFINED) ;; sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;; moduledir ) AC_DEFINE(MODULEDIR_USER_DEFINED) ;; @@ -723,6 +769,7 @@ AC_DEFINE(MODULEDIR_USER_DEFINED) AC_DEFINE(ETCDIR_USER_DEFINED) ;; statedir | lockdir ) AC_DEFINE(LOCKDIR_USER_DEFINED) ;; + docdir ) AC_DEFINE(DOCDIR_USER_DEFINED) ;; exec_prefix | libdir | archlibdir ) AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;; esac ;; @@ -736,21 +783,24 @@ dnl Has the user specified the toolkit(s) to use for GUI elements? "with_menubars" | \ "with_scrollbars" | \ - "with_dialogs" ) + "with_dialogs" | \ + "with_widgets" ) case "$val" in l | lu | luc | luci | lucid ) val=lucid ;; m | mo | mot | moti | motif ) val=motif ;; - athena3d | athena-3d ) val=athena3d ;; a | at | ath | athe | athen | athena ) val=athena ;; n | no | non | none ) val=no ;; * ) USAGE_ERROR(["The \`--$optname' option must have one of these values: - \`lucid', \`motif', \`athena', \`athena3d', or \`no'."]) ;; + \`lucid', \`motif', \`athena', or \`no'."]) ;; esac eval "$opt=\"$val\"" ;; dnl Obsolete legacy argument? Warn, but otherwise ignore. + "use_minimal_tagbits" | \ + "use_indexed_lrecord_implementation" | \ "run_in_place" | \ + "const_is_losing" | \ "with_gnu_make" ) AC_MSG_WARN([Obsolete option \`--$optname' ignored.]) ;; @@ -794,19 +844,6 @@ test "$with_system_malloc" = "default" && with_system_malloc=yes fi -dnl --gung-ho=val is a synonym for -dnl --use-minimal-tagbits=val --use-indexed-lrecord-implementation=val -if test -n "$gung_ho"; then - test -z "$use_minimal_tagbits" && use_minimal_tagbits="$gung_ho" - test -z "$use_indexed_lrecord_implementation" && \ - use_indexed_lrecord_implementation="$gung_ho" -fi -if test "$use_minimal_tagbits" = "no"; then - test "$with_dlmalloc" = "yes" && \ - USAGE_ERROR("--with-dlmalloc requires --use-minimal-tagbits") - with_dlmalloc=no -fi - dnl XE_CHECK_FEATURE_DEPENDENCY(feature1, feature2) define([XE_CHECK_FEATURE_DEPENDENCY], [if test "$with_$1 $with_$2" = "yes no"; then @@ -869,7 +906,7 @@ 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" @@ -927,20 +964,25 @@ dnl ---------------------------------------- . "$srcdir/version.sh" || exit 1; dnl Must do the following first to determine verbosity for AC_DEFINE -if test -n "$emacs_beta_version"; then beta=yes; else beta=no; fi +if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi : "${extra_verbose=$beta}" version="${emacs_major_version}.${emacs_minor_version}" AC_DEFINE_UNQUOTED(EMACS_MAJOR_VERSION, $emacs_major_version) AC_DEFINE_UNQUOTED(EMACS_MINOR_VERSION, $emacs_minor_version) -if test -n "$emacs_beta_version"; then - version="${version}-b${emacs_beta_version}" - AC_DEFINE_UNQUOTED(EMACS_BETA_VERSION, $emacs_beta_version) +if test -n "$emacs_beta_version" ; then + if test "$beta" = "yes"; then + version="${version}-b${emacs_beta_version}" + AC_DEFINE_UNQUOTED(EMACS_BETA_VERSION, $emacs_beta_version) + else + version="${version}.${emacs_beta_version}" + AC_DEFINE_UNQUOTED(EMACS_PATCH_LEVEL, $emacs_beta_version) + fi fi AC_DEFINE_UNQUOTED(XEMACS_CODENAME, "$xemacs_codename") AC_DEFINE_UNQUOTED(EMACS_VERSION, "$version") if test "$with_infodock" = "yes"; then - if test ! -f ../ID-INSTALL; then + if test ! -f ../../ID-INSTALL; then echo "Cannot build InfoDock without InfoDock sources" with_infodock=no fi @@ -964,18 +1006,20 @@ dnl ---------------------------------- dnl Error checking default to "yes" in beta versions, to "no" in releases. dnl Same goes for --debug and --extra-verbosity. -if test -n "$emacs_beta_version"; then beta=yes; else beta=no; fi +if test -n "$emacs_is_beta"; then beta=yes; else beta=no; fi test "${error_check_extents=$beta}" = yes && AC_DEFINE(ERROR_CHECK_EXTENTS) test "${error_check_typecheck=$beta}" = yes && AC_DEFINE(ERROR_CHECK_TYPECHECK) 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) 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) @@ -1027,7 +1071,9 @@ 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 ;; rs6000-ibm-aix* ) machine=ibmrs6000 ;; powerpc-ibm-aix* ) machine=ibmrs6000 ;; @@ -1038,6 +1084,7 @@ mips-sony-* ) machine=news-risc ;; clipper-* ) machine=clipper ;; arm-* ) machine=arm ;; + armv[34][lb]-* ) machine=arm ;; ns32k-* ) machine=ns32000 ;; esac @@ -1481,10 +1528,13 @@ else NON_GNU_CPP="/lib/cpp -D_XOPEN_SOURCE" ; fi ;; + *-sysv5* ) opsys=sco7 ;; *-386bsd* ) opsys=386bsd ;; *-freebsd* ) opsys=freebsd ;; *-nextstep* ) opsys=nextstep ;; - *-pc-cygwin32 ) opsys=cygwin32 ;; + *-pc-cygwin* ) opsys=cygwin32 ;; + *-pc-mingw* ) opsys=mingw32 ; + test -z "$with_tty" && with_tty="no";; dnl Otherwise, we fall through to the generic opsys code at the bottom. esac ;; @@ -1591,7 +1641,14 @@ AC_PROG_CPP -AC_AIX +dnl -------------------------------------------------------------------- +dnl Compiler feature macros +dnl -------------------------------------------------------------------- + +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_AIX dnl Defines _ALL_SOURCE on AIX. AC_MSG_CHECKING(for GNU libc) AC_TRY_COMPILE([#include <features.h>],[ @@ -1605,6 +1662,23 @@ 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! @@ -1722,8 +1796,11 @@ 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 dnl The value of CPP is a quoted variable reference, so we need to do this @@ -1745,6 +1822,13 @@ 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" @@ -1758,13 +1842,10 @@ 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" - dnl cygwin b19 can't cope with -O3, but most people use 20.1 or egcs now. - dnl test "$opsys $machine" = "cygwin32 intel386" && \ - dnl CFLAGS="-g -O2 -Wall -Wno-switch" elif test "$__SUNPRO_C" = "yes"; then case "$opsys" in sol2 ) CFLAGS="-v -xO4" ;; @@ -1900,16 +1981,16 @@ COLON_TO_SPACE(site_prefixes) if test -n "$site_prefixes"; then for dir in $site_prefixes; do + lib_dir="${dir}/lib" inc_dir="${dir}/include" - lib_dir="${dir}/lib" if test ! -d "$dir"; then XE_DIE("Invalid site prefix \`$dir': no such directory") - elif test ! -d "$inc_dir"; then - XE_DIE("Invalid site prefix \`$dir': no such directory \`$inc_dir'") elif test ! -d "$lib_dir"; then XE_DIE("Invalid site prefix \`$dir': no such directory \`$lib_dir'") else - XE_APPEND("-I$inc_dir", c_switch_site) + if test -d "$inc_dir"; then + XE_APPEND("-I$inc_dir", c_switch_site) + fi XE_APPEND("-L$lib_dir", ld_switch_site) fi done @@ -1923,7 +2004,7 @@ 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) @@ -1933,11 +2014,31 @@ 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 ;; @@ -2150,6 +2251,7 @@ AC_TYPE_UID_T AC_TYPE_MODE_T AC_TYPE_OFF_T +AC_CHECK_TYPE(ssize_t, int) AC_MSG_CHECKING(for struct timeval) AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME @@ -2198,7 +2300,7 @@ AC_SYS_LONG_FILE_NAMES dnl -lm is required by LISP_FLOAT_TYPE, among other things -AC_CHECK_LIB(m, sin) +AC_CHECK_FUNC(sin, ,AC_CHECK_LIB(m, sin)) dnl Floating operation support is now unconditional AC_DEFINE(LISP_FLOAT_TYPE) @@ -2209,18 +2311,22 @@ 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 - -dnl Used by getloadavg() - does not require root priveleges -AC_CHECK_LIB(kstat, kstat_open) - -dnl Another way to get the load average -AC_CHECK_LIB(kvm, kvm_read) +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) @@ -2238,7 +2344,7 @@ fi dnl Link with "-z ignore" on Solaris if supported -if test "$opsys" = "sol2" && test "$OS_RELEASE" -ge 56; then +if test "$opsys" = "sol2" -a "$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) @@ -2426,6 +2532,8 @@ 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 @@ -2477,7 +2585,7 @@ 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 @@ -2489,6 +2597,7 @@ && XE_ADD_OBJS(toolbar-msw.o) test "$with_dialogs" != "no" && with_dialogs=msw \ && XE_ADD_OBJS(dialog-msw.o) + test "$with_widgets" != "no" && with_widgets=msw else test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-msw.o) test "$with_menubars" != "no" && XE_ADD_OBJS(menubar-msw.o) @@ -2499,10 +2608,7 @@ 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 - use_minimal_tagbits=yes - use_indexed_lrecord_implementation=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 fi @@ -2545,7 +2651,7 @@ dnl if test "$with_tty" = "no" ; then dnl AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.]) dnl fi - for feature in tooltalk cde offix session xim xmu + for feature in tooltalk cde offix wmcommand xim xmu nas_sound do if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then AC_MSG_WARN([--with-$feature ignored: Not valid without X support]) @@ -2568,11 +2674,11 @@ test "$opsys" = "hpux9-shr" && opsysfile="s/hpux9shxr4.h" esac -dnl Enable or disable proper session-management -AC_CHECKING(for session-management option); -dnl if test "$with_session" = "yes"; then -if test "$with_session" != "no"; then - AC_DEFINE(HAVE_SESSION) +dnl Enable or disable proper handling of WM_COMMAND +AC_CHECKING(for WM_COMMAND option); +dnl if test "$with_wmcommand" = "yes"; then +if test "$with_wmcommand" != "no"; then + AC_DEFINE(HAVE_WMCOMMAND) fi dnl Autodetect Xauth @@ -2686,23 +2792,29 @@ 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 - test -z "$with_umich_ldap" && { AC_CHECK_LIB(ldap, ldap_open, with_umich_ldap=yes, with_umich_ldap=no, -llber) } - test "$with_umich_ldap" = "no" && { AC_CHECK_LIB(ldap10, ldap_set_option, with_ns_ldap=yes, with_ns_ldap=no) } - test -z "$with_ldap" -a \( "$with_umich_ldap" = "yes" -o "$with_ns_ldap" = "yes" \) && with_ldap=yes + 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 fi if test "$with_ldap" = "yes"; then AC_DEFINE(HAVE_LDAP) XE_ADD_OBJS(eldap.o) - if test "$with_umich_ldap" = "yes" ; then - AC_DEFINE(HAVE_UMICH_LDAP) + 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) - elif test "$with_ldap" = "yes" -a "$with_ns_ldap" = "yes" ; then - AC_DEFINE(HAVE_NS_LDAP) - XE_PREPEND(-lldap10, LIBS) - elif test "$with_ldap" = "yes" ; then - XE_PREPEND(-lldap, LIBS) fi + AC_CHECK_FUNCS(ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result) fi dnl ---------------------- @@ -2717,7 +2829,8 @@ 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 : @@ -2850,13 +2963,101 @@ AC_CHECKING(for X11 graphics libraries) - dnl Autodetect -lXaw - AC_CHECK_LIB(Xaw, XawScrollbarSetThumb, have_xaw=yes, have_xaw=no) - dnl if test "$have_xaw" = "yes"; then - dnl AC_CHECK_HEADER(X11/Xaw/Reports.h, [ - dnl XE_APPEND(pkg-src/tree-x, MAKE_SUBDIR) - dnl XE_APPEND(pkg-src/tree-x, INSTALL_ARCH_DEP_SUBDIR)]) - dnl fi + AC_CHECKING(for the Athena widgets) + + dnl What in heck did the user actually want? + case "$with_athena" in + 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 ;; + "95") athena_variant=Xaw95 athena_3d=yes ;; + "xpm") athena_variant=XawXpm athena_3d=yes ;; + *) XE_DIE("Unknown Athena widget set \`$with_athena'. This should not happen.") ;; + esac + + 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_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, + [ + 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."))) + fi + + dnl Now we locate the Athena headers that we need. + if test "$athena_3d" = "no"; then + AC_CHECK_HEADER(X11/Xaw/ThreeD.h, + AC_MSG_WARN("Could not find a non-3d Athena header set."), + AC_CHECK_HEADER(X11/Xaw/XawInit.h, + athena_h_path=X11/Xaw, + AC_MSG_WARN("Could not find a non-3d Athena header set."))) + else + dnl The three-d Athena headers are so much more slippery. + dnl Curse this `Lets replace standard libraries' thing that they did. :/ + AC_CHECK_HEADER(X11/$athena_variant/XawInit.h, + 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, + AC_CHECK_HEADER(X11/Xaw3d/ThreeD.h, + [ + AC_MSG_WARN("Assuming that X11/Xaw3d headers are suitable for $athena_variant.") + athena_h_path=X11/Xaw3d + ],)) + 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 + AC_CHECK_HEADER(X11/Xaw/ThreeD.h, + [ + AC_MSG_WARN("Assuming that X11/Xaw headers are suitable for $athena_variant.") + athena_h_path=X11/Xaw + ], + AC_MSG_WARN("Could not find a suitable 3d Athena header set.")) + fi + fi + + dnl Do we actually have a usable Athena widget set? Please? + if test -n "$athena_lib" -a -n "$athena_h_path"; then + have_xaw=yes + else + have_xaw=no + fi dnl autodetect Motif - but only add to libs_x later (if necessary) AC_CHECK_HEADER(Xm/Xm.h, @@ -2881,26 +3082,50 @@ dnl Not all toolkits support all widgets dnl if Motif is available we use it for the dialog boxes. -case "$with_menubars" in "" | "yes" | "athena" | "athena3d" ) +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" + if test "$have_motif" = "yes"; then with_dialogs="motif" + elif test "$have_xaw" = "yes"; then with_dialogs="athena" else with_dialogs=no fi ;; esac case "$with_scrollbars" in "" | "yes" ) with_scrollbars="lucid" ;; esac - -all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars" - -case "$all_widgets" in *athena* ) - AC_DEFINE(LWLIB_USES_ATHENA) - AC_DEFINE(NEED_ATHENA) - XE_APPEND(lwlib-Xaw.o, lwlib_objs) - XE_PREPEND(-lXaw, libs_x) ;; +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 ;; +esac + +all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars $with_widgets" + +case "$all_widgets" in + *athena* ) + if test "$have_xaw" != "yes"; then + XE_DIE("Could not find a suitable Athena library to build with.") + fi + + dnl Add the Lucid widget Athena code + XE_APPEND(lwlib-Xaw.o, lwlib_objs) + + dnl Add the Athena widget library we located earlier + XE_PREPEND(-l$athena_lib, libs_x) + + dnl Export the path for lwlib, used to build and include the headers + dnl from the right place later on. + AC_DEFINE_UNQUOTED(ATHENA_H_PATH, $athena_h_path) + + AC_DEFINE(LWLIB_USES_ATHENA) + AC_DEFINE(NEED_ATHENA) + + if test "$athena_3d" = "yes"; then + AC_DEFINE(HAVE_ATHENA_3D) + fi + ;; esac case "$all_widgets" in *motif* ) @@ -2913,6 +3138,11 @@ test "$with_menubars" = "lucid" && XE_APPEND(xlwmenu.o, lwlib_objs) test "$with_menubars" = "motif" && XE_APPEND(xlwmenu.o, lwlib_objs) test "$with_scrollbars" = "lucid" && XE_APPEND(xlwscrollbar.o, lwlib_objs) +test "$with_widgets" != "no" && test "$with_widgets" != "msw" && \ + XE_APPEND(xlwtabs.o xlwgcs.o, lwlib_objs) +case "$with_widgets" in athena* ) + XE_APPEND(xlwradio.o xlwcheckbox.o xlwgauge.o, lwlib_objs);; +esac case "$all_widgets" in *lucid* ) AC_DEFINE(NEED_LUCID) XE_APPEND(lwlib-Xlw.o, lwlib_objs) ;; @@ -2920,15 +3150,23 @@ AC_SUBST(lwlib_objs) -case "$with_scrollbars" in athena* ) AC_DEFINE(LWLIB_SCROLLBARS_ATHENA);; esac -case "$with_dialogs" in athena* ) AC_DEFINE(LWLIB_DIALOGS_ATHENA) ;; esac -test "$with_scrollbars" = "athena3d" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA3D) -test "$with_dialogs" = "athena3d" && AC_DEFINE(LWLIB_DIALOGS_ATHENA3D) +test "$with_scrollbars" = "athena" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA) +test "$with_dialogs" = "athena" && AC_DEFINE(LWLIB_DIALOGS_ATHENA) + +if test "$athena_3d" = "yes"; then + test "$with_scrollbars" = "athena" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA3D) + test "$with_dialogs" = "athena" && AC_DEFINE(LWLIB_DIALOGS_ATHENA3D) +fi + +case "$with_widgets" in athena* ) AC_DEFINE(LWLIB_WIDGETS_ATHENA);; esac +test "$with_widgets" != "no" && test "$with_widgets" != "msw" && \ + AC_DEFINE(LWLIB_TABS_LUCID) 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_menubars" = "lucid" && AC_DEFINE(LWLIB_MENUBARS_LUCID) test "$with_scrollbars" = "lucid" && AC_DEFINE(LWLIB_SCROLLBARS_LUCID) @@ -2936,30 +3174,21 @@ test "$with_menubars" = "motif" && AC_DEFINE(LWLIB_MENUBARS_MOTIF) test "$with_scrollbars" = "motif" && AC_DEFINE(LWLIB_SCROLLBARS_MOTIF) test "$with_dialogs" = "motif" && AC_DEFINE(LWLIB_DIALOGS_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_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) 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 "$all_widgets" != "no no no no" && XE_ADD_OBJS(gui-x.o) -else - if test \( "$with_sound" = "nas" \) -o \( "$with_sound" = "both" \); then - echo "Attempt to Build NAS sound without X" - echo "Please remove NAS configuration or build with X" - exit 1 - fi + 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 -test "$use_minimal_tagbits" = "yes" && AC_DEFINE(USE_MINIMAL_TAGBITS) -test "$use_indexed_lrecord_implementation" = "yes" && \ - AC_DEFINE(USE_INDEXED_LRECORD_IMPLEMENTATION) - dnl ---------------------- dnl Mule-dependent options dnl ---------------------- @@ -2983,7 +3212,7 @@ AC_CHECKING(for Mule-related features) AC_DEFINE(MULE) AC_DEFINE(FILE_CODING) - XE_ADD_OBJS(mule.o mule-ccl.o mule-charset.o mule-coding.o file-coding.o) + XE_ADD_OBJS(mule.o mule-ccl.o mule-charset.o file-coding.o) dnl Use -lintl to get internationalized strerror for Mule AC_CHECK_HEADERS(libintl.h) @@ -3099,25 +3328,24 @@ XE_COMPUTE_RUNPATH() fi -AC_CHECK_FUNCS(cbrt closedir dup2 eaccess fmod fpathconf frexp ftime gethostname 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 strcasecmp strerror tzset ulimit usleep utimes waitpid vsnprintf) - -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 +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 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) + +if test "$ac_cv_func_getloadavg" != "yes" +then + XE_ADD_OBJS(getloadavg.o) + + dnl Used by getloadavg() - does not require root priveleges + AC_CHECK_LIB(kstat, kstat_open) + + dnl Another way to get the load average + AC_CHECK_LIB(kvm, kvm_read) +fi dnl If netdb.h does not declare h_errno, we must declare it by hand. AC_MSG_CHECKING(whether netdb declares h_errno) @@ -3197,8 +3425,7 @@ ], [ struct timeval time; - struct timezone dummy; - gettimeofday (&time, &dummy); + gettimeofday (&time, 0); ], [AC_MSG_RESULT(two)], [AC_MSG_RESULT(one) @@ -3272,12 +3499,24 @@ esac AC_MSG_RESULT($have_mmap) test "$have_mmap" = "yes" && AC_DEFINE(HAVE_MMAP) -AC_FUNC_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 @@ -3329,10 +3568,6 @@ dnl Autodetect native sound AC_CHECKING("for sound support") -case "$with_sound" in - native | both ) with_native_sound=yes;; - nas | no ) with_native_sound=no;; -esac test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes if test "$with_native_sound" != "no"; then @@ -3390,6 +3625,7 @@ for dir in "machine" "sys" "linux"; do AC_CHECK_HEADER(${dir}/soundcard.h, sound_found=yes + need_miscplay=yes XE_ADD_OBJS(linuxplay.o) [AC_DEFINE_UNQUOTED(SOUNDCARD_H_PATH, "${dir}/soundcard.h")] break) @@ -3399,25 +3635,55 @@ test "$sound_found" = "yes" && with_native_sound=yes fi -if test -z "$with_sound"; then - if test "$with_native_sound" = "yes" -o -n "$native_sound_lib"; then - with_sound=native - fi -fi - if test "$with_native_sound" = "yes"; then AC_DEFINE(HAVE_NATIVE_SOUND) test -n "$native_sound_lib" && XE_PREPEND($native_sound_lib, LIBS) fi -case "$with_sound" in both | nas ) - AC_DEFINE(HAVE_NAS_SOUND) - XE_ADD_OBJS(nas.o) - XE_PREPEND(-laudio, libs_x) - dnl If the nas library does not contain the error jump point, - dnl then we force safer behavior. - AC_EGREP_HEADER(AuXtErrorJump,audio/Xtutil.h,,[AC_DEFINE(NAS_NO_ERROR_JUMP)]) -esac +dnl NAS Sound support +if test "$with_nas_sound" != "no"; then + AC_CHECK_HEADER(audio/audiolib.h, [ + AC_CHECK_LIB(audio, AuOpenServer, have_nas_sound=yes)]) + if test "$have_nas_sound" = "yes"; then + with_nas_sound=yes + AC_DEFINE(HAVE_NAS_SOUND) + XE_ADD_OBJS(nas.o) + XE_PREPEND(-laudio, libs_x) + dnl If the nas library does not contain the error jump point, + dnl then we force safer behavior. + AC_EGREP_HEADER(AuXtErrorJump,audio/Xtutil.h,,[old_nas=yes; AC_DEFINE(NAS_NO_ERROR_JUMP)]) + else + test "$with_nas_sound" = "yes" && \ + XE_DIE("Required NAS sound support cannot be provided.") + with_nas_sound=no + fi +fi + +dnl ESD Sound support +if test "$with_esd_sound" != "no"; then + AC_CHECK_PROG(have_esd_config, esd-config, yes, no) + if test "$have_esd_config" = "yes"; then + save_c_switch_site="$c_switch_site" save_LIBS="$LIBS" + XE_APPEND(`esd-config --cflags`, c_switch_site) + XE_PREPEND(`esd-config --libs`, LIBS) + AC_CHECK_FUNC(esd_play_stream, + have_esd_sound=yes, + c_switch_site="$save_c_switch_site" LIBS="$save_LIBS") + fi + + if test "$have_esd_sound" = "yes"; then + with_esd_sound=yes + need_miscplay=yes + XE_ADD_OBJS(esd.o) + AC_DEFINE(HAVE_ESD_SOUND) + else + test "$with_esd_sound" = "yes" && \ + XE_DIE("Required ESD sound support cannot be provided.") + with_esd_sound=no + fi +fi + +test "$need_miscplay" = "yes" && XE_ADD_OBJS(miscplay.o) dnl --------------------- dnl TTY-dependent options @@ -3508,26 +3774,26 @@ dnl On FreeBSD, both DB and DBM are part of libc. dnl By default, we check for DBM support in libgdbm, then libc, then libdbm. -test "$with_database_gnudbm $with_database_dbm $with_database_berkdb" \ +test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \ != "no no no" && AC_CHECKING(for database support) dnl Check for ndbm.h, required for either kind of DBM support. -if test "$with_database_gnudbm $with_database_dbm" != "no no"; then +if test "$with_database_gdbm $with_database_dbm" != "no no"; then AC_CHECK_HEADER(ndbm.h, [:], [ - test "$with_database_gnudbm" = "yes" -o \ - "$with_database_dbm" = "yes" && \ + test "$with_database_gdbm" = "yes" -o \ + "$with_database_dbm" = "yes" && \ XE_DIE("Required DBM support cannot be provided.") - with_database_gnudbm=no with_database_dbm=no]) + with_database_gdbm=no with_database_dbm=no]) fi dnl Check for DBM support in libgdbm. -if test "$with_database_gnudbm" != "no"; then +if test "$with_database_gdbm" != "no"; then AC_CHECK_LIB(gdbm, dbm_open, [ - with_database_gnudbm=yes with_database_dbm=no libdbm=-lgdbm], [ - if test "$with_database_gnudbm" = "yes"; then + with_database_gdbm=yes with_database_dbm=no libdbm=-lgdbm], [ + if test "$with_database_gdbm" = "yes"; then XE_DIE("Required GNU DBM support cannot be provided.") fi - with_database_gnudbm=no]) + with_database_gdbm=no]) fi dnl Check for DBM support in libc and libdbm. @@ -3541,15 +3807,18 @@ dnl Tell make about the DBM support we detected. test -n "$libdbm" && XE_PREPEND("$libdbm", LIBS) -test "$with_database_gnudbm" = "yes" -o \ - "$with_database_dbm" = "yes" && \ +test "$with_database_gdbm" = "yes" -o \ + "$with_database_dbm" = "yes" && \ AC_DEFINE(HAVE_DBM) 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 + 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; @@ -3559,6 +3828,7 @@ typedef uint64_t u_int64_t; #endif #endif +#endif #include <$path> ],[], db_h_path="$path"; break) done @@ -3587,7 +3857,7 @@ fi fi -if test "$with_database_gnudbm $with_database_dbm $with_database_berkdb" \ +if test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \ != "no no no"; then AC_DEFINE(HAVE_DATABASE) XE_ADD_OBJS(database.o) @@ -3606,25 +3876,43 @@ fi dnl autodetect dll support -AC_CHECK_HEADERS(dlfcn.h, [have_dlfcn=yes - AC_DEFINE(HAVE_DLFCN_H)]) -test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(dl, dlopen, [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=dl; with_shlib=yes]) } -test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c, _dlopen, [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=; with_shlib=yes]) } -test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c, dlopen, [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=; with_shlib=yes]) } -test -z "$with_shlib" && { AC_CHECK_LIB(dld, shl_load, [ AC_DEFINE(HAVE_SHL_LOAD) DLL_LIB=dld; with_shlib=yes]) } -test -z "$with_shlib" && { AC_CHECK_LIB(dld, dld_init, [ AC_DEFINE(HAVE_DLD_INIT) DLL_LIB=dld; with_shlib=yes]) } -if test "$with_shlib" = "yes"; then - XE_SHLIB_STUFF +if test "$with_modules" != "no"; then + AC_CHECKING(for module support) + + dnl Find headers and libraries + AC_CHECK_HEADER(dlfcn.h, [ + AC_CHECK_LIB(dl, dlopen, [ have_dl=yes libdl=dl], [ + AC_CHECK_LIB(c, dlopen, [ have_dl=yes ])])]) + 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 + + if test -n "$have_dl"; then + dnl XE_SHLIB_STUFF (in aclocal.m4) defines $can_build_shared + XE_SHLIB_STUFF + fi + if test "$can_build_shared" = "yes"; then AC_DEFINE(HAVE_SHLIB) - XE_ADD_OBJS(sysdll.o) - XE_ADD_OBJS(emodules.o) + XE_ADD_OBJS(sysdll.o emodules.o) XE_APPEND(src, INSTALL_ARCH_DEP_SUBDIR) - test ! -z "$DLL_LIB" && XE_PREPEND(-l${DLL_LIB}, LIBS) + test -n "$libdl" && XE_PREPEND(-l${libdl}, LIBS) AC_CHECK_FUNCS(dlerror _dlerror) + with_modules=yes else - AC_MSG_WARN(disabling shared library support) - with_shlib=no + if test "$with_modules" = "yes"; then + XE_DIE("Required module support cannot be provided.") + else + AC_MSG_WARN("Module support cannot be provided.") + fi + with_modules=no fi fi @@ -3649,12 +3937,13 @@ echo "*** PANIC *** on your system. Don't do that." exit 1]) -dnl Process support (hardcoded) -dnl every system that supports this runs configure, the others don't - -dnl We're not ready for this yet. -AC_DEFINE(HAVE_UNIX_PROCESSES) -XE_ADD_OBJS(process-unix.o) +dnl Process support +if test "$win32_processes" = "yes"; then + XE_ADD_OBJS(process-nt.o) +else + AC_DEFINE(HAVE_UNIX_PROCESSES) + XE_ADD_OBJS(process-unix.o) +fi dnl -------------------------------- dnl Compute SUBST-itutable variables @@ -3711,15 +4000,32 @@ 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 " +$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 @@ -3740,6 +4046,8 @@ AC_SUBST(version) AC_SUBST(configuration) AC_SUBST(canonical) +AC_SUBST(inststaticdir) +AC_SUBST(instvardir) AC_SUBST(srcdir) AC_SUBST(bindir) AC_SUBST(datadir) @@ -3749,6 +4057,7 @@ AC_SUBST(mandir) AC_SUBST(prefix) +AC_SUBST(PREFIX_USER_DEFINED) dnl Yo, Stephen Bourne! I want to marry you! PREFIX=$prefix while true; do @@ -3760,6 +4069,7 @@ AC_SUBST(PREFIX) AC_SUBST(exec_prefix) +AC_SUBST(EXEC_PREFIX_USER_DEFINED) EXEC_PREFIX=$exec_prefix while true; do case "$EXEC_PREFIX" in @@ -3868,6 +4178,17 @@ done AC_SUBST(LOCKDIR) +AC_SUBST(docdir) +AC_SUBST(DOCDIR_USER_DEFINED) +DOCDIR=$docdir +while true; do + case "$DOCDIR" in + *\$* ) eval "DOCDIR=$DOCDIR" ;; + *) break ;; + esac +done +AC_SUBST(DOCDIR) + AC_SUBST(archlibdir) AC_SUBST(ARCHLIBDIR_USER_DEFINED) ARCHLIBDIR=$archlibdir @@ -3915,6 +4236,10 @@ : ${XEMACS_CC:=$CC} AC_SUBST(XEMACS_CC) +dnl The default is yes +if test "$with_prefix" = "yes"; then + AC_DEFINE(PREFIX_USER_DEFINED) +fi dnl The default is no if test "$with_site_lisp" = "no"; then @@ -3926,7 +4251,7 @@ fi XE_SPACE(ac_configure_args, $ac_configure_args) -AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "$canonical") +AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "$configuration") AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "$ac_configure_args") AC_DEFINE_UNQUOTED(config_machfile, "$machfile") AC_DEFINE_UNQUOTED(config_opsysfile, "$opsysfile") @@ -3946,8 +4271,6 @@ dnl so that the user gets immediate feedback on the results of the dnl autodetection. -test -n "$puresize" && AC_DEFINE_UNQUOTED(RAW_PURESIZE, $puresize) - if test "$GNU_MALLOC" = "yes"; then AC_DEFINE(GNU_MALLOC) elif test "$with_system_malloc" = "yes"; then AC_DEFINE(USE_SYSTEM_MALLOC) elif test "$with_debug_malloc" = "yes"; then AC_DEFINE(USE_DEBUG_MALLOC) @@ -3957,13 +4280,13 @@ 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 "$with_purify" = "yes" && AC_DEFINE(PURIFY) test "$with_quantify" = "yes" && AC_DEFINE(QUANTIFY) 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 "$pdump" = "yes" && AC_DEFINE(PDUMP) dnl ------------------------------- dnl Report on what we decided to do @@ -3980,8 +4303,15 @@ echo "$0 $quoted_arguments" ) > Installation -xemacs_betaname="" -test ! -z "${emacs_beta_version}" && xemacs_betaname="-b${emacs_beta_version}" +if test ! -z ${emacs_beta_version} ; then + if test -z "${emacs_is_beta}" ; then + xemacs_betaname=".${emacs_beta_version}" + else + xemacs_betaname="-b${emacs_beta_version}" + fi +else + xemacs_betaname="" +fi dnl Start stdout redirection to '| tee -a Installation' ( @@ -4013,6 +4343,10 @@ if test -n "$runpath"; then echo " Runtime library search path: $runpath" fi +if test "$have_xaw" = "yes"; then + echo " Athena library to link: $athena_lib" + echo " Athena header include path: $athena_h_path" +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." @@ -4050,20 +4384,17 @@ 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_xface" = yes && echo " Compiling in support for X-Face message headers." -case "$with_sound" in - nas ) echo " Compiling in network sound (NAS) support." ;; - native ) echo " Compiling in native sound support." ;; - both ) echo " Compiling in both network and native sound support." ;; -esac -test "$old_nas" = yes && echo " nas library lacks error trapping, will play synchronously." + +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)." test "$with_database_berkdb" = yes && echo " Compiling in support for Berkeley DB." test "$with_database_dbm" = yes && echo " Compiling in support for DBM." -test "$with_database_gnudbm" = yes && echo " Compiling in support for GNU DBM." - -test "$with_umich_ldap" = yes && echo " Compiling in support for LDAP (UMich libs)." -test "$with_ns_ldap" = yes && echo " Compiling in support for LDAP (Netscape SDK)." -test "$with_ldap" = yes -a "$with_umich_ldap" = no -a "$with_ns_ldap" = no && echo " Compiling in support for LDAP (Generic)." +test "$with_database_gdbm" = yes && echo " Compiling in support for GNU DBM." + +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)." @@ -4086,19 +4417,25 @@ 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_session" != no && echo " Compiling in support for proper session-management." +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." ;; + msw ) echo " Using MS-Windows native widgets." ;; esac case "$with_dialogs" in motif ) @@ -4111,9 +4448,9 @@ 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_shlib" = "yes" && echo " Compiling in DLL support." +test "$with_modules" = "yes" && echo " Compiling in dynamic shared object module support." test "$with_clash_detection" = yes && \ echo " Clash detection will use \"$lockdir\" for locking files." echo " movemail will use \"$mail_locking\" for locking mail spool files." @@ -4121,11 +4458,9 @@ 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 "$use_minimal_tagbits" = yes && echo " Using Lisp_Objects with minimal tagbits." -test "$use_indexed_lrecord_implementation" = yes && echo " Using indexed lrecord implementation." -test "$debug" = yes && echo " Compiling in extra code for debugging." -test "$memory_usage_stats" = yes && echo " Compiling in code for checking XEmacs memory usage." -test "$usage_tracking" = yes && echo " Compiling with usage tracking active (Sun internal)." +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 echo " WARNING: ---------------------------------------------------------" @@ -4139,11 +4474,6 @@ dnl echo "The above configure report is appended to \"Installation\" file." echo "" -dnl Generate Installation.el -echo '(setq Installation-string "' > Installation.el -sed 's/"/\\"/g' Installation >> Installation.el -echo '")' >> Installation.el - dnl ----------------------------------- dnl Now generate config.h and Makefiles dnl ----------------------------------- @@ -4161,12 +4491,10 @@ for file in $internal_makefile_list; do test "$file" = src/Makefile.in && \ file="src/Makefile.in:src/Makefile.in.in:src/depend" - ac_output_files="${ac_output_files+$ac_output_files }$file" + XE_APPEND($file, ac_output_files) done ac_output_files="$ac_output_files src/paths.h lib-src/config.values" -if test "$with_shlib" = "yes"; then - ac_output_files="$ac_output_files lib-src/ellcc.h" -fi +test "$with_modules" = "yes" && XE_APPEND(lib-src/ellcc.h, ac_output_files) AC_OUTPUT($ac_output_files, [for dir in . $MAKE_SUBDIR; do