X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/b33c71f58623306001d4d4fe4f7354d8c360edaa..32a8a3cff58c29c95660d97c293a4810b16f5a34:/configure.in diff --git a/configure.in b/configure.in index 2ac813fe93..930129bfda 100644 --- a/configure.in +++ b/configure.in @@ -3,14 +3,14 @@ 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, 2004, 2005, 2006 -dnl Free Software Foundation, Inc. +dnl Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2003, +dnl 2004, 2005, 2006, 2007 Free Software Foundation, Inc. dnl dnl This file is part of GNU Emacs. dnl dnl GNU Emacs is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; either version 2, or (at your option) +dnl the Free Software Foundation; either version 3, or (at your option) dnl any later version. dnl dnl GNU Emacs is distributed in the hope that it will be useful, @@ -23,7 +23,7 @@ dnl along with GNU Emacs; see the file COPYING. If not, write to the 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' @@ -42,97 +42,98 @@ gamedir='${localstatedir}/games/emacs' gameuser=games -AC_ARG_WITH(gcc, -[ --without-gcc don't use GCC to compile Emacs if GCC is found]) -AC_ARG_WITH(pop, -[ --without-pop don't support POP mail retrieval with movemail], +dnl Autoconf is so much less fun under VMS, maybe +dnl because everything is less fun under VMS. --ttn +AC_DEFUN([EMACS_ARG_Y],[dnl +AC_ARG_WITH([$1],[AS_HELP_STRING([--with-$1],[$2])],[$3],[$4])dnl +])dnl +AC_DEFUN([EMACS_ARG_N],[dnl +AC_ARG_WITH([$1],[AS_HELP_STRING([--without-$1],[$2])],[$3],[$4])dnl +])dnl + +EMACS_ARG_N([gcc],[don't use GCC to compile Emacs if GCC is found]) + +EMACS_ARG_N([pop],[don't support POP mail retrieval with movemail], [if test "$withval" = yes; then AC_DEFINE(MAIL_USE_POP) else : fi], 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)]) + +EMACS_ARG_Y([kerberos],[support Kerberos-authenticated POP], +[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, -[ --with-kerberos5 support Kerberos version 5 authenticated POP], + +EMACS_ARG_Y([kerberos5],[support Kerberos version 5 authenticated POP], [if test "${with_kerberos5+set}" = set; then if test "${with_kerberos+set}" != set; then with_kerberos=yes AC_DEFINE(KERBEROS) fi -fi -AC_DEFINE(KERBEROS5, 1, [Define to use Kerberos 5 instead of Kerberos 4.])]) -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.])]) + AC_DEFINE(KERBEROS5, 1, [Define to use Kerberos 5 instead of Kerberos 4.]) +fi]) -AC_ARG_WITH(sound, -[ --without-sound don't compile with sound support]) +EMACS_ARG_Y([hesiod],[support Hesiod to get the POP server host], +[if test "$withval" = yes; then + AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.]) +fi]) + +EMACS_ARG_N([sound],[don't compile with sound support]) dnl This should be the last --with option, because --with-x is dnl added later on when we find the path of X, and it's best to dnl keep them together visually. -AC_ARG_WITH(x-toolkit, -[ --with-x-toolkit=KIT use an X toolkit - (KIT = yes/lucid/athena/motif/gtk/no)], +AC_ARG_WITH([x-toolkit],[AS_HELP_STRING([--with-x-toolkit=KIT], + [use an X toolkit (KIT one of: yes, lucid, athena, motif, gtk, no)])], [ case "${withval}" in - y | ye | yes ) val=athena ;; + y | ye | yes ) val=gtk ;; n | no ) val=no ;; l | lu | luc | luci | lucid ) val=lucid ;; a | at | ath | athe | athen | athena ) val=athena ;; m | mo | mot | moti | motif ) val=motif ;; g | gt | gtk ) val=gtk ;; -dnl These don't currently work. -dnl o | op | ope | open | open- | open-l | open-lo \ -dnl | open-loo | open-look ) val=open-look ;; * ) -dnl AC_MSG_ERROR([the `--with-x-toolkit' option is supposed to have a value -dnl which is `yes', `no', `lucid', `athena', `motif' or `open-look'.]) -AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid\; +AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid; this option's value should be `yes', `no', `lucid', `athena', `motif' or `gtk'. -Currently, `yes', `athena' and `lucid' are synonyms.]) +`yes' and `gtk' are synonyms. `athena' and `lucid' are synonyms.]) ;; esac with_x_toolkit=$val ]) -AC_ARG_WITH(xpm, -[ --with-xpm use -lXpm for displaying XPM images]) -AC_ARG_WITH(jpeg, -[ --with-jpeg use -ljpeg for displaying JPEG images]) -AC_ARG_WITH(tiff, -[ --with-tiff use -ltiff for displaying TIFF images]) -AC_ARG_WITH(gif, -[ --with-gif use -lungif for displaying GIF images]) -AC_ARG_WITH(png, -[ --with-png use -lpng for displaying PNG images]) -AC_ARG_WITH(gtk, -[ --with-gtk use GTK (same as --with-x-toolkit=gtk)]) -AC_ARG_WITH(pkg-config-prog, -[ --with-pkg-config-prog Path to pkg-config to use for finding GTK]) -AC_ARG_WITH(toolkit-scroll-bars, -[ --without-toolkit-scroll-bars - don't use Motif or Xaw3d scroll bars]) -AC_ARG_WITH(xim, -[ --without-xim don't use X11 XIM]) -AC_ARG_WITH(carbon, -[ --without-carbon don't use Carbon GUI on Mac OS X]) + +EMACS_ARG_Y([xpm],[use -lXpm for displaying XPM images]) +EMACS_ARG_Y([jpeg],[use -ljpeg for displaying JPEG images]) +EMACS_ARG_Y([tiff],[use -ltiff for displaying TIFF images]) +EMACS_ARG_Y([gif],[use -lgif (or -lungif) for displaying GIF images]) +EMACS_ARG_Y([png],[use -lpng for displaying PNG images]) +EMACS_ARG_Y([gpm],[use -lgpm for mouse support on a GNU/Linux console]) +EMACS_ARG_Y([rsvg],[use -lrsvg-2 for displaying SVG images]) +EMACS_ARG_Y([gtk],[use GTK (same as --with-x-toolkit=gtk)]) +EMACS_ARG_Y([pkg-config-prog],[Path to pkg-config for finding GTK and librsvg]) +EMACS_ARG_N([toolkit-scroll-bars],[don't use Motif or Xaw3d scroll bars]) +EMACS_ARG_N([xaw3d],[don't use Xaw3d]) +EMACS_ARG_N([xim],[don't use X11 XIM]) +EMACS_ARG_N([carbon],[don't use Carbon GUI on Mac OS X]) + AC_ARG_ENABLE(carbon-app, -[[ --enable-carbon-app[=DIR] [DIR=/Application] - specify install directory for Emacs.app on Mac OS X]], +[AS_HELP_STRING([--enable-carbon-app@<:@=DIR@:>@], + [specify install directory for Emacs.app on Mac OS X + [DIR=/Application]])], [ carbon_appdir_x=${enableval}]) AC_ARG_ENABLE(asserts, -[ --enable-asserts compile code with asserts enabled], +[AS_HELP_STRING([--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], +[AS_HELP_STRING([--enable-maintainer-mode], + [enable make rules and dependencies not useful (and sometimes + confusing) to the casual installer])], USE_MAINTAINER_MODE=$enableval, USE_MAINTAINER_MODE=no) if test $USE_MAINTAINER_MODE = yes; then @@ -143,9 +144,9 @@ fi AC_SUBST(MAINT) AC_ARG_ENABLE(locallisppath, -[ --enable-locallisppath=PATH - directories Emacs should search for lisp files - specific to this site], +[AS_HELP_STRING([--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 @@ -194,7 +195,7 @@ fi AC_CANONICAL_HOST canonical=$host -configuration=${host_alias-$host} +configuration=${host_alias-${build_alias-$host}} dnl This used to use changequote, but, apart from `changequote is evil' dnl per the autoconf manual, we can speed up autoconf somewhat by quoting @@ -237,6 +238,9 @@ 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 @@ -257,7 +261,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 ;; @@ -266,6 +269,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 ;; @@ -274,12 +280,17 @@ 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 ;; @@ -372,6 +383,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 @@ -670,6 +699,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 ;; @@ -947,6 +979,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 ;; @@ -994,6 +1027,7 @@ dnl see the `changequote' comment above. ;; *-sunos5* | *-solaris* ) opsys=sol2-6 + emacs_check_sunpro_c=yes NON_GNU_CPP=/usr/ccs/lib/cpp ;; * ) opsys=bsd4-2 ;; @@ -1147,24 +1181,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 ;; @@ -1238,6 +1264,24 @@ if test -n "$CPP" && test -d "$CPP"; then CPP= fi +## If not using gcc, and on Solaris, and no CPP specified, see if +## using a Sun compiler, which needs -Xs to prevent whitespace. +if test x"$GCC" != xyes && test x"$emacs_check_sunpro_c" = xyes && \ + test x"$CPP" = x; then + AC_MSG_CHECKING([whether we are using a Sun C compiler]) + AC_CACHE_VAL(emacs_cv_sunpro_c, + [AC_TRY_LINK([], +[#ifndef __SUNPRO_C +fail; +#endif +], emacs_cv_sunpro_c=yes, emacs_cv_sunpro_c=no)]) + AC_MSG_RESULT($emacs_cv_sunpro_c) + + if test x"$emacs_cv_sunpro_c" = xyes; then + NON_GNU_CPP="$CC -E -Xs" + fi +fi + #### Some systems specify a CPP to use unless we are using GCC. #### Now that we know whether we are using GCC, we can decide whether #### to use that one. @@ -1297,6 +1341,21 @@ 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) + +## Need makeinfo >= 4.6 (?) to build the manuals. +AC_PATH_PROG(MAKEINFO, makeinfo, no) +dnl By this stage, configure has already checked for egrep and set EGREP, +dnl or exited with an error if no egrep was found. +if test "$MAKEINFO" != "no" && \ + test x"`$MAKEINFO --version 2> /dev/null | $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[6-9]]|4\.[[1-5]][[0-9]]+)'`" = x; then + MAKEINFO=no +fi + +if test "$MAKEINFO" = "no"; then + AC_MSG_ERROR( [makeinfo >= 4.6 is required] ) +fi + + dnl Add our options to ac_link now, after it is set up. if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x @@ -1480,12 +1539,113 @@ AC_CONFIG_LIBOBJ_DIR(src) 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.]) + fi + AC_SUBST(CFLAGS_SOUND) fi dnl checks for header files @@ -1649,11 +1809,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:\ @@ -1697,7 +1864,13 @@ fi if test "${window_system}" = x11 && test "${HAVE_CARBON}" = yes; then if test "${with_carbon+set}" != set \ && test "${carbon_appdir_x+set}" != set; then - HAVE_CARBON=no + 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 @@ -1711,15 +1884,20 @@ case "${window_system}" in case "${with_x_toolkit}" in athena | lucid ) USE_X_TOOLKIT=LUCID ;; motif ) USE_X_TOOLKIT=MOTIF ;; -dnl open-look ) USE_X_TOOLKIT=OPEN_LOOK ;; gtk ) with_gtk=yes dnl Dont set this for GTK. A lot of tests below assumes Xt when dnl USE_X_TOOLKIT is set. USE_X_TOOLKIT=none ;; no ) USE_X_TOOLKIT=none ;; -dnl If user did not say whether to use a toolkit, -dnl make this decision later: use the toolkit if we have X11R5 or newer. - * ) USE_X_TOOLKIT=maybe ;; +dnl If user did not say whether to use a toolkit, make this decision later: +dnl use the toolkit if we have gtk, or X11R5 or newer. + * ) + if test x"$with_gtk" = xyes; then + USE_X_TOOLKIT=none + else + USE_X_TOOLKIT=maybe + fi + ;; esac ;; mac | none ) @@ -1729,6 +1907,22 @@ dnl make this decision later: use the toolkit if we have X11R5 or newer. ;; esac +if test "$window_system" = none && test "X$with_x" != "Xno"; then + AC_CHECK_PROG(HAVE_XSERVER, X, true, false) + if test "$HAVE_XSERVER" = true || + test -n "$DISPLAY" || + test "`echo /usr/lib/libX11.*`" != "/usr/lib/libX11.*"; then + AC_MSG_ERROR([You seem to be running X, but no X development libraries +were found. You should install the relevant development files for X +and for the toolkit you want, such as Gtk+, Lesstif or Motif. Also make +sure you have development files for image handling, i.e. +tiff, gif, jpeg, png and xpm. +If you are sure you want Emacs compiled without X window support, pass + --without-x +to configure.]) + fi +fi + ### If we're using X11, we should use the X menu package. HAVE_MENUS=no case ${HAVE_X11} in @@ -1924,88 +2118,44 @@ fail; fi fi -if test "${window_system}" = "x11"; then - AC_MSG_CHECKING(X11 version 5) - AC_CACHE_VAL(emacs_cv_x11_version_5, - [AC_TRY_LINK([#include ], -[#if XlibSpecificationRelease < 5 -fail; -#endif -], emacs_cv_x11_version_5=yes, emacs_cv_x11_version_5=no)]) - if test $emacs_cv_x11_version_5 = yes; then - AC_MSG_RESULT(5 or newer) - HAVE_X11R5=yes - AC_DEFINE(HAVE_X11R5, 1, - [Define to 1 if you have the X11R5 or newer version of Xlib.]) - else - HAVE_X11R5=no - AC_MSG_RESULT(before 5) - 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) +### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified. +HAVE_RSVG=no +if test "${HAVE_X11}" = "yes" || test "${HAVE_CARBON}" = "yes"; then + if test "${with_rsvg}" != "no"; 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 - if $PKG_CONFIG --exists "$2" ; then - AC_MSG_RESULT(yes) - succeeded=yes + RSVG_REQUIRED=2.0.0 + RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED" - AC_MSG_CHECKING($1_CFLAGS) - $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` - AC_MSG_RESULT($$1_CFLAGS) + PKG_CHECK_MODULES(RSVG, $RSVG_MODULE, :, :) + AC_SUBST(RSVG_CFLAGS) + AC_SUBST(RSVG_LIBS) - 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 + if test ".${RSVG_CFLAGS}" != "."; then + HAVE_RSVG=yes + AC_DEFINE(HAVE_RSVG, 1, [Define to 1 if using librsvg.]) + CFLAGS="$CFLAGS $RSVG_CFLAGS" + LIBS="$RSVG_LIBS $LIBS" + fi 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 +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" || \ + test "$USE_X_TOOLKIT" = "maybe"; 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.4 - GTK_REQUIRED=2.4 + GLIB_REQUIRED=2.6 + GTK_REQUIRED=2.6 GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED" dnl Check if --with-pkg-config-prog has been given. @@ -2013,15 +2163,37 @@ if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then PKG_CONFIG="${with_pkg_config_prog}" fi dnl Checks for libraries. - PKG_CHECK_MODULES(GTK, $GTK_MODULES) + PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no) + if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then + AC_MSG_ERROR($GTK_PKG_ERRORS) + fi +fi + + +if test x"$pkg_check_gtk" = xyes; then + AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$GTK_LIBS $LIBS" - HAVE_GTK=yes - AC_DEFINE(HAVE_GTK, 1, [Define to 1 if using GTK.]) - USE_X_TOOLKIT=none + 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 + if test "$USE_X_TOOLKIT" != "maybe"; then + AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?]); + fi + else + HAVE_GTK=yes + AC_DEFINE(HAVE_GTK, 1, [Define to 1 if using GTK.]) + USE_X_TOOLKIT=none + fi + +fi + + +if test "${HAVE_GTK}" = "yes"; then dnl GTK scrollbars resemble toolkit scrollbars a lot, so to avoid dnl a lot if #ifdef:s, say we have toolkit scrollbars. @@ -2031,14 +2203,12 @@ if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then dnl Check if we can use multiple displays with this GTK version. dnl If gdk_display_open exists, assume all others are there also. - dnl XXX The multidisplay feature is severely broken in current GTK - dnl versions. --lorentey HAVE_GTK_MULTIDISPLAY=no - dnl AC_CHECK_FUNCS(gdk_display_open, HAVE_GTK_MULTIDISPLAY=yes) - dnl if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then - dnl AC_DEFINE(HAVE_GTK_MULTIDISPLAY, 1, - dnl [Define to 1 if GTK can handle more than one display.]) - dnl fi + AC_CHECK_FUNCS(gdk_display_open, HAVE_GTK_MULTIDISPLAY=yes) + if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; 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. @@ -2065,34 +2235,88 @@ if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; 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" + case "${canonical}" in + *-hpux*) ;; + *) GTK_LIBS="$GTK_LIBS -lpthread" ;; + esac 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"${HAVE_X11R5}" = xyes; then - AC_MSG_CHECKING(X11 version 5 with Xaw) - AC_CACHE_VAL(emacs_cv_x11_version_5_with_xaw, +HAVE_XAW3D=no +if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then + if test "$with_xaw3d" != no; then + AC_MSG_CHECKING(for xaw3d) + AC_CACHE_VAL(emacs_cv_xaw3d, + [AC_TRY_LINK([ +#include +#include ], + [], + emacs_cv_xaw3d=yes, + emacs_cv_xaw3d=no)]) + else + emacs_cv_xaw3d=no + fi + if test $emacs_cv_xaw3d = yes; then + AC_MSG_RESULT([yes; using Lucid toolkit]) + USE_X_TOOLKIT=LUCID + HAVE_XAW3D=yes + AC_DEFINE(HAVE_XAW3D, 1, + [Define to 1 if you have the Xaw3d library (-lXaw3d).]) + else + AC_MSG_RESULT(no) + AC_MSG_CHECKING(for libXaw) + AC_CACHE_VAL(emacs_cv_xaw, [AC_TRY_LINK([ #include #include ], [], - emacs_cv_x11_version_5_with_xaw=yes, - emacs_cv_x11_version_5_with_xaw=no)]) - if test $emacs_cv_x11_version_5_with_xaw = yes; then - AC_MSG_RESULT([5 or newer, with Xaw; use toolkit by default]) + emacs_cv_xaw=yes, + emacs_cv_xaw=no)]) + if test $emacs_cv_xaw = yes; then + AC_MSG_RESULT([yes; using Lucid toolkit]) USE_X_TOOLKIT=LUCID + elif 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) + AC_MSG_RESULT([no; do not use toolkit by default]) USE_X_TOOLKIT=none fi - else - USE_X_TOOLKIT=none fi fi @@ -2180,21 +2404,6 @@ Motif version prior to 2.1. fi fi -### Is -lXaw3d available? -HAVE_XAW3D=no -if test "${HAVE_X11}" = "yes"; 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, - [AC_CHECK_LIB(Xaw3d, XawScrollbarSetThumb, HAVE_XAW3D=yes)], , -) - if test "${HAVE_XAW3D}" = "yes"; then - AC_DEFINE(HAVE_XAW3D, 1, - [Define to 1 if you have the Xaw3d library (-lXaw3d).]) - fi - fi -fi - dnl Use toolkit scroll bars if configured for GTK or X toolkit and either dnl using Motif or Xaw3d is available, and unless dnl --with-toolkit-scroll-bars=no was specified. @@ -2226,8 +2435,8 @@ AC_TRY_COMPILE([ #include #include ], [XIMProc callback;], - HAVE_XIM=yes - AC_DEFINE(HAVE_XIM, 1, [Define to 1 if XIM is available]), + [HAVE_XIM=yes + AC_DEFINE(HAVE_XIM, 1, [Define to 1 if XIM is available])], HAVE_XIM=no) dnl `--with-xim' now controls only the initial value of use_xim at run time. @@ -2277,7 +2486,7 @@ HAVE_XPM=no if test "${HAVE_X11}" = "yes"; then if test "${with_xpm}" != "no"; then AC_CHECK_HEADER(X11/xpm.h, - AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11)) + [AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11)]) if test "${HAVE_XPM}" = "yes"; then AC_MSG_CHECKING(for XpmReturnAllocPixels preprocessor define) AC_EGREP_CPP(no_return_alloc_pixels, @@ -2307,7 +2516,7 @@ if test "${HAVE_X11}" = "yes"; then dnl Checking for jpeglib.h can lose because of a redefinition of dnl HAVE_STDLIB_H. AC_CHECK_HEADER(jerror.h, - AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes)) + [AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes)]) fi AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl @@ -2317,7 +2526,7 @@ if test "${HAVE_X11}" = "yes"; then [#include version=JPEG_LIB_VERSION ], - AC_DEFINE(HAVE_JPEG), + [AC_DEFINE(HAVE_JPEG)], [AC_MSG_WARN([libjpeg found, but not version 6b or later]) HAVE_JPEG=no]) fi @@ -2345,10 +2554,10 @@ HAVE_TIFF=no if test "${HAVE_X11}" = "yes"; then if test "${with_tiff}" != "no"; then AC_CHECK_HEADER(tiffio.h, - tifflibs="-lz -lm" + [tifflibs="-lz -lm" # At least one tiff package requires the jpeg library. if test "${HAVE_JPEG}" = yes; then tifflibs="-ljpeg $tifflibs"; fi - AC_CHECK_LIB(tiff, TIFFGetVersion, HAVE_TIFF=yes, , $tifflibs)) + AC_CHECK_LIB(tiff, TIFFGetVersion, HAVE_TIFF=yes, , $tifflibs)]) fi if test "${HAVE_TIFF}" = "yes"; then @@ -2356,23 +2565,71 @@ if test "${HAVE_X11}" = "yes"; then fi fi -### Use -lgif if available, unless `--with-gif=no'. +### Use -lgif or -lungif if available, unless `--with-gif=no'. HAVE_GIF=no -if test "${HAVE_X11}" = "yes"; then - if test "${with_gif}" != "no"; then - AC_CHECK_HEADER(gif_lib.h, +if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no"; then + AC_CHECK_HEADER(gif_lib.h, # EGifPutExtensionLast only exists from version libungif-4.1.0b1. # Earlier versions can crash Emacs. - AC_CHECK_LIB(ungif, EGifPutExtensionLast, HAVE_GIF=yes)) + [AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, try_libungif=yes)]) + + if test "$HAVE_GIF" = yes; then + ac_gif_lib_name="-lgif" + fi + +# If gif_lib.h but no libgif, try libungif. + if test x"$try_libungif" = xyes; then + AC_CHECK_LIB(ungif, EGifPutExtensionLast, HAVE_GIF=yes) + + if test "$HAVE_GIF" = yes; then + AC_DEFINE(LIBGIF, -lungif, [Compiler option to link with the gif library (if not -lgif).]) + ac_gif_lib_name="-lungif" + fi fi if test "${HAVE_GIF}" = "yes"; then - AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have the ungif library (-lungif).]) + AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have a gif library (default -lgif; otherwise specify with LIBGIF).]) + fi +fi + +dnl Check for required libraries. +if test "${HAVE_X11}" = "yes"; then + MISSING="" + WITH_NO="" + test "${with_xpm}" != "no" && test "${HAVE_XPM}" != "yes" && + MISSING="libXpm" && WITH_NO="--with-xpm=no" + test "${with_jpeg}" != "no" && test "${HAVE_JPEG}" != "yes" && + MISSING="$MISSING libjpeg" && WITH_NO="$WITH_NO --with-jpeg=no" + test "${with_png}" != "no" && test "${HAVE_PNG}" != "yes" && + MISSING="$MISSING libpng" && WITH_NO="$WITH_NO --with-png=no" + test "${with_gif}" != "no" && test "${HAVE_GIF}" != "yes" && + MISSING="$MISSING libgif/libungif" && WITH_NO="$WITH_NO --with-gif=no" + test "${with_tiff}" != "no" && test "${HAVE_TIFF}" != "yes" && + MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no" + + if test "X${MISSING}" != X; then + AC_MSG_ERROR([The following required libraries were not found: + $MISSING +Maybe some development libraries/packages are missing? +If you don't want to link with them give + $WITH_NO +as options to configure]) fi fi +### Use -lgpm if available, unless `--with-gpm=no'. +HAVE_GPM=no +if test "${with_gpm}" != "no"; then + AC_CHECK_HEADER(gpm.h, + [AC_CHECK_LIB(gpm, Gpm_Open, HAVE_GPM=yes)]) +fi + +if test "${HAVE_GPM}" = "yes"; then + AC_DEFINE(HAVE_GPM, 1, [Define to 1 if you have the gpm library (-lgpm).]) +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.])) +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 @@ -2387,22 +2644,13 @@ if test "${HAVE_CARBON}" = "yes"; then fi # We also have mouse menus. HAVE_MENUS=yes - - tmp_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -framework Carbon" - AC_CHECK_FUNC(CancelMenuTracking, have_cmt=yes, have_cmt=no) - if test "$have_cmt" = yes; then - AC_DEFINE(HAVE_CANCELMENUTRACKING, 1, - [Define to 1 if CancelMenuTracking is available (Mac OSX).]) - fi - CFLAGS="$tmp_CFLAGS" fi ### Use session management (-lSM -lICE) if available HAVE_X_SM=no if test "${HAVE_X11}" = "yes"; then AC_CHECK_HEADER(X11/SM/SMlib.h, - AC_CHECK_LIB(SM, SmcOpenConnection, HAVE_X_SM=yes, , -lICE)) + [AC_CHECK_LIB(SM, SmcOpenConnection, HAVE_X_SM=yes, , -lICE)]) if test "${HAVE_X_SM}" = "yes"; then AC_DEFINE(HAVE_X_SM, 1, [Define to 1 if you have the SM library (-lSM).]) @@ -2425,6 +2673,13 @@ fi AC_FUNC_ALLOCA +dnl src/alloca.c has been removed. Could also check if $ALLOCA is set? +dnl FIXME is there an autoconf test that does the right thing, without +dnl needing to call A_M_E afterwards? +if test x"$ac_cv_func_alloca_works" != xyes; then + AC_MSG_ERROR( [a system implementation of alloca is required] ) +fi + # fmod, logb, and frexp are found in -lm on most systems. # On HPUX 9.01, -lm does not contain logb, so check for sqrt. AC_CHECK_LIB(m, sqrt) @@ -2454,12 +2709,12 @@ AC_CHECK_HEADERS(maillock.h) AC_CHECK_FUNCS(gethostname getdomainname dup2 \ rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \ -random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \ +random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime 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 \ +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) @@ -2498,26 +2753,57 @@ AC_CHECK_FUNCS(getpt) # than to expect to find it in ncurses. AC_CHECK_LIB(ncurses, tparm) +# Do we have res_init, for detecting changes in /etc/resolv.conf? + +resolv=no +AC_TRY_LINK([#include +#include +#include ], + [return res_init();], + have_res_init=yes, have_res_init=no) +if test "$have_res_init" = no; then + OLIBS="$LIBS" + LIBS="$LIBS -lresolv" + AC_MSG_CHECKING(for res_init with -lresolv) + AC_TRY_LINK([#include +#include +#include ], + [return res_init();], + have_res_init=yes, have_res_init=no) + AC_MSG_RESULT($have_res_init) + if test "$have_res_init" = yes ; then + resolv=yes + fi + LIBS="$OLIBS" +fi + +if test "$have_res_init" = yes; then + AC_DEFINE(HAVE_RES_INIT, 1, [Define to 1 if res_init is available.]) +fi + # Do we need the Hesiod library to provide the support routines? if test "$with_hesiod" = yes ; then # Don't set $LIBS here -- see comments above. - resolv=no AC_CHECK_FUNC(res_send, , [AC_CHECK_FUNC(__res_send, , [AC_CHECK_LIB(resolv, res_send, resolv=yes, [AC_CHECK_LIB(resolv, __res_send, resolv=yes)])])]) if test "$resolv" = yes ; then RESOLVLIB=-lresolv - AC_DEFINE(HAVE_LIBRESOLV, 1, - [Define to 1 if you have the resolv library (-lresolv).]) else RESOLVLIB= fi AC_CHECK_FUNC(hes_getmailhost, , [AC_CHECK_LIB(hesiod, hes_getmailhost, - AC_DEFINE(HAVE_LIBHESIOD, 1, - [Define to 1 if you have the hesiod library (-lhesiod).]), + [AC_DEFINE(HAVE_LIBHESIOD, 1, + [Define to 1 if you have the hesiod library (-lhesiod).])], :, $RESOLVLIB)]) fi +# Do we need libresolv (due to res_init or Hesiod)? +if test "$resolv" = yes ; then + AC_DEFINE(HAVE_LIBRESOLV, 1, + [Define to 1 if you have the resolv library (-lresolv).]) +fi + # These tell us which Kerberos-related libraries to use. if test "${with_kerberos+set}" = set; then AC_CHECK_LIB(com_err, com_err) @@ -2526,9 +2812,9 @@ if test "${with_kerberos+set}" = set; then AC_CHECK_LIB(krb5, krb5_init_context) if test "${with_kerberos5+set}" != set; then AC_CHECK_LIB(des425, des_cbc_encrypt,, - AC_CHECK_LIB(des, des_cbc_encrypt)) + [AC_CHECK_LIB(des, des_cbc_encrypt)]) AC_CHECK_LIB(krb4, krb_get_cred,, - AC_CHECK_LIB(krb, krb_get_cred)) + [AC_CHECK_LIB(krb, krb_get_cred)]) fi if test "${with_kerberos5+set}" = set; then @@ -2620,38 +2906,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 @@ -2843,15 +3097,16 @@ if test "${REL_ALLOC}" = "yes" ; then buffer space.]) fi + AH_TOP([/* GNU Emacs site configuration template file. - Copyright (C) 1988, 1993, 1994, 1999, 2000, 2002, 2004, 2005, 2006 + Copyright (C) 1988, 1993, 1994, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GNU Emacs. GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) +the Free Software Foundation; either version 3, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, @@ -2880,6 +3135,13 @@ AH_BOTTOM([ #define HAVE_MOUSE #endif +/* Multi-tty support relies on MULTI_KBOARD. It seems safe to turn it + on unconditionally. Note that src/s/darwin.h disables this at + present. */ +#ifndef MULTI_KBOARD +#define MULTI_KBOARD +#endif + /* If we're using the Carbon API on Mac OS X, define a few more variables as well. */ #ifdef HAVE_CARBON @@ -2920,6 +3182,9 @@ 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. */ @@ -3076,7 +3341,7 @@ typedef unsigned size_t; #ifdef HAVE_X11R6 #define HAVE_X_I18N -#elif defined HAVE_X11R5 && !defined X11R5_INHIBIT_I18N +#elif !defined X11R5_INHIBIT_I18N #define HAVE_X_I18N #endif @@ -3167,8 +3432,10 @@ echo " Does Emacs use -lXaw3d? ${HAVE_XAW3D}" echo " Does Emacs use -lXpm? ${HAVE_XPM}" echo " Does Emacs use -ljpeg? ${HAVE_JPEG}" echo " Does Emacs use -ltiff? ${HAVE_TIFF}" -echo " Does Emacs use -lungif? ${HAVE_GIF}" +echo " Does Emacs use a gif library? ${HAVE_GIF} $ac_gif_lib_name" echo " Does Emacs use -lpng? ${HAVE_PNG}" +echo " Does Emacs use -lrsvg-2? ${HAVE_RSVG}" +echo " Does Emacs use -lgpm? ${HAVE_GPM}" echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}" echo @@ -3178,6 +3445,24 @@ if test $USE_XASSERTS = yes; then 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 + + +if test "$HAVE_CARBON" = "yes"; then + echo + echo "Warning: The Mac Carbon port is currently unsupported and has +known problems. It is not recommended for use by non-developers. +Read the emacs-devel archives for more information." + echo +fi # Remove any trailing slashes in these variables. @@ -3197,8 +3482,9 @@ AC_EGREP_CPP(yes..yes, CPP_NEED_TRADITIONAL=yes) AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \ - man/Makefile lwlib/Makefile src/Makefile.c:src/Makefile.in \ - lisp/Makefile lispref/Makefile lispintro/Makefile leim/Makefile, [ + doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \ + doc/lispref/Makefile src/Makefile.c:src/Makefile.in \ + lwlib/Makefile lisp/Makefile leim/Makefile, [ ### Make the necessary directories, if they don't exist. for dir in etc lisp ; do