dnl along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ(2.65)
-AC_INIT(emacs, 24.4.91)
-
-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`
- # 'eval' pacifies strict POSIX non-MinGW shells (Bug#18612).
- eval 'srcdir="/${srcdir:0:1}${srcdir:2}"'
- ;;
- esac
-fi
+dnl Note this is parsed by (at least) make-dist and lisp/cedet/ede/emacs.el.
+AC_INIT(GNU Emacs, 25.0.50, bug-gnu-emacs@gnu.org)
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.
AC_CONFIG_HEADERS(src/config.h:src/config.in)
AC_CONFIG_SRCDIR(src/lisp.h)
AC_CONFIG_AUX_DIR(build-aux)
+dnl automake 1.13 and later understand this, making -I m4 unnecessary.
+dnl With older versions this is a no-op.
+AC_CONFIG_MACRO_DIR(m4)
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.
+ dnl the usual MAKE variable that 'make' itself uses.
AC_CHECK_PROG([MAKE_PROG], [make], [yes])
if test -z "$MAKE_PROG"; then
MAKE="$XCRUN MAKE"
fi
fi
+dnl GNU Make is required, so don't test for its individual features.
+am_cv_make_support_nested_variables=yes
+AC_DEFUN([AC_PROG_MAKE_SET],
+ [SET_MAKE=
+ AC_SUBST([SET_MAKE])])
+
+dnl Check for GNU Make and possibly set MAKE before running AM_INIT_AUTOMAKE.
+[emacs_check_gnu_make ()
+{
+ emacs_makeout=`($1 --version) 2>/dev/null` &&
+ case $emacs_makeout in
+ 'GNU Make '3.8[1-9]* | 'GNU Make '3.9[0-9]* | \
+ 'GNU Make '3.[1-9][0-9][0-9]* | 'GNU Make '[4-9]* | 'GNU Make '[1-9][0-9]* )
+ ac_path_MAKE_found=:;;
+ esac
+}]
+AC_CACHE_CHECK([for GNU Make], [ac_cv_path_MAKE],
+ [ac_path_MAKE_found=false
+ if test -n "$MAKE"; then
+ emacs_check_gnu_make "$MAKE"
+ ac_cv_path_MAKE=$MAKE
+ else
+ emacs_tried_make=false
+ emacs_tried_gmake=false
+ emacs_tried_gnumake=false
+ AC_PATH_PROGS_FEATURE_CHECK([MAKE], [make gmake gnumake],
+ [[emacs_check_gnu_make "$ac_path_MAKE"
+ if $ac_path_MAKE_found; then
+ # Use the fully-qualified program name only if the basename
+ # would not resolve to it.
+ if eval \$emacs_tried_$ac_prog; then
+ ac_cv_path_MAKE=$ac_path_MAKE
+ else
+ ac_cv_path_MAKE=$ac_prog
+ fi
+ fi
+ eval emacs_tried_$ac_prog=:]])
+ fi])
+$ac_path_MAKE_found || {
+AC_MSG_ERROR([[Building Emacs requires GNU Make, at least version 3.81.
+If you have it installed under another name, configure with 'MAKE=...'.
+For example, run '$0 MAKE=gnu-make'.]])
+}
+MAKE=$ac_cv_path_MAKE
+export MAKE
+
dnl Fairly arbitrary, older versions might work too.
AM_INIT_AUTOMAKE(1.11)
+dnl Canonicalize the configuration name.
+AC_CANONICAL_HOST
+
+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
+ /* | ?:*)
+ # 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`
+ # 'eval' pacifies strict POSIX non-MinGW shells (Bug#18612).
+ eval 'srcdir="/${srcdir:0:1}${srcdir:2}"'
+ ;;
+ 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
AC_ARG_WITH([sound],[AS_HELP_STRING([--with-sound=VALUE],
[compile with sound support (VALUE one of: yes, alsa, oss, bsd-ossaudio, no;
-default yes). Only for GNU/Linux, FreeBSD, NetBSD, MinGW.])],
+default yes). Only for GNU/Linux, FreeBSD, NetBSD, MinGW, Cygwin.])],
[ case "${withval}" in
yes|no|alsa|oss|bsd-ossaudio) val=$withval ;;
*) AC_MSG_ERROR([`--with-sound=$withval' is invalid;
dnl http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01844.html
OPTION_DEFAULT_ON([makeinfo],[don't require makeinfo for building manuals])
+## This might be a 'configure' arg.
+AC_SUBST([ACLOCAL_PATH])
+
## Makefile.in needs the cache file name.
AC_SUBST(cache_file)
[don't compress some files (.el, .info, etc.) when installing. Equivalent to:
make GZIP_PROG= install])
-AC_ARG_WITH([pkg-config-prog],dnl
-[AS_HELP_STRING([--with-pkg-config-prog=FILENAME],
- [file name of 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_WITH(gameuser,dnl
-[AS_HELP_STRING([--with-gameuser=USER],[user for shared game score files])])
-test "X${with_gameuser}" != X && test "${with_gameuser}" != yes \
- && gameuser="${with_gameuser}"
-test "X$gameuser" = X && gameuser=games
+[AS_HELP_STRING([--with-gameuser=USER_OR_GROUP],
+ [user for shared game score files.
+ An argument prefixed by ':' specifies a group instead.])])
+gameuser=
+gamegroup=
+# We don't test if we can actually chown/chgrp here, because configure
+# may run without root privileges. lib-src/Makefile.in will handle
+# any errors due to missing user/group gracefully.
+case ${with_gameuser} in
+ no) ;;
+ "" | yes) gamegroup=games ;;
+ :*) gamegroup=`echo "${with_gameuser}" | sed -e "s/://"` ;;
+ *) gameuser=${with_gameuser} ;;
+esac
AC_ARG_WITH([gnustep-conf],dnl
[AS_HELP_STRING([--with-gnustep-conf=FILENAME],
- [name of GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf])])
+ [name of GNUstep configuration file to use on systems where the command
+ 'gnustep-config' does not work; 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" && \
EN_NS_SELF_CONTAINED=$enableval,
EN_NS_SELF_CONTAINED=yes)
+locallisppathset=no
AC_ARG_ENABLE(locallisppath,
[AS_HELP_STRING([--enable-locallisppath=PATH],
[directories Emacs should search for lisp files specific
if test "${enableval}" = "no"; then
locallisppath=
elif test "${enableval}" != "yes"; then
- locallisppath=${enableval}
+ locallisppath=${enableval} locallisppathset=yes
fi)
AC_ARG_ENABLE(checking,
AC_ARG_ENABLE(autodepend,
[AS_HELP_STRING([--enable-autodepend],
[automatically generate dependencies to .h-files.
- Requires GNU Make and Gcc. Enabled if GNU Make and Gcc is
- found])],
+ Requires gcc, enabled if found.])],
[ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes])
AC_ARG_ENABLE(gtk-deprecation-warnings,
[Show Gtk+/Gdk deprecation warnings for Gtk+ >= 3.0])],
[ac_enable_gtk_deprecation_warnings="${enableval}"],[])
-### Canonicalize the configuration name.
-
-AC_CANONICAL_HOST
-canonical=$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
dnl the great gob of text. Thus it's not processed for possible expansion.
## 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
opsys=sol2-10
emacs_check_sunpro_c=yes
;;
+ *-sunos5.[1-5]* | *-solaris2.[1-5]* ) unported=yes ;;
+ ## Note that Emacs 23.1's NEWS said the following would be dropped.
*-sunos5.6* | *-solaris2.6* )
opsys=sol2-6
RANLIB="ar -ts"
;;
+ ## 5.7 EOL Aug 2008, 5.8 EOL Mar 2012.
*-sunos5.[7-9]* | *-solaris2.[7-9]* )
opsys=sol2-6
emacs_check_sunpro_c=yes
i[3456]86-*-* )
case "${canonical}" in
*-darwin* ) opsys=darwin ;;
- *-mingw32 )
+ *-mingw* )
opsys=mingw32
# MinGW overrides and adds some system headers in nt/inc.
GCC_TEST_OPTIONS="-I $srcdir/nt/inc"
# MinGW64
x86_64-*-* )
case "${canonical}" in
- *-mingw32 )
+ *-mingw* )
opsys=mingw32
# MinGW overrides and adds some system headers in nt/inc.
GCC_TEST_OPTIONS="-I $srcdir/nt/inc"
if test $unported = yes; then
AC_MSG_ERROR([Emacs does not support `${canonical}' systems.
-If you think it should, please send a report to bug-gnu-emacs@gnu.org.
+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.
+AC_DEFUN([_AC_PROG_CC_C89], [$2])
+
dnl Sets GCC=yes if using gcc.
AC_PROG_CC([gcc cc cl clang "$XCRUN gcc" "$XCRUN clang"])
if test -n "$XCRUN"; then
test -n "$AR" && export AR
fi
+dnl Emacs needs C99 or later.
+gl_PROG_CC_C99
+
AM_PROG_CC_C_O
if test x$GCC = xyes; then
# 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])
-# Avoid gnulib's threadlib module, as we do threads our own way.
-AC_DEFUN([gl_THREADLIB])
+# Avoid gnulib's test for pthread_sigmask.
+funcs=
+for func in $ac_func_list; do
+ test $func = pthread_sigmask || AS_VAR_APPEND([funcs], [" $func"])
+done
+ac_func_list=$funcs
+# Use the system putenv even if it lacks GNU features, as we don't need them,
+# and the gnulib replacement runs afoul of a FreeBSD 10.1 bug; see Bug#19874.
+AC_CHECK_FUNCS_ONCE([putenv])
+AC_DEFUN([gl_FUNC_PUTENV],
+ [test "$ac_cv_func_putenv" = yes || REPLACE_PUTENV=1])
# Initialize gnulib right after choosing the compiler.
dnl Amongst other things, this sets AR and ARFLAGS.
[gl_gcc_warnings=no]
)
-AC_ARG_ENABLE(link-time-optimization,
-[AS_HELP_STRING([--enable-link-time-optimization],
- [build emacs with link-time optimization.
- 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
- if test x$GCC = xyes; then
- CPUS=`getconf _NPROCESSORS_ONLN 2>/dev/null`
- if test x$CPUS != x; then
- LTO="-flto=$CPUS"
- else
- LTO="-flto"
- fi
- old_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $LTO"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
- [ac_lto_supported=yes], [ac_lto_supported=no])
- CFLAGS="$old_CFLAGS"
- fi
- 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)
-
# clang is unduly picky about some things.
AC_CACHE_CHECK([whether the compiler is clang], [emacs_cv_clang],
[AC_COMPILE_IFELSE(
gl_WARN_ADD([-Wno-switch])
gl_WARN_ADD([-Wno-tautological-constant-out-of-range-compare])
gl_WARN_ADD([-Wno-pointer-sign])
+ gl_WARN_ADD([-Wno-string-plus-int])
fi
else
isystem='-isystem '
nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings
nw="$nw -Woverlength-strings" # Not a problem these days
- nw="$nw -Wlogical-op" # any use of fwrite provokes this
nw="$nw -Wformat-nonliteral" # we do this a lot
- nw="$nw -Wvla" # warnings in gettext.h
- nw="$nw -Wnested-externs" # use of XARGMATCH/verify_function__
+ nw="$nw -Wvla" # Emacs uses <vla.h>.
nw="$nw -Wswitch-default" # Too many warnings for now
nw="$nw -Winline" # OK to ignore 'inline'
nw="$nw -Wjump-misses-init" # We sometimes safely jump over init.
# Emacs's use of alloca inhibits protecting the stack.
nw="$nw -Wstack-protector"
- # The following line should be removable at some point.
+ # Emacs's use of partly-const functions such as Fgnutls_available_p
+ # make this option problematic.
+ nw="$nw -Wsuggest-attribute=const"
+
+ # Emacs's use of partly-pure functions such as CHECK_TYPE make this
+ # option problematic.
nw="$nw -Wsuggest-attribute=pure"
# This part is merely for shortening the command line,
for w in $ws; do
gl_WARN_ADD([$w])
done
+ gl_WARN_ADD([-Wredundant-decls]) # Prefer this, as we don't use Bison.
gl_WARN_ADD([-Wno-missing-field-initializers]) # We need this one
gl_WARN_ADD([-Wno-sign-compare]) # Too many warnings for now
gl_WARN_ADD([-Wno-type-limits]) # Too many warnings for now
gl_WARN_ADD([-Wno-unused-parameter]) # Too many warnings for now
gl_WARN_ADD([-Wno-format-nonliteral])
- # In spite of excluding -Wlogical-op above, it is enabled, as of
- # gcc 4.5.0 20090517.
- gl_WARN_ADD([-Wno-logical-op])
-
# More things that clang is unduly picky about.
if test $emacs_cv_clang = yes; then
gl_WARN_ADD([-Wno-format-extra-args])
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.
s/^ //
"
+AC_ARG_ENABLE(link-time-optimization,
+[AS_HELP_STRING([--enable-link-time-optimization],
+ [build emacs with link-time optimization.
+ This requires GCC 4.5.0 or later, or clang.
+ (Note that clang support is experimental - see INSTALL.)
+ 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_lto_supported=no
+ if test $emacs_cv_clang = yes; then
+ AC_MSG_CHECKING([whether link-time optimization is supported by clang])
+ GOLD_PLUGIN=`$CC -print-file-name=LLVMgold.so 2>/dev/null`
+ if test -x "$GOLD_PLUGIN"; then
+ LTO="-flto"
+ fi
+ elif test x$GCC = xyes; then
+ AC_MSG_CHECKING([whether link-time optimization is supported by gcc])
+ CPUS=`getconf _NPROCESSORS_ONLN 2>/dev/null`
+ if test x$CPUS != x; then
+ LTO="-flto=$CPUS"
+ else
+ LTO="-flto"
+ fi
+ else
+ AC_MSG_ERROR([Link-time optimization is not supported with your compiler.])
+ fi
+ if test -z "$LTO"; then
+ ac_lto_supported=no
+ else
+ old_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $LTO"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
+ [ac_lto_supported=yes], [ac_lto_supported=no])
+ CFLAGS="$old_CFLAGS"
+ fi
+ AC_MSG_RESULT([$ac_lto_supported])
+ if test "$ac_lto_supported" = "yes"; then
+ CFLAGS="$CFLAGS $LTO"
+ if test x$emacs_cv_clang = xyes; then
+ AC_MSG_WARN([Please read INSTALL before using link-time optimization with clang])
+ # WARNING: 'ar --plugin ...' doesn't work without
+ # command, so plugin name is appended to ARFLAGS.
+ ARFLAGS="cru --plugin $GOLD_PLUGIN"
+ RANLIB="$RANLIB --plugin $GOLD_PLUGIN"
+ else
+ 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
+fi)
+
+dnl Prefer silent make output. For verbose output, use
+dnl 'configure --disable-silent-rules' or 'make V=1' .
+AM_SILENT_RULES([yes])
+dnl Port to Automake 1.11.
+dnl This section can be removed once we assume Automake 1.14 or later.
+: ${AM_V=$AM_DEFAULT_VERBOSITY}
+: ${AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY}
+AC_SUBST([AM_V])
+AM_SUBST_NOTMAKE([AM_V])
+AC_SUBST([AM_DEFAULT_V])
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])
+AC_SUBST([AM_DEFAULT_VERBOSITY])
dnl Some other nice autoconf tests.
dnl These are commented out, since gl_EARLY and/or Autoconf already does them.
fi
## Need makeinfo >= 4.7 (?) 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"; then
- case `
- $MAKEINFO --version 2> /dev/null |
- $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[7-9]]|4\.[[1-6]][[0-9]]+)'
- ` in
- '') MAKEINFO=no;;
+ if test "$MAKEINFO" = "${am_missing_run}makeinfo"; then
+ MAKEINFO=makeinfo
+ fi
+ case `($MAKEINFO --version) 2>/dev/null` in
+ *' (GNU texinfo) '4.[[7-9]]* | \
+ *' (GNU texinfo) '4.[[1-9][0-9]]* | \
+ *' (GNU texinfo) '[[5-9]]* | \
+ *' (GNU texinfo) '[[1-9][0-9]]* ) ;;
+ *) MAKEINFO=no;;
esac
fi
fi
AC_SUBST(HAVE_MAKEINFO)
-dnl Just so that there is only a single place we need to edit.
-INFO_EXT=.info
-INFO_OPTS=--no-split
-AC_SUBST(INFO_EXT)
-AC_SUBST(INFO_OPTS)
-
if test $opsys = mingw32; then
DOCMISC_W32=efaq-w32
else
C_SWITCH_SYSTEM="-ma -qmaxmem=4000"
if test "$opsys" = "mingw32"; then
case "$canonical" in
- x86_64-*-mingw32) C_SWITCH_SYSTEM="-mtune=generic" ;;
+ x86_64-*-mingw*) C_SWITCH_SYSTEM="-mtune=generic" ;;
*) C_SWITCH_SYSTEM="-mtune=pentium4" ;;
esac
fi
CPPFLAGS="$C_SWITCH_SYSTEM $C_SWITCH_MACHINE $CPPFLAGS"
fi
-# Suppress obsolescent Autoconf test for size_t; Emacs assumes C89 or better.
+# Suppress obsolescent Autoconf test for size_t; Emacs assumes C99 or better.
AC_DEFUN([AC_TYPE_SIZE_T])
# Likewise for obsolescent test for uid_t, gid_t; Emacs assumes them.
AC_DEFUN([AC_TYPE_UID_T])
+# sqrt and other floating-point functions such as fmod and frexp
+# are found in -lm on many systems.
+OLD_LIBS=$LIBS
+AC_SEARCH_LIBS([sqrt], [m])
+if test "X$LIBS" = "X$OLD_LIBS"; then
+ LIB_MATH=
+else
+ LIB_MATH=$ac_cv_search_sqrt
+fi
+LIBS=$OLD_LIBS
-LIB_MATH=-lm
dnl Current possibilities handled by sed (aix4-2 -> aix,
dnl gnu-linux -> gnu/linux, etc.):
dnl gnu, gnu/linux, gnu/kfreebsd, aix, cygwin, darwin, hpux, irix.
pre_PKG_CONFIG_CFLAGS=$CFLAGS
pre_PKG_CONFIG_LIBS=$LIBS
-AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-
-dnl This function definition 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 "$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 name of 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 &&
- $1_CFLAGS=`"$PKG_CONFIG" --cflags "$2" 2>&AS_MESSAGE_LOG_FD` &&
- $1_LIBS=`"$PKG_CONFIG" --libs "$2" 2>&AS_MESSAGE_LOG_FD`; then
- $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'])
- succeeded=yes
- 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. Do it in a subshell
- ## to capture any diagnostics in invoking pkg-config.
- $1_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "$2") 2>&1`
- 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
-])
+PKG_PROG_PKG_CONFIG(0.9.0)
+
+dnl EMACS_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4)
+dnl acts like PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4,
+dnl HAVE_GSTUFF=yes, HAVE_GSTUFF=no) -- see pkg-config man page --
+dnl except that it postprocesses CFLAGS as needed for --enable-gcc-warnings.
+dnl EMACS_CHECK_MODULES accepts optional 3rd and 4th arguments that
+dnl can take the place of the default HAVE_GSTUFF=yes and HAVE_GSTUFF=no
+dnl actions.
+AC_DEFUN([EMACS_CHECK_MODULES],
+ [PKG_CHECK_MODULES([$1], [$2],
+ [$1_CFLAGS=`AS_ECHO(["$$1_CFLAGS"]) | sed -e "$edit_cflags"`
+ m4_default([$3], [HAVE_$1=yes])],
+ [m4_default([$4], [HAVE_$1=no])])])
HAVE_SOUND=no
if test "${with_sound}" != "no"; then
- # Sound support for GNU/Linux, the free BSDs, and MinGW.
+ # Sound support for GNU/Linux, the free BSDs, MinGW, and Cygwin.
AC_CHECK_HEADERS([machine/soundcard.h sys/soundcard.h soundcard.h mmsystem.h],
have_sound_header=yes, [], [
#ifdef __MINGW32__
if test "${with_sound}" = "alsa" || test "${with_sound}" = "yes"; then
ALSA_REQUIRED=1.0.0
ALSA_MODULES="alsa >= $ALSA_REQUIRED"
- PKG_CHECK_MODULES(ALSA, $ALSA_MODULES, HAVE_ALSA=yes, HAVE_ALSA=no)
+ EMACS_CHECK_MODULES([ALSA], [$ALSA_MODULES])
if test $HAVE_ALSA = yes; then
SAVE_CFLAGS="$CFLAGS"
SAVE_LIBS="$LIBS"
case "$opsys" in
dnl defined __FreeBSD__ || defined __NetBSD__ || defined __linux__
dnl Adjust the --with-sound help text if you change this.
- gnu-linux|freebsd|netbsd|mingw32)
+ gnu-linux|freebsd|netbsd|mingw32|cygwin)
AC_DEFINE(HAVE_SOUND, 1, [Define to 1 if you have sound support.])
HAVE_SOUND=yes
;;
dnl checks for header files
AC_CHECK_HEADERS_ONCE(
sys/systeminfo.h
+ sys/sysinfo.h
coff.h pty.h
sys/resource.h
sys/utsname.h pwd.h utmp.h util.h)
[Define to 1 if personality LINUX32 can be set.])
fi
+# Note that Solaris has sys/sysinfo.h which defines struct
+# sysinfo as well. To make sure that we're using GNU/Linux
+# sysinfo, we explicitly set one of its fields.
+if test "$ac_cv_header_sys_sysinfo_h" = yes; then
+ AC_MSG_CHECKING([if Linux sysinfo may be used])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/sysinfo.h>]],
+ [[struct sysinfo si;
+ si.totalram = 0;
+ sysinfo (&si)]])],
+ emacs_cv_linux_sysinfo=yes, emacs_cv_linux_sysinfo=no)
+ AC_MSG_RESULT($emacs_cv_linux_sysinfo)
+ if test $emacs_cv_linux_sysinfo = yes; then
+ AC_DEFINE([HAVE_LINUX_SYSINFO], 1, [Define to 1 if you have Linux sysinfo function.])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/sysinfo.h>]],
+ [[struct sysinfo si; return si.mem_unit]])],
+ AC_DEFINE(LINUX_SYSINFO_UNIT, 1,
+ [Define to 1 if Linux sysinfo sizes are in multiples of mem_unit bytes.]))
+ fi
+fi
+
dnl On Solaris 8 there's a compilation warning for term.h because
dnl it doesn't define `bool'.
AC_CHECK_HEADERS(term.h, , , -)
dnl AC_C_BIGENDIAN is done by gnulib.
dnl check for Make feature
-dnl AC_PROG_MAKE_SET is done by Automake.
DEPFLAGS=
MKDEPDIR=":"
deps_frag=deps.mk
-dnl check for GNU Make if we have GCC and autodepend is on.
+dnl check if we have GCC and autodepend is on.
if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
- AC_MSG_CHECKING([whether we are using GNU Make])
- HAVE_GNU_MAKE=no
- testval=`${MAKE-make} --version 2>/dev/null | grep 'GNU Make'`
- if test "x$testval" != x; then
- HAVE_GNU_MAKE=yes
- else
- ac_enable_autodepend=no
- fi
- AC_MSG_RESULT([$HAVE_GNU_MAKE])
- if test $HAVE_GNU_MAKE = yes; then
- AC_MSG_CHECKING([whether gcc understands -MMD -MF])
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -MMD -MF deps.d -MP"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], , ac_enable_autodepend=no)
- CFLAGS="$SAVE_CFLAGS"
- test -f deps.d || ac_enable_autodepend=no
- rm -rf deps.d
- AC_MSG_RESULT([$ac_enable_autodepend])
- fi
+ AC_MSG_CHECKING([whether gcc understands -MMD -MF])
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -MMD -MF deps.d -MP"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], , ac_enable_autodepend=no)
+ CFLAGS="$SAVE_CFLAGS"
+ test -f deps.d || ac_enable_autodepend=no
+ rm -rf deps.d
+ AC_MSG_RESULT([$ac_enable_autodepend])
if test $ac_enable_autodepend = yes; then
DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d -MP'
## MKDIR_P is documented (see AC_PROG_MKDIR_P) to be parallel-safe.
deps_frag=autodeps.mk
fi
fi
+lwlib_deps_frag=$srcdir/lwlib/$deps_frag
+oldxmenu_deps_frag=$srcdir/oldXMenu/$deps_frag
deps_frag=$srcdir/src/$deps_frag
AC_SUBST(MKDEPDIR)
AC_SUBST(DEPFLAGS)
AC_SUBST_FILE(deps_frag)
-
+AC_SUBST_FILE(lwlib_deps_frag)
+AC_SUBST_FILE(oldxmenu_deps_frag)
lisp_frag=$srcdir/src/lisp.mk
AC_SUBST_FILE(lisp_frag)
fi
HAVE_NS=no
+NS_GNUSTEP_CONFIG=no
NS_IMPL_COCOA=no
NS_IMPL_GNUSTEP=no
tmp_CPPFLAGS="$CPPFLAGS"
ns_appbindir=${ns_appdir}/Contents/MacOS
ns_appresdir=${ns_appdir}/Contents/Resources
ns_appsrc=Cocoa/Emacs.base
+ ns_fontfile=macfont.o
+ elif flags=$( (gnustep-config --objc-flags) 2>/dev/null); then
+ NS_IMPL_GNUSTEP=yes
+ NS_GNUSTEP_CONFIG=yes
+ GNU_OBJC_CFLAGS=$flags
+ LIBS_GNUSTEP=$(gnustep-config --gui-libs) || exit
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
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)"
GNU_OBJC_CFLAGS="-fobjc-exceptions"
fi
fi
+ if test $NS_IMPL_GNUSTEP = yes; then
+ ns_appdir=`pwd`/nextstep/Emacs.app
+ ns_appbindir=${ns_appdir}
+ ns_appresdir=${ns_appdir}/Resources
+ ns_appsrc=GNUstep/Emacs.base
+ ns_fontfile=nsfont.o
+ fi
dnl This is only used while we test the NS headers, it gets reset below.
+ CPPFLAGS="$CPPFLAGS $GNU_OBJC_CFLAGS"
CFLAGS="$CFLAGS $GNU_OBJC_CFLAGS"
AC_CHECK_HEADER([AppKit/AppKit.h], [HAVE_NS=yes],
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 <AppKit/AppKit.h>],
[
#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']);
+ if test $ns_osx_have_106 = no; then
+ AC_MSG_ERROR([`OSX 10.6 or newer is required']);
fi
- AC_MSG_CHECKING([for OSX 10.5 or newer])
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <AppKit/AppKit.h>],
- [
-#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"
- fi
- fi
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <Foundation/NSObjCRuntime.h>],
- [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
infodir="\${ns_appresdir}/info"
mandir="\${ns_appresdir}/man"
lispdir="\${ns_appresdir}/lisp"
+ test "$locallisppathset" = no && locallisppath=""
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"
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"
if test "$window_system" = none && test "$gl_gcc_warnings" = yes; then
# Too many warnings for now.
nw=
- nw="$nw -Wsuggest-attribute=const"
nw="$nw -Wsuggest-attribute=noreturn"
gl_MANYWARN_COMPLEMENT([WARN_CFLAGS], [$WARN_CFLAGS], [$nw])
doug_lea_malloc=$emacs_cv_var_doug_lea_malloc
system_malloc=$emacs_cv_sanitize_address
+
+hybrid_malloc=
+
case "$opsys" in
## darwin ld insists on the use of malloc routines in the System framework.
- darwin|sol2-10) system_malloc=yes ;;
+ darwin|mingw32|sol2-10) system_malloc=yes ;;
+ cygwin) hybrid_malloc=yes;;
esac
GMALLOC_OBJ=
GNU_MALLOC_reason="
(The GNU allocators don't work with this system configuration.)"
VMLIMIT_OBJ=
+elif test "$hybrid_malloc" = yes; then
+ AC_DEFINE(HYBRID_MALLOC, 1,
+ [Define to use gmalloc before dumping and the system malloc after.])
+ GNU_MALLOC=
+ GNU_MALLOC_reason="only before dumping"
+ GMALLOC_OBJ=gmalloc.o
+ VMLIMIT_OBJ=
else
test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o
VMLIMIT_OBJ=vm-limit.o
## #ifdef DOUG_LEA_MALLOC; #undef REL_ALLOC; #endif
## Does the AC_FUNC_MMAP test below make this check unnecessary?
case "$opsys" in
- gnu*) REL_ALLOC=no ;;
+ mingw32|gnu*) REL_ALLOC=no ;;
esac
fi
use_mmap_for_buffers=no
case "$opsys" in
- cygwin|freebsd|irix6-5) use_mmap_for_buffers=yes ;;
+ cygwin|mingw32|freebsd|irix6-5) use_mmap_for_buffers=yes ;;
esac
AC_FUNC_MMAP
LIBS="$LIBS_SYSTEM $LIBS"
-dnl If found, this adds -ldnet to LIBS, which Autoconf uses for checks.
-AC_CHECK_LIB(dnet, dnet_ntoa)
-dnl This causes -lresolv to get used in subsequent tests,
-dnl which causes failures on some systems such as HPUX 9.
-dnl AC_CHECK_LIB(resolv, gethostbyname)
-
dnl FIXME replace main with a function we actually want from this library.
AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
-dnl Check if pthreads is available.
+dnl Check for the POSIX thread library.
LIB_PTHREAD=
AC_CHECK_HEADERS_ONCE(pthread.h)
-if test "$ac_cv_header_pthread_h"; then
- dnl gmalloc.c uses pthread_atfork, which is not available on older-style
- dnl hosts such as MirBSD 10, so test for pthread_atfork instead of merely
- dnl testing for pthread_self if Emacs uses gmalloc.c.
- if test "$GMALLOC_OBJ" = gmalloc.o; then
- emacs_pthread_function=pthread_atfork
- else
- emacs_pthread_function=pthread_self
+if test "$ac_cv_header_pthread_h" && test "$opsys" != "mingw32"; then
+ AC_CACHE_CHECK([for pthread library],
+ [emacs_cv_pthread_lib],
+ [emacs_cv_pthread_lib=no
+ OLD_CPPFLAGS=$CPPFLAGS
+ OLD_LIBS=$LIBS
+ for emacs_pthread_lib in 'none needed' -lpthread; do
+ case $emacs_pthread_lib in
+ -*) LIBS="$OLD_LIBS $emacs_pthread_lib";;
+ esac
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <pthread.h>
+ #include <signal.h>
+ sigset_t old_mask, new_mask;
+ void noop (void) {}]],
+ [[pthread_t th = pthread_self ();
+ int status = 0;
+ status += pthread_create (&th, 0, 0, 0);
+ status += pthread_sigmask (SIG_BLOCK, &new_mask, &old_mask);
+ status += pthread_kill (th, 0);
+ #if ! (defined SYSTEM_MALLOC || defined HYBRID_MALLOC \
+ || defined DOUG_LEA_MALLOC)
+ /* Test for pthread_atfork only if gmalloc uses it,
+ as older-style hosts like MirBSD 10 lack it. */
+ status += pthread_atfork (noop, noop, noop);
+ #endif
+ return status;]])],
+ [emacs_cv_pthread_lib=$emacs_pthread_lib])
+ LIBS=$OLD_LIBS
+ if test "$emacs_cv_pthread_lib" != no; then
+ break
+ fi
+ done
+ CPPFLAGS=$OLD_CPPFLAGS])
+ if test "$emacs_cv_pthread_lib" != no; then
+ AC_DEFINE([HAVE_PTHREAD], 1, [Define to 1 if you have POSIX threads.])
+ case $emacs_cv_pthread_lib in
+ -*) LIB_PTHREAD=$emacs_cv_pthread_lib;;
+ esac
+ ac_cv_func_pthread_sigmask=yes
+ # Some systems optimize for single-threaded programs by default, and
+ # need special flags to disable these optimizations. For example, the
+ # definition of 'errno' in <errno.h>.
+ case $opsys in
+ hpux* | 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_CHECK_LIB(pthread, $emacs_pthread_function, HAVE_PTHREAD=yes)
-fi
-if test "$HAVE_PTHREAD" = yes; then
- case "${canonical}" in
- *-hpux*) ;;
- *) LIB_PTHREAD="-lpthread"
- 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 <errno.h>.
- 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])
-AC_CHECK_LIB(pthreads, cma_open)
-
-## Note: when using cpp in s/aix4.2.h, this definition depended on
-## HAVE_LIBPTHREADS. That was not defined earlier in configure when
-## the system file was sourced. Hence the value of LIBS_SYSTEM
-## added to LIBS in configure would never contain the pthreads part,
-## but the value used in Makefiles might. FIXME?
-##
-## -lpthreads seems to be necessary for Xlib in X11R6, and should
-## be harmless on older versions of X where it happens to exist.
-test "$opsys" = "aix4-2" && \
- test $ac_cv_lib_pthreads_cma_open = yes && \
- LIBS_SYSTEM="$LIBS_SYSTEM -lpthreads"
-
dnl Check for need for bigtoc support on IBM AIX
case ${host_os} in
;;
esac
-# Change CFLAGS and CPPFLAGS temporarily so that C_SWITCH_X_SITE gets
-# used for the tests that follow. We set them back to REAL_CFLAGS and
-# REAL_CPPFLAGS later on.
+# Change CFLAGS, CPPFLAGS, and LIBS temporarily so that C_SWITCH_X_SITE
+# is for the tests that follow. We set them back later on.
REAL_CFLAGS="$CFLAGS"
REAL_CPPFLAGS="$CPPFLAGS"
+REAL_LIBS="$LIBS"
if test "${HAVE_X11}" = "yes"; then
DEFS="$C_SWITCH_X_SITE $DEFS"
[xgnu_linux_first_failure=no],
[xgnu_linux_first_failure=yes])
if test "${xgnu_linux_first_failure}" = "yes"; then
- OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
- OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
OLD_CPPFLAGS="$CPPFLAGS"
OLD_LIBS="$LIBS"
- LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
- C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
LIBS="$LIBS -b i486-linuxaout"
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],
[xgnu_linux_second_failure=yes])
if test "${xgnu_linux_second_failure}" = "yes"; then
# If we get the same failure with -b, there is no use adding -b.
- # So take it out. This plays safe.
- LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
- C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
- CPPFLAGS="$OLD_CPPFLAGS"
- LIBS="$OLD_LIBS"
+ # So leave it out. This plays safe.
AC_MSG_RESULT(no)
else
+ LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
+ C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
AC_MSG_RESULT(yes)
fi
+ CPPFLAGS=$OLD_CPPFLAGS
+ LIBS=$OLD_LIBS
else
AC_MSG_RESULT(no)
fi
RSVG_REQUIRED=2.11.0
RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED"
- PKG_CHECK_MODULES(RSVG, $RSVG_MODULE, HAVE_RSVG=yes, :)
+ EMACS_CHECK_MODULES([RSVG], [$RSVG_MODULE])
AC_SUBST(RSVG_CFLAGS)
AC_SUBST(RSVG_LIBS)
if test "${opsys}" = "mingw32"; then
RSVG_LIBS=
fi
- LIBS="$RSVG_LIBS $LIBS"
fi
fi
fi
## 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.3.5 Wand != 6.8.2"
- PKG_CHECK_MODULES(IMAGEMAGICK, $IMAGEMAGICK_MODULE, HAVE_IMAGEMAGICK=yes, :)
+ EMACS_CHECK_MODULES([IMAGEMAGICK], [$IMAGEMAGICK_MODULE])
AC_SUBST(IMAGEMAGICK_CFLAGS)
AC_SUBST(IMAGEMAGICK_LIBS)
if test $HAVE_IMAGEMAGICK = yes; then
AC_DEFINE(HAVE_IMAGEMAGICK, 1, [Define to 1 if using imagemagick.])
+ OLD_CFLAGS=$CFLAGS
+ OLD_LIBS=$LIBS
CFLAGS="$CFLAGS $IMAGEMAGICK_CFLAGS"
LIBS="$IMAGEMAGICK_LIBS $LIBS"
AC_CHECK_FUNCS(MagickExportImagePixels MagickMergeImageLayers)
+ CFLAGS=$OLD_CFLAGS
+ LIBS=$OLD_LIBS
fi
fi
fi
GTK_MODULES="gtk+-3.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
dnl Checks for libraries.
- PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
+ EMACS_CHECK_MODULES([GTK], [$GTK_MODULES],
+ [pkg_check_gtk=yes], [pkg_check_gtk=no])
if test "$pkg_check_gtk" = "no" && test "$with_gtk3" = "yes"; then
AC_MSG_ERROR($GTK_PKG_ERRORS)
fi
GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
dnl Checks for libraries.
- PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
+ EMACS_CHECK_MODULES([GTK], [$GTK_MODULES],
+ [pkg_check_gtk=yes], [pkg_check_gtk=no])
if test "$pkg_check_gtk" = "no" &&
{ test "$with_gtk" = yes || test "$with_gtk2" = "yes"; }
then
fi
fi
+OLD_CFLAGS=$CFLAGS
+OLD_LIBS=$LIBS
+
if test x"$pkg_check_gtk" = xyes; then
AC_SUBST(GTK_LIBS)
- 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.
AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?]);
fi
else
+ C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS"
HAVE_GTK=yes
AC_DEFINE(USE_GTK, 1, [Define to 1 if using GTK.])
GTK_OBJ="gtkutil.o $GTK_OBJ"
term_header=gtkutil.h
fi
+CFLAGS=$OLD_CFLAGS
+LIBS=$OLD_LIBS
+
dnl D-Bus has been tested under GNU/Linux only. Must be adapted for
dnl other platforms.
HAVE_DBUS=no
DBUS_OBJ=
if test "${with_dbus}" = "yes"; then
- PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0, HAVE_DBUS=yes, HAVE_DBUS=no)
+ EMACS_CHECK_MODULES([DBUS], [dbus-1 >= 1.0])
if test "$HAVE_DBUS" = yes; then
- LIBS="$LIBS $DBUS_LIBS"
AC_DEFINE(HAVE_DBUS, 1, [Define to 1 if using D-Bus.])
dnl dbus_watch_get_unix_fd has been introduced in D-Bus 1.1.1.
dnl dbus_type_is_valid and dbus_validate_* have been introduced in
dnl D-Bus 1.5.12.
+ OLD_LIBS=$LIBS
+ LIBS="$LIBS $DBUS_LIBS"
AC_CHECK_FUNCS(dbus_watch_get_unix_fd \
dbus_type_is_valid \
dbus_validate_bus_name \
dbus_validate_path \
dbus_validate_interface \
dbus_validate_member)
+ LIBS=$OLD_LIBS
DBUS_OBJ=dbusbind.o
fi
fi
+AC_SUBST(DBUS_CFLAGS)
+AC_SUBST(DBUS_LIBS)
AC_SUBST(DBUS_OBJ)
dnl GSettings has been tested under GNU/Linux only.
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)
+ EMACS_CHECK_MODULES([GSETTINGS], [gio-2.0 >= 2.26])
if test "$HAVE_GSETTINGS" = "yes"; then
old_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS $GSETTINGS_CFLAGS"
dnl The version is really arbitrary, it is about the same age as Gtk+ 2.6.
HAVE_GCONF=no
if test "${HAVE_X11}" = "yes" && test "${with_gconf}" = "yes"; then
- PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.13, HAVE_GCONF=yes, HAVE_GCONF=no)
+ EMACS_CHECK_MODULES([GCONF], [gconf-2.0 >= 2.13])
if test "$HAVE_GCONF" = yes; then
AC_DEFINE(HAVE_GCONF, 1, [Define to 1 if using GConf.])
dnl Newer GConf doesn't link with g_objects, so this is not defined.
fi
if test "$HAVE_GSETTINGS" = "yes" || test "$HAVE_GCONF" = "yes"; then
- PKG_CHECK_MODULES(GOBJECT, gobject-2.0 >= 2.0, HAVE_GOBJECT=yes, HAVE_GOBJECT=no)
+ EMACS_CHECK_MODULES([GOBJECT], [gobject-2.0 >= 2.0])
if test "$HAVE_GOBJECT" = "yes"; then
SETTINGS_CFLAGS="$SETTINGS_CFLAGS $GOBJECT_CFLAGS"
SETTINGS_LIBS="$SETTINGS_LIBS $GOBJECT_LIBS"
AC_SUBST(LIBSELINUX_LIBS)
HAVE_GNUTLS=no
-HAVE_GNUTLS3=no
if test "${with_gnutls}" = "yes" ; then
- PKG_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
- PKG_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
dnl MS Windows native file monitor is available for mingw32 only.
case $with_file_notification,$opsys in
+ w32,cygwin)
+ AC_MSG_ERROR([`--with-file-notification=w32' was specified, but
+ this is only supported on MS-Windows native and MinGW32 builds.
+ Consider using gfile instead.])
+ ;;
w32,* | yes,mingw32)
AC_CHECK_HEADER(windows.h)
if test "$ac_cv_header_windows_h" = yes ; then
dnl to check?
case $with_file_notification,$NOTIFY_OBJ in
gfile, | yes,)
- PKG_CHECK_MODULES(GFILENOTIFY, gio-2.0 >= 2.24, HAVE_GFILENOTIFY=yes, HAVE_GFILENOTIFY=no)
+ EMACS_CHECK_MODULES([GFILENOTIFY], [gio-2.0 >= 2.24])
if test "$HAVE_GFILENOTIFY" = "yes"; then
AC_DEFINE(HAVE_GFILENOTIFY, 1, [Define to 1 if using GFile.])
NOTIFY_OBJ=gfilenotify.o
X_TOOLKIT_TYPE=$USE_X_TOOLKIT
LIBXTR6=
+LIBXMU=
if test "${USE_X_TOOLKIT}" != "none"; then
AC_MSG_CHECKING(X11 toolkit version)
AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
dnl tranle@intellicorp.com says libXmu.a can need XtMalloc in libXt.a to link.
OLDLIBS="$LIBS"
if test x$HAVE_X11XTR6 = xyes; then
- LIBS="-lXt -lSM -lICE $LIBS"
+ OTHERLIBS='-lXt -lSM -lICE'
else
- LIBS="-lXt $LIBS"
+ OTHERLIBS='-lXt'
+ fi
+ AC_SEARCH_LIBS([XmuConvertStandardSelection], [Xmu], [], [], [$OTHERLIBS])
+ if test "X$LIBS" != "X$OLDLIBS"; then
+ LIBXMU=$ac_cv_search_XmuConvertStandardSelection
fi
- AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
- test $ac_cv_lib_Xmu_XmuConvertStandardSelection = no && LIBS="$OLDLIBS"
- dnl ac_cv_lib_Xmu_XmuConvertStandardSelection is also referenced below.
+ LIBS=$OLDLIBS
+ dnl ac_cv_search_XmuConvertStandardSelection is also referenced below.
fi
AC_SUBST(LIBXTR6)
-
-dnl FIXME the logic here seems weird, but this is what cpp was doing.
-dnl Why not just test for libxmu in the normal way?
-LIBXMU=-lXmu
-case $opsys in
- ## These systems don't supply Xmu.
- hpux* | aix4-2 )
- test "X$ac_cv_lib_Xmu_XmuConvertStandardSelection" != "Xyes" && LIBXMU=
- ;;
- mingw32 )
- LIBXMU=
- ;;
-esac
AC_SUBST(LIBXMU)
-# On Irix 6.5, at least, we need XShapeQueryExtension from -lXext for Xaw3D.
-if test "${HAVE_X11}" = "yes"; then
- if test "${USE_X_TOOLKIT}" != "none"; then
- AC_CHECK_LIB(Xext, XShapeQueryExtension)
- fi
-fi
-
LIBXP=
if test "${USE_X_TOOLKIT}" = "MOTIF"; then
# OpenMotif may be installed in such a way on some GNU/Linux systems.
### 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
+ ## Use -lXft if available, unless `--with-xft=no'.
+ HAVE_XFT=maybe
+ if test "x${with_x}" = "xno"; then
with_xft="no";
fi
+
+ if test "$with_xft" != no; then
+ EMACS_CHECK_MODULES([FONTCONFIG], [fontconfig >= 2.2.0])
+ with_xft=$HAVE_FONTCONFIG
+ fi
+
if test "x${with_xft}" != "xno"; then
- PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no)
+ EMACS_CHECK_MODULES([XFT], [xft >= 0.13.0], [], [HAVE_XFT=no])
## Because xftfont.c uses XRenderQueryExtension, we also
## need to link to -lXrender.
HAVE_XRENDER=no
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"
+ CPPFLAGS=$OLD_CPPFLAGS
+ CFLAGS=$OLD_CFLAGS
+ LIBS=$OLD_LIBS
fi # "$HAVE_XFT" != no
fi # "x${with_xft}" != "xno"
dnl ftfont.o: undefined reference to symbol 'FT_New_Face'
dnl if -lfreetype is not specified.
dnl The following is needed to set FREETYPE_LIBS.
- PKG_CHECK_MODULES(FREETYPE, freetype2, HAVE_FREETYPE=yes,
- HAVE_FREETYPE=no)
+ EMACS_CHECK_MODULES([FREETYPE], [freetype2])
test "$HAVE_FREETYPE" = "no" && AC_MSG_ERROR(libxft requires libfreetype)
fi
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)
+ EMACS_CHECK_MODULES([LIBOTF], [libotf])
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_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)
+ EMACS_CHECK_MODULES([M17N_FLT], [m17n-flt])
if test "$HAVE_M17N_FLT" = "yes"; then
AC_DEFINE(HAVE_M17N_FLT, 1, [Define to 1 if using libm17n-flt.])
fi
fi
AC_SUBST(LIBJPEG)
-### Use -lpng if available, unless `--with-png=no'.
-### mingw32 doesn't use -lpng, since it loads the library dynamically.
-HAVE_PNG=no
-LIBPNG=
-if test "${opsys}" = "mingw32"; then
- if test "${with_png}" != "no"; then
- AC_CHECK_HEADER(png.h, HAVE_PNG=yes, HAVE_PNG=no)
- fi
- if test "${HAVE_PNG}" = "yes"; then
- AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).])
-
- AC_CHECK_DECL(png_longjmp,
- [],
- [AC_DEFINE(PNG_DEPSTRUCT, [],
- [Define to empty to suppress deprecation warnings when building
- with --enable-gcc-warnings and with libpng versions before 1.5,
- which lack png_longjmp.])],
- [[#ifdef HAVE_LIBPNG_PNG_H
- # include <libpng/png.h>
- #else
- # include <png.h>
- #endif
- ]])
- fi
-elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
- if test "${with_png}" != "no"; then
- # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
- # in /usr/include/libpng.
- AC_CHECK_HEADERS(png.h libpng/png.h, break)
- if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = yes ; then
- AC_CHECK_LIB(png, png_get_channels, HAVE_PNG=yes, , -lz -lm)
- fi
- fi
-
- if test "${HAVE_PNG}" = "yes"; then
- 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,
- [],
- [AC_DEFINE(PNG_DEPSTRUCT, [],
- [Define to empty to suppress deprecation warnings when building
- with --enable-gcc-warnings and with libpng versions before 1.5,
- which lack png_longjmp.])],
- [[#ifdef HAVE_LIBPNG_PNG_H
- # include <libpng/png.h>
- #else
- # include <png.h>
- #endif
- ]])
- fi
-fi
-AC_SUBST(LIBPNG)
-
HAVE_ZLIB=no
LIBZ=
if test "${with_zlib}" != "no"; then
fi
AC_SUBST(LIBZ)
+### Use -lpng if available, unless `--with-png=no'.
+HAVE_PNG=no
+LIBPNG=
+PNG_CFLAGS=
+if test "${NS_IMPL_COCOA}" = yes; then
+ : # Nothing to do
+elif test "${with_png}" != no; then
+ # mingw32 loads the library dynamically.
+ if test "$opsys" = mingw32; then
+ AC_CHECK_HEADER([png.h], [HAVE_PNG=yes])
+ elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
+ AC_MSG_CHECKING([for png])
+ png_cflags=`(libpng-config --cflags) 2>&AS_MESSAGE_LOG_FD` &&
+ png_libs=`(libpng-config --libs) 2>&AS_MESSAGE_LOG_FD` || {
+ # libpng-config does not work; configure by hand.
+ # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
+ # in /usr/include/libpng.
+ if test -r /usr/include/libpng/png.h &&
+ test ! -r /usr/include/png.h; then
+ png_cflags=-I/usr/include/libpng
+ else
+ png_cflags=
+ fi
+ png_libs='-lpng'
+ }
+ SAVE_CFLAGS=$CFLAGS
+ SAVE_LIBS=$LIBS
+ CFLAGS="$CFLAGS $png_cflags"
+ LIBS="$png_libs -lz -lm $LIBS"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[#include <png.h>]],
+ [[return !png_get_channels (0, 0);]])],
+ [HAVE_PNG=yes
+ PNG_CFLAGS=`AS_ECHO(["$png_cflags"]) | sed -e "$edit_cflags"`
+ LIBPNG=$png_libs
+ # $LIBPNG requires explicit -lz in some cases.
+ # We don't know what those cases are, exactly, so play it safe and
+ # append -lz to any nonempty $LIBPNG, unless we're already using LIBZ.
+ if test -n "$LIBPNG" && test -z "$LIBZ"; then
+ LIBPNG="$LIBPNG -lz"
+ fi])
+ CFLAGS=$SAVE_CFLAGS
+ LIBS=$SAVE_LIBS
+ AC_MSG_RESULT([$HAVE_PNG])
+ fi
+fi
+if test $HAVE_PNG = yes; then
+ AC_DEFINE([HAVE_PNG], [1], [Define to 1 if you have the png library.])
+
+ SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $PNG_CFLAGS"
+ AC_CHECK_DECL([png_longjmp],
+ [],
+ [AC_DEFINE([PNG_DEPSTRUCT], [],
+ [Define to empty to suppress deprecation warnings when building
+ with --enable-gcc-warnings and with libpng versions before 1.5,
+ which lack png_longjmp.])],
+ [[#include <png.h>
+ ]])
+ CFLAGS=$SAVE_CFLAGS
+fi
+AC_SUBST(LIBPNG)
+AC_SUBST(PNG_CFLAGS)
### Use -ltiff if available, unless `--with-tiff=no'.
### mingw32 doesn't use -ltiff, since it loads the library dynamically.
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.])
- # See also .m.o rule in Makefile.in */
- # FIXME: are all these flags really needed? Document here why. */
- GNUSTEP_CFLAGS="-D_REENTRANT -fPIC -fno-strict-aliasing -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
- ## Extra CFLAGS applied to src/*.m files.
- GNU_OBJC_CFLAGS="$GNU_OBJC_CFLAGS -fgnu-runtime -Wno-import -fconstant-string-class=NSConstantString -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN -DGSDIAGNOSE"
+ if test $NS_GNUSTEP_CONFIG != yes; then
+ # See also .m.o rule in src/Makefile.in. */
+ # FIXME: are all these flags really needed? Document here why. */
+ GNUSTEP_CFLAGS="-D_REENTRANT -fPIC -fno-strict-aliasing -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
+ ## Extra CFLAGS applied to src/*.m files.
+ GNU_OBJC_CFLAGS="$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
fi
OTHER_FILES=ns-app
fi
if test "${HAVE_X_SM}" = "yes"; then
AC_DEFINE(HAVE_X_SM, 1, [Define to 1 if you have the SM library (-lSM).])
LIBXSM="-lSM -lICE"
- case "$LIBS" in
- *-lSM*) ;;
- *) LIBS="$LIBXSM $LIBS" ;;
- esac
fi
fi
AC_SUBST(LIBXSM)
if test "${HAVE_X11}" = "yes"; then
XRANDR_REQUIRED=1.2.2
XRANDR_MODULES="xrandr >= $XRANDR_REQUIRED"
- PKG_CHECK_MODULES(XRANDR, $XRANDR_MODULES, HAVE_XRANDR=yes, HAVE_XRANDR=no)
+ EMACS_CHECK_MODULES([XRANDR], [$XRANDR_MODULES])
if test $HAVE_XRANDR = no; then
# Test old way in case pkg-config doesn't have it (older machines).
+ # Include Xrender.h by hand to work around bug in older Xrandr.h
+ # (e.g. RHEL5) and silence (harmless) configure warning (bug#18465).
AC_CHECK_HEADER(X11/extensions/Xrandr.h,
- [AC_CHECK_LIB(Xrandr, XRRGetScreenResources, HAVE_XRANDR=yes)])
+ [AC_CHECK_LIB(Xrandr, XRRGetScreenResources, HAVE_XRANDR=yes)],
+ [], [AC_INCLUDES_DEFAULT
+#include <X11/extensions/Xrender.h>])
if test $HAVE_XRANDR = yes; then
XRANDR_LIBS=-lXrandr
- AC_SUBST(XRANDR_LIBS)
fi
fi
if test $HAVE_XRANDR = yes; then
AC_DEFINE(HAVE_XRANDR, 1, [Define to 1 if you have the XRandr extension.])
fi
fi
+AC_SUBST(XRANDR_CFLAGS)
+AC_SUBST(XRANDR_LIBS)
### Use Xinerama (-lXinerama) if available
HAVE_XINERAMA=no
if test "${HAVE_X11}" = "yes"; then
XINERAMA_REQUIRED=1.0.2
XINERAMA_MODULES="xinerama >= $XINERAMA_REQUIRED"
- PKG_CHECK_MODULES(XINERAMA, $XINERAMA_MODULES, HAVE_XINERAMA=yes,
- HAVE_XINERAMA=no)
+ EMACS_CHECK_MODULES([XINERAMA], [$XINERAMA_MODULES])
if test $HAVE_XINERAMA = no; then
# Test old way in case pkg-config doesn't have it (older machines).
AC_CHECK_HEADER(X11/extensions/Xinerama.h,
[AC_CHECK_LIB(Xinerama, XineramaQueryExtension, HAVE_XINERAMA=yes)])
if test $HAVE_XINERAMA = yes; then
XINERAMA_LIBS=-lXinerama
- AC_SUBST(XINERAMA_LIBS)
fi
fi
if test $HAVE_XINERAMA = yes; then
AC_DEFINE(HAVE_XINERAMA, 1, [Define to 1 if you have the Xinerama extension.])
fi
fi
+AC_SUBST(XINERAMA_CFLAGS)
+AC_SUBST(XINERAMA_LIBS)
+### Use Xfixes (-lXfixes) if available
+HAVE_XFIXES=no
+if test "${HAVE_X11}" = "yes"; then
+ XFIXES_REQUIRED=4.0.0
+ XFIXES_MODULES="xfixes >= $XFIXES_REQUIRED"
+ EMACS_CHECK_MODULES([XFIXES], [$XFIXES_MODULES])
+ if test $HAVE_XFIXES = no; then
+ # Test old way in case pkg-config doesn't have it (older machines).
+ AC_CHECK_HEADER(X11/extensions/Xfixes.h,
+ [AC_CHECK_LIB(Xfixes, XFixesHideCursor, HAVE_XFIXES=yes)])
+ if test $HAVE_XFIXES = yes; then
+ XFIXES_LIBS=-lXfixes
+ fi
+ fi
+ if test $HAVE_XFIXES = yes; then
+ AC_DEFINE(HAVE_XFIXES, 1, [Define to 1 if you have the Xfixes extension.])
+ fi
+fi
+AC_SUBST(XFIXES_CFLAGS)
+AC_SUBST(XFIXES_LIBS)
### Use libxml (-lxml2) if available
### mingw32 doesn't use -lxml2, since it loads the library dynamically.
HAVE_LIBXML2=no
if test "${with_xml2}" != "no"; then
### I'm not sure what the version number should be, so I just guessed.
- PKG_CHECK_MODULES(LIBXML2, libxml-2.0 > 2.6.17, HAVE_LIBXML2=yes, HAVE_LIBXML2=no)
+ EMACS_CHECK_MODULES([LIBXML2], [libxml-2.0 > 2.6.17])
# Built-in libxml2 on OS X 10.8 lacks libxml-2.0.pc.
- if test "${HAVE_LIBXML2}" != "yes" -a "$opsys" = "darwin"; then
+ if test "${HAVE_LIBXML2}" != "yes" && test "$opsys" = "darwin"; then
SAVE_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -I$xcsdkdir/usr/include/libxml2"
AC_CHECK_HEADER(libxml/HTMLparser.h,
fi
if test "${HAVE_LIBXML2}" = "yes"; then
if test "${opsys}" != "mingw32"; then
- LIBS="$LIBXML2_LIBS $LIBS"
- AC_CHECK_LIB(xml2, htmlReadMemory, HAVE_LIBXML2=yes, HAVE_LIBXML2=no)
+ AC_CHECK_LIB(xml2, htmlReadMemory, HAVE_LIBXML2=yes, HAVE_LIBXML2=no,
+ [$LIBXML2_LIBS])
else
LIBXML2_LIBS=""
fi
AC_DEFINE(HAVE_H_ERRNO, 1, [Define to 1 if netdb.h declares h_errno.])
fi
-# sqrt and other floating-point functions such as fmod and frexp
-# are found in -lm on most systems, but mingw32 doesn't use -lm.
-if test "${opsys}" != "mingw32"; then
- AC_CHECK_LIB(m, sqrt)
-fi
-
# Check for mail-locking functions in a "mail" library. Probably this should
# have the same check as for liblockfile below.
AC_CHECK_LIB(mail, maillock, have_mail=yes, have_mail=no)
if test $have_mail = yes; then
LIBS_MAIL=-lmail
- LIBS="$LIBS_MAIL $LIBS"
AC_DEFINE(HAVE_LIBMAIL, 1, [Define to 1 if you have the `mail' library (-lmail).])
+
+ OLD_LIBS=$LIBS
+ LIBS="$LIBS_MAIL $LIBS"
+ AC_CHECK_FUNCS(touchlock)
+ LIBS=$OLD_LIBS
else
LIBS_MAIL=
fi
AC_CHECK_LIB(lockfile, maillock, have_lockfile=yes, have_lockfile=no)
if test $have_lockfile = yes; then
LIBS_MAIL=-llockfile
- LIBS="$LIBS_MAIL $LIBS"
AC_DEFINE(HAVE_LIBLOCKFILE, 1, [Define to 1 if you have the `lockfile' library (-llockfile).])
else
# If we have the shared liblockfile, assume we must use it for mail
esac
AC_SUBST(BLESSMAIL_TARGET)
-
+OLD_LIBS=$LIBS
+LIBS="$LIB_PTHREAD $LIB_MATH $LIBS"
AC_CHECK_FUNCS(accept4 fchdir gethostname \
getrusage get_current_dir_name \
-lrand48 \
-select getpagesize setlocale \
+lrand48 random rint \
+select getpagesize setlocale newlocale \
getrlimit setrlimit shutdown getaddrinfo \
-strsignal setitimer \
+pthread_sigmask strsignal setitimer \
sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \
-gai_strerror getline getdelim sync \
+gai_strerror sync \
getpwent endpwent getgrent endgrent \
-touchlock \
cfmakeraw cfsetspeed copysign __executable_start log2)
+LIBS=$OLD_LIBS
dnl No need to check for aligned_alloc and posix_memalign if using
-dnl gmalloc.o, as it supplies them. Don't use these functions on
-dnl Darwin as they are incompatible with unexmacosx.c.
-if test -z "$GMALLOC_OBJ" && test "$opsys" != darwin; then
+dnl gmalloc.o, as it supplies them, unless we're using hybrid_malloc.
+dnl Don't use these functions on Darwin as they are incompatible with
+dnl unexmacosx.c.
+if (test -z "$GMALLOC_OBJ" || test "$hybrid_malloc" = yes) \
+ && test "$opsys" != darwin; then
AC_CHECK_FUNCS([aligned_alloc posix_memalign], [break])
fi
-## Eric Backus <ericb@lsid.hp.com> says, HP-UX 9.x on HP 700 machines
-## has a broken `rint' in some library versions including math library
-## version number A.09.05.
-## You can fix the math library by installing patch number PHSS_4630.
-## But we can fix it more reliably for Emacs by just not using rint.
-## We also skip HAVE_RANDOM - see comments in src/conf_post.h.
-case $opsys in
- hpux*) : ;;
- *) AC_CHECK_FUNCS(random rint) ;;
-esac
-
dnl Cannot use AC_CHECK_FUNCS
AC_CACHE_CHECK([for __builtin_unwind_init],
emacs_cv_func___builtin_unwind_init,
AC_SUBST(LIBS_TERMCAP)
AC_SUBST(TERMCAP_OBJ)
+# GNU/Linux-specific timer functions.
+AC_CACHE_CHECK([for timerfd interface], [emacs_cv_have_timerfd],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include <sys/timerfd.h>
+ ]],
+ [[timerfd_create (CLOCK_REALTIME,
+ TFD_CLOEXEC | TFD_NONBLOCK);
+ timerfd_settime (0, TFD_TIMER_ABSTIME, 0, 0);]])],
+ [emacs_cv_have_timerfd=yes],
+ [emacs_cv_have_timerfd=no])])
+if test "$emacs_cv_have_timerfd" = yes; then
+ AC_DEFINE([HAVE_TIMERFD], 1,
+ [Define to 1 if timerfd functions are supported as in GNU/Linux.])
+fi
+
+# Alternate stack for signal handlers.
+AC_CACHE_CHECK([whether signals can be handled on alternate stack],
+ [emacs_cv_alternate_stack],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include <signal.h>
+ ]],
+ [[stack_t ss;
+ struct sigaction sa;
+ ss.ss_sp = malloc (SIGSTKSZ);
+ ss.ss_size = SIGSTKSZ;
+ sa.sa_flags = SA_SIGINFO | SA_ONSTACK;
+ sigaltstack (&ss, 0);
+ sigaction (SIGSEGV, &sa, 0);]])],
+ [emacs_cv_alternate_stack=yes],
+ [emacs_cv_alternate_stack=no])])
# Do we have res_init, for detecting changes in /etc/resolv.conf?
# On Darwin, res_init appears not to be useful: see bug#562 and
KRB4LIB=
if test "${with_kerberos}" != no; then
+ OLD_LIBS=$LIBS
AC_CHECK_LIB(com_err, com_err, have_com_err=yes, have_com_err=no)
if test $have_com_err = yes; then
COM_ERRLIB=-lcom_err
[AC_CHECK_HEADERS(kerberos/krb.h)])])
fi
AC_CHECK_HEADERS(com_err.h)
+ LIBS=$OLD_LIBS
fi
AC_SUBST(COM_ERRLIB)
AC_CHECK_HEADERS(valgrind/valgrind.h)
-AC_CHECK_FUNCS_ONCE(tzset)
-AC_MSG_CHECKING(whether localtime caches TZ)
-AC_CACHE_VAL(emacs_cv_localtime_cache,
-[if test x$ac_cv_func_tzset = xyes; then
-AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <time.h>
-char TZ_GMT0[] = "TZ=GMT0";
-char TZ_PST8[] = "TZ=PST8";
-main()
-{
- time_t now = time ((time_t *) 0);
- int hour_GMT0, hour_unset;
- if (putenv (TZ_GMT0) != 0)
- exit (1);
- hour_GMT0 = localtime (&now)->tm_hour;
- unsetenv("TZ");
- hour_unset = localtime (&now)->tm_hour;
- if (putenv (TZ_PST8) != 0)
- exit (1);
- if (localtime (&now)->tm_hour == hour_GMT0)
- exit (1);
- unsetenv("TZ");
- if (localtime (&now)->tm_hour != hour_unset)
- exit (1);
- exit (0);
-}]])], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
-[# If we have tzset, assume the worst when cross-compiling.
-emacs_cv_localtime_cache=yes])
-else
- # If we lack tzset, report that localtime does not cache TZ,
- # since we can't invalidate the cache if we don't have tzset.
- emacs_cv_localtime_cache=no
-fi])dnl
-AC_MSG_RESULT($emacs_cv_localtime_cache)
-if test $emacs_cv_localtime_cache = yes; then
- AC_DEFINE(LOCALTIME_CACHE, 1,
- [Define to 1 if localtime caches TZ.])
-fi
+AC_CHECK_FUNCS_ONCE(tzalloc tzset)
ok_so_far=yes
AC_CHECK_FUNC(socket, , ok_so_far=no)
[Define to 1 if you have inet sockets.])
fi
-dnl Check for a Solaris 2.4 vfork bug that Autoconf misses (through 2.69).
-dnl This can be removed once we assume Autoconf 2.70.
-case $canonical in
- *-solaris2.4 | *-solaris2.4.*)
- dnl Disable the Autoconf-generated vfork test.
- : ${ac_cv_func_vfork_works=no};;
-esac
-
AC_FUNC_FORK
AC_CHECK_FUNCS(snprintf)
-dnl Check this late. It depends on what other libraries (lrsvg, Gtk+ etc)
-dnl Emacs uses.
+dnl Check for glib. This differs from other library checks in that
+dnl Emacs need not link to glib unless some other library is already
+dnl linking to glib. Although glib provides no facilities that Emacs
+dnl needs for its own purposes, when glib is present Emacs needs to
+dnl use primitives like g_main_context_query to avoid clashing with
+dnl glib at a low level.
+dnl
+dnl Check this late, since it depends on $GTK_CFLAGS etc.
XGSELOBJ=
OLDCFLAGS="$CFLAGS"
OLDLIBS="$LIBS"
+CFLAGS="$CFLAGS $GTK_CFLAGS $RSVG_CFLAGS $DBUS_CFLAGS $SETTINGS_CFLAGS"
+LIBS="$LIBS $GTK_LIBS $RSVG_LIBS $DBUS_LIBS $SETTINGS_LIBS"
CFLAGS="$CFLAGS $GFILENOTIFY_CFLAGS"
LIBS="$LIBS $GFILENOTIFY_LIBS"
AC_MSG_CHECKING([whether GLib is linked in])
AC_TYPE_MBSTATE_T
-AC_CACHE_CHECK([for C restricted array declarations], emacs_cv_c_restrict_arr,
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[void fred (int x[__restrict]);]], [[]])],
- emacs_cv_c_restrict_arr=yes, emacs_cv_c_restrict_arr=no)])
-if test "$emacs_cv_c_restrict_arr" = yes; then
- AC_DEFINE(__restrict_arr, __restrict,
- [Define to compiler's equivalent of C99 restrict keyword in array
- declarations. Define as empty for no equivalent.])
-fi
-
dnl Fixme: AC_SYS_POSIX_TERMIOS should probably be used, but it's not clear
dnl how the tty code is related to POSIX and/or other versions of termios.
dnl The following looks like a useful start.
in the full name stands for the login id.])
fi
-dnl Every platform that uses configure supports this.
-dnl There is a create-lockfiles option you can
-dnl customize if you do not want the lock files to be written.
-dnl So it is not clear that this #define still needs to exist.
-AC_DEFINE(CLASH_DETECTION, 1, [Define if you want lock files to be written,
- so that Emacs can tell instantly when you try to modify a file that
- someone else has modified in his/her Emacs.])
-
dnl Everybody supports this, except MS.
dnl Seems like the kind of thing we should be testing for, though.
## Note: PTYs are broken on darwin <6. Use at your own risk.
case $opsys in
aix4-2)
dnl Unfortunately without libXmu we cannot support EditRes.
- if test x$ac_cv_lib_Xmu_XmuConvertStandardSelection != xyes; then
+ if test "x$ac_cv_search_XmuConvertStandardSelection" = xno; then
AC_DEFINE(NO_EDITRES, 1)
fi
;;
esac
-dnl Used in lisp.h, emacs.c, vm-limit.c
-dnl NEWS.18 describes this as "a number which contains
-dnl the high bits to be inclusive or'ed with pointers that are unpacked."
-AH_TEMPLATE(DATA_SEG_BITS, [Extra bits to be or'd in with any pointers
-stored in a Lisp_Object.])
-dnl if Emacs uses fewer than 32 bits for the value field of a LISP_OBJECT.
-
-case $opsys in
- aix*)
- dnl This works with 32-bit executables; Emacs doesn't support 64-bit.
- AC_DEFINE(DATA_SEG_BITS, [0x20000000])
- ;;
- hpux*)
- dnl The data segment on this machine always starts at address 0x40000000.
- AC_DEFINE(DATA_SEG_BITS, [0x40000000])
- ;;
- irix6-5)
- AC_DEFINE(DATA_SEG_BITS, [0x10000000])
- ;;
-esac
-
-
AH_TEMPLATE(TAB3, [Undocumented.])
case $opsys in
[emacs_cv_func__setjmp=no])])
if test $emacs_cv_func__setjmp = yes; then
AC_DEFINE([HAVE__SETJMP], 1, [Define to 1 if _setjmp and _longjmp work.])
-else
- AC_CACHE_CHECK([for sigsetjmp], [emacs_cv_func_sigsetjmp],
- [AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [[#include <setjmp.h>
- ]],
- [[sigjmp_buf j;
- if (! sigsetjmp (j, 1))
- siglongjmp (j, 1);]])],
- [emacs_cv_func_sigsetjmp=yes],
- [emacs_cv_func_sigsetjmp=no])])
- if test $emacs_cv_func_sigsetjmp = yes; then
- AC_DEFINE([HAVE_SIGSETJMP], 1,
- [Define to 1 if sigsetjmp and siglongjmp work.
- The value of this symbol is irrelevant if HAVE__SETJMP is defined.])
- fi
+fi
+
+# We need to preserve signal mask to handle C stack overflows.
+AC_CACHE_CHECK([for sigsetjmp], [emacs_cv_func_sigsetjmp],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <setjmp.h>
+ ]],
+ [[sigjmp_buf j;
+ if (! sigsetjmp (j, 1))
+ siglongjmp (j, 1);]])],
+ [emacs_cv_func_sigsetjmp=yes],
+ [emacs_cv_func_sigsetjmp=no])])
+if test $emacs_cv_func_sigsetjmp = yes; then
+ AC_DEFINE([HAVE_SIGSETJMP], 1,
+ [Define to 1 if sigsetjmp and siglongjmp work.])
+fi
+
+# We need all of these features to handle C stack overflows.
+if test "$ac_cv_header_sys_resource_h" = "yes" &&
+ test "$ac_cv_func_getrlimit" = "yes" &&
+ test "$emacs_cv_func_sigsetjmp" = "yes" &&
+ test "$emacs_cv_alternate_stack" = yes; then
+ AC_DEFINE([HAVE_STACK_OVERFLOW_HANDLING], 1,
+ [Define to 1 if C stack overflow can be handled in some cases.])
fi
case $opsys in
fi
fi
-
case $opsys in
- dnl Emacs supplies its own malloc, but glib calls posix_memalign,
- dnl and on Cygwin prior to version 1.7.24 that becomes the
- dnl Cygwin-supplied posix_memalign. As malloc is not the Cygwin
- dnl malloc, the Cygwin posix_memalign always returns ENOSYS. A
- dnl workaround is to set G_SLICE=always-malloc. This is no longer
- dnl needed starting with cygwin-1.7.24, and it is no longer
- dnl effective starting with glib-2.36. */
- cygwin)
- AC_DEFINE(G_SLICE_ALWAYS_MALLOC, 1, [Define to set the
- G_SLICE environment variable to "always-malloc" at startup.])
- ;;
-
hpux11)
dnl It works to open the pty's tty in the parent (Emacs), then
dnl close and reopen it in the child.
# Set up the CFLAGS for real compilation, so we can substitute it.
CFLAGS="$REAL_CFLAGS"
CPPFLAGS="$REAL_CPPFLAGS"
+LIBS="$REAL_LIBS"
## Hack to detect a buggy GCC version.
if test "x$GCC" = xyes \
AC_SUBST(bitmapdir)
AC_SUBST(gamedir)
AC_SUBST(gameuser)
+AC_SUBST(gamegroup)
## FIXME? Nothing uses @LD_SWITCH_X_SITE@.
## src/Makefile.in did add LD_SWITCH_X_SITE (as a cpp define) to the
## end of LIBX_BASE, but nothing ever set it.
fi
AC_SUBST(LIBXMENU)
+AC_CACHE_CHECK([for struct alignment],
+ [emacs_cv_struct_alignment],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include <stddef.h>
+ struct __attribute__ ((aligned (8))) s { char c; };
+ struct t { char c; struct s s; };
+ char verify[offsetof (struct t, s) == 8 ? 1 : -1];
+ ]])],
+ [emacs_cv_struct_alignment=yes],
+ [emacs_cv_struct_alignment=no])])
+if test "$emacs_cv_struct_alignment" = yes; then
+ AC_DEFINE([HAVE_STRUCT_ATTRIBUTE_ALIGNED], 1,
+ [Define to 1 if 'struct __attribute__ ((aligned (N)))' aligns the
+ structure to an N-byte boundary.])
+fi
+
if test "${GNU_MALLOC}" = "yes" ; then
AC_DEFINE(GNU_MALLOC, 1,
[Define to 1 if you want to use the GNU memory allocator.])
#endif
])
+# If user asks to omit features, disable optional features that gnulib
+# might otherwise enable.
+if test "$with_features" = no && test "$enable_acl" != yes; then
+ enable_acl=no
+fi
+
# Configure gnulib. Although this does not affect CFLAGS or LIBS permanently.
# it temporarily reverts them to their pre-pkg-config values,
# because gnulib needs to work with both src (which uses the
gnu*) LD_SWITCH_SYSTEM_TEMACS="\$(LD_SWITCH_X_SITE_RPATH)" ;;
mingw32)
- ## MinGW64 does not prepend an underscore to symbols, so we must
- ## pass a different -entry switch to linker. FIXME: It is better
- ## to make the entry points the same by changing unexw32.c.
+ ## Is it any better under MinGW64 to relocate emacs into higher addresses?
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,0x400000000 -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
;;
AC_SUBST(LD_SWITCH_SYSTEM_TEMACS)
-## MinGW-specific post-link processing of temacs.
-TEMACS_POST_LINK=":"
-ADDSECTION=
-EMACS_HEAPSIZE=
-if test "${opsys}" = "mingw32"; then
- TEMACS_POST_LINK="\$(MINGW_TEMACS_POST_LINK)"
- ADDSECTION="../nt/addsection\$(EXEEXT)"
- ## Preload heap size of temacs.exe in MB.
- case "$canonical" in
- x86_64-*-*) EMACS_HEAPSIZE=42 ;;
- *) EMACS_HEAPSIZE=27 ;;
- esac
-fi
-
-AC_SUBST(ADDSECTION)
-AC_SUBST(TEMACS_POST_LINK)
-AC_SUBST(EMACS_HEAPSIZE)
-
## Common for all window systems
if test "$window_system" != "none"; then
AC_DEFINE(HAVE_WINDOW_SYSTEM, 1, [Define if you have a window system.])
+ AC_DEFINE(POLL_FOR_INPUT, 1, [Define if you poll periodically to detect C-g.])
WINDOW_SYSTEM_OBJ="fontset.o fringe.o image.o"
fi
fi
if test $USE_ACL -ne 0; then
- acl_summary="yes $LIB_ACL"
+ ACL_SUMMARY="yes $LIB_ACL"
else
- acl_summary=no
+ ACL_SUMMARY=no
fi
echo "
echo " Where do we find X Windows libraries? Standard dirs"
fi
+optsep=
+emacs_config_features=
+for opt in XAW3D XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS \
+ GCONF GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT \
+ LIBOTF XFT ZLIB; do
+
+ case $opt in
+ NOTIFY|ACL) eval val=\${${opt}_SUMMARY} ;;
+ *) eval val=\${HAVE_$opt} ;;
+ esac
+ test x"$val" = xno && continue
+ AS_VAR_APPEND([emacs_config_features], ["$optsep$opt"])
+ optsep=' '
+done
+AC_DEFINE_UNQUOTED(EMACS_CONFIG_FEATURES, "${emacs_config_features}",
+ [Summary of some of the main features enabled by configure.])
+
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 -lgconf? ${HAVE_GCONF}"
echo " Does Emacs use GSettings? ${HAVE_GSETTINGS}"
echo " Does Emacs use a file notification library? ${NOTIFY_SUMMARY}"
-echo " Does Emacs use access control lists? ${acl_summary}"
+echo " Does Emacs use access control lists? ${ACL_SUMMARY}"
echo " Does Emacs use -lselinux? ${HAVE_LIBSELINUX}"
echo " Does Emacs use -lgnutls? ${HAVE_GNUTLS}"
echo " Does Emacs use -lxml2? ${HAVE_LIBXML2}"
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
${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force-w32
else
${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force
-fi
+fi || AC_MSG_ERROR(['src/epaths.h' could not be made.])
], [GCC="$GCC" CPPFLAGS="$CPPFLAGS" opsys="$opsys"])
dnl NB we have to cheat and use the ac_... version because abs_top_srcdir
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'.])