gnucash/configure.in
Derek Atkins 1adcc37a8a Get libqof to link against glib and gmodule.
* configure.in: include gmodule in GLIB_LIBS
	* lib/libqof/qof/Makefile.am: link libqof against glib.



git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13058 57a11ea4-9604-0410-9ed3-97b8803252fd
2006-01-31 16:29:01 +00:00

2279 lines
71 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_INIT
AC_CONFIG_HEADERS(config.h)
AC_CONFIG_SRCDIR(src/engine/Transaction.h)
AC_PREREQ(2.53)
# Define the version number
GNUCASH_MAJOR_VERSION=1
GNUCASH_MINOR_VERSION=9
GNUCASH_MICRO_VERSION=0
GNUCASH_VERSION_STRING="$GNUCASH_MAJOR_VERSION.$GNUCASH_MINOR_VERSION.$GNUCASH_MICRO_VERSION"
AM_INIT_AUTOMAKE(gnucash, $GNUCASH_VERSION_STRING)
## 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_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_HEADER_STDC
AC_CHECK_HEADERS(limits.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 not installed?])
fi
### --------------------------------------------------------------------------
### 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)
DL_LIB=
AC_CHECK_FUNCS(dlopen,,[
AC_CHECK_LIB(dl, dlopen, DL_LIB="-ldl",[
AC_CHECK_LIB(dld, shl_load, DL_LIB="-ldld",[
AC_CHECK_FUNCS(dlopen, DL_LIB="",
AC_MSG_ERROR(Dynamic linking is not available on this platform. Some apps,
like panel, will not run properly.))
])
])
])
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. Right now gnucash requires at least version 1.3.3 to build.
If you need to install g-wrap, you can find it at
http://www.gnucash.org/pub/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)
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)
### 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)])
if ${GUILE} -c "(use-modules (www main))" > /dev/null 2>&1
then
gnc_have_guile_www=yes
AC_MSG_RESULT(no)
else
gnc_have_guile_www=no
AC_MSG_RESULT(yes)
fi
### --------------------------------------------------------------------------
### look for gconf
PKG_CHECK_MODULES(GCONF, gconf-2.0 >= "2.0")
AC_SUBST(GCONF_CFLAGS)
AC_SUBST(GCONF_LIBS)
AM_CONDITIONAL(GNC_HAVE_GUILE_WWW, test "${gnc_have_guile_www}" = yes)
### --------------------------------------------------------------------------
### Gnome XML -- GNOME_XML_LIB is defined by GNOME_XML_CHECK
PKG_CHECK_MODULES(XML, libxml-2.0)
AS_SCRUB_INCLUDE(XML_CFLAGS)
AC_SUBST(XML_CFLAGS)
AC_SUBST(XML_LIBS)
LIBXML2_REQUIRED=2.5.10
PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= $LIBXML2_REQUIRED)
LIBXML_VERSION=`$PKG_CONFIG --version xml`
AC_SUBST(LIBXML2_CFLAGS)
AC_SUBST(LIBXML2_LIBS)
AC_SUBST(LIBXML_VERSION)
oLIBS="$LIBS"
LIBS="$LIBS $XML_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"
dnl *************************************
dnl QOF
dnl *************************************
dnl XXX: FIXME: RELEASE HACK
dnl This makes sure that we default to using internal QOF for SVN.
dnl Make sure to enable this be default for stable releases!
dnl
AC_ARG_ENABLE(qof,
[ --enable-qof enable the search for an external QOF library (disabled)],
[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)])
# bug fixes between 0.6.1 and 0.6.2 mean gnucash runs best with 0.6.2
QOF_REQUIRED=0.6.2
if test "$gnc_enable_qof" = true ; then
AC_MSG_CHECKING([for QOF, version >= $QOF_REQUIRED])
if test "$withval" != "yes"; then
QOF=`$PKG_CONFIG --silence-errors --exists '$withval/lib/pkgconfig/qof-1.pc >= $QOF_REQUIRED'`
QOF_LIBS=`$PKG_CONFIG --silence-errors --libs $withval/lib/pkgconfig/qof-1.pc`
QOF_CFLAGS=`$PKG_CONFIG --silence-errors --cflags $withval/lib/pkgconfig/qof-1.pc`
QOF_VERSION=`$PKG_CONFIG --silence-errors --modversion $withval/lib/pkgconfig/qof-1.pc`
QOF_PREFIX=`$PKG_CONFIG --silence-errors --variable=prefix $withval/lib/pkgconfig/qof-1.pc`
QOF_LIB_DIR=`$PKG_CONFIG --silence-errors --variable=libdir $withval/lib/pkgconfig/qof-1.pc`
QOF_XML_DIR=`$PKG_CONFIG --silence-errors --variable=xmldir $withval/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_srcdir}/lib/libqof/qof'
QOF_LIBS='${top_builddir}/lib/libqof/qof/libqof.la'
QOF_VERSION="internal"
QOF_PREFIX="internal"
QOF_XML_DIR='${datadir}/xml/qsf'
LIBQOF_LIBRARY_VERSION=1:2:0
LIBQOF_BACKEND_QSF_LIBRARY_VERSION=0:1: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)
### --------------------------------------------------------------------------
### for GOG/goffice...
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)
### ----------
### +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 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)
# this should come after `AC_PROG_CC'
#ifdef([GNOME_COMPILE_WARNINGS],[GNOME_COMPILE_WARNINGS],)
#CFLAGS="$CFLAGS $WARN_CFLAGS -DG_DISABLE_DEPRECATED"
#if test "$GCC" = "yes"; then
# for option in -Wno-system-headers -Wfloat-equal -Wpointer-arith -Wbad-function-cast -Wwrite-strings -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wformat -Wnested-externs -Winline -Wdeclaration-after-statement -Wundef -W -Wmissing-noreturn -Wmissing-format-attribute; do
# SAVE_CFLAGS="$CFLAGS"
# CFLAGS="$CFLAGS $option"
# AC_MSG_CHECKING([whether gcc understands $option])
# AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])],
# has_option=yes,
# has_option=no)
# if test $has_option = no; then
# CFLAGS="$SAVE_CFLAGS"
# fi
# AC_MSG_RESULT($has_option)
# unset has_option
# unset SAVE_CFLAGS
# done
# unset option
#fi
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
AC_CHECK_FUNCS(chown)
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,
[--{with,without}-bz2 Build additional 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=auto
AC_ARG_WITH(gnome,
[--{with,without}-gnome Build additional wrappers for GNOME-VFS and BONOBO],
[case $withval in
yes) want_gnome=yes;;
no) want_gnome=no;;
esac[]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)
## # GConf configuration
## dnl Don't publish the GCONFTOOL variable, AM_GCONF_SOURCE_2 has ``gconftool-2'' hardwired.
## GCONFTOOL=
## AC_CHECK_PROG([GCONFTOOL], [gconftool-2], [gconftool-2], [no])
## if test "x$GCONFTOOL" = "xno"; then
## AC_MSG_WARN([thumbnailer will not be built, unable to find gconftool-2])
## else
## AM_GCONF_SOURCE_2
## fi
## AM_CONDITIONAL(WITH_GCONF, test "x$GCONFTOOL" != "xno")
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
# +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 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_CC
AC_PROG_YACC
AM_PROG_LEX
AC_PROG_LN_S
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.8
gobject-2.0 >= 2.4.8
gmodule-2.0 >= 2.4.8
libxml-2.0 >= 2.4.12
pango >= 1.6.0
pangoft2 >= 1.6.0
"
goffice_gtk_reqs="
gtk+-2.0 >= 2.4.14
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
AC_ARG_WITH(gtk, [ --without-gtk Build without UI])
if test "x$with_gtk" = xno; then
ui_msg="None (Gtk disabled by request)"
goffice_with_gtk=false
else
dnl We shouldn't silently default to --without-gtk.
dnl If the requirements are not met, fail.
ui_msg="Gtk"
PKG_CHECK_MODULES(GTK, [$goffice_gtk_reqs])
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
AC_ARG_WITH(gnome,
[ --{with,without}-gnome Use GNOME extensions],
[if test "x$withval" = xno; then
goffice_with_gnome=false
ui_msg="Gtk+ (Gnome disabled by request)"
fi]
)
if test "x$goffice_with_gnome" = "xtrue"; then
PKG_CHECK_MODULES(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 disable for in stable release, re-enable for development series
# FIXME - we should enable these, but maybe not right now... -jsled
# CFLAGS="$CFLAGS -DG_DISABLE_DEPRECATED"
# CFLAGS="$CFLAGS -DPANGO_DISABLE_DEPRECATED"
# if test "x$goffice_with_gtk" = "xtrue"; then
# CFLAGS="$CFLAGS -DGDK_PIXBUF_DISABLE_DEPRECATED"
# CFLAGS="$CFLAGS -DGDK_DISABLE_DEPRECATED"
# CFLAGS="$CFLAGS -DGDK_MULTIHEAD_SAFE"
# CFLAGS="$CFLAGS -DGTK_DISABLE_DEPRECATED"
# CFLAGS="$CFLAGS -DLIBGLADE_DISABLE_DEPRECATED"
# fi
# if test "x$goffice_with_gnome" = "xtrue"; then
# CFLAGS="$CFLAGS -DGNOME_DISABLE_DEPRECATED"
# CFLAGS="$CFLAGS -DBONOBO_DISABLE_DEPRECATED"
# CFLAGS="$CFLAGS -DBONOBO_UI_DISABLE_DEPRECATED"
# fi
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)
## this should come after `AC_PROG_CC'
#ifdef([GNOME_COMPILE_WARNINGS],
# [GNOME_COMPILE_WARNINGS] CFLAGS="$CFLAGS $WARN_CFLAGS",
# []
#)
#set_more_warnings=yes
#if test "$GCC" = "yes" -a "x$set_more_warnings" != "xno"; then
# for option in -Wsign-compare -Wpointer-arith -Wnested-externs -Wchar-subscripts -Wwrite-strings -Wdeclaration-after-statement -Wmissing-noreturn -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wmissing-format-attribute; do
# SAVE_CFLAGS="$CFLAGS"
# CFLAGS="$CFLAGS $option"
# AC_MSG_CHECKING([whether gcc understands $option])
# AC_TRY_COMPILE([], [],
# has_option=yes,
# has_option=no,)
# if test $has_option = no; then
# CFLAGS="$SAVE_CFLAGS"
# fi
# AC_MSG_RESULT($has_option)
# unset has_option
# unset SAVE_CFLAGS
# done
# unset option
#fi
#AC_SUBST(WARN_CFLAGS)
AC_CHECK_FUNC(gettimeofday,
[AC_DEFINE(HAVE_GETTIMEOFDAY, 1,
[Define if the gettimeofday function is available]
)])
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
# -gog2
### --------------------------------------------------------------------------
### Variables
### Set up all the initial variable values...
AC_ARG_ENABLE(opt-style-install,
[ --enable-opt-style-install install everything in subdirs of --prefix],
[case "${enableval}" in
yes) gnc_opt_style_install=true ;;
no) gnc_opt_style_install=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-opt-style-install) ;;
esac],
[gnc_opt_style_install=false])
if test x${gnc_opt_style_install} = xtrue
then
GNC_CONFIGDIR='${sysconfdir}'
GNC_DOC_INSTALL_DIR='${datadir}/doc'
GNC_INCLUDE_DIR='${includedir}'
GNC_LIBDIR='${libdir}'
GNC_SCM_INSTALL_DIR='${datadir}/scm'
GNC_SHAREDIR='${datadir}'
GNC_LIBEXECDIR='${libexecdir}'
else
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'
fi
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
AC_ARG_ENABLE( ofx,
[ --enable-ofx compile with ofx support (needs LibOFX)],
if test "x$enableval" != "xno" ; then
OFX_DIR=ofx
fi)
if test x${OFX_DIR} = xofx ;
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
AC_MSG_ERROR([found ${LIBOFX_VERSION}; Libofx 0.7.0 or newer needed for ofx support])
fi
# 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)]),
[ AC_MSG_ERROR([cannot find libofx header, needed for OFX support.]) ] )
fi
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),
[ AC_MSG_ERROR([*** Cannot compile test program for libofx library. Please check config.log for the exact error.]) ] )
LIBS="${save_LIBS}"
CPPFLAGS="${save_CPPFLAGS}"
AC_SUBST(LIBOFX_CFLAGS)
AC_SUBST(LIBOFX_LIBS)
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_ERROR([Sorry, MT940 support is currently broken since it depended on the hbci module with the old openhbci 0.9.x library. But the hbci module has now been ported to a new hbci library called aqbanking. That library contains a MT940 parser, too, so porting shouldnt be too difficult. Nevertheless someone needs to do the porting work before this can be enabled again.])
AC_AQBANKING(1,0,0)
# Note: HBCI_LIBS is changed again below in the --enable-hbci
# section. So check for mt940 first and *not* the other way round!
HBCI_LIBS="${OPENHBCI_LIBS}"
HBCI_CFLAGS="${OPENHBCI_CFLAGS}"
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
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.
])])
### --------------------------------------------------------------------------
### GNOME gui components -- built by default, but not if --enable-gui=no
### or --disable-gui is passed to autogen
### --------------------------------------------------------------------------
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)
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)
HAVE_UNTESTED_GNOME=yes
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)
### ----------------------------------------------------------------------
### XIM
AC_ARG_ENABLE(xim,
[ --enable-xim support XIM [default=yes]],
, enable_xim="yes")
if test "x$enable_xim" = "xyes"; then
GTK_XIM_FLAGS="-DUSE_XIM"
fi
AC_SUBST(GTK_XIM_FLAGS)
### ----------------------------------------------------------------------
## 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
###-------------------------------------------------------------------------
### 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
## Disable error-on-warning by default again because this seriously
## breaks quite a number of configure tests (due to, like, 'warning:
## unused variable some_variable') -- cstim, 02/02/2003
#
# Re-enabled and moved to later in the build process. This should allow
# us to keep it turned on, but also not break configure proceses.
# -- warlord, 02/02/2003
# 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" ;;
no) ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-error-on-warning) ;;
esac],
[ warnFLAGS="${warnFLAGS} -Werror" ])
# 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"
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-run-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_CH/Makefile
accounts/de_DE/Makefile
accounts/el_GR/Makefile
accounts/es_ES/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
rpm/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/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
AC_MSG_RESULT([
Options detected/selected
-------------------------
gnucash version ...... : $VERSION
Build for host ....... : $host
Extra Warnings ....... : $warnFLAGS
CPPFLAGS ............. : $CPPFLAGS
CFLAGS ............... : $CFLAGS
LDFLAGS .............. : $LDFLAGS
Native libgsf..........: $HAVE_LIBGSF
Native goffice.........: $HAVE_GOFFICE
QOF support ...........: $QOF_VERSION
QOF location ..........: $QOF_PREFIX
QOF library dir .......: $QOF_LIB_DIR
QOF backend config ....: $QOF_XML_DIR
])