X-Git-Url: http://winboard.nl/cgi-bin?p=xboard.git;a=blobdiff_plain;f=configure.ac;h=330640909e882077fc48761ea1c28fc5ee97b048;hp=310e68a03d158b531b307ad8962dbe46752ae143;hb=HEAD;hpb=43a6a6c12cf2d4ccbe7d3c1911c42576aa44f9f5 diff --git a/configure.ac b/configure.ac index 310e68a..3306409 100644 --- a/configure.ac +++ b/configure.ac @@ -1,21 +1,21 @@ 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| Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006, 2007, +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| 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,12 +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],[master-20120430],[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]) @@ -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([HAVE_LIBXPM],[template]) AH_TEMPLATE([USE_XAW3D],[template]) AH_TEMPLATE([X_LOCALE],[template]) @@ -69,7 +72,7 @@ fi AC_PROG_CC dnl| need this to be able to compile files in a subdir -AM_PROG_CC_C_O +AM_PROG_CC_C_O AC_PROG_CPP AC_ISC_POSIX @@ -119,53 +122,181 @@ AC_TRY_COMPILE([],[], 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) -AC_CHECK_HEADER(X11/Intrinsic.h,xt="yes",xt="no") +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 -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 -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 - AC_CHECK_HEADER(X11/Xaw/Dialog.h,xaw_headers="yes", xaw_headers="no") - 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" + +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 Xaw/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" || test x"$with_Xaw" = x"yes"]) +dnl | end Front-end check AC_CANONICAL_HOST @@ -202,7 +333,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, @@ -318,7 +449,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 ;; @@ -343,37 +474,34 @@ dnl| USE_PTYS=1 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 -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" - CFLAGS="$CFLAGS $X_CFLAGS" - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - AC_CHECK_HEADERS(X11/xpm.h) - CFLAGS="$save_cflags" - 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(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 @@ -396,19 +524,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 +if test x"$enable_zippy" != x"no"; 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) @@ -419,31 +548,27 @@ enable_sigint=$enableval 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 " +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 -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 @@ -456,8 +581,12 @@ echo " Configurations summary:" 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 "" @@ -465,9 +594,10 @@ 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" echo " zippy: $enable_zippy" echo " sigint: $enable_sigint"