Allow configure --without-curses.
authorYann Dirson <ydirson@free.fr>
Sun, 29 Sep 2013 21:16:30 +0000 (23:16 +0200)
committerYann Dirson <ydirson@free.fr>
Tue, 8 Oct 2013 20:13:29 +0000 (22:13 +0200)
Not finding libcurses was surely causing problems, we now also proceed cleanly
in that case.

configure.ac
gnushogi/dspwrappers.c
gnushogi/gnushogi.h
gnushogi/main.c

index 00a824b..85d880b 100644 (file)
@@ -41,12 +41,31 @@ AC_PROG_INSTALL
 echo
 AC_PATH_XTRA
 
+#
+# Check for ncurses.
+#
+
+AC_ARG_WITH([curses],
+  [AS_HELP_STRING([--with-curses],
+    [enable curses UI])],
+  [],
+  [with_curses=check])
+
+LIBCURSES=
+AS_IF([test "x$with_curses" != xno],
+  [AC_CHECK_LIB([curses], [clrtoeol],
+    [AC_SUBST([LIBCURSES], ["-lcurses"])
+     AC_DEFINE([HAVE_LIBCURSES], [1],
+               [Define if you have lib])
+    ],
+    [AC_MSG_FAILURE(
+       [--with-curses was given, but test for curses failed])],
+    [-ltermcap])])
 
 #
 # Check for other libraries.
 #
 
-AC_CHECK_LIB(curses, clrtoeol)
 AC_CHECK_LIB(m, pow)
 dnl Replace `main' with a function in -ltermcap:
 AC_CHECK_LIB(termcap, tgoto)
index 0a27ec0..7590dcb 100644 (file)
   case DISPLAY_X:               \
     func args;                  \
     break
+
+#ifdef HAVE_LIBCURSES
 #define CASE_DSP_CURSES(func,args) \
   case DISPLAY_CURSES:             \
     func args;                     \
     break;
+#else
+#define CASE_DSP_CURSES(func,args)
+#endif
 
 #define DISPLAY_FUNC(func,argsdecl,args)        \
   void func argsdecl                            \
index 13dea78..39c0715 100644 (file)
  * Display options.
  */
 
-typedef enum { DISPLAY_RAW, DISPLAY_CURSES, DISPLAY_X } display_t;
+typedef enum {
+  DISPLAY_RAW,
+#ifdef HAVE_LIBCURSES
+  DISPLAY_CURSES,
+#endif
+  DISPLAY_X
+} display_t;
 extern display_t display_type;
 
 #define XSHOGI     (display_type == DISPLAY_X)
index c7f4f63..dabb8eb 100644 (file)
@@ -95,12 +95,13 @@ main (int argc, char **argv)
             break;
 #endif
 
+#ifdef HAVE_LIBCURSES
         case 'C':
             /* Curses interface. */
             display_type = DISPLAY_CURSES;
 
             break;
-
+#endif
 
         case 'h':
             /* Need the "+" syntax here... */