X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/4c4c5b9121a550d006d1b57bc2ad97b0415cee9f..7e09ef09a479731d01b1ca46e94ddadd73ac98e3:/configure.ac diff --git a/configure.ac b/configure.ac index d94700018b..f37d08a327 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-2014 Free Software Foundation, Inc. +dnl Copyright (C) 1994-1996, 1999-2015 Free Software Foundation, Inc. dnl dnl This file is part of GNU Emacs. dnl @@ -137,12 +137,39 @@ AM_INIT_AUTOMAKE(1.11) dnl Canonicalize the configuration name. AC_CANONICAL_HOST -canonical=$host -configuration=${host_alias-${build_alias-$host}} -dnl We get MINGW64 with MSYS2, MINGW32 with MSYS. -case $canonical in +case $host in *-mingw*) + + if test -z "$host_alias"; then + + # No --host argument was given to 'configure'; therefore $host + # was set to a default value based on the build platform. But + # this default value may be wrong if we are building from a + # 64-bit MSYS[2] pre-configured to build 32-bit MinGW programs. + # Therefore, we'll try to get the right host platform from the + # compiler's target. + + AC_MSG_CHECKING([the compiler's target]) + if test -z "$CC"; then + cc=gcc + else + cc=$CC + fi + cc_target=`$cc -v 2>&1 | sed -n 's/Target: //p'` + case "$cc_target" in + *-*) host=$cc_target + ;; + "") AC_MSG_ERROR([Impossible to obtain $cc compiler target. +Please explicitly provide --host.]) + ;; + *) AC_MSG_WARN([Compiler reported non-standard target. +Defaulting to $host.]) + ;; + esac + AC_MSG_RESULT([$host]) + fi + . $srcdir/nt/mingw-cfg.site case $srcdir in @@ -157,6 +184,9 @@ case $canonical in esac;; esac +canonical=$host +configuration=${host_alias-${build_alias-$host}} + dnl Support for --program-prefix, --program-suffix and dnl --program-transform-name options AC_ARG_PROGRAM @@ -556,9 +586,8 @@ case "${canonical}" in ## Apple Darwin / Mac OS X *-apple-darwin* ) case "${canonical}" in - i[3456]86-* ) ;; - powerpc-* ) ;; - x86_64-* ) ;; + *-apple-darwin[0-9].*) unported=yes ;; + i[3456]86-* | x86_64-* ) ;; * ) unported=yes ;; esac opsys=darwin @@ -705,7 +734,6 @@ If you think it should, please send a report to ${PACKAGE_BUGREPORT}. Check `etc/MACHINES' for recognized configuration names.]) fi - #### Choose a compiler. dnl Don't bother to test for C89. @@ -901,14 +929,15 @@ else fi AC_DEFINE([lint], [1], [Define to 1 if the compiler is checking for lint.]) - AH_VERBATIM([FORTIFY_SOURCE], + AC_DEFINE([GNULIB_PORTCHECK], [1], [enable some gnulib portability checks]) + AH_VERBATIM([GNULIB_PORTCHECK_FORTIFY_SOURCE], [/* Enable compile-time and run-time bounds-checking, and some warnings, without upsetting glibc 2.15+. */ - #if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__ + #if (defined GNULIB_PORTCHECK && !defined _FORTIFY_SOURCE \ + && defined __OPTIMIZE__ && __OPTIMIZE__) # define _FORTIFY_SOURCE 2 #endif ]) - AC_DEFINE([GNULIB_PORTCHECK], [1], [enable some gnulib portability checks]) # We use a slightly smaller set of warning options for lib/. # Remove the following and save the result in GNULIB_WARN_CFLAGS. @@ -1717,12 +1746,14 @@ if test "${with_ns}" != no; then ns_appbindir=${ns_appdir}/Contents/MacOS ns_appresdir=${ns_appdir}/Contents/Resources ns_appsrc=Cocoa/Emacs.base + ns_fontfile=macfont.o elif test -f $GNUSTEP_CONFIG_FILE; then NS_IMPL_GNUSTEP=yes ns_appdir=`pwd`/nextstep/Emacs.app ns_appbindir=${ns_appdir} ns_appresdir=${ns_appdir}/Resources ns_appsrc=GNUstep/Emacs.base + ns_fontfile=nsfont.o dnl FIXME sourcing this several times in subshells seems inefficient. GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)" GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_LIBRARIES)" @@ -1765,49 +1796,25 @@ fail; macfont_file="" if test "${NS_IMPL_COCOA}" = "yes"; then - AC_MSG_CHECKING([for OSX 10.4 or newer]) + AC_MSG_CHECKING([for OSX 10.6 or newer]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], [ #ifdef MAC_OS_X_VERSION_MAX_ALLOWED -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040 +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 ; /* OK */ #else - error "OSX 10.4 or newer required"; + error "OSX 10.6 or newer required"; #endif #endif ])], - ns_osx_have_104=yes, - ns_osx_have_104=no) - AC_MSG_RESULT([$ns_osx_have_104]) + ns_osx_have_106=yes, + ns_osx_have_106=no) + AC_MSG_RESULT([$ns_osx_have_106]) - if test $ns_osx_have_104 = no; then - AC_MSG_ERROR([`OSX 10.4 or newer is required']); - fi - AC_MSG_CHECKING([for OSX 10.5 or newer]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], - [ -#ifdef MAC_OS_X_VERSION_MAX_ALLOWED -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 - ; /* OK */ -#else - error "OSX 10.5 not found"; -#endif -#endif - ])], - ns_osx_have_105=yes, - ns_osx_have_105=no) - AC_MSG_RESULT([$ns_osx_have_105]) - if test $ns_osx_have_105 = yes; then - macfont_file="macfont.o" + if test $ns_osx_have_106 = no; then + AC_MSG_ERROR([`OSX 10.6 or newer is required']); fi fi - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], - [NSInteger i;])], - ns_have_nsinteger=yes, - ns_have_nsinteger=no) - if test $ns_have_nsinteger = yes; then - AC_DEFINE(NS_HAVE_NSINTEGER, 1, [Define to 1 if `NSInteger' is defined.]) - fi fi AC_SUBST(LIBS_GNUSTEP) @@ -1840,7 +1847,7 @@ if test "${HAVE_NS}" = yes; then INSTALL_ARCH_INDEP_EXTRA= fi - NS_OBJC_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o $macfont_file" + NS_OBJC_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o $ns_fontfile" fi CFLAGS="$tmp_CFLAGS" CPPFLAGS="$tmp_CPPFLAGS" @@ -1908,6 +1915,13 @@ if test "${HAVE_W32}" = "yes"; then x86_64-*-*) EMACS_MANIFEST="emacs-x64.manifest" ;; *) EMACS_MANIFEST="emacs-x86.manifest" ;; esac + dnl Construct something of the form "24,4,0,0" with 4 components. + comma_version=`echo "${PACKAGE_VERSION}.0.0" | sed -e 's/\./,/g' -e 's/^\([[^,]]*,[[^,]]*,[[^,]]*,[[^,]]*\).*/\1/'` + + comma_space_version=`echo "$comma_version" | sed 's/,/, /g'` + AC_SUBST(comma_version) + AC_SUBST(comma_space_version) + AC_CONFIG_FILES([nt/emacs.rc nt/emacsclient.rc]) if test "${opsys}" = "cygwin"; then W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32" W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool" @@ -2585,19 +2599,13 @@ fi AC_SUBST(LIBSELINUX_LIBS) HAVE_GNUTLS=no -HAVE_GNUTLS3=no if test "${with_gnutls}" = "yes" ; then - EMACS_CHECK_MODULES([LIBGNUTLS], [gnutls >= 3.0.0], - [HAVE_GNUTLS3=yes], [HAVE_GNUTLS3=no]) - if test "${HAVE_GNUTLS3}" = "yes"; then - AC_DEFINE(HAVE_GNUTLS3, 1, [Define if using GnuTLS v3.]) - HAVE_GNUTLS="yes" - else - EMACS_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.6.6], - [HAVE_GNUTLS=yes], [HAVE_GNUTLS=no]) - fi + EMACS_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.6.6], + [HAVE_GNUTLS=yes], [HAVE_GNUTLS=no]) if test "${HAVE_GNUTLS}" = "yes"; then AC_DEFINE(HAVE_GNUTLS, 1, [Define if using GnuTLS.]) + EMACS_CHECK_MODULES([LIBGNUTLS3], [gnutls >= 3.0.0], + [AC_DEFINE(HAVE_GNUTLS3, 1, [Define if using GnuTLS v3.])], []) fi # Windows loads GnuTLS dynamically @@ -4892,6 +4900,8 @@ fi case "$opsys" in aix4-2) LD_SWITCH_SYSTEM_TEMACS="-Wl,-bnodelcsect" ;; + cygwin) LD_SWITCH_SYSTEM_TEMACS="-Wl,-stack,0x00800000" ;; + darwin) ## The -headerpad option tells ld (see man page) to leave room at the ## end of the header for adding load commands. Needed for dumping. @@ -5133,6 +5143,9 @@ if test "$HAVE_NS" = "yes"; then AC_SUBST(ns_check_file) fi +dnl config.status treats $srcdir specially, so I think this is ok... +AC_CONFIG_FILES([$srcdir/doc/man/emacs.1]) + dnl Obviously there is duplication here wrt $SUBDIR_MAKEFILES. dnl You _can_ use that variable in AC_CONFIG_FILES, so long as any directory dnl using automake (ie lib/) is explicitly listed and not "hidden" in a variable @@ -5196,6 +5209,25 @@ if test ! -f src/.gdbinit && test -f "$srcdir/src/.gdbinit"; then fi ]) +dnl Perhaps this would be better named doc-emacs-emacsver.texi? +dnl See comments for etc-refcards-emacsver.tex. +dnl Since we get a doc/emacs directory generated anyway, for the Makefile, +dnl it is not quite the same. But we are generating in $srcdir. +AC_CONFIG_COMMANDS([doc/emacs/emacsver.texi], [ +${MAKE-make} -s --no-print-directory -C doc/emacs doc-emacsver || \ +AC_MSG_ERROR(['doc/emacs/emacsver.texi' could not be made.]) +]) + +dnl If we give this the more natural name, etc/refcards/emacsver.texi, +dnl then a directory etc/refcards is created in the build directory, +dnl which is probably harmless, but confusing (in out-of-tree builds). +dnl (If we were to generate etc/refcards/Makefile, this might change.) +dnl It is really $srcdir/etc/refcards/emacsver.tex that we generate. +AC_CONFIG_COMMANDS([etc-refcards-emacsver.tex], [ +${MAKE-make} -s MAKEFILE_NAME=do-not-make-Makefile etc-emacsver || \ +AC_MSG_ERROR(['etc/refcards/emacsver.tex' could not be made.]) +]) + AC_OUTPUT test "$MAKE" = make || AC_MSG_NOTICE([Now you can run '$MAKE'.])