diff options
author | Bruno Haible <bruno@clisp.org> | 2020-08-01 15:04:52 +0200 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2020-08-01 15:04:52 +0200 |
commit | c1e59f5ad1141945491135be550829698b9438d0 (patch) | |
tree | 98bb88db9a65286f17ce71fef6c4e199261d33f4 /m4 | |
parent | f1b7d8925b5d9495ab65b659c0d728e56e5de177 (diff) | |
download | gnulib-c1e59f5ad1141945491135be550829698b9438d0.tar.gz |
libtextstyle[-optional]: Allow requesting a minimum version.
* m4/libtextstyle.m4 (gl_LIBTEXTSTYLE): Allow an optional argument.
(gl_LIBTEXTSTYLE_NEWEST_VERSION, gl_LIBTEXTSTYLE_INITIALIZE,
gl_LIBTEXTSTYLE_SEARCH): New macros.
* modules/libtextstyle (configure.ac): Don't invoke gl_LIBTEXTSTYLE.
* m4/libtextstyle-optional.m4 (gl_LIBTEXTSTYLE_OPTIONAL): Allow an
optional argument. Invoke, not require, gl_LIBTEXTSTYLE.
* modules/libtextstyle-optional (configure.ac): Don't invoke
gl_LIBTEXTSTYLE_OPTIONAL.
* NEWS: Mention the changes.
Diffstat (limited to 'm4')
-rw-r--r-- | m4/libtextstyle-optional.m4 | 14 | ||||
-rw-r--r-- | m4/libtextstyle.m4 | 45 |
2 files changed, 50 insertions, 9 deletions
diff --git a/m4/libtextstyle-optional.m4 b/m4/libtextstyle-optional.m4 index 38a7ace873..2c41bbf8d3 100644 --- a/m4/libtextstyle-optional.m4 +++ b/m4/libtextstyle-optional.m4 @@ -1,4 +1,4 @@ -# libtextstyle-optional.m4 serial 1 +# libtextstyle-optional.m4 serial 2 dnl Copyright (C) 2019-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -6,9 +6,13 @@ dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. -dnl gl_LIBTEXTSTYLE_OPTIONAL -dnl Searches for an installed libtextstyle or uses the included source code -dnl parts that define only part of the API and does not do any styling. +dnl gl_LIBTEXTSTYLE_OPTIONAL([MINIMUM-VERSION]) +dnl Searches for an installed libtextstyle with version >= MINIMUM-VERSION +dnl MINIMUM-VERSION = 0.20 - the first release in 2019 +dnl MINIMUM-VERSION = 0.20.5 - adds hyperlink support and ostream_printf +dnl MINIMUM-VERSION unspecified - the newest release +dnl or uses the included source code parts that define only part of the API +dnl and do not do any styling. dnl If found, it sets and AC_SUBSTs HAVE_LIBTEXTSTYLE=yes and the LIBTEXTSTYLE dnl and LTLIBTEXTSTYLE variables, and augments the CPPFLAGS variable, and dnl #defines HAVE_LIBTEXTSTYLE to 1. @@ -17,7 +21,7 @@ dnl LTLIBTEXTSTYLE to empty. AC_DEFUN([gl_LIBTEXTSTYLE_OPTIONAL], [ - AC_REQUIRE([gl_LIBTEXTSTYLE]) + gl_LIBTEXTSTYLE([$1]) if test $HAVE_LIBTEXTSTYLE = yes; then TEXTSTYLE_H= else diff --git a/m4/libtextstyle.m4 b/m4/libtextstyle.m4 index 23b4a6959c..0b1b1d2d43 100644 --- a/m4/libtextstyle.m4 +++ b/m4/libtextstyle.m4 @@ -1,4 +1,4 @@ -# libtextstyle.m4 serial 1 +# libtextstyle.m4 serial 2 dnl Copyright (C) 2019-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -6,8 +6,11 @@ dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. -dnl gl_LIBTEXTSTYLE -dnl Searches for an installed libtextstyle. +dnl gl_LIBTEXTSTYLE([MINIMUM-VERSION]) +dnl Searches for an installed libtextstyle with version >= MINIMUM-VERSION. +dnl MINIMUM-VERSION = 0.20 - the first release in 2019 +dnl MINIMUM-VERSION = 0.20.5 - adds hyperlink support and ostream_printf +dnl MINIMUM-VERSION unspecified - the newest release dnl If found, it sets and AC_SUBSTs HAVE_LIBTEXTSTYLE=yes and the LIBTEXTSTYLE dnl and LTLIBTEXTSTYLE variables, and augments the CPPFLAGS variable, and dnl #defines HAVE_LIBTEXTSTYLE to 1. @@ -16,7 +19,41 @@ dnl LTLIBTEXTSTYLE to empty. AC_DEFUN([gl_LIBTEXTSTYLE], [ + AC_REQUIRE([gl_LIBTEXTSTYLE_INITIALIZE]) + AC_REQUIRE([gl_LIBTEXTSTYLE_SEARCH]) + pushdef([MINVERSION], ifelse([$1], [], [gl_LIBTEXTSTYLE_NEWEST_VERSION], [$1])) + dnl Signal a fatal error if MINVERSION is not among the allowed values. + ifelse(ifelse(MINVERSION, [0.20], [x], [])ifelse(MINVERSION, [0.20.5], [x], []), [], + [m4_fatal([The argument to gl_LIBTEXTSTYLE or gl_LIBTEXTSTYLE_OPTIONAL is not one of the expected values.])]) + dnl Store the specified minimum version in gl_libtextstyle_minversion. + dnl (This needs to be outside the ifelse. m4_divert_text inside ifelse does + dnl not work reliably in Autoconf 2.69.) + m4_divert_text([INIT_PREPARE], + [gl_libtextstyle_minversion="$gl_libtextstyle_minversion MINVERSION "]) + popdef([MINVERSION]) +]) + +AC_DEFUN([gl_LIBTEXTSTYLE_NEWEST_VERSION], [0.20.5]) + +AC_DEFUN([gl_LIBTEXTSTYLE_INITIALIZE], +[ + m4_divert_text([DEFAULTS], [gl_libtextstyle_minversion=' 0.20 ']) +]) + +AC_DEFUN([gl_LIBTEXTSTYLE_SEARCH], +[ + dnl $gl_libtextstyle_minversion evaluates to a space-separated list of + dnl specified minimum versions. The maximum of these requirement matters. + case "$gl_libtextstyle_minversion" in + *" 0.20.5 "*) + snippet='styled_ostream_t s = term_styled_ostream_create(1,"",TTYCTL_AUTO,""); + ostream_printf(s,"%d",42);' + ;; + *" 0.20 "*) + snippet='term_styled_ostream_create(1,"",TTYCTL_AUTO,"");' + ;; + esac AC_LIB_HAVE_LINKFLAGS([textstyle], [], - [#include <textstyle.h>], [term_styled_ostream_create(1,"",TTYCTL_AUTO,"");], + [#include <textstyle.h>], [$snippet], [no]) ]) |