mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-26 10:51:09 -06:00
953d77f0ef
* lib/libqof/qof/Makefile.am: change the name of our qof library * lib/libqof/backend/file/Makefile.am: change the name of our qsf library * lib/libqof/qof/qof.h: point to the newly named qsf library * configure.in: Error out if the user calls --enable-qof Change the name of the internal qof library and directories so that our qof can co-exist with a "native" qof git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14032 57a11ea4-9604-0410-9ed3-97b8803252fd
2345 lines
75 KiB
Plaintext
2345 lines
75 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], [1.9.5], [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)
|
|
|
|
# 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/' ]`
|
|
|
|
## 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 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)
|
|
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.])
|
|
])
|
|
])
|
|
|
|
STRUCT_TM_GMTOFF_CHECK
|
|
SCANF_LLD_CHECK
|
|
if test $am_cv_scanf_lld = "no"; then
|
|
SCANF_QD_CHECK
|
|
|
|
if test $am_cv_scanf_qs = "no"; then
|
|
AC_MSG_ERROR([cannot continue, no long long conversion support in scanf])
|
|
fi
|
|
fi
|
|
|
|
AC_CHECK_HEADERS(ltdl.h)
|
|
if test "x$ac_cv_header_ltdl_h" = xno; then
|
|
AC_MSG_ERROR([Cannot find ltdl.h -- libtool-devel (or libtool-ltdl-devel) not installed?])
|
|
fi
|
|
|
|
# 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)
|
|
|
|
### --------------------------------------------------------------------------
|
|
### 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.4.0,,AC_MSG_ERROR([
|
|
*** GLIB >= 2.4 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.6.0)
|
|
if $PKG_CONFIG 'glib-2.0 >= 2.6.0'
|
|
then
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_GLIB26,1,[System has glib 2.6.0 or better])
|
|
HAVE_GLIB26=yes
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
AM_CONDITIONAL(HAVE_GLIB26, test "x$HAVE_GLIB26" = "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_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 and g-wrap version checks (should this be something other than
|
|
### the Gnome check?)
|
|
|
|
GUILE_LIBS=""
|
|
GNOME_CHECK_GUILE
|
|
AS_SCRUB_INCLUDE(GUILE_INCS)
|
|
AC_SUBST(GUILE_LIBS)
|
|
|
|
### --------------------------------------------------------------------------
|
|
### G-wrap (libraries and executable)
|
|
|
|
G_WRAP_COMPILE_ARGS=""
|
|
G_WRAP_LINK_ARGS=""
|
|
|
|
AM_GUILE_VERSION_CHECK(1.6, , , [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_PATH_GWRAP(1.3.3, , [AC_MSG_ERROR([
|
|
|
|
g-wrap does not appear to be installed correctly, or is not new
|
|
enough. GnuCash requires at least version 1.3.3 to build,
|
|
and 1.9.6 to build cleanly with GCC4. If you need to install g-wrap,
|
|
you can find it at http://www.nongnu.org/g-wrap/ .
|
|
])])
|
|
|
|
# Find out what the g-wrap compile and link flags are.
|
|
AC_MSG_CHECKING(for g-wrap compile args)
|
|
G_WRAP_COMPILE_ARGS=`${G_WRAP_CONFIG} --c-compile-args guile`
|
|
AC_MSG_RESULT($G_WRAP_COMPILE_ARGS)
|
|
|
|
AC_MSG_CHECKING(for g-wrap link args)
|
|
G_WRAP_LINK_ARGS=`${G_WRAP_CONFIG} --c-link-args guile`
|
|
# Dear g-wrap: adding -L/usr/lib is very silly. Do not do this.
|
|
G_WRAP_LINK_ARGS=`echo ${G_WRAP_LINK_ARGS} | sed -e 's|-L/usr/lib ||'`
|
|
AC_MSG_RESULT($G_WRAP_LINK_ARGS)
|
|
|
|
AC_MSG_CHECKING(for g-wrap module directory)
|
|
G_WRAP_MODULE_DIR=`${G_WRAP_CONFIG} --guile-module-directory`
|
|
G_WRAP_LIB_DIR=`echo $G_WRAP_MODULE_DIR | sed -e 's|share/guile.*$|lib|'`
|
|
AC_MSG_RESULT($G_WRAP_MODULE_DIR)
|
|
|
|
AC_GWRAP_CHECK_GUILE($G_WRAP_MODULE_DIR)
|
|
|
|
save_CPPFLAGS=$CPPFLAGS
|
|
CPPFLAGS="$CPPFLAGS $GUILE_INCS $G_WRAP_COMPILE_ARGS"
|
|
AC_CHECK_HEADER(g-wrap-wct.h,,
|
|
[AC_MSG_ERROR([
|
|
|
|
cannot find g-wrap-wct.h where g-wrap claims it should be.
|
|
are you on Debian or Ubuntu and still using g-wrap 1.9.6-2?
|
|
See: http://bugzilla.gnome.org/show_bug.cgi?id=330539
|
|
|
|
])])
|
|
CPPFLAGS=$save_CPPFLAGS
|
|
|
|
AC_SUBST(G_WRAP_CONFIG)
|
|
AC_SUBST(G_WRAP_COMPILE_ARGS)
|
|
AC_SUBST(G_WRAP_LINK_ARGS)
|
|
AC_SUBST(G_WRAP_MODULE_DIR)
|
|
AC_SUBST(G_WRAP_LIB_DIR)
|
|
|
|
AS_SCRUB_INCLUDE(CFLAGS)
|
|
|
|
AC_MSG_CHECKING([for (g-wrap gw-standard) guile module])
|
|
if LD_LIBRARY_PATH=$G_WRAP_LIB_DIR:$LD_LIBRARY_PATH \
|
|
GUILE_LOAD_PATH=$G_WRAP_MODULE_DIR \
|
|
${GUILE} -c "(use-modules (g-wrap gw-standard))" > /dev/null 2>&1
|
|
then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_CHECKING([for (g-wrap gw standard) guile module])
|
|
if LD_LIBRARY_PATH=$G_WRAP_LIB_DIR:$LD_LIBRARY_PATH \
|
|
GUILE_LOAD_PATH=$G_WRAP_MODULE_DIR \
|
|
${GUILE} -c "(use-modules (g-wrap gw standard))" > /dev/null 2>&1
|
|
then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_WARN([
|
|
|
|
Unable to find the g-wrap standard module, a.k.a. guile-g-wrap.
|
|
You won't be able to run GnuCash without it!
|
|
|
|
])
|
|
fi
|
|
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)
|
|
])
|
|
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.)
|
|
])
|
|
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")
|
|
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='${libdir}'
|
|
QOF_CFLAGS='-I${top_builddir}/lib/libqof/qof -I${top_srcdir}/lib/libqof/qof'
|
|
QOF_LIBS='${top_builddir}/lib/libqof/qof/libgncqof.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_LIBDIR='${pkglibdir}'
|
|
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_GWRAP_LIBDIR='${GNC_SHAREDIR}/guile-modules/g-wrapped'
|
|
GNC_MODULE_DIR='${pkglibdir}'
|
|
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_GWRAP_LIBDIR)
|
|
AC_SUBST(GNC_INCLUDE_DIR)
|
|
AC_SUBST(GNC_LIBDIR)
|
|
AC_SUBST(GNC_MODULE_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],
|
|
CFLAGS="${CFLAGS} -g"
|
|
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 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 compile with MT940 support (needs --enable-hbci)],
|
|
if test "x$enableval" != "xno" ; then
|
|
MT940_DIR=mt940
|
|
fi)
|
|
if test x${MT940_DIR} = xmt940 ;
|
|
then
|
|
AC_MSG_WARN([MT940 importing support is enabled but is totally experimental!])
|
|
PKG_CHECK_MODULES(HBCI, aqbanking >= "1.3.0", [], [
|
|
# aqbanking-1.3.0 was released on 2005-08-11
|
|
AC_AQBANKING(1,3,0)
|
|
if test x${have_aqbanking} != xyes;
|
|
then
|
|
AC_MSG_ERROR([Could not find aqbanking. If you use --enable-mt940, you *have* to enable aqbanking.])
|
|
fi
|
|
HBCI_LIBS="${aqbanking_libs}"
|
|
HBCI_CFLAGS="${aqbanking_includes}"
|
|
])
|
|
# Note: HBCI_LIBS is changed again below in the --enable-hbci
|
|
# section. So check for mt940 first and *not* the other way round!
|
|
|
|
AS_SCRUB_INCLUDE(HBCI_CFLAGS)
|
|
AC_SUBST(HBCI_LIBS)
|
|
AC_SUBST(HBCI_CFLAGS)
|
|
fi
|
|
AC_SUBST(MT940_DIR)
|
|
|
|
### --------------------------------------------------------------------------
|
|
### 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
|
|
PKG_CHECK_MODULES(HBCI, aqbanking >= "1.0.0", [], [
|
|
AC_AQBANKING(1,0,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
|
|
|
|
AC_ARG_WITH( locale-dir,
|
|
[ --with-locale-dir=PATH specify where to look for locale-specific information],
|
|
LOCALE_DIR="$with_locale_dir",
|
|
LOCALE_DIR="\${prefix}/share/locale")
|
|
|
|
AC_SUBST(LOCALE_DIR)
|
|
|
|
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 $enableval = yes; then
|
|
USE_ETAGS=1
|
|
fi,
|
|
USE_ETAGS=0)
|
|
|
|
if test ${USE_ETAGS} = 1; 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 $enableval = yes; then
|
|
USE_CTAGS=1
|
|
fi,
|
|
USE_CTAGS=0)
|
|
|
|
if test ${USE_CTAGS} = 1; 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
|
|
|
|
|
|
# check for callgrind
|
|
# ----------------------------------------------------------------------------
|
|
AC_CHECK_HEADERS(valgrind/callgrind.h)
|
|
|
|
### --------------------------------------------------------------------------
|
|
### 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.4)
|
|
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 $gtkhtml = 0
|
|
then
|
|
PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.6 , [gtkhtml=1] , [gtkhtml=0])
|
|
if test $gtkhtml = 0
|
|
then
|
|
PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.2 , [gtkhtml=1] , [gtkhtml=0])
|
|
if test $gtkhtml = 0
|
|
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 $enableval = yes; 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.6.0)
|
|
if $PKG_CONFIG 'gtk+-2.0 >= 2.6.0'
|
|
then
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_GTK26,1,[System has gtk 2.6.0 or better])
|
|
HAVE_GTK26=yes
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
AM_CONDITIONAL(HAVE_GTK26, test "x$HAVE_GTK26" = "xyes" )
|
|
|
|
|
|
AC_MSG_CHECKING(for pango version >= 1.8.0)
|
|
if $PKG_CONFIG 'pango >= 1.8.0'
|
|
then
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_PANGO18,1,[System has pango 1.8.0 or better])
|
|
HAVE_PANGO18=yes
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
AM_CONDITIONAL(HAVE_PANGO18, test "x$HAVE_PANGO18" = "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-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
|
|
AM_CONDITIONAL(HAVE_GOFFICE, test "x$HAVE_GOFFICE" = "xyes")
|
|
AC_SUBST(GOFFICE_CFLAGS)
|
|
AC_SUBST(GOFFICE_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
|
|
|
|
dnl 2005-11-19,jsled, this doesn't seem to work... :(
|
|
dnl ifelse(x$HAVE_LIBGSF, xyes,,
|
|
AC_CONFIG_HEADERS(gsf-config.h)
|
|
dnl)
|
|
|
|
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.4.0
|
|
glib-2.0 >= 2.4.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 $fdopen_works = no ; 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 $fdopen_works = no ; 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 $struct_timeval_works = yes && break
|
|
# Try this for the second attempt:
|
|
test $try = 1 && CFLAGS="$CFLAGS -D__EXTENSIONS__"
|
|
done
|
|
AC_MSG_RESULT($struct_timeval_works)
|
|
if test $struct_timeval_works = no ; 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 $need_bsd1 = yes -o $need_bsd2 = yes; 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)
|
|
|
|
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 "$native_win32" = yes)
|
|
|
|
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 "$platform_win32" = yes)
|
|
|
|
##################################################
|
|
# 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 $want_gnome = no ; 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 $want_gnome = yes; 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 $have_gnome = yes)
|
|
|
|
dnl # LDFLAGS="-no-undefined $LDFLAGS"
|
|
|
|
# turn off unneeded python support
|
|
AM_CONDITIONAL(WITH_PYTHON, false)
|
|
|
|
else
|
|
|
|
AM_CONDITIONAL(OS_WIN32, false)
|
|
AM_CONDITIONAL(PLATFORM_WIN32, false)
|
|
# 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 This one is created by autoheader, ...
|
|
AC_CONFIG_HEADERS(goffice-config.h)
|
|
|
|
dnl ... and this one is a small subset, maintained manually,
|
|
dnl which will be installed.
|
|
AC_CONFIG_HEADERS(goffice-features.h)
|
|
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.4.7
|
|
gobject-2.0 >= 2.4.7
|
|
gmodule-2.0 >= 2.4.7
|
|
libxml-2.0 >= 2.4.12
|
|
pango >= 1.6.0
|
|
pangoft2 >= 1.6.0
|
|
"
|
|
goffice_gtk_reqs="
|
|
gtk+-2.0 >= 2.4.13
|
|
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 $with_win32 = yes)
|
|
|
|
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 $works_without_bsd_source = no ; 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 $m_pi_works = no ; 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 $ac_cv_func_finite = no; 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 $ac_cv_func_log = no; 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 $ac_cv_c_long_double = yes; 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 $need_sunmath = 0; 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 $need_sunmath = 1; 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_GTK26, false )
|
|
AM_CONDITIONAL(HAVE_PANGO18, false )
|
|
AM_CONDITIONAL(HAVE_LIBGSF, false)
|
|
AM_CONDITIONAL(HAVE_GOFFICE, false)
|
|
AM_CONDITIONAL(OS_WIN32, false)
|
|
AM_CONDITIONAL(PLATFORM_WIN32, 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 $am_cv_val_LC_MESSAGES = "no"; 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${GNC_MODULE_DIR} -L${GNC_GWRAP_LIBDIR} ${GNUCASH_ENGINE_BASE_LIBS} ${GUILE_LIBS} -lgncmod-engine -lgw-engine -lgw-kvp -lgncmodule"
|
|
|
|
GNUCASH_ENGINE_BASE_CFLAGS="-DGNUCASH ${GLIB_CFLAGS} ${G_WRAP_COMPILE_ARGS}"
|
|
GNUCASH_ENGINE_CFLAGS="${GNUCASH_ENGINE_BASE_CFLAGS} ${GUILE_INCS}"
|
|
|
|
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=
|
|
# These two are because of g-wrap -- it can't avoid unused and uninitialized.
|
|
#warnFLAGS="${warnFLAGS} -Wno-uninitialized"
|
|
#warnFLAGS="${warnFLAGS} -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 -h ${srcdir}/Makefile.am
|
|
then
|
|
tmp_srcdir=`readlink ${srcdir}/Makefile.am`
|
|
real_srcdir="${srcdir}/`dirname ${tmp_srcdir}`"
|
|
else
|
|
real_srcdir=${srcdir}
|
|
fi
|
|
if test -d ${real_srcdir}/.svn
|
|
then
|
|
# This code is from SVN, 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"
|
|
if test $gwrap_major_version = 1 -a $gwrap_minor_version -lt 9 ; then
|
|
# This is g-wrap 1.3 + gcc4. Test error-on-warning
|
|
case "$gnc_error_on_warning" in
|
|
auto)
|
|
AC_MSG_ERROR([
|
|
|
|
Sorry, your current configuration will not compile. You are
|
|
running g-wrap 1.3.x, GCC4, and --enable-error-on-warning, which
|
|
do not work together. You have three options: You can update
|
|
g-wrap to 1.9.6, you can downgrade gcc to GCC3, or you can
|
|
--disable-error-on-warning on the configure line. We recommend
|
|
you update g-wrap to 1.9.6 so gnucash can compile cleanly on GCC4
|
|
You can find it at http://www.nongnu.org/g-wrap/ .
|
|
|
|
])
|
|
;;
|
|
yes)
|
|
AC_MSG_WARN([
|
|
|
|
g-wrap 1.3.x and GCC4 may cause build problems. You have been warned!
|
|
|
|
])
|
|
;;
|
|
esac
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
CFLAGS="${CFLAGS} ${warnFLAGS}"
|
|
|
|
else
|
|
warnFLAGS=none
|
|
fi
|
|
AC_MSG_RESULT($warnFLAGS)
|
|
|
|
### --------------------------------------------------------------------------
|
|
### 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_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/glib26/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
|
|
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/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/binary-import/Makefile
|
|
src/import-export/binary-import/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/mt940/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/swig/Makefile
|
|
src/optional/swig/examples/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
|
|
dnl # 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 # we configure gnucash-config here because we *don't*
|
|
dnl # want variables to be fully expanded
|
|
gnucash-config
|
|
,
|
|
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
|
|
if test x${MT940_DIR} != x; then
|
|
components="$components mt940"
|
|
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
|
|
|
|
|
|
])
|