summaryrefslogtreecommitdiff
path: root/gnulib-local/m4/terminfo.m4
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2014-12-24 07:38:37 +0000
committer <>2015-02-02 12:02:29 +0000
commit482840e61f86ca321838a91e902c41d40c098bbb (patch)
tree01ea2e242fd2792d19fe192476601587901db794 /gnulib-local/m4/terminfo.m4
downloadgettext-tarball-482840e61f86ca321838a91e902c41d40c098bbb.tar.gz
Imported from /home/lorry/working-area/delta_gettext-tarball/gettext-0.19.4.tar.xz.gettext-0.19.4
Diffstat (limited to 'gnulib-local/m4/terminfo.m4')
-rw-r--r--gnulib-local/m4/terminfo.m4370
1 files changed, 370 insertions, 0 deletions
diff --git a/gnulib-local/m4/terminfo.m4 b/gnulib-local/m4/terminfo.m4
new file mode 100644
index 0000000..461137a
--- /dev/null
+++ b/gnulib-local/m4/terminfo.m4
@@ -0,0 +1,370 @@
+# terminfo.m4 serial 3 (gettext-0.18)
+dnl Copyright (C) 2000-2002, 2006, 2008 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([gl_TERMINFO],
+[
+ AC_REQUIRE([gl_TERMINFO_BODY])
+ if test $gl_cv_terminfo_tparam = no && test $gl_cv_terminfo_tparm = no; then
+ AC_LIBOBJ([tparm])
+ fi
+ case "$gl_cv_terminfo" in
+ no*)
+ case "$gl_cv_termcap" in
+ no*)
+ AC_LIBOBJ([tputs])
+ ;;
+ esac
+ ;;
+ esac
+])
+
+AC_DEFUN([gl_TERMINFO_BODY],
+[
+ dnl Some systems have setupterm(), tigetnum(), tigetstr(), tigetflag(),
+ dnl tputs(), tgoto() in the same library as tgetent(), tgetnum(), tgetstr(),
+ dnl tgetflag(), e.g. Linux (in libncurses) or Solaris (in libtermcap =
+ dnl libncurses).
+ dnl Some systems have them in a different library, e.g. OSF/1 (in libcurses,
+ dnl not in libtermcap) or HP-UX (in libxcurses, not in libtermcap).
+ dnl Some systems, like NetBSD or BeOS, don't have these functions at all;
+ dnl they have only a libtermcap.
+ dnl Some systems, like BeOS, use GNU termcap, which has tparam() instead of
+ dnl tparm().
+ dnl Some systems, like mingw, have nothing at all.
+
+ dnl Some people want to avoid these libraries, in special situations such
+ dnl as when cross-compiling.
+ AC_REQUIRE([gl_CURSES])
+
+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+
+ if test "$gl_curses_allowed" != no; then
+
+ dnl Search for libncurses and define LIBNCURSES, LTLIBNCURSES and INCNCURSES
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([ncurses])
+
+ dnl Search for libtermcap and define LIBTERMCAP, LTLIBTERMCAP and INCTERMCAP
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([termcap])
+
+ dnl Search for libxcurses and define LIBXCURSES, LTLIBXCURSES and INCXCURSES
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([xcurses])
+
+ dnl Search for libcurses and define LIBCURSES, LTLIBCURSES and INCCURSES
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([curses])
+
+ else
+
+ LIBNCURSES=
+ LTLIBNCURSES=
+ INCNCURSES=
+
+ LIBTERMCAP=
+ LTLIBTERMCAP=
+ INCTERMCAP=
+
+ LIBXCURSES=
+ LTLIBXCURSES=
+ INCXCURSES=
+
+ LIBCURSES=
+ LTLIBCURSES=
+ INCCURSES=
+
+ fi
+
+ dnl When searching for the terminfo functions, prefer libtermcap over
+ dnl libxcurses and libcurses, because it is smaller.
+ AC_CACHE_CHECK([where terminfo library functions come from], [gl_cv_terminfo], [
+ gl_cv_terminfo="not found, consider installing GNU ncurses"
+ AC_TRY_LINK([extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int setupterm (const char *, int, int *);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int tigetnum (const char *);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int tigetflag (const char *);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ const char * tigetstr (const char *);
+ ], [return setupterm ("xterm", 0, (int *)0)
+ + tigetnum ("colors")
+ + tigetflag ("hc") + * tigetstr("oc");],
+ [gl_cv_terminfo=libc])
+ if test "$gl_cv_terminfo" != libc; then
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBNCURSES"
+ AC_TRY_LINK([extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int setupterm (const char *, int, int *);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int tigetnum (const char *);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int tigetflag (const char *);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ const char * tigetstr (const char *);
+ ], [return setupterm ("xterm", 0, (int *)0)
+ + tigetnum ("colors")
+ + tigetflag ("hc") + * tigetstr("oc");],
+ [gl_cv_terminfo=libncurses])
+ LIBS="$gl_save_LIBS"
+ if test "$gl_cv_terminfo" != libncurses; then
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBTERMCAP"
+ AC_TRY_LINK([extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int setupterm (const char *, int, int *);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int tigetnum (const char *);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int tigetflag (const char *);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ const char * tigetstr (const char *);
+ ], [return setupterm ("xterm", 0, (int *)0)
+ + tigetnum ("colors")
+ + tigetflag ("hc") + * tigetstr("oc");],
+ [gl_cv_terminfo=libtermcap])
+ LIBS="$gl_save_LIBS"
+ if test "$gl_cv_terminfo" != libtermcap; then
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBXCURSES"
+ AC_TRY_LINK([extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int setupterm (const char *, int, int *);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int tigetnum (const char *);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int tigetflag (const char *);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ const char * tigetstr (const char *);
+ ], [return setupterm ("xterm", 0, (int *)0)
+ + tigetnum ("colors")
+ + tigetflag ("hc") + * tigetstr("oc");],
+ [gl_cv_terminfo=libxcurses])
+ LIBS="$gl_save_LIBS"
+ if test "$gl_cv_terminfo" != libxcurses; then
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBCURSES"
+ AC_TRY_LINK([extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int setupterm (const char *, int, int *);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int tigetnum (const char *);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int tigetflag (const char *);
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ const char * tigetstr (const char *);
+ ], [return setupterm ("xterm", 0, (int *)0)
+ + tigetnum ("colors")
+ + tigetflag ("hc") + * tigetstr("oc");],
+ [gl_cv_terminfo=libcurses])
+ LIBS="$gl_save_LIBS"
+ fi
+ fi
+ fi
+ fi
+ ])
+ case "$gl_cv_terminfo" in
+ libc)
+ LIBTERMINFO=
+ LTLIBTERMINFO=
+ INCTERMINFO=
+ ;;
+ libncurses)
+ LIBTERMINFO="$LIBNCURSES"
+ LTLIBTERMINFO="$LTLIBNCURSES"
+ INCTERMINFO="$INCNCURSES"
+ ;;
+ libtermcap)
+ LIBTERMINFO="$LIBTERMCAP"
+ LTLIBTERMINFO="$LTLIBTERMCAP"
+ INCTERMINFO="$INCTERMCAP"
+ ;;
+ libxcurses)
+ LIBTERMINFO="$LIBXCURSES"
+ LTLIBTERMINFO="$LTLIBXCURSES"
+ INCTERMINFO="$INCXCURSES"
+ ;;
+ libcurses)
+ LIBTERMINFO="$LIBCURSES"
+ LTLIBTERMINFO="$LTLIBCURSES"
+ INCTERMINFO="$INCCURSES"
+ ;;
+ esac
+ case "$gl_cv_terminfo" in
+ libc | libncurses | libtermcap | libxcurses | libcurses)
+ AC_DEFINE([HAVE_TERMINFO], 1,
+ [Define if setupterm(), tigetnum(), tigetstr(), tigetflag()
+ are among the termcap library functions.])
+ ;;
+ *)
+ dnl Use the termcap functions as a fallback.
+ AC_CACHE_CHECK([where termcap library functions come from], [gl_cv_termcap], [
+ gl_cv_termcap="not found, consider installing GNU ncurses"
+ AC_TRY_LINK([extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int tgetent (char *, const char *);
+ ], [return tgetent ((char *) 0, "xterm");],
+ [gl_cv_termcap=libc])
+ if test "$gl_cv_termcap" != libc; then
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBNCURSES"
+ AC_TRY_LINK([extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int tgetent (char *, const char *);
+ ], [return tgetent ((char *) 0, "xterm");],
+ [gl_cv_termcap=libncurses])
+ LIBS="$gl_save_LIBS"
+ if test "$gl_cv_termcap" != libncurses; then
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBTERMCAP"
+ AC_TRY_LINK([extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ int tgetent (char *, const char *);
+ ], [return tgetent ((char *) 0, "xterm");],
+ [gl_cv_termcap=libtermcap])
+ LIBS="$gl_save_LIBS"
+ fi
+ fi
+ ])
+ case "$gl_cv_termcap" in
+ libc)
+ LIBTERMINFO=
+ LTLIBTERMINFO=
+ INCTERMINFO=
+ ;;
+ libncurses)
+ LIBTERMINFO="$LIBNCURSES"
+ LTLIBTERMINFO="$LTLIBNCURSES"
+ INCTERMINFO="$INCNCURSES"
+ ;;
+ libtermcap)
+ LIBTERMINFO="$LIBTERMCAP"
+ LTLIBTERMINFO="$LTLIBTERMCAP"
+ INCTERMINFO="$INCTERMCAP"
+ ;;
+ esac
+ case "$gl_cv_termcap" in
+ libc | libncurses | libtermcap)
+ AC_DEFINE([HAVE_TERMCAP], 1,
+ [Define if tgetent(), tgetnum(), tgetstr(), tgetflag()
+ are among the termcap library functions.])
+ ;;
+ esac
+ ;;
+ esac
+ AC_SUBST([LIBTERMINFO])
+ AC_SUBST([LTLIBTERMINFO])
+ AC_SUBST([INCTERMINFO])
+
+ dnl Test against the old GNU termcap, which provides a tparam() function
+ dnl instead of the classical tparm() function.
+ AC_CACHE_CHECK([for tparam], [gl_cv_terminfo_tparam], [
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBTERMINFO"
+ gl_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $INCTERMINFO"
+ AC_TRY_LINK([extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ char * tparam (const char *, void *, int, ...);
+ char buf;
+ ], [return tparam ("\033\133%dm", &buf, 1, 8);],
+ [gl_cv_terminfo_tparam=yes], [gl_cv_terminfo_tparam=no])
+ CPPFLAGS="$gl_save_CPPFLAGS"
+ LIBS="$gl_save_LIBS"
+ ])
+ if test $gl_cv_terminfo_tparam = yes; then
+ AC_DEFINE([HAVE_TPARAM], 1,
+ [Define if tparam() is among the termcap library functions.])
+ else
+ dnl Test whether a tparm() function is provided. It is missing e.g.
+ dnl in NetBSD 3.0 libtermcap.
+ AC_CACHE_CHECK([for tparm], [gl_cv_terminfo_tparm], [
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBTERMINFO"
+ gl_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $INCTERMINFO"
+ AC_TRY_LINK([extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ char * tparm (const char *, ...);
+ ], [return tparm ("\033\133%dm", 8);],
+ [gl_cv_terminfo_tparm=yes], [gl_cv_terminfo_tparm=no])
+ CPPFLAGS="$gl_save_CPPFLAGS"
+ LIBS="$gl_save_LIBS"
+ ])
+ fi
+])