X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/1d6cc9a852b4ac1e8c943af057d8fe442faca34c..a9da35e0e5e9f3adc7ca3d637dbf257ff251fc6e:/configure.in diff --git a/configure.in b/configure.in index 8f80608f4a..4c64970fe0 100644 --- a/configure.in +++ b/configure.in @@ -3,7 +3,7 @@ dnl To rebuild the `configure' script from this, execute the command dnl autoconf dnl in the directory containing this script. dnl -dnl Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2003 +dnl Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 dnl Free Software Foundation, Inc. dnl dnl This file is part of GNU Emacs. @@ -20,10 +20,10 @@ dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with GNU Emacs; see the file COPYING. If not, write to the -dnl Free Software Foundation, Inc., 59 Temple Place - Suite 330, -dnl Boston, MA 02111-1307, USA. +dnl Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +dnl Boston, MA 02110-1301, USA. -AC_PREREQ(2.54)dnl +AC_PREREQ(2.61)dnl AC_INIT(src/lisp.h) AC_CONFIG_HEADER(src/config.h:src/config.in) @@ -33,8 +33,8 @@ AC_ARG_PROGRAM lispdir='${datadir}/emacs/${version}/lisp' locallisppath='${datadir}/emacs/${version}/site-lisp:'\ -'${datadir}/emacs/site-lisp:${datadir}/emacs/${version}/leim' -lisppath='${locallisppath}:${lispdir}' +'${datadir}/emacs/site-lisp' +lisppath='${locallisppath}:${lispdir}:${datadir}/emacs/${version}/leim' etcdir='${datadir}/emacs/${version}/etc' archlibdir='${libexecdir}/emacs/${version}/${configuration}' docdir='${datadir}/emacs/${version}/etc' @@ -54,7 +54,9 @@ AC_DEFINE(MAIL_USE_POP)) AH_TEMPLATE(MAIL_USE_POP, [Define to support POP mail retrieval.])dnl AC_ARG_WITH(kerberos, [ --with-kerberos support Kerberos-authenticated POP], -[AC_DEFINE(KERBEROS)]) +[if test "$withval" = yes; then + AC_DEFINE(KERBEROS) +fi]) AH_TEMPLATE(KERBEROS, [Define to support Kerberos-authenticated POP mail retrieval.])dnl AC_ARG_WITH(kerberos5, @@ -64,11 +66,13 @@ AC_ARG_WITH(kerberos5, with_kerberos=yes AC_DEFINE(KERBEROS) fi -fi -AC_DEFINE(KERBEROS5, 1, [Define to use Kerberos 5 instead of Kerberos 4.])]) + AC_DEFINE(KERBEROS5, 1, [Define to use Kerberos 5 instead of Kerberos 4.]) +fi]) AC_ARG_WITH(hesiod, [ --with-hesiod support Hesiod to get the POP server host], -[AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.])]) +[if test "$withval" = yes; then + AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.]) +fi]) AC_ARG_WITH(sound, [ --without-sound don't compile with sound support]) @@ -125,6 +129,11 @@ AC_ARG_ENABLE(carbon-app, specify install directory for Emacs.app on Mac OS X]], [ carbon_appdir_x=${enableval}]) +AC_ARG_ENABLE(asserts, +[ --enable-asserts compile code with asserts enabled], + USE_XASSERTS=$enableval, + USE_XASSERTS=no) + AC_ARG_ENABLE(maintainer-mode, [ --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer], @@ -137,6 +146,16 @@ else fi AC_SUBST(MAINT) +AC_ARG_ENABLE(locallisppath, +[ --enable-locallisppath=PATH + directories Emacs should search for lisp files + specific to this site], +if test "${enableval}" = "no"; then + locallisppath= +elif test "${enableval}" != "yes"; then + locallisppath=${enableval} +fi) + #### Make srcdir absolute, if it isn't already. It's important to #### avoid running the path through pwd unnecessarily, since pwd can #### give you automounter prefixes, which can go away. We do all this @@ -170,15 +189,6 @@ if test `pwd` != `(cd ${srcdir} && pwd)` \ use GNU make. If you do not have GNU make, then you must now do `make distclean' in ${srcdir}, and then run $0 again.]]) - -[extrasub='/^VPATH[ ]*=/c\ -vpath %.c $(srcdir)\ -vpath %.h $(srcdir)\ -vpath %.y $(srcdir)\ -vpath %.l $(srcdir)\ -vpath %.s $(srcdir)\ -vpath %.in $(srcdir)\ -vpath %.texi $(srcdir)'] fi #### Given the configuration name, set machfile and opsysfile to the @@ -231,7 +241,11 @@ case "${canonical}" in opsys=freebsd case "${canonical}" in alpha*-*-freebsd*) machine=alpha ;; + ia64-*-freebsd*) machine=ia64 ;; + sparc64-*-freebsd*) machine=sparc ;; + powerpc-*-freebsd*) machine=macppc ;; i[3456]86-*-freebsd*) machine=intel386 ;; + amd64-*-freebsd*|x86_64-*-freebsd*) machine=amdx86-64 ;; esac ;; @@ -250,7 +264,6 @@ dnl see the `changequote' comment above. m68k-*-netbsd*) # This is somewhat bogus. machine=hp9000s300 ;; - powerpc-apple-netbsd*) machine=macppc ;; mips-*-netbsd*) machine=pmax ;; mipsel-*-netbsd*) machine=pmax ;; mipseb-*-netbsd*) machine=pmax ;; @@ -259,6 +272,9 @@ dnl see the `changequote' comment above. sparc*-*-netbsd*) machine=sparc ;; vax-*-netbsd*) machine=vax ;; arm-*-netbsd*) machine=arm ;; + x86_64-*-netbsd*) machine=amdx86-64 ;; + hppa-*-netbsd*) machine=hp800 ;; + shle-*-netbsd*) machine=sh3el ;; esac ;; @@ -267,12 +283,26 @@ dnl see the `changequote' comment above. opsys=openbsd case "${canonical}" in alpha*-*-openbsd*) machine=alpha ;; - i386-*-openbsd*) machine=intel386 ;; - m68k-*-openbsd*) machine=hp9000s300 ;; - mipsel-*-openbsd*) machine=pmax ;; - ns32k-*-openbsd*) machine=ns32000 ;; - sparc-*-openbsd*) machine=sparc ;; - vax-*-openbsd*) machine=vax ;; + arm-*-openbsd*) machine=arm ;; + hppa-*-openbsd*) machine=hp9000s300 ;; + i386-*-openbsd*) machine=intel386 ;; + m68k-*-openbsd*) machine=hp9000s300 ;; + m88k-*-openbsd*) machine=aviion ;; + mips64-*-openbsd*) machine=mips64 ;; + powerpc-*-openbsd*) machine=macppc ;; + sh-*-openbsd*) machine=sh3el ;; + sparc*-*-openbsd*) machine=sparc ;; + vax-*-openbsd*) machine=vax ;; + x86_64-*-openbsd*) machine=amdx86-64 ;; + esac + ;; + + ## LynxOS ports + *-*-lynxos* ) + opsys=lynxos + case "${canonical}" in + i[3456]86-*-lynxos*) machine=intel386 ;; + powerpc-*-lynxos*) machine=powerpc ;; esac ;; @@ -341,11 +371,6 @@ dnl see the `changequote' comment above. machine=arm opsys=gnu-linux ;; - ppc-*-linux | \ - powerpc-*-linux* ) - machine=macppc opsys=gnu-linux - ;; - ## Altos 3068 m68*-altos-sysv* ) machine=altos opsys=usg5-2 @@ -361,6 +386,24 @@ dnl see the `changequote' comment above. machine=apollo opsys=bsd4-3 ;; + ## Apple Darwin / Mac OS X + *-apple-darwin* ) + case "${canonical}" in + i[3456]86-* ) machine=intel386 ;; + powerpc-* ) machine=powermac ;; + * ) unported=yes ;; + esac + opsys=darwin + # Define CPP as follows to make autoconf work correctly. + CPP="${CC-cc} -E -no-cpp-precomp" + # Use fink packages if available. + if test -d /sw/include && test -d /sw/lib; then + GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib" + CPP="${CPP} ${GCC_TEST_OPTIONS}" + NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS} + fi + ;; + ## AT&T 3b2, 3b5, 3b15, 3b20 we32k-att-sysv* ) machine=att3b opsys=usg5-2-2 @@ -600,6 +643,7 @@ dnl see the `changequote' comment above. ;; hppa*-hp-hpux1[1-9]* ) machine=hp800 opsys=hpux11 + CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS" ;; hppa*-*-linux-gnu* ) @@ -643,6 +687,9 @@ dnl see the `changequote' comment above. s390-*-linux-gnu* ) machine=ibms390 opsys=gnu-linux ;; + s390x-*-linux-gnu* ) + machine=ibms390x opsys=gnu-linux + ;; rs6000-ibm-aix3.1* | powerpc-ibm-aix3.1* ) machine=ibmrs6000 opsys=aix3-1 ;; @@ -655,6 +702,9 @@ dnl see the `changequote' comment above. rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2* ) machine=ibmrs6000 opsys=aix4-2 ;; + rs6000-ibm-aix4.3* | powerpc-ibm-aix4.3* ) + machine=ibmrs6000 opsys=aix4-2 + ;; rs6000-ibm-aix5* | powerpc-ibm-aix5* ) machine=ibmrs6000 opsys=aix4-2 ;; @@ -932,6 +982,7 @@ dnl see the `changequote' comment above. m68* ) machine=sun3 ;; i[3456]86-sun-sunos[34]* ) machine=sun386 ;; i[3456]86-*-* ) machine=intel386 ;; + amd64-*-*|x86_64-*-*) machine=amdx86-64 ;; powerpcle* ) machine=powerpcle ;; powerpc* | rs6000* ) machine=ibmrs6000 ;; sparc* ) machine=sparc ;; @@ -979,7 +1030,14 @@ dnl see the `changequote' comment above. ;; *-sunos5* | *-solaris* ) opsys=sol2-6 - NON_GNU_CPP=/usr/ccs/lib/cpp +## FIXME: make this into a proper fix that checks the compiler type, +## rather than relying on path. Or is /usr/ccs/lib/cpp a bad default now? + if [ "x$CC" = x/opt/SUNWspro/bin/cc ]; then + ## -Xs prevents spurious whitespace. + NON_GNU_CPP="/opt/SUNWspro/bin/cc -E -Xs" + else + NON_GNU_CPP=/usr/ccs/lib/cpp + fi ;; * ) opsys=bsd4-2 ;; esac @@ -1079,7 +1137,9 @@ dnl see the `changequote' comment above. machine=intel386 case "${canonical}" in *-cygwin ) opsys=cygwin ;; - *-lynxos* ) opsys=lynxos ;; + *-darwin* ) opsys=darwin + CPP="${CC-cc} -E -no-cpp-precomp" + ;; *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;; *-isc2.2* ) opsys=isc2-2 ;; *-isc4.0* ) opsys=isc4-0 ;; @@ -1130,24 +1190,16 @@ dnl see the `changequote' comment above. machine=f301 opsys=uxpv ;; - ## Darwin / Mac OS X - powerpc-apple-darwin* ) - machine=powermac opsys=darwin - # Define CPP as follows to make autoconf work correctly. - CPP="${CC-cc} -E -no-cpp-precomp" - # Use fink packages if available. - if test -d /sw/include && test -d /sw/lib; then - GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib" - CPP="${CPP} ${GCC_TEST_OPTIONS}" - NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS} - fi - ;; - ## AMD x86-64 Linux-based GNU system x86_64-*-linux-gnu* ) machine=amdx86-64 opsys=gnu-linux ;; + ## Tensilica Xtensa Linux-based GNU system + xtensa-*-linux-gnu* ) + machine=xtensa opsys=gnu-linux + ;; + * ) unported=yes ;; @@ -1248,6 +1300,23 @@ then CC="$CC $NON_GCC_TEST_OPTIONS" fi +dnl checks for Unix variants +AC_AIX +AC_GNU_SOURCE + +### Use -Wno-pointer-sign if the compiler supports it +AC_MSG_CHECKING([whether gcc understands -Wno-pointer-sign]) +SAVE_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -Wno-pointer-sign" +AC_TRY_COMPILE([], [], has_option=yes, has_option=no,) +if test $has_option = yes; then + C_WARNINGS_SWITCH="-Wno-pointer-sign $C_WARNINGS_SWITCH" +fi +AC_MSG_RESULT($has_option) +CFLAGS="$SAVE_CFLAGS" +unset has_option +unset SAVE_CFLAGS + #### Some other nice autoconf tests. dnl checks for programs @@ -1260,6 +1329,8 @@ fi AC_PATH_PROG(INSTALL_INFO, install-info) AC_PATH_PROG(INSTALL_INFO, install-info,, /usr/sbin) AC_PATH_PROG(INSTALL_INFO, install-info,:, /sbin) +dnl Don't use GZIP, which is used by gzip for additional parameters. +AC_PATH_PROG(GZIP_PROG, gzip) dnl Add our options to ac_link now, after it is set up. @@ -1276,18 +1347,22 @@ fi dnl We need -znocombreloc if we're using a relatively recent GNU ld. dnl If we can link with the flag, it shouldn't do any harm anyhow. dnl (Don't use `-z nocombreloc' as -z takes no arg on Irix.) +dnl Treat GCC specially since it just gives a non-fatal `unrecognized option' +dnl if not built to support GNU ld. + late_LDFLAGS=$LDFLAGS -LDFLAGS="$LDFLAGS -znocombreloc" +if test "$GCC" = yes; then + LDFLAGS="$LDFLAGS -Wl,-znocombreloc" +else + LDFLAGS="$LDFLAGS -znocombreloc" +fi -AC_MSG_CHECKING([For -znocombreloc]) +AC_MSG_CHECKING([for -znocombreloc]) AC_LINK_IFELSE([main(){return 0;}], [AC_MSG_RESULT(yes)], LDFLAGS=$late_LDFLAGS [AC_MSG_RESULT(no)]) -dnl checks for Unix variants -AC_AIX - #### Extract some information from the operating system and machine files. AC_CHECKING([the machine- and system-dependent files to find out @@ -1371,6 +1446,10 @@ configure___ use_mmap_for_buffers=no #endif #endif +#ifndef C_WARNINGS_SWITCH +#define C_WARNINGS_SWITCH ${C_WARNINGS_SWITCH} +#endif + #ifndef LD_SWITCH_MACHINE #define LD_SWITCH_MACHINE #endif @@ -1399,7 +1478,7 @@ configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}' /* Get the CFLAGS for real compilation. */ #ifdef __GNUC__ -configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}' +configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH C_WARNINGS_SWITCH '${SPECIFIED_CFLAGS}' #else configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}' #endif @@ -1433,24 +1512,137 @@ fi dnl For AC_FUNC_GETLOADAVG, at least: AC_CONFIG_LIBOBJ_DIR(src) -AC_GNU_SOURCE - dnl Do this early because it can frob feature test macros for Unix-98 &c. AC_SYS_LARGEFILE + +### The standard library on x86-64 GNU/Linux distributions can +### be located in either /usr/lib64 or /usr/lib. +case "${canonical}" in + x86_64-*-linux-gnu* ) + if test -d /usr/lib64; then + AC_DEFINE(HAVE_X86_64_LIB64_DIR, 1, + [Define to 1 if the file /usr/lib64 exists.]) +fi +esac + +dnl This function defintion taken from Gnome 2.0 +dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) +dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page +dnl also defines GSTUFF_PKG_ERRORS on error +AC_DEFUN([PKG_CHECK_MODULES], [ + succeeded=no + + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + + if test "$PKG_CONFIG" = "no" ; then + ifelse([$4], , [AC_MSG_ERROR([ + *** The pkg-config script could not be found. Make sure it is in your path, or give the full path to pkg-config with the PKG_CONFIG environment variable or --with-pkg-config-prog. Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config.])], [$4]) + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + AC_MSG_CHECKING(for $2) + + if $PKG_CONFIG --exists "$2" 2>&AS_MESSAGE_LOG_FD; then + AC_MSG_RESULT(yes) + succeeded=yes + + AC_MSG_CHECKING($1_CFLAGS) + $1_CFLAGS=`$PKG_CONFIG --cflags "$2"|sed -e 's,///*,/,g'` + AC_MSG_RESULT($$1_CFLAGS) + + AC_MSG_CHECKING($1_LIBS) + $1_LIBS=`$PKG_CONFIG --libs "$2"|sed -e 's,///*,/,g'` + AC_MSG_RESULT($$1_LIBS) + else + AC_MSG_RESULT(no) + $1_CFLAGS="" + $1_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + ifelse([$4], ,echo $$1_PKG_ERRORS,) + fi + + AC_SUBST($1_CFLAGS) + AC_SUBST($1_LIBS) + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + ifelse([$3], , :, [$3]) + else + ifelse([$4], , [AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.])], [$4]) + fi +]) + + if test "${with_sound}" != "no"; then # Sound support for GNU/Linux and the free BSDs. AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h soundcard.h) # Emulation library used on NetBSD. AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=) AC_SUBST(LIBSOUND) + + ALSA_REQUIRED=1.0.0 + ALSA_MODULES="alsa >= $ALSA_REQUIRED" + dnl Check if --with-pkg-config-prog has been given. + if test "X${with_pkg_config_prog}" != X; then + PKG_CONFIG="${with_pkg_config_prog}" + fi + PKG_CHECK_MODULES(ALSA, $ALSA_MODULES, HAVE_ALSA=yes, HAVE_ALSA=no) + if test $HAVE_ALSA = yes; then + SAVE_CFLAGS="$CFLAGS" + SAVE_LDFLAGS="$LDFLAGS" + CFLAGS="$ALSA_CFLAGS $CFLAGS" + LDFLAGS="$ALSA_LIBS $LDFLAGS" + AC_TRY_COMPILE([#include ], [snd_lib_error_set_handler (0);], + emacs_alsa_normal=yes, + emacs_alsa_normal=no) + if test "$emacs_alsa_normal" != yes; then + AC_TRY_COMPILE([#include ], + [snd_lib_error_set_handler (0);], + emacs_alsa_subdir=yes, + emacs_alsa_subdir=no) + if test "$emacs_alsa_subdir" != yes; then + AC_MSG_ERROR([pkg-config found alsa, but it does not compile. See config.log for error messages.]) + fi + ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE" + fi + + CFLAGS="$SAVE_CFLAGS" + LDFLAGS="$SAVE_LDFLAGS" + LIBSOUND="$LIBSOUND $ALSA_LIBS" + CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS" + AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if ALSA is available.]) + AC_SUBST() + fi + AC_SUBST(CFLAGS_SOUND) fi dnl checks for header files AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \ linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \ termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \ - sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h) + sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \ + sys/utsname.h pwd.h) + +AC_MSG_CHECKING(if personality LINUX32 can be set) +AC_TRY_COMPILE([#include ], [personality (PER_LINUX32)], + emacs_cv_personality_linux32=yes, + emacs_cv_personality_linux32=no) +AC_MSG_RESULT($emacs_cv_personality_linux32) + +if test $emacs_cv_personality_linux32 = yes; then + AC_DEFINE(HAVE_PERSONALITY_LINUX32, 1, + [Define to 1 if personality LINUX32 can be set.]) +fi + dnl On Solaris 8 there's a compilation warning for term.h because dnl it doesn't define `bool'. AC_CHECK_HEADERS(term.h, , , -) @@ -1538,7 +1730,7 @@ AC_CHECK_MEMBER(struct tm.tm_gmtoff, [AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define to 1 if `tm_gmtoff' is member of `struct tm'.])],, [#include ]) -AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr, +AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr, struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr, struct ifreq.ifr_addr], , , [AC_INCLUDES_DEFAULT @@ -1573,6 +1765,8 @@ AH_TEMPLATE(POINTER_TYPE, [Define as `void' if your compiler accepts `void *'; otherwise define as `char'.])dnl + + dnl This could be used for targets which can have both byte sexes. dnl We could presumably replace the hardwired WORDS_BIG_ENDIAN generally. dnl AC_C_BIGENDIAN @@ -1592,11 +1786,18 @@ else window_system=x11 fi -if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then - LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"` - LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"` +if test "${x_libraries}" != NONE; then + if test -n "${x_libraries}"; then + LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"` + LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"` + fi x_default_search_path="" - for x_library in `echo ${x_libraries} | sed -e "s/:/ /g"`; do + x_search_path=${x_libraries} + if test -z "${x_search_path}"; then + x_search_path=/usr/lib + fi + for x_library in `echo ${x_search_path}: | \ + sed -e "s/:/ /g" -e p -e "s:/lib[[^ /]]* :/share :g"`; do x_search_path="\ ${x_library}/X11/%L/%T/%N%C%S:\ ${x_library}/X11/%l/%T/%N%C%S:\ @@ -1633,6 +1834,26 @@ else fi fi +HAVE_CARBON=no +if test "${with_carbon}" != no; then + AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes) +fi +if test "${window_system}" = x11 && test "${HAVE_CARBON}" = yes; then + if test "${with_carbon+set}" != set \ + && test "${carbon_appdir_x+set}" != set; then + for var in with_x with_x_toolkit with_gtk with_xim \ + with_xpm with_jpeg with_tiff with_gif with_png; do + if eval test \"\${$var+set}\" = set; then + HAVE_CARBON=no + break + fi + done + fi +fi +if test "${HAVE_CARBON}" = yes; then + window_system=mac +fi + case "${window_system}" in x11 ) HAVE_X_WINDOWS=yes @@ -1651,7 +1872,7 @@ dnl make this decision later: use the toolkit if we have X11R5 or newer. * ) USE_X_TOOLKIT=maybe ;; esac ;; - none ) + mac | none ) HAVE_X_WINDOWS=no HAVE_X11=no USE_X_TOOLKIT=none @@ -1746,7 +1967,7 @@ else HAVE_XFREE386=no fi AC_MSG_RESULT($HAVE_XFREE386) - + dnl Check for need for bigtoc support on IBM AIX case ${host_os} in @@ -1872,69 +2093,16 @@ fail; fi fi -dnl This function defintion taken from Gnome 2.0 -dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) -dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page -dnl also defines GSTUFF_PKG_ERRORS on error -AC_DEFUN([PKG_CHECK_MODULES], [ - succeeded=no - - if test -z "$PKG_CONFIG"; then - AC_PATH_PROG(PKG_CONFIG, pkg-config, no) - fi - - if test "$PKG_CONFIG" = "no" ; then - echo "*** The pkg-config script could not be found. Make sure it is" - echo "*** in your path, or give the full path to pkg-config with" - echo "*** the PKG_CONFIG environment variable or --with-pkg-config-prog." - echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." - else - PKG_CONFIG_MIN_VERSION=0.9.0 - if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then - AC_MSG_CHECKING(for $2) - - if $PKG_CONFIG --exists "$2" ; then - AC_MSG_RESULT(yes) - succeeded=yes - - AC_MSG_CHECKING($1_CFLAGS) - $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` - AC_MSG_RESULT($$1_CFLAGS) - - AC_MSG_CHECKING($1_LIBS) - $1_LIBS=`$PKG_CONFIG --libs "$2"` - AC_MSG_RESULT($$1_LIBS) - else - $1_CFLAGS="" - $1_LIBS="" - ## If we have a custom action on failure, don't print errors, but - ## do set a variable so people can do so. - $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` - ifelse([$4], ,echo $$1_PKG_ERRORS,) - fi - - AC_SUBST($1_CFLAGS) - AC_SUBST($1_LIBS) - else - echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." - echo "*** See http://www.freedesktop.org/software/pkgconfig" - fi - fi - - if test $succeeded = yes; then - ifelse([$3], , :, [$3]) - else - ifelse([$4], , [AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.])], [$4]) - fi -]) - HAVE_GTK=no +if test "${with_gtk}" = "yes" && test "$USE_X_TOOLKIT" = "gtk"; then + USE_X_TOOLKIT=none +fi if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then if test "$USE_X_TOOLKIT" != "none" && test "$USE_X_TOOLKIT" != "maybe"; then AC_MSG_ERROR([Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}]); fi - GLIB_REQUIRED=2.0.1 - GTK_REQUIRED=2.0.1 + GLIB_REQUIRED=2.4 + GTK_REQUIRED=2.4 GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED" dnl Check if --with-pkg-config-prog has been given. @@ -1948,13 +2116,22 @@ if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$GTK_LIBS $LIBS" + dnl Try to compile a simple GTK program. + GTK_COMPILES=no + AC_CHECK_FUNCS(gtk_main, GTK_COMPILES=yes) + if test "${GTK_COMPILES}" != "yes"; then + AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?]); + fi + HAVE_GTK=yes AC_DEFINE(HAVE_GTK, 1, [Define to 1 if using GTK.]) USE_X_TOOLKIT=none dnl GTK scrollbars resemble toolkit scrollbars a lot, so to avoid dnl a lot if #ifdef:s, say we have toolkit scrollbars. - with_toolkit_scroll_bars=yes + if test "$with_toolkit_scroll_bars" != no; then + with_toolkit_scroll_bars=yes + fi dnl Check if we can use multiple displays with this GTK version. dnl If gdk_display_open exists, assume all others are there also. @@ -1964,11 +2141,72 @@ if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then AC_DEFINE(HAVE_GTK_MULTIDISPLAY, 1, [Define to 1 if GTK can handle more than one display.]) fi + dnl Check if we have the old file selection dialog. + dnl If gdk_display_open exists, assume all others are there also. + HAVE_GTK_FILE_SELECTION=no + AC_CHECK_FUNCS(gtk_file_selection_new, HAVE_GTK_FILE_SELECTION=yes) + + dnl Check if we have the new file chooser dialog + dnl If gdk_display_open exists, assume all others are there also. + HAVE_GTK_FILE_CHOOSER=no + AC_CHECK_FUNCS(gtk_file_chooser_dialog_new, HAVE_GTK_FILE_CHOOSER=yes) + + if test "$HAVE_GTK_FILE_SELECTION" = yes \ + && test "$HAVE_GTK_FILE_CHOOSER" = yes; then + AC_DEFINE(HAVE_GTK_FILE_BOTH, 1, + [Define to 1 if GTK has both file selection and chooser dialog.]) + fi + + dnl Check if pthreads are available. Emacs only needs this when using + dnl gtk_file_chooser under Gnome. + if test "$HAVE_GTK_FILE_CHOOSER" = yes; then + HAVE_GTK_AND_PTHREAD=no + AC_CHECK_HEADERS(pthread.h) + if test "$ac_cv_header_pthread_h"; then + AC_CHECK_LIB(pthread, pthread_self, HAVE_GTK_AND_PTHREAD=yes) + fi + if test "$HAVE_GTK_AND_PTHREAD" = yes; then + GTK_LIBS="$GTK_LIBS -lpthread" + AC_DEFINE(HAVE_GTK_AND_PTHREAD, 1, + [Define to 1 if you have GTK and pthread (-lpthread).]) + fi + fi +fi + +### Link with -lXft if available to work around a bug. +HAVE_XFT=maybe +if test "${HAVE_GTK}" = "yes"; then + dnl Check if --with-pkg-config-prog has been given. + if test "X${with_pkg_config_prog}" != X; then + PKG_CONFIG="${with_pkg_config_prog}" + fi + + PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no) + if test "$HAVE_XFT" != no; then + OLD_CFLAGS="$CPPFLAGS" + OLD_CPPFLAGS="$CFLAGS" + OLD_LIBS="$LIBS" + CPPFLAGS="$CPPFLAGS $XFT_CFLAGS" + CFLAGS="$CFLAGS $XFT_CFLAGS" + LIBS="$XFT_LIBS $LIBS" + AC_CHECK_HEADER(X11/Xft/Xft.h, + AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS)) + + if test "${HAVE_XFT}" = "yes"; then + AC_DEFINE(HAVE_XFT, 1, [Define to 1 if you have the Xft library.]) + AC_SUBST(XFT_LIBS) + C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS" + else + CFLAGS="$OLD_CPPFLAGS" + CFLAGS="$OLD_CFLAGS" + LIBS="$OLD_LIBS" + fi + fi fi dnl Do not put whitespace before the #include statements below. dnl Older compilers (eg sunos4 cc) choke on it. -if test x"${USE_X_TOOLKIT}" = xmaybe; then +if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then if test x"${HAVE_X11R5}" = xyes; then AC_MSG_CHECKING(X11 version 5 with Xaw) AC_CACHE_VAL(emacs_cv_x11_version_5_with_xaw, @@ -1982,8 +2220,12 @@ if test x"${USE_X_TOOLKIT}" = xmaybe; then AC_MSG_RESULT([5 or newer, with Xaw; use toolkit by default]) USE_X_TOOLKIT=LUCID else - AC_MSG_RESULT(before 5 or no Xaw; do not use toolkit by default) - USE_X_TOOLKIT=none + if test x"${USE_X_TOOLKIT}" = xLUCID; then + AC_MSG_ERROR([Lucid toolkit requires X11/Xaw include files]) + else + AC_MSG_RESULT(before 5 or no Xaw; do not use toolkit by default) + USE_X_TOOLKIT=none + fi fi else USE_X_TOOLKIT=none @@ -2029,29 +2271,6 @@ if test "${HAVE_X11}" = "yes"; then fi if test "${USE_X_TOOLKIT}" = "MOTIF"; then - AC_CACHE_CHECK(for LessTif where some systems put it, emacs_cv_lesstif, - # We put this in CFLAGS temporarily to precede other -I options - # that might be in CFLAGS temporarily. - # We put this in CPPFLAGS where it precedes the other -I options. - OLD_CPPFLAGS=$CPPFLAGS - OLD_CFLAGS=$CFLAGS - CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS" - CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS" - [AC_TRY_COMPILE([#include ], - [int x = 5;], - emacs_cv_lesstif=yes, emacs_cv_lesstif=no)]) - if test $emacs_cv_lesstif = yes; then - # Make sure this -I option remains in CPPFLAGS after it is set - # back to REAL_CPPFLAGS. - # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not - # have those other -I options anyway. Ultimately, having this - # directory ultimately in CPPFLAGS will be enough. - REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS" - LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS" - else - CFLAGS=$OLD_CFLAGS - CPPFLAGS=$OLD_CPPFLAGS - fi AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1, [AC_TRY_COMPILE([#include ], [#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1) @@ -2070,13 +2289,37 @@ Motif version prior to 2.1. AC_DEFINE(HAVE_LIBXP, 1, [Define to 1 if you have the Xp library (-lXp).]) fi + else + AC_CACHE_CHECK(for LessTif where some systems put it, emacs_cv_lesstif, + # We put this in CFLAGS temporarily to precede other -I options + # that might be in CFLAGS temporarily. + # We put this in CPPFLAGS where it precedes the other -I options. + OLD_CPPFLAGS=$CPPFLAGS + OLD_CFLAGS=$CFLAGS + CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS" + CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS" + [AC_TRY_COMPILE([#include ], + [int x = 5;], + emacs_cv_lesstif=yes, emacs_cv_lesstif=no)]) + if test $emacs_cv_lesstif = yes; then + # Make sure this -I option remains in CPPFLAGS after it is set + # back to REAL_CPPFLAGS. + # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not + # have those other -I options anyway. Ultimately, having this + # directory ultimately in CPPFLAGS will be enough. + REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS" + LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS" + else + CFLAGS=$OLD_CFLAGS + CPPFLAGS=$OLD_CPPFLAGS + fi fi fi ### Is -lXaw3d available? HAVE_XAW3D=no if test "${HAVE_X11}" = "yes"; then - if test "${USE_X_TOOLKIT}" != "none"; then + if test "${USE_X_TOOLKIT}" != "none" && test "${with_toolkit_scroll_bars}" != "no"; then dnl Fixme: determine what Scrollbar.h needs to avoid compilation dnl errors from the test without the `-'. AC_CHECK_HEADER(X11/Xaw3d/Scrollbar.h, @@ -2108,6 +2351,9 @@ if test "${with_toolkit_scroll_bars}" != "no"; then elif test "${HAVE_GTK}" = "yes"; then AC_DEFINE(USE_TOOLKIT_SCROLL_BARS) USE_TOOLKIT_SCROLL_BARS=yes + elif test "${HAVE_CARBON}" = "yes"; then + AC_DEFINE(USE_TOOLKIT_SCROLL_BARS) + USE_TOOLKIT_SCROLL_BARS=yes fi fi @@ -2126,7 +2372,7 @@ if test "${with_xim}" != "no"; then AC_DEFINE(USE_XIM, 1, [Define to 1 if we should use XIM, if it is available.]) fi - + if test "${HAVE_XIM}" != "no"; then late_CFLAGS=$CFLAGS @@ -2261,15 +2507,12 @@ if test "${HAVE_X11}" = "yes"; then fi fi -### Use Mac OS X Carbon API to implement GUI. -HAVE_CARBON=no -if test "${with_carbon}" != "no"; then - AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes) -fi +dnl Check for malloc/malloc.h on darwin +AC_CHECK_HEADER(malloc/malloc.h, AC_DEFINE(HAVE_MALLOC_MALLOC_H, 1, [Define to 1 if you have the header file.])) +### Use Mac OS X Carbon API to implement GUI. if test "${HAVE_CARBON}" = "yes"; then AC_DEFINE(HAVE_CARBON, 1, [Define to 1 if you are using the Carbon API on Mac OS X.]) - window_system=mac ## Specify the install directory carbon_appdir= if test "${carbon_appdir_x}" != ""; then @@ -2337,14 +2580,14 @@ AC_CHECK_FUNCS(touchlock) AC_CHECK_HEADERS(maillock.h) AC_CHECK_FUNCS(gethostname getdomainname dup2 \ -rename closedir mkdir rmdir sysinfo \ +rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \ random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \ strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \ utimes setrlimit setpgid getcwd getwd shutdown getaddrinfo \ __fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \ sendto recvfrom getsockopt setsockopt getsockname getpeername \ -gai_strerror mkstemp getline getdelim mremap memmove fsync bzero \ -memset memcmp memmove difftime memcpy mempcpy mblen mbrlen posix_memalign) +gai_strerror mkstemp getline getdelim mremap memmove fsync sync bzero \ +memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign) AC_CHECK_HEADERS(sys/un.h) @@ -2357,6 +2600,15 @@ AC_FUNC_GETLOADAVG AC_FUNC_FSEEKO +# Configure getopt. +m4_include([m4/getopt.m4]) +gl_GETOPT_IFELSE([ + gl_GETOPT_SUBSTITUTE_HEADER + gl_PREREQ_GETOPT + GETOPTOBJS='getopt.o getopt1.o' +]) +AC_SUBST(GETOPTOBJS) + AC_FUNC_GETPGRP AC_FUNC_STRFTIME @@ -2495,38 +2747,6 @@ if test "x$HAVE_TIMEVAL" = xyes; then fi fi -# This defines (or not) HAVE_TZNAME and HAVE_TM_ZONE. -AC_STRUCT_TIMEZONE - -dnl Note that AC_STRUCT_TIMEZONE doesn't do what you might expect. -if test "$ac_cv_func_gettimeofday" = yes; then - AC_CACHE_CHECK([for struct timezone], emacs_cv_struct_timezone, - [AC_TRY_COMPILE([#include ], - [struct timezone tz;], - dnl It may be that we can't call gettimeofday with a non-null pointer, - dnl even though we have struct timezone (e.g. HPUX). In that case - dnl we'll lie about struct timezone. - [AC_TRY_RUN([ -#ifdef TIME_WITH_SYS_TIME -#include -#include -#else -#ifdef HAVE_SYS_TIME_H -#include -#else -#include -#endif -#endif -main () { - struct timeval time; - struct timezone dummy; - exit (gettimeofday (&time, &dummy)); -}], - emacs_cv_struct_timezone=yes, - emacs_cv_struct_timezone=no, emacs_cv_struct_timezone=yes)], - emacs_cv_struct_timezone=no)]) -fi - ok_so_far=yes AC_CHECK_FUNC(socket, , ok_so_far=no) if test $ok_so_far = yes; then @@ -2607,7 +2827,7 @@ dnl The following looks like a useful start. dnl dnl AC_SYS_POSIX_TERMIOS dnl if test $ac_cv_sys_posix_termios = yes; then -dnl AC_DEFINE(HAVE_TERMIOS, 1, [Define to 1 if you have POSIX-style functions +dnl AC_DEFINE(HAVE_TERMIOS, 1, [Define to 1 if you have POSIX-style functions dnl and macros for terminal control.]) dnl AC_DEFINE(HAVE_TCATTR, 1, [Define to 1 if you have tcgetattr and tcsetattr.]) dnl fi @@ -2719,7 +2939,8 @@ if test "${REL_ALLOC}" = "yes" ; then fi AH_TOP([/* GNU Emacs site configuration template file. - Copyright (C) 1988, 93, 94, 99, 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1988, 1993, 1994, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007 + Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -2735,8 +2956,8 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. */ /* No code in Emacs #includes config.h twice, but some bits of code @@ -2794,13 +3015,16 @@ AH_BOTTOM([ #ifdef HAVE_SOUNDCARD_H #define HAVE_SOUND 1 #endif +#ifdef HAVE_ALSA +#define HAVE_SOUND 1 +#endif #endif /* __FreeBSD__ || __NetBSD__ || __linux__ */ /* If using GNU, then support inline function declarations. */ /* Don't try to switch on inline handling as detected by AC_C_INLINE generally, because even if non-gcc compilers accept `inline', they may reject `extern inline'. */ -#ifdef __GNUC__ +#if defined (__GNUC__) && defined (OPTIMIZE) #define INLINE __inline__ #else #define INLINE @@ -2848,7 +3072,13 @@ AH_BOTTOM([ /* Tell regex.c to use a type compatible with Emacs. */ #define RE_TRANSLATE_TYPE Lisp_Object #define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C) -#define RE_TRANSLATE_P(TBL) (XFASTINT (TBL) != 0) +#ifdef make_number +/* If make_number is a macro, use it. */ +#define RE_TRANSLATE_P(TBL) (!EQ (TBL, make_number (0))) +#else +/* If make_number is a function, avoid it. */ +#define RE_TRANSLATE_P(TBL) (!(INTEGERP (TBL) && XINT (TBL) == 0)) +#endif #endif /* Avoid link-time collision with system mktime if we will use our own. */ @@ -3040,6 +3270,24 @@ echo " Does Emacs use -lpng? ${HAVE_PNG}" echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}" echo +if test $USE_XASSERTS = yes; then + echo " Compiling with asserts turned on." + CPPFLAGS="$CPPFLAGS -DXASSERTS=1" + echo +fi + +if test "$USE_X_TOOLKIT" = GTK; then + case "$canonical" in + *cygwin*) + echo "There are known problems with Emacs and Gtk+ on cygwin, so you + will probably get a crash on startup. If this happens, please use another + toolkit for Emacs. See etc/PROBLEMS for more information." + ;; + esac +fi + + + # Remove any trailing slashes in these variables. [test "${prefix}" != NONE && prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'`