]> git.draconx.ca Git - rrace.git/blobdiff - configure.ac
Curses UI improvements.
[rrace.git] / configure.ac
index 88c9db9a2a11f83fada79fce250dcca40e6528e4..96dc8f22fd3c1e30649a0a3cc22dcbef36204673 100644 (file)
@@ -22,6 +22,28 @@ gl_INIT
 AC_CACHE_SAVE
 m4_include([lib/gnulib.mk])
 
+dnl We will provide our own makefile rules for gettext.  Disable tracing of
+dnl AM_GNU_GETTEXT to prevent autoreconf from running autopoint, and to
+dnl prevent automake from growing gratuitous error conditions.
+m4_traceoff([AM_GNU_GETTEXT])
+AM_GNU_GETTEXT([external])
+AH_BOTTOM([#include <conf_post.h>])
+
+# Checks for curses
+AC_ARG_WITH([curses], [AS_HELP_STRING([--with-curses],
+  [use curses for playing in text mode (default: auto)])],
+  [], [with_curses=auto])
+AS_IF([test x"$with_curses" != x"no"],
+  [DX_LIB_CURSES([have_curses=yes], [have_curses=no])])
+AS_IF([test x"$with_curses" = x"yes" && x"$have_curses" != x"yes"],
+  [AC_MSG_FAILURE([--with-curses requested but curses was not found])])
+AM_CONDITIONAL([HAVE_CURSES], [test x"$have_curses" = x"yes"])
+
+AM_COND_IF([HAVE_CURSES],
+[DX_CHECK_CURSES_FUNC([wresize], [0,0,0])
+DX_CHECK_CURSES_MOUSE_SUPPORT])
+
+# Checks for X11
 AC_PATH_XTRA
 AS_IF([test x"$no_x" != x"yes"],
 [AC_CACHE_CHECK([for Motif], [dx_cv_have_motif],
@@ -40,12 +62,74 @@ AS_IF([test x"$with_x" = x"yes" && test "$dx_cv_have_motif" != x"yes"],
 
 AC_SUBST([MOTIF_CFLAGS], [@&t@])
 AC_SUBST([MOTIF_LIBS], [@&t@])
-AS_IF([test x"$dx_cv_have_motif" = x"yes"],
-  [MOTIF_CFLAGS=$dx_cv_motif_cflags MOTIF_LIBS=$dx_cv_motif_libs])
+AM_CONDITIONAL([HAVE_MOTIF],
+  [test x"$with_x" != x"no" && test x"$dx_cv_have_motif" = x"yes"])
+AM_COND_IF([HAVE_MOTIF],
+  [MOTIF_CFLAGS=$dx_cv_motif_cflags MOTIF_LIBS=$dx_cv_motif_libs],
+  [AC_DEFINE([X_DISPLAY_MISSING])])
+AH_TEMPLATE([X11_RENDER_DEBUG],
+  [Define to 1 to enable visual aids for debugging X11 rendering.])
 
 AC_CONFIG_TESTDIR([.], [t:.])
 DX_PROG_AUTOTEST
 AM_CONDITIONAL([HAVE_AUTOTEST], [test x"$dx_cv_autotest_works" = x"yes"])
 
+AC_CHECK_PROGS([XPMTOPPM], [xpmtoppm])
+AC_CHECK_PROGS([PNMTOPNG], [pnmtopng])
+AC_CHECK_PROGS([CONVERT], [convert])
+AC_CHECK_PROGS([GM], [gm])
+AC_CACHE_CHECK([how to convert XPM to PNG], [dx_cv_xpm_to_png],
+[cat >conftest.xpm <<'EOF'
+/* XPM */
+static char *x[] = {
+"1 1 1 1",
+"x c #123456",
+"x"
+};
+EOF
+check_conftest_png () {
+  od conftest.png | $AWK 'BEGIN { success=0; }
+NR == 1 && $2 == "050211" && $3 == "043516" { success=1; }
+NR == 1 && $2 == "104520" && $3 == "047107" { success=1; }
+END { exit(!success); }'
+}
+rm -f conftest.png
+for dx_cv_xpm_to_png in netpbm 'gm convert' convert unknown; do
+AS_CASE([$dx_cv_xpm_to_png],
+
+[netpbm],
+[AS_IF([$XPMTOPPM conftest.xpm >conftest.ppm 2>&AS_MESSAGE_LOG_FD],
+  [], [continue])
+AS_IF([$PNMTOPNG conftest.ppm >conftest.png 2>&AS_MESSAGE_LOG_FD],
+  [], [continue])
+AS_IF([check_conftest_png], [break])],
+
+[*convert],
+[AS_CASE([$dx_cv_xpm_to_png],
+  [gm*], [test_convert="$GM convert"],
+  [test_convert="$CONVERT"])
+AS_IF([$test_convert conftest.xpm conftest.png >&AS_MESSAGE_LOG_FD 2>&1],
+  [], [continue])
+AS_IF([check_conftest_png], [break])])
+done
+rm -f conftest.xpm conftest.ppm conftest.png])
+
+AM_CONDITIONAL([USE_NETPBM], [test x"$dx_cv_xpm_to_png" = x"netpbm"])
+AM_CONDITIONAL([USE_CONVERT],
+  [AS_CASE([$dx_cv_xpm_to_png], [*convert], [], [false])])
+
+AS_IF([test x"$dx_cv_xpm_to_png" = x"gm convert"],
+  [CONVERT="$GM convert"])
+
+AC_CHECK_PROGS([OPTIPNG], [optipng])
+: "${OPTIPNG:=:}"
+
 AC_CONFIG_FILES([Makefile])
 AC_OUTPUT
+
+have_ui=false
+AM_COND_IF([HAVE_CURSES], [have_ui=:])
+AM_COND_IF([HAVE_MOTIF], [have_ui=:])
+AS_IF([$have_ui], [],
+[AC_MSG_WARN([No user interface is enabled.])
+AC_MSG_WARN([It will not be possible to play the game.])])