X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=configure.in;h=c8950e71871a9dcde18a298363475f54d18b855c;hb=refs%2Fheads%2Futf-2000;hp=fc5e3c6566b9f35788c4843a5f0966aec7453cbb;hpb=69bf015d5ff3785b24464557bd1ee72980fd9576;p=chise%2Fxemacs-chise.git- diff --git a/configure.in b/configure.in index fc5e3c6..c8950e7 100644 --- a/configure.in +++ b/configure.in @@ -16,6 +16,7 @@ define([AC_INIT_NOTICE], ### To rebuild it, execute the command ### autoconf ### in the this directory. You must have autoconf version 2.13 or later. +### Note: this script has not yet been ported to autoconf version 2.5x. ### This file is part of XEmacs. @@ -56,7 +57,7 @@ dnl Redefine some standard autoconf macros dnl here is how XEmacs is different: dnl - no cache file dnl - non-standard options -dnl - suport for extra-verbosity +dnl - support for extra-verbosity dnl - ordinary libs are handled separately from X libs (might be a mistake) dnl - various random kludges (e.g. -with-dnet=no) @@ -125,7 +126,7 @@ EOF dnl redefine AC_CHECK_LIB in accordance with our own value of ac_link dnl Add in extra kludgy check to support with_dnet=no -dnl Add in extra LDFLAGS arg, which PRECEDE libs +dnl Add in extra LDFLAGS arg, which PRECEDES libs dnl Support --with-dnet=no dnl AC_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND @@ -333,13 +334,13 @@ infodir='${datadir}/${instvardir}/info' infopath='' install_pp='' lispdir='${datadir}/${instvardir}/lisp' -moduledir='${datadir}/${instvardir}/${configuration}/modules' +moduledir='${libdir}/${instvardir}/${configuration}/modules' sitelispdir='${datadir}/${inststaticdir}/site-lisp' -sitemoduledir='${datadir}/${inststaticdir}/site-modules' +sitemoduledir='${libdir}/${inststaticdir}/site-modules' pkgdir='${datadir}/${instvardir}/lisp' package_path='' etcdir='${datadir}/${instvardir}/etc' -archlibdir='${datadir}/${instvardir}/${configuration}' +archlibdir='${libdir}/${instvardir}/${configuration}' docdir='${archlibdir}' with_netinstall="no" with_prefix='yes' @@ -358,6 +359,8 @@ with_msw='' rel_alloc='default' with_system_malloc='default' with_dlmalloc='default' +dnl ESD is associated with crashes and lockups due to incorrect signal use. +with_esd_sound='no' native_sound_lib='' dnl These should be set to the empty string when we want gtk / gnome to dnl be auto-detected instead of manually specified. @@ -372,9 +375,12 @@ 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) +with_ipv6_cname="no" dnl ------------------ dnl Options Processing @@ -502,7 +508,8 @@ while test $# != 0; do with_hesiod | \ with_dnet | \ with_infodock | \ - with_netinstall | \ + with_netinstall | \ + with_ipv6_cname | \ external_widget | \ verbose | \ extra_verbose | \ @@ -618,7 +625,8 @@ while test $# != 0; do 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."]) +Option \`all' or \`none' must be first in the list. +The default is to autodetect native and NAS sound support."]) elif test -n "$new_sdefault" ; then with_native_sound=$new_sdefault with_nas_sound=$new_sdefault @@ -738,7 +746,7 @@ The default is to autodetect all sound support."]) dnl Has the user specified one of the path options? prefix | exec_prefix | bindir | datadir | statedir | libdir | \ mandir | infodir | infopath | lispdir | etcdir | pkgdir | \ - archlibdir | docdir | package_path ) + archlibdir | docdir | package_path | moduledir ) dnl If the value was omitted, get it from the next argument. if test "$valomitted" = "yes"; then if test "$#" = 0; then @@ -785,14 +793,16 @@ The default is to autodetect all sound support."]) "with_widgets" ) case "$val" in l | lu | luc | luci | lucid ) val=lucid ;; - m | mo | mot | moti | motif ) val=motif ;; + mo | mot | moti | motif ) val=motif ;; a | at | ath | athe | athen | athena ) val=athena ;; n | no | non | none ) val=no ;; y | ye | yes ) val=yes ;; + dnl Explicit --with-widgets on command line means yes. + "") val=yes ;; g | gt | gtk ) val=gtk ;; - m | ms | msw ) val=msw ;; + ms | msw ) val=msw ;; * ) USAGE_ERROR(["The \`--$optname' option must have one of these values: - \`gtk\', \`lucid', \`motif', \`athena', \`yes', or \`no'."]) ;; + \`gtk', \`lucid', \`motif', \`athena', \`yes', or \`no'."]) ;; esac eval "$opt=\"$val\"" ;; @@ -1207,6 +1217,12 @@ case "$canonical" in dnl Cubix QBx/386 i[[3-9]]86-cubix-sysv* ) machine=intel386 opsys=usg5-3 ;; + dnl Darwin, a.k.a. MacOS X (based on Mach and Freebsd) + *-*-darwin*) + opsys=darwin + RANLIB="ranlib -c" dnl Avoids a link error with lwlib-config.c + ;; + dnl Data General AViiON Machines i586-dg-dgux*R4* | i586-dg-dgux5.4.4* ) machine=aviion opsys=dgux5-4r4 ;; m88k-dg-dgux5.4R3* | m88k-dg-dgux5.4.3* ) opsys=dgux5-4r3 ;; @@ -1559,6 +1575,17 @@ 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 + *) pdump=no ;; + esac +fi if test -z "$dynamic"; then case "$opsys" in @@ -1894,9 +1921,15 @@ if test "$cflags_specified" = "no"; then 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 -Winline -Wmissing-prototypes -Wshadow" + 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 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. + if test "$xemacs_compiler" != "g++"; then + CFLAGS="$CFLAGS -Wshadow" + fi dnl glibc is intentionally not `-Wpointer-arith'-clean. dnl Ulrich Drepper has rejected patches to fix the glibc header files. test "$have_glibc" != "yes" && CFLAGS="$CFLAGS -Wpointer-arith" @@ -1982,6 +2015,21 @@ esac AC_MSG_RESULT(no) fi +dnl GNU ld now defaults to combreloc, which screws up unexec, but not pdump. +dnl Note that it's OK if the GNU style long option causes non-GNU ld to barf +dnl a usage message, that's often good enough. Please report it, though. +dnl #### Should make this Solaris-friendly. +dnl Link with -z nocombreloc for now. +if test "$pdump" != "yes"; then + AC_MSG_CHECKING(for \"-z nocombreloc\" linker flag) + case "`ld --help 2>&1`" in + *-z\ nocombreloc* ) AC_MSG_RESULT(yes) + XE_PREPEND(-z nocombreloc, ld_switch_site) ;; + *) AC_MSG_RESULT(no) ;; + esac +fi + + dnl Inform compiler that certain flags are meant for the linker dnl XE_PROTECT_LINKER_FLAGS(shell_var) define([XE_PROTECT_LINKER_FLAGS], [ @@ -1999,6 +2047,7 @@ if test "$GCC" = "yes"; then fi])dnl XE_PROTECT_LINKER_FLAGS(ld_switch_system) XE_PROTECT_LINKER_FLAGS(ld_switch_machine) +XE_PROTECT_LINKER_FLAGS(ld_switch_site) XE_PROTECT_LINKER_FLAGS(LDFLAGS) XE_PROTECT_LINKER_FLAGS(ld_call_shared) @@ -2146,7 +2195,7 @@ dnl #### Unfortunately, there are horrible libc4 and libc5 libraries dnl listed in /etc/ld.so.conf on some systems, and including them on dnl the link path leads to linking in utterly broken libc's. dnl There are many clever ways of approaching this problem, -dnl but finding out that actually works... +dnl but finding one that actually works... dnl if test -z "$LD_RUN_PATH" -a -r "/etc/ld.so.conf"; then dnl for dir in `cat /etc/ld.so.conf`; do @@ -2383,10 +2432,12 @@ AC_CHECK_TYPE(ssize_t, int) dnl check for Unix98 socklen_t AC_MSG_CHECKING(for socklen_t) -AC_TRY_COMPILE([#include +AC_TRY_COMPILE([#include +#include socklen_t x; ],[],[AC_MSG_RESULT(yes)],[ -AC_TRY_COMPILE([#include +AC_TRY_COMPILE([#include +#include int accept (int, struct sockaddr *, size_t *); ],[],[ AC_MSG_RESULT(size_t) @@ -2484,6 +2535,10 @@ case "$opsys" in decosf*) c_switch_site="$c_switch_site -threads" ;; esac +dnl ---------------------------------------------------------------- +dnl Miscellaneous flags +dnl ---------------------------------------------------------------- + AC_MSG_CHECKING(whether the -xildoff compiler flag is required) if ${CC-cc} '-###' -xildon no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; @@ -2576,6 +2631,9 @@ if test "${GTK_CONFIG}" != "no"; then AC_MSG_CHECKING(gtk cflags) GTK_CFLAGS=`${GTK_CONFIG} --cflags` + if test "$GCC" = "yes"; then + GTK_CFLAGS="${GTK_CFLAGS} -Wno-shadow" + fi XE_APPEND(${GTK_CFLAGS}, c_switch_gtk) AC_MSG_RESULT(${GTK_CFLAGS}) @@ -2604,8 +2662,10 @@ if test "${GTK_CONFIG}" != "no"; then dnl Check for libglade support (it rocks) OLD_CFLAGS="${CFLAGS}" + OLD_CPPFLAGS="${CPPFLAGS}" OLD_LDFLAGS="${LDFLAGS}" CFLAGS="${GTK_CFLAGS} ${CFLAGS}" + CPPFLAGS="${GTK_CFLAGS} ${CFLAGS}" LDFLAGS="${LDFLAGS} ${GTK_LIBS}" AC_CHECK_HEADERS(glade/glade.h glade.h) AC_CHECK_LIB(xml, main, XE_PREPEND(-lxml, libs_gtk)) @@ -2616,6 +2676,7 @@ if test "${GTK_CONFIG}" != "no"; then AC_DEFINE(LIBGLADE_XML_TXTDOMAIN,1)], [AC_MSG_RESULT(no)]) CFLAGS="${OLD_CFLAGS}" + CPPFLAGS="${OLD_CPPFLAGS}" LDFLAGS="${OLD_LDFLAGS}" fi @@ -2899,7 +2960,7 @@ if test "$with_msw" != "no"; then dnl check for our special version of select AC_TRY_RUN([#include int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }], - [AC_DEFINE(HAVE_MSG_SELECT)]) + [need_event_unixoid=yes; AC_DEFINE(HAVE_MSG_SELECT)]) with_file_coding=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 @@ -3164,9 +3225,38 @@ dnl ---------------------- if test "$window_system" != "none"; then AC_CHECKING(for graphics libraries) + dnl add special code to handle xpm-nox on Cygwin (csw) + dnl -- should only happen if CYGWIN && WITH_XPM && WITH_MSW && !WITH_X + libpath_xpm= + incpath_xpm= + case "$opsys" in + cygwin*) + cygwin_top=`eval "gcc -print-file-name=libc.a"` ; + cygwin_top=`eval "dirname ${cygwin_top}"`; + cygwin_top="${cygwin_top}/.."; + case "$window_system" in + dnl use "standard" search pattern + x11) ;; + dnl hardcode "standard" non-X11 xpm lib/inc dirs + msw) libpath_xpm="-L${cygwin_top}/lib/noX" + incpath_xpm="-I${cygwin_top}/include/noX" + ;; + dnl not supported on cygwin (yet?) + gtk) ;; + dnl probably not reached... + none) ;; + dnl ditto + *) ;; + esac + ;; + dnl use "standard" search pattern for all other OS's + *) ;; + esac dnl Autodetect Xpm xpm_problem="" if test -z "$with_xpm"; then + XE_PREPEND("$incpath_xpm", CFLAGS) + XE_PREPEND("$libpath_xpm", LDFLAGS) AC_MSG_CHECKING(for Xpm - no older than 3.4f) xe_check_libs=-lXpm AC_TRY_RUN([#define XPM_NUMBERS @@ -3202,7 +3292,9 @@ if test "$window_system" != "none"; then dnl #### then it will succeed if FOR_MSW is defined, dnl #### but doesn't actually verify this assumption. AC_DEFINE(HAVE_XPM) + XE_PREPEND("$libpath_xpm", LDFLAGS) XE_PREPEND(-lXpm, libs_x) + XE_PREPEND("$incpath_xpm", CFLAGS) AC_MSG_CHECKING(for \"FOR_MSW\" xpm) xe_check_libs=-lXpm AC_TRY_LINK(, [XpmCreatePixmapFromData()], @@ -3319,9 +3411,18 @@ dnl X-Specific Graphics libraries dnl ---------------------- 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 AC_CHECKING(for the Athena widgets) dnl What in heck did the user actually want? @@ -3418,6 +3519,11 @@ if test "$with_x11" = "yes"; then have_xaw=no fi +else + have_xaw=no +fi dnl "$with_x11" = "yes" -a "detect_athena" = "yes" + +if test "$with_x11" = "yes"; then dnl autodetect Motif - but only add to libs_x later (if necessary) AC_CHECK_HEADER(Xm/Xm.h, [AC_CHECK_LIB(Xm, XmStringFree, have_motif=yes, have_motif=no)], @@ -3719,8 +3825,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 ---------------------------------------------------------------- @@ -4171,10 +4291,17 @@ if test "$with_tty" = "yes" ; then done fi else dnl "$have_terminfo" = "no" && "with_ncurses" = "no" - XE_ADD_OBJS(tparam.o) + if test -n "$libs_termcap" -a "$opsys" = "openbsd"; then + dnl We need to check if tgoto does not exist in termcap yet + dnl because on OpenBSD libtermcap is another name for libcurses + dnl which provides the same tgoto as ncurses + AC_CHECK_LIB(termcap, tgoto, , XE_ADD_OBJS(tparam.o)) + else + XE_ADD_OBJS(tparam.o) + fi dnl The HP-UX curses library seems to have a badly broken version of select(2) dnl that makes "poll: interrupted system call" messages to appear and - dnl Emacs suprocesses to hang (e.g. TeX compilation w/ AUCTeX) */ + dnl Emacs subprocesses to hang (e.g. TeX compilation w/ AUCTeX) */ case "$opsys" in *-hp-hpux* ) libs_termcap="-ltermcap" ;; esac if test -n "$libs_termcap"; then XE_PREPEND($libs_termcap, LIBS) @@ -4207,7 +4334,9 @@ else dnl "$with_tty" = "no" fi dnl with_tty dnl Do we need event-unixoid.o ? -test "$with_x11" = "yes" -o "$with_tty" = "yes" && XE_ADD_OBJS(event-unixoid.o) +dnl This is needed for X, or for TTY, or for MSWIN w/Cygwin select() +dnl [but not Mingw MSWIN] +test "$with_x11" = "yes" -o "$with_tty" = "yes" -o "$need_event_unixoid" = "yes" && XE_ADD_OBJS(event-unixoid.o) dnl Database support dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support. @@ -4385,19 +4514,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 @@ -4738,6 +4873,7 @@ 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) +test "$with_ipv6_cname" = "yes" && AC_DEFINE(IPV6_CANONICALIZE) dnl ------------------------------- dnl Report on what we decided to do @@ -4799,6 +4935,10 @@ fi echo " Compiler: $CC $CFLAGS" echo " Relocating allocator for buffers: $rel_alloc" echo " GNU version of malloc: ${GNU_MALLOC}${GNU_MALLOC_reason}" +case "$ld_switch_site" in + *nocombreloc*) echo " Linking with \`-z nocombreloc'. + - Consider configuring with --pdump." ;; +esac echo " Window System:" @@ -4946,12 +5086,19 @@ test -n "$mail_locking" && echo " Compiling in support for \"$mail_locking\" ma echo " Other Features:" +test "$with_ipv6_cname" = no && echo " Inhibiting IPv6 canonicalization at startup." test "$with_tooltalk" = yes && echo " Compiling in support for ToolTalk." test "$with_workshop" = yes && echo " Compiling in support for Sun WorkShop." test "$with_socks" = yes && echo " Compiling in support for SOCKS." test "$with_dnet" = yes && echo " Compiling in support for DNET." test "$with_modules" = "yes" && echo " Compiling in support for dynamic shared object modules." -test "$use_union_type" = yes && echo " Using the union type for Lisp_Objects." +if test "$use_union_type" = yes; then + echo " WARNING: ---------------------------------------------------------" + echo " Using the union type for Lisp_Objects." + echo " Union type has been implicated in hard-to-debug runtime crashes." + echo " Do NOT use this build of XEmacs for ordinary work. See PROBLEMS." + echo " WARNING: ---------------------------------------------------------" +fi test "$pdump" = yes && echo " Using the new portable dumper." test "$debug" = yes && echo " Compiling in support for extra debugging code." test "$usage_tracking" = yes && echo " Compiling in support for active usage tracking (Sun internal)."