diff --git a/ProvideCurses.h b/ProvideCurses.h index 7ae99e620..8bbb94e24 100644 --- a/ProvideCurses.h +++ b/ProvideCurses.h @@ -8,7 +8,9 @@ in the source distribution for its full text. */ +#if defined(HAVE_CONFIG_H) #include "config.h" // IWYU pragma: keep +#endif // IWYU pragma: begin_exports diff --git a/configure.ac b/configure.ac index 47df8f759..c6ab6609d 100644 --- a/configure.ac +++ b/configure.ac @@ -668,6 +668,28 @@ else [AC_CHECK_HEADERS([term.h], [], [AC_MSG_ERROR([can not find required term header file])])]) fi + +CFLAGS="-I$srcdir $CFLAGS" +# Check for things that might be macros. +# "stdscr" is a macro in ncursest (reentrant version of ncurses). +AC_MSG_CHECKING([whether the curses header works]) +AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +#include "ProvideCurses.h" + ]], [[ +keypad(stdscr, 0); + +refresh(); + +#if defined(HAVE_LIBNCURSESW) +{ + static cchar_t dummy; + mvadd_wchnstr(0, 0, &dummy, 0); +} +#endif + ]])], + [AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no) + AC_MSG_FAILURE([there are problems with the curses header])]) CFLAGS=$htop_save_CFLAGS if test "$enable_static" = yes; then