Updated copyright notice to 2013
[xboard.git] / configure.ac
index ba82cc2..4829862 100644 (file)
@@ -1,21 +1,21 @@
 dnl| configure.in
 dnl|
-dnl| Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006, 2007, 
-dnl| 2008, 2009 Free Software Foundation, Inc.
+dnl| Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006, 2007,
+dnl| 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
 dnl|
 dnl| GNU XBoard is free software: you can redistribute it and/or modify
 dnl| it under the terms of the GNU General Public License as published by
 dnl| the Free Software Foundation, either version 3 of the License, or (at
 dnl| your option) any later version.
-dnl| 
+dnl|
 dnl| GNU XBoard is distributed in the hope that it will be useful, but
 dnl| WITHOUT ANY WARRANTY; without even the implied warranty of
 dnl| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 dnl| General Public License for more details.
-dnl| 
+dnl|
 dnl| You should have received a copy of the GNU General Public License
-dnl| along with this program. If not, see http://www.gnu.org/licenses/.  
-dnl| 
+dnl| along with this program. If not, see http://www.gnu.org/licenses/.
+dnl|
 dnl| --------------------------------------------------------------------
 dnl|
 dnl| You can process this file with autoconf to produce a configure script.
@@ -23,13 +23,16 @@ dnl| However, normally the supplied configure script will work fine.
 dnl|
 dnl| If you do need to change the configure script, instead of editing
 dnl| it directly, try to edit configure.in (in a way that will keep
-dnl| it portable to sites and systems other than your own), and run autoconf 
+dnl| it portable to sites and systems other than your own), and run autoconf
 dnl| to regenerate configure.  Then submit your changes to be folded into
 dnl| the standard version of xboard.
 
 dnl| define second argument as VERSION.PATCHLEVEL. e.g. 4.4.0j
-AC_INIT([xboard],[4.4.2.20091031],[bug-xboard@gnu.org])
-AM_INIT_AUTOMAKE
+AC_INIT([xboard],[master-20121211],[bug-xboard@gnu.org])
+
+dnl| need this to be able to compile some files in a subdir (filebrowser)
+AM_INIT_AUTOMAKE([subdir-objects])
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 
 AC_CONFIG_HEADERS([config.h])
 
@@ -64,21 +67,21 @@ dnl| Prevent the next macro from setting CFLAGS to -g
   CFLAGS=" "
 fi
 AC_PROG_CC
+
+dnl| need this to be able to compile files in a subdir
+AM_PROG_CC_C_O
+
 AC_PROG_CPP
 AC_ISC_POSIX
 AC_PROG_INSTALL
 
-AC_PROG_LEX
-if test "$LEX" != flex; then
-  LEX="$SHELL $missing_dir/missing flex"
-  AC_SUBST([LEX_OUTPUT_ROOT], [lex.yy])
-  AC_SUBST([LEXLIB], [''])
-fi
-
+dnl| add gettext support
+AM_GNU_GETTEXT_VERSION(0.17)
+AM_GNU_GETTEXT([external])
 
 AC_CHECK_PROGS(RSH, remsh rsh, rsh)
 AC_CHECK_PROGS(MINFO, makeinfo, makeinfo_not_found)
-if test "$MINFO" == makeinfo_not_found ; then
+if test "$MINFO" = makeinfo_not_found ; then
    echo Please install \"makeinfo\"
    exit 1
 fi
@@ -93,7 +96,7 @@ AC_HEADER_TIME
 AC_HEADER_SYS_WAIT
 AC_HEADER_DIRENT
 AC_TYPE_SIGNAL
-AC_CHECK_HEADERS(stropts.h sys/time.h string.h unistd.h sys/systeminfo.h malloc.h)
+AC_CHECK_HEADERS(stropts.h sys/time.h string.h unistd.h sys/systeminfo.h)
 AC_CHECK_HEADERS(fcntl.h sys/fcntl.h, break)
 AC_CHECK_HEADERS(sys/socket.h lan/socket.h, break)
 AC_CHECK_HEADER(stddef.h, [], AC_DEFINE(X_WCHAR, 1))
