Fix Bold button and application of commentFont
[xboard.git] / configure.ac
index c9ef734..3306409 100644 (file)
@@ -1,7 +1,7 @@
 dnl| configure.in
 dnl|
 dnl| Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006, 2007,
 dnl| configure.in
 dnl|
 dnl| Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006, 2007,
-dnl| 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+dnl| 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 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|
 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
@@ -27,8 +27,12 @@ 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| 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],[master-20121021],[bug-xboard@gnu.org])
+dnl| define second argument as MAJOR.MINOR.PATCHLEVEL. e.g. 4.4.0
+dnl| MAJOR means large changes
+dnl| MINOR can includes new features and bug fixes
+dnl| PATCHLEVEL is used for bugfixes only
+dnl| pre-release version have a -YYYYMMDD attached, e.g 4.9.0-20160313
+AC_INIT([xboard],[4.9.0-20160402],[bug-xboard@gnu.org])
 
 dnl| need this to be able to compile some files in a subdir (filebrowser)
 AM_INIT_AUTOMAKE([subdir-objects])
 
 dnl| need this to be able to compile some files in a subdir (filebrowser)
 AM_INIT_AUTOMAKE([subdir-objects])
@@ -56,7 +60,6 @@ AH_TEMPLATE([USE_PTYS],[template])
 AH_TEMPLATE([X_WCHAR],[template])
 AH_TEMPLATE([ATTENTION],[template])
 AH_TEMPLATE([DEFINED_SYS_ERRLIST],[template])
 AH_TEMPLATE([X_WCHAR],[template])
 AH_TEMPLATE([ATTENTION],[template])
 AH_TEMPLATE([DEFINED_SYS_ERRLIST],[template])
-AH_TEMPLATE([HAVE_LIBXPM],[template])
 AH_TEMPLATE([USE_XAW3D],[template])
 AH_TEMPLATE([X_LOCALE],[template])
 
 AH_TEMPLATE([USE_XAW3D],[template])
 AH_TEMPLATE([X_LOCALE],[template])
 
@@ -119,73 +122,181 @@ AC_TRY_COMPILE([],[],
   AC_MSG_RESULT(no)
   CFLAGS="$SAVE_CFLAGS")
 
   AC_MSG_RESULT(no)
   CFLAGS="$SAVE_CFLAGS")
 
