Skip to content

Commit

Permalink
Issue #1207: Properly honor the --disable-curses, `--disable-ncurse…
Browse files Browse the repository at this point in the history
…s` configure options.
  • Loading branch information
Castaglia committed Apr 10, 2021
1 parent bc98aed commit 8fc570b
Show file tree
Hide file tree
Showing 2 changed files with 172 additions and 23 deletions.
156 changes: 145 additions & 11 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -22970,7 +22970,7 @@ $as_echo "#define SETGRENT_VOID 1" >>confdefs.h
fi


if test x"$ac_cv_header_curses_h" = xyes; then
if test x"$enable_curses" != xno ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lcurses" >&5
$as_echo_n "checking for initscr in -lcurses... " >&6; }
if ${ac_cv_lib_curses_initscr+:} false; then :
Expand Down Expand Up @@ -23013,12 +23013,154 @@ if test "x$ac_cv_lib_curses_initscr" = xyes; then :
$as_echo "#define HAVE_LIBCURSES 1" >>confdefs.h


$as_echo "#define PR_USE_CURSES 1" >>confdefs.h


fi


if test x"$enable_nls" = xyes ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for halfdelay in -ltinfow" >&5
$as_echo_n "checking for halfdelay in -ltinfow... " >&6; }
if ${ac_cv_lib_tinfow_halfdelay+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ltinfow $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */

/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char halfdelay ();
int
main ()
{
return halfdelay ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_tinfow_halfdelay=yes
else
ac_cv_lib_tinfow_halfdelay=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tinfow_halfdelay" >&5
$as_echo "$ac_cv_lib_tinfow_halfdelay" >&6; }
if test "x$ac_cv_lib_tinfow_halfdelay" = xyes; then :
UTILS_LIBS="$UTILS_LIBS -ltinfow"

$as_echo "#define HAVE_LIBTINFOW 1" >>confdefs.h


else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for halfdelay in -ltinfo" >&5
$as_echo_n "checking for halfdelay in -ltinfo... " >&6; }
if ${ac_cv_lib_tinfo_halfdelay+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ltinfo $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */

/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char halfdelay ();
int
main ()
{
return halfdelay ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_tinfo_halfdelay=yes
else
ac_cv_lib_tinfo_halfdelay=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tinfo_halfdelay" >&5
$as_echo "$ac_cv_lib_tinfo_halfdelay" >&6; }
if test "x$ac_cv_lib_tinfo_halfdelay" = xyes; then :
UTILS_LIBS="$UTILS_LIBS -ltinfo"

$as_echo "#define HAVE_LIBTINFO 1" >>confdefs.h


fi


fi

else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for halfdelay in -ltinfo" >&5
$as_echo_n "checking for halfdelay in -ltinfo... " >&6; }
if ${ac_cv_lib_tinfo_halfdelay+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ltinfo $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */

/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char halfdelay ();
int
main ()
{
return halfdelay ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_tinfo_halfdelay=yes
else
ac_cv_lib_tinfo_halfdelay=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tinfo_halfdelay" >&5
$as_echo "$ac_cv_lib_tinfo_halfdelay" >&6; }
if test "x$ac_cv_lib_tinfo_halfdelay" = xyes; then :
UTILS_LIBS="$UTILS_LIBS -ltinfo"

$as_echo "#define HAVE_LIBTINFO 1" >>confdefs.h


fi

fi
fi

if test x"$enable_ncurses" != xno ; then
pr_have_ncursesw="no"

pr_have_ncursesw="no"
if test x"$ac_cv_header_ncurses_h" = xyes; then

if test x"$enable_nls" = xyes ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lncursesw" >&5
Expand Down Expand Up @@ -23160,15 +23302,7 @@ $as_echo "#define HAVE_LIBNCURSES 1" >>confdefs.h
fi

fi
fi

if test x"$enable_curses" != xno ; then

$as_echo "#define PR_USE_CURSES 1" >>confdefs.h

fi

if test x"$enable_ncurses" != xno ; then

if test x"$pr_have_ncursesw" = xyes ; then

Expand Down
39 changes: 27 additions & 12 deletions configure.in
Original file line number Diff line number Diff line change
Expand Up @@ -2749,17 +2749,38 @@ fi
dnl Custom-rolled macro for checking return type of setgrent(3)
PR_FUNC_SETGRENT_VOID

dnl Perform checks for curses/ncurses libraries only if the corresponding
dnl headers have been found.
if test x"$ac_cv_header_curses_h" = xyes; then
if test x"$enable_curses" != xno ; then
AC_CHECK_LIB(curses, initscr,
[ CURSES_LIBS="-lcurses"
AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have curses])
AC_DEFINE(PR_USE_CURSES, 1, [Define if using curses support])
])

dnl Check for the libtinfo library, which contains the stdscr symbol,
dnl halfdelay curses function on some systems (e.g. Gentoo); see
dnl Issue #1207. Note that on some systems, this may need to be libtinfow
dnl instead.
if test x"$enable_nls" = xyes ; then
AC_CHECK_LIB(tinfow, halfdelay,
[ UTILS_LIBS="$UTILS_LIBS -ltinfow"
AC_DEFINE(HAVE_LIBTINFOW, 1, [Define if you have libtinfow])
],
[ AC_CHECK_LIB(tinfo, halfdelay,
[ UTILS_LIBS="$UTILS_LIBS -ltinfo"
AC_DEFINE(HAVE_LIBTINFO, 1, [Define if you have libtinfo])
])
])
else
AC_CHECK_LIB(tinfo, halfdelay,
[ UTILS_LIBS="$UTILS_LIBS -ltinfo"
AC_DEFINE(HAVE_LIBTINFO, 1, [Define if you have libtinfo])
])
fi
fi

pr_have_ncursesw="no"
if test x"$ac_cv_header_ncurses_h" = xyes; then
if test x"$enable_ncurses" != xno ; then
pr_have_ncursesw="no"

dnl If NLS support has been enabled, then check for the locale-sensitive
dnl libncursesw library first; if not found, or if no NLS support, then
dnl check for libncurses.
Expand All @@ -2776,19 +2797,13 @@ if test x"$ac_cv_header_ncurses_h" = xyes; then
])
])

else
else
AC_CHECK_LIB(ncurses, initscr,
[ CURSES_LIBS="-lncurses"
AC_DEFINE(HAVE_LIBNCURSES, 1, [Define if you have ncurses])
])
fi
fi

if test x"$enable_curses" != xno ; then
AC_DEFINE(PR_USE_CURSES, 1, [Define if using curses support])
fi

if test x"$enable_ncurses" != xno ; then
dnl Check for the libtinfo library, which contains the halfdelay() curses
dnl function on some systems (e.g. OpenSuSE); see Bug#3718. Note that on
dnl some systems, this may need to be libtinfow instead; see Issue #1174.
Expand Down

0 comments on commit 8fc570b

Please sign in to comment.