From: Florian Forster Date: Sun, 19 Mar 2017 09:53:40 +0000 (+0100) Subject: Merge commit 'refs/pull/15/head' of github.com:octo/liboping X-Git-Url: https://git.octo.it/?p=liboping.git;a=commitdiff_plain;h=8f47022a866853da6477272b2c69855a1e2cff13;hp=5bacc4ccaee4b44b1f45b8e589797ba9a4001cba Merge commit 'refs/pull/15/head' of github.com:octo/liboping --- diff --git a/configure.ac b/configure.ac index 1d05f24..60138fc 100644 --- a/configure.ac +++ b/configure.ac @@ -202,27 +202,30 @@ AC_SUBST(LIBOPING_PC_LIBS_PRIVATE) AC_SEARCH_LIBS([nanosleep],[rt],[], [AC_MSG_ERROR([cannot find nanosleep])]) -with_ncurses="no" -AC_CHECK_HEADERS(ncursesw/ncurses.h ncurses.h, [with_ncurses="yes"], []) -if test "x$with_ncurses" = "xyes" -then - have_ncursesw="no" - have_ncurses="no" - NCURSES_LIB="" +AC_ARG_WITH(ncurses, AS_HELP_STRING([--with-ncurses], [Build oping CLI tool with ncurses support])) +AS_IF([test "x$with_ncurses" != "xno"], [ + can_build_with_ncurses="no" + PKG_CHECK_MODULES([NCURSES], [ncursesw], [can_build_with_ncurses=yes], [ + PKG_CHECK_MODULES([NCURSES], [ncurses], [can_build_with_ncurses=yes], [ + AC_CHECK_LIB(ncursesw, mvwprintw, [NCURSES_LIBS="-lncursesw"; can_build_with_ncurses=yes], [ + AC_CHECK_LIB(ncurses, mvwprintw, [NCURSES_LIBS="-lncurses"; can_build_with_ncurses=yes]) + ]) + ]) + ]) - AC_CHECK_LIB(ncursesw, mvwprintw, [have_ncursesw="yes"], [have_ncursesw="no"]) - AC_CHECK_LIB(ncurses, mvwprintw, [have_ncurses="yes"], [have_ncurses="no"]) + AS_IF([test "x$can_build_with_ncurses" = "xyes"], [ + AC_CHECK_HEADERS([ncursesw/curses.h ncursesw.h ncurses/curses.h ncurses.h], [can_build_with_ncurses=yes; break;], [can_build_with_ncurses=no]) + ]) - if test "x$have_ncursesw" = "xyes"; then - NCURSES_LIB="-lncursesw" - else if test "x$have_ncurses" = "xyes"; then - NCURSES_LIB="-lncurses" - else - with_ncurses="no" - fi; fi - AC_SUBST(NCURSES_LIB) -fi -AM_CONDITIONAL(BUILD_WITH_LIBNCURSES, test "x$with_ncurses" = "xyes") + AS_IF([test "x$can_build_with_ncurses" = "xno" && test "x$with_ncurses" = "xyes"], [ + AC_MSG_ERROR([ncurses not found but explicit enabled]) + ], + [test "x$can_build_with_ncurses" = "xno"], [ + AC_MSG_WARN([Will not build oping with ncurses support -- no suiteable ncurses installation found]) + ]) +]) + +AM_CONDITIONAL(BUILD_WITH_LIBNCURSES, test "x$with_ncurses" != "xno" && test "x$can_build_with_ncurses" = "xyes") AC_FUNC_STRERROR_R diff --git a/src/Makefile.am b/src/Makefile.am index 090d1b2..b8571aa 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -40,8 +40,8 @@ if BUILD_WITH_LIBNCURSES bin_PROGRAMS += noping noping_SOURCES = oping.c -noping_CPPFLAGS = $(AM_CPPFLAGS) -DUSE_NCURSES=1 -noping_LDADD = liboping.la -lm $(NCURSES_LIB) +noping_CPPFLAGS = $(AM_CPPFLAGS) -DUSE_NCURSES=1 $(NCURSES_CFLAGS) +noping_LDADD = liboping.la -lm $(NCURSES_LIBS) endif # BUILD_WITH_LIBNCURSES install-exec-hook: diff --git a/src/oping.c b/src/oping.c index de44d08..9ac87bf 100644 --- a/src/oping.c +++ b/src/oping.c @@ -82,11 +82,17 @@ /* http://newsgroups.derkeiler.com/Archive/Rec/rec.games.roguelike.development/2010-09/msg00050.html */ # define _X_OPEN_SOURCE_EXTENDED -# if HAVE_NCURSESW_NCURSES_H -# include -# elif HAVE_NCURSES_H +#if defined HAVE_NCURSESW_CURSES_H +# include +#elif defined HAVE_NCURSESW_H +# include +#elif defined HAVE_NCURSES_CURSES_H +# include +#elif defined HAVE_NCURSES_H # include -# endif +#else +# error "SysV or X/Open-compatible Curses header file required" +#endif # define OPING_GREEN 1 # define OPING_YELLOW 2