summaryrefslogtreecommitdiffstats
path: root/gnulib-local/m4
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2006-12-19 19:58:33 +0000
committerBruno Haible <bruno@clisp.org>2009-06-23 12:14:32 +0200
commit1c20b44d8e6170ec908b8feed538e9759e025b5b (patch)
tree6ed846a64f6c8db72661eed0809ea168a8f7d8a2 /gnulib-local/m4
parentdabf88ca60a3821c7f45b1ddf2985255a91274f8 (diff)
downloadexternal_gettext-1c20b44d8e6170ec908b8feed538e9759e025b5b.zip
external_gettext-1c20b44d8e6170ec908b8feed538e9759e025b5b.tar.gz
external_gettext-1c20b44d8e6170ec908b8feed538e9759e025b5b.tar.bz2
New module 'terminfo'.
Diffstat (limited to 'gnulib-local/m4')
-rw-r--r--gnulib-local/m4/terminfo.m4327
1 files changed, 327 insertions, 0 deletions
diff --git a/gnulib-local/m4/terminfo.m4 b/gnulib-local/m4/terminfo.m4
new file mode 100644
index 0000000..cdf627f
--- /dev/null
+++ b/gnulib-local/m4/terminfo.m4
@@ -0,0 +1,327 @@
+# terminfo.m4 serial 1 (gettext-0.16.2)
+dnl Copyright (C) 2000-2002, 2006 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
+])
+
+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 Prerequisites of AC_LIB_LINKFLAGS_BODY.
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+
+ 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])
+
+ 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
+ ;;
+ 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
+])