diff options
-rw-r--r-- | m4/curslib.m4 | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/m4/curslib.m4 b/m4/curslib.m4 new file mode 100644 index 00000000..5d443ecc --- /dev/null +++ b/m4/curslib.m4 @@ -0,0 +1,83 @@ +dnl --------------------------------------------------------------------------- +dnl Look for the curses libraries. Older curses implementations may require +dnl termcap/termlib to be linked as well. +AC_DEFUN([CF_CURSES_LIBS],[ +AC_CHECK_FUNC(initscr,,[ +case $host_os in #(vi +freebsd*) #(vi + AC_CHECK_LIB(mytinfo,tgoto,[LIBS="-lmytinfo $LIBS"]) + ;; +hpux10.*|hpux11.*) + AC_CHECK_LIB(cur_colr,initscr,[ + LIBS="-lcur_colr $LIBS" + CFLAGS="-I/usr/include/curses_colr $CFLAGS" + ac_cv_func_initscr=yes + ],[ + AC_CHECK_LIB(Hcurses,initscr,[ + # HP's header uses __HP_CURSES, but user claims _HP_CURSES. + LIBS="-lHcurses $LIBS" + CFLAGS="-D__HP_CURSES -D_HP_CURSES $CFLAGS" + ac_cv_func_initscr=yes + ])]) + ;; +linux*) # Suse Linux does not follow /usr/lib convention + LIBS="$LIBS -L/lib" + ;; +esac + +if test ".$With5lib" != ".no" ; then +if test -d /usr/5lib ; then + # SunOS 3.x or 4.x + CPPFLAGS="$CPPFLAGS -I/usr/5include" + LIBS="$LIBS -L/usr/5lib" +fi +fi + +if test ".$ac_cv_func_initscr" != .yes ; then + cf_save_LIBS="$LIBS" + cf_term_lib="" + cf_curs_lib="" + + # Check for library containing tgoto. Do this before curses library + # because it may be needed to link the test-case for initscr. + AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[ + for cf_term_lib in termcap termlib unknown + do + AC_CHECK_LIB($cf_term_lib,tgoto,[break]) + done + ]) + + # Check for library containing initscr + test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS" + for cf_curs_lib in cursesX curses ncurses xcurses jcurses unknown + do + AC_CHECK_LIB($cf_curs_lib,initscr,[break]) + done + test $cf_curs_lib = unknown && AC_ERROR(no curses library found) + + LIBS="-l$cf_curs_lib $cf_save_LIBS" + if test "$cf_term_lib" = unknown ; then + AC_MSG_CHECKING(if we can link with $cf_curs_lib library) + AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>], + [initscr()], + [cf_result=yes], + [cf_result=no]) + AC_MSG_RESULT($cf_result) + test $cf_result = no && AC_ERROR(Cannot link curses library) + elif test "$cf_term_lib" != predefined ; then + AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries) + AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>], + [initscr(); tgoto((char *)0, 0, 0);], + [cf_result=no], + [ + LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS" + AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>], + [initscr()], + [cf_result=yes], + [cf_result=error]) + ]) + AC_MSG_RESULT($cf_result) + fi +fi + +])]) |