@@ -107,53 +110,112 @@ AC_CHECK_FUNC(setlocale, [],
 
 AC_CHECK_LIB(seq, getpseudotty)
 
-AC_PATH_XTRA
-if test -n "$no_x" ; then
-  echo $PACKAGE requires the X Window System header files and libraries!
-  echo They were not found on your system.  See FAQ topic C.2.
-  echo configure failed
-  exit 1
+dnl | add compiler warnings only if compiler understands them
+AC_MSG_CHECKING(whether compiler understands -Wall -Wno-parentheses)
+SAVE_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -Wall -Wno-parentheses"
+AC_TRY_COMPILE([],[],
+  AC_MSG_RESULT(yes),
+  AC_MSG_RESULT(no)
+  CFLAGS="$SAVE_CFLAGS")
+
+dnl | check for cairo and librsvg
+
+PKG_CHECK_MODULES([CAIRO], [ cairo >= 1.2.0 librsvg-2.0 >= 2.14.0 ])
+AC_SUBST(CAIRO_CFLAGS)
+AC_SUBST(CAIRO_LIBS)
+
+dnl | check which front end to use
+dnl | first check for gtk
+dnl | then for Xaw3d
+dnl | and then for Xaw
+FRONTEND_CFLAGS=""
+FRONTEND_LIBS=""
+
+AC_ARG_WITH([gtk],
+            [AS_HELP_STRING([--with-gtk],[use GTK front-end (experimental)])],
+            [with_GTK=yes],
+            [with_GTK=no])
+
+AC_ARG_WITH([Xaw3d],
+            [AS_HELP_STRING([--with-Xaw3d],[use Xaw3d front-end (not fully supported anymore)])],
+            [with_Xaw3d=yes],
+            [with_Xaw3d=no])
+
+AC_ARG_WITH([Xaw],
+            [AS_HELP_STRING([--with-Xaw],[use Xaw front-end (default)])],
+            [with_Xaw=yes],
+            [with_Xaw=no])
+
+dnl | check for libraries
+if test x"$with_GTK" = x"yes" ; then
+  PKG_CHECK_MODULES([GTK], [ gtk+-2.0 >= 2.16.0 gmodule-2.0 ])
+  FRONTEND_CFLAGS=$GTK_CFLAGS
+  FRONTEND_LIBS=$GTK_LIBS
 fi
 
-AC_CHECK_HEADER(X11/Intrinsic.h,xt="yes",xt="no")
+if test x"$with_GTK" = x"no" ; then
 
-if test "$xt" == "no" ; then
-   echo Xt headers not found
-   exit 1
-fi
+dnl | general check for Xaw and Xaw3d
+  AC_PATH_XTRA
+  if test -n "$no_x" ; then
+    AC_MSG_ERROR([ "    $PACKAGE requires the X Window System header files and libraries!
+    They were not found on your system.  See FAQ topic C.2.
+    configure failed"])
+  fi
 
-dnl | test if user wants ot use Xaw3d headers
-AC_ARG_WITH([Xaw3d],
-            [AS_HELP_STRING([--with-Xaw3d],
-                            [use Xaw3d instead of Xaw])],
-            [with_xaw3d=yes],
-            [with_xaw3d=no])
-
-XAW_LIBS=
-AS_IF([test "x$with_xaw3d" != xno],
-      [AC_CHECK_LIB([Xaw3d], 
+  save_cflags="$CFLAGS"
+  save_cppflags="$CPPFLAGS"
+  CFLAGS="$CFLAGS $X_CFLAGS"
+  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+  AC_CHECK_HEADER([X11/Intrinsic.h],[xt="yes"],[xt="no"])
+  CFLAGS="$save_cflags"
+  CPPFLAGS="$save_cppflags"
+
+  if test "$xt" = "no" ; then
+     AC_MSG_ERROR([Xt headers not found. Please install the X11 packages.])
+  fi
+
+dnl | check availability of Xaw3d
+  FRONTEND_LIBS=
+  AS_IF([test x"$with_Xaw3d" != x"no"],
+           [AC_CHECK_LIB([Xaw3d],
                     [XawTextReplace],
-                    [AC_SUBST([XAW_LIBS], 
-                              ["-lXaw3d"])
-                     AC_DEFINE([USE_XAW3D], [1],
-                               [Define if you want to use Xaw3d])],
-                    [AC_CHECK_HEADER(X11/Xaw/Dialog.h,xaw_headers="yes")
-                    AC_MSG_FAILURE(
-                              [--with-Xaw3d was given, but test for Xaw3d failed])],
+                    [ FRONTEND_LIBS="-lXaw3d"
+                      AC_DEFINE([USE_XAW3D], [1], [Define if you want to use Xaw3d])],
+                    [AC_MSG_ERROR([--with-Xaw3d was given, but test for Xaw3d failed. Make sure that you have Xaw3d installed, else you might want to try the configure option --without-Xaw3d])],
                               [-lXaw])])
-if test "$with_xaw3d" == "no" ; then
-   XAW_LIBS="-lXaw"
+
+dnl | no Xaw3d, check for Xaw; make it the default
+  if test x"$with_Xaw3d" = x"no" ; then
+     with_Xaw=yes
+     save_cflags="$CFLAGS"
+     save_cppflags="$CPPFLAGS"
+     CFLAGS="$CFLAGS $X_CFLAGS"
+     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+     AC_CHECK_HEADER([X11/Xaw/Dialog.h],[xaw_headers="yes"], [xaw_headers="no"])
+     CFLAGS="$save_cflags"
+     CPPFLAGS="$save_cppflags"
+
+     if test x"$xaw_headers" = x"no" ; then
+        AC_MSG_ERROR([Xaw headers not found. Please install the Xaw package and headers.])
+     fi
+
+     FRONTEND_LIBS="-lXaw"
+  fi
+
 fi
-AC_SUBST(XAW_LIBS)
 
-dnl | end Xaw3d test
+dnl | make results available in Makefile.am
+AM_CONDITIONAL([withGTK],   [test x"$with_GTK" = x"yes"])
+AM_CONDITIONAL([withXaw],   [test x"$with_Xaw3d" = x"yes"])
+AM_CONDITIONAL([withXaw],   [test x"$with_Xaw" = x"yes"])
 
-if test "$xaw_headers" == "no" ; then
-   echo Xaw headers not found 
-   exit 1
 
-fi
+AC_SUBST(FRONTEND_CFLAGS)
+AC_SUBST(FRONTEND_LIBS)
 
+dnl | end Front-end check
 
 AC_CANONICAL_HOST
 
@@ -190,7 +252,7 @@ dnl| know whether the X header files on HP-UX require it.
     fi
 
 dnl| HP doesn't supply a full set of X header files and libraries.  People
-dnl| often have some things installed in one place and some in another. 
+dnl| often have some things installed in one place and some in another.
 dnl| AC_PATH_XTRA will find only one place, so we try to add all the
 dnl| likely ones that might be missing here.  It might be better to
 dnl| change AC_PATH_XTRA to try to extract this information from imake,
@@ -306,7 +368,7 @@ dnl| code above.
     AC_DEFINE(PTY_TTY_NAME_SPRINTF, [sprintf (pty_name, "/dev/ttyp%d", i);])
 dnl| USE_PTYS=1
   ;;
-       
+
   *-*-dynix* | *-*-ptx* )
 dnl| USE_PTYS=1
   ;;
@@ -331,7 +393,6 @@ dnl| USE_PTYS=1
 
 dnl| add some libs for OS X
   *-apple-* )
-    X_LIBS="$X_LIBS -lXmu -lX11 -lXt "    
   ;;
 esac
 
@@ -342,10 +403,12 @@ AC_ARG_ENABLE(    [xpm],
 
 if test x"$enable_xpm" != "xno"; then
   save_cflags="$CFLAGS"
+  save_cppflags="$CPPFLAGS"
   CFLAGS="$CFLAGS $X_CFLAGS"
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   AC_CHECK_HEADERS(X11/xpm.h)
   CFLAGS="$save_cflags"
+  CPPFLAGS="$save_cppflags"
   if test "$ac_cv_header_X11_xpm_h" = "yes"; then
     save_ldflags="$LDFLAGS"
     LDFLAGS="$LDFLAGS $X_LIBS"
@@ -362,7 +425,7 @@ AC_SUBST(CONF_CFLAGS)
 AC_SUBST(CONF_LDFLAGS)
 
 AC_MSG_CHECKING(whether ptys or pipes should be used)
-AC_ARG_ENABLE( [ptys], 
+AC_ARG_ENABLE( [ptys],
               [AS_HELP_STRING([--enable-ptys],[force use of pseudo-ttys with child processes])],
 [if test "$enableval" = yes; then
   USE_PTYS=1
@@ -385,19 +448,20 @@ AC_DEFINE_UNQUOTED(USE_PTYS, $USE_PTYS)
 
 
 dnl | define not to build zippy as a default, so that autoheader is happy
-AC_DEFINE(ZIPPY, 0,[should zippy be enabled])
-AC_ARG_ENABLE( [zippy], 
+AC_ARG_ENABLE( [zippy],
               [AS_HELP_STRING([--enable-zippy],[support interfacing a chess program to ICS (default)])],
-              [], 
-              [enable_zippy="yes"])
+              [],
+              [enable_zippy="no"])
 
 if test x"$enable_zippy" != xno; then
   AC_DEFINE(ZIPPY, 1,[should zippy be enabled])
+else
+  AC_DEFINE(ZIPPY, 0,[should zippy be enabled])
 fi
 AM_CONDITIONAL([ZIPPY], [test x$enable_zippy != xno])
 
 
-AC_ARG_ENABLE(sigint, 
+AC_ARG_ENABLE(sigint,
 [AS_HELP_STRING([--enable-sigint],[sending SIGINT (^C) wakes up GNU Chess (default)])],
 [if test "$enableval" = yes; then
   AC_DEFINE(ATTENTION, 1)
@@ -408,7 +472,33 @@ enable_sigint=$enableval
 AC_DEFINE(ATTENTION, 1)])
 
 
-AC_CONFIG_FILES([Makefile cmail])
+if test x"$with_Xaw3d" = x"yes" -o  x"$with_Xaw" = x"yes" ; then
+dnl | save all information for X in X_LIBS, also add the libraries themself
+dnl | since AC_PATH_XTRA only adds the paths
+X_LIBS="$X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS -lXmu -lX11 -lXt "
+AC_SUBST(X_CFLAGS)
+AC_SUBST(X_LIBS)
+fi
+
+dnl | should we install desktop icons and mime associations?
+AC_ARG_ENABLE( [update-mimedb],
+               [AS_HELP_STRING([--disable-update-mimedb],[disable the update-mime-database after install [default=no]])],
+               [enable_mimedb="no"],
+               [enable_mimedb="yes"])
+
+AM_CONDITIONAL(ENABLE_UPDATE_MIMEDB, test x"$enable_mimedb" = "xyes")
+
+if test x"$enable_mimedb" = "xyes"; then
+   AC_PATH_PROG([XDG_MIME],[xdg-mime])
+   AC_SUBST(XDG_MIME)
+   AC_PATH_PROG([XDG_DESKTOP_MENU],[xdg-desktop-menu])
+   AC_SUBST(XDG_DESKTOP_MENU)
+   AC_PATH_PROG([XDG_ICON_RESOURCE],[xdg-icon-resource])
+   AC_SUBST(XDG_ICON_RESOURCE)
+fi
+
+dnl |  output Makefile
+AC_CONFIG_FILES([Makefile cmail po/Makefile.in])
 AC_CONFIG_COMMANDS([test-stamp-h],[test -z "$CONFIG_HEADERS" || date > stamp-h])
 AC_CONFIG_COMMANDS([chmod-cmail],[chmod 755 cmail])
 AC_OUTPUT
@@ -419,9 +509,20 @@ dnl
 echo ""
 echo " Configurations summary:"
 echo ""
-echo "        prefix:          $prefix"
+echo "        prefix:          $prefix       "
+echo "        datarootdir:     $datarootdir  "
+echo "        datadir:         $datadir   (icons will go in \$datadir/icons/hicolor/...)"
+echo "                                    (bitmaps will go in \$datadir/games/xboard/...)"
+echo "        infodir:         $infodir   (info files will go here)"
+echo "        sysconfdir:      $sysconfdir   (xboard.conf will go here)"
+echo ""
+echo "        update mimedb:   $enable_mimedb"
+echo ""
+echo "        NLS support:     $USE_NLS"
 echo ""
-echo "        Xaw3d:           $with_xaw3d"
+echo "        GTK:             $with_GTK"
+echo "        Xaw3d:           $with_Xaw3d"
+echo "        Xaw:             $with_Xaw"
 echo ""
 echo "        xpm:             $enable_xpm"
 echo "        ptys:            $enable_ptys"