OPTION_DEFAULT_ON([gif],[don't compile with GIF image support])
OPTION_DEFAULT_ON([png],[don't compile with PNG image support])
OPTION_DEFAULT_ON([rsvg],[don't compile with SVG image support])
+OPTION_DEFAULT_ON([libsystemd],[don't compile with libsystemd support])
OPTION_DEFAULT_OFF([cairo],[compile with Cairo drawing (experimental)])
OPTION_DEFAULT_ON([xml2],[don't compile with XML parsing support])
OPTION_DEFAULT_ON([imagemagick],[don't compile with ImageMagick image support])
* ) unported=yes ;;
esac
opsys=darwin
- ## Use fink packages if available.
- ## FIXME find a better way to do this: http://debbugs.gnu.org/11507
-## if test -d /sw/include && test -d /sw/lib; then
-## GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib"
-## NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS}
-## fi
+ ## FIXME: Find a way to use Fink if available (Bug#11507).
;;
## Chromium Native Client
opsys=aix4-2
;;
- ## Silicon Graphics machines
- ## Iris 4D
- mips-sgi-irix6.5 )
- opsys=irix6-5
- # Without defining _LANGUAGE_C, things get masked out in the headers
- # so that, for instance, grepping for 'free' in stdlib.h fails and
- # AC_HEADER_STD_C fails. (MIPSPro 7.2.1.2m compilers, Irix 6.5.3m).
- NON_GCC_TEST_OPTIONS="-D_LANGUAGE_C"
- ;;
-
## Suns
*-sun-solaris* \
| i[3456]86-*-solaris2* | i[3456]86-*-sunos5* \
if test x$GCC = xyes; then
test "x$GCC_TEST_OPTIONS" != x && CC="$CC $GCC_TEST_OPTIONS"
-else
- test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS"
fi
dnl This is used in lib/Makefile.am to use nt/gnulib.mk, the
esac
fi
+# gl_GCC_VERSION_IFELSE([major], [minor], [run-if-found], [run-if-not-found])
+# ---------------------------------------------------------------------------
+# If $CPP is gcc-MAJOR.MINOR or newer, then run RUN-IF-FOUND.
+# Otherwise, run RUN-IF-NOT-FOUND.
+AC_DEFUN([gl_GCC_VERSION_IFELSE],
+ [AC_PREPROC_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#if ($1) < __GNUC__ || (($1) == __GNUC__ && ($2) <= __GNUC_MINOR__)
+/* ok */
+#else
+# error "your version of gcc is older than $1.$2"
+#endif
+ ]]),
+ ], [$3], [$4])
+ ]
+)
+
AC_ARG_ENABLE([gcc-warnings],
- [AS_HELP_STRING([--enable-gcc-warnings],
- [turn on lots of GCC warnings/errors. This is intended for
- developers, and may generate false alarms when used
- with older or non-GNU development tools.])],
+ [AS_HELP_STRING([--enable-gcc-warnings@<:@=TYPE@:>@],
+ [control generation of GCC warnings. The TYPE 'yes'
+ means to fail if any warnings are issued; 'warn-only'
+ means issue warnings without failing (default for
+ developer builds); 'no' means disable warnings
+ (default for non-developer builds).])],
[case $enableval in
- yes|no) ;;
+ yes|no|warn-only) ;;
*) AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;;
esac
gl_gcc_warnings=$enableval],
- [gl_gcc_warnings=no]
+ [# By default, use 'warn-only' if it looks like the invoker of 'configure'
+ # is a developer as opposed to a builder. This is most likely true
+ # if GCC is recent enough and there is a .git directory or file;
+ # however, if there is also a .tarball-version file it is probably
+ # just a release imported into Git for patch management.
+ gl_gcc_warnings=no
+ if test -e "$srcdir"/.git && test ! -f "$srcdir"/.tarball-version; then
+ gl_GCC_VERSION_IFELSE([5], [3], [gl_gcc_warnings=warn-only])]
+ fi
)
# clang is unduly picky about some things.
# When compiling with GCC, prefer -isystem to -I when including system
# include files, to avoid generating useless diagnostics for the files.
-if test "$gl_gcc_warnings" != yes; then
+AS_IF([test $gl_gcc_warnings = no],
+ [
isystem='-I'
- if test "$emacs_cv_clang" = yes
- then
+ AS_IF([test "$emacs_cv_clang" = yes],
+ [
# Turn off some warnings if supported.
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])
gl_WARN_ADD([-Wno-unknown-attributes])
- fi
-else
+ ])
+ ],[
isystem='-isystem '
# This, $nw, is the list of warnings we disable.
# Old toolkits mishandle 'const'.
nw="$nw -Wwrite-strings"
;;
- *)
- gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
- ;;
esac
+ AS_IF([test $gl_gcc_warnings = yes],
+ [gl_WARN_ADD([-Werror], [WERROR_CFLAGS])])
AC_SUBST([WERROR_CFLAGS])
nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings
nw="$nw -Wformat-nonliteral" # we do this a lot
nw="$nw -Wvla" # Emacs uses <vla.h>.
nw="$nw -Wswitch-default" # Too many warnings for now
+ nw="$nw -Wunused-const-variable=2" # lisp.h declares const objects.
nw="$nw -Winline" # OK to ignore 'inline'
nw="$nw -Wstrict-overflow" # OK to optimize assuming that
# signed overflow has undefined behavior
nw="$nw -Wcast-align"
fi
+ # This causes too much noise in the MinGW build
+ if test $opsys = mingw32; then
+ nw="$nw -Wpointer-sign"
+ fi
+
gl_MANYWARN_ALL_GCC([ws])
gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw])
for w in $ws; do
gl_WARN_ADD([-Wno-unused-value])
fi
- AC_DEFINE([lint], [1], [Define to 1 if the compiler is checking for lint.])
+ # This causes too much noise in the MinGW build
+ if test $opsys = mingw32; then
+ gl_WARN_ADD([-Wno-pointer-sign])
+ fi
+
+ AC_DEFINE([GCC_LINT], [1], [Define to 1 if --enable-gcc-warnings.])
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,
gl_MANYWARN_COMPLEMENT([GNULIB_WARN_CFLAGS], [$WARN_CFLAGS], [$nw])
AC_SUBST([GNULIB_WARN_CFLAGS])
-fi
+ ])
edit_cflags="
s,///*,/,g
test $with_compress_install != yes && test -n "$GZIP_PROG" && \
GZIP_PROG=" # $GZIP_PROG # (disabled by configure --without-compress-install)"
+PAXCTL_dumped=
+PAXCTL_notdumped=
if test $opsys = gnu-linux; then
- AC_PATH_PROG(PAXCTL, paxctl,,
- [$PATH$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/sbin])
- if test "X$PAXCTL" != X; then
- AC_MSG_CHECKING([whether binaries have a PT_PAX_FLAGS header])
- AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
- [if $PAXCTL -v conftest$EXEEXT >/dev/null 2>&1; then AC_MSG_RESULT(yes)
- else AC_MSG_RESULT(no); PAXCTL=""; fi])
- fi
-
if test "${SETFATTR+set}" != set; then
AC_CACHE_CHECK([for setfattr],
[emacs_cv_prog_setfattr],
emacs_cv_prog_setfattr=no
fi])
if test "$emacs_cv_prog_setfattr" = yes; then
+ PAXCTL_notdumped='$(SETFATTR) -n user.pax.flags -v er'
SETFATTR=setfattr
else
SETFATTR=
AC_SUBST([SETFATTR])
fi
fi
+case $opsys,$PAXCTL_notdumped in
+ gnu-linux, | netbsd,)
+ AC_PATH_PROG([PAXCTL], [paxctl], [],
+ [$PATH$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/sbin])
+ if test -n "$PAXCTL"; then
+ if test "$opsys" = netbsd; then
+ PAXCTL_dumped='$(PAXCTL) +a'
+ PAXCTL_notdumped=$PAXCTL_dumped
+ else
+ AC_MSG_CHECKING([whether binaries have a PT_PAX_FLAGS header])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
+ [if $PAXCTL -v conftest$EXEEXT >/dev/null 2>&1; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ PAXCTL=
+ fi])
+ if test -n "$PAXCTL"; then
+ PAXCTL_dumped='$(PAXCTL) -zex'
+ PAXCTL_notdumped='$(PAXCTL) -r'
+ fi
+ fi
+ fi;;
+esac
+AC_SUBST([PAXCTL_dumped])
+AC_SUBST([PAXCTL_notdumped])
## Need makeinfo >= 4.7 (?) to build the manuals.
if test "$MAKEINFO" != "no"; then
dnl We need -znocombreloc if we're using a relatively recent GNU ld.
dnl If we can link with the flag, it shouldn't do any harm anyhow.
-dnl (Don't use '-z nocombreloc' as -z takes no arg on Irix.)
dnl Treat GCC specially since it just gives a non-fatal 'unrecognized option'
dnl if not built to support GNU ld.
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.
+dnl gnu, gnu/linux, gnu/kfreebsd, aix, cygwin, darwin, hpux.
dnl And special cases: berkeley-unix, usg-unix-v, ms-dos, windows-nt.
SYSTEM_TYPE=`echo $opsys | sed -e 's/[[0-9]].*//' -e 's|-|/|'`
## $window_system is now set to the window system we will
## ultimately use.
-if test "$window_system" = none && test "$gl_gcc_warnings" = yes; then
- # Too many warnings for now.
- nw=
- nw="$nw -Wsuggest-attribute=noreturn"
- gl_MANYWARN_COMPLEMENT([WARN_CFLAGS], [$WARN_CFLAGS], [$nw])
-
- gl_WARN_ADD([-Wno-unused-variable])
- gl_WARN_ADD([-Wno-unused-but-set-variable])
- gl_WARN_ADD([-Wno-unused-but-set-parameter])
-fi
-
term_header=
HAVE_X_WINDOWS=no
HAVE_X11=no
use_mmap_for_buffers=no
case "$opsys" in
- cygwin|mingw32|irix6-5) use_mmap_for_buffers=yes ;;
+ cygwin|mingw32) use_mmap_for_buffers=yes ;;
esac
AC_FUNC_MMAP
AC_SUBST(LIBGNUTLS_LIBS)
AC_SUBST(LIBGNUTLS_CFLAGS)
+HAVE_LIBSYSTEMD=no
+if test "${with_libsystemd}" = "yes" ; then
+ dnl This code has been tested with libsystemd 222 and later.
+ dnl FIXME: Find the earliest version number for which Emacs should work,
+ dnl and change '222' to that number.
+ EMACS_CHECK_MODULES([LIBSYSTEMD], [libsystemd >= 222],
+ [HAVE_LIBSYSTEMD=yes], [HAVE_LIBSYSTEMD=no])
+ if test "${HAVE_LIBSYSTEMD}" = "yes"; then
+ AC_DEFINE(HAVE_LIBSYSTEMD, 1, [Define if using libsystemd.])
+ fi
+fi
+
+AC_SUBST(LIBSYSTEMD_LIBS)
+AC_SUBST(LIBSYSTEMD_CFLAGS)
+
NOTIFY_OBJ=
NOTIFY_SUMMARY=no
MODULES_OBJ=
MODULES_SUFFIX=
if test "${with_modules}" != "no"; then
- if test "$opsys" = "gnu-linux"; then
- LIBMODULES="-ldl"
- MODULES_SUFFIX=".so"
- HAVE_MODULES=yes
- elif test "$opsys" = "cygwin"; then
- MODULES_SUFFIX=".dll"
- HAVE_MODULES=yes
- elif test "$opsys" = "darwin"; then
- MODULES_SUFFIX=".so"
- HAVE_MODULES=yes
- elif test "$opsys" = "mingw32"; then
- MODULES_SUFFIX=".dll"
- HAVE_MODULES=yes
- else
- # BSD system have dlopen in the libc
- AC_CHECK_FUNC(dlopen, [MODULES_SUFFIX=".so"]
- [HAVE_MODULES=yes], [])
- fi
+ case $opsys in
+ gnu|gnu-linux)
+ LIBMODULES="-ldl"
+ MODULES_SUFFIX=".so"
+ HAVE_MODULES=yes
+ ;;
+ cygwin|mingw32)
+ MODULES_SUFFIX=".dll"
+ HAVE_MODULES=yes
+ ;;
+ darwin)
+ MODULES_SUFFIX=".so"
+ HAVE_MODULES=yes
+ ;;
+ *)
+ # BSD systems have dlopen in libc.
+ AC_CHECK_FUNC([dlopen],
+ [MODULES_SUFFIX=".so"
+ HAVE_MODULES=yes])
+ ;;
+ esac
if test "${HAVE_MODULES}" = no; then
AC_MSG_ERROR([Dynamic modules are not supported on your system])
fi
fi
if test $HAVE_XRANDR = yes; then
- SAVE_CFLAGS="$CFLAGS"
- SAVE_LIBS="$LIBS"
- CFLAGS="$XRANDR_CFLAGS $CFLAGS"
- LIBS="$XRANDR_LIBS $LIBS"
- AC_CHECK_FUNCS(XRRGetOutputPrimary XRRGetScreenResourcesCurrent)
- CFLAGS="$SAVE_CFLAGS"
- LIBS="$SAVE_LIBS"
-
AC_DEFINE(HAVE_XRANDR, 1, [Define to 1 if you have the XRandr extension.])
fi
fi
AC_SUBST(LIBXML2_LIBS)
AC_SUBST(LIBXML2_CFLAGS)
-# If netdb.h doesn't declare h_errno, we must declare it by hand.
-# On MinGW, that is provided by nt/inc/sys/socket.h and w32.c.
-if test "${opsys}" = "mingw32"; then
- emacs_cv_netdb_declares_h_errno=yes
-fi
-AC_CACHE_CHECK(whether netdb declares h_errno,
- emacs_cv_netdb_declares_h_errno,
-[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]],
- [[return h_errno;]])],
- emacs_cv_netdb_declares_h_errno=yes, emacs_cv_netdb_declares_h_errno=no)])
-if test $emacs_cv_netdb_declares_h_errno = yes; then
- AC_DEFINE(HAVE_H_ERRNO, 1, [Define to 1 if netdb.h declares h_errno.])
-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)
case "$opsys" in
aix4-2) mail_lock="lockf" ;;
- gnu|freebsd|dragonfly|netbsd|openbsd|darwin|irix6-5) mail_lock="flock" ;;
+ gnu|freebsd|dragonfly|netbsd|openbsd|darwin) mail_lock="flock" ;;
## On GNU/Linux systems, both methods are used by various mail programs.
## I assume most people are using newer mailers that have heard of flock.
getrusage get_current_dir_name \
lrand48 random rint \
select getpagesize setlocale newlocale \
-getrlimit setrlimit shutdown getaddrinfo \
+getrlimit setrlimit shutdown \
pthread_sigmask strsignal setitimer \
sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \
gai_strerror sync \
case $opsys in
- irix6-5 | sol2* | unixware )
+ sol2* | unixware )
dnl Some SVr4s don't define NSIG in sys/signal.h for ANSI environments;
dnl instead, there's a system variable _sys_nsig. Unfortunately, we
dnl need the constant to dimension an array. So wire in the appropriate
case $opsys in
dnl SIGIO exists, but the feature doesn't work in the way Emacs needs.
dnl See eg <http://article.gmane.org/gmane.os.openbsd.ports/46831>.
- hpux* | irix6-5 | nacl | openbsd | sol2* | unixware )
+ hpux* | nacl | openbsd | sol2* | unixware )
emacs_broken_SIGIO=yes
;;
dnl NARROWPROTO, we will see the wrong function prototypes for X functions
dnl taking float or double parameters.
case $opsys in
- cygwin|gnu|gnu-linux|gnu-kfreebsd|irix6-5|freebsd|netbsd|openbsd)
+ cygwin|gnu|gnu-linux|gnu-kfreebsd|freebsd|netbsd|openbsd)
AC_DEFINE(NARROWPROTO, 1, [Define if system's imake configuration
file defines 'NeedWidePrototypes' as 'NO'.])
;;
dnl Used in process.c, this must be a loop, even if it only runs once.
-dnl (Except on SGI; see below. Take that, clarity and consistency!)
AH_TEMPLATE(PTY_ITERATION, [How to iterate over PTYs.])
dnl Only used if !PTY_ITERATION. Iterate from FIRST_PTY_LETTER to z,
dnl trying suffixes 0-16.
AC_DEFINE(PTY_TTY_NAME_SPRINTF, [sprintf (pty_name, "/dev/pty/tty%c%x", c, i);])
;;
- irix6-5 )
- dnl It looks like this cannot be right, because it is not a loop.
- dnl However, process.c actually does this:
- dnl # ifndef __sgi
- dnl continue;
- dnl # else
- dnl return -1;
- dnl # endif
- dnl which presumably makes it OK, since irix == sgi (?).
- dnl FIXME it seems like this special treatment is unnecessary?
- dnl Why can't irix use a single-trip loop like eg cygwin?
- AC_DEFINE(PTY_ITERATION, [])
- dnl Not used, because PTY_ITERATION is defined.
- AC_DEFINE(FIRST_PTY_LETTER, ['q'])
- AC_DEFINE(PTY_OPEN, [ { struct sigaction ocstat, cstat; struct stat stb; char * name; sigemptyset(&cstat.sa_mask); cstat.sa_handler = SIG_DFL; cstat.sa_flags = 0; sigaction(SIGCHLD, &cstat, &ocstat); name = _getpty (&fd, O_RDWR | O_NDELAY, 0600, 0); sigaction(SIGCHLD, &ocstat, (struct sigaction *)0); if (name == 0) return -1; if (fd < 0) return -1; if (fstat (fd, &stb) < 0) return -1; strcpy (pty_name, name); }])
- dnl No need to get the pty name at all.
- AC_DEFINE(PTY_NAME_SPRINTF, [])
- dnl No need to use sprintf to get the tty name--we get that from _getpty.
- AC_DEFINE(PTY_TTY_NAME_SPRINTF, [])
- ;;
-
sol2* )
dnl On SysVr4, grantpt(3) forks a subprocess, so do not use
dnl O_CLOEXEC when opening the pty, and keep the SIGCHLD handler
case $opsys in
dnl Perry Smith <pedz@ddivt1.austin.ibm.com> says this is correct for AIX.
- dnl thomas@mathematik.uni-bremen.de says this is needed for IRIX.
- aix4-2 | cygwin | gnu | irix6-5 | dragonfly | freebsd | netbsd | openbsd | darwin )
+ aix4-2 | cygwin | gnu | dragonfly | freebsd | netbsd | openbsd | darwin )
AC_DEFINE(SIGNALS_VIA_CHARACTERS, 1)
;;
AC_DEFINE(GC_SETJMP_WORKS, 1)
else
case $opsys in
- dnl irix: Tested on Irix 6.5. SCM worked on earlier versions.
- aix* | dragonfly | freebsd | netbsd | openbsd | irix6-5 | sol2* )
+ aix* | dragonfly | freebsd | netbsd | openbsd | sol2* )
AC_DEFINE(GC_SETJMP_WORKS, 1)
;;
esac
AC_DEFINE(HPUX, [], [Define if the system is HPUX.])
;;
- irix6-5)
- AC_DEFINE(USG, [])
- AC_DEFINE(USG5_4, [])
- AC_DEFINE(IRIX6_5, [], [Define if the system is IRIX.])
- ;;
-
mingw32)
AC_DEFINE(DOS_NT, [])
AC_DEFINE(WINDOWSNT, 1, [Define if compiling for native MS Windows.])
reopen it in the child.])
;;
- irix6-5)
- AC_DEFINE(PREFER_VSUSP, 1, [Define if process_send_signal should
- use VSUSP instead of VSWTCH.])
- ;;
-
sol2-10)
AC_DEFINE(_STRUCTURED_PROC, 1, [Needed for system_process_attributes
on Solaris.])
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
for opt in XAW3D XPM JPEG TIFF GIF PNG RSVG CAIRO IMAGEMAGICK SOUND GPM DBUS \
GCONF GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT \
LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS X_TOOLKIT X11 NS MODULES \
- XWIDGETS; do
+ XWIDGETS LIBSYSTEMD; do
case $opt in
NOTIFY|ACL) eval val=\${${opt}_SUMMARY} ;;
Does Emacs use -lm17n-flt? ${HAVE_M17N_FLT}
Does Emacs use -lotf? ${HAVE_LIBOTF}
Does Emacs use -lxft? ${HAVE_XFT}
+ Does Emacs use -lsystemd? ${HAVE_LIBSYSTEMD}
Does Emacs directly use zlib? ${HAVE_ZLIB}
Does Emacs have dynamic modules support? ${HAVE_MODULES}
Does Emacs use toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}