summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2020-08-01 15:04:52 +0200
committerBruno Haible <bruno@clisp.org>2020-08-01 15:04:52 +0200
commitc1e59f5ad1141945491135be550829698b9438d0 (patch)
tree98bb88db9a65286f17ce71fef6c4e199261d33f4 /m4
parentf1b7d8925b5d9495ab65b659c0d728e56e5de177 (diff)
downloadgnulib-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.m414
-rw-r--r--m4/libtextstyle.m445
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])
])