X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/f2a77c3a41744e43b52f0ac7a2c9bd7f8d406ae1..2a1cf2b9aad0bc5685d1ea3c3e85afd212c659d3:/configure.in diff --git a/configure.in b/configure.in index 72982ad80d..a70ea1606d 100644 --- a/configure.in +++ b/configure.in @@ -4,7 +4,7 @@ dnl autoconf dnl in the directory containing this script. dnl dnl Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2003, -dnl 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +dnl 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. dnl dnl This file is part of GNU Emacs. dnl @@ -21,8 +21,8 @@ dnl dnl You should have received a copy of the GNU General Public License dnl along with GNU Emacs. If not, see . -AC_PREREQ(2.61)dnl -AC_INIT(emacs, 23.0.60) +AC_PREREQ(2.61) +AC_INIT(emacs, 23.0.94) AC_CONFIG_HEADER(src/config.h:src/config.in) AC_CONFIG_SRCDIR(src/lisp.h) @@ -75,15 +75,15 @@ fi AH_TEMPLATE(MAIL_USE_POP, [Define to support POP mail retrieval.])dnl OPTION_DEFAULT_OFF([kerberos],[support Kerberos-authenticated POP]) -if test "$with_kerberos" = yes; then +if test "$with_kerberos" != no; then AC_DEFINE(KERBEROS) fi AH_TEMPLATE(KERBEROS, [Define to support Kerberos-authenticated POP mail retrieval.])dnl OPTION_DEFAULT_OFF([kerberos5],[support Kerberos version 5 authenticated POP]) -if test "${with_kerberos5}" = yes; then - if test "${with_kerberos}" != yes; then +if test "${with_kerberos5}" != no; then + if test "${with_kerberos}" = no; then with_kerberos=yes AC_DEFINE(KERBEROS) fi @@ -91,13 +91,13 @@ if test "${with_kerberos5}" = yes; then fi OPTION_DEFAULT_OFF([hesiod],[support Hesiod to get the POP server host]) -if test "$with_hesiod" = yes; then +if test "$with_hesiod" != no; then AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.]) fi OPTION_DEFAULT_ON([sound],[don't compile with sound support]) -OPTION_DEFAULT_ON([sync-input],[Process async input synchronously]) +OPTION_DEFAULT_ON([sync-input],[process async input synchronously]) if test "$with_sync_input" = yes; then AC_DEFINE(SYNC_INPUT, 1, [Process async input synchronously.]) fi @@ -133,7 +133,6 @@ OPTION_DEFAULT_ON([gif],[don't compile with GIF image support]) OPTION_DEFAULT_ON([png],[don't compile with PNG image support]) OPTION_DEFAULT_ON([rsvg],[don't compile with SVG image support]) -OPTION_DEFAULT_ON([freetype],[don't use Freetype for local font support]) OPTION_DEFAULT_ON([xft],[don't use XFT for anti aliased fonts]) OPTION_DEFAULT_ON([libotf],[don't use libotf for OpenType font support]) OPTION_DEFAULT_ON([m17n-flt],[don't use m17n-flt for text shaping]) @@ -141,7 +140,7 @@ OPTION_DEFAULT_ON([m17n-flt],[don't use m17n-flt for text shaping]) OPTION_DEFAULT_ON([toolkit-scroll-bars],[don't use Motif or Xaw3d scroll bars]) OPTION_DEFAULT_ON([xaw3d],[don't use Xaw3d]) OPTION_DEFAULT_ON([xim],[don't use X11 XIM]) -OPTION_DEFAULT_OFF([carbon],[use Carbon GUI on Mac OS X. This is unsupported!]) +OPTION_DEFAULT_OFF([ns],[use nextstep (Cocoa or GNUstep) windowing system]) OPTION_DEFAULT_ON([gpm],[don't use -lgpm for mouse support on a GNU/Linux console]) OPTION_DEFAULT_ON([dbus],[don't compile with D-Bus support]) @@ -153,27 +152,34 @@ OPTION_DEFAULT_ON([makeinfo],[don't require makeinfo for building manuals]) dnl Can remove these in Emacs 24. AC_ARG_WITH([gtk],, - AC_MSG_ERROR([--with-gtk has been removed. Use --with-x-toolkit to -specify a toolkit.]),,) + [AC_MSG_ERROR([--with-gtk has been removed. Use --with-x-toolkit to +specify a toolkit.])],,) AC_ARG_WITH([gcc],, - AC_MSG_ERROR([--with-gcc has been removed. Set the `CC' environment - variable to specify a compiler.]),,) + [AC_MSG_ERROR([--with-gcc has been removed. Set the `CC' environment +variable to specify a compiler.])],,) AC_ARG_WITH([pkg-config-prog],dnl [AS_HELP_STRING([--with-pkg-config-prog=PATH], - [Path to pkg-config for finding GTK and librsvg])]) + [path to pkg-config for finding GTK and librsvg])]) if test "X${with_pkg_config_prog}" != X; then if test "${with_pkg_config_prog}" != yes; then PKG_CONFIG="${with_pkg_config_prog}" fi fi -AC_ARG_ENABLE(carbon-app, -[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_WITH([gnustep-conf],dnl +[AS_HELP_STRING([--with-gnustep-conf=PATH],[path to GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf])]) +test "X${with_gnustep_conf}" != X && test "${with_gnustep_conf}" != yes && \ + GNUSTEP_CONFIG_FILE="${with_gnustep_conf}" +test "X$GNUSTEP_CONFIG_FILE" = "X" && \ + GNUSTEP_CONFIG_FILE=/etc/GNUstep/GNUstep.conf + +AC_ARG_ENABLE(ns-self-contained, +[AS_HELP_STRING([--disable-ns-self-contained], + [disable self contained build under NeXTstep])], + EN_NS_SELF_CONTAINED=$enableval, + EN_NS_SELF_CONTAINED=yes) AC_ARG_ENABLE(asserts, [AS_HELP_STRING([--enable-asserts], [compile code with asserts enabled])], @@ -289,6 +295,7 @@ case "${canonical}" in alpha*-*-freebsd*) machine=alpha ;; arm*-*-freebsd*) machine=arm ;; ia64-*-freebsd*) machine=ia64 ;; + sparc-*-freebsd*) machine=sparc ;; sparc64-*-freebsd*) machine=sparc ;; powerpc-*-freebsd*) machine=macppc ;; i[3456]86-*-freebsd*) machine=intel386 ;; @@ -302,6 +309,7 @@ case "${canonical}" in case "${canonical}" in alpha*-*-kfreebsd*) machine=alpha ;; ia64-*-kfreebsd*) machine=ia64 ;; + sparc-*-kfreebsd*) machine=sparc ;; sparc64-*-kfreebsd*) machine=sparc ;; powerpc-*-kfreebsd*) machine=macppc ;; i[3456]86-*-kfreebsd*) machine=intel386 ;; @@ -327,6 +335,7 @@ dnl see the `changequote' comment above. arm-*-netbsd*) machine=arm ;; x86_64-*-netbsd*) machine=amdx86-64 ;; hppa-*-netbsd*) machine=hp800 ;; + m68k-*-netbsd*) machine=m68k ;; esac ;; @@ -341,6 +350,7 @@ dnl see the `changequote' comment above. sparc*-*-openbsd*) machine=sparc ;; vax-*-openbsd*) machine=vax ;; x86_64-*-openbsd*) machine=amdx86-64 ;; + hppa-*-openbsd*) machine=hp800 ;; esac ;; @@ -365,7 +375,7 @@ dnl see the `changequote' comment above. *-apple-darwin* ) case "${canonical}" in i[3456]86-* ) machine=intel386 ;; - powerpc-* ) machine=powermac ;; + powerpc-* ) machine=macppc ;; * ) unported=yes ;; esac opsys=darwin @@ -408,7 +418,7 @@ dnl see the `changequote' comment above. rs6000-ibm-aix5* | powerpc-ibm-aix5* ) machine=ibmrs6000 opsys=aix4-2 ;; - rs6000-ibm-aix5* | powerpc-ibm-aix6* ) + rs6000-ibm-aix6* | powerpc-ibm-aix6* ) machine=ibmrs6000 opsys=aix4-2 ;; @@ -433,9 +443,10 @@ dnl see the `changequote' comment above. machine=sparc opsys=gnu-linux ;; - *-auspex-sunos* | *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \ - | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* | powerpc*-*-solaris2* \ - | rs6000-*-solaris2*) + *-sun-solaris* \ + | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* \ + | x86_64-*-solaris2* | x86_64-*-sunos5* \ + | powerpc*-*-solaris2* | rs6000-*-solaris2*) case "${canonical}" in i[3456]86-*-* ) machine=intel386 ;; amd64-*-*|x86_64-*-*) machine=amdx86-64 ;; @@ -463,11 +474,16 @@ dnl see the `changequote' comment above. NON_GNU_CPP=/usr/ccs/lib/cpp RANLIB="ar -ts" ;; - *-sunos5* | *-solaris* ) + *-sunos5.[7-9]* | *-solaris2.[7-9]* ) opsys=sol2-6 emacs_check_sunpro_c=yes NON_GNU_CPP=/usr/ccs/lib/cpp ;; + *-sunos5* | *-solaris* ) + opsys=sol2-10 + emacs_check_sunpro_c=yes + NON_GNU_CPP=/usr/ccs/lib/cpp + ;; esac ## Watch out for a compiler that we know will not work. case "${canonical}" in @@ -518,7 +534,8 @@ dnl see the `changequote' comment above. ;; ## Mips Linux-based GNU system - mips-*-linux-gnu* | mipsel-*-linux-gnu* ) + mips-*-linux-gnu* | mipsel-*-linux-gnu* \ + | mips64-*-linux-gnu* | mips64el-*-linux-gnu* ) machine=mips opsys=gnu-linux ;; @@ -532,6 +549,11 @@ dnl see the `changequote' comment above. machine=xtensa opsys=gnu-linux ;; + ## SuperH Linux-based GNU system + sh[34]*-*-linux-gnu* ) + machine=sh3 opsys=gnu-linux + ;; + * ) unported=yes ;; @@ -882,9 +904,11 @@ AC_SYS_LARGEFILE ### The standard library on x86-64 and s390x GNU/Linux distributions can ### be located in either /usr/lib64 or /usr/lib. +### In some rare cases, /usr/lib64 exists but does not contain the +### relevant files (bug#1287). Hence test for crtn.o. case "${canonical}" in x86_64-*-linux-gnu* | s390x-*-linux-gnu* ) - if test -d /usr/lib64; then + if test -e /usr/lib64/crtn.o; then AC_DEFINE(HAVE_LIB64_DIR, 1, [Define to 1 if the directory /usr/lib64 exists.]) fi @@ -1201,25 +1225,59 @@ 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_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 +HAVE_NS=no +NS_IMPL_COCOA=no +NS_IMPL_GNUSTEP=no +tmp_CPPFLAGS="$CPPFLAGS" +tmp_CFLAGS="$CFLAGS" +CPPFLAGS="$CPPFLAGS -x objective-c" +CFLAGS="$CFLAGS -x objective-c" +if test "${with_ns}" != no; then + if test "${opsys}" = darwin; then + NS_IMPL_COCOA=yes + ns_appdir=`pwd`/nextstep/Emacs.app + ns_appbindir=`pwd`/nextstep/Emacs.app/Contents/MacOS + ns_appresdir=`pwd`/nextstep/Emacs.app/Contents/Resources + ns_appsrc=${srcdir}/nextstep/Cocoa/Emacs.base + elif test -f $GNUSTEP_CONFIG_FILE; then + NS_IMPL_GNUSTEP=yes + ns_appdir=`pwd`/nextstep/Emacs.app + ns_appbindir=`pwd`/nextstep/Emacs.app + ns_appresdir=`pwd`/nextstep/Emacs.app/Resources + ns_appsrc=${srcdir}/nextstep/GNUstep/Emacs.base + dnl FIXME sourcing this 3 times in subshells seems inefficient. + GNUSTEP_MAKEFILES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_MAKEFILES)" + GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)" + GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_LIBRARIES)" + CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS}" + CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS}" + REAL_CFLAGS="$REAL_CFLAGS -I${GNUSTEP_SYSTEM_HEADERS}" + LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES}" + fi + AC_CHECK_HEADER([AppKit/AppKit.h], [HAVE_NS=yes], + [AC_MSG_ERROR([`--with-ns' was specified, but the include + files are missing or cannot be compiled.])]) + NS_HAVE_NSINTEGER=yes + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], + [NSInteger i;])], + ns_have_nsinteger=yes, + ns_have_nsinteger=no) + if test $ns_have_nsinteger = no; then + NS_HAVE_NSINTEGER=no fi fi -if test "${HAVE_CARBON}" = yes; then - window_system=mac +if test "${HAVE_NS}" = yes; then + window_system=nextstep + with_xft=no + # set up packaging dirs + exec_prefix=${ns_appbindir} + libexecdir=${ns_appbindir}/libexec + if test "${EN_NS_SELF_CONTAINED}" = yes; then + prefix=${ns_appresdir} + fi fi +CFLAGS="$tmp_CFLAGS" +CPPFLAGS="$tmp_CPPFLAGS" case "${window_system}" in x11 ) @@ -1238,7 +1296,7 @@ dnl use the toolkit if we have gtk, or X11R5 or newer. * ) USE_X_TOOLKIT=maybe ;; esac ;; - mac | none ) + nextstep | none ) HAVE_X_WINDOWS=no HAVE_X11=no USE_X_TOOLKIT=none @@ -1431,9 +1489,9 @@ fi ### 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 "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes"; then if test "${with_rsvg}" != "no"; then - RSVG_REQUIRED=2.0.0 + RSVG_REQUIRED=2.11.0 RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED" PKG_CHECK_MODULES(RSVG, $RSVG_MODULE, :, :) @@ -1513,15 +1571,28 @@ if test "${HAVE_GTK}" = "yes"; then [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. + dnl Check if we have the old file selection dialog declared and + dnl in the link library. In 2.x it may be in the library, + dnl but not declared if deprecated featured has been selected out. + dnl AC_CHECK_DECL checks for a macro, so check for GTK_TYPE_FILE_SELECTION. HAVE_GTK_FILE_SELECTION=no - AC_CHECK_FUNCS(gtk_file_selection_new, HAVE_GTK_FILE_SELECTION=yes) + AC_CHECK_DECL(GTK_TYPE_FILE_SELECTION, HAVE_GTK_FILE_SELECTION=yes, + HAVE_GTK_FILE_SELECTION=no, [AC_INCLUDES_DEFAULT +#include ]) + if test "$HAVE_GTK_FILE_SELECTION" = yes; then + AC_CHECK_FUNCS(gtk_file_selection_new, HAVE_GTK_FILE_SELECTION=yes, + HAVE_GTK_FILE_SELECTION=no) + fi 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) + AC_CHECK_DECL(GTK_TYPE_FILE_CHOOSER, HAVE_GTK_FILE_CHOOSER=yes, + HAVE_GTK_FILE_CHOOSER=no, [AC_INCLUDES_DEFAULT +#include ]) + if test "$HAVE_GTK_FILE_CHOOSER" = yes; then + AC_CHECK_FUNCS(gtk_file_chooser_dialog_new, HAVE_GTK_FILE_CHOOSER=yes, + HAVE_GTK_FILE_CHOOSER=no) + fi if test "$HAVE_GTK_FILE_SELECTION" = yes \ && test "$HAVE_GTK_FILE_CHOOSER" = yes; then @@ -1707,7 +1778,7 @@ 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 + elif test "${HAVE_NS}" = "yes"; then AC_DEFINE(USE_TOOLKIT_SCROLL_BARS) USE_TOOLKIT_SCROLL_BARS=yes fi @@ -1764,84 +1835,99 @@ either XPointer or XPointer*.])dnl CFLAGS=$late_CFLAGS fi -### Start of font-backend section. +### Start of font-backend (under any platform) section. +# (nothing here yet -- this is a placeholder) +### End of font-backend (under any platform) section. -## Use -lXft if available, unless `--with-freetype=no' nor `--with-xft=no'. -HAVE_XFT=maybe -if test "x${with_freetype}" = "xno"; then - with_xft="no"; -fi -if test "x${with_xft}" != "xno"; then +### Start of font-backend (under X11) section. +if test "${HAVE_X11}" = "yes"; then + PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= 2.2.0, HAVE_FC=yes, HAVE_FC=no) + + ## Use -lXft if available, unless `--with-xft=no'. + HAVE_XFT=maybe + if test "${HAVE_FC}" = "no" || test "x${with_x}" = "xno"; then + with_xft="no"; + fi + if test "x${with_xft}" != "xno"; then + + PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no) + if test "$HAVE_XFT" != no; then + OLD_CPPFLAGS="$CPPFLAGS" + OLD_CFLAGS="$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 + CPPFLAGS="$OLD_CPPFLAGS" + CFLAGS="$OLD_CFLAGS" + LIBS="$OLD_LIBS" + fi # "${HAVE_XFT}" = "yes" + fi # "$HAVE_XFT" != no + fi # "x${with_xft}" != "xno" + + dnl For the "Does Emacs use" message at the end. + if test "$HAVE_XFT" != "yes"; then + HAVE_XFT=no + fi - PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no) - if test "$HAVE_XFT" != no; then - OLD_CPPFLAGS="$CPPFLAGS" - OLD_CFLAGS="$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)) + HAVE_FREETYPE=no + ## We used to allow building with FreeType and without Xft. + ## However, the ftx font backend driver is not in good shape. 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 - CPPFLAGS="$OLD_CPPFLAGS" - CFLAGS="$OLD_CFLAGS" - LIBS="$OLD_LIBS" - fi # "${HAVE_XFT}" = "yes" - fi # "$HAVE_XFT" != no -fi # "x${with_xft}" != "xno" - -dnl For the "Does Emacs use" message at the end. -if test "$HAVE_XFT" != "yes"; then - HAVE_XFT=no -fi - - -HAVE_FREETYPE=no -### Use -lfreetype if available, unless `--with-freetype=no'. -if test "${HAVE_XFT}" = "yes"; then - dnl As we use Xft, we anyway use freetype. - dnl In this case, there's no need of additional CFLAGS and LIBS. - HAVE_FREETYPE=yes -elif test "x${with_freetype}" != "xno"; then - - PKG_CHECK_MODULES(FREETYPE, freetype2, HAVE_FREETYPE=yes, HAVE_FREETYPE=no) - if test "${HAVE_FREETYPE}" = "yes"; then - PKG_CHECK_MODULES(FONTCONFIG, fontconfig, HAVE_FC=yes, HAVE_FC=no) - if test "${HAVE_FC}" = "no"; then - dnl Without fontconfig, we can't use freetype at the moment. - HAVE_FREETYPE=no + dnl As we use Xft, we anyway use freetype. + dnl There's no need for additional CFLAGS and LIBS. + HAVE_FREETYPE=yes + FONTCONFIG_CFLAGS= + FONTCONFIG_LIBS= fi - fi -fi -HAVE_LIBOTF=no -if test "${HAVE_FREETYPE}" = "yes"; then - AC_DEFINE(HAVE_FREETYPE, 1, - [Define to 1 if using the freetype and fontconfig libraries.]) - if test "${with_libotf}" != "no"; then - PKG_CHECK_MODULES(LIBOTF, libotf, HAVE_LIBOTF=yes, - HAVE_LIBOTF=no) - if test "$HAVE_LIBOTF" = "yes"; then - AC_DEFINE(HAVE_LIBOTF, 1, [Define to 1 if using libotf.]) + HAVE_LIBOTF=no + if test "${HAVE_FREETYPE}" = "yes"; then + AC_DEFINE(HAVE_FREETYPE, 1, + [Define to 1 if using the freetype and fontconfig libraries.]) + if test "${with_libotf}" != "no"; then + PKG_CHECK_MODULES(LIBOTF, libotf, HAVE_LIBOTF=yes, + HAVE_LIBOTF=no) + if test "$HAVE_LIBOTF" = "yes"; then + AC_DEFINE(HAVE_LIBOTF, 1, [Define to 1 if using libotf.]) + AC_CHECK_LIB(otf, OTF_get_variation_glyphs, + HAVE_OTF_GET_VARIATION_GLYPHS=yes, + HAVE_OTF_GET_VARIATION_GLYPHS=no) + if test "${HAVE_OTF_GET_VARIATION_GLYPHS}" = "yes"; then + AC_DEFINE(HAVE_OTF_GET_VARIATION_GLYPHS, 1, + [Define to 1 if libotf has OTF_get_variation_glyphs.]) + fi + fi + fi + dnl FIXME should there be an error if HAVE_FREETYPE != yes? + dnl Does the new font backend require it, or can it work without it? fi - fi -dnl FIXME should there be an error if HAVE_FREETYPE != yes? -dnl Does the new font backend require it, or can it work without it? -fi -HAVE_M17N_FLT=no -if test "${with_m17n_flt}" != "no"; then - PKG_CHECK_MODULES(M17N_FLT, m17n-flt, HAVE_M17N_FLT=yes, HAVE_M17N_FLT=no) - if test "$HAVE_M17N_FLT" = "yes"; then - AC_DEFINE(HAVE_M17N_FLT, 1, [Define to 1 if using libm17n-flt.]) - fi + HAVE_M17N_FLT=no + if test "${HAVE_LIBOTF}" = yes; then + if test "${with_m17n_flt}" != "no"; then + PKG_CHECK_MODULES(M17N_FLT, m17n-flt, HAVE_M17N_FLT=yes, HAVE_M17N_FLT=no) + if test "$HAVE_M17N_FLT" = "yes"; then + AC_DEFINE(HAVE_M17N_FLT, 1, [Define to 1 if using libm17n-flt.]) + fi + fi + fi +else + HAVE_XFT=no + HAVE_FREETYPE=no + HAVE_LIBOTF=no + HAVE_M17N_FLT=no fi +### End of font-backend (under X11) section. AC_SUBST(FREETYPE_CFLAGS) AC_SUBST(FREETYPE_LIBS) @@ -1852,8 +1938,6 @@ AC_SUBST(LIBOTF_LIBS) AC_SUBST(M17N_FLT_CFLAGS) AC_SUBST(M17N_FLT_LIBS) -### End of font-backend section. - ### Use -lXpm if available, unless `--with-xpm=no'. HAVE_XPM=no if test "${HAVE_X11}" = "yes"; then @@ -2004,22 +2088,25 @@ 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.]) - AC_CHECK_HEADERS(AvailabilityMacros.h) - ## Specify the install directory - carbon_appdir= - if test "${carbon_appdir_x}" != ""; then - case ${carbon_appdir_x} in - y | ye | yes) carbon_appdir=/Applications ;; - * ) carbon_appdir=${carbon_appdir_x} ;; - esac +### Use NeXTstep API to implement GUI. +if test "${HAVE_NS}" = "yes"; then + AC_DEFINE(HAVE_NS, 1, [Define to 1 if you are using the NeXTstep API, either GNUstep or Cocoa on Mac OS X.]) + if test "${NS_IMPL_COCOA}" = "yes"; then + AC_DEFINE(NS_IMPL_COCOA, 1, [Define to 1 if you are using NS windowing under MacOS X.]) + GNU_OBJC_CFLAGS= + fi + if test "${NS_IMPL_GNUSTEP}" = "yes"; then + AC_DEFINE(NS_IMPL_GNUSTEP, 1, [Define to 1 if you are using NS windowing under GNUstep.]) + GNU_OBJC_CFLAGS="-fgnu-runtime -Wno-import -fconstant-string-class=NSConstantString -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN -DGSDIAGNOSE" + fi + if test "${NS_HAVE_NSINTEGER}" = "yes"; then + AC_DEFINE(NS_HAVE_NSINTEGER, 1, [Define to 1 if `NSInteger' is defined.]) fi # We also have mouse menus. HAVE_MENUS=yes fi + ### Use session management (-lSM -lICE) if available HAVE_X_SM=no if test "${HAVE_X11}" = "yes"; then @@ -2085,7 +2172,7 @@ 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 setsid \ strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \ -utimes setrlimit setpgid getcwd getwd shutdown getaddrinfo \ +utimes getrlimit 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 sync bzero \ @@ -2157,7 +2244,7 @@ if test "$have_res_init" = yes; then fi # Do we need the Hesiod library to provide the support routines? -if test "$with_hesiod" = yes ; then +if test "$with_hesiod" != no ; then # Don't set $LIBS here -- see comments above. AC_CHECK_FUNC(res_send, , [AC_CHECK_FUNC(__res_send, , [AC_CHECK_LIB(resolv, res_send, resolv=yes, @@ -2180,20 +2267,22 @@ if test "$resolv" = yes ; then fi # These tell us which Kerberos-related libraries to use. -if test "${with_kerberos+set}" = set; then +if test "${with_kerberos}" != no; then AC_CHECK_LIB(com_err, com_err) AC_CHECK_LIB(k5crypto, mit_des_cbc_encrypt) AC_CHECK_LIB(crypto, mit_des_cbc_encrypt) AC_CHECK_LIB(krb5, krb5_init_context) - if test "${with_kerberos5+set}" != set; then + if test "${with_kerberos5}" = no; then AC_CHECK_LIB(des425, des_cbc_encrypt,, [AC_CHECK_LIB(des, des_cbc_encrypt)]) AC_CHECK_LIB(krb4, krb_get_cred,, [AC_CHECK_LIB(krb, krb_get_cred)]) fi - if test "${with_kerberos5+set}" = set; then - AC_CHECK_HEADERS(krb5.h) + if test "${with_kerberos5}" != no; then + AC_CHECK_HEADERS(krb5.h, + [AC_CHECK_MEMBERS([krb5_error.text, krb5_error.e_text],,, + [#include ])]) else AC_CHECK_HEADERS(des.h,, [AC_CHECK_HEADERS(kerberosIV/des.h,, @@ -2413,7 +2502,15 @@ AC_SUBST(X_TOOLKIT_TYPE) AC_SUBST(machfile) AC_SUBST(opsysfile) AC_SUBST(GETLOADAVG_LIBS) -AC_SUBST(carbon_appdir) +AC_SUBST(ns_appdir) +AC_SUBST(ns_appbindir) +AC_SUBST(ns_appresdir) +AC_SUBST(ns_appsrc) +AC_SUBST(GNUSTEP_MAKEFILES) +AC_SUBST(GNUSTEP_SYSTEM_HEADERS) +AC_SUBST(GNUSTEP_SYSTEM_LIBRARIES) +AC_SUBST(GNU_OBJC_CFLAGS) +AC_SUBST(LIB_SRC_EXTRA_INSTALLABLES) AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}", [Define to the canonical Emacs configuration name.]) @@ -2477,7 +2574,7 @@ fi AH_TOP([/* GNU Emacs site configuration template file. Copyright (C) 1988, 1993, 1994, 1999, 2000, 2001, 2002, 2004, 2005, - 2006, 2007, 2008 Free Software Foundation, Inc. + 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -2503,45 +2600,17 @@ along with GNU Emacs. If not, see . */ ])dnl AH_BOTTOM([ -/* If we're using any sort of window system, define some consequences. */ -#ifdef HAVE_X_WINDOWS +/* If we're using X11/Carbon/GNUstep, define some consequences. */ +#if defined(HAVE_X_WINDOWS) || defined(HAVE_NS) #define HAVE_WINDOW_SYSTEM -#define MULTI_KBOARD #define HAVE_MOUSE #endif -/* Multi-tty support relies on MULTI_KBOARD. It seems safe to turn it - on unconditionally. */ -#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 -#define HAVE_WINDOW_SYSTEM -#define HAVE_MOUSE -#endif - -/* Define USER_FULL_NAME to return a string - that is the user's full name. - It can assume that the variable `pw' - points to the password file entry for this user. - - At some sites, the pw_gecos field contains - the user's full name. If neither this nor any other - field contains the right thing, use pw_name, - giving the user's login name, since that is better than nothing. */ -#define USER_FULL_NAME pw->pw_gecos - /* Define AMPERSAND_FULL_NAME if you use the convention that & in the full name stands for the login id. */ /* Turned on June 1996 supposing nobody will mind it. */ #define AMPERSAND_FULL_NAME -/* We have blockinput.h. */ -#define DO_BLOCK_INPUT - /* Define HAVE_SOUND if we have sound support. We know it works and compiles only on the specified platforms. For others, it probably doesn't make sense to try. */ @@ -2571,27 +2640,33 @@ AH_BOTTOM([ #define INLINE #endif +/* `subprocesses' should be defined if you want to + have code for asynchronous subprocesses + (as used in M-x compile and M-x shell). + Only MSDOS does not support this (it overrides + this in its config_opsysfile below). */ + +#define subprocesses + /* Include the os and machine dependent files. */ #include config_opsysfile #include config_machfile -/* If no remapping takes place, static variables cannot be dumped as - pure, so don't worry about the `static' keyword. */ -#ifdef NO_REMAP -#undef static -#endif - -/* Define `subprocesses' should be defined if you want to - have code for asynchronous subprocesses - (as used in M-x compile and M-x shell). - These do not work for some USG systems yet; - for the ones where they work, the s/SYSTEM.h file defines this flag. */ - -#ifndef VMS -#ifndef USG -/* #define subprocesses */ -#endif -#endif +/* Set up some defines, C and LD flags for NeXTstep interface on GNUstep. + (There is probably a better place to do this, but right now the Cocoa + side does this in s/darwin.h and we cannot + parallel this exactly since GNUstep is multi-OS. */ +#ifdef HAVE_NS +#define OTHER_FILES ns-app +# ifdef NS_IMPL_GNUSTEP +/* See also .m.o rule in Makefile.in */ +/* FIXME: are all these flags really needed? Document here why. */ +# define C_SWITCH_X_SYSTEM -D_REENTRANT -fPIC -fno-strict-aliasing +/* GNUstep needs a bit more pure memory. Of the existing knobs, +SYSTEM_PURESIZE_EXTRA seems like the least likely to cause problems. */ +# define SYSTEM_PURESIZE_EXTRA 30000 +# endif /* NS_IMPL_GNUSTEP */ +#endif /* HAVE_NS */ /* SIGTYPE is the macro we actually use. */ #ifndef SIGTYPE @@ -2801,13 +2876,12 @@ echo " Does Emacs use -lrsvg-2? ${HAVE_RSVG}" echo " Does Emacs use -lgpm? ${HAVE_GPM}" echo " Does Emacs use -ldbus? ${HAVE_DBUS}" -if test "${USE_FONT_BACKEND}" = "yes"; then - echo " Does Emacs use -lfreetype? ${HAVE_FREETYPE}" - echo " Does Emacs use -lm17n-flt? ${HAVE_M17N_FLT}" - echo " Does Emacs use -lotf? ${HAVE_LIBOTF}" - echo " Does Emacs use -lxft? ${HAVE_XFT}" -fi -echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}" +echo " Does Emacs use -lfreetype? ${HAVE_FREETYPE}" +echo " Does Emacs use -lm17n-flt? ${HAVE_M17N_FLT}" +echo " Does Emacs use -lotf? ${HAVE_LIBOTF}" +echo " Does Emacs use -lxft? ${HAVE_XFT}" + +echo " Does Emacs use toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}" echo if test $USE_XASSERTS = yes; then @@ -2827,12 +2901,18 @@ if test "$USE_X_TOOLKIT" = GTK; then esac fi - -if test "$HAVE_CARBON" = "yes"; then +if test "$HAVE_NS" = "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 "You must run \"make install\" in order to test the built application. +The installed application will go to nextstep/Emacs.app and can be +run or moved from there." + if test "$EN_NS_SELF_CONTAINED" = "yes"; then + echo "The application will be fully self-contained." + else + echo "The lisp resources for the application will be installed under ${prefix}. +You may need to run \"make install\" with sudo. The application will fail +to run if these resources are not installed." + fi echo fi @@ -2848,6 +2928,16 @@ fi test "${exec_prefix}" != NONE && exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`] +# Now get this: Some word that is part of the ${srcdir} directory name +# or the ${configuration} value might, just might, happen to be an +# identifier like `sun4' or `i386' or something, and be predefined by +# the C preprocessor to some helpful value like 1, or maybe the empty +# string. Needless to say consequent macro substitutions are less +# than conducive to the makefile finding the correct directory. +[cpp_undefs="`echo $srcdir $configuration $canonical | + sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \ + -e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g'`"] + ## Check if the C preprocessor will convert `..' to `. .'. If so, set ## CPP_NEED_TRADITIONAL to `yes' so that the code to generate Makefile ## from Makefile.c can correctly provide the arg `-traditional' to the @@ -2872,17 +2962,6 @@ done # and lib-src/Makefile from ${srcdir}/lib-src/Makefile.c # This must be done after src/config.h is built, since we rely on that file. -# Now get this: Some word that is part of the ${srcdir} directory name -# or the ${configuration} value might, just might, happen to be an -# identifier like `sun4' or `i386' or something, and be predefined by -# the C preprocessor to some helpful value like 1, or maybe the empty -# string. Needless to say consequent macro substitutions are less -# than conducive to the makefile finding the correct directory. -[undefs="`echo $top_srcdir $configuration $canonical | -sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \ - -e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g' \ -`"] - echo creating src/epaths.h ${MAKE-make} epaths-force @@ -2901,7 +2980,7 @@ echo creating lib-src/Makefile sed -e '1,/start of cpp stuff/d'\ -e 's,/\*\*/#\(.*\)$,/* \1 */,' \ < Makefile.c > junk.c - $CPP $undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \ + $CPP $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \ sed -e 's/^ / /' -e '/^#/d' -e '/^[ ]*$/d' > junk2.c cat junk1.c junk2.c > Makefile.new rm -f junk.c junk1.c junk2.c @@ -2917,7 +2996,7 @@ echo creating src/Makefile sed -e '1,/start of cpp stuff/d'\ -e 's,/\*\*/#\(.*\)$,/* \1 */,' \ < Makefile.c > junk.c - $CPP $undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \ + $CPP $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \ sed -e 's/^ / /' -e '/^#/d' -e '/^[ ]*$/d' > junk2.c cat junk1.c junk2.c > Makefile.new rm -f junk.c junk1.c junk2.c @@ -2930,7 +3009,7 @@ if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then echo source $srcdir/src/.gdbinit > src/.gdbinit fi -], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS"]) +], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS" cpp_undefs="$cpp_undefs"]) m4_if(dnl Do not change this comment arch-tag: 156a4dd5-bddc-4d18-96ac-f37742cf6a5e