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, 2008 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,
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)
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,
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])
esac
;;
+ ## FreeBSD kernel + glibc based userland
+ *-*-kfreebsd*gnu* )
+ opsys=gnu-kfreebsd
+ case "${canonical}" in
+ alpha*-*-kfreebsd*) machine=alpha ;;
+ ia64-*-kfreebsd*) machine=ia64 ;;
+ sparc64-*-kfreebsd*) machine=sparc ;;
+ powerpc-*-kfreebsd*) machine=macppc ;;
+ i[3456]86-*-kfreebsd*) machine=intel386 ;;
+ amd64-*-kfreebsd*|x86_64-*-kfreebsd*) machine=amdx86-64 ;;
+ esac
+ ;;
+
## NetBSD ports
*-*-netbsd* )
opsys=netbsd
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 ;;
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
;;
opsys=openbsd
case "${canonical}" in
alpha*-*-openbsd*) machine=alpha ;;
- i386-*-openbsd*) machine=intel386 ;;
- x86_64-*-openbsd*) machine=amdx86-64 ;;
- 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
;;
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
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
;;
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 ;;
;;
*-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
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
;;
succeeded=yes
AC_MSG_CHECKING($1_CFLAGS)
- $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
+ $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"`
+ $1_LIBS=`$PKG_CONFIG --libs "$2"|sed -e 's,///*,/,g'`
AC_MSG_RESULT($$1_LIBS)
else
AC_MSG_RESULT(no)
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 <asoundlib.h>], [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 <alsa/asoundlib.h>],
+ [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
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.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.
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
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"${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,
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
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)
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 <sys/time.h>],
- [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 <sys/time.h>
-#include <time.h>
-#else
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#else
-#include <time.h>
-#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
fi
AH_TOP([/* GNU Emacs site configuration template file.
- Copyright (C) 1988, 1993, 1994, 1999, 2000, 2001, 2002, 2004, 2005, 2006
- Free Software Foundation, Inc.
+ Copyright (C) 1988, 1993, 1994, 1999, 2000, 2001, 2002, 2004, 2005,
+ 2006, 2007, 2008 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,
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.