From ad442a818c6eefabb8258a9949206e12f2296161 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 19 Sep 2017 12:55:49 +0200 Subject: [PATCH] build-sys: add libtinfow check It seems some systems differentiate between tinfo and tinfow. And it seems that mix ncursesw and tinfo (wide vs. non-wide char) is problem for the systems. Note that for example Fedora have ncursesw as well as ncurses, but only one tinfo library. So, we need fallback this scenario. Reported-by: Stanislav Brabec Signed-off-by: Karel Zak --- configure.ac | 24 +++++++++--------------- m4/ul.m4 | 27 +++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 15 deletions(-) diff --git a/configure.ac b/configure.ac index c534b49f2..73cf22168 100644 --- a/configure.ac +++ b/configure.ac @@ -905,27 +905,21 @@ AC_ARG_WITH([tinfo], AS_HELP_STRING([--without-tinfo], [compile without libtinfo [], [with_tinfo=auto] ) have_tinfo=no +have_tinfow=no AS_IF([test "x$with_tinfo" != xno], [ - dnl Try pkg-config for libtinfo - PKG_CHECK_MODULES(TINFO, [tinfo], [ - dnl pkg-config success - have_tinfo=yes - UL_PKG_STATIC([TINFO_LIBS_STATIC], [tinfo])], [ - - dnl If pkg-config failed, fall back to classic searching. - AC_CHECK_LIB([tinfo], [tgetent], [ - have_tinfo=yes - TINFO_LIBS="-ltinfo" - TINFO_LIBS_STATIC="-ltinfo" - TINFO_CFLAGS=""]) + AS_IF([test "x$have_ncursesw" = xyes], [ + UL_TINFO_CHECK([tinfow]) + ]) + AS_IF([test "x$have_tinfow" = xno], [ + UL_TINFO_CHECK([tinfo]) ]) ]) AC_SUBST([TINFO_LIBS]) AC_SUBST([TINFO_LIBS_STATIC]) AC_SUBST([TINFO_CFLAGS]) -AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes]) -AS_IF([test "x$have_tinfo" = xyes], [ - AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo available.]) +AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes -o "x$have_tinfow" = xyes]) +AS_IF([test "x$have_tinfo" = xyes -o "x$have_tinfow" = xyes], [ + AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo or libtinfow available.]) ]) diff --git a/m4/ul.m4 b/m4/ul.m4 index cfd2e68fc..351d9cb6b 100644 --- a/m4/ul.m4 +++ b/m4/ul.m4 @@ -498,3 +498,30 @@ AC_DEFUN([UL_NCURSES_CHECK], [ AS_IF([test "x$have_[]suffix" = xyes], [NCURSES_LIBS="-l[]suffix"]) ]) ]) + +dnl +dnl UL_TINFO_CHECK(NAME) +dnl +dnl Initializes $have_, TINFO_LIBS and TINFO_CFLAGS variables. +dnl +dnl The expected is tinfow or tinfo. +dnl +AC_DEFUN([UL_TINFO_CHECK], [ + m4_define([suffix], $1) + m4_define([SUFFIX], m4_toupper($1)) + + PKG_CHECK_MODULES(SUFFIX, [$1], [ + dnl pkg-config success + have_[]suffix=yes + TINFO_LIBS=${SUFFIX[]_LIBS} + TINFO_CFLAGS=${SUFFIX[]_CFLAGS} + UL_PKG_STATIC([TINFO_LIBS_STATIC], [$1]) + ],[ + dnl If pkg-config failed, fall back to classic searching. + AC_CHECK_LIB([$1], [tgetent], [ + have_[]suffix=yes + TINFO_LIBS="-l[]suffix" + TINFO_LIBS_STATIC="-l[]suffix" + TINFO_CFLAGS=""]) + ]) +]) -- 2.14.1