+dnl | check for pkg-config
+AC_CHECK_PROGS([PKGCONFIG], [pkg-config], pkgconfig_not_found)
+AS_IF( [test "x$PKGCONFIG" = xpkgconfig_not_found],
+       AC_MSG_ERROR([cannot find pkg-config! Please install it.]))
 
 
-dnl | check for X-libraries
-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
-fi
+dnl | check for cairo and librsvg
+PKG_CHECK_MODULES([CAIRO], [ cairo >= 1.2.0 pangocairo librsvg-2.0 >= 2.14.0 ])
+AC_SUBST(CAIRO_CFLAGS)
+AC_SUBST(CAIRO_LIBS)
 
 
-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"
+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=""
 
 
-if test "$xt" = "no" ; then
-   echo Xt headers not found
-   exit 1
+AC_ARG_WITH([gtk],
+            [AS_HELP_STRING([--with-gtk],[use GTK front-end (default)])],
+            [with_GTK=$withval],
+            [with_GTK="yes"])
+
+AC_ARG_WITH([Xaw3d],
+            [AS_HELP_STRING([--with-Xaw3d],[use Xaw3d front-end (not fully supported anymore)])],
+            [with_Xaw3d="$withval"],
+            [with_Xaw3d="no"])
+dnl | overwrite default gtk
+AS_IF([test "x$with_Xaw3d" = xyes], [with_GTK="no"])
+
+AC_ARG_WITH([Xaw],
+            [AS_HELP_STRING([--with-Xaw],[use Xaw front-end])],
+            [with_Xaw="$withval"],
+            [with_Xaw="no"])
+dnl | overwrite default gtk
+AS_IF([test "x$with_Xaw" = xyes], [with_GTK="no"])
+
+AC_ARG_WITH([iconsdir],
+            [AS_HELP_STRING([--with-iconsdir=DIR],
+            [path where icons get installed (default: $datadir/icons/hicolor/48x48/apps)])],
+            [ICONSDIR="$withval"],
+            [ICONSDIR='$(datadir)/icons/hicolor/48x48/apps'])
+
+AC_ARG_WITH([svgiconsdir],
+            [AS_HELP_STRING([--with-svgiconsdir=DIR],
+            [path where svg icons get installed (default: $datadir/icons/hicolor/scalable/apps)])],
+            [SVGICONSDIR="$withval"],
+            [SVGICONSDIR='$(datadir)/icons/hicolor/scalable/apps'])
+
+AC_ARG_WITH([desktopdir],
+            [AS_HELP_STRING([--with-desktopdir=DIR],
+                            [path where desktop files get installed (default: $datadir/applications)])],
+            [DESKTOPDIR="$withval"],
+            [DESKTOPDIR='$(datadir)/applications'])
+
+AC_ARG_WITH([mimedir],
+            [AS_HELP_STRING([--with-mimedir=DIR],
+                            [path where mime files get installed (default: $datadir/mime/packages)])],
+            [MIMEDIR="$withval"],
+            [MIMEDIR='$(datadir)/mime/packages'])
+
+AC_ARG_WITH([gamedatadir],
+            [AS_HELP_STRING([--with-gamedatadir=DIR],
+                            [path where game data files get installed (default: $datadir/games/xboard)])],
+            [GAMEDATADIR="$withval"],
+            [GAMEDATADIR='$(datadir)/games/xboard'])
+
+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"])
+
+AC_ARG_ENABLE([osxapp],
+             [AS_HELP_STRING([--enable-osxapp],[build a OSX app [default=no]])],
+              [enable_OSXAPP=$enableval],
+              [enable_OSXAPP="no"])
+
+AS_IF([test x"$enable_OSXAPP" = x"yes"], [
+     prefix=`pwd`/XBoard.app/Contents
+     AC_DEFINE([OSXAPP], [1], [We are building an OSX APP, redefine some functions])
+     with_GTK="yes"
+     enable_mimedb="no"
+     datarootdir='$(prefix)/Resources'
+     datadir='$(datarootdir)/share'
+     sysconfdir='$(datarootdir)/etc'
+     infodir='$(datadir)/info'
+     mandir='$(datadir)/man'
+     bindir='$(prefix)/MacOS'
+     localedir='$(datadir)/locale'
+     GAMEDATADIR='$(datadir)/xboard'],[])
+
+AM_CONDITIONAL(OSX_APP, test x"$enable_OSXAPP" = x"yes")
+
+AM_CONDITIONAL(NLS_ENABLED, test x"$USE_NLS" = x"yes")
+
+AM_CONDITIONAL(ENABLE_UPDATE_MIMEDB, test x"$enable_mimedb" = x"yes")
+if test x"$enable_mimedb" = x"yes"; 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
 
 fi
 
-dnl | test if user wants ot use Xaw3d or Xaw
+AC_SUBST(ICONSDIR)
+AC_SUBST(SVGICONSDIR)
+AC_SUBST(DESKTOPDIR)
+AC_SUBST(MIMEDIR)
+AC_SUBST(GAMEDATADIR)
+
+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
+  with_Xaw="no"
+fi
 
 
-dnl | add configure option for Xaw3d
-AC_ARG_WITH([Xaw3d],
-            [AS_HELP_STRING([--with-Xaw3d],[use Xaw3d instead of Xaw])],
-            [],
-            [with_Xaw3d=no])
+if test x"$with_GTK" = x"no" ; then
+
+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
+
+  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
 
 dnl | check availability of Xaw3d
-XAW_LIBS=
-AS_IF([test x"$with_Xaw3d" != x"no"],
-      [AC_CHECK_LIB([Xaw3d],
+  FRONTEND_LIBS=
+  AS_IF([test x"$with_Xaw3d" != x"no"],
+           [AC_CHECK_LIB([Xaw3d],
                     [XawTextReplace],
                     [XawTextReplace],
-                    [AC_SUBST([XAW_LIBS],["-lXaw3d"])
-                     AC_DEFINE([USE_XAW3D], [1],
-                               [Define if you want to use Xaw3d])],
+                    [ 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])])
                     [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])])
-dnl | no Xaw3d, check for Xaw
-if test x"$with_Xaw3d" = x"no" ; then
-   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
-   XAW_LIBS="-lXaw"
-fi
-AC_SUBST(XAW_LIBS)
 
 
-dnl | end Xaw/Xaw3d test
+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
 
 
-dnl | check for cairo and librsvg
-CAIRO_REQUIRED=1.2.0
-LIBRSVG_REQUIRED=2.14.0
+fi
 
 
+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" || test x"$with_Xaw" = x"yes"])
 
 
-PKG_CHECK_MODULES(CAIRO, cairo >= $CAIRO_REQUIRED librsvg-2.0 >= $LIBRSVG_REQUIRED)
-AC_SUBST(CAIRO_CFLAGS)
-AC_SUBST(CAIRO_LIBS)
+dnl | end Front-end check
 
 AC_CANONICAL_HOST
 
 
 AC_CANONICAL_HOST
 
@@ -363,32 +474,27 @@ dnl| USE_PTYS=1
 
 dnl| add some libs for OS X
   *-apple-* )
 
 dnl| add some libs for OS X
   *-apple-* )
+    AC_MSG_WARN([Apple support is experimental, please report any problems to bug-xboard@gnu.org])
+    AC_MSG_WARN([use --enable-osxapp to enable the build target and automatically adjust target directories])
+    AC_MSG_WARN([Building an OSX app currently relies on some programs such as dylib that we don't test for])
+    AC_MSG_WARN([patches welcome ;)])
+    AC_PATH_PROG(SW_VERS, sw_vers)
+    if test "x$SW_VERS" != "x"; then
+      AC_MSG_CHECKING(Mac OS X version)
+      MACOSX_VERSION=`$SW_VERS -productVersion`
+      AC_MSG_RESULT([$MACOSX_VERSION])
+    fi
+    FRONTEND_LIBS="$FRONTEND_LIBS -headerpad_max_install_names "
+    if test x"$enable_OSXAPP" = x"yes" ; then
+        FRONTEND_LIBS="$FRONTEND_LIBS -lgtkmacintegration-gtk2"
+    fi
+    FRONTEND_CFLAGS="$FRONTEND_CFLAGS -I/opt/local/include -L/opt/local/lib"
   ;;
 esac
 
   ;;
 esac
 
-AC_ARG_ENABLE( [xpm],
-               [AS_HELP_STRING([--enable-xpm],[libXpm will be used if found (default)])],
-               [enable_xpm="$enableval"],
-               [enable_xpm="yes"])
-
-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"
-    AC_CHECK_LIB(Xpm, XpmReadFileToPixmap,
-                 [X_PRE_LIBS="-lXpm $X_PRE_LIBS"; AC_DEFINE(HAVE_LIBXPM)], [],
-                 [$X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
-    LDFLAGS="$save_ldflags"
-  fi
-fi
 
 
+AC_SUBST(FRONTEND_CFLAGS)
+AC_SUBST(FRONTEND_LIBS)
 AC_SUBST(PRE_XMULIB)
 AC_SUBST(POST_XMULIB)
 AC_SUBST(CONF_CFLAGS)
 AC_SUBST(PRE_XMULIB)
 AC_SUBST(POST_XMULIB)
 AC_SUBST(CONF_CFLAGS)
@@ -418,14 +524,15 @@ AC_DEFINE_UNQUOTED(USE_PTYS, $USE_PTYS)
 
 
 dnl | define not to build zippy as a default, so that autoheader is happy
 
 
 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],
               [AS_HELP_STRING([--enable-zippy],[support interfacing a chess program to ICS (default)])],
               [],
 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
+if test x"$enable_zippy" != x"no"; then
   AC_DEFINE(ZIPPY, 1,[should zippy be enabled])
   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])
 
 fi
 AM_CONDITIONAL([ZIPPY], [test x$enable_zippy != xno])
 
@@ -441,31 +548,27 @@ enable_sigint=$enableval
 AC_DEFINE(ATTENTION, 1)])
 
 
 AC_DEFINE(ATTENTION, 1)])
 
 
+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)
 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")
+dnl create a string with configure options that can be passed to the
+dnl program, good for bug reports and version printout, see output below
+CONFIGURE_OPTIONS="prefix=$prefix; datarootdir=$datarootdir; \
+datadir=$datadir; gamedatadir=$GAMEDATADIR; desktopdir=$DESKTOPDIR; \
+mimedir=$MIMEDIR; iconsdir=$ICONSDIR; svgiconsdir=$SVGICONSDIR; infodir=$infodir; \
+sysconfigdir=$sysconfigdir; update_mimedb=$enable_mimedb; NLS=$USE_NLS; \
+GTK=$with_GTK; Xaw3d=$with_Xaw3d; Xaw=$with_Xaw; \
+ptys=$enable_ptys; zippy=$enable_zippy; sigint=$enable_sigint"
 
 
-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
+AC_SUBST(CONFIGURE_OPTIONS)
 
 dnl |  output Makefile
 
 dnl |  output Makefile
-AC_CONFIG_FILES([Makefile cmail po/Makefile.in])
+AC_CONFIG_FILES([Makefile cmail po/Makefile.in osxapp/Info.plist])
 AC_CONFIG_COMMANDS([test-stamp-h],[test -z "$CONFIG_HEADERS" || date > stamp-h])
 AC_CONFIG_COMMANDS([chmod-cmail],[chmod 755 cmail])
 AC_OUTPUT
 AC_CONFIG_COMMANDS([test-stamp-h],[test -z "$CONFIG_HEADERS" || date > stamp-h])
 AC_CONFIG_COMMANDS([chmod-cmail],[chmod 755 cmail])
 AC_OUTPUT
@@ -478,8 +581,12 @@ echo " Configurations summary:"
 echo ""
 echo "        prefix:          $prefix       "
 echo "        datarootdir:     $datarootdir  "
 echo ""
 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 "        datadir:         $datadir      "
+echo "        gamedatadir:     $GAMEDATADIR  "
+echo "        desktopdir:      $DESKTOPDIR   "
+echo "        mimedir:         $MIMEDIR      "
+echo "        iconsdir:        $ICONSDIR     "
+echo "        svgiconsdir:     $SVGICONSDIR  "
 echo "        infodir:         $infodir   (info files will go here)"
 echo "        sysconfdir:      $sysconfdir   (xboard.conf will go here)"
 echo ""
 echo "        infodir:         $infodir   (info files will go here)"
 echo "        sysconfdir:      $sysconfdir   (xboard.conf will go here)"
 echo ""
@@ -487,9 +594,10 @@ echo "        update mimedb:   $enable_mimedb"
 echo ""
 echo "        NLS support:     $USE_NLS"
 echo ""
 echo ""
 echo "        NLS support:     $USE_NLS"
 echo ""
+echo "        GTK:             $with_GTK"
 echo "        Xaw3d:           $with_Xaw3d"
 echo "        Xaw3d:           $with_Xaw3d"
+echo "        Xaw:             $with_Xaw"
 echo ""
 echo ""
-echo "        xpm:             $enable_xpm"
 echo "        ptys:            $enable_ptys"
 echo "        zippy:           $enable_zippy"
 echo "        sigint:          $enable_sigint"
 echo "        ptys:            $enable_ptys"
 echo "        zippy:           $enable_zippy"
 echo "        sigint:          $enable_sigint"