dnl Note this is parsed by (at least) make-dist and lisp/cedet/ede/emacs.el.
AC_INIT(GNU Emacs, 24.4.50, bug-gnu-emacs@gnu.org)
-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.
dnl Add some environment variables, if they were passed via the environment
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
+canonical=$host
+configuration=${host_alias-${build_alias-$host}}
+
+dnl We get MINGW64 with MSYS2, MINGW32 with MSYS.
+case $canonical in
+ *-mingw*)
+ . $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;;
+esac
+
dnl Support for --program-prefix, --program-suffix and
dnl --program-transform-name options
AC_ARG_PROGRAM
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])
[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.
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"
fi
-AC_MSG_CHECKING([whether we are using GNU Make])
-testval=`${MAKE-make} --version 2>/dev/null | grep 'GNU Make'`
-if test "x$testval" != x; then
- AC_MSG_RESULT([yes])
-else
- AC_MSG_RESULT([no])
- AC_MSG_ERROR([Building Emacs requires GNU make.
-If you have it installed under another name, configure with 'MAKE=...'.
-For example, run './configure MAKE=gmake'.])
-fi
-
-
#### Choose a compiler.
dnl Don't bother to test for C89.
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-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])
AC_ARG_ENABLE(link-time-optimization,
[AS_HELP_STRING([--enable-link-time-optimization],
[build emacs with link-time optimization.
- This is supported for gcc since 4.5.0 and clang.
- Note that clang support is experimental - see INSTALL])],
+ 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
# 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 Port to Automake 1.11.
+dnl This section can be removed once we assume Automake 1.14 or later.
+: ${AM_DEFAULT_VERBOSITY=1}
+: ${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.
dnl AC_PROG_INSTALL
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
+ 'makeinfo (GNU texinfo) '4.[[7-9]]* | \
+ 'makeinfo (GNU texinfo) '4.[[1-9][0-9]]* | \
+ 'makeinfo (GNU texinfo) '[[5-9]]* | \
+ 'makeinfo (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
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=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)
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|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
OLD_LIBS=$LIBS
AC_SEARCH_LIBS([$emacs_pthread_function], [pthread],
[AC_DEFINE([HAVE_PTHREAD], [1],
- [Define to 1 if you have pthread (-lpthread).])])
- if test "X$LIBS" != "X$OLD_LIBS"; then
+ [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])
+ if test "X$LIBS" != "X$OLD_LIBS"; then
eval LIB_PTHREAD=\$ac_cv_search_$emacs_pthread_function
fi
LIBS=$OLD_LIBS
### Start of font-backend (under X11) section.
if test "${HAVE_X11}" = "yes"; then
- EMACS_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
EMACS_CHECK_MODULES([XFT], [xft >= 0.13.0], [], [HAVE_XFT=no])
### Use -lXpm if available, unless `--with-xpm=no'.
### mingw32 doesn't use -lXpm, since it loads the library dynamically.
+### In the Cygwin-w32 build, we need to use /usr/include/noX/X11/xpm.h
+### rather than /usr/include/X11/xpm.h, so we set CPPFLAGS (and
+### LDFLAGS) accordingly.
HAVE_XPM=no
LIBXPM=
if test "${HAVE_W32}" = "yes" && test "${opsys}" = "cygwin"; then
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)])
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
AC_SUBST(BLESSMAIL_TARGET)
OLD_LIBS=$LIBS
-LIBS="$LIB_MATH $LIBS"
-AC_CHECK_FUNCS(accept4 gethostname \
+LIBS="$LIB_PTHREAD $LIB_MATH $LIBS"
+AC_CHECK_FUNCS(accept4 fchdir gethostname \
getrusage get_current_dir_name \
lrand48 random rint \
-select getpagesize setlocale \
+select getpagesize setlocale newlocale \
getrlimit setrlimit shutdown getaddrinfo \
-strsignal setitimer \
+pthread_sigmask strsignal setitimer \
sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \
gai_strerror sync \
getpwent endpwent getgrent endgrent \
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
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
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.
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
[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" -a \
+ "$ac_cv_func_getrlimit" = "yes" -a \
+ "$emacs_cv_func_sigsetjmp" = "yes" -a \
+ "$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.
#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
AC_SUBST(LD_SWITCH_SYSTEM_TEMACS)
-## MinGW-specific compilation switch.
-C_HEAP_SWITCH=
-if test "${opsys}" = "mingw32"; then
- ## Preload heap size of temacs.exe in MB.
- case "$canonical" in
- x86_64-*-*) C_HEAP_SWITCH="-DHEAPSIZE=18" ;;
- *) C_HEAP_SWITCH="-DHEAPSIZE=10" ;;
- esac
-fi
-
-AC_SUBST(C_HEAP_SWITCH)
-
## 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
${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
])
AC_OUTPUT
+
+test "$MAKE" = make || AC_MSG_NOTICE([Now you can run '$MAKE'.])