X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/aea07e2c6e54733804d0be54e97d44fcb3df63dd..b084415e278d54c6f9ee8406b1af8adc2364576c:/configure.ac diff --git a/configure.ac b/configure.ac index bd8278d3b7..8e74f799ec 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ dnl autoconf dnl in the directory containing this script. dnl If you changed any AC_DEFINES, also run autoheader. dnl -dnl Copyright (C) 1994-1996, 1999-2013 Free Software Foundation, Inc. +dnl Copyright (C) 1994-1996, 1999-2014 Free Software Foundation, Inc. dnl dnl This file is part of GNU Emacs. dnl @@ -22,7 +22,23 @@ dnl You should have received a copy of the GNU General Public License dnl along with GNU Emacs. If not, see . AC_PREREQ(2.65) -AC_INIT(emacs, 24.3.50) +AC_INIT(emacs, 24.3.92) + +dnl We get MINGW64 with MSYS2 +if test "x$MSYSTEM" = "xMINGW32" -o "x$MSYSTEM" = "xMINGW64" +then + . $srcdir/nt/mingw-cfg.site + + case $srcdir in + /* | ?:*) + # srcdir is an absolute path. In this case, force the format + # "/c/foo/bar", to simplify later conversions to native Windows + # format ("c:/foo/bar") + srcdir=`cd "${srcdir}" && pwd -W` + srcdir="/${srcdir:0:1}${srcdir:2}" + ;; + esac +fi dnl Set emacs_config_options to the options of 'configure', quoted for the shell, dnl and then quoted again for a C string. Separate options with spaces. @@ -63,9 +79,25 @@ for opt in ${1+"$@"} CFLAGS CPPFLAGS LDFLAGS; do optsep=' ' done -AC_CONFIG_HEADER(src/config.h:src/config.in) +AC_CONFIG_HEADERS(src/config.h:src/config.in) AC_CONFIG_SRCDIR(src/lisp.h) AC_CONFIG_AUX_DIR(build-aux) + +xcsdkdir= +AC_CHECK_PROGS(XCRUN, [xcrun]) +if test -n "$XCRUN"; then + if test -z "$MAKE"; then + dnl Call the variable MAKE_PROG, not MAKE, to avoid confusion with + dnl SET_MAKE and with the usual MAKE variable that 'make' itself uses. + AC_CHECK_PROG([MAKE_PROG], [make], [yes]) + if test -z "$MAKE_PROG"; then + MAKE="$XCRUN MAKE" + export MAKE + xcsdkdir=`$XCRUN --show-sdk-path 2>/dev/null` + fi + fi +fi + dnl Fairly arbitrary, older versions might work too. AM_INIT_AUTOMAKE(1.11) @@ -78,8 +110,7 @@ dnl hence the single quotes. This is per the GNU coding standards, see dnl (autoconf) Installation Directory Variables dnl See also epaths.h below. lispdir='${datadir}/emacs/${version}/lisp' -leimdir='${datadir}/emacs/${version}/leim' -standardlisppath='${lispdir}:${leimdir}' +standardlisppath='${lispdir}' locallisppath='${datadir}/emacs/${version}/site-lisp:'\ '${datadir}/emacs/site-lisp' lisppath='${locallisppath}:${standardlisppath}' @@ -93,8 +124,8 @@ AC_ARG_WITH(all, [AS_HELP_STRING([--without-all], [omit almost all features and build small executable with minimal dependencies])], - with_features=$withval, - with_features=yes) + [with_features=$withval], + [with_features=yes]) dnl OPTION_DEFAULT_OFF(NAME, HELP-STRING) dnl Create a new --with option that defaults to being disabled. @@ -211,6 +242,7 @@ fi dnl _ON results in a '--without' option in the --help output, so dnl the help text should refer to "don't compile", etc. +with_xpm_set=${with_xpm+set} OPTION_DEFAULT_ON([xpm],[don't compile with XPM image support]) OPTION_DEFAULT_ON([jpeg],[don't compile with JPEG image support]) OPTION_DEFAULT_ON([tiff],[don't compile with TIFF image support]) @@ -437,14 +469,8 @@ dnl quotation begins ### If you add support for a new configuration, add code to this ### switch statement to recognize your configuration name and select -### the appropriate operating system file. - -### You would hope that you could choose an s/*.h -### file based on the operating system portion. However, it turns out -### that each s/*.h file is pretty manufacturer-specific. -### So we basically have to have a special case for each -### configuration name. -### +### the appropriate opsys. + ### As far as handling version numbers on operating systems is ### concerned, make sure things will fail in a fixable way. If ### /etc/MACHINES doesn't say anything about version numbers, be @@ -480,7 +506,7 @@ case "${canonical}" in ;; ## OpenBSD ports - *-*-openbsd* ) + *-*-openbsd* | *-*-mirbsd* ) opsys=openbsd ;; @@ -525,7 +551,7 @@ case "${canonical}" in rs6000-ibm-aix[56]* ) opsys=aix4-2 ;; - powerpc-ibm-aix[56]* ) + powerpc-ibm-aix[5-9]* | powerpc-ibm-aix[1-9][0-9]* ) opsys=aix4-2 ;; @@ -550,6 +576,10 @@ case "${canonical}" in * ) unported=yes ;; esac case "${canonical}" in + *-sunos5.[1-9][0-9]* | *-solaris2.[1-9][0-9]* ) + opsys=sol2-10 + emacs_check_sunpro_c=yes + ;; *-sunos5.6* | *-solaris2.6* ) opsys=sol2-6 RANLIB="ar -ts" @@ -558,10 +588,6 @@ case "${canonical}" in opsys=sol2-6 emacs_check_sunpro_c=yes ;; - *-sunos5* | *-solaris* ) - opsys=sol2-10 - emacs_check_sunpro_c=yes - ;; esac ## Watch out for a compiler that we know will not work. case "${canonical}" in @@ -592,6 +618,18 @@ case "${canonical}" in esac ;; + # MinGW64 + x86_64-*-* ) + case "${canonical}" in + *-mingw32 ) + opsys=mingw32 + # MinGW overrides and adds some system headers in nt/inc. + GCC_TEST_OPTIONS="-I $srcdir/nt/inc" + ;; + ## Otherwise, we'll fall through to the generic opsys code at the bottom. + esac + ;; + * ) unported=yes ;; @@ -616,7 +654,8 @@ fi dnl quotation ends if test $unported = yes; then - AC_MSG_ERROR([Emacs hasn't been ported to `${canonical}' systems. + AC_MSG_ERROR([Emacs does not support `${canonical}' systems. +If you think it should, please send a report to bug-gnu-emacs@gnu.org. Check `etc/MACHINES' for recognized configuration names.]) fi @@ -624,7 +663,12 @@ fi #### Choose a compiler. dnl Sets GCC=yes if using gcc. -AC_PROG_CC +AC_PROG_CC([gcc cc cl clang "$XCRUN gcc" "$XCRUN clang"]) +if test -n "$XCRUN"; then + AC_CHECK_PROGS(AR, [ar "$XCRUN ar"]) + test -n "$AR" && export AR +fi + AM_PROG_CC_C_O if test x$GCC = xyes; then @@ -638,6 +682,8 @@ dnl alternative to lib/gnulib.mk, so as to avoid generating header files dnl that clash with MinGW. AM_CONDITIONAL([BUILDING_FOR_WINDOWSNT], [test "x$opsys" = "xmingw32"]) +# Avoid gnulib's tests for -lcrypto, so that there's no static dependency on it. +AC_DEFUN([gl_CRYPTO_CHECK]) # Avoid gnulib's tests for HAVE_WORKING_O_NOATIME and HAVE_WORKING_O_NOFOLLOW, # as we don't use them. AC_DEFUN([gl_FCNTL_O_FLAGS]) @@ -711,7 +757,10 @@ AC_ARG_ENABLE([gcc-warnings], AC_ARG_ENABLE(link-time-optimization, [AS_HELP_STRING([--enable-link-time-optimization], [build emacs with link-time optimization. - This is supported only for GCC since 4.5.0.])], + This requires GCC 4.5.0 or later. + It also makes Emacs harder to debug, and when we tried it + with GCC 4.9.0 x86-64 it made Emacs slower, so it's not + recommended for typical use.])], if test "${enableval}" != "no"; then AC_MSG_CHECKING([whether link-time optimization is supported]) ac_lto_supported=no @@ -731,33 +780,21 @@ if test "${enableval}" != "no"; then AC_MSG_RESULT([$ac_lto_supported]) if test "$ac_lto_supported" = "yes"; then CFLAGS="$CFLAGS $LTO" + dnl The following is needed for GCC 4.9.0. The GCC 4.9.0 release notes + dnl suggest that instead of -ffat-lto-objects we should use gcc-ar and + dnl gcc-ranlib in place of ar and ranlib, but gcc-ar makes /usr/bin/ar + dnl dump core on Fedora 20, so play it safe for now. + gl_COMPILER_OPTION_IF([-ffat-lto-objects], + [CFLAGS="$CFLAGS -ffat-lto-objects"]) fi fi) -# gl_GCC_VERSION_IFELSE([major], [minor], [run-if-found], [run-if-not-found]) -# ------------------------------------------------ -# If $CPP is gcc-MAJOR.MINOR or newer, then run RUN-IF-FOUND. -# Otherwise, run RUN-IF-NOT-FOUND. -AC_DEFUN([gl_GCC_VERSION_IFELSE], - [AC_PREPROC_IFELSE( - [AC_LANG_PROGRAM( - [[ -#if ($1) < __GNUC__ || (($1) == __GNUC__ && ($2) <= __GNUC_MINOR__) -/* ok */ -#else -# error "your version of gcc is older than $1.$2" -#endif - ]]), - ], [$3], [$4]) - ] -) - # clang is unduly picky about some things. AC_CACHE_CHECK([whether the compiler is clang], [emacs_cv_clang], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #ifndef __clang__ - #error "not clang" + error "not clang"; #endif ]])], [emacs_cv_clang=yes], @@ -870,6 +907,12 @@ else AC_SUBST([GNULIB_WARN_CFLAGS]) fi +edit_cflags=" + s,///*,/,g + s/^/ / + s/ -I/ $isystem/g + s/^ // +" dnl Some other nice autoconf tests. @@ -893,11 +936,21 @@ rm -f conf$$ conf$$.file LN_S_FILEONLY='cp -p' +dnl On MinGW, ensure we will call the MSYS /bin/ln.exe, not some +dnl random program in the current directory. if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then - LN_S_FILEONLY='ln -s' + if test "$opsys" = "mingw32"; then + LN_S_FILEONLY='/bin/ln -s' + else + LN_S_FILEONLY='ln -s' + fi elif ln conf$$.file conf$$ 2>/dev/null; then - LN_S_FILEONLY=ln + if test "$opsys" = "mingw32"; then + LN_S_FILEONLY=/bin/ln + else + LN_S_FILEONLY=ln + fi fi fi @@ -919,9 +972,18 @@ dnl executables at "make install" time. dnl See http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00475.html dnl for more details. if test "$opsys" = "mingw32"; then - LN_S="ln" + LN_S="/bin/ln" fi +dnl On some Debian versions, "install-info" prints irritating messages +dnl "This is not dpkg install-info anymore, but GNU install-info" +dnl if called via an absolute file name. +dnl Use the entirely-identical-but-quieter ginstall-info instead if present. +dnl Sadly some people may have an old ginstall-info installed on +dnl non-Debian systems, so we can't use this. +dnl AC_PATH_PROGS(INSTALL_INFO, [ginstall-info install-info], :, +dnl $PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin) + AC_PATH_PROG(INSTALL_INFO, install-info, :, $PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin) dnl Don't use GZIP, which is used by gzip for additional parameters. @@ -939,6 +1001,24 @@ if test $opsys = gnu-linux; then [if $PAXCTL -v conftest$EXEEXT >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no); PAXCTL=""; fi]) fi + + if test "${SETFATTR+set}" != set; then + AC_CACHE_CHECK([for setfattr], + [emacs_cv_prog_setfattr], + [touch conftest.tmp + if (setfattr -n user.pax.flags conftest.tmp) >/dev/null 2>&1; then + emacs_cv_prog_setfattr=yes + else + emacs_cv_prog_setfattr=no + fi]) + if test "$emacs_cv_prog_setfattr" = yes; then + SETFATTR=setfattr + else + SETFATTR= + fi + rm -f conftest.tmp + AC_SUBST([SETFATTR]) + fi fi ## Need makeinfo >= 4.7 (?) to build the manuals. @@ -958,11 +1038,11 @@ fi ## pre-built, and not deleted by the normal clean rules. makeinfo is ## therefore in the category of "special tools" not normally required, which ## configure does not have to check for (eg autoconf itself). -## In a Bazaar checkout on the other hand, the manuals are not included. -## So makeinfo is a requirement to build from Bazaar, and configure +## In a repository checkout on the other hand, the manuals are not included. +## So makeinfo is a requirement to build from the repository, and configure ## should test for it as it does for any other build requirement. ## We use the presence of $srcdir/info/emacs to distinguish a release, -## with pre-built manuals, from a Bazaar checkout. +## with pre-built manuals, from a repository checkout. HAVE_MAKEINFO=yes if test "$MAKEINFO" = "no"; then @@ -1032,6 +1112,21 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], LDFLAGS="$late_LDFLAGS" +AC_CACHE_CHECK([whether addresses are sanitized], + [emacs_cv_sanitize_address], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#ifndef __has_feature + #define __has_feature(f) 0 + #endif + #if defined __SANITIZE_ADDRESS__ || __has_feature (address_sanitizer) + #else + error "Addresses are not sanitized."; + #endif + ]])], + [emacs_cv_sanitize_address=yes], + [emacs_cv_sanitize_address=no])]) + dnl The function dump-emacs will not be defined and temacs will do dnl (load "loadup") automatically unless told otherwise. test "x$CANNOT_DUMP" = "x" && CANNOT_DUMP=no @@ -1039,8 +1134,11 @@ case "$opsys" in your-opsys-here) CANNOT_DUMP=yes ;; esac -test "$CANNOT_DUMP" = "yes" && \ +if test "$CANNOT_DUMP" = "yes"; then AC_DEFINE(CANNOT_DUMP, 1, [Define if Emacs cannot be dumped on your system.]) +elif test "$emacs_cv_sanitize_address" = yes; then + AC_MSG_WARN([[Addresses are sanitized; suggest CANNOT_DUMP=yes]]) +fi AC_SUBST(CANNOT_DUMP) @@ -1160,7 +1258,12 @@ C_SWITCH_SYSTEM= ## additional optimization. --nils@exp-math.uni-essen.de test "$opsys" = "aix4.2" && test "x$GCC" != "xyes" && \ C_SWITCH_SYSTEM="-ma -qmaxmem=4000" -test "$opsys" = "mingw32" && C_SWITCH_SYSTEM="-mtune=pentium4" +if test "$opsys" = "mingw32"; then + case "$canonical" in + x86_64-*-mingw32) C_SWITCH_SYSTEM="-mtune=generic" ;; + *) C_SWITCH_SYSTEM="-mtune=pentium4" ;; + esac +fi ## gnu-linux might need -D_BSD_SOURCE on old libc5 systems. ## It is redundant in glibc2, since we define _GNU_SOURCE. AC_SUBST(C_SWITCH_SYSTEM) @@ -1262,12 +1365,6 @@ AC_DEFUN([PKG_CHECK_MODULES], [ if "$PKG_CONFIG" --exists "$2" 2>&AS_MESSAGE_LOG_FD && $1_CFLAGS=`"$PKG_CONFIG" --cflags "$2" 2>&AS_MESSAGE_LOG_FD` && $1_LIBS=`"$PKG_CONFIG" --libs "$2" 2>&AS_MESSAGE_LOG_FD`; then - edit_cflags=" - s,///*,/,g - s/^/ / - s/ -I/ $isystem/g - s/^ // - " $1_CFLAGS=`AS_ECHO(["$$1_CFLAGS"]) | sed -e "$edit_cflags"` $1_LIBS=`AS_ECHO(["$$1_LIBS"]) | sed -e 's,///*,/,g'` AC_MSG_RESULT([yes CFLAGS='$$1_CFLAGS' LIBS='$$1_LIBS']) @@ -1616,7 +1713,7 @@ fail; #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040 ; /* OK */ #else -#error "OSX 10.4 or newer required" + error "OSX 10.4 or newer required"; #endif #endif ])], @@ -1634,7 +1731,7 @@ fail; #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 ; /* OK */ #else -#error "OSX 10.5 not found" + error "OSX 10.5 not found"; #endif #endif ])], @@ -1681,7 +1778,6 @@ if test "${HAVE_NS}" = yes; then infodir="\${ns_appresdir}/info" mandir="\${ns_appresdir}/man" lispdir="\${ns_appresdir}/lisp" - leimdir="\${ns_appresdir}/leim" INSTALL_ARCH_INDEP_EXTRA= fi @@ -1753,7 +1849,6 @@ if test "${HAVE_W32}" = "yes"; then x86_64-*-*) EMACS_MANIFEST="emacs-x64.manifest" ;; *) EMACS_MANIFEST="emacs-x86.manifest" ;; esac - UPDATE_MANIFEST=update-game-score.exe.manifest if test "${opsys}" = "cygwin"; then W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32" W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool" @@ -1761,6 +1856,7 @@ if test "${HAVE_W32}" = "yes"; then # the rc file), not a linker script. W32_RES_LINK="-Wl,emacs.res" else + UPDATE_MANIFEST=update-game-score.exe.manifest W32_OBJ="$W32_OBJ w32.o w32console.o w32heap.o w32inevt.o w32proc.o" W32_LIBS="$W32_LIBS -lwinmm -lgdi32 -lcomdlg32" W32_LIBS="$W32_LIBS -lmpr -lwinspool -lole32 -lcomctl32 -lusp10" @@ -1857,7 +1953,7 @@ if test "$window_system" = none && test "X$with_x" != "Xno"; then 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 +and for the toolkit you want, such as Gtk+ 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 @@ -1866,9 +1962,6 @@ to configure.]) fi fi -### We always support menus. -HAVE_MENUS=yes - # Does the opsystem file prohibit the use of the GNU malloc? # Assume not, until told otherwise. GNU_MALLOC=yes @@ -1876,20 +1969,21 @@ GNU_MALLOC=yes AC_CACHE_CHECK( [whether malloc is Doug Lea style], [emacs_cv_var_doug_lea_malloc], - [AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include - static void hook (void) {}]], - [[malloc_set_state (malloc_get_state ()); - __after_morecore_hook = hook; - __malloc_initialize_hook = hook;]])], - [emacs_cv_var_doug_lea_malloc=yes], - [emacs_cv_var_doug_lea_malloc=no])]) + [emacs_cv_var_doug_lea_malloc=no + dnl Hooks do not work with address sanitization. + if test "$emacs_cv_sanitize_address" != yes; then + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include + static void hook (void) {}]], + [[malloc_set_state (malloc_get_state ()); + __after_morecore_hook = hook; + __malloc_initialize_hook = hook;]])], + [emacs_cv_var_doug_lea_malloc=yes])]) + fi doug_lea_malloc=$emacs_cv_var_doug_lea_malloc - -dnl See comments in aix4-2.h about maybe using system malloc there. -system_malloc=no +system_malloc=$emacs_cv_sanitize_address case "$opsys" in ## darwin ld insists on the use of malloc routines in the System framework. darwin|sol2-10) system_malloc=yes ;; @@ -1990,6 +2084,18 @@ if test "$HAVE_PTHREAD" = yes; then LIBS="$LIB_PTHREAD $LIBS" ;; esac AC_DEFINE(HAVE_PTHREAD, 1, [Define to 1 if you have pthread (-lpthread).]) + + # Some systems optimize for single-threaded programs by default, and + # need special flags to disable these optimizations. For example, the + # definition of 'errno' in . + case $opsys in + sol*) + AC_DEFINE([_REENTRANT], 1, + [Define to 1 if your system requires this in multithreaded code.]);; + aix4-2) + AC_DEFINE([_THREAD_SAFE], 1, + [Define to 1 if your system requires this in multithreaded code.]);; + esac fi AC_SUBST([LIB_PTHREAD]) @@ -2138,19 +2244,21 @@ if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes" || test "${opsys}" = if test $HAVE_RSVG = yes; then AC_DEFINE(HAVE_RSVG, 1, [Define to 1 if using librsvg.]) CFLAGS="$CFLAGS $RSVG_CFLAGS" + # Windows loads librsvg dynamically + if test "${opsys}" = "mingw32"; then + RSVG_LIBS= + fi LIBS="$RSVG_LIBS $LIBS" fi fi fi HAVE_IMAGEMAGICK=no -if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes"; then +if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes" || test "${HAVE_W32}" = "yes"; then if test "${with_imagemagick}" != "no"; then - ## 6.2.8 is the earliest version known to work, but earlier versions - ## might work - let us know if you find one. - ## 6.0.7 does not work. See bug#7955. + ## 6.3.5 is the earliest version known to work; see Bug#17339. ## 6.8.2 makes Emacs crash; see Bug#13867. - IMAGEMAGICK_MODULE="Wand >= 6.2.8 Wand != 6.8.2" + IMAGEMAGICK_MODULE="Wand >= 6.3.5 Wand != 6.8.2" PKG_CHECK_MODULES(IMAGEMAGICK, $IMAGEMAGICK_MODULE, HAVE_IMAGEMAGICK=yes, :) AC_SUBST(IMAGEMAGICK_CFLAGS) AC_SUBST(IMAGEMAGICK_LIBS) @@ -2187,8 +2295,10 @@ if test "${opsys}" != "mingw32"; then gtk_term_header=gtkutil.h USE_GTK_TOOLKIT="GTK3" if test "x$ac_enable_gtk_deprecation_warnings" = x; then - GTK_CFLAGS="$GTK_CFLAGS -DGDK_DISABLE_DEPRECATION_WARNINGS" - GTK_CFLAGS="$GTK_CFLAGS -DGLIB_DISABLE_DEPRECATION_WARNINGS" + AC_DEFINE([GDK_DISABLE_DEPRECATION_WARNINGS], [1], + [Define to 1 to disable GTK+/GDK deprecation warnings.]) + AC_DEFINE([GLIB_DISABLE_DEPRECATION_WARNINGS], [1], + [Define to 1 to disable Glib deprecation warnings.]) fi else check_gtk2=yes @@ -2214,7 +2324,6 @@ 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" @@ -2344,9 +2453,31 @@ HAVE_GSETTINGS=no if test "${HAVE_X11}" = "yes" && test "${with_gsettings}" = "yes"; then PKG_CHECK_MODULES(GSETTINGS, gio-2.0 >= 2.26, HAVE_GSETTINGS=yes, HAVE_GSETTINGS=no) if test "$HAVE_GSETTINGS" = "yes"; then - AC_DEFINE(HAVE_GSETTINGS, 1, [Define to 1 if using GSettings.]) - SETTINGS_CFLAGS="$GSETTINGS_CFLAGS" - SETTINGS_LIBS="$GSETTINGS_LIBS" + old_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $GSETTINGS_CFLAGS" + old_LIBS=$LIBS + LIBS="$LIBS $GSETTINGS_LIBS" + AC_MSG_CHECKING([whether GSettings is in gio]) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[/* Check that gsettings really is present. */ + #include + #include + ]], + [[ + GSettings *settings; + GVariant *val = g_settings_get_value (settings, ""); + ]])], + [], HAVE_GSETTINGS=no) + AC_MSG_RESULT([$HAVE_GSETTINGS]) + + if test "$HAVE_GSETTINGS" = "yes"; then + AC_DEFINE(HAVE_GSETTINGS, 1, [Define to 1 if using GSettings.]) + SETTINGS_CFLAGS="$GSETTINGS_CFLAGS" + SETTINGS_LIBS="$GSETTINGS_LIBS" + fi + CFLAGS=$old_CFLAGS + LIBS=$old_LIBS fi fi @@ -2409,9 +2540,6 @@ if test "${with_gnutls}" = "yes" ; then # Windows loads GnuTLS dynamically if test "${opsys}" = "mingw32"; then LIBGNUTLS_LIBS= - else - CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS" - LIBS="$LIBGNUTLS_LIBS $LIBS" fi fi @@ -2878,6 +3006,9 @@ no_return_alloc_pixels fi if test "${HAVE_X11}" = "yes"; then + dnl Avoid Xpm on AIX unless requested, as it crashes; see Bug#17598. + test "$opsys$with_xpm_set" = aix4-2 && with_xpm=no + if test "${with_xpm}" != "no"; then AC_CHECK_HEADER(X11/xpm.h, [AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11)]) @@ -2901,6 +3032,9 @@ no_return_alloc_pixels if test "${HAVE_XPM}" = "yes"; then AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm library (-lXpm).]) LIBXPM=-lXpm + elif test "$opsys,$LUCID_LIBW" = aix4-2,-lXaw; then + dnl AIX -lXaw needs -lXpm linked too; see Bug#17598 Message#152. + LIBXPM=-lXpm fi fi @@ -3002,8 +3136,15 @@ elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then fi if test "${HAVE_PNG}" = "yes"; then - AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).]) - LIBPNG="-lpng -lz -lm" + AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library.]) + + dnl Some systems, eg NetBSD 6, only provide eg "libpng16", not "libpng". + lpng=`libpng-config --libs 2> /dev/null` + case $lpng in + -l*) : ;; + *) lpng="-lpng" ;; + esac + LIBPNG="$lpng -lz -lm" AC_CHECK_DECL(png_longjmp, [], @@ -3239,14 +3380,14 @@ if test "${with_xml2}" != "no"; then # Built-in libxml2 on OS X 10.8 lacks libxml-2.0.pc. if test "${HAVE_LIBXML2}" != "yes" -a "$opsys" = "darwin"; then SAVE_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2" + CPPFLAGS="$CPPFLAGS -I$xcsdkdir/usr/include/libxml2" AC_CHECK_HEADER(libxml/HTMLparser.h, [AC_CHECK_DECL(HTML_PARSE_RECOVER, HAVE_LIBXML2=yes, , [#include ])]) CPPFLAGS="$SAVE_CPPFLAGS" if test "${HAVE_LIBXML2}" = "yes"; then + LIBXML2_CFLAGS="-I'$xcsdkdir/usr/include/libxml2'" LIBXML2_LIBS="-lxml2" - LIBXML2_CFLAGS="-I/usr/include/libxml2" fi fi if test "${HAVE_LIBXML2}" = "yes"; then @@ -3375,7 +3516,6 @@ getrlimit setrlimit shutdown getaddrinfo \ strsignal setitimer \ sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \ gai_strerror getline getdelim sync \ -difftime \ getpwent endpwent getgrent endgrent \ touchlock \ cfmakeraw cfsetspeed copysign __executable_start log2) @@ -3747,6 +3887,10 @@ AC_CHECK_FUNCS(snprintf) dnl Check this late. It depends on what other libraries (lrsvg, Gtk+ etc) dnl Emacs uses. XGSELOBJ= +OLDCFLAGS="$CFLAGS" +OLDLIBS="$LIBS" +CFLAGS="$CFLAGS $GFILENOTIFY_CFLAGS" +LIBS="$LIBS $GFILENOTIFY_LIBS" AC_MSG_CHECKING([whether GLib is linked in]) AC_LINK_IFELSE([AC_LANG_PROGRAM( [[#include @@ -3761,6 +3905,8 @@ if test "${links_glib}" = "yes"; then XGSELOBJ=xgselect.o fi fi +CFLAGS="$OLDCFLAGS" +LIBS="$OLDLIBS" AC_SUBST(XGSELOBJ) dnl Adapted from Haible's version. @@ -3835,12 +3981,22 @@ else AC_DEFINE(NULL_DEVICE, ["/dev/null"]) fi -AH_TEMPLATE(SEPCHAR, [Character that separates PATH elements.]) if test "${opsys}" = "mingw32"; then - AC_DEFINE(SEPCHAR, [';']) + SEPCHAR=';' else - AC_DEFINE(SEPCHAR, [':']) -fi + SEPCHAR=':' +fi +AC_DEFINE_UNQUOTED(SEPCHAR, ['$SEPCHAR'], [Character that separates PATH elements.]) +dnl This is for MinGW, and is used in test/automated/Makefile.in. +dnl The MSYS Bash has heuristics for replacing ':' with ';' when it +dnl decides that a command-line argument to be passed to a MinGW program +dnl is a PATH-style list of directories. But that heuristics plays it +dnl safe, and only does the replacement when it is _absolutely_ sure it +dnl sees a colon-separated list of file names; e.g. ":." is left alone, +dnl which breaks in-tree builds. So we do this manually instead. +dnl Note that we cannot rely on PATH_SEPARATOR, as that one will always +dnl be computed as ':' in MSYS Bash. +AC_SUBST(SEPCHAR) dnl Everybody supports this, except MS-DOS. AC_DEFINE(subprocesses, 1, [Define to enable asynchronous subprocesses.]) @@ -4044,7 +4200,7 @@ case $opsys in cygwin ) AC_DEFINE(PTY_ITERATION, [int i; for (i = 0; i < 1; i++)]) dnl multi-line AC_DEFINEs are hard. :( - AC_DEFINE(PTY_OPEN, [ do { int dummy; sigset_t blocked, procmask; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, &procmask); if (-1 == openpty (&fd, &dummy, pty_name, 0, 0)) fd = -1; pthread_sigmask (SIG_SETMASK, &procmask, 0); if (fd >= 0) emacs_close (dummy); } while (0)]) + AC_DEFINE(PTY_OPEN, [ do { int dummy; sigset_t blocked, procmask; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, &procmask); if (-1 == openpty (&fd, &dummy, pty_name, 0, 0)) fd = -1; pthread_sigmask (SIG_SETMASK, &procmask, 0); if (fd >= 0) emacs_close (dummy); } while (false)]) AC_DEFINE(PTY_NAME_SPRINTF, []) AC_DEFINE(PTY_TTY_NAME_SPRINTF, []) ;; @@ -4057,7 +4213,7 @@ case $opsys in dnl Note that openpty may fork via grantpt on Mac OS X 10.4/Darwin 8. dnl But we don't have to block SIGCHLD because it is blocked in the dnl implementation of grantpt. - AC_DEFINE(PTY_OPEN, [ do { int slave; if (openpty (&fd, &slave, pty_name, NULL, NULL) == -1) fd = -1; else emacs_close (slave); } while (0)]) + AC_DEFINE(PTY_OPEN, [ do { int slave; if (openpty (&fd, &slave, pty_name, NULL, NULL) == -1) fd = -1; else emacs_close (slave); } while (false)]) AC_DEFINE(PTY_NAME_SPRINTF, []) AC_DEFINE(PTY_TTY_NAME_SPRINTF, []) ;; @@ -4076,7 +4232,7 @@ case $opsys in AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptyname = 0; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); if (grantpt (fd) != -1 && unlockpt (fd) != -1) ptyname = ptsname(fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (!ptyname) { emacs_close (fd); return -1; } snprintf (pty_name, PTY_NAME_SIZE, "%s", ptyname); }]) dnl if HAVE_POSIX_OPENPT if test "x$ac_cv_func_posix_openpt" = xyes; then - AC_DEFINE(PTY_OPEN, [do { fd = posix_openpt (O_RDWR | O_CLOEXEC | O_NOCTTY); if (fd < 0 && errno == EINVAL) fd = posix_openpt (O_RDWR | O_NOCTTY); } while (0)]) + AC_DEFINE(PTY_OPEN, [do { fd = posix_openpt (O_RDWR | O_CLOEXEC | O_NOCTTY); if (fd < 0 && errno == EINVAL) fd = posix_openpt (O_RDWR | O_NOCTTY); } while (false)]) AC_DEFINE(PTY_NAME_SPRINTF, []) dnl if HAVE_GETPT elif test "x$ac_cv_func_getpt" = xyes; then @@ -4209,7 +4365,7 @@ case $opsys in # error "not ia64" #endif ]], [[]])], AC_DEFINE(GC_MARK_SECONDARY_STACK(), - [do { extern void *__libc_ia64_register_backing_store_base; __builtin_ia64_flushrs (); mark_memory (__libc_ia64_register_backing_store_base, __builtin_ia64_bsp ());} while (0)], + [do { extern void *__libc_ia64_register_backing_store_base; __builtin_ia64_flushrs (); mark_memory (__libc_ia64_register_backing_store_base, __builtin_ia64_bsp ());} while (false)], [Mark a secondary stack, like the register stack on the ia64.]), []) ;; @@ -4252,7 +4408,7 @@ if test x$GCC = xyes; then else case $opsys in dnl irix: Tested on Irix 6.5. SCM worked on earlier versions. - dragonfly | freebsd | netbsd | openbsd | irix6-5 | sol2* ) + aix* | dragonfly | freebsd | netbsd | openbsd | irix6-5 | sol2* ) AC_DEFINE(GC_SETJMP_WORKS, 1) ;; esac @@ -4467,7 +4623,7 @@ fi version=$PACKAGE_VERSION -copyright="Copyright (C) 2013 Free Software Foundation, Inc." +copyright="Copyright (C) 2014 Free Software Foundation, Inc." AC_DEFINE_UNQUOTED(COPYRIGHT, ["$copyright"], [Short copyright string for this version of Emacs.]) AC_SUBST(copyright) @@ -4488,7 +4644,6 @@ AC_SUBST(libexecdir) AC_SUBST(mandir) AC_SUBST(infodir) AC_SUBST(lispdir) -AC_SUBST(leimdir) AC_SUBST(standardlisppath) AC_SUBST(locallisppath) AC_SUBST(lisppath) @@ -4596,61 +4751,29 @@ AC_SUBST(TOOLKIT_LIBW) if test "${opsys}" != "mingw32"; then if test "$USE_X_TOOLKIT" = "none"; then LIBXT_OTHER="\$(LIBXSM)" - OLDXMENU_TARGET="really-oldXMenu" else LIBXT_OTHER="\$(LIBXMU) -lXt \$(LIBXTR6) -lXext" - OLDXMENU_TARGET="really-lwlib" fi fi AC_SUBST(LIBXT_OTHER) -## The X Menu stuff is present in the X10 distribution, but missing -## from X11. If we have X10, just use the installed library; -## otherwise, use our own copy. if test "${HAVE_X11}" = "yes" ; then AC_DEFINE(HAVE_X11, 1, - [Define to 1 if you want to use version 11 of X windows. - Otherwise, Emacs expects to use version 10.]) - - if test "$USE_X_TOOLKIT" = "none"; then - OLDXMENU="\${oldXMenudir}/libXMenu11.a" - else - OLDXMENU="\${lwlibdir}/liblw.a" - fi - LIBXMENU="\$(OLDXMENU)" + [Define to 1 if you want to use version 11 of X windows.]) LIBX_OTHER="\$(LIBXT) \$(LIBX_EXTRA)" - OLDXMENU_DEPS="\${OLDXMENU} ../src/\${OLDXMENU}" else - ## For a syntactically valid Makefile; not actually used for anything. - ## See comments in src/Makefile.in. - OLDXMENU=nothing - ## FIXME This case (!HAVE_X11 && HAVE_X_WINDOWS) is no longer possible(?). - if test "${HAVE_X_WINDOWS}" = "yes"; then - LIBXMENU="-lXMenu" - else - LIBXMENU= - fi LIBX_OTHER= - OLDXMENU_DEPS= fi +AC_SUBST(LIBX_OTHER) -if test "$HAVE_GTK" = "yes" || test "$HAVE_MENUS" != "yes"; then - OLDXMENU_TARGET= - OLDXMENU=nothing +if test "$HAVE_GTK" = yes || test "$HAVE_X11" != yes; then LIBXMENU= - OLDXMENU_DEPS= +elif test "$USE_X_TOOLKIT" = none; then + LIBXMENU='$(oldXMenudir)/libXMenu11.a' +else + LIBXMENU='$(lwlibdir)/liblw.a' fi - -AC_SUBST(OLDXMENU_TARGET) -AC_SUBST(OLDXMENU) AC_SUBST(LIBXMENU) -AC_SUBST(LIBX_OTHER) -AC_SUBST(OLDXMENU_DEPS) - -if test "${HAVE_MENUS}" = "yes" ; then - AC_DEFINE(HAVE_MENUS, 1, - [Define to 1 if you have mouse menus. (This is supported in all configurations, but the option to specify it remains.)]) -fi if test "${GNU_MALLOC}" = "yes" ; then AC_DEFINE(GNU_MALLOC, 1, @@ -4718,8 +4841,6 @@ LIBS="$LIB_PTHREAD $pre_PKG_CONFIG_LIBS" gl_ASSERT_NO_GNULIB_POSIXCHECK gl_ASSERT_NO_GNULIB_TESTS gl_INIT -gl_STDINT_BITSIZEOF([size_t], [[#include ]]) -AC_CHECK_SIZEOF([size_t]) CFLAGS=$SAVE_CFLAGS LIBS=$SAVE_LIBS @@ -4770,7 +4891,7 @@ case "$opsys" in ## pass a different -entry switch to linker. FIXME: It is better ## to make the entry points the same by changing unexw32.c. case "$canonical" in - x86_64-*-*) LD_SWITCH_SYSTEM_TEMACS="-Wl,-stack,0x00800000 -Wl,-heap,0x00100000 -Wl,-image-base,0x01000000 -Wl,-entry,_start -Wl,-Map,./temacs.map" ;; + x86_64-*-*) LD_SWITCH_SYSTEM_TEMACS="-Wl,-stack,0x00800000 -Wl,-heap,0x00100000 -Wl,-image-base,0x01000000 -Wl,-entry,__start -Wl,-Map,./temacs.map" ;; *) LD_SWITCH_SYSTEM_TEMACS="-Wl,-stack,0x00800000 -Wl,-heap,0x00100000 -Wl,-image-base,0x01000000 -Wl,-entry,__start -Wl,-Map,./temacs.map" ;; esac ;; @@ -4819,7 +4940,7 @@ AC_SUBST(WINDOW_SYSTEM_OBJ) AH_TOP([/* GNU Emacs site configuration template file. -Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2013 +Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2014 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -4897,7 +5018,7 @@ 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 a gif library? ${HAVE_GIF} $LIBGIF" -echo " Does Emacs use -lpng? ${HAVE_PNG}" +echo " Does Emacs use a png library? ${HAVE_PNG} $LIBPNG" echo " Does Emacs use -lrsvg-2? ${HAVE_RSVG}" echo " Does Emacs use imagemagick? ${HAVE_IMAGEMAGICK}" @@ -4999,13 +5120,12 @@ if test -f "$srcdir/$opt_makefile.in"; then fi -dnl admin/ may or may not be present. -opt_makefile=admin/unidata/Makefile - -if test -f "$srcdir/$opt_makefile.in"; then - SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile" +dnl The admin/ directory used to be excluded from tarfiles. +if test -d $srcdir/admin; then + SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES admin/unidata/Makefile admin/grammars/Makefile" AC_CONFIG_FILES([admin/unidata/Makefile]) -fi + AC_CONFIG_FILES([admin/grammars/Makefile]) +fi dnl -d admin SUBDIR_MAKEFILES_IN=`echo " ${SUBDIR_MAKEFILES}" | sed -e 's| | $(srcdir)/|g' -e 's|Makefile|Makefile.in|g'`