You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gnucash/configure.ac

1494 lines
46 KiB

## -*-m4-*-
dnl Process this file with autoconf to produce a configure script.
# FILE:
# configure.in
#
# FUNCTION:
# implements checks for a variety of system-specific functions
#
# Contents:
# Headers - Autoconf header stuff
# Variables - Hardcoded variables
# Programs - Check for programs binaries
# Functions - Check for functions
# With - Check for --with/without options
# Enable - Check for --enable/disable options
# Libraries - Check for libraries
# Footer - Autoconf footer stuff
# Autoconf initialization
AC_PREREQ(2.59)
AC_INIT([GnuCash], [2.4.15], [gnucash-devel@gnucash.org])
AC_CONFIG_HEADERS(config.h)
AC_CONFIG_SRCDIR(src/engine/Transaction.h)
#Change this in development versions when changing anything that
#affects stored data structures. Reset to zero when bumping version.
GNUCASH_NANO_VERSION=0
#This should be the earliest version in the form XXMMUUNN (XX=MAJOR,
#MM=MINOR, UU=MICRO, NN=NANO) or SVN revision if before 2.4.1 which is
#storage-compatible with the current version. See the comments in
#src/backend/dbi/gnc-backend-dbi.c:gnc_dbi_load.
GNUCASH_RESAVE_VERSION=19920
# Initialize automake -- make sure we have at least version 1.9
AM_INIT_AUTOMAKE([1.9 dist-bzip2])
# Parse out the version number
GNUCASH_VERSION_STRING=AC_PACKAGE_VERSION
GNUCASH_MAJOR_VERSION=`echo $GNUCASH_VERSION_STRING | [ sed -e 's/^\([^\.]*\)\.\([^.]*\)\.\(.*\)$/\1/' ]`
GNUCASH_MINOR_VERSION=`echo $GNUCASH_VERSION_STRING | [ sed -e 's/^\([^\.]*\)\.\([^.]*\)\.\(.*\)$/\2/' ]`
GNUCASH_MICRO_VERSION=`echo $GNUCASH_VERSION_STRING | [ sed -e 's/^\([^\.]*\)\.\([^.]*\)\.\(.*\)$/\3/' ]`
GNUCASH_LATEST_STABLE_SERIES=$GNUCASH_MAJOR_VERSION.$(($GNUCASH_MINOR_VERSION-($GNUCASH_MINOR_VERSION%2)))
# save any user/environment optimization flags before we muck with them in
# --enable-debug:
USER_OPTIMIZATION=""
for flag in $CFLAGS; do
tmp_flag=`echo $flag | sed -e 's,-O.,,'`
if test -z "$tmp_flag"; then
USER_OPTIMIZATION="$USER_OPTIMIZATION ${tmp_flag}"
fi
done
## Do this first, because the other tests depend on it:
# Check for gcc and intltool (somehow breaks the suggested content
# order, doesn't it? Whatever.)
AC_PROG_CC
AM_PROG_CC_C_O
AC_GNU_SOURCE
AC_PROG_INTLTOOL
AM_GCONF_SOURCE_2
# Override gconf default install locations. The default is to always
# put them into /etc. This change puts them into $(prefix)/etc.
if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then
GCONF_SCHEMA_CONFIG_SOURCE="xml::${sysconfdir}/gconf/gconf.xml.defaults"
fi
GCONF_SCHEMA_CONFIG_SOURCE_DIRONLY=`echo $GCONF_SCHEMA_CONFIG_SOURCE | cut -d ':' -f 3`
AC_SUBST(GCONF_SCHEMA_CONFIG_SOURCE_DIRONLY)
AC_SUBST(GNUCASH_MAJOR_VERSION)
AC_SUBST(GNUCASH_MINOR_VERSION)
AC_SUBST(GNUCASH_MICRO_VERSION)
AC_SUBST(GNUCASH_NANO_VERSION)
AC_SUBST(GNUCASH_LATEST_STABLE_SERIES)
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])
AC_DEFINE_UNQUOTED(GNUCASH_NANO_VERSION, $GNUCASH_NANO_VERSION,
[GnuCash Nano version number])
AC_DEFINE_UNQUOTED(GNUCASH_RESAVE_VERSION, $GNUCASH_RESAVE_VERSION,
[GnuCash earliest compatible databaseversion number])
AC_DEFINE_UNQUOTED(GNUCASH_LATEST_STABLE_SERIES, "$GNUCASH_LATEST_STABLE_SERIES",
[Most recent stable GnuCash series])
dnl Set of available languages.
ALL_LINGUAS="ar bg ca cs da de el en_GB es_NI es eu fa fi fr he hu it ja ko lt lv nb ne nl pl pt_BR pt ro ru rw sk sv ta tr uk vi zh_CN zh_TW"
GETTEXT_PACKAGE=gnucash
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
[GetText version number])
AM_GLIB_GNU_GETTEXT
# Enable only when we have autoconf --version >= 2.59
# on all platforms. Note that AC_PREREQ(2.59) may be
# insufficient to actually use v2.59 on OSX
#AC_CONFIG_MACRO_DIR(macros)
AC_PROG_INSTALL
PKG_PROG_PKG_CONFIG
###--------------------------------------------------------
### Optionally enable gtkmm plugin (requires c++ compiler)
###--------------------------------------------------------
enable_GTKMM=false
AC_ARG_ENABLE(gtkmm,
[AS_HELP_STRING([--enable-gtkmm],[enable gtkmm gui])],
[case "${enableval}" in
yes) enable_GTKMM=true ;;
no) enable_GTKMM=false ;;
*) enable_GTKMM=false ;;
esac]
)
AS_IF([test x${enable_GTKMM} = "xtrue"],
[
# We require gtkmm, of course
PKG_CHECK_MODULES(GTKMM, gtkmm-2.4 >= 2.16)
# and also the c++ compiler
AC_PROG_CXXCPP
AC_PROG_CXX
_COMPONENTS="$_COMPONENTS gtkmm"
])
AM_CONDITIONAL([WITH_GTKMM], [test x${enable_GTKMM} = "xtrue"])
# This section must come before AC_PROG_LIBTOOL because libtool
# must know about the c++ compiler.
###--------------------------------------------------------
AC_LIBTOOL_DLOPEN
AC_LIBTOOL_WIN32_DLL
AM_DISABLE_STATIC
AM_PROG_LIBTOOL
AC_SUBST(LIBTOOL_DEPS)
AC_ISC_POSIX
AC_C_BIGENDIAN
AC_PROG_MAKE_SET
AC_PROG_LN_S
AC_HEADER_STDC
AC_CHECK_HEADERS(limits.h sys/time.h sys/times.h sys/wait.h)
AC_CHECK_FUNCS(stpcpy memcpy timegm towupper)
AC_CHECK_FUNCS(setenv,,[
AC_CHECK_FUNCS(putenv,,[
AC_MSG_ERROR([Must have one of the setenv or putenv functions.])
])
])
STRUCT_TM_GMTOFF_CHECK
SCANF_LLD_CHECK
if test x$am_cv_scanf_lld = "xno"; then
SCANF_QD_CHECK
if test x$am_cv_scanf_qd = "xno"; then
SCANF_I64D_CHECK
if test x$am_cv_scanf_i64d = "xno"; then
AC_MSG_ERROR([Cannot continue, no long long conversion support in scanf.])
fi
fi
fi
# test whether we are building directly from SVN/SVK
${srcdir}/util/gnc-svnversion ${srcdir} >/dev/null 2>&1
if test $? = 0 -o "x${BUILDING_FROM_SVN}" = "xyes" ; then
BUILDING_FROM_SVN=yes
# We need at least version 1.3.31 of SWIG because
# that's when SWIG doesn't barf on the "inline" keyword in C headers anymore
AC_PROG_SWIG(1.3.31)
else
BUILDING_FROM_SVN=no
# Make sure we've got swig-runtime.h and gnc-svninfo.h
AC_CHECK_FILE(${srcdir}/src/swig-runtime.h, [],
[AC_MSG_ERROR([
It looks like you are NOT building from Subversion
but I cannot find swig-runtime.h. Check your PATH
and make sure we can find svnversion in your PATH!
Either that or contact gnucash-devel@gnucash.org because
the tarball you downloaded is broken.
])])
AC_CHECK_FILE(${srcdir}/src/core-utils/gnc-svninfo.h, [],
[AC_MSG_ERROR([
It looks like you are NOT building from Subversion
but I cannot find gnc-svninfo.h. Check your PATH
and make sure we can find svnversion in your PATH!
Either that or contact gnucash-devel@gnucash.org because
the tarball you downloaded is broken.
])])
fi
AM_CONDITIONAL(BUILDING_FROM_SVN, test "x$BUILDING_FROM_SVN" = "xyes")
# Build dir adjustments
AM_CONDITIONAL(GNUCASH_SEPARATE_BUILDDIR, test "x${srcdir}" != "x.")
# Init binreloc
AM_BINRELOC
### --------------------------------------------------------------------------
### See if we have pkg-config
AC_PATH_PROG(PKG_CONFIG,pkg-config)
if test "x$PKG_CONFIG" = x; then
# @*%&$ Ximian programmers renamed this application
AC_PATH_PROG(PKG_CONFIG,pkgconfig)
if test "x$PKG_CONFIG" = x; then
AC_MSG_ERROR([Could not find the pkg-config (or pkgconfig) program.],)
fi
fi
### --------------------------------------------------------------------------
### Glib checks..
AM_PATH_GLIB_2_0(2.12.0,,AC_MSG_ERROR([
*** GLIB >= 2.12 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)
AC_MSG_CHECKING([for untested GLIB versions (glib >= 2.13.0)])
if $PKG_CONFIG 'glib-2.0 >= 2.13.0'
then
AC_MSG_RESULT(yes)
HAVE_UNTESTED_GLIB=yes
else
AC_MSG_RESULT(no)
fi
AC_MSG_CHECKING([for GLib testing (glib >= 2.16.0)])
if $PKG_CONFIG 'glib-2.0 >= 2.16.0'
then
AC_MSG_RESULT(yes)
_have_glib_testing=yes
else
AC_MSG_RESULT(no)
_have_glib_testing=no
fi
AC_MSG_CHECKING([for GLib 2.32 or later (glib >=2.32.0)])
if $PKG_CONFIG "glib-2.0 >= 2.32.0"
then
AC_MSG_RESULT(yes)
AC_DEFINE([HAVE_GLIB_2_32], [1], [Configure gthread deprecations])
else
AC_MSG_RESULT(no)
fi
AC_MSG_CHECKING([for GLib 2.36 or later (glib >=2.36.0)])
if $PKG_CONFIG "glib-2.0 >= 2.36.0"
then
AC_MSG_RESULT(yes)
AC_DEFINE([HAVE_GLIB_2_36], [1], [Configure g_type_init deprecation])
else
AC_MSG_RESULT(no)
fi
AM_CONDITIONAL(HAVE_GLIB_TESTING, test "x$_have_glib_testing" = "xyes")
AC_CHECK_HEADERS(dirent.h 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)
##################################################
# OS dependent checks
##################################################
AC_SUBST(SED)
# Set some defaults, they may be overridden below
REGEX_LIBS=""
AC_MSG_CHECKING(operating system)
case $host_os in
rhapsody* | darwin[1567].*)
AC_MSG_RESULT([darwin, but too old])
AC_MSG_ERROR([This platform is not supported, please
update to latest darwin])
;;
darwin*)
platform=darwin
AC_MSG_RESULT($platform)
AC_MSG_CHECKING(For GDK-Quartz)
platform=osx
_gdk_tgt=`$PKG_CONFIG --variable=target gdk-2.0`
if test "x$_gdk_tgt" = xquartz; then
platform=darwin/quartz
AC_MSG_RESULT(yes)
AC_DEFINE(GDK_QUARTZ,,[Using GDK Quartz (not X11)])
PKG_CHECK_MODULES([GTK_MAC], gtk-mac-integration,
[_gtk_mac=yes], [_gtk_mac=no])
if test "x$_gtk_mac" = xyes; then
GTK_MAC_LIBS="${GTK_MAC_LIBS} -lobjc -framework Cocoa"
GTK_MAC_CFLAGS="${GTK_MAC_CFLAGS} -xobjective-c"
fi
AC_MSG_RESULT(${_gtk_mac})
AC_SUBST(GTK_MAC_LIBS)
AC_SUBST(GTK_MAC_CFLAGS)
else
AC_MSG_RESULT(no)
fi
;;
mingw*|cygwin*)
platform=win32
AC_MSG_RESULT($platform)
LT_PROG_RC
AC_MSG_CHECKING(for native win32)
case $host_os in
mingw*)
native_win32=yes
AC_MSG_RESULT(yes)
HTMLHELP_LIBS=
AC_MSG_CHECKING(for HtmlHelpW)
saved_LIBS="${LIBS}"
LIBS="${LIBS} -lhtmlhelp"
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[#include <windows.h>
#include <htmlhelp.h>]],
[HtmlHelpW(0, (wchar_t*)"", HH_HELP_CONTEXT, 0);])],
[AC_MSG_RESULT(yes)
HTMLHELP_LIBS=-lhtmlhelp
AC_DEFINE(HAVE_HTMLHELPW,1,[System has HtmlHelpW])
], [AC_MSG_RESULT(no)])
LIBS="${saved_LIBS}"
AC_SUBST(HTMLHELP_LIBS)
;;
*)
AC_MSG_RESULT(no)
;;
esac
REGEX_LIBS="-lregex"
# Adjust CFLAGS and LDFLAGS on Windows
CFLAGS="${CFLAGS} -mms-bitfields"
LDFLAGS="${LDFLAGS} -no-undefined -mwindows"
;;
*)
platform=linux/other
AC_MSG_RESULT($platform)
;;
esac
AC_SUBST(REGEX_LIBS)
AM_CONDITIONAL(PLATFORM_LINUX, test "x$platform" = "xlinux/other")
AM_CONDITIONAL(PLATFORM_OSX, test "x$platform" = "xdarwin")
AM_CONDITIONAL(PLATFORM_OSX_QUARTZ, test "x$platform" = "xdarwin/quartz")
AM_CONDITIONAL(PLATFORM_WIN32, test "x$platform" = "xwin32")
AM_CONDITIONAL(OS_WIN32, test "x$native_win32" = "xyes")
# These are unavailable on windows/mingw32 and X11 isn't desired or
# required for MacOSX Quartz
if test "x$_gdk_tgt" = xquartz;
then
AC_CHECK_HEADERS(glob.h)
else
AC_CHECK_HEADERS(X11/Xlib.h glob.h)
fi
AM_CONDITIONAL(HAVE_X11_XLIB_H, test "x$ac_cv_header_X11_Xlib_h" = "xyes")
AC_CHECK_FUNCS(chown gethostname getppid getuid gettimeofday gmtime_r)
AC_CHECK_FUNCS(gethostid link)
##################################################
### --------------------------------------------------------------------------
### Guile version checks (should this be something other than the Gnome check?)
# If the user has given these values, cache them to override the
# detected values.
if test "x$GUILE_LIBS" != x; then
saved_GUILE_LIBS="$GUILE_LIBS"
fi
if test "x$GUILE_INCS" != x; then
saved_GUILE_INCS="$GUILE_INCS"
fi
GUILE_LIBS=""
GNOME_CHECK_GUILE
if test "x$saved_GUILE_LIBS" != x; then
GUILE_LIBS="$saved_GUILE_LIBS"
fi
if test "x$saved_GUILE_INCS" != x; then
GUILE_INCS="$saved_GUILE_INCS"
fi
AS_SCRUB_INCLUDE(GUILE_INCS)
AC_SUBST(GUILE_LIBS)
AM_GUILE_VERSION_CHECK(1.6.7, 1.8.99, , [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 a version between 1.6.7 and 1.8.99 to build.
Note: if you have installed guile 2 on your system as well, you
may want to set environment variables GUILE and GUILE_CONFIG to
point explicitly at the proper binaries for guile 1.8 before
running configure. Eg:
configure --enable-compile-warnings ... GUILE=guile1.8 GUILE_CONFIG=guile1.8-config
])])
AC_SUBST(GUILE)
AC_DEFINE_UNQUOTED(GNC_GUILE_MAJOR_VERSION, ${guile_major_version},
[Guile Major version number])
AC_DEFINE_UNQUOTED(GNC_GUILE_MINOR_VERSION, ${guile_minor_version},
[Guile Minor version number])
AC_DEFINE_UNQUOTED(GNC_GUILE_MICRO_VERSION, ${guile_micro_version},
[Guile Micro version number])
AM_GUILE_VERSION_CHECK(1.8.0, 1.8.99, [
AC_DEFINE(HAVE_GUILE18,1,[System has guile 1.8])
], )
AS_SCRUB_INCLUDE(CFLAGS)
AC_MSG_CHECKING([for SLIB support])
if ${GUILE} -c "(use-modules (ice-9 slib)) (require 'printf)" > /dev/null 2>&1
then
AC_MSG_RESULT(yes)
else
AC_MSG_ERROR([
Cannot find SLIB. Are you sure you have it installed?
See http://bugzilla.gnome.org/show_bug.cgi?id=347922
and http://bugzilla.gnome.org/show_bug.cgi?id=483631
])
fi
### Check size of long_long - some guile's are broken.
AC_MSG_CHECKING(if guile long_long is at least as big as gint64)
GNC_OLDCFLAGS="$CFLAGS"
GNC_OLDLDFLAGS="$LDFLAGS"
CFLAGS="${GNOME_CFLAGS} ${GUILE_INCS} ${CFLAGS} ${GLIB_CFLAGS}"
LDFLAGS="${LDFLAGS} ${GLIB_LIBS}"
AC_TRY_RUN([
#include <glib.h>
#include <libguile/__scm.h>
int main(int argc, char *argv[]) {
return(!(sizeof(long_long) >= sizeof(gint64)));
}
],[
AC_MSG_RESULT(yes)
AC_CHECK_LIB(guile, scm_long_long2num,
AC_DEFINE(GUILE_LONG_LONG_OK,1,is sizeof(long_long) >= sizeof(gint64)))
],[
AC_MSG_RESULT(no)
],[
AC_MSG_RESULT(assuming yes)
AC_CHECK_LIB(guile, scm_long_long2num,
AC_DEFINE(GUILE_LONG_LONG_OK,1,is sizeof(long_long) >= sizeof(gint64)))
])
CFLAGS="$GNC_OLDCFLAGS"
LDFLAGS="$GNC_OLDLDFLAGS"
# One of the places this is critical is in gnc_scm_to_gint64 and inverse.
# However, I'm sure we require this elsewhere, so don't remove this test
# unless you've done sufficient code review/testing.
AC_MSG_CHECKING(if unsigned long is at least as big as guint32)
GNC_OLDCFLAGS="$CFLAGS"
GNC_OLDLDFLAGS="$LDFLAGS"
CFLAGS="${GNOME_CFLAGS} ${GUILE_INCS} ${CFLAGS} ${GLIB_CFLAGS}"
LDFLAGS="${LDFLAGS} ${GLIB_LIBS}"
AC_TRY_RUN([
#include <glib.h>
int main(int argc, char *argv[]) {
return(!(sizeof(unsigned long) >= sizeof(guint32)));
}
],[
AC_MSG_RESULT(yes)
],[
AC_MSG_RESULT(no)
AC_MSG_ERROR(cannot continue, size of unsigned long too small.)
],[
AC_MSG_RESULT(assuming yes)
])
CFLAGS="$GNC_OLDCFLAGS"
LDFLAGS="$GNC_OLDLDFLAGS"
### --------------------------------------------------------------------------
### See if we need guile-www
gnc_have_guile_www=no
AC_MSG_CHECKING([if guile needs our copy of (guile www)])
GUILE_MODULE_AVAILABLE(gnc_have_guile_www,[(www main)])
AM_CONDITIONAL(GNC_HAVE_GUILE_WWW, test "${gnc_have_guile_www}" = yes)
### --------------------------------------------------------------------------
### look for gconf
PKG_CHECK_MODULES(GCONF, gconf-2.0 >= "2.0")
# Look up gconftool-2
AC_PATH_PROG(GCONFTOOL, gconftool-2)
AC_SUBST(GCONFTOOL)
AC_SUBST(GCONF_CFLAGS)
AC_SUBST(GCONF_LIBS)
### --------------------------------------------------------------------------
### LIBXML -- GNOME_XML_LIB is defined by GNOME_XML_CHECK
LIBXML2_REQUIRED=2.5.10
PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= $LIBXML2_REQUIRED)
AS_SCRUB_INCLUDE(LIBXML2_CFLAGS)
AC_SUBST(LIBXML2_CFLAGS)
AC_SUBST(LIBXML2_LIBS)
oLIBS="$LIBS"
LIBS="$LIBS $LIBXML2_LIBS"
# Compile a test program to verify that the xml2 library works.
AC_CHECK_LIB(xml2, xmlElemDump, [:], [
AC_MSG_ERROR([libxml2 is required for GnuCash])
])
LIBS="$oLIBS"
### --------------------------------------------------------------------------
### Zlib
ZLIB_LIBS=-lz
AC_SUBST(ZLIB_LIBS)
oLIBS="$LIBS"
LIBS="$LIBS $ZLIB_LIBS"
AC_CHECK_LIB(z, gzopen, [:], [
AC_MSG_ERROR([zlib is required for GnuCash])
])
LIBS="$oLIBS"
### --------------------------------------------------------------------------
### Internal code part which is called "qof"
LIBQOF_LIBRARY_VERSION=1:4:0
AC_SUBST(LIBQOF_LIBRARY_VERSION)
QOF_CFLAGS='-I${top_builddir}/src/libqof/qof -I${top_srcdir}/src/libqof/qof'
QOF_LIBS='${top_builddir}/src/libqof/qof/libgnc-qof.la'
AC_SUBST(QOF_CFLAGS)
AC_SUBST(QOF_LIBS)
### ----------------------
### LIBDBI
AC_ARG_ENABLE(dbi,
[AS_HELP_STRING([--disable-dbi],[don't build with the libdbi backend])],
[case "${enableval}" in
yes) want_dbi=true ;;
no) want_dbi=false ;;
*) want_dbi=false ;;
esac],
[want_dbi=true])
if test x${want_dbi} = xtrue
then
AC_CHECK_HEADERS(dbi/dbi.h)
if test "x$ac_cv_header_dbi_dbi_h" != xno; then
AC_ARG_WITH( dbi-dbd-dir,
[AS_HELP_STRING([--with-dbi-dbd-dir=PATH],[specify location of libdbi drivers @<:@default=${libdir}/dbd@:>@])],
GNC_DBD_DIR="$with_dbi_dbd_dir",
GNC_DBD_DIR="")
LIBDBI_LIBS=-ldbi
_COMPONENTS="$_COMPONENTS dbi"
else
AC_MSG_ERROR([
Unable to find <dbi/dbi.h>. Either install the libdbi development
package (such as libdbi0-dev), or switch off the database backend of
gnucash by --disable-dbi.
Note: If you install libdbi, you should also install its database
drivers (such as libdbd-sqlite3 libdbd-mysql libdbd-pgsql).
])
fi
fi
AC_SUBST(LIBDBI_LIBS)
AC_SUBST(GNC_DBD_DIR)
AM_CONDITIONAL(CUSTOM_GNC_DBD_DIR, [test x"$GNC_DBD_DIR" != "x"])
AM_CONDITIONAL(WITH_DBI, [test "x$ac_cv_header_dbi_dbi_h" == xyes])
### --------------------------------------------------------------------------
### Variables
### Set up all the initial variable values...
GNC_CONFIGDIR='${sysconfdir}/gnucash'
GNC_DOC_INSTALL_DIR='${pkgdatadir}/doc'
GNC_INCLUDE_DIR='${includedir}/gnucash'
GNC_SCM_INSTALL_DIR='${pkgdatadir}/scm'
GNC_SHAREDIR='${pkgdatadir}'
GNC_LIBEXECDIR='${libexecdir}/gnucash'
GNC_ACCOUNTS_DIR='${GNC_SHAREDIR}/accounts'
GNC_CHECKS_DIR='${GNC_SHAREDIR}/checks'
GNC_GLADE_DIR='${GNC_SHAREDIR}/glade'
GNC_UI_DIR='${GNC_SHAREDIR}/ui'
GNC_PIXMAP_DIR='${GNC_SHAREDIR}/pixmaps'
AC_SUBST(GNC_ACCOUNTS_DIR)
AC_SUBST(GNC_CHECKS_DIR)
AC_SUBST(GNC_CONFIGDIR)
AC_SUBST(GNC_DOC_INSTALL_DIR)
AC_SUBST(GNC_GLADE_DIR)
AC_SUBST(GNC_UI_DIR)
AC_SUBST(GNC_INCLUDE_DIR)
AC_SUBST(GNC_PIXMAP_DIR)
AC_SUBST(GNC_SCM_INSTALL_DIR)
AC_SUBST(GNC_SHAREDIR)
AC_SUBST(GNC_LIBEXECDIR)
AC_ARG_ENABLE( debug,
[AS_HELP_STRING([--enable-debug],[compile with debugging flags set])],
[
# remove any optimization flags...
CFLAGS=`echo ${CFLAGS} | sed -e 's,-O.,,g'`
# ...except for those the user wants.
CFLAGS="${CFLAGS} -g ${USER_OPTIMIZATION}"
LDFLAGS="${LDFLAGS} -g"
AC_DEFINE(DEBUG_MEMORY,1,[Enable debug memory])
AC_DEFINE(DEBUG_MEMORY,0,[Enable debug memory])
])
AC_ARG_ENABLE( profile,
[AS_HELP_STRING([--enable-profile],[compile with profiling set])],
CFLAGS="${CFLAGS} -pg"
LDFLAGS="${LDFLAGS} -pg")
AC_ARG_ENABLE( ref-counts-dumps,
[AS_HELP_STRING([--enable-ref-counts-dumps],[compile with ref count dumps])],
AC_DEFINE(DEBUG_REFERENCE_COUNTING,1,[Enable reference count dumps])
AC_DEFINE(DEBUG_REFERENCE_COUNTING,0,[Enable reference count dumps]) )
### --------------------------------------------------------------------------
### OFX
want_ofx=auto
AC_ARG_ENABLE( ofx,
[AS_HELP_STRING([--enable-ofx],[compile with ofx support (needs LibOFX)])],
[ case "$enableval" in
yes) want_ofx=yes ;;
no) want_ofx=no ;;
esac[]dnl
] )
AC_MSG_CHECKING(whether to use OFX)
case "${want_ofx}" in
yes) AC_MSG_RESULT(yes -- failure is fatal) ;;
no) AC_MSG_RESULT(no) ;;
auto) AC_MSG_RESULT(yes -- automatic test) ;;
esac
if test x${want_ofx} != xno ; then
PKG_CHECK_MODULES(LIBOFX, libofx, [want_ofx="yes"], [want_ofx="no"])
_COMPONENTS="$_COMPONENTS ofx"
fi
AM_CONDITIONAL([WITH_OFX], [test "x${want_ofx}" != xno])
### --------------------------------------------------------------------------
### MT940
AC_ARG_ENABLE( mt940,
[AS_HELP_STRING([--enable-mt940],[obsolete, included in --enable-aqbanking])],
if test "x$enableval" != "xno" ; then
AC_MSG_ERROR([--enable-mt940 is obsolete -- all functionality is already included in --enable-aqbanking])
fi)
### --------------------------------------------------------------------------
### AqBanking
AC_ARG_ENABLE( aqbanking,
[AS_HELP_STRING([--enable-aqbanking],[compile with AqBanking support])],
if test "x$enableval" != "xno" ; then
want_aqbanking=yes
fi)
AC_ARG_ENABLE( hbci,
[AS_HELP_STRING([--enable-hbci],[obsolete, replaced by --enable-aqbanking])],
if test "x$enableval" != "xno" ; then
AC_MSG_ERROR([--enable-hbci is obsolete -- the option has been renamed into --enable-aqbanking])
fi)
if test x${want_aqbanking} = xyes ;
then
# Check for Aqbanking library
# We require aqbanking-4.0.0 because our implementation doesn't run
# with earlier version anymore. (libaqbanking ships with a pkgconfig
# file since its version 1.6.1.)
PKG_CHECK_MODULES(AQBANKING, aqbanking >= 4.0.0 gwenhywfar, , [
AC_MSG_ERROR([Could not find aqbanking >= 4.0.0. If you use --enable-aqbanking, you MUST have aqbanking installed!])
])
# For libgwenhywfar > 3.99.20, look for its library gwengui-gtk2.
PKG_CHECK_MODULES([GWENGUI_GTK2], [gwengui-gtk2 gwenhywfar], [has_gwengui_gtk2=1], [has_gwengui_gtk2=0])
# also check for ktoblzcheck
AC_CHECK_HEADERS(ktoblzcheck.h)
if test "x$ac_cv_header_ktoblzcheck_h" != xno; then
AQBANKING_LIBS="${AQBANKING_LIBS} -lktoblzcheck"
fi
AS_SCRUB_INCLUDE(AQBANKING_CFLAGS)
AC_SUBST(AQBANKING_LIBS)
AC_SUBST(AQBANKING_CFLAGS)
_COMPONENTS="$_COMPONENTS aqbanking"
fi
AM_CONDITIONAL([WITH_AQBANKING], [test x${want_aqbanking} = xyes])
AC_ARG_WITH(qt3_wizard_package,
[AS_HELP_STRING([--with-qt3-wizard-package=name],[name of package containing qt3-wizard (aqbanking)])],
[QT3_WIZARD_PACKAGE=$withval], [QT3_WIZARD_PACKAGE=aqbanking])
AC_DEFINE_UNQUOTED([QT3_WIZARD_PACKAGE],["$QT3_WIZARD_PACKAGE"],[Name of package containing qt3-wizard.])
### --------------------------------------------------------------------------
### i18n
# This variable is set by GLIB_WITH_NLS, called through
# AM_GLIB_GNU_GETTEXT above. Usually it is "share", but on some
# platforms it is "lib". Make sure it is set.
if test "x$DATADIRNAME" = "x"; then
DATADIRNAME="share"
AC_SUBST(DATADIRNAME)
fi
dnl check for nl_langinfo(D_FMT) which is missing on FreeBSD
LANGINFO_D_FMT_CHECK
dnl Enable locale-specific tax-related information in the accounts
AC_ARG_ENABLE( locale-specific-tax,
[AS_HELP_STRING([--enable-locale-specific-tax],[enable localized tax categories (experimental, but used by the german SKR04 account chart)])],
AC_DEFINE(LOCALE_SPECIFIC_TAX,1,Enable the experimental locale-specific tax categories) )
dnl Make sure we have a proper gettext installed
AC_MSG_CHECKING(for a valid gettext/gmsgfmt installation)
if test "$gt_cv_have_gettext" != "yes" || test "x$GMSGFMT" = "x"; then
AC_MSG_RESULT(no)
AC_MSG_ERROR([Cannot find Glib Gettext. Maybe you need to install the gettext package?])
else
AC_MSG_RESULT(yes - $GMSGFMT)
fi
# -------------------------------------------------------------------------
# URLs for MySQL and PostgreSQL testing
AC_ARG_WITH(test-mysql-url,
AS_HELP_STRING([--with-test-mysql-url=URL],
[MySQL database URL for testing [default=none]]),
[],[with_test_mysql_url=""])
TEST_MYSQL_URL=$with_test_mysql_url
AC_SUBST(TEST_MYSQL_URL)
AC_ARG_WITH(test-pgsql-url,
AS_HELP_STRING([--with-test-pgsql-url=URL],
[PgSQL database URL for testing [default=none]]),
[],[with_test_pgsql_url=""])
TEST_PGSQL_URL=$with_test_pgsql_url
AC_SUBST(TEST_PGSQL_URL)
### --------------------------------------------------------------------------
### help files
# Used to initialize doc-path.
AC_ARG_WITH( help-prefix,
[AS_HELP_STRING([--with-help-prefix=PATH],[specify where to store the help files])],
GNC_HELPDIR="$with_help_prefix",
GNC_HELPDIR="\${datadir}")
AC_SUBST(GNC_HELPDIR)
### --------------------------------------------------------------------------
### Check for etags
AC_ARG_ENABLE( etags,
[AS_HELP_STRING([--enable-etags],[enable automatic create of TAGS file])],
if test x$enableval = xyes; then
USE_ETAGS=1
fi,
USE_ETAGS=0)
if test x${USE_ETAGS} = x1; then
AC_CHECK_PROG(GNC_ETAGS_FILE, etags, TAGS)
fi
AM_CONDITIONAL(GNC_ETAGS_FILE, test x${GNC_ETAGS_FILE} = xTAGS)
### --------------------------------------------------------------------------
### Check for ctags
AC_ARG_ENABLE( ctags,
[AS_HELP_STRING([--enable-ctags],[enable automatic create of tags file])],
if test x$enableval = xyes; then
USE_CTAGS=1
fi,
USE_CTAGS=0)
if test x${USE_CTAGS} = x1; then
AC_CHECK_PROG(GNC_CTAGS_FILE, ctags, tags)
fi
AM_CONDITIONAL(GNC_CTAGS_FILE, test x${GNC_CTAGS_FILE} = xtags)
### --------------------------------------------------------------------------
### Check for perl
# Check for perl, force version 5
AC_ARG_WITH(perl,
[AS_HELP_STRING([--with-perl=FILE],[which perl executable to use])],
PERL="${with_perl}")
# If the user didn't specify a perl, then go fetch.
if test x"$PERL" = x;
then
AC_PATH_PROG(PERL, perl)
fi
# Make sure Perl was found
if test x"$PERL" = x; then
AC_MSG_ERROR([Cannot find Perl. Try using the --with-perl flag.])
fi
# Make sure it's version 5 or later
if "$PERL" -e 'exit 1 if $] < 5.0'; then
:
else
AC_MSG_ERROR([Found ${PERL} reports version ]
[`${PERL} -e 'print $]'`, need version 5.*])
fi
AC_SUBST(PERL)
### ----------------------------------------------------------------------------
### Check for doxygen, mostly stolen from http://log4cpp.sourceforge.net/
AC_DEFUN([BB_ENABLE_DOXYGEN],
[
AC_ARG_ENABLE(doxygen, [AS_HELP_STRING([--enable-doxygen],[enable documentation generation with doxygen (auto)])])
AC_ARG_ENABLE(dot, [AS_HELP_STRING([--enable-dot],[use 'dot' to generate graphs in doxygen (auto)])])
AC_ARG_ENABLE(html-docs, [AS_HELP_STRING([--enable-html-docs],[enable HTML generation with doxygen (yes)])], [], [ enable_html_docs=yes])
AC_ARG_ENABLE(latex-docs, [AS_HELP_STRING([--enable-latex-docs],[enable LaTeX documentation generation with doxygen (no)])], [], [ enable_latex_docs=no])
if test "x$enable_doxygen" = xno; then
enable_doc=no
else
AC_PATH_PROG(DOXYGEN, doxygen, , $PATH)
if test x$DOXYGEN = x; then
if test "x$enable_doxygen" = xyes; then
AC_MSG_ERROR([could not find doxygen])
fi
enable_doc=no
else
enable_doc=yes
AC_PATH_PROG(DOT, dot, , $PATH)
fi
fi
AM_CONDITIONAL(DOC, test x$enable_doc = xyes)
if test x$DOT = x; then
if test "x$enable_dot" = xyes; then
AC_MSG_ERROR([could not find dot])
fi
enable_dot=no
else
enable_dot=yes
fi
AM_CONDITIONAL(ENABLE_DOXYGEN, test x$enable_doc = xtrue)
AC_SUBST(enable_dot)
AC_SUBST(enable_html_docs)
AC_SUBST(enable_latex_docs)
])
# check for doxygen
BB_ENABLE_DOXYGEN
### --------------------------------------------------------------------------
### Libraries
LIBS="$LIBS -lm"
### --------------------------------------------------------------------------
### Whether or not to build the GTK GUI components.
### When disabled, we don't even need to check for them!
### --------------------------------------------------------------------------
AC_ARG_ENABLE(gui,
[AS_HELP_STRING([--disable-gui],[build without the GNOME GUI components of Gnucash])],
[case "${enableval}" in
yes) gnc_build_gui=true ;;
no) gnc_build_gui=false ;;
*) gnc_build_gui=true ;;
esac],
[gnc_build_gui=true])
AM_CONDITIONAL(GNUCASH_ENABLE_GUI, test x${gnc_build_gui} = xtrue)
### --------------------------------------------------------------------------
### GNOME gui components -- built by default, but not if --enable-gui=no
### or --disable-gui is passed to autogen
### --------------------------------------------------------------------------
if test x${gnc_build_gui} = xtrue ;
then
if test x${enable_compile_warnings} = x ;
then
enable_compile_warnings="yes"
fi
GNOME_COMPILE_WARNINGS
PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.10)
AS_SCRUB_INCLUDE(GTK_CFLAGS)
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
AC_MSG_CHECKING([for untested GTK versions (gtk > 2.11.0)])
if $PKG_CONFIG 'gtk+-2.0 > 2.11.0'
then
AC_MSG_RESULT(yes)
HAVE_UNTESTED_GTK=yes
fi
AC_MSG_CHECKING([for GTK >= 2.12.0])
if $PKG_CONFIG 'gtk+-2.0 >= 2.12.0'
then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_GTK_2_12,1,[System has gtk 2.12.0 or better])
HAVE_GTK_2_12=yes
fi
PKG_CHECK_MODULES(GNOME, libgnomeui-2.0 >= 2.4)
AS_SCRUB_INCLUDE(GNOME_CFLAGS)
AC_SUBST(GNOME_CFLAGS)
AC_SUBST(GNOME_LIBS)
AC_MSG_CHECKING([for untested GNOME versions (libgnome >= 2.19.0)])
if $PKG_CONFIG 'libgnome-2.0 >= 2.19.0'
then
AC_MSG_RESULT(yes)
HAVE_UNTESTED_GNOME=yes
else
AC_MSG_RESULT(no)
fi
PKG_CHECK_MODULES(GDK_PIXBUF, gdk-pixbuf-2.0)
AS_SCRUB_INCLUDE(GDK_PIXBUF_CFLAGS)
AC_SUBST(GDK_PIXBUF_CFLAGS)
AC_SUBST(GDK_PIXBUF_LIBS)
PKG_CHECK_MODULES(GLADE, libglade-2.0 >= 2.4)
AS_SCRUB_INCLUDE(GLADE_CFLAGS)
AC_SUBST(GLADE_CFLAGS)
AC_SUBST(GLADE_LIBS)
# checks for goffice
PKG_CHECK_MODULES(GOFFICE, libgoffice-0.8 >= 0.7.0, [goffice=1], [
PKG_CHECK_MODULES(GOFFICE, libgoffice-0.6 >= 0.6.0, [goffice=1], [
PKG_CHECK_MODULES(GOFFICE, libgoffice-0.5 >= 0.5.1, [goffice=1], [AC_MSG_ERROR([Cannot find libgoffice.>= 0.5.1])])
])
])
AS_SCRUB_INCLUDE(GOFFICE_CFLAGS)
AC_SUBST(GOFFICE_CFLAGS)
AC_SUBST(GOFFICE_LIBS)
### --------------------------------------------------------------------------
### determine the HTML engine
AC_MSG_CHECKING([the html engine])
AC_ARG_WITH(html_engine,
AS_HELP_STRING([--with-html-engine=@<:@webkit/gtkhtml@:>@],
[Select HTML engine [default=gtkhtml]]),
[],[with_html_engine="gtkhtml"])
AC_MSG_RESULT([$with_html_engine])
case "$with_html_engine" in
gtkhtml)
# check for gtkhtml >= 3.14 with gtkprint support
gtkhtml=0
PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.14, [
# check for gtkhtml >= 3.16 (includes gtk_html_print_operation_run())
AC_MSG_CHECKING(for GtkHTML - version >= 3.16.0)
if $PKG_CONFIG 'libgtkhtml-3.14 >= 3.16.0'; then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_GTKHTML_3_16,1,[System has gtkhtml 3.16.0 or better])
HAVE_GTKHTML_3_16=1
else
AC_MSG_RESULT(no)
fi
], [
AC_MSG_ERROR([cannot find GtkHTML >= 3.14])
])
;;
webkit)
PKG_CHECK_MODULES(WEBKIT, webkit-1.0 >= "1.0")
AC_DEFINE(WANT_WEBKIT,1,[Use webkit instead of gtkhtml])
case "$platform" in
win32)
# 1.1.90 has both functions
AC_DEFINE(HAVE_WEBKIT_WEB_VIEW_LOAD_URI,1,[webkit_web_view_load_uri exists])
AC_DEFINE(HAVE_WEBKIT_WEB_FRAME_PRINT_FULL,1,[webkit_web_frame_print_full exists])
;;
*)
# Unsure - check functions exist
oLIBS="$LIBS"
LIBS="$LIBS ${WEBKIT_LIBS}"
AC_CHECK_FUNCS(webkit_web_view_load_uri)
LIBS="$oLIBS"
AC_MSG_CHECKING(for webkit_web_frame_print_full)
saved_CFLAGS="${CFLAGS}"
saved_LIBS="${LIBS}"
CFLAGS="${CFLAGS} ${WEBKIT_CFLAGS}"
LIBS="${LIBS} ${WEBKIT_LIBS}"
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[#include <webkit/webkit.h>]],
[[webkit_web_frame_print_full( 0, 0, 0, 0 );]])],
[AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_WEBKIT_WEB_FRAME_PRINT_FULL,1,[webkit_web_frame_print_full exists])],
[AC_MSG_RESULT(no)])
CFLAGS="${saved_CFLAGS}"
LIBS="${saved_LIBS}"
;;
esac
;;
*) AC_MSG_ERROR([Invalid HTML engine: must be gtkhtml or webkit]) ;;
esac
AM_CONDITIONAL(HTML_USING_WEBKIT, [test x${with_html_engine} = xwebkit])
AC_SUBST(WEBKIT_CFLAGS)
AC_SUBST(WEBKIT_LIBS)
AS_SCRUB_INCLUDE(GTKHTML_CFLAGS)
dnl if Mac OSX, also scrub /sw/include
dnl GIVEN_CFLAGS=$(echo $GIVEN_CFLAGS | sed -e "s;-I/sw/include ;;" | sed -e "s;-I/sw/include$;;")
case $host_os in
darwin*)
GTKHTML_CFLAGS=`echo $GTKHTML_CFLAGS | ${SED} -e "s;-I/sw/include ;;" | ${SED} -e "s;-I/sw/include$;;"`
GTKHTML_CFLAGS=`echo $GTKHTML_CFLAGS | ${SED} -e "s;-I/sw/include/gtkhtml ;;" | ${SED} -e "s;-I/sw/includ/gtkhtmle$;;"`
;;
esac
AC_SUBST(GTKHTML_CFLAGS)
AC_SUBST(GTKHTML_LIBS)
###-----------------------------------------------------------------------
## Find a suitable password store
case $host_os in
darwin*)
AC_DEFINE(HAVE_OSX_KEYCHAIN,1,[System has an OS X Key chain])
;;
*)
PKG_CHECK_MODULES(GNOME_KEYRING, gnome-keyring-1 >= "0.6",
[AC_DEFINE(HAVE_GNOME_KEYRING,1,[System has gnome-keyring 0.6 or better])],
[AC_DEFINE(HAVE_NO_KEYRING,1,[System has no suitable keyring service])])
esac
### ----------------------------------------------------------------------
AC_ARG_ENABLE( efence,
[AS_HELP_STRING([--enable-efence],[link using efence])],
if test x$enableval = xyes; then
EFENCE_LIBS="-lefence"
USE_EFENCE=1
AC_DEFINE(USE_EFENCE,,We are using EFence)
fi,
USE_EFENCE=0
EFENCE_LIBS="")
AC_SUBST(EFENCE_LIBS)
### ----------------------------------------------------------------------
## For now, we just presume you're using the GNOME version. The other
## UI's haven't been carried over during the automake transition. At
## some point, if it's deemed worthwhile, they can be resurrected...
GNOME=1
AC_DEFINE(GNOME,,using GNOME)
else
# GNOME_COMPILE_WARNINGS will add -Wall; no need to set it again.
# also, only add it for GCC.
if test ${GCC}x = yesx
then
# We should always see these errors...
CFLAGS="${CFLAGS} -Wall"
fi
fi
### End of gui-only checks
###-------------------------------------------------------------------------
### Selectively disable deprecated bits of glib/gdk/gtk/gnome
###-------------------------------------------------------------------------
if test x${HAVE_UNTESTED_GLIB} = "xyes"
then
allow_deprecated=true
else
allow_deprecated=false
fi
AC_ARG_ENABLE(deprecated-glib,
[AS_HELP_STRING([--disable-deprecated-glib],[don't use deprecated glib functions])],
[case "${enableval}" in
no) allow_deprecated=false ;;
*) allow_deprecated=true ;;
esac]
)
if test x${allow_deprecated} != "xtrue"
then
AC_DEFINE(G_DISABLE_DEPRECATED,1, [Don't use deprecated glib functions])
fi
if test x${HAVE_UNTESTED_GTK} = "xyes"
then
allow_deprecated=true
else
allow_deprecated=false
fi
AC_ARG_ENABLE(deprecated-gtk,
[AS_HELP_STRING([--disable-deprecated-gtk],[don't use deprecated gtk, gdk or gdk-pixbuf 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])
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_GNOME} = "xyes"
then
allow_deprecated=true
else
allow_deprecated=false
fi
AC_ARG_ENABLE(deprecated-gnome,
[AS_HELP_STRING([--disable-deprecated-gnome],[don't use deprecated gnome functions])],
[case "${enableval}" in
no) allow_deprecated=false ;;
*) allow_deprecated=true ;;
esac]
)
if test x${allow_deprecated} != "xtrue"
then
AC_DEFINE(GNOME_DISABLE_DEPRECATED,1, [Don't use deprecated gnome functions])
fi
###-------------------------------------------------------------------------
### Stuff from Mac OS X Port
###-------------------------------------------------------------------------
AC_CHECK_FUNCS(pthread_mutex_init)
case $host_os in
darwin*)
AC_REPLACE_FUNCS(localtime_r gmtime_r)
AC_LIBOBJ(strptime)
;;
*)
AC_REPLACE_FUNCS(strptime localtime_r gmtime_r)
;;
esac
#AC_REPLACE_FUNCS(scm_strptime)
if test x$am_cv_val_LC_MESSAGES = "xno"; then
LC_MESSAGES_ENUM="LC_ALL"
else
LC_MESSAGES_ENUM="LC_MESSAGES"
fi
AC_SUBST(LC_MESSAGES_ENUM)
###--------------------------------------------------------
### Make Python bindings optional
###--------------------------------------------------------
enable_python=false
AC_ARG_ENABLE(python-bindings,
[AS_HELP_STRING([--enable-python-bindings],[enable python bindings])],
[case "${enableval}" in
yes) enable_python=true ;;
no) enable_python=false ;;
*) enable_python=true ;;
esac]
)
if test x${enable_python} = "xtrue"
then
# Check for Python. We require python-2.4
AM_PATH_PYTHON(2.4,,[
AC_MSG_ERROR([Could not find python >= 2.4. If you use --enable-python, you MUST have python installed!])
])
AC_PYTHON_DEVEL(>= '2.4')
if [ "x${PYTHON}" = "x" ]
then
AC_MSG_ERROR([Could not find Python development files. Make sure that the correct python-devel package is installed.])
fi
SWIG_PYTHON
_COMPONENTS="$_COMPONENTS python"
fi
AM_CONDITIONAL(WITH_PYTHON, [test x${enable_python} = xtrue])
###-------------------------------------------------------------------------
### Additional compiler warnings (or not) if we're running GCC
###-------------------------------------------------------------------------
# This has to come after AC_PROG_CC _AND_ GNOME_COMPILE_WARNINGS
AC_MSG_CHECKING(what extra warning flags to pass to the C compiler)
if test ${GCC}x = yesx
then
warnFLAGS=
CFLAGS="${CFLAGS} -Wno-unused"
# other flags...
# These next two are included in the GNOME_COMPILE_WARNINGS
#warnFLAGS="${warnFLAGS} -Wmissing-prototypes"
#warnFLAGS="${warnFLAGS} -Wmissing-declarations"
#warnFLAGS="${warnFLAGS} -Werror-implicit-function-declaration" # In -Wall
# error-on-warning should not be active in (stable) release tarballs
if test "x$BUILDING_FROM_SVN" = "xyes"
then
# This code is from SVN/SVK, so enable error-on-warning
error_on_warning_as_default="yes"
else
# This is from a tarball, so disable error-on-warning
error_on_warning_as_default="no"
fi
# Enable error-on-warning by default -- I'm tired of fixing other
# people's missing #includes, etc.
AC_ARG_ENABLE(error-on-warning,
[AS_HELP_STRING([--disable-error-on-warning],[disable treating compile warnings as errors])],
[case "${enableval}" in
yes) warnFLAGS="${warnFLAGS} -Werror" ; gnc_error_on_warning=yes ;;
no) gnc_error_on_warning=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-error-on-warning) ;;
esac],
[ if test "${error_on_warning_as_default}" = "yes"; then
warnFLAGS="${warnFLAGS} -Werror";
gnc_error_on_warning=auto
else
gnc_error_on_warning=no
fi
])
# For gcc >= 3.4.x, specifically enable the new warning switch
# -Wdeclaration-after-statement in order to preserve source code
# compatibility to gcc 2.95 and other compilers.
GCC_VERSION=`${CC} -dumpversion`
if test "`echo ${GCC_VERSION} | cut -d. -f1`" -ge 3; then
# This is gcc >= 3.x.x
if test "`echo ${GCC_VERSION} | cut -d. -f2`" -ge 4; then
# This is gcc >= 3.4.x
warnFLAGS="${warnFLAGS} -Wdeclaration-after-statement"
else if test "`echo ${GCC_VERSION} | cut -d. -f1`" -ge 4; then
# This is gcc == 4.x.x
warnFLAGS="${warnFLAGS} -Wdeclaration-after-statement -Wno-pointer-sign"
# rpmbuild on FC4 forces this flag. Can't hurt to always compile with it.
warnFLAGS="${warnFLAGS} -D_FORTIFY_SOURCE=2"
fi
fi
fi
CFLAGS="${warnFLAGS} ${CFLAGS}"
else
warnFLAGS=none
fi
AC_MSG_RESULT($warnFLAGS)
### --------------------------------------------------------------------------
### 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/bin/generate-gnc-script
### --------------------------------------------------------------------------
### Makefile creation
# This is necessary so that .o files in LIBOBJS are also built via
# the ANSI2KNR-filtering rules.
LIBOBJS_SEDSCRIPT="s,\.[[^.]]* ,$U&,g;s,\.[[^.]]*\$\$,$U&,"
AC_SUBST(LIBOBJS_SEDSCRIPT)
AC_CONFIG_FILES(
po/Makefile.in
dnl # Makefiles
Makefile
accounts/Makefile
accounts/C/Makefile
accounts/cs/Makefile
accounts/da/Makefile
accounts/de_AT/Makefile
accounts/de_CH/Makefile
accounts/de_DE/Makefile
accounts/el_GR/Makefile
accounts/en_GB/Makefile
accounts/es_ES/Makefile
accounts/es_MX/Makefile
accounts/fi_FI/Makefile
accounts/fr_CA/Makefile
accounts/fr_CH/Makefile
accounts/fr_FR/Makefile
accounts/hu_HU/Makefile
accounts/it/Makefile
accounts/ja/Makefile
accounts/ko/Makefile
accounts/lv/Makefile
accounts/nl/Makefile
accounts/nb/Makefile
accounts/pl/Makefile
accounts/pt_BR/Makefile
accounts/pt_PT/Makefile
accounts/ru/Makefile
accounts/sk/Makefile
accounts/sv_SE/Makefile
accounts/tr_TR/Makefile
accounts/zh_CN/Makefile
checks/Makefile
doc/Makefile
doc/examples/Makefile
intl-scm/Makefile
lib/Makefile
lib/guile-www/Makefile
lib/libc/Makefile
lib/stf/Makefile
packaging/Makefile
packaging/win32/Makefile
packaging/win32/gnucash.iss
src/Makefile
src/app-utils/Makefile
src/app-utils/test/Makefile
src/backend/Makefile
src/backend/dbi/Makefile
src/backend/dbi/test/Makefile
src/backend/xml/Makefile
src/backend/xml/test/Makefile
src/backend/xml/test/test-files/Makefile
src/backend/xml/test/test-files/xml2/Makefile
src/backend/sql/Makefile
src/backend/sql/test/Makefile
src/bin/Makefile
src/bin/overrides/Makefile
src/bin/test/Makefile
src/core-utils/Makefile
src/core-utils/test/Makefile
src/calculation/Makefile
src/calculation/test/Makefile
src/debug/Makefile
src/debug/valgrind/Makefile
src/doc/Makefile
src/doc/design/Makefile
src/doc/xml/Makefile
src/engine/Makefile
src/engine/test/Makefile
src/engine/test-core/Makefile
src/gnc-module/Makefile
src/gnc-module/test/Makefile
src/gnc-module/test/mod-foo/Makefile
src/gnc-module/test/mod-bar/Makefile
src/gnc-module/test/mod-baz/Makefile
src/gnc-module/test/misc-mods/Makefile
src/gnome/Makefile
src/gnome/gnucash.desktop.in
src/gnome/glade/Makefile
src/gnome/schemas/Makefile
src/gnome/ui/Makefile
src/gnome-utils/Makefile
src/gnome-utils/glade/Makefile
src/gnome-utils/schemas/Makefile
src/gnome-utils/test/Makefile
src/gnome-utils/ui/Makefile
src/gnome-search/Makefile
src/html/Makefile
src/import-export/Makefile
src/import-export/test/Makefile
src/import-export/qif-import/Makefile
src/import-export/qif/Makefile
src/import-export/qif/test/Makefile
src/import-export/qif-import/schemas/Makefile
src/import-export/qif-import/test/Makefile
src/import-export/schemas/Makefile
src/import-export/ofx/Makefile
src/import-export/ofx/test/Makefile
src/import-export/csv/Makefile
src/import-export/log-replay/Makefile
src/import-export/aqbanking/Makefile
src/import-export/aqbanking/schemas/Makefile
src/libqof/Makefile
src/libqof/qof/Makefile
src/libqof/qof/test/Makefile
src/optional/Makefile
src/optional/gtkmm/Makefile
src/optional/python-bindings/Makefile
src/optional/python-bindings/tests/Makefile
src/pixmaps/Makefile
src/quotes/Makefile
src/register/Makefile
src/register/ledger-core/Makefile
src/register/ledger-core/test/Makefile
src/register/register-core/Makefile
src/register/register-core/test/Makefile
src/register/register-gnome/Makefile
src/register/register-gnome/test/Makefile
src/report/Makefile
src/report/report-gnome/Makefile
src/report/report-gnome/test/Makefile
src/report/report-system/Makefile
src/report/report-system/test/Makefile
src/report/standard-reports/Makefile
src/report/standard-reports/test/Makefile
src/report/business-reports/Makefile
src/report/locale-specific/Makefile
src/report/locale-specific/us/Makefile
src/report/locale-specific/us/test/Makefile
src/report/stylesheets/Makefile
src/report/stylesheets/test/Makefile
src/report/utility-reports/Makefile
src/report/utility-reports/test/Makefile
src/scm/Makefile
src/scm/gnumeric/Makefile
src/tax/Makefile
src/tax/us/Makefile
src/tax/us/test/Makefile
src/test-core/Makefile
src/business/Makefile
src/business/business-core/Makefile
src/business/business-core/test/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
dnl # Stuff for bill/invoice import plugin
src/plugins/Makefile
src/plugins/bi_import/Makefile
src/plugins/bi_import/glade/Makefile
src/plugins/bi_import/ui/Makefile
dnl # non-makefiles
src/engine/iso-currencies-to-c
dnl # Please read doc/build-system before adding *anything* here
,
dnl # init-commands go here
)
# A few files need extra actions at creation time
AC_CONFIG_FILES([src/gnc-test-env], [chmod u+x src/gnc-test-env])
AC_CONFIG_FILES([src/bin/overrides/gnucash-make-guids], [chmod u+x src/bin/overrides/gnucash-make-guids])
AC_OUTPUT
AC_MSG_RESULT([
Options detected/selected
-------------------------
gnucash version ...... : $VERSION
Build for host ....... : $host
Optional components... : $_COMPONENTS
HTML engine .......... : $with_html_engine
Extra Warnings ....... : $warnFLAGS
CPPFLAGS ............. : $CPPFLAGS
CFLAGS ............... : $CFLAGS
LDFLAGS .............. : $LDFLAGS
prefix................ : ${prefix}
])