X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/5be4e9de1a92d42a99e0368aa05632b209d67bb7..c456627ffaf4e73e979883b56117cb91f164936b:/configure.ac diff --git a/configure.ac b/configure.ac index 0de6736aee..dbb5ad27c9 100644 --- a/configure.ac +++ b/configure.ac @@ -330,6 +330,7 @@ OPTION_DEFAULT_ON([tiff],[don't compile with TIFF image support]) 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]) @@ -615,12 +616,7 @@ case "${canonical}" in * ) 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 @@ -656,16 +652,6 @@ case "${canonical}" in 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* \ @@ -782,8 +768,6 @@ AM_PROG_CC_C_O 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 @@ -859,17 +843,44 @@ if test "$ac_test_CFLAGS" != set; then 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 + test -e "$srcdir"/.git && test ! -f "$srcdir"/.tarball-version && + gl_GCC_VERSION_IFELSE([5], [3], [gl_gcc_warnings=warn-only])] ) # clang is unduly picky about some things. @@ -885,18 +896,19 @@ AC_CACHE_CHECK([whether the compiler is clang], [emacs_cv_clang], # 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. @@ -907,10 +919,9 @@ else # 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 @@ -992,7 +1003,7 @@ else gl_MANYWARN_COMPLEMENT([GNULIB_WARN_CFLAGS], [$WARN_CFLAGS], [$nw]) AC_SUBST([GNULIB_WARN_CFLAGS]) -fi + ]) edit_cflags=" s,///*,/,g @@ -1233,7 +1244,6 @@ fi 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. @@ -1462,7 +1472,7 @@ LIBS=$OLD_LIBS 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|-|/|'` @@ -2029,17 +2039,6 @@ fi ## $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 @@ -2199,7 +2198,7 @@ fi 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 @@ -2734,6 +2733,21 @@ fi 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 @@ -3360,24 +3374,27 @@ HAVE_MODULES=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]) @@ -3618,14 +3635,6 @@ if test "${HAVE_X11}" = "yes"; then 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 @@ -3719,20 +3728,6 @@ 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 ]], - [[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) @@ -3776,7 +3771,7 @@ mail_lock=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. @@ -3821,7 +3816,7 @@ AC_CHECK_FUNCS(accept4 fchdir gethostname \ 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 \ @@ -4286,7 +4281,7 @@ esac 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 @@ -4300,7 +4295,7 @@ emacs_broken_SIGIO=no case $opsys in dnl SIGIO exists, but the feature doesn't work in the way Emacs needs. dnl See eg . - hpux* | irix6-5 | nacl | openbsd | sol2* | unixware ) + hpux* | nacl | openbsd | sol2* | unixware ) emacs_broken_SIGIO=yes ;; @@ -4408,7 +4403,7 @@ dnl generated in the Makefile generated by 'xmkmf'. If we don't define 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'.]) ;; @@ -4416,7 +4411,6 @@ esac 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. @@ -4479,27 +4473,6 @@ case $opsys in 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 @@ -4534,8 +4507,7 @@ AH_TEMPLATE(SIGNALS_VIA_CHARACTERS, [Make process_send_signal work by case $opsys in dnl Perry Smith 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) ;; @@ -4615,8 +4587,7 @@ if test x$GCC = xyes; then 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 @@ -4720,12 +4691,6 @@ case $opsys in 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.]) @@ -4799,11 +4764,6 @@ case $opsys in 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.]) @@ -5183,8 +5143,8 @@ This file is part of GNU Emacs. 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