## -*-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.0.99], [gnucash-devel@gnucash.org])
AC_CONFIG_HEADERS(config.h)
AC_CONFIG_SRCDIR(src/engine/Transaction.h)

AC_CONFIG_HEADERS(gsf-config.h)
AC_CONFIG_HEADERS(goffice-config.h)
AC_CONFIG_HEADERS(goffice-features.h)

# Initialize automake -- make sure we have at least version 1.9
AM_INIT_AUTOMAKE(1.9)

# 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
  if test -z $(echo $flag | sed -e 's,-O.,,'); then
    USER_OPTIMIZATION="$USER_OPTIMIZATION ${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
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 fr hu it ja nb ne nl pl pt_BR pt ro ru rw sk sv ta tr uk 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
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")
##################################################
  
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.28 of SWIG because
  # that's when SWIG added %delobject
  AC_PROG_SWIG(1.3.28)
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")

# These are unavailable on windows/mingw32
AC_CHECK_HEADERS(X11/Xlib.h glob.h)
AC_CHECK_FUNCS(chown gethostname getppid getuid gettimeofday gmtime_r)
AC_CHECK_FUNCS(gethostid link)

# 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 untested GLIB versions (glib >= 2.11.0)])
if $PKG_CONFIG 'glib-2.0 >= 2.11.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 10.x requires some special handling...

# Some systems (MacOS) require -lintl
# not true for darwin 10.3 - halts the build.
#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* | darwin1*)
		AC_MSG_RESULT([yes, but too old])
		AC_MSG_ERROR([This platform is not supported, please
update to latest  darwin])
		;;
	darwin*)
		AC_MSG_RESULT([yes, moving on...])
#		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(no)
		;;	
esac


### --------------------------------------------------------------------------
### 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

])
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"
CFLAGS="${GNOME_CFLAGS} ${GUILE_INCS} ${CFLAGS} ${GLIB_CFLAGS}"
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"

# 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"
CFLAGS="${GNOME_CFLAGS} ${GUILE_INCS} ${CFLAGS} ${GLIB_CFLAGS}"
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"


### --------------------------------------------------------------------------
### 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 "(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"

### --------------------------------------------------------------------------
### 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,
  [  --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, [  --with-qof=path           prefix for Query Object Framework - QOF (auto)],
	[gnc_with_qof=$withval], [gnc_with_qof=yes])

# 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}/lib/libqof/qof -I${top_srcdir}/lib/libqof/qof'
	QOF_LIBS='${top_builddir}/lib/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])

### --------------------------------------------------------------------------
### 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_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_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,
  [  --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,
  [  --enable-profile             compile with profiling set],
       CFLAGS="${CFLAGS} -pg"
       LDFLAGS="${LDFLAGS} -pg")

AC_ARG_ENABLE( ref-counts-dumps,
  [  --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) )


### --------------------------------------------------------------------------
### SQL
# Check to see if the user wants to have Postgres support
#
# hack alert ... we should use 'pg_config --includedir' and
# 'pg_config --libdir' to find paths; unfortunately pg_config itself
# is hard to find :-(

AC_ARG_ENABLE( sql,
  [  --enable-sql                 compile with sql support],
  [
    PG_CONFIG=`which pg_config`

    if test "x$PG_CONFIG" = "x" ; then
        PG_CONFIG="/usr/lib/postgresql/bin/pg_config"
    fi

    if test "x$enableval" != "xno" ; then

      PGSQL_CFLAGS=`${PG_CONFIG} --includedir`
      if test "x$PGSQL_CFLAGS" != x; then
	PGSQL_CFLAGS="-I${PGSQL_CFLAGS}"
      fi

      AS_SCRUB_INCLUDE(PGSQL_CFLAGS)
# XXX Fixme: CPPFLAGS are saved but CFLAGS are altered later on and not restored.
      saved_CPPFLAGS="${CPPFLAGS}"
      saved_CFLAGS="${CFLAGS}"
      CPPFLAGS="${CPPFLAGS} ${PGSQL_CFLAGS}"
      AC_CHECK_HEADERS(pgsql/libpq-fe.h postgresql/libpq-fe.h libpq-fe.h)
      if test "x$ac_cv_header_pgsql_libpq_fe_h$ac_cv_header_postgresql_libpq_fe_h$ac_cv_header_libpq_fe_h" = xnonono; then
         AC_MSG_ERROR([Cannot find PostgreSQL headers; won't build sql backend]) 
      else 
        master_dirs="/usr/include /usr/local/include"
        if test "x$ac_cv_header_pgsql_libpq_fe_h" != xno; then
          for dir in $master_dirs; do
              if test -f "$dir/pgsql/libpq-fe.h"; then
                  CFLAGS="${CFLAGS} -I$dir/pgsql"
                  break
	      fi
          done
        elif test "x$ac_cv_header_postgresql_libpq_fe_h" != xno; then
          for dir in $master_dirs; do
              if test -f "$dir/postgresql/libpq-fe.h"; then
                  CFLAGS="${CFLAGS} -I$dir/postgresql"
                  break
              fi
          done
	fi

	AS_SCRUB_INCLUDE(CFLAGS)
        
        PGSQL_LIBS=`${PG_CONFIG} --libdir`
        if test "x$PGSQL_LIBS" != x; then
	  PGSQL_LIBS="-L${PGSQL_LIBS}"
        fi

        saved_LIBS="$LIBS"
 	LIBS="${PGSQL_LIBS} -lpq $LIBS"
        AC_MSG_CHECKING(for libpq)
        AC_TRY_LINK(
          [
	    #include <libpq-fe.h>
	  ],
          [
             PQconnectdb("asdf");
          ],
          [
            AC_MSG_RESULT(yes)
            SQL_DIR=postgres
          ],
          [
            AC_MSG_ERROR([Cannot find PostgreSQL libraries; will not build sql backend]) 
          ]
        )
        LIBS="$saved_LIBS"
      fi
      CPPFLAGS="$saved_CPPFLAGS"
      CFLAGS="$saved_CFLAGS"
    fi
  ]
)

AC_SUBST(PGSQL_CFLAGS)
AC_SUBST(PGSQL_LIBS)
AC_SUBST(SQL_DIR)


### --------------------------------------------------------------------------
### RPC has been removed in gnucash 1.9.0

### --------------------------------------------------------------------------
### OFX
want_ofx=auto
AC_ARG_ENABLE( ofx,
  [  --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, 
	[  --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

    ### Check libofx version
    # Obtain version string
    AC_MSG_CHECKING(for libofx version >= 0.7.0)
    if test x${OFXPREFIX} = x ; then
	ofx_version_output=`ofxdump --version`
    else
	ofx_version_output=`${OFXPREFIX}/bin/ofxdump --version`
    fi
    # Extract version number; output format changed from 0.6.x to 0.7.x
    LIBOFX_VERSION=`echo ${ofx_version_output} | sed 's/\([[^0-9]]*\)\([[0-9]]*\.\)/\2/' `
    LIBOFX_VERSION_MAJOR=`echo ${LIBOFX_VERSION} | cut -d. -f1`
    LIBOFX_VERSION_MINOR=`echo ${LIBOFX_VERSION} | cut -d. -f2`
    # Make sure the numbers are not empty
    if test x${LIBOFX_VERSION_MAJOR} = x ; then
	LIBOFX_VERSION_MAJOR=0
    fi
    if test x${LIBOFX_VERSION_MINOR} = x ; then
	LIBOFX_VERSION_MINOR=0
    fi
    # Now check for >= 0.7.x or >= 1.x.x
    if test "${LIBOFX_VERSION_MAJOR}" -ge 1 -o \
	     "${LIBOFX_VERSION_MINOR}" -ge 7; then
	# This is libofx >= 0.7.x
	AC_MSG_RESULT([found ${LIBOFX_VERSION}])
    else
        if test x${want_ofx} = xyes ; then
	    AC_MSG_ERROR([found ${LIBOFX_VERSION}; Libofx 0.7.0 or newer needed for ofx support])
        else
	    AC_MSG_RESULT([found ${LIBOFX_VERSION}; Libofx 0.7.0 or newer needed for ofx support])
            want_ofx=no
        fi
    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,
  [  --enable-mt940               Obsolete, included in --enable-hbci],
  if test "x$enableval" != "xno" ; then
    AC_MSG_ERROR([--enable-mt940 is obsolete -- all functionality is already included in --enable-hbci])
  fi)

### --------------------------------------------------------------------------
### HBCI
AC_ARG_ENABLE( hbci,
  [  --enable-hbci                compile with HBCI support (needs AqBanking)],
  if test "x$enableval" != "xno" ; then
    HBCI_DIR=hbci
  fi)
if test x${HBCI_DIR} = xhbci ;
then
    # Check for Aqbanking library
    # aqbanking-1.6.0 was released on 2005-09-22
    PKG_CHECK_MODULES(HBCI, aqbanking >= "1.6.0" gwenhywfar, [], [
      AC_AQBANKING(1,6,0)
      if test x${have_aqbanking} != xyes; 
      then
      	AC_MSG_ERROR([Could not find aqbanking. If you use --enable-hbci, you *have* to enable aqbanking.])
      fi
      HBCI_LIBS="${aqbanking_libs}"
      HBCI_CFLAGS="${aqbanking_includes}"
    ])

    # also check for ktoblzcheck
    AC_CHECK_HEADERS(ktoblzcheck.h)
    if test "x$ac_cv_header_ktoblzcheck_h" != xno; then
	HBCI_LIBS="${HBCI_LIBS} -lktoblzcheck"  
    fi

    AS_SCRUB_INCLUDE(HBCI_CFLAGS)
    AC_SUBST(HBCI_LIBS)
    AC_SUBST(HBCI_CFLAGS)
fi
AC_SUBST(HBCI_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,
  [  --enable-locale-specific-tax enable localized tax categories (experimental)],
  AC_DEFINE(LOCALE_SPECIFIC_TAX,1,Enable the experimental locale-specific tax categories) )

### --------------------------------------------------------------------------
### help files

# Used to initialize doc-path.
AC_ARG_WITH( help-prefix,
  [  --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,
  [  --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,
  [  --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,
  [  --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)

# Now check for perl headers
# This appears to be what Perl's ExtUtils::MakeMaker module does, so
# I'm reasonably sure it's correct.
# PERLINCL="/usr/lib/perl5/i386-linux/5.00404"
#
PERLINCL=`$PERL -MConfig -e 'print $Config{"archlibexp"}'`
AC_ARG_WITH( perl-includes, 
  [  --with-perl-includes=DIR  specify where to look for perl includes],
       PERLINCL="$with_perl_includes" )
AC_SUBST(PERLINCL)

# check for doxygen, mostly stolen from http://log4cpp.sourceforge.net/
# ----------------------------------------------------------------------------
AC_DEFUN([BB_ENABLE_DOXYGEN],
[
AC_ARG_ENABLE(doxygen, [  --enable-doxygen             enable documentation generation with doxygen (auto)])
AC_ARG_ENABLE(dot, [  --enable-dot                 use 'dot' to generate graphs in doxygen (auto)])              
AC_ARG_ENABLE(html-docs, [  --enable-html-docs           enable HTML generation with doxygen (yes)], [], [ enable_html_docs=yes])              
AC_ARG_ENABLE(latex-docs, [  --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, 
  [  --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.6)
    AS_SCRUB_INCLUDE(GTK_CFLAGS)
    AC_SUBST(GTK_CFLAGS)
    AC_SUBST(GTK_LIBS)
    HAVE_UNTESTED_GDK=yes
    HAVE_UNTESTED_GTK=yes

    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.15.0)])
    if $PKG_CONFIG 'libgnome-2.0 >= 2.15.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(GNOME_PRINT, libgnomeprint-2.2 libgnomeprintui-2.2)
    AS_SCRUB_INCLUDE(GNOME_PRINT_CFLAGS)
    AC_SUBST(GNOME_PRINT_CFLAGS)
    AC_SUBST(GNOME_PRINT_LIBS)

    PKG_CHECK_MODULES(GLADE, libglade-2.0 >= 2.4)
    AS_SCRUB_INCLUDE(GLADE_CFLAGS)
    AC_SUBST(GLADE_CFLAGS)
    AC_SUBST(GLADE_LIBS)

    # check for gtkhtml 3.x versions.
    gtkhtml=0
    PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.8 , [gtkhtml=1] , [gtkhtml=0])
    if test x$gtkhtml = x0
      then
    	PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.6 , [gtkhtml=1] , [gtkhtml=0])
    	if test x$gtkhtml = x0
    	  then
    	     PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.2 , [gtkhtml=1] , [gtkhtml=0])
    	     if test x$gtkhtml = x0
    	       then 
    	          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, or 3.8)]))
    	    fi
    	fi
    fi
    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,
      [  --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
fi

### ------------------------------------------------------------------------
### GOG/goffice, gsf, etc...
### Only test this if we're building the GUI
if test x${gnc_build_gui} = xtrue ;
then
  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" )
  
  
  dnl @@fixme 
  dnl use both PKG_CHECK_MODULES and `$PKG_CONFIG`; the first importantly sets
  dnl MUMBLE_{LIBS,CFLAGS}...
  dnl Q: What does PKG_CHECK_MODULES create?
  dnl A: Just _CFLAGS and _LIBS, apparently [pkg.m4]
  
  AC_MSG_CHECKING([for libgsf >= 1.12.2])
  if $PKG_CONFIG --silence-errors 'libgsf-1 >= 1.12.2'
  then
    AC_MSG_RESULT(found)
    PKG_CHECK_MODULES(GSF, libgsf-1 >= 1.12.2 libgsf-gnome-1 >= 1.12.2,,)
    AC_DEFINE(HAVE_LIBGSF,1,[System has libgsf-1.12.2 or better])
    HAVE_LIBGSF=yes
  else
    AC_MSG_RESULT(not found.  using internally-packaged libgsf)
    GSF_CFLAGS='-I${top_srcdir}/lib/libgsf-1.12.3'
    GSF_LIBS='${top_builddir}/lib/libgsf-1.12.3/gsf/libgsf-1.la'
    HAVE_LIBGSF=no
  fi
  AM_CONDITIONAL(HAVE_LIBGSF, test "x$HAVE_LIBGSF" = "xyes")
  AC_SUBST(GSF_CFLAGS)
  AC_SUBST(GSF_LIBS)
  
  dnl $4=true => don't die if failure.
  PKG_CHECK_MODULES(GOFFICE, libgoffice-0.3 >= 0.3.0,,true)
  if $PKG_CONFIG --silence-errors 'libgoffice-0.3 >= 0.3.0'
  then
    AC_DEFINE(HAVE_GOFFICE,1,[System has goffice-0.0.4 or better])
    HAVE_GOFFICE=yes
  else
    AC_MSG_RESULT(no)
    PKG_CHECK_MODULES(GOFFICE, libgoffice-1 >= 0.0.4,,true)
    if $PKG_CONFIG --silence-errors 'libgoffice-1 >= 0.0.4'
    then
      AC_DEFINE(HAVE_GOFFICE,1,[System has goffice-0.0.4 or better])
      HAVE_GOFFICE=yes
    else
      AC_MSG_RESULT(using internally-packaged goffice)
      GOFFICE_CFLAGS='-I${top_srcdir}/lib/goffice-0.0.4'
      GOFFICE_LIBS='${top_builddir}/lib/goffice-0.0.4/goffice/libgoffice-1.la'
      HAVE_GOFFICE=no
    fi
  fi
  AM_CONDITIONAL(HAVE_GOFFICE, test "x$HAVE_GOFFICE" = "xyes")
  AC_SUBST(GOFFICE_CFLAGS)
  AC_SUBST(GOFFICE_LIBS)
  
  ##################################################
  # regex needs its own linker flag on win32 platform
  ##################################################
  if test "$platform_win32" = yes; then
    REGEX_LIBS="-lregex"
  else
    REGEX_LIBS=""
  fi
  AC_SUBST(REGEX_LIBS)
  
  ### ------------------------------------------------------------------------
  ### Checks when building internal LIBGSF
  ### +libgsf-1.12.3
  if test "x$HAVE_LIBGSF" != xyes; then
  AC_MSG_NOTICE('internal libgsf configuration...')
  
  m4_define([libgsf_version_major], [1])
  m4_define([libgsf_version_minor], [12])
  m4_define([libgsf_version_micro], [3])
  m4_define([libgsf_version_extra], [])
  m4_define([libgsf_full_version],
      [libgsf_version_major.libgsf_version_minor.libgsf_version_micro[]libgsf_version_extra])
  
  dnl AC_CONFIG_SRCDIR(lib/libgsf-1.12.3/gsf/gsf.h)
  
  AC_SUBST(LIBGSF_MAJOR_VERSION, libgsf_version_major)
  AC_SUBST(LIBGSF_MINOR_VERSION, libgsf_version_minor)
  AC_SUBST(LIBGSF_MICRO_VERSION, libgsf_version_micro)
  
  dnl Version info for libraries = CURRENT:REVISION:AGE
  AC_SUBST(VERSION_INFO,
  m4_eval(libgsf_version_major + libgsf_version_minor)[]dnl
:libgsf_version_micro:libgsf_version_minor)
  dnl NOTE: Above line needs no leading whitespace!  --warlord
  
  AC_FUNC_FSEEKO
  AC_SYS_LARGEFILE
  
  dnl Checks for libraries.
  ifelse([
    If we defined the module lists on the M4 level, we could have problems
    with PKG_CHECK_MODULES from pkgconfig 0.16.0, which double quotes its
    second argument (the module list).
    As a handy workaround, we use shell variables.
  ])
  dnl Modules common to libgsf and libgsf-gnome
  libgsf_reqs="
      gobject-2.0 >= 2.6.0
      glib-2.0 >= 2.6.0
      libxml-2.0 >= 2.4.16
  "
  dnl Modules required for libgsf-gnome
  libgsf_gnome_reqs="
      $libgsf_reqs
      libbonobo-2.0 >= 2.0.0
      gnome-vfs-2.0 >= 2.2.0
      gnome-vfs-module-2.0 >= 2.2.0
  "
  PKG_CHECK_MODULES(LIBGSF, $libgsf_reqs)
  
  AC_CHECK_DECL(fdopen, fdopen_works=yes, fdopen_works=no)
  if test x$fdopen_works = xno ; then
  	unset ac_cv_have_decl_fdopen
  	CFLAGS="$CFLAGS -D_POSIX_SOURCE"
  	AC_MSG_NOTICE([adding -D_POSIX_SOURCE to CFLAGS])
  	AC_CHECK_DECL(fdopen, fdopen_works=yes, fdopen_works=no)
  	if test x$fdopen_works = xno ; then
  		AC_MSG_ERROR([fdopen is not available])
  	fi
  fi
  
  # Unfortunately, -D_POSIX_SOURCE turns off struct timeval on Solaris
  AC_MSG_CHECKING([whether struct timeval is available])
  for try in 1 2; do
  	AC_COMPILE_IFELSE(
  		[AC_LANG_PROGRAM(
  			[[#include <sys/time.h>]],
  			[[struct timeval tv;]])],
  		struct_timeval_works=yes,
  		struct_timeval_works=no)
  	test x$struct_timeval_works = xyes && break
  	# Try this for the second attempt:
  	test x$try = x1 && CFLAGS="$CFLAGS -D__EXTENSIONS__"
  done
  AC_MSG_RESULT($struct_timeval_works)
  if test x$struct_timeval_works = xno ; then
  	AC_MSG_ERROR([struct timeval is not available])
  fi
  
  AC_MSG_CHECKING([whether -D_BSD_SOURCE is needed for caddr_t])
  AC_COMPILE_IFELSE(
  	[AC_LANG_PROGRAM([[#include <sys/types.h>]], [[caddr_t ca]])],
  	need_bsd1=no,
  	need_bsd1=yes)
  AC_MSG_RESULT($need_bsd1)
  
  AC_MSG_CHECKING([whether -D_BSD_SOURCE is needed for lstat])
  AC_LINK_IFELSE([AC_LANG_PROGRAM(
  [[#include <sys/types.h>
  #include <sys/stat.h>
  #include <unistd.h>]],
  [[void *ptr = &lstat]])],
  need_bsd2=no, need_bsd2=yes)
  AC_MSG_RESULT($need_bsd2)
  if test x$need_bsd1 = xyes -o x$need_bsd2 = xyes; then
  	CFLAGS="$CFLAGS -D_BSD_SOURCE"
  fi
  
  AC_TYPE_MODE_T
  AC_CHECK_HEADERS(fcntl.h malloc.h unistd.h io.h)
  AC_FUNC_MMAP
  
  SAVE_CFLAGS=$CFLAGS
  SAVE_LIBS=$LIBS
  CFLAGS="$CFLAGS $LIBGSF_CFLAGS"
  LIBS="$LIBGSF_LIBS $LIBS"
  AC_MSG_CHECKING([for g_chmod])
  AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <glib/gstdio.h>]], [[(void)g_chmod("/xxx",0777);]])],
                 [AC_DEFINE(HAVE_G_CHMOD, 1, [Define if g_chmod is available as macro or function])
  		AC_MSG_RESULT(yes)],
  	       [AC_MSG_RESULT(no)])
  AC_MSG_CHECKING([for g_access])
  AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <glib/gstdio.h>]], [[(void)g_access("/xxx",0777);]])],
                 [AC_DEFINE(HAVE_G_ACCESS, 1, [Define if g_access is available as macro or function])
  		AC_MSG_RESULT(yes)],
  	       [AC_MSG_RESULT(no)])
  CFLAGS=$SAVE_CFLAGS
  LIBS=$SAVE_LIBS
  
  AC_MSG_CHECKING([whether macro S_ISREG is available])
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
  [[#include <sys/types.h>
  #include <sys/stat.h>]],
  [[S_ISREG(S_IFMT);]])],
  	[macro_s_isreg=yes],
  	[AH_TEMPLATE([S_ISREG], [Define S_ISREG if stat.h doesn't])
  	 AC_DEFINE([S_ISREG(m)], [(((m) & S_IFMT) == S_IFREG)])
  	 macro_s_isreg=no])
  AC_MSG_RESULT($macro_s_isreg)
  
  ##################################################
  # Checks for gtk-doc and docbook-tools
  ##################################################
  # gtk_doc_installed=true
  #ifdef([GTK_DOC_CHECK],[GTK_DOC_CHECK([1.0])],[gtk_doc_installed=false])
  # I would have liked to conditionalize this, but 
  # that appears to break other things http://bugzilla.gnome.org/show_bug.cgi?id=156399
  # dnl GTK_DOC_CHECK([1.0])
  # dnl AM_CONDITIONAL(GTK_DOC_INSTALLED, $gtk_doc_installed)
  
  dnl ************************************************************************
  # Check for zlib.
  _cppflags=$CPPFLAGS
  _ldflags=$LDFLAGS
  
  Z_DIR= Z_LIBS= Z_CPPFLAGS=
  
  AC_ARG_WITH(zlib,
          [[  --with-zlib=DIR       use libz in DIR]],
          [case $withval in
           yes|no) ;;
           *)     Z_DIR=$withval
                  CPPFLAGS="${CPPFLAGS} -I$withval/include"
                  LDFLAGS="${LDFLAGS} -L$withval/lib"
                  ;;
           esac])
  
  if test "x$with_zlib" != xno; then
          with_zlib=no
          AC_CHECK_HEADER(zlib.h, [AC_CHECK_LIB(z, gzread, [with_zlib=yes])])
  fi
  if test "$with_zlib" = no; then
          AC_MSG_ERROR([*** zlib is required])
  fi
  if test "x$Z_DIR" != "x"; then
          Z_CPPFLAGS="-I$Z_DIR/include"
          case $host in
          *-*-solaris*)   Z_LIBS="-L$Z_DIR/lib -R$Z_DIR/lib -lz" ;;
          *)              Z_LIBS="-L$Z_DIR/lib -lz" ;;
          esac
  else
          Z_LIBS="-lz"
  fi
  AC_SUBST(Z_CPPFLAGS)
  AC_SUBST(Z_LIBS)
  
  CPPFLAGS=${_cppflags}
  LDFLAGS=${_ldflags}
  
  dnl bz2
  dnl
  BZ2_LIBS=
  test_bz2=true
  AC_ARG_WITH(bz2,
  	[  --without-bz2   Build additional libgsf wrappers for BZ2],
  	if test "x$withval" = xno; then
  		test_bz2=false
  	fi
  )
  
  with_bz2=false
  if test "x$test_bz2" = xtrue ; then
     AC_CHECK_LIB(bz2, BZ2_bzDecompressInit, 
  		bz2_ok=yes,
  		bz2_ok=no
  		AC_MSG_WARN(*** BZ2 support disabled (BZ2 library not found) ***))
  
     if test "$bz2_ok" = yes; then
        AC_MSG_CHECKING([for bzlib.h])
        AC_PREPROC_IFELSE(
  	[AC_LANG_SOURCE(
  	[[#include <stdio.h>
  	#undef PACKAGE
  	#undef VERSION
  	#undef HAVE_STDLIB_H
  	#include <bzlib.h>]])],
          bz2_ok=yes,
          bz2_ok=no)
        AC_MSG_RESULT($bz2_ok)
     fi
  
     if test "$bz2_ok" = yes; then
  	AC_DEFINE(HAVE_BZ2, 1, [Is bzip2 available and enabled])
  	BZ2_LIBS="-lbz2"
     else
  	AC_MSG_WARN(*** BZ2 support disabled (BZ2 header not found) ***)
     fi
  else
     AC_MSG_WARN([BZ2 support disabled, as requested (Use --with-bz2 to enable)])
  fi
  
  AC_SUBST(BZ2_LIBS)
  
  dnl *************************************************************************
  
  dnl gnome
  dnl
  want_gnome=yes
  #dnl AC_ARG_WITH(gnome,
  #dnl 	[--{with,without}-gnome   Build additional wrappers for GNOME-VFS and BONOBO],
  #dnl	[case $withval in
  #dnl	yes) want_gnome=yes;;
  #dnl	no) want_gnome=no;;
  #dnl	esac[]dnl
  #dnl])
  have_gnome=no
  if test x$want_gnome = xno ; then 
      AC_MSG_WARN([GNOME support disabled, as requested (Use --with-gnome to enable)])
  else
      PKG_CHECK_MODULES(LIBGSF_GNOME, $libgsf_gnome_reqs,
  	[have_gnome=yes],
  	[if test x$want_gnome = xyes; then
  	    AC_MSG_ERROR([GNOME support requested, but not available.])
  	 else
  	    AC_MSG_WARN([GNOME support disabled, unable to find required version of VFS and/or Bonobo])
  	 fi])
  fi
  AM_CONDITIONAL(WITH_LIBGSF_GNOME, test x$have_gnome = xyes)
  
  dnl # LDFLAGS="-no-undefined $LDFLAGS"
  
  # turn off unneeded python support
  AM_CONDITIONAL(WITH_PYTHON, false)
  
  else
  
  # dnl AM_CONDITIONAL(GTK_DOC_INSTALLED, false)
  # dnl  AM_CONDITIONAL(ENABLE_GTK_DOC, false)
  # dnl  AM_CONDITIONAL(GTK_DOC_USE_LIBTOOL, false)
  AM_CONDITIONAL(WITH_LIBGSF_GNOME, false)
  # dnl AM_CONDITIONAL(WITH_GCONF, false)
  AM_CONDITIONAL(WITH_PYTHON, false)
  
  fi
  
  ### -libgsf-1.12.3
  ### 
  ### ------------------------------------------------------------------------
  ### Checks when building internal goffice
  ### +goffice-0.0.4
  
  if test "x$HAVE_GOFFICE" != xyes; then
  
  AC_MSG_NOTICE('internal goffice configuration...')
  
  m4_define([goffice_version_epoch], [0])
  m4_define([goffice_version_major], [0])
  m4_define([goffice_version_minor], [4])
  m4_define([goffice_version_extra], [])
  m4_define([goffice_full_version],
      [goffice_version_epoch.goffice_version_major.goffice_version_minor[]goffice_version_extra])
  
  AC_CONFIG_SRCDIR(lib/goffice-0.0.4/goffice/goffice.h)
  
  AC_SUBST(GOFFICE_LIB_VERSION,
  m4_eval(goffice_version_epoch + goffice_version_major)[]dnl
:goffice_version_minor:goffice_version_major)
  dnl NOTE: Above line needs no leading whitespace!  --warlord
  dnl
  dnl Make sure these two won't clash.  Put the following to goffice-config.h:
  AH_BOTTOM([/* Don't include goffice-features.h, it's a subset of goffice-config.h. */
  #define GOFFICE_FEATURES_H])
  
  dnl We use $host_os:
  dnl AC_CANONICAL_HOST
  
  AC_ISC_POSIX
  AC_PROG_YACC
  AM_PROG_LEX
  AM_PROG_LIBTOOL
  AC_STDC_HEADERS
  AC_SYS_LARGEFILE
  
  dnl Propagate Gnome-specific variable ACLOCAL_FLAGS to Makefile.
  AC_SUBST(ACLOCAL_AMFLAGS, $ACLOCAL_FLAGS)
  
  dnl The first call to PKG_CHECK_MODULES is inside an `if.'
  dnl We have to call PKG_PROG_PKG_CONFIG explicitly; otherwise it would
  dnl get expanded just before the first occurence of PKG_CHECK_MODULES
  dnl and might escape execution.
  dnl PKG_PROG_PKG_CONFIG
  
  dnl *****************************
  #	libgsf-1		>= 1.12.2
  goffice_reqs="
  	glib-2.0		>= 2.6.4
  	gobject-2.0		>= 2.6.4
  	gmodule-2.0		>= 2.6.4
  	libxml-2.0		>= 2.4.12
  	pango			>= 1.8.1
  	pangoft2		>= 1.8.1
  "
  goffice_gtk_reqs="
  	gtk+-2.0		>= 2.6.0
  	libglade-2.0		>= 2.3.6
  	libgnomeprint-2.2	>= 2.8.0
  	libart-2.0		>= 2.3.11
  "
  goffice_gnome_reqs="
  	gconf-2.0
  	libgnomeui-2.0		>= 2.0.0
  	libgsf-gnome-1		>= 1.12.2
  "
  dnl Should we use cairo ? no
  goffice_with_cairo=false
  cairo_msg="Disabled"
  
  dnl *******************
  dnl Should we use gtk ?
  dnl *******************
  goffice_with_gtk=true
  #dnl AC_ARG_WITH(gtk, [  --without-gtk           Build without UI])
  #dnl if test "x$with_gtk" = xno; then
  #dnl 	ui_msg="None (Gtk disabled by request)"
  #dnl	goffice_with_gtk=false
  #dnl else
  	dnl We shouldn't silently default to --without-gtk.
  	dnl If the requirements are not met, fail.
  	ui_msg="Gtk"
  	PKG_CHECK_MODULES(GOFFICE_GTK, [$goffice_gtk_reqs])
  #dnl fi 
  
  goffice_with_gnome=$goffice_with_gtk
  if test "x$goffice_with_gtk" = "xtrue" ; then
  	AC_DEFINE(WITH_GTK, 1, [Define if UI is built])
  	goffice_reqs="$goffice_reqs $goffice_gtk_reqs"
  
  	dnl ************************************
  	dnl Are the GNOME extensions available ?
  	dnl ************************************
  
  	goffice_with_gnome=true
  	#dnl AC_ARG_WITH(gnome,
  	#dnl	[  --{with,without}-gnome  Use GNOME extensions],
  	#dnl	[if test "x$withval" = xno; then
  	#dnl		goffice_with_gnome=false
  	#dnl		ui_msg="Gtk+ (Gnome disabled by request)"
  	#dnl	fi]
  	#dnl)
  	if test "x$goffice_with_gnome" = "xtrue"; then
  		PKG_CHECK_MODULES(GOFFICE_GNOME, [$goffice_gnome_reqs],
  			[ui_msg="Gnome"],
  			[ui_msg="Gtk (missing gnome dependencies)" ; goffice_with_gnome=false])
  	fi
  
  	if test "x$goffice_with_gnome" = "xtrue"; then
  		AC_DEFINE(WITH_GNOME, 1, [Define if GNOME extensions are available])
  		goffice_reqs="$goffice_reqs $goffice_gnome_reqs"
  	fi
  fi
  AM_CONDITIONAL(WITH_CAIRO, $goffice_with_cairo)
  AM_CONDITIONAL(WITH_GTK,   $goffice_with_gtk)
  AM_CONDITIONAL(WITH_GNOME, $goffice_with_gnome)
  
  dnl ****************************
  dnl now that we have selected out libraries the whole collection in one
  dnl shot so that we can have a nice neat compile/link line
  dnl ****************************
  
  PKG_CHECK_MODULES(GOFFICE_DEPS, $goffice_reqs)
  
  dnl  Checks for Xft/XRender
  AC_CHECK_LIB(Xrender, XRenderFindFormat, 
  	[AC_SUBST(RENDER_LIBS, "-lXrender -lXext")
  	 AC_DEFINE(HAVE_RENDER, 1, [Define if libXrender is available.])],
  	[AC_SUBST(RENDER_LIBS, "")],
  	[-lXext])
  
  dnl *****************************
  AC_MSG_CHECKING([for Win32 platform])
  with_win32=no
  case $host_os in
    mingw* | pw32* | cygwin*)
      with_win32=yes
      GOFFICE_PLUGIN_LDFLAGS="-Wl,--enable-runtime-pseudo-relo,--export-all-symbols $GOFFICE_PLUGIN_LDFLAGS"
      AC_ARG_VAR(WINDRES, [The windres executable (used by win32 builds only).])
      AC_CHECK_TOOL(WINDRES, windres, :)
      ;;
  esac
  AC_MSG_RESULT($with_win32)
  AM_CONDITIONAL(WITH_WIN32, test x$with_win32 = xyes)
  
  dnl *****************************
  dnl FIXME: perhaps declare with AC_ARG_VAR?
  dnl	   If we use the initial value of a variable, we have to make it precious.
  dnl
  GOFFICE_PLUGIN_LDFLAGS="-avoid-version -no-undefined $GOFFICE_PLUGIN_LDFLAGS"
  GOFFICE_PLUGIN_LIBADD="\$(top_builddir)/lib/goffice-0.0.4/goffice/libgoffice-1.la $GOFFICE_DEPS_LIBS $GOFFICE_PLUGIN_LIBADD"
  AC_SUBST(GOFFICE_PLUGIN_LDFLAGS)
  AC_SUBST(GOFFICE_PLUGIN_LIBADD)
  
  dnl ****************************
  dnl prep the pixmap generator
  dnl ****************************
  
  AC_ARG_VAR(GLIB_GENMARSHAL, [The glib-genmarshal executable.])
  AC_CHECK_PROG(GLIB_GENMARSHAL, glib-genmarshal, glib-genmarshal)
  
  AC_ARG_VAR(GDK_PIXBUF_CSOURCE, [The gdk-pixbuf-csource executable.])
  AC_CHECK_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, gdk-pixbuf-csource)
  
  dnl M_PI
  AC_MSG_CHECKING([whether M_PI is available])
  AC_TRY_COMPILE([#include <math.h>], [double f = M_PI], works_without_bsd_source=yes, works_without_bsd_source=no)
  AC_MSG_RESULT($works_without_bsd_source)
  
  if test x$works_without_bsd_source = xno ; then
  	CFLAGS="$CFLAGS -D_BSD_SOURCE"
  	AC_MSG_CHECKING([whether M_PI is available with -D_BSD_SOURCE])
  	AC_TRY_COMPILE([#include <math.h>], [double f = M_PI], m_pi_works=yes, m_pi_works=no)
  	AC_MSG_RESULT($m_pi_works)
  	if test x$m_pi_works = xno ; then
  		AC_MSG_ERROR([M_PI is not available])
  	fi
  fi
  
  dnl
  dnl On Solaris finite() needs ieeefp.h
  dnl Either of these seem to signal IEEE754 math, see mathfunc.c
  dnl
  AC_CHECK_HEADERS(ieeefp.h ieee754.h)
  
  dnl Check for some functions
  AC_CHECK_FUNCS(random drand48 finite memmove mkdtemp uname times sysconf)
  
  dnl FIXME: Does this really belong here?
  AC_CHECK_FUNC(bind_textdomain_codeset,,[AC_CHECK_LIB(intl,bind_textdomain_codeset)])
  
  dnl isfinite is a macro on HPUX
  AC_TRY_COMPILE([#include <math.h>], [int a = isfinite(0.0)],
  	[AC_DEFINE(HAVE_ISFINITE, 1,
  		[Define if the isfinite() macro is available]
  	 )
  	], [])
  
  dnl
  dnl On BSD, we seem to need -lm for finite
  dnl
  if test x$ac_cv_func_finite = xno; then
    AC_CHECK_LIB(m, finite,
          [AC_DEFINE(HAVE_FINITE, 1,
  		[Define if the finite function is available]
  	 )
           LIBS="$LIBS -lm"])
  fi
  
  dnl check for complete locale implementation
  AC_CHECK_HEADERS(langinfo.h)
  
  dnl Handle systems that have stuff in -lm.
  AC_CHECK_FUNCS(log)
  if test x$ac_cv_func_log = xno; then
    AC_CHECK_LIB(m, log,
          [AC_DEFINE(HAVE_LOG, 1,
  		[Define if the log function is available]
  	 )
           LIBS="$LIBS -lm"])
  fi
  
  AC_DEFUN([GOFFICE_CHECK_FUNC],
  [AC_CHECK_FUNC([$1],
  	[],
  	[AC_DEFINE([GOFFICE_SUPPLIED_]AS_TR_CPP([$1]),
  		1,
  		[Define if G Office supplies $1.])])dnl
  ])
  GOFFICE_CHECK_FUNC(log1p)
  GOFFICE_CHECK_FUNC(expm1)
  GOFFICE_CHECK_FUNC(asinh)
  GOFFICE_CHECK_FUNC(acosh)
  GOFFICE_CHECK_FUNC(atanh)
  
  float_msg=no
  EXTRA_LIBS= EXTRA_INCLUDES=
  AC_C_LONG_DOUBLE
  if test x$ac_cv_c_long_double = xyes; then
      have_mandatory_funcs=yes
      need_sunmath=0
      sunmathlinkstuff='-L/opt/SUNWspro/lib -R/opt/SUNWspro/lib -lsunmath'
      for ldfunc in fabsl logl log10l ceill floorl powl isnanl finitel; do
  	    AC_CHECK_FUNC($ldfunc,
  		  ,
  		  [AC_CHECK_LIB(m,
  		      $ldfunc,
  		      ,
  		      [AC_CHECK_LIB(sunmath,
  			  $ldfunc,
  			  [ if test x$need_sunmath = x0; then
  				# FIXME: better idea?
  				LDFLAGS="$LDFLAGS $sunmathlinkstuff"
  				sunmathinclude=`ls -d /opt/SUNWspro/*/include/cc | sed '$!d'`
  				CPPFLAGS="$CPPFLAGS -I$sunmathinclude"
  			    fi
  			    need_sunmath=1 ],
  			  [have_mandatory_funcs=no],
  			  [-L/opt/SUNWspro/lib $GOFFICE_DEPS_LIBS])])])
      done
      if test x$need_sunmath = x1; then
  	EXTRA_LIBS="$EXTRA_LIBS $sunmathlinkstuff"
  	EXTRA_INCLUDES="$EXTRA_INCLUDES -I$sunmathinclude"
  	AC_CHECK_HEADERS([sunmath.h floatingpoint.h],
  			 ,
  			 [AC_MSG_WARN([Long doubles require the $ac_header header.])
  			  have_mandatory_funcs=no])
      fi
      unset need_sunmath
      unset sunmathlinkstuff
      unset sunmathinclude
  
      GOFFICE_CHECK_FUNC(modfl)
      GOFFICE_CHECK_FUNC(ldexpl)
      GOFFICE_CHECK_FUNC(frexpl)
  
      AC_CHECK_FUNCS(strtold)
      if test "$ac_cv_func_strtold" = yes; then
  	AC_MSG_CHECKING([if we must prototype strtold ourselves])
  	AC_TRY_RUN([#include <stdlib.h>
  		int main ()
  		{
  			const char *s = "+3.1415e+0";
  			char *theend;
  			long double res = strtold (s, &theend);
  			return !(*theend == 0 && finitel (res) &&
  				 res >= 3.14 && res <= 3.15);
  		}],
  		[AC_MSG_RESULT(no)],
  		[AC_MSG_RESULT(yes)
  		 AC_DEFINE([GOFFICE_SUPPLIED_STRTOLD], 1,
  			   [Define if G Office supplies strtold.])
  		],
  		[AC_MSG_RESULT(assuming not)])
      else 
  	AC_DEFINE([GOFFICE_SUPPLIED_STRTOLD], 1,
  		  [Define if G Office supplies strtold.])
  	AC_CHECK_FUNCS(string_to_decimal decimal_to_quadruple)
  	if test "x$ac_cv_func_string_to_decimal" != "xyes" || \
  	   test "x$ac_cv_func_decimal_to_quadruple" != "xyes" || \
  	   test "x$ac_cv_header_floatingpoint_h" != "xyes"; then
  		AC_MSG_WARN([You lack the strtold function -- precision will be impaired])
  	fi
      fi
      if test "$have_mandatory_funcs" = yes; then
  	float_msg=yes
  	AC_DEFINE([GOFFICE_WITH_LONG_DOUBLE], 1,
  		  [Define if G Office supports long double.])
      else
  	AC_MSG_WARN([Long double support disabled because of library problems])
      fi
      unset have_mandatory_funcs
  fi
  AC_SUBST(EXTRA_LIBS)
  AC_SUBST(EXTRA_INCLUDES)
  
  dnl ******************
  dnl * Config defaults
  dnl ******************
  dnl
  dnl These are changed in goffice.c for WIN32 packages
  AC_SUBST(goffice_datadir, '${datadir}/gnucash/goffice/${GOFFICE_VERSION}')
  AC_SUBST(goffice_libdir, '${libdir}/gnucash/goffice/${GOFFICE_VERSION}')
  AC_SUBST(goffice_icondir, '${datadir}/gnucash/pixmaps/goffice')
  AC_SUBST(goffice_localedir, '${prefix}/${DATADIRNAME}/locale')
  dnl
  AC_SUBST(goffice_plugindir, '${goffice_libdir}/plugins')
  AC_SUBST(goffice_gladedir, '${goffice_datadir}/glade')
  
  dnl Export to goffice-config.h and goffice-features.h
  AC_DEFINE(GOFFICE_VERSION, "goffice_full_version",
  	[The version number of this release, possibly with additional suffix])
  AC_DEFINE(GO_VERSION_EPOCH, goffice_version_epoch,
  	[The Epoch of this release])
  AC_DEFINE(GO_VERSION_MAJOR, goffice_version_major,
  	[The Major version number of this release])
  AC_DEFINE(GO_VERSION_MINOR, goffice_version_minor,
  	[The Minor version number of this release])
  AC_DEFINE(GO_VERSION_EXTRA, "goffice_version_extra",
  	[Extra, possibly empty tag for this release])
  
  else
  
  AM_CONDITIONAL(WITH_CAIRO, false)
  AM_CONDITIONAL(WITH_GTK,   false)
  AM_CONDITIONAL(WITH_GNOME, false)
  AM_CONDITIONAL(WITH_WIN32, false)
  
  fi

  ### -goffice-0.0.4
  ### ------------------------------------------------------------------------
else
  ### A bunch of am conditionals that need to be set
  AM_CONDITIONAL(HAVE_GTK_2_10, false)
  AM_CONDITIONAL(HAVE_LIBGSF, false)
  AM_CONDITIONAL(HAVE_GOFFICE, false)
  AM_CONDITIONAL(WITH_LIBGSF_GNOME, false)
  AM_CONDITIONAL(WITH_PYTHON, false)

  AM_CONDITIONAL(WITH_CAIRO, false)
  AM_CONDITIONAL(WITH_GTK,   false)
  AM_CONDITIONAL(WITH_GNOME, false)
  AM_CONDITIONAL(WITH_WIN32, 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,
  [  --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,
  [  --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,
  [  --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,
  [  --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)
#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)

### --------------------------------------------------------------------------
### GnuCash flags and libs configuration

GNUCASH_ENGINE_BASE_LIBS="${GLIB_LIBS}"
GNUCASH_ENGINE_LIBS="-L${pkglibdir} ${GNUCASH_ENGINE_BASE_LIBS} ${GUILE_LIBS} -lgncmod-engine -lgnc-module"

GNUCASH_ENGINE_BASE_CFLAGS="-DGNUCASH ${GLIB_CFLAGS} ${GUILE_INCS}"
GNUCASH_ENGINE_CFLAGS="${GNUCASH_ENGINE_BASE_CFLAGS}"

AC_SUBST(GNUCASH_ENGINE_BASE_LIBS)
AC_SUBST(GNUCASH_ENGINE_LIBS)
AC_SUBST(GNUCASH_ENGINE_BASE_CFLAGS)
AC_SUBST(GNUCASH_ENGINE_CFLAGS)

GNUCASH_APP_UTILS_CFLAGS="${GNUCASH_ENGINE_CFLAGS}"
GNUCASH_APP_UTILS_LIBS="${GNUCASH_ENGINE_LIBS} -lgncmod-calculation -lgncmod-app-utils"

AC_SUBST(GNUCASH_APP_UTILS_CFLAGS)
AC_SUBST(GNUCASH_APP_UTILS_LIBS)

GNUCASH_NETWORK_UTILS_CFLAGS="${GLIB_CFLAGS} ${GHTTP_CFLAGS} ${GNOME_INCLUDEDIR}"
GNUCASH_NETWORK_UTILS_LIBS="${GHTTP_LIBS} ${GNOME_LIBDIR} ${GNOME_LIBS} ${GNOMEUI_LIBS} -lgncmod-network-utils"

AC_SUBST(GNUCASH_NETWORK_UTILS_CFLAGS)
AC_SUBST(GNUCASH_NETWORK_UTILS_LIBS)

GNUCASH_GNOME_UTILS_CFLAGS="${GNUCASH_APP_UTILS_CFLAGS} ${GNUCASH_NETWORK_UTILS_CFLAGS} ${GNOME_PRINT_CFLAGS} ${GNOME_INCLUDEDIR} ${GDK_PIXBUF_CFLAGS}"
GNUCASH_GNOME_UTILS_LIBS="${GNUCASH_APP_UTILS_LIBS} ${GNUCASH_NETWORK_UTILS_LIBS} ${GNOME_LIBDIR} ${GNOMEUI_LIBS} ${GNOME_PRINT_LIBS} ${GTKHTML_LIBS} ${GLADE_LIBS} ${GDK_PIXBUF_LIBS} -lgncmod-gnome-utils"

AC_SUBST(GNUCASH_GNOME_UTILS_CFLAGS)
AC_SUBST(GNUCASH_GNOME_UTILS_LIBS)

GNUCASH_REGISTER_CORE_CFLAGS="${GNUCASH_GNOME_UTILS_CFLAGS}"
GNUCASH_REGISTER_CORE_LIBS="${GNUCASH_GNOME_UTILS_LIBS} -lgncmod-register-core"

AC_SUBST(GNUCASH_REGISTER_CORE_CFLAGS)
AC_SUBST(GNUCASH_REGISTER_CORE_LIBS)

AM_CONDITIONAL(GNUCASH_SEPARATE_BUILDDIR, test "x${srcdir}" != "x.")
AM_CONDITIONAL(GNC_FALSE, false)

###-------------------------------------------------------------------------
### 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,
    [  --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/da/Makefile
          accounts/de_AT/Makefile
          accounts/de_CH/Makefile
          accounts/de_DE/Makefile
          accounts/el_GR/Makefile
          accounts/es_ES/Makefile
          accounts/fr_CA/Makefile
          accounts/fr_CH/Makefile
          accounts/fr_FR/Makefile
          accounts/hu_HU/Makefile
          accounts/it/Makefile
          accounts/nb/Makefile
          accounts/pt_BR/Makefile
          accounts/pt_PT/Makefile
          accounts/sk/Makefile
          accounts/tr_TR/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/libgsf-1.12.3/Makefile
          lib/libgsf-1.12.3/gsf/Makefile
          lib/libgsf-1.12.3/gsf-gnome/Makefile
          lib/libgsf-1.12.3/gsf-win32/Makefile
          lib/libgsf-1.12.3/tests/Makefile
          lib/libgsf-1.12.3/python/Makefile
          lib/libgsf-1.12.3/gsf/version.c
          lib/libgsf-1.12.3/libgsf-1.pc
          lib/libgsf-1.12.3/libgsf-1.spec
          lib/libgsf-1.12.3/libgsf-gnome-1.pc
          lib/libgsf-1.12.3/libgsf-gnome-1.spec
          lib/libgsf-1.12.3/libgsf-win32-1.pc
          lib/libgsf-1.12.3/libgsf-zip
          lib/goffice-0.0.4/Makefile
          lib/goffice-0.0.4/libgoffice-1.pc
          lib/goffice-0.0.4/goffice/Makefile
          lib/goffice-0.0.4/goffice/app/Makefile
          lib/goffice-0.0.4/goffice/utils/Makefile
          lib/goffice-0.0.4/goffice/data/Makefile
          lib/goffice-0.0.4/goffice/gtk/Makefile
          lib/goffice-0.0.4/goffice/graph/Makefile
          lib/goffice-0.0.4/goffice/drawing/Makefile
          lib/goffice-0.0.4/goffice/ms-compat/Makefile
          lib/goffice-0.0.4/goffice/cut-n-paste/Makefile
          lib/goffice-0.0.4/goffice/cut-n-paste/foocanvas/Makefile
          lib/goffice-0.0.4/goffice/cut-n-paste/pcre/Makefile
          lib/goffice-0.0.4/plugins/Makefile
          lib/goffice-0.0.4/plugins/plot_barcol/Makefile
          lib/goffice-0.0.4/plugins/plot_pie/Makefile
          lib/goffice-0.0.4/plugins/plot_radar/Makefile
          lib/goffice-0.0.4/plugins/plot_xy/Makefile
          lib/goffice-0.0.4/plugins/plot_surface/Makefile
          lib/goffice-0.0.4/plugins/plot_boxes/Makefile
          lib/goffice-0.0.4/plugins/reg_linear/Makefile
          lib/goffice-0.0.4/pixmaps/Makefile
          lib/goffice-0.0.4/tests/Makefile
          lib/libqof/Makefile
          lib/libqof/qof/Makefile
          lib/libqof/backend/Makefile
          lib/libqof/backend/file/Makefile
          packaging/Makefile
	  packaging/win32/gnucash.iss
          src/Makefile
          src/app-utils/Makefile
          src/app-utils/test/Makefile
          src/backend/Makefile
          src/backend/file/Makefile
          src/backend/file/test/Makefile
          src/backend/file/test/test-files/Makefile
          src/backend/file/test/test-files/xml2/Makefile
          src/backend/postgres/Makefile
          src/backend/postgres/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/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/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/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/log-replay/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/network-utils/Makefile
          src/network-utils/test/Makefile
          src/optional/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/scm/printing/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/test/Makefile
          src/business/business-core/file/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

pkgdatadir=${prefix}/${PACKAGE}
output_qof_prefix=`eval eval eval echo $QOF_PREFIX`
output_qof_lib_dir=`eval eval eval echo $QOF_LIB_DIR`
output_qof_xml_dir=`eval eval eval echo $QOF_XML_DIR`

if test x${SQL_DIR} != x; then
components="$components sql"
fi
if test x${OFX_DIR} != x; then
components="$components ofx"
fi
if test x${HBCI_DIR} != x; then
components="$components hbci"
fi

AC_MSG_RESULT([
  Options detected/selected
  -------------------------
  gnucash version ...... : $VERSION
  Build for host ....... : $host
  Optional components....:$components
  Extra Warnings ....... : $warnFLAGS
  CPPFLAGS ............. : $CPPFLAGS
  CFLAGS ............... : $CFLAGS
  LDFLAGS .............. : $LDFLAGS
  prefix.................: ${prefix}
  Native libgsf..........: $HAVE_LIBGSF
  Native goffice.........: $HAVE_GOFFICE
  QOF support ...........: $QOF_VERSION
  QOF location ..........: $output_qof_prefix
  QOF library dir .......: $output_qof_lib_dir
  QOF backend config ....: $output_qof_xml_dir


])
