From 160df220b14e266b580be04a909ba4427d92e65d Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Sun, 3 May 2020 16:05:03 +0200 Subject: [PATCH] bistromathic: beware of portability of readline Don't try to build bistromathic if we don't have readline. Reported by Bruno Haible. https://lists.gnu.org/r/bug-bison/2020-05/msg00028.html * configure.ac (ENABLE_BISTROMATHIC): New. * examples/c/bistromathic/local.mk: Use it. * examples/c/bistromathic/bistromathic.test: Exit 77 for skip. --- configure.ac | 7 +++++++ examples/c/bistromathic/bistromathic.test | 2 +- examples/c/bistromathic/local.mk | 23 +++++++++++++---------- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/configure.ac b/configure.ac index c1b0c182..7e673b51 100644 --- a/configure.ac +++ b/configure.ac @@ -331,6 +331,13 @@ AC_MSG_RESULT([$suppfile]) # Whether we cannot run the compiled bison. AM_CONDITIONAL([CROSS_COMPILING], [test "$cross_compiling" = yes]) +# Build bistromathic if we have the lib and both readline/readline.h +# and readline/history.h. +AM_CONDITIONAL([ENABLE_BISTROMATHIC], +[test "$gl_cv_lib_readline" != no && + test "$ac_cv_header_readline_readline_h" = yes && + test "$ac_cv_header_readline_history_h" = yes]) + AM_MISSING_PROG([AUTOM4TE], [autom4te]) # Needed by tests/atlocal.in. AC_SUBST([GCC]) diff --git a/examples/c/bistromathic/bistromathic.test b/examples/c/bistromathic/bistromathic.test index 7d3a7002..dfefa804 100755 --- a/examples/c/bistromathic/bistromathic.test +++ b/examples/c/bistromathic/bistromathic.test @@ -35,7 +35,7 @@ if ! echo '1-1' | prog | grep '>' >/dev/null; then elif ! echo '1-1' | prog | grep '1-1' >/dev/null; then # OpenBSD 6.5. I don't want to spend time on this. echo "SKIP: this is not the GNU Readline we expect" - exit 0 + exit 77 fi diff --git a/examples/c/bistromathic/local.mk b/examples/c/bistromathic/local.mk index 607fdc52..cad0425b 100644 --- a/examples/c/bistromathic/local.mk +++ b/examples/c/bistromathic/local.mk @@ -19,19 +19,22 @@ bistromathicdir = $(docdir)/%D% ## Bistromathics. ## ## --------------- ## -check_PROGRAMS += %D%/bistromathic -TESTS += %D%/bistromathic.test -EXTRA_DIST += %D%/bistromathic.test -nodist_%C%_bistromathic_SOURCES = %D%/parse.y %D%/parse.h %D%/parse.c: $(dependencies) -# Don't use gnulib's system headers. -%C%_bistromathic_CPPFLAGS = \ - -DBISON_LOCALEDIR='"$(localdir)"' \ - -DLOCALEDIR='"$(localdir)"' \ - -I$(top_srcdir)/%D% -I$(top_builddir)/%D% -%C%_bistromathic_LDADD = -lm -lreadline $(LIBINTL) +if ENABLE_BISTROMATHIC + check_PROGRAMS += %D%/bistromathic + TESTS += %D%/bistromathic.test + nodist_%C%_bistromathic_SOURCES = %D%/parse.y + # Don't use gnulib's system headers. + %C%_bistromathic_CPPFLAGS = \ + -DBISON_LOCALEDIR='"$(localdir)"' \ + -DLOCALEDIR='"$(localdir)"' \ + -I$(top_srcdir)/%D% -I$(top_builddir)/%D% + %C%_bistromathic_LDADD = -lm $(LIBREADLINE) $(LIBINTL) +endif + +EXTRA_DIST += %D%/bistromathic.test dist_bistromathic_DATA = %D%/parse.y %D%/Makefile %D%/README.md CLEANFILES += %D%/parse.[ch] %D%/parse.output CLEANDIRS += %D%/*.dSYM