gnucash/configure.in
Geert Janssens 268a378641 Update release to 2.3.10
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18661 57a11ea4-9604-0410-9ed3-97b8803252fd
2010-02-16 15:07:46 +00:00

1686 lines
54 KiB
Plaintext

## -*-m4-*-
dnl Process this file with autoconf to produce a configure script.
# FILE:
# configure.in
#
# FUNCTION:
# implements checks for a variety of system-specific functions
#
# Contents:
# Headers - Autoconf header stuff
# Variables - Hardcoded variables
# Programs - Check for programs binaries
# Functions - Check for functions
# With - Check for --with/without options
# Enable - Check for --enable/disable options
# Libraries - Check for libraries
# Footer - Autoconf footer stuff
# Autoconf initialization
AC_PREREQ(2.59)
AC_INIT([gnucash], [2.3.10], [gnucash-devel@gnucash.org])
AC_CONFIG_HEADERS(config.h)
AC_CONFIG_SRCDIR(src/engine/Transaction.h)
# Initialize automake -- make sure we have at least version 1.9
AM_INIT_AUTOMAKE([1.9 dist-bzip2])
# Parse out the version number
GNUCASH_VERSION_STRING=AC_PACKAGE_VERSION
GNUCASH_MAJOR_VERSION=`echo $GNUCASH_VERSION_STRING | [ sed -e 's/^\([^\.]*\)\.\([^.]*\)\.\(.*\)$/\1/' ]`
GNUCASH_MINOR_VERSION=`echo $GNUCASH_VERSION_STRING | [ sed -e 's/^\([^\.]*\)\.\([^.]*\)\.\(.*\)$/\2/' ]`
GNUCASH_MICRO_VERSION=`echo $GNUCASH_VERSION_STRING | [ sed -e 's/^\([^\.]*\)\.\([^.]*\)\.\(.*\)$/\3/' ]`
# save any user/environment optimization flags before we muck with them in
# --enable-debug:
USER_OPTIMIZATION=""
for flag in $CFLAGS; do
tmp_flag=`echo $flag | sed -e 's,-O.,,'`
if test -z "$tmp_flag"; then
USER_OPTIMIZATION="$USER_OPTIMIZATION ${tmp_flag}"
fi
done
## Do this first, because the other tests depend on it:
# Check for gcc and intltool (somehow breaks the suggested content
# order, doesn't it? Whatever.)
AC_PROG_CC
AM_PROG_CC_C_O
AC_GNU_SOURCE
AC_PROG_INTLTOOL
AM_GCONF_SOURCE_2
# Override gconf default install locations. The default is to always
# put them into /etc. This change puts them into $(prefix)/etc.
if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then
GCONF_SCHEMA_CONFIG_SOURCE="xml::${sysconfdir}/gconf/gconf.xml.defaults"
fi
GCONF_SCHEMA_CONFIG_SOURCE_DIRONLY=`echo $GCONF_SCHEMA_CONFIG_SOURCE | cut -d ':' -f 3`
AC_SUBST(GCONF_SCHEMA_CONFIG_SOURCE_DIRONLY)
AC_SUBST(GNUCASH_MAJOR_VERSION)
AC_SUBST(GNUCASH_MINOR_VERSION)
AC_SUBST(GNUCASH_MICRO_VERSION)
AC_DEFINE_UNQUOTED(GNUCASH_MAJOR_VERSION, $GNUCASH_MAJOR_VERSION,
[GnuCash Major version number])
AC_DEFINE_UNQUOTED(GNUCASH_MINOR_VERSION, $GNUCASH_MINOR_VERSION,
[GnuCash Minor version number])
AC_DEFINE_UNQUOTED(GNUCASH_MICRO_VERSION, $GNUCASH_MICRO_VERSION,
[GnuCash Micro version number])
dnl Set of available languages.
ALL_LINGUAS="ca cs da de el en_GB es_NI es eu fa fi fr he hu it ja ko lt lv_LV nb ne nl pl pt_BR pt ro ru rw sk sv ta tr uk vi zh_CN zh_TW"
GETTEXT_PACKAGE=gnucash
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
[GetText version number])
AM_GLIB_GNU_GETTEXT
# Enable only when we have autoconf --version >= 2.59
# on all platforms. Note that AC_PREREQ(2.59) may be
# insufficient to actually use v2.59 on OSX
#AC_CONFIG_MACRO_DIR(macros)
AC_PROG_INSTALL
AC_LIBTOOL_DLOPEN
AC_LIBTOOL_WIN32_DLL
AM_DISABLE_STATIC
AM_PROG_LIBTOOL
AC_SUBST(LIBTOOL_DEPS)
AC_ISC_POSIX
AC_C_BIGENDIAN
AC_PROG_MAKE_SET
AC_PROG_LN_S
AC_HEADER_STDC
AC_CHECK_HEADERS(limits.h sys/times.h sys/wait.h)
AC_CHECK_FUNCS(stpcpy memcpy timegm towupper)
AC_CHECK_FUNCS(setenv,,[
AC_CHECK_FUNCS(putenv,,[
AC_MSG_ERROR([Must have one of the setenv or putenv functions.])
])
])
##################################################
# Check for win32 platform
##################################################
AC_MSG_CHECKING([for native Win32])
case $host in
*-*-mingw*)
native_win32=yes
;;
*)
native_win32=no
;;
esac
AC_MSG_RESULT([$native_win32])
AM_CONDITIONAL(OS_WIN32, test "x$native_win32" = "xyes")
AC_MSG_CHECKING([for Win32 platform in general])
case $host in
*-*-mingw*|*-*-cygwin*)
platform_win32=yes
;;
*)
platform_win32=no
;;
esac
AC_MSG_RESULT($platform_win32)
AM_CONDITIONAL(PLATFORM_WIN32, test "x$platform_win32" = "xyes")
if test "$platform_win32" = yes; then
REGEX_LIBS="-lregex"
else
REGEX_LIBS=""
fi
AC_SUBST(REGEX_LIBS)
if test "x$native_win32" = "xyes" ; then
HTMLHELP_LIBS=
AC_MSG_CHECKING(for HtmlHelpW)
saved_LIBS="${LIBS}"
LIBS="${LIBS} -lhtmlhelp"
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <windows.h>
#include <htmlhelp.h>]], [HtmlHelpW(0, (wchar_t*)"", HH_HELP_CONTEXT, 0);])], [
AC_MSG_RESULT(yes)
HTMLHELP_LIBS=-lhtmlhelp
AC_DEFINE(HAVE_HTMLHELPW,1,[System has HtmlHelpW])
], [
AC_MSG_RESULT(no)
])
LIBS="${saved_LIBS}"
AC_SUBST(HTMLHELP_LIBS)
fi
##################################################
STRUCT_TM_GMTOFF_CHECK
SCANF_LLD_CHECK
if test x$am_cv_scanf_lld = "xno"; then
SCANF_QD_CHECK
if test x$am_cv_scanf_qd = "xno"; then
SCANF_I64D_CHECK
if test x$am_cv_scanf_i64d = "xno"; then
AC_MSG_ERROR([Cannot continue, no long long conversion support in scanf.])
fi
fi
fi
# test whether we are building directly from SVN/SVK
${srcdir}/util/gnc-svnversion ${srcdir} >/dev/null 2>&1
if test $? = 0 ; then
BUILDING_FROM_SVN=yes
# We need at least version 1.3.31 of SWIG because
# that's when SWIG doesn't barf on the "inline" keyword in C headers anymore
AC_PROG_SWIG(1.3.31)
else
BUILDING_FROM_SVN=no
# Make sure we've got swig-runtime.h and gnc-svninfo.h
AC_CHECK_FILE(${srcdir}/src/swig-runtime.h, [],
[AC_MSG_ERROR([
It looks like you are NOT building from Subversion
but I cannot find swig-runtime.h. Check your PATH
and make sure we can find svnversion in your PATH!
Either that or contact gnucash-devel@gnucash.org because
the tarball you downloaded is broken.
])])
AC_CHECK_FILE(${srcdir}/src/gnome-utils/gnc-svninfo.h, [],
[AC_MSG_ERROR([
It looks like you are NOT building from Subversion
but I cannot find gnc-svninfo.h. Check your PATH
and make sure we can find svnversion in your PATH!
Either that or contact gnucash-devel@gnucash.org because
the tarball you downloaded is broken.
])])
fi
AM_CONDITIONAL(BUILDING_FROM_SVN, test "x$BUILDING_FROM_SVN" = "xyes")
# Build dir adjustments
AM_CONDITIONAL(GNUCASH_SEPARATE_BUILDDIR, test "x${srcdir}" != "x.")
# Init binreloc
AM_BINRELOC
### --------------------------------------------------------------------------
### See if we have pkg-config
AC_PATH_PROG(PKG_CONFIG,pkg-config)
if test "x$PKG_CONFIG" = x; then
# @*%&$ Ximian programmers renamed this application
AC_PATH_PROG(PKG_CONFIG,pkgconfig)
if test "x$PKG_CONFIG" = x; then
AC_MSG_ERROR([Could not find the pkg-config (or pkgconfig) program.],)
fi
fi
### --------------------------------------------------------------------------
### Glib checks..
AM_PATH_GLIB_2_0(2.6.0,,AC_MSG_ERROR([
*** GLIB >= 2.6 is required to build Gnucash; please make sure you have the
*** development headers installed. The latest version of GLIB is
*** always available at ftp://ftp.gnome.org/pub/gnome/sources/glib/.]),
gthread gobject gmodule)
if test ${no_glib}x = yesx
then
AC_MSG_ERROR([Cannot find glib. Check config.log])
fi
AC_MSG_CHECKING(for GLIB - version >= 2.8.0)
if $PKG_CONFIG 'glib-2.0 >= 2.8.0'
then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_GLIB_2_8,1,[System has glib 2.8.0 or better])
HAVE_GLIB_2_8=yes
else
AC_MSG_RESULT(no)
if test "x${native_win32}" = "xyes"; then
AC_MSG_ERROR([*** GLIB >= 2.8 is required to build Gnucash on Windows.])
else
GLIB26_LIBS="$GLIB_LIBS"
GLIB_LIBS="\${top_builddir}/lib/glib28/libgnc-glib.la $GLIB_LIBS"
GLIB_CFLAGS="-I\${top_srcdir}/lib/glib28 $GLIB_CFLAGS"
AC_SUBST(GLIB26_LIBS)
fi
fi
AM_CONDITIONAL(HAVE_GLIB_2_8, test "x$HAVE_GLIB_2_8" = "xyes")
AC_MSG_CHECKING(for GLIB - version >= 2.9.0)
if $PKG_CONFIG 'glib-2.0 >= 2.9.0'
then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_GLIB29,1,[System has glib 2.9.0 or better])
HAVE_GLIB29=yes
else
AC_MSG_RESULT(no)
fi
AC_MSG_CHECKING(for GLIB - version >= 2.12.0)
if $PKG_CONFIG 'glib-2.0 >= 2.12.0'
then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_GLIB_2_12,1,[System has glib 2.12.0 or better])
HAVE_GLIB_2_12=yes
else
AC_MSG_RESULT(no)
fi
AM_CONDITIONAL(HAVE_GLIB_2_8, test "x$HAVE_GLIB_2_8" = "xyes")
AC_MSG_CHECKING([for untested GLIB versions (glib >= 2.13.0)])
if $PKG_CONFIG 'glib-2.0 >= 2.13.0'
then
AC_MSG_RESULT(yes)
HAVE_UNTESTED_GLIB=yes
else
AC_MSG_RESULT(no)
fi
AC_CHECK_HEADERS(dlfcn.h dl.h utmp.h locale.h mcheck.h unistd.h wctype.h)
# Gnucash replaced dlopen/dlsym by the g_module functions; dlsym
# is needed optionally in one place for BSD linkers, though.
DL_LIB=
AC_CHECK_FUNCS(dlsym,,[
AC_CHECK_LIB(dl, dlsym, DL_LIB="-ldl",[
AC_CHECK_LIB(dld, shl_load, DL_LIB="-ldld",[
AC_CHECK_FUNCS(dlsym, DL_LIB="")
])
])
])
oLIBS="$LIBS"
LIBS="$LIBS $DL_LIB"
AC_CHECK_FUNCS(dlerror,,)
LIBS="$oLIBS"
AC_SUBST(DL_LIB)
### --------------------------------------------------------------------------
### MacOS
# Some systems (MacOS) require -lintl
# not true for darwin 10.3 - halts the build.
# 10.x requires some special handling...
#AC_SEARCH_LIBS(gettext, intl, ,[
# AC_MSG_ERROR([Cannot find gettext -- do you need to build -lintl?])], )
AC_SUBST(SED)
AC_MSG_CHECKING(for darwin)
case $host_os in
rhapsody* | darwin[1567].*)
AC_MSG_RESULT([yes, but too old])
AC_MSG_ERROR([This platform is not supported, please
update to latest darwin])
;;
darwin*)
# AC_CHECK_HEADERS(popt.h)
# AC_MSG_RESULT([yes, patching libtool to always build dylibs])
# mv libtool libtool.old
# ${SED} -e 's/^deplibs_check_method.*/deplibs_check_method=pass_all/g' \
# -e 's|^library_names_spec.*|library_names_spec="\\$libname\\$release\\$versuffix.dylib \\$libname\\$release\\${major}.dylib \\$libname.dylib"|g' \
# -e 's|^soname_spec.*|soname_spec="\\$libname\\$release\\$major.dylib"|g' \
# < libtool.old > libtool
# rm libtool.old
AC_MSG_RESULT(yes)
AC_MSG_CHECKING(For GDK-Quartz)
_gdk_tgt=`$PKG_CONFIG --variable=target gdk-2.0`
if test "x$_gdk_tgt" = xquartz; then
AC_MSG_RESULT(yes)
AC_DEFINE(GDK_QUARTZ,,[Using GDK Quartz (not X11)])
AC_MSG_CHECKING(For ige-mac-integration)
PKG_CHECK_MODULES(IGE_MAC, ige-mac-integration,
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
AC_SUBST(IGE_MAC_LIBS)
AC_SUBST(IGE_MAC_CFLAGS)
GNUCASH_SETUP_ENV="gnucash-setup-env-osx"
else
GNUCASH_SETUP_ENV="gnucash-setup-env"
AC_MSG_RESULT(no)
fi
;;
*)
AC_MSG_RESULT(no)
GNUCASH_SETUP_ENV="gnucash-setup-env"
;;
esac
AC_SUBST(GNUCASH_SETUP_ENV)
# These are unavailable on windows/mingw32 and X11 isn't desired or
# required for MacOSX Quartz
if test "x$_gdk_tgt" = xquartz;
then
AC_CHECK_HEADERS(glob.h)
else
AC_CHECK_HEADERS(X11/Xlib.h glob.h)
fi
AM_CONDITIONAL(HAVE_X11_XLIB_H, test "x$ac_cv_header_X11_Xlib_h" = "xyes")
AC_CHECK_FUNCS(chown gethostname getppid getuid gettimeofday gmtime_r)
AC_CHECK_FUNCS(gethostid link)
### --------------------------------------------------------------------------
### Guile version checks (should this be something other than the Gnome check?)
# If the user has given these values, cache them to override the
# detected values.
if test "x$GUILE_LIBS" != x; then
saved_GUILE_LIBS="$GUILE_LIBS"
fi
if test "x$GUILE_INCS" != x; then
saved_GUILE_INCS="$GUILE_INCS"
fi
GUILE_LIBS=""
GNOME_CHECK_GUILE
if test "x$saved_GUILE_LIBS" != x; then
GUILE_LIBS="$saved_GUILE_LIBS"
fi
if test "x$saved_GUILE_INCS" != x; then
GUILE_INCS="$saved_GUILE_INCS"
fi
AS_SCRUB_INCLUDE(GUILE_INCS)
AC_SUBST(GUILE_LIBS)
AM_GUILE_VERSION_CHECK(1.6.0, , , [AC_MSG_ERROR([
guile does not appear to be installed correctly, or is not in the
correct version range. Perhaps you have not installed the guile
development packages? Gnucash requires at least version 1.6 to build.
])])
AC_SUBST(GUILE)
AC_DEFINE_UNQUOTED(GNC_GUILE_MAJOR_VERSION, ${guile_major_version},
[Guile Major version number])
AC_DEFINE_UNQUOTED(GNC_GUILE_MINOR_VERSION, ${guile_minor_version},
[Guile Minor version number])
AC_DEFINE_UNQUOTED(GNC_GUILE_MICRO_VERSION, ${guile_micro_version},
[Guile Micro version number])
AM_GUILE_VERSION_CHECK(1.8.0, , [
AC_DEFINE(HAVE_GUILE18,1,[System has guile 1.8 or better])
], )
AS_SCRUB_INCLUDE(CFLAGS)
AC_MSG_CHECKING([for SLIB support])
if ${GUILE} -c "(use-modules (ice-9 slib)) (require 'printf)" > /dev/null 2>&1
then
AC_MSG_RESULT(yes)
else
AC_MSG_ERROR([
Cannot find SLIB. Are you sure you have it installed?
See http://bugzilla.gnome.org/show_bug.cgi?id=347922
and http://bugzilla.gnome.org/show_bug.cgi?id=483631
])
fi
### Check size of long_long - some guile's are broken.
AC_MSG_CHECKING(if guile long_long is at least as big as gint64)
GNC_OLDCFLAGS="$CFLAGS"
GNC_OLDLDFLAGS="$LDFLAGS"
CFLAGS="${GNOME_CFLAGS} ${GUILE_INCS} ${CFLAGS} ${GLIB_CFLAGS}"
LDFLAGS="${LDFLAGS} ${GLIB_LIBS}"
AC_TRY_RUN([
#include <glib.h>
#include <libguile/__scm.h>
int main(int argc, char *argv[]) {
return(!(sizeof(long_long) >= sizeof(gint64)));
}
],[
AC_MSG_RESULT(yes)
AC_CHECK_LIB(guile, scm_long_long2num,
AC_DEFINE(GUILE_LONG_LONG_OK,1,is sizeof(long_long) >=
sizeof(gint64)))
],[
AC_MSG_RESULT(no)
],[
AC_MSG_RESULT(assuming yes)
AC_CHECK_LIB(guile, scm_long_long2num,
AC_DEFINE(GUILE_LONG_LONG_OK,1,is sizeof(long_long) >=
sizeof(gint64)))
])
CFLAGS="$GNC_OLDCFLAGS"
LDFLAGS="$GNC_OLDLDFLAGS"
# One of the places this is critical is in gnc_scm_to_gint64 and inverse.
# However, I'm sure we require this elsewhere, so don't remove this test
# unless you've done sufficient code review/testing.
AC_MSG_CHECKING(if unsigned long is at least as big as guint32)
GNC_OLDCFLAGS="$CFLAGS"
GNC_OLDLDFLAGS="$LDFLAGS"
CFLAGS="${GNOME_CFLAGS} ${GUILE_INCS} ${CFLAGS} ${GLIB_CFLAGS}"
LDFLAGS="${LDFLAGS} ${GLIB_LIBS}"
AC_TRY_RUN([
#include <glib.h>
int main(int argc, char *argv[]) {
return(!(sizeof(unsigned long) >= sizeof(guint32)));
}
],[
AC_MSG_RESULT(yes)
],[
AC_MSG_RESULT(no)
AC_MSG_ERROR(cannot continue, size of unsigned long too small.)
],[
AC_MSG_RESULT(assuming yes)
])
CFLAGS="$GNC_OLDCFLAGS"
LDFLAGS="$GNC_OLDLDFLAGS"
### --------------------------------------------------------------------------
### Check which SRFIs we need.
GNC_ADD_ON_SRFIS=""
for f in ${srcdir}/lib/srfi/srfi-*.scm
do
srfi=`echo $f | sed 's%.*/%%' | sed 's/.scm//'`
AC_MSG_CHECKING(if guile needs our copy of ${srfi})
if ${GUILE} -c "(debug-set! stack 200000) (use-modules (srfi ${srfi}))" > /dev/null 2>&1
then
AC_MSG_RESULT(no)
else
GNC_ADD_ON_SRFIS="${GNC_ADD_ON_SRFIS} ${srfi}.scm"
AC_MSG_RESULT(yes)
fi
done
AC_SUBST(GNC_ADD_ON_SRFIS)
if test "x${GNC_ADD_ON_SRFIS}" != "x"
then
GNC_SRFI_LOAD_PATH="\${top_srcdir}/lib/"
GNC_TEST_SRFI_LOAD_CMD="--guile-load-dir \${top_srcdir}/lib/"
else
GNC_SRFI_LOAD_PATH=""
GNC_TEST_SRFI_LOAD_CMD=""
fi
AC_SUBST(GNC_SRFI_LOAD_PATH)
AC_SUBST(GNC_TEST_SRFI_LOAD_CMD)
### --------------------------------------------------------------------------
### See if we need guile-www
gnc_have_guile_www=no
AC_MSG_CHECKING([if guile needs our copy of (guile www)])
GUILE_MODULE_AVAILABLE(gnc_have_guile_www,[(www main)])
AM_CONDITIONAL(GNC_HAVE_GUILE_WWW, test "${gnc_have_guile_www}" = yes)
### --------------------------------------------------------------------------
### look for gconf
PKG_CHECK_MODULES(GCONF, gconf-2.0 >= "2.0")
# Look up gconftool-2
AC_PATH_PROG(GCONFTOOL, gconftool-2)
AC_SUBST(GCONFTOOL)
AC_SUBST(GCONF_CFLAGS)
AC_SUBST(GCONF_LIBS)
### --------------------------------------------------------------------------
### LIBXML -- GNOME_XML_LIB is defined by GNOME_XML_CHECK
LIBXML2_REQUIRED=2.5.10
PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= $LIBXML2_REQUIRED)
LIBXML_VERSION=`$PKG_CONFIG --version xml`
AS_SCRUB_INCLUDE(LIBXML2_CFLAGS)
AC_SUBST(LIBXML2_CFLAGS)
AC_SUBST(LIBXML2_LIBS)
AC_SUBST(LIBXML_VERSION)
oLIBS="$LIBS"
LIBS="$LIBS $LIBXML2_LIBS"
# Compile a test program to verify that the xml2 library works.
AC_CHECK_LIB(xml2, xmlElemDump, [:], [
AC_MSG_ERROR([libxml2 is required for GnuCash])
])
LIBS="$oLIBS"
### --------------------------------------------------------------------------
### Zlib
ZLIB_LIBS=-lz
AC_SUBST(ZLIB_LIBS)
oLIBS="$LIBS"
LIBS="$LIBS $ZLIB_LIBS"
AC_CHECK_LIB(z, gzopen, [:], [
AC_MSG_ERROR([zlib is required for GnuCash])
])
LIBS="$oLIBS"
### --------------------------------------------------------------------------
### QOF, the Query Object Framework. Check if there is a native version.
dnl XXX: FIXME: RELEASE HACK
dnl This makes sure that we default to using internal QOF for SVN.
dnl Make sure to enable this to be the default for stable releases!
AC_ARG_ENABLE(qof,
[AS_HELP_STRING([--enable-qof],[enable the search for an external QOF library (disabled)])],
[AC_MSG_ERROR([GnuCash has disabled use of external QOF.])
case "${enableval}" in
yes) gnc_enable_qof=true ;;
no) gnc_enable_qof=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-qof) ;;
esac],
[gnc_enable_qof=false])
AC_ARG_WITH(qof, [AS_HELP_STRING([--with-qof=path],[prefix for Query Object Framework - QOF (auto)])],
[gnc_with_qof=$withval], [gnc_with_qof=yes])
AC_ARG_WITH(qt3_wizard_package,
[AS_HELP_STRING([--with-qt3-wizard-package=name],[name of package containing qt3-wizard (aqbanking)])],
[QT3_WIZARD_PACKAGE=$withval], [QT3_WIZARD_PACKAGE=aqbanking])
AC_DEFINE_UNQUOTED([QT3_WIZARD_PACKAGE],["$QT3_WIZARD_PACKAGE"],[Name of package containing qt3-wizard.])
# GnuCash builds without deprecated QOF code so needs latest version.
QOF_REQUIRED=0.6.4
# Can't use external qof until it supports "alternate dirty mode"
QOF_REQUIRED=99.99.99
if test "$gnc_enable_qof" = true ; then
AC_MSG_CHECKING([for QOF, version >= $QOF_REQUIRED])
if test "$gnc_with_qof" != "yes"; then
QOF=`$PKG_CONFIG --silence-errors --exists '$gnc_with_qof/lib/pkgconfig/qof-1.pc >= $QOF_REQUIRED'`
QOF_LIBS=`$PKG_CONFIG --silence-errors --libs $gnc_with_qof/lib/pkgconfig/qof-1.pc`
QOF_CFLAGS=`$PKG_CONFIG --silence-errors --cflags $gnc_with_qof/lib/pkgconfig/qof-1.pc`
QOF_VERSION=`$PKG_CONFIG --silence-errors --modversion $gnc_with_qof/lib/pkgconfig/qof-1.pc`
QOF_PREFIX=`$PKG_CONFIG --silence-errors --variable=prefix $gnc_with_qof/lib/pkgconfig/qof-1.pc`
QOF_LIB_DIR=`$PKG_CONFIG --silence-errors --variable=libdir $gnc_with_qof/lib/pkgconfig/qof-1.pc`
QOF_XML_DIR=`$PKG_CONFIG --silence-errors --variable=xmldir $gnc_with_qof/lib/pkgconfig/qof-1.pc`
else
QOF=`$PKG_CONFIG --silence-errors --exists 'qof-1 >= $QOF_REQUIRED'`
QOF_LIBS=`$PKG_CONFIG --silence-errors --libs qof-1`
QOF_CFLAGS=`$PKG_CONFIG --silence-errors --cflags qof-1`
QOF_VERSION=`$PKG_CONFIG --silence-errors --modversion qof-1`
QOF_PREFIX=`$PKG_CONFIG --silence-errors --variable=prefix qof-1`
QOF_LIB_DIR=`$PKG_CONFIG --silence-errors --variable=libdir qof-1`
QOF_XML_DIR=`$PKG_CONFIG --silence-errors --variable=xmldir qof-1`
fi
if test x$QOF_XML_DIR = x; then
AC_MSG_RESULT([no, will use internal QOF code])
else
AC_MSG_RESULT([yes])
fi
else
AC_MSG_NOTICE([External QOF Disabled. Using Internal QOF Code.])
fi
if test x$QOF_XML_DIR = x; then
QOF_LIB_DIR='${pkglibdir}'
QOF_CFLAGS='-I${top_builddir}/src/libqof/qof -I${top_srcdir}/src/libqof/qof'
QOF_LIBS='${top_builddir}/src/libqof/qof/libgnc-qof.la'
QOF_VERSION="internal"
QOF_PREFIX="internal"
QOF_XML_DIR='${pkgdatadir}/xml/qsf'
LIBQOF_LIBRARY_VERSION=1:4:0
LIBQOF_BACKEND_QSF_LIBRARY_VERSION=0:3:0
AC_SUBST(LIBQOF_LIBRARY_VERSION)
AC_SUBST(LIBQOF_BACKEND_QSF_LIBRARY_VERSION)
AC_DEFINE(HAVE_LIBQOF,,[We will use the internal QOF code])
HAVE_LIBQOF="use_internal"
fi
AM_CONDITIONAL(USE_LIBQOF, [test x$HAVE_LIBQOF != x])
AM_CONDITIONAL(USE_LIBQOF, [test "$HAVE_LIBQOF" = "use_internal"])
AC_SUBST(USE_LIBQOF)
AC_SUBST(QOF_CFLAGS)
AC_SUBST(QOF_LIBS)
AS_SCRUB_INCLUDE(QOF_PREFIX)
AC_SUBST(QOF_PREFIX)
AC_SUBST(QOF_LIB_DIR)
AC_SUBST(QOF_XML_DIR)
AC_DEFINE(QOF_DISABLE_DEPRECATED,1, [Don't use deprecated qof functions])
### ----------------------
### LIBDBI
AC_ARG_ENABLE(dbi,
[AS_HELP_STRING([--enable-dbi],[build with the libdbi backend])],
[case "${enableval}" in
yes) want_dbi=true ;;
no) want_dbi=false ;;
*) want_dbi=false ;;
esac],
[want_dbi=false])
if test x${want_dbi} = xtrue
then
AC_CHECK_HEADERS(dbi/dbi.h)
if test "x$ac_cv_header_dbi_dbi_h" != xno; then
AC_ARG_WITH( dbi-dbd-dir,
[AS_HELP_STRING([--with-dbi-dbd-dir=PATH],[specify location of libdbi drivers @<:@default=/usr/lib/dbd@:>@])],
GNC_DBD_DIR="$with_dbi_dbd_dir",
GNC_DBD_DIR="/usr/lib/dbd")
LIBDBI_LIBS=-ldbi
DBI_DIR=dbi
else
AC_MSG_ERROR( Unable to find dbi/dbi.h )
fi
fi
AC_SUBST(LIBDBI_LIBS)
AC_SUBST(DBI_DIR)
AC_SUBST(GNC_DBD_DIR)
### --------------------------------------------------------------------------
### Variables
### Set up all the initial variable values...
GNC_CONFIGDIR='${sysconfdir}/gnucash'
GNC_DOC_INSTALL_DIR='${pkgdatadir}/doc'
GNC_INCLUDE_DIR='${includedir}/gnucash'
GNC_SCM_INSTALL_DIR='${pkgdatadir}/scm'
GNC_SHAREDIR='${pkgdatadir}'
GNC_LIBEXECDIR='${libexecdir}/gnucash'
GNC_ACCOUNTS_DIR='${GNC_SHAREDIR}/accounts'
GNC_CHECKS_DIR='${GNC_SHAREDIR}/checks'
GNC_GLADE_DIR='${GNC_SHAREDIR}/glade'
GNC_UI_DIR='${GNC_SHAREDIR}/ui'
GNC_PIXMAP_DIR='${GNC_SHAREDIR}/pixmaps'
AC_SUBST(GNC_ACCOUNTS_DIR)
AC_SUBST(GNC_CHECKS_DIR)
AC_SUBST(GNC_CONFIGDIR)
AC_SUBST(GNC_DOC_INSTALL_DIR)
AC_SUBST(GNC_GLADE_DIR)
AC_SUBST(GNC_UI_DIR)
AC_SUBST(GNC_INCLUDE_DIR)
AC_SUBST(GNC_PIXMAP_DIR)
AC_SUBST(GNC_SCM_INSTALL_DIR)
AC_SUBST(GNC_SHAREDIR)
AC_SUBST(GNC_LIBEXECDIR)
AC_ARG_ENABLE( debug,
[AS_HELP_STRING([--enable-debug],[compile with debugging flags set])],
[
# remove any optimization flags...
CFLAGS=`echo ${CFLAGS} | sed -e 's,-O.,,g'`
# ...except for those the user wants.
CFLAGS="${CFLAGS} -g ${USER_OPTIMIZATION}"
LDFLAGS="${LDFLAGS} -g"
AC_DEFINE(DEBUG_MEMORY,1,[Enable debug memory])
AC_DEFINE(DEBUG_MEMORY,0,[Enable debug memory])])
AC_ARG_ENABLE( profile,
[AS_HELP_STRING([--enable-profile],[compile with profiling set])],
CFLAGS="${CFLAGS} -pg"
LDFLAGS="${LDFLAGS} -pg")
AC_ARG_ENABLE( ref-counts-dumps,
[AS_HELP_STRING([--enable-ref-counts-dumps],[compile with ref count dumps])],
AC_DEFINE(DEBUG_REFERENCE_COUNTING,1,[Enable reference count dumps])
AC_DEFINE(DEBUG_REFERENCE_COUNTING,0,[Enable reference count dumps]) )
### --------------------------------------------------------------------------
### OFX
want_ofx=auto
AC_ARG_ENABLE( ofx,
[AS_HELP_STRING([--enable-ofx],[compile with ofx support (needs LibOFX)])],
[ case "$enableval" in
yes) want_ofx=yes ;;
no) want_ofx=no ;;
esac[]dnl
] )
AC_MSG_CHECKING(whether to use OFX)
case "${want_ofx}" in
yes) AC_MSG_RESULT(yes -- failure is fatal) ;;
no) AC_MSG_RESULT(no) ;;
auto) AC_MSG_RESULT(yes -- automatic test) ;;
esac
if test x${want_ofx} != xno ;
then
AC_ARG_WITH( ofx-prefix,
[AS_HELP_STRING([--with-ofx-prefix=DIR],[specify where to look for libOFX])],
OFXPREFIX="$with_ofx_prefix" )
if test x${OFXPREFIX} != x ; then
LIBOFX_LIBS="-L${OFXPREFIX}/lib"
LIBOFX_CFLAGS="-I${OFXPREFIX}/include"
fi
if test "x${want_ofx}" != xno ; then
# Version number verified. Now check header files.
AC_MSG_CHECKING(for libofx/libofx.h)
AS_SCRUB_INCLUDE(LIBOFX_CFLAGS)
save_CPPFLAGS="${CPPFLAGS}"
CPPFLAGS="${CPPFLAGS} ${LIBOFX_CFLAGS}"
AC_TRY_CPP( [#include <libofx/libofx.h>], AC_MSG_RESULT(yes),
OFXfound=no )
if test x${OFXPREFIX} = x -a x${OFXfound} = no ; then
LIBOFX_LIBS="-L$/usr/local/lib"
LIBOFX_CFLAGS="-I$/usr/local/include"
AS_SCRUB_INCLUDE(LIBOFX_CFLAGS)
CPPFLAGS="${CPPFLAGS} ${LIBOFX_CFLAGS}"
AC_TRY_CPP( [#include <libofx/libofx.h>],
AC_MSG_RESULT([yes (in /usr/local)]),
[ if test "x${want_ofx}" = xyes ; then
AC_MSG_ERROR([cannot find libofx header, needed for OFX support.])
else
AC_MSG_RESULT([cannot find libofx header, needed for OFX support.])
want_ofx=no
fi
] )
fi
if test "x${want_ofx}" != xno ; then
LIBOFX_LIBS="${LIBOFX_LIBS} -lofx"
AC_MSG_CHECKING(for libofx)
save_LIBS="${LIBS}"
LIBS="${LIBS} ${LIBOFX_LIBS}"
AC_TRY_LINK( [
#include <libofx/libofx.h>
], [
LibofxContextPtr libofx_context = libofx_get_new_context();
libofx_free_context(libofx_context);
], AC_MSG_RESULT(yes),
[ if test "x${want_ofx}" = xyes ; then
AC_MSG_ERROR([*** Cannot compile test program for libofx library. Please check config.log for the exact error.])
else
AC_MSG_RESULT([*** Cannot compile test program for libofx library. Please check config.log for the exact error.])
want_ofx=no
fi
] )
LIBS="${save_LIBS}"
CPPFLAGS="${save_CPPFLAGS}"
AC_SUBST(LIBOFX_CFLAGS)
AC_SUBST(LIBOFX_LIBS)
fi
fi
fi
if test "x${want_ofx}" != xno ; then
OFX_DIR=ofx
fi
AC_SUBST(OFX_DIR)
### --------------------------------------------------------------------------
### MT940
AC_ARG_ENABLE( mt940,
[AS_HELP_STRING([--enable-mt940],[obsolete, included in --enable-aqbanking])],
if test "x$enableval" != "xno" ; then
AC_MSG_ERROR([--enable-mt940 is obsolete -- all functionality is already included in --enable-aqbanking])
fi)
### --------------------------------------------------------------------------
### AqBanking
AC_ARG_ENABLE( aqbanking,
[AS_HELP_STRING([--enable-aqbanking],[compile with AqBanking support])],
if test "x$enableval" != "xno" ; then
want_aqbanking=yes
fi)
AC_ARG_ENABLE( hbci,
[AS_HELP_STRING([--enable-hbci],[an alias for --enable-aqbanking])],
if test "x$enableval" != "xno" ; then
want_aqbanking=yes
fi)
if test x${want_aqbanking} = xyes ;
then
# Check for Aqbanking library
# aqbanking-1.6.1 was released on 2005-11-04; aqbanking ships with
# a pkg-config file since 1.6.1.
PKG_CHECK_MODULES(AQBANKING, aqbanking >= 3.0.0 gwenhywfar, [AQBANKING_DIR=aqbanking], [
PKG_CHECK_MODULES(AQBANKING, aqbanking >= 1.6.1 aqbanking < 2.9.0 gwenhywfar, [AQBANKING_DIR=hbci], [
AC_MSG_ERROR([Could not find aqbanking > 1.6.0. If you use --enable-aqbanking or --enable-hbci, you *have* to have aqbanking installed!])
])
])
# also check for ktoblzcheck
AC_CHECK_HEADERS(ktoblzcheck.h)
if test "x$ac_cv_header_ktoblzcheck_h" != xno; then
AQBANKING_LIBS="${AQBANKING_LIBS} -lktoblzcheck"
fi
AS_SCRUB_INCLUDE(AQBANKING_CFLAGS)
AC_SUBST(AQBANKING_LIBS)
AC_SUBST(AQBANKING_CFLAGS)
fi
AC_SUBST(AQBANKING_DIR)
### --------------------------------------------------------------------------
### i18n
# This variable is set by GLIB_WITH_NLS, called through
# AM_GLIB_GNU_GETTEXT above. Usually it is "share", but on some
# platforms it is "lib". Make sure it is set.
if test "x$DATADIRNAME" = "x"; then
DATADIRNAME="share"
AC_SUBST(DATADIRNAME)
fi
dnl check for nl_langinfo(D_FMT) which is missing on FreeBSD
LANGINFO_D_FMT_CHECK
dnl Enable locale-specific tax-related information in the accounts
AC_ARG_ENABLE( locale-specific-tax,
[AS_HELP_STRING([--enable-locale-specific-tax],[enable localized tax categories (experimental)])],
AC_DEFINE(LOCALE_SPECIFIC_TAX,1,Enable the experimental locale-specific tax categories) )
dnl Make sure we have a proper gettext installed
AC_MSG_CHECKING(for a valid gettext/gmsgfmt installation)
if test "$gt_cv_have_gettext" != "yes" || test "x$GMSGFMT" = "x"; then
AC_MSG_RESULT(no)
AC_MSG_ERROR([Cannot find Glib Gettext. Maybe you need to install the gettext package?])
else
AC_MSG_RESULT(yes - $GMSGFMT)
fi
# -------------------------------------------------------------------------
# URLs for MySQL and PostgreSQL testing
AC_ARG_WITH(test-mysql-url,
AS_HELP_STRING([--with-test-mysql-url=URL],
[MySQL database URL for testing [default=none]]),
[],[with_test_mysql_url=""])
TEST_MYSQL_URL=$with_test_mysql_url
AC_SUBST(TEST_MYSQL_URL)
AC_ARG_WITH(test-pgsql-url,
AS_HELP_STRING([--with-test-pgsql-url=URL],
[PgSQL database URL for testing [default=none]]),
[],[with_test_pgsql_url=""])
TEST_PGSQL_URL=$with_test_pgsql_url
AC_SUBST(TEST_PGSQL_URL)
### --------------------------------------------------------------------------
### help files
# Used to initialize doc-path.
AC_ARG_WITH( help-prefix,
[AS_HELP_STRING([--with-help-prefix=PATH],[specify where to store the help files])],
GNC_HELPDIR="$with_help_prefix",
GNC_HELPDIR="\${datadir}")
AC_SUBST(GNC_HELPDIR)
### --------------------------------------------------------------------------
### Check for etags
AC_ARG_ENABLE( etags,
[AS_HELP_STRING([--enable-etags],[enable automatic create of TAGS file])],
if test x$enableval = xyes; then
USE_ETAGS=1
fi,
USE_ETAGS=0)
if test x${USE_ETAGS} = x1; then
AC_CHECK_PROG(GNC_ETAGS_FILE, etags, TAGS)
fi
AM_CONDITIONAL(GNC_ETAGS_FILE, test x${GNC_ETAGS_FILE} = xTAGS)
### --------------------------------------------------------------------------
### Check for ctags
AC_ARG_ENABLE( ctags,
[AS_HELP_STRING([--enable-ctags],[enable automatic create of tags file])],
if test x$enableval = xyes; then
USE_CTAGS=1
fi,
USE_CTAGS=0)
if test x${USE_CTAGS} = x1; then
AC_CHECK_PROG(GNC_CTAGS_FILE, ctags, tags)
fi
AM_CONDITIONAL(GNC_CTAGS_FILE, test x${GNC_CTAGS_FILE} = xtags)
### --------------------------------------------------------------------------
### Check for perl
# Check for perl, force version 5
AC_ARG_WITH(perl,
[AS_HELP_STRING([--with-perl=FILE],[which perl executable to use])],
PERL="${with_perl}")
# If the user didn't specify a perl, then go fetch.
if test x"$PERL" = x;
then
AC_PATH_PROG(PERL, perl)
fi
# Make sure Perl was found
if test x"$PERL" = x; then
AC_MSG_ERROR([Cannot find Perl. Try using the --with-perl flag.])
fi
# Make sure it's version 5 or later
if "$PERL" -e 'exit 1 if $] < 5.0'; then
:
else
AC_MSG_ERROR([Found ${PERL} reports version ]
[`${PERL} -e 'print $]'`, need version 5.*])
fi
AC_SUBST(PERL)
# check for doxygen, mostly stolen from http://log4cpp.sourceforge.net/
# ----------------------------------------------------------------------------
AC_DEFUN([BB_ENABLE_DOXYGEN],
[
AC_ARG_ENABLE(doxygen, [AS_HELP_STRING([--enable-doxygen],[enable documentation generation with doxygen (auto)])])
AC_ARG_ENABLE(dot, [AS_HELP_STRING([--enable-dot],[use 'dot' to generate graphs in doxygen (auto)])])
AC_ARG_ENABLE(html-docs, [AS_HELP_STRING([--enable-html-docs],[enable HTML generation with doxygen (yes)])], [], [ enable_html_docs=yes])
AC_ARG_ENABLE(latex-docs, [AS_HELP_STRING([--enable-latex-docs],[enable LaTeX documentation generation with doxygen (no)])], [], [ enable_latex_docs=no])
if test "x$enable_doxygen" = xno; then
enable_doc=no
else
AC_PATH_PROG(DOXYGEN, doxygen, , $PATH)
if test x$DOXYGEN = x; then
if test "x$enable_doxygen" = xyes; then
AC_MSG_ERROR([could not find doxygen])
fi
enable_doc=no
else
enable_doc=yes
AC_PATH_PROG(DOT, dot, , $PATH)
fi
fi
AM_CONDITIONAL(DOC, test x$enable_doc = xyes)
if test x$DOT = x; then
if test "x$enable_dot" = xyes; then
AC_MSG_ERROR([could not find dot])
fi
enable_dot=no
else
enable_dot=yes
fi
AM_CONDITIONAL(ENABLE_DOXYGEN, test x$enable_doc = xtrue)
AC_SUBST(enable_dot)
AC_SUBST(enable_html_docs)
AC_SUBST(enable_latex_docs)
])
# check for doxygen
# ----------------------------------------------------------------------------
BB_ENABLE_DOXYGEN
### --------------------------------------------------------------------------
### Libraries
LIBS="$LIBS -lm"
### --------------------------------------------------------------------------
### popt
AC_CHECK_HEADERS(popt.h)
AC_CHECK_LIB(popt, poptStrippedArgv,, [AC_MSG_ERROR([
popt 1.5 or newer is required to build gnucash. You can download
the latest version from ftp://people.redhat.com/sopwith/popt/, or if
you're running Debian, install the libpopt-dev package.
])])
### --------------------------------------------------------------------------
### Whether or not to build the GTK GUI components.
### When disabled, we don't even need to check for them!
### --------------------------------------------------------------------------
AC_ARG_ENABLE(gui,
[AS_HELP_STRING([--disable-gui],[build without the GNOME GUI components of Gnucash])],
[case "${enableval}" in
yes) gnc_build_gui=true ;;
no) gnc_build_gui=false ;;
*) gnc_build_gui=true ;;
esac],
[gnc_build_gui=true])
AM_CONDITIONAL(GNUCASH_ENABLE_GUI, test x${gnc_build_gui} = xtrue)
### --------------------------------------------------------------------------
### GNOME gui components -- built by default, but not if --enable-gui=no
### or --disable-gui is passed to autogen
### --------------------------------------------------------------------------
if test x${gnc_build_gui} = xtrue ;
then
if test x${enable_compile_warnings} = x ;
then
enable_compile_warnings="yes"
fi
GNOME_COMPILE_WARNINGS
PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.8)
AS_SCRUB_INCLUDE(GTK_CFLAGS)
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
HAVE_UNTESTED_GTK=yes
AC_MSG_CHECKING(for GTK - version >= 2.10.0)
if $PKG_CONFIG 'gtk+-2.0 >= 2.10.0'
then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_GTK_2_10,1,[System has gtk 2.10.0 or better])
HAVE_GTK_2_10=yes
else
AC_MSG_RESULT(no)
fi
AM_CONDITIONAL(HAVE_GTK_2_10, test "x$HAVE_GTK_2_10" = "xyes" )
AC_MSG_CHECKING([for untested GDK versions (gdk > 2.11.0)])
if $PKG_CONFIG 'gtk+-2.0 > 2.11.0'
then
AC_MSG_RESULT(yes)
HAVE_UNTESTED_GDK=yes
fi
PKG_CHECK_MODULES(GNOME, libgnomeui-2.0 >= 2.4)
AS_SCRUB_INCLUDE(GNOME_CFLAGS)
AC_SUBST(GNOME_CFLAGS)
AC_SUBST(GNOME_LIBS)
AC_MSG_CHECKING([for untested GNOME versions (libgnome >= 2.19.0)])
if $PKG_CONFIG 'libgnome-2.0 >= 2.19.0'
then
AC_MSG_RESULT(yes)
HAVE_UNTESTED_GNOME=yes
else
AC_MSG_RESULT(no)
fi
PKG_CHECK_MODULES(GDK_PIXBUF, gdk-pixbuf-2.0)
AS_SCRUB_INCLUDE(GDK_PIXBUF_CFLAGS)
AC_SUBST(GDK_PIXBUF_CFLAGS)
AC_SUBST(GDK_PIXBUF_LIBS)
PKG_CHECK_MODULES(GLADE, libglade-2.0 >= 2.4)
AS_SCRUB_INCLUDE(GLADE_CFLAGS)
AC_SUBST(GLADE_CFLAGS)
AC_SUBST(GLADE_LIBS)
# checks for goffice
goffice=0
goffice_with_cairo=0
have_goffice_0_5=0
PKG_CHECK_MODULES(GOFFICE, libgoffice-0.8 >= 0.7.0, [goffice=1], [
PKG_CHECK_MODULES(GOFFICE, libgoffice-0.6 >= 0.6.0, [goffice=1], [
PKG_CHECK_MODULES(GOFFICE, libgoffice-0.5 >= 0.5.1, [goffice=1], [goffice=0])
])
])
if test x$goffice = x1
then
AC_DEFINE(HAVE_GOFFICE_0_5,1,[System has goffice 0.5.1 or better])
AC_DEFINE(GOFFICE_WITH_CAIRO,1,[GOffice has been built with cairo support])
have_goffice_0_5=1
goffice_with_cairo=1
else
PKG_CHECK_MODULES(GOFFICE, libgoffice-0.4 >= 0.4.0, [goffice=1], [
PKG_CHECK_MODULES(GOFFICE, libgoffice-0.3 >= 0.3.0, [goffice=1], [
PKG_CHECK_MODULES(GOFFICE, libgoffice-1 >= 0.0.4, [goffice=1], [
AC_MSG_ERROR([Cannot find libgoffice.])
])
])
])
fi
AS_SCRUB_INCLUDE(GOFFICE_CFLAGS)
AC_SUBST(GOFFICE_CFLAGS)
AC_SUBST(GOFFICE_LIBS)
if test x$goffice_with_cairo = x0
then
saved_CPPFLAGS="${CPPFLAGS}"
CPPFLAGS="${GOFFICE_CFLAGS} ${CPPFLAGS}"
AC_CHECK_HEADER(goffice/graph/gog-renderer-cairo.h, [
AC_DEFINE(GOFFICE_WITH_CAIRO,1,[GOffice has been built with cairo support])
goffice_with_cairo=1
], [
goffice_with_cairo=0
])
CPPFLAGS="${saved_CPPFLAGS}"
fi
### --------------------------------------------------------------------------
### determine the HTML engine
AC_MSG_CHECKING([the html engine])
AC_ARG_WITH(html_engine,
AS_HELP_STRING([--with-html-engine=@<:@webkit/gtkhtml@:>@],
[Select HTML engine [default=gtkhtml]]),
[],[with_html_engine="gtkhtml"])
case "$with_html_engine" in
gtkhtml)
# check for gtkhtml >= 3.14 with gtkprint support
gtkhtml=0
PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.14, [
if test "x$HAVE_GTK_2_10" != "xyes"; then
AC_MSG_NOTICE([Found libgtkhtml-3.14, but not gtk+-2.0 >= 2.10])
elif test "x$goffice_with_cairo" != "x1"; then
AC_MSG_NOTICE([Found libgtkhtml-3.14, but goffice lacks a cairo renderer])
else
gtkhtml=1
AC_DEFINE(GTKHTML_USES_GTKPRINT,1,[GtkHTML uses GtkPrint for printing operations])
fi
], [gtkhtml=0])
AM_CONDITIONAL(GTKHTML_USES_GTKPRINT,test "x$gtkhtml" = "x1")
# GOffice >= 0.5 requires GtkHTML >= 3.14
if test x$have_goffice_0_5 = x1 -a x$gtkhtml = x0 ; then
AC_MSG_ERROR([Goffice uses Cairo/GtkPrint but didn't find GtkHTML with GtkPrint support])
fi
# check for gtkhtml >= 3.16 (includes gtk_html_print_operation_run())
if test x$gtkhtml = x1; then
AC_MSG_CHECKING(for GtkHTML - version >= 3.16.0)
if $PKG_CONFIG 'libgtkhtml-3.14 >= 3.16.0'; then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_GTKHTML_3_16,1,[System has gtkhtml 3.16.0 or better])
HAVE_GTKHTML_3_16=1
else
AC_MSG_RESULT(no)
fi
fi
# fallback to older gtkhtml versions and gnomeprint
if test x$gtkhtml = x0
then
PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.8 , [gtkhtml=1], [
PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.6 , [gtkhtml=1], [
PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.2 , [gtkhtml=1], [
PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.1 , [gtkhtml=1], [
AC_MSG_ERROR([Could not find a working gtkhtml version (need 3.1, 3.2, 3.6, 3.8 or 3.14)])
])
])
])
])
PKG_CHECK_MODULES(GNOME_PRINT, libgnomeprint-2.2 libgnomeprintui-2.2)
AS_SCRUB_INCLUDE(GNOME_PRINT_CFLAGS)
AC_SUBST(GNOME_PRINT_CFLAGS)
AC_SUBST(GNOME_PRINT_LIBS)
fi
;;
webkit)
PKG_CHECK_MODULES(WEBKIT, webkit-1.0 >= "1.0")
AC_DEFINE(WANT_WEBKIT,1,[Use webkit instead of gtkhtml])
AM_CONDITIONAL(GTKHTML_USES_GTKPRINT,false)
;;
*) AC_MSG_ERROR([Invalid HTML engine: must be gtkhtml or webkit]) ;;
esac
AC_MSG_RESULT([$with_html_engine])
AM_CONDITIONAL(HTML_USING_WEBKIT, [test x${with_html_engine} = xwebkit])
AC_SUBST(WEBKIT_CFLAGS)
AC_SUBST(WEBKIT_LIBS)
AS_SCRUB_INCLUDE(GTKHTML_CFLAGS)
dnl if Mac OSX, also scrub /sw/include
dnl GIVEN_CFLAGS=$(echo $GIVEN_CFLAGS | sed -e "s;-I/sw/include ;;" | sed -e "s;-I/sw/include$;;")
case $host_os in
darwin*)
GTKHTML_CFLAGS=`echo $GTKHTML_CFLAGS | ${SED} -e "s;-I/sw/include ;;" | ${SED} -e "s;-I/sw/include$;;"`
GTKHTML_CFLAGS=`echo $GTKHTML_CFLAGS | ${SED} -e "s;-I/sw/include/gtkhtml ;;" | ${SED} -e "s;-I/sw/includ/gtkhtmle$;;"`
;;
esac
AC_SUBST(GTKHTML_CFLAGS)
AC_SUBST(GTKHTML_LIBS)
### ----------------------------------------------------------------------
AC_ARG_ENABLE( efence,
[AS_HELP_STRING([--enable-efence],[link using efence])],
if test x$enableval = xyes; then
EFENCE_LIBS="-lefence"
USE_EFENCE=1
AC_DEFINE(USE_EFENCE,,We are using EFence)
fi,
USE_EFENCE=0
EFENCE_LIBS="")
AC_SUBST(EFENCE_LIBS)
### ----------------------------------------------------------------------
## For now, we just presume you're using the GNOME version. The other
## UI's haven't been carried over during the automake transition. At
## some point, if it's deemed worthwhile, they can be resurrected...
GNOME=1
AC_DEFINE(GNOME,,using GNOME)
else
# GNOME_COMPILE_WARNINGS will add -Wall; no need to set it again.
# also, only add it for GCC.
if test ${GCC}x = yesx
then
# We should always see these errors...
CFLAGS="${CFLAGS} -Wall"
fi
### AM conditionals that need to be set
AM_CONDITIONAL(HAVE_GTK_2_10, false)
fi
### End of gui-only checks
###-------------------------------------------------------------------------
### Selectively disable deprecated bits of glib/gdk/gtk/gnome
###-------------------------------------------------------------------------
if test x${HAVE_UNTESTED_GLIB} = "xyes"
then
allow_deprecated=true
else
allow_deprecated=false
fi
AC_ARG_ENABLE(deprecated-glib,
[AS_HELP_STRING([--disable-deprecated-glib],[don't use deprecated glib functions])],
[case "${enableval}" in
no) allow_deprecated=false ;;
*) allow_deprecated=true ;;
esac]
)
if test x${allow_deprecated} != "xtrue"
then
AC_DEFINE(G_DISABLE_DEPRECATED,1, [Don't use deprecated glib functions])
fi
if test x${HAVE_UNTESTED_GDK} = "xyes"
then
allow_deprecated=true
else
allow_deprecated=false
fi
AC_ARG_ENABLE(deprecated-gdk,
[AS_HELP_STRING([--disable-deprecated-gdk],[don't use deprecated gdk functions])],
[case "${enableval}" in
no) allow_deprecated=false ;;
*) allow_deprecated=true ;;
esac]
)
if test x${allow_deprecated} != "xtrue"
then
AC_DEFINE(GDK_DISABLE_DEPRECATED,1, [Don't use deprecated gdk functions])
AC_DEFINE(GDK_PIXBUF_DISABLE_DEPRECATED,1, [Don't use deprecated gdk-pixbuf functions])
fi
if test x${HAVE_UNTESTED_GTK} = "xyes"
then
allow_deprecated=true
else
allow_deprecated=false
fi
AC_ARG_ENABLE(deprecated-gtk,
[AS_HELP_STRING([--disable-deprecated-gtk],[don't use deprecated gtk functions])],
[case "${enableval}" in
no) allow_deprecated=false ;;
*) allow_deprecated=true ;;
esac]
)
if test x${allow_deprecated} != "xtrue"
then
AC_DEFINE(GTK_DISABLE_DEPRECATED,1, [Don't use deprecated gtk functions])
fi
if test x${HAVE_UNTESTED_GNOME} = "xyes"
then
allow_deprecated=true
else
allow_deprecated=false
fi
AC_ARG_ENABLE(deprecated-gnome,
[AS_HELP_STRING([--disable-deprecated-gnome],[don't use deprecated gnome functions])],
[case "${enableval}" in
no) allow_deprecated=false ;;
*) allow_deprecated=true ;;
esac]
)
if test x${allow_deprecated} != "xtrue"
then
AC_DEFINE(GNOME_DISABLE_DEPRECATED,1, [Don't use deprecated gnome functions])
fi
###-------------------------------------------------------------------------
### Stuff from Mac OS X Port
###-------------------------------------------------------------------------
AC_CHECK_FUNCS(pthread_mutex_init)
AC_REPLACE_FUNCS(strptime localtime_r gmtime_r)
#AC_REPLACE_FUNCS(scm_strptime)
if test x$am_cv_val_LC_MESSAGES = "xno"; then
LC_MESSAGES_ENUM="LC_ALL"
else
LC_MESSAGES_ENUM="LC_MESSAGES"
fi
AC_SUBST(LC_MESSAGES_ENUM)
###--------------------------------------------------------
### Make Python bindings optional
###--------------------------------------------------------
enable_python=false
AC_ARG_ENABLE(python-bindings,
[AS_HELP_STRING([--enable-python-bindings],[enable python bindings])],
[case "${enableval}" in
yes) enable_python=true ;;
no) enable_python=false ;;
*) enable_python=true ;;
esac]
)
if test x${enable_python} = "xtrue"
then
PYTHON_DIR=python-bindings
AM_PATH_PYTHON(2.4)
AC_PYTHON_DEVEL(>= '2.4')
SWIG_PYTHON
fi
AC_SUBST(PYTHON_DIR)
###-------------------------------------------------------------------------
### Additional compiler warnings (or not) if we're running GCC
###-------------------------------------------------------------------------
# This has to come after AC_PROG_CC _AND_ GNOME_COMPILE_WARNINGS
AC_MSG_CHECKING(what extra warning flags to pass to the C compiler)
if test ${GCC}x = yesx
then
warnFLAGS=
CFLAGS="${CFLAGS} -Wno-unused"
# other flags...
# These next two are included in the GNOME_COMPILE_WARNINGS
#warnFLAGS="${warnFLAGS} -Wmissing-prototypes"
#warnFLAGS="${warnFLAGS} -Wmissing-declarations"
#warnFLAGS="${warnFLAGS} -Werror-implicit-function-declaration" # In -Wall
# error-on-warning should not be active in (stable) release tarballs
if test "x$BUILDING_FROM_SVN" = "xyes"
then
# This code is from SVN/SVK, so enable error-on-warning
error_on_warning_as_default="yes"
else
# This is from a tarball, so disable error-on-warning
error_on_warning_as_default="no"
fi
# Enable error-on-warning by default -- I'm tired of fixing other
# people's missing #includes, etc.
AC_ARG_ENABLE(error-on-warning,
[AS_HELP_STRING([--disable-error-on-warning],[disable treating compile warnings as errors])],
[case "${enableval}" in
yes) warnFLAGS="${warnFLAGS} -Werror" ; gnc_error_on_warning=yes ;;
no) gnc_error_on_warning=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-error-on-warning) ;;
esac],
[ if test "${error_on_warning_as_default}" = "yes"; then
warnFLAGS="${warnFLAGS} -Werror";
gnc_error_on_warning=auto
else
gnc_error_on_warning=no
fi
])
# For gcc >= 3.4.x, specifically enable the new warning switch
# -Wdeclaration-after-statement in order to preserve source code
# compatibility to gcc 2.95 and other compilers.
GCC_VERSION=`${CC} -dumpversion`
if test "`echo ${GCC_VERSION} | cut -d. -f1`" -ge 3; then
# This is gcc >= 3.x.x
if test "`echo ${GCC_VERSION} | cut -d. -f2`" -ge 4; then
# This is gcc >= 3.4.x
warnFLAGS="${warnFLAGS} -Wdeclaration-after-statement"
else if test "`echo ${GCC_VERSION} | cut -d. -f1`" -ge 4; then
# This is gcc == 4.x.x
warnFLAGS="${warnFLAGS} -Wdeclaration-after-statement -Wno-pointer-sign"
# rpmbuild on FC4 forces this flag. Can't hurt to always compile with it.
warnFLAGS="${warnFLAGS} -D_FORTIFY_SOURCE=2"
fi
fi
fi
CFLAGS="${warnFLAGS} ${CFLAGS}"
else
warnFLAGS=none
fi
AC_MSG_RESULT($warnFLAGS)
# Adjust CFLAGS and LDFLAGS on Windows
if test "x${platform_win32}" = "xyes"; then
CFLAGS="${CFLAGS} -mms-bitfields"
LDFLAGS="${LDFLAGS} -no-undefined -mwindows"
fi
### --------------------------------------------------------------------------
### Adjustments -- especially executables that aren't generated via
### makefiles, so that we don't have an opportunity to adjust them
### there.
chmod u+x ${srcdir}/src/gnc-test-env
chmod u+x ${srcdir}/src/bin/generate-gnc-script
chmod u+x ${srcdir}/src/bin/overrides/gnucash-make-guids
### --------------------------------------------------------------------------
### Makefile creation
# This is necessary so that .o files in LIBOBJS are also built via
# the ANSI2KNR-filtering rules.
LIBOBJS_SEDSCRIPT="s,\.[[^.]]* ,$U&,g;s,\.[[^.]]*\$\$,$U&,"
AC_SUBST(LIBOBJS_SEDSCRIPT)
AC_CONFIG_FILES(po/Makefile.in
dnl # Makefiles
Makefile
accounts/Makefile
accounts/C/Makefile
accounts/cs/Makefile
accounts/da/Makefile
accounts/de_AT/Makefile
accounts/de_CH/Makefile
accounts/de_DE/Makefile
accounts/el_GR/Makefile
accounts/en_GB/Makefile
accounts/es_ES/Makefile
accounts/es_MX/Makefile
accounts/fi_FI/Makefile
accounts/fr_CA/Makefile
accounts/fr_CH/Makefile
accounts/fr_FR/Makefile
accounts/hu_HU/Makefile
accounts/it/Makefile
accounts/ja/Makefile
accounts/ko/Makefile
accounts/nl/Makefile
accounts/nb/Makefile
accounts/pl/Makefile
accounts/pt_BR/Makefile
accounts/pt_PT/Makefile
accounts/ru/Makefile
accounts/sk/Makefile
accounts/tr_TR/Makefile
accounts/zh_CN/Makefile
checks/Makefile
doc/Makefile
doc/examples/Makefile
intl-scm/Makefile
lib/Makefile
lib/glib28/Makefile
lib/guile-www/Makefile
lib/srfi/Makefile
lib/libc/Makefile
lib/stf/Makefile
packaging/Makefile
packaging/win32/Makefile
packaging/win32/gnucash.iss
src/Makefile
src/app-utils/Makefile
src/app-utils/test/Makefile
src/backend/Makefile
src/backend/dbi/Makefile
src/backend/dbi/test/Makefile
src/backend/xml/Makefile
src/backend/xml/test/Makefile
src/backend/xml/test/test-files/Makefile
src/backend/xml/test/test-files/xml2/Makefile
src/backend/sql/Makefile
src/backend/sql/test/Makefile
src/bin/Makefile
src/bin/overrides/Makefile
src/bin/test/Makefile
src/core-utils/Makefile
src/calculation/Makefile
src/calculation/test/Makefile
src/debug/Makefile
src/debug/valgrind/Makefile
src/doc/Makefile
src/doc/design/Makefile
src/doc/xml/Makefile
src/engine/Makefile
src/engine/test/Makefile
src/engine/test-core/Makefile
src/gnc-module/Makefile
src/gnc-module/test/Makefile
src/gnc-module/test/mod-foo/Makefile
src/gnc-module/test/mod-bar/Makefile
src/gnc-module/test/mod-baz/Makefile
src/gnc-module/test/misc-mods/Makefile
src/gnome/Makefile
src/gnome/gnucash.desktop.in
src/gnome/glade/Makefile
src/gnome/schemas/Makefile
src/gnome/ui/Makefile
src/gnome-utils/Makefile
src/gnome-utils/glade/Makefile
src/gnome-utils/schemas/Makefile
src/gnome-utils/test/Makefile
src/gnome-utils/ui/Makefile
src/gnome-search/Makefile
src/html/Makefile
src/import-export/Makefile
src/import-export/test/Makefile
src/import-export/qif-import/Makefile
src/import-export/qif/Makefile
src/import-export/qif/test/Makefile
src/import-export/qif-import/schemas/Makefile
src/import-export/qif-import/test/Makefile
src/import-export/qif-io-core/Makefile
src/import-export/qif-io-core/test/Makefile
src/import-export/schemas/Makefile
src/import-export/ofx/Makefile
src/import-export/ofx/test/Makefile
src/import-export/csv/Makefile
src/import-export/log-replay/Makefile
src/import-export/aqbanking/Makefile
src/import-export/aqbanking/schemas/Makefile
src/import-export/hbci/Makefile
src/import-export/hbci/glade/Makefile
src/import-export/hbci/schemas/Makefile
src/import-export/hbci/test/Makefile
src/libqof/Makefile
src/libqof/qof/Makefile
src/libqof/backend/Makefile
src/libqof/backend/file/Makefile
src/optional/Makefile
src/optional/python-bindings/Makefile
src/optional/python-bindings/tests/Makefile
src/optional/xsl/Makefile
src/pixmaps/Makefile
src/quotes/Makefile
src/register/Makefile
src/register/ledger-core/Makefile
src/register/ledger-core/test/Makefile
src/register/register-core/Makefile
src/register/register-core/test/Makefile
src/register/register-gnome/Makefile
src/register/register-gnome/test/Makefile
src/report/Makefile
src/report/report-gnome/Makefile
src/report/report-gnome/test/Makefile
src/report/report-system/Makefile
src/report/report-system/test/Makefile
src/report/standard-reports/Makefile
src/report/standard-reports/test/Makefile
src/report/locale-specific/Makefile
src/report/locale-specific/us/Makefile
src/report/locale-specific/us/test/Makefile
src/report/stylesheets/Makefile
src/report/stylesheets/test/Makefile
src/report/utility-reports/Makefile
src/report/utility-reports/test/Makefile
src/scm/Makefile
src/scm/gnumeric/Makefile
src/tax/Makefile
src/tax/us/Makefile
src/tax/us/test/Makefile
src/test-core/Makefile
src/business/Makefile
src/business/business-core/Makefile
src/business/business-core/sql/Makefile
src/business/business-core/test/Makefile
src/business/business-core/xml/Makefile
src/business/business-utils/Makefile
src/business/dialog-tax-table/Makefile
src/business/business-gnome/Makefile
src/business/business-gnome/glade/Makefile
src/business/business-gnome/schemas/Makefile
src/business/business-gnome/ui/Makefile
src/business/business-ledger/Makefile
src/business/business-reports/Makefile
dnl # non-makefiles
dnl # Please read doc/build-system before adding *anything* here
,
dnl # commands go here, but we don't have any right now
)
AC_OUTPUT
if test x${DBI_DIR} != x; then
components="$components dbi"
fi
if test x${OFX_DIR} != x; then
components="$components ofx"
fi
if test x${AQBANKING_DIR} != x; then
components="$components $AQBANKING_DIR"
fi
if test x${PYTHON_DIR} != x; then
components="$components python-bindings"
fi
AC_MSG_RESULT([
Options detected/selected
-------------------------
gnucash version ...... : $VERSION
Build for host ....... : $host
Optional components... : $components
HTML engine .......... : $with_html_engine
Extra Warnings ....... : $warnFLAGS
CPPFLAGS ............. : $CPPFLAGS
CFLAGS ............... : $CFLAGS
LDFLAGS .............. : $LDFLAGS
prefix................ : ${prefix}
])