From afc3422299e8e3b788b09c807abeb2474b092129 Mon Sep 17 00:00:00 2001 From: H.G. Muller Date: Fri, 26 Oct 2012 10:28:59 +0200 Subject: [PATCH 1/1] Add configure switches for Xaw vs GTK. This patch is an adapted version of the one Arun made at the end of the gtk2 branch. It uses the exact same version of his configure.ac, but the Makefile.am is adapted to the situation in master at the beginning of it, after duplication of the X11 front-end files in the xaw directory for preserving them, while the versions that will be modified to GTK front-end are still in the xboard directory. --- Makefile.am | 62 +++++++++++++++++++------- configure.ac | 136 +++++++++++++++++++++++++++++++++++---------------------- 2 files changed, 128 insertions(+), 70 deletions(-) diff --git a/Makefile.am b/Makefile.am index e3af927..d86aba3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,3 +1,5 @@ +bin_PROGRAMS = xboard + ### if we are compiling with ZIPPY we need some extra source files if ZIPPY @@ -6,8 +8,23 @@ else ZPY = endif -bin_PROGRAMS = xboard -xboard_SOURCES = backend.c backend.h backendz.h \ +### define sources for the front-end and backend + +GTKsources = xboard.c xevalgraph.c xgamelist.c \ + xhistory.c xoptions.c xboard.h \ + xengineoutput.c xevalgraph.h xgamelist.h \ + xhistory.h + +Xsources = xaw/xboard.c xaw/xboard.h \ + xaw/xedittags.c xaw/xedittags.h \ + xaw/xengineoutput.c \ + xaw/xevalgraph.c xaw/xevalgraph.h \ + xaw/xgamelist.c xaw/xgamelist.h \ + xaw/xhistory.c xaw/xhistory.h \ + xaw/xoptions.c + + +backendsources = backend.c backend.h backendz.h \ book.c \ childio.c childio.h \ common.h \ @@ -19,21 +36,33 @@ xboard_SOURCES = backend.c backend.h backendz.h \ parser.c parser.h \ pgntags.c \ uci.c \ - xaw/xboard.c xaw/xboard.h args.h menus.c menus.h \ + args.h \ + board.c board.h \ draw.c draw.h \ + dialogs.c dialogs.h \ + engineoutput.c nengineoutput.c engineoutput.h \ + evalgraph.c evalgraph.h \ + history.c \ + menus.c menus.h \ usounds.c usystem.c usystem.h \ - board.c board.h \ - xaw/xedittags.c xaw/xedittags.h \ - engineoutput.c engineoutput.h \ - nengineoutput.c xaw/xengineoutput.c \ - evalgraph.c evalgraph.h xaw/xevalgraph.c xaw/xevalgraph.h\ - xaw/xgamelist.c xaw/xgamelist.h\ - history.c xaw/xhistory.c xaw/xhistory.h \ - xaw/xoptions.c dialogs.c dialogs.h \ $(ZPY) + +### combine sources depending on front-end + +if withGTK + xboard_SOURCES = $(backendsources) $(GTKsources) +endif +if withXaw + xboard_SOURCES = $(backendsources) $(Xsources) + headers = -I xaw +endif + +### + SUBDIRS = po -xboard_LDADD = -lm @XAW_LIBS@ @X_LIBS@ @LIBINTL@ @CAIRO_LIBS@ -EXTRA_DIST = pixmaps shogi sounds winboard bitmaps\ +xboard_LDADD = -lm @X_LIBS@ @LIBINTL@ @FRONTEND_LIBS@ @CAIRO_LIBS@ + +EXTRA_DIST = pixmaps shogi png sounds winboard \ xboard.texi gpl.texinfo texi2man texinfo.tex xboard.man xboard.desktop \ xboard-fen-viewer.desktop xboard-pgn-viewer.desktop xboard-tourney.desktop xboard.xml \ COPYRIGHT FAQ.html engine-intf.html ics-parsing.txt readme.htm zippy.README \ @@ -41,8 +70,8 @@ EXTRA_DIST = pixmaps shogi sounds winboard bitmaps\ DISTCLEANFILES = stamp-h -AM_CPPFLAGS=-DINFODIR='"$(infodir)"' @CAIRO_CFLAGS@ @X_CFLAGS@ -DSYSCONFDIR='"$(sysconfdir)"' \ - -DLOCALEDIR='"$(localedir)"' -DSVGDIR='"$(svgdir)"' -I xaw +AM_CPPFLAGS=-DINFODIR='"$(infodir)"' @CAIRO_CFLAGS@ @FRONTEND_CFLAGS@ -DSYSCONFDIR='"$(sysconfdir)"' \ + -DLOCALEDIR='"$(localedir)"' -DSVGDIR='"$(svgdir)"' $(headers) ACLOCAL_AMFLAGS = -I m4 @@ -55,7 +84,6 @@ man6_MANS = xboard.man sysconf_DATA = xboard.conf - ### icon files icondir = $(datadir)/icons/hicolor/48x48/apps @@ -126,7 +154,7 @@ dist_pixmaps_DATA = pixmaps/cross32.xpm pixmaps/cross48.xpm pixmaps/board32.xpm ### directory and files for pngs pngdir = $(datadir)/games/xboard/themes/textures -dist_png_DATA = png/hatch.png png/wood_d.png png/wood_l.png +dist_png_DATA = png/hatch.png png/wood_d.png png/wood_l.png png/xqboard.png ### directory and files for sound files diff --git a/configure.ac b/configure.ac index c9ef734..12a210c 100644 --- a/configure.ac +++ b/configure.ac @@ -28,7 +28,7 @@ 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]) +AC_INIT([xboard],[master-20120930],[bug-xboard@gnu.org]) dnl| need this to be able to compile some files in a subdir (filebrowser) AM_INIT_AUTOMAKE([subdir-objects]) @@ -119,73 +119,101 @@ AC_TRY_COMPILE([],[], AC_MSG_RESULT(no) CFLAGS="$SAVE_CFLAGS") +dnl | check for cairo and librsvg -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 - -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" +PKG_CHECK_MODULES([CAIRO], [ cairo >= 1.2.0 librsvg-2.0 >= 2.14.0 ]) +AC_SUBST(CAIRO_CFLAGS) +AC_SUBST(CAIRO_LIBS) -if test "$xt" = "no" ; then - echo Xt headers not found - exit 1 -fi +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="" -dnl | test if user wants ot use Xaw3d or Xaw +AC_ARG_WITH([gtk], + [AS_HELP_STRING([--with-gtk],[use GTK front-end (experimental)])], + [with_GTK=yes], + [with_GTK=no]) -dnl | add configure option for Xaw3d AC_ARG_WITH([Xaw3d], - [AS_HELP_STRING([--with-Xaw3d],[use Xaw3d instead of Xaw])], - [], + [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 | 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"]) + +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 + +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 -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], - [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])]) -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 + 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 + + FRONTEND_LIBS="-lXaw" + fi -dnl | check for cairo and librsvg -CAIRO_REQUIRED=1.2.0 -LIBRSVG_REQUIRED=2.14.0 +fi +AC_SUBST(FRONTEND_CFLAGS) +AC_SUBST(FRONTEND_LIBS) -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 @@ -487,7 +515,9 @@ echo " update mimedb: $enable_mimedb" echo "" echo " NLS support: $USE_NLS" echo "" +echo " GTK: $with_GTK" echo " Xaw3d: $with_Xaw3d" +echo " Xaw: $with_Xaw" echo "" echo " xpm: $enable_xpm" echo " ptys: $enable_ptys" -- 1.7.0.4