>From 97a793cba9fc68a9df67622d8d82c443fe10dd9b Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 25 Mar 2019 10:46:04 -0700 Subject: [PATCH] Support ./configure --with-gif=ifavailable etc. Suggested by Stefan Monnier in: https://lists.gnu.org/r/emacs-devel/2019-03/msg00789.html * INSTALL, etc/NEWS: Document this. * configure.ac: Implement this. --- INSTALL | 6 ++++++ configure.ac | 59 +++++++++++++++++++++++++++++++++++----------------- etc/NEWS | 6 ++++++ 3 files changed, 52 insertions(+), 19 deletions(-) diff --git a/INSTALL b/INSTALL index 72bba25df8..8022385010 100644 --- a/INSTALL +++ b/INSTALL @@ -318,6 +318,12 @@ features enabled, you can combine --without-all with --with-FEATURE. For example, you can use --without-all --without-x --with-dbus to build with D-Bus support and nothing more. +Use --with-gnutls=ifavailable to use GnuTLS if available but go ahead +and build without it if not available. This overrides Emacs's default +behavior of refusing to build if GnuTLS is absent. When X11 support +is enabled, the libraries for gif, jpeg, png, tiff, and xpm are in the +same strongly-recommended category as GnuTLS, and have similar options. + Use --with-wide-int to implement Emacs values with the type 'long long', even on hosts where a narrower type would do. With this option, on a typical 32-bit host, Emacs integers have 62 bits instead of 30. diff --git a/configure.ac b/configure.ac index 110ea2909a..c93cfbbb59 100644 --- a/configure.ac +++ b/configure.ac @@ -2941,7 +2941,7 @@ AC_DEFUN AC_SUBST(LIBSELINUX_LIBS) HAVE_GNUTLS=no -if test "${with_gnutls}" = "yes" ; then +if test "${with_gnutls}" != "no" ; then EMACS_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.12.2], [HAVE_GNUTLS=yes], [HAVE_GNUTLS=no]) if test "${HAVE_GNUTLS}" = "yes"; then @@ -3512,7 +3512,10 @@ AC_DEFUN 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 + case $opsys,$with_xpm_set,$with_xpm in + aix4-2,set,yes) ;; + aix4-2,*) with_xpm=no;; + esac if test "${with_xpm}" != "no"; then AC_CHECK_HEADER(X11/xpm.h, @@ -3830,28 +3833,46 @@ AC_DEFUN dnl Check for required libraries. MISSING= -WITH_NO= +WITH_IFAVAILABLE= if test "${HAVE_X11}" = "yes"; then - test "${with_xpm}" != "no" && test "${HAVE_XPM}" != "yes" && - MISSING="libXpm" && WITH_NO="--with-xpm=no" - test "${with_jpeg}" != "no" && test "${HAVE_JPEG}" != "yes" && - MISSING="$MISSING libjpeg" && WITH_NO="$WITH_NO --with-jpeg=no" - test "${with_png}" != "no" && test "${HAVE_PNG}" != "yes" && - MISSING="$MISSING libpng" && WITH_NO="$WITH_NO --with-png=no" - test "${with_gif}" != "no" && test "${HAVE_GIF}" != "yes" && - MISSING="$MISSING libgif/libungif" && WITH_NO="$WITH_NO --with-gif=no" - test "${with_tiff}" != "no" && test "${HAVE_TIFF}" != "yes" && - MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no" -fi -test "${with_gnutls}" != "no" && test "${HAVE_GNUTLS}" != "yes" && - MISSING="$MISSING gnutls" && WITH_NO="$WITH_NO --with-gnutls=no" + case $with_xpm,$HAVE_XPM in + no,* | ifavailable,* | *,yes) ;; + *) MISSING="libXpm" + WITH_IFAVAILABLE="--with-xpm=ifavailable";; + esac + case $with_jpeg,$HAVE_JPEG in + no,* | ifavailable,* | *,yes) ;; + *) MISSING="$MISSING libjpeg" + WITH_IFAVAILABLE="$WITH_IFAVAILABLE --with-jpeg=ifavailable";; + esac + case $with_png,$HAVE_PNG in + no,* | ifavailable,* | *,yes) ;; + *) MISSING="$MISSING libpng" + WITH_IFAVAILABLE="$WITH_IFAVAILABLE --with-png=ifavailable";; + esac + case $with_gif,$HAVE_GIF in + no,* | ifavailable,* | *,yes) ;; + *) MISSING="$MISSING libgif/libungif" + WITH_IFAVAILABLE="$WITH_IFAVAILABLE --with-gif=ifavailable";; + esac + case $with_tiff,$HAVE_TIFF in + no,* | ifavailable,* | *,yes) ;; + *) MISSING="$MISSING libtiff" + WITH_IFAVAILABLE="$WITH_IFAVAILABLE --with-tiff=ifavailable";; + esac +fi +case $with_gnutls,$HAVE_GNUTLS in + no,* | ifavailable,* | *,yes) ;; + *) MISSING="$MISSING gnutls" + WITH_IFAVAILABLE="$WITH_IFAVAILABLE --with-gnutls=ifavailable";; +esac if test "X${MISSING}" != X; then AC_MSG_ERROR([The following required libraries were not found: $MISSING Maybe some development libraries/packages are missing? -If you don't want to link with them give - $WITH_NO -as options to configure]) +To build anyway, give: + $WITH_IFAVAILABLE +as options to configure.]) fi ### Use -lgpm if available, unless '--with-gpm=no'. diff --git a/etc/NEWS b/etc/NEWS index bbba59c549..ad01bd8516 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -37,6 +37,12 @@ functions 'json-serialize', 'json-insert', 'json-parse-string', and 'json-parse-buffer' are typically much faster than their Lisp counterparts from json.el. +** Several configure options now accept an option-argument 'ifavailable'. +For example, './configure --with-xpm=ifavailable' now configures Emacs +to attempt to use libxpm but to continue building even if libxpm is absent. +The other affected options are --with-gif, --with-gnutls, --with-jpeg, +--with-png, and --with-tiff. + ** The etags program now uses the C library's regular expression matcher when possible, and a compatible regex substitute otherwise. This will let developers maintain Emacs's own regex code without having to also -- 2.20.1