diff options
author | Karel Zak | 2017-09-19 12:55:49 +0200 |
---|---|---|
committer | Karel Zak | 2017-09-19 12:55:49 +0200 |
commit | ad442a818c6eefabb8258a9949206e12f2296161 (patch) | |
tree | cfa781ac84bb453f854dc152c80cae0a6a36cfc4 | |
parent | su: (pty) improve SIGSTOP/SIGCONT semantic (diff) | |
download | kernel-qcow2-util-linux-ad442a818c6eefabb8258a9949206e12f2296161.tar.gz kernel-qcow2-util-linux-ad442a818c6eefabb8258a9949206e12f2296161.tar.xz kernel-qcow2-util-linux-ad442a818c6eefabb8258a9949206e12f2296161.zip |
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 <sbrabec@suse.cz>
Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r-- | configure.ac | 24 | ||||
-rw-r--r-- | 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.]) ]) @@ -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_<name>, TINFO_LIBS and TINFO_CFLAGS variables. +dnl +dnl The expected <name> 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=""]) + ]) +]) |