Close patch #6492
authorJohn Darrington <john@darrington.wattle.id.au>
Fri, 18 Apr 2008 23:44:42 +0000 (23:44 +0000)
committerJohn Darrington <john@darrington.wattle.id.au>
Fri, 18 Apr 2008 23:44:42 +0000 (23:44 +0000)
ChangeLog
configure.ac
po/de.po
po/en_GB.po
src/ui/terminal/automake.mk
src/ui/terminal/terminal.c

index 30bc3c958981363782554fa22770b845143365f0..f8727c47237692414f9bf53aba31e9cb2c3aaba0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-04-19  John Darrington <john@darrington.wattle.id.au>
+
+       * configure.ac : Improve checking of ncurses availability.
+
 2008-04-15  Ben Pfaff  <blp@gnu.org>
 
        * configure.ac: Properly report required version of libglade.
index 03a4b399c7aeba1ac578b15502c1b706bde84d90..16a6fbd884ae81a7125c7f24e80bb42851e72a0e 100644 (file)
@@ -111,8 +111,30 @@ AM_CONDITIONAL(WITH_GUI_TOOLS, test x"$with_gui_tools" = x"yes")
 AC_SEARCH_LIBS([cblas_dsdot], [gslcblas],,[PSPP_REQUIRED_PREREQ([libgslcblas])])
 AC_SEARCH_LIBS([gsl_cdf_chisq_Q], [gsl],,[PSPP_REQUIRED_PREREQ([libgsl (version 1.4 or later)])])
 
-AC_CHECK_LIB(ncurses, tgetent)
-AC_CHECK_HEADERS(termcap.h)
+dnl Recent versions of GNU ncurses install the curses header files into
+dnl /usr/include/ncurses, and provide a 'ncurses5-config' program which
+dnl enables us to discover where they are. Earlier versions don't have
+dnl this, so we can't rely on it.  So if ncurses5-config is present,
+dnl we'll trust it to find the right information.  Otherwise, we'll
+dnl try to discover it ourselves.
+dnl To confound things further, Cygwin has decided to rename ncurses5-config
+dnl to ncurses8-config !!!
+AC_CHECK_PROGS([NCURSES_CONFIG], [ncurses5-config ncurses8-config])
+if test x"$NCURSES_CONFIG" = x ; then
+  AC_SEARCH_LIBS([tgetent], [ncurses],
+    [curses_available=yes; AC_CHECK_HEADERS([term.h curses.h],,[curses_available=no])])
+else
+  curses_available=yes
+  NCURSES_CFLAGS=`$NCURSES_CONFIG --cflags`
+  NCURSES_LIBS=`$NCURSES_CONFIG --libs`
+  AC_SUBST(NCURSES_CFLAGS)
+  AC_SUBST(NCURSES_LIBS)
+fi
+if test x"$curses_available" = x"yes" ; then
+   AC_DEFINE([LIBNCURSES_USABLE], 1,
+     [Define to 1 if the libncurses is both present and usable.])
+fi
+AC_CHECK_HEADERS([termcap.h])
 
 PSPP_READLINE
 
index 1d247eee35af0d109dee8082a5d8441b6fbf23c3..5dce15aa0338e4ba357bf4dd445cb2fc16040480 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PSPP 0.4.3\n"
 "Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2008-04-15 13:59+0800\n"
+"POT-Creation-Date: 2008-04-19 07:19+0800\n"
 "PO-Revision-Date: 2006-07-28 19:32+0800\n"
 "Last-Translator: John Darrington <john@darrington.wattle.id.au>\n"
 "Language-Team: German <pspp-dev@gnu.org>\n"
index d7bb31ade565a571aad14a02e28898ed1a437881..7e6aef4c91fe526bd7ed200bc488928df590a308 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PSPP 0.4.3\n"
 "Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2008-04-15 13:59+0800\n"
+"POT-Creation-Date: 2008-04-19 07:19+0800\n"
 "PO-Revision-Date: 2007-09-15 08:29+0800\n"
 "Last-Translator: John Darrington <john@darrington.wattle.id.au>\n"
 "Language-Team: John Darrington <john@darrington.wattle.id.au>\n"
index 57eedb29e8e727fed027148f25dca74f913c669c..a19c9738423d8bf5fb6c63cc6ba6e473545d242c 100644 (file)
@@ -13,7 +13,7 @@ src_ui_terminal_libui_a_SOURCES = \
        src/ui/terminal/terminal.c \
        src/ui/terminal/terminal.h      
 
-src_ui_terminal_libui_a_CFLAGS = -DINSTALLDIR=\"$(bindir)\"
+src_ui_terminal_libui_a_CFLAGS = -DINSTALLDIR=\"$(bindir)\" $(NCURSES_CFLAGS)
 
 bin_PROGRAMS += src/ui/terminal/pspp
 
@@ -34,6 +34,7 @@ src_ui_terminal_pspp_LDADD = \
        src/libpspp/libpspp.a \
        $(LIBXML2_LIBS) \
        $(PG_LIBS) \
+       $(NCURSES_LIBS) \
        $(LIBICONV) \
        gl/libgl.la \
        @LIBINTL@ @LIBREADLINE@
index 9f371821f95436b1c24a9c13b286ca6c627d8aa6..7360b892ca7c6051a200798da7179f21590aaffd 100644 (file)
@@ -46,7 +46,7 @@ terminal_init (int **view_width_p, int **view_length_p)
    of this file because curses.h redefines "bool" on some systems
    (e.g. OpenBSD), causing declaration mismatches with functions
    that have parameters or return values of type "bool". */
-#if HAVE_LIBNCURSES
+#if LIBNCURSES_USABLE
 #include <curses.h>
 #include <term.h>
 #endif
@@ -56,7 +56,7 @@ terminal_init (int **view_width_p, int **view_length_p)
 void
 terminal_check_size (void)
 {
-#if HAVE_LIBNCURSES
+#if LIBNCURSES_USABLE
   if (getenv ("TERM") != NULL)
     {
       char term_buffer [16384];