## -*-m4-*- dnl Process this file with autoconf to produce a configure script. # FILE: # configure.in # # FUNCTION: # implements checks for a variety of system-specific functions # # Contents: # Headers - Autoconf header stuff # Variables - Hardcoded variables # Programs - Check for programs binaries # Functions - Check for functions # With - Check for --with/without options # Enable - Check for --enable/disable options # Libraries - Check for libraries # Footer - Autoconf footer stuff # Autoconf initialization AC_PREREQ(2.59) AC_INIT([GnuCash], [2.3.14], [gnucash-devel@gnucash.org]) AC_CONFIG_HEADERS(config.h) AC_CONFIG_SRCDIR(src/engine/Transaction.h) # Initialize automake -- make sure we have at least version 1.9 AM_INIT_AUTOMAKE([1.9 dist-bzip2]) # Parse out the version number GNUCASH_VERSION_STRING=AC_PACKAGE_VERSION GNUCASH_MAJOR_VERSION=`echo $GNUCASH_VERSION_STRING | [ sed -e 's/^\([^\.]*\)\.\([^.]*\)\.\(.*\)$/\1/' ]` GNUCASH_MINOR_VERSION=`echo $GNUCASH_VERSION_STRING | [ sed -e 's/^\([^\.]*\)\.\([^.]*\)\.\(.*\)$/\2/' ]` GNUCASH_MICRO_VERSION=`echo $GNUCASH_VERSION_STRING | [ sed -e 's/^\([^\.]*\)\.\([^.]*\)\.\(.*\)$/\3/' ]` 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_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_LATEST_STABLE_SERIES, "$GNUCASH_LATEST_STABLE_SERIES", [Most recent stable GnuCash series]) dnl Set of available languages. ALL_LINGUAS="ca cs da de el en_GB es_NI es eu fa fi fr he hu it ja ko lt lv nb ne nl pl pt_BR pt ro ru rw sk sv ta tr uk vi zh_CN zh_TW" GETTEXT_PACKAGE=gnucash AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [GetText version number]) AM_GLIB_GNU_GETTEXT # Enable only when we have autoconf --version >= 2.59 # on all platforms. Note that AC_PREREQ(2.59) may be # insufficient to actually use v2.59 on OSX #AC_CONFIG_MACRO_DIR(macros) AC_PROG_INSTALL AC_LIBTOOL_DLOPEN AC_LIBTOOL_WIN32_DLL AM_DISABLE_STATIC AM_PROG_LIBTOOL AC_SUBST(LIBTOOL_DEPS) AC_ISC_POSIX AC_C_BIGENDIAN AC_PROG_MAKE_SET AC_PROG_LN_S AC_HEADER_STDC AC_CHECK_HEADERS(limits.h sys/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 ; then BUILDING_FROM_SVN=yes # We need at least version 1.3.31 of SWIG because # that's when SWIG doesn't barf on the "inline" keyword in C headers anymore AC_PROG_SWIG(1.3.31) else BUILDING_FROM_SVN=no # Make sure we've got swig-runtime.h and gnc-svninfo.h AC_CHECK_FILE(${srcdir}/src/swig-runtime.h, [], [AC_MSG_ERROR([ It looks like you are NOT building from Subversion but I cannot find swig-runtime.h. Check your PATH and make sure we can find svnversion in your PATH! Either that or contact gnucash-devel@gnucash.org because the tarball you downloaded is broken. ])]) AC_CHECK_FILE(${srcdir}/src/gnome-utils/gnc-svninfo.h, [], [AC_MSG_ERROR([ It looks like you are NOT building from Subversion but I cannot find gnc-svninfo.h. Check your PATH and make sure we can find svnversion in your PATH! Either that or contact gnucash-devel@gnucash.org because the tarball you downloaded is broken. ])]) fi AM_CONDITIONAL(BUILDING_FROM_SVN, test "x$BUILDING_FROM_SVN" = "xyes") # Build dir adjustments AM_CONDITIONAL(GNUCASH_SEPARATE_BUILDDIR, test "x${srcdir}" != "x.") # Init binreloc AM_BINRELOC ### -------------------------------------------------------------------------- ### See if we have pkg-config AC_PATH_PROG(PKG_CONFIG,pkg-config) if test "x$PKG_CONFIG" = x; then # @*%&$ Ximian programmers renamed this application AC_PATH_PROG(PKG_CONFIG,pkgconfig) if test "x$PKG_CONFIG" = x; then AC_MSG_ERROR([Could not find the pkg-config (or pkgconfig) program.],) fi fi ### -------------------------------------------------------------------------- ### Glib checks.. AM_PATH_GLIB_2_0(2.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_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="" GNUCASH_ENVIRONMENT="environment" 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([IGE_MAC], ige-mac-integration, [_ige_mac=yes], [_ige_mac=no]) if test "x$_ige_mac" = xyes; then IGE_MAC_LIBS="${IGE_MAC_LIBS} -lobjc" IGE_MAC_CFLAGS="${IGE_MAC_CFLAGS} -xobjective-c" fi AC_MSG_RESULT(${_ige_mac}) AC_SUBST(IGE_MAC_LIBS) AC_SUBST(IGE_MAC_CFLAGS) GNUCASH_ENVIRONMENT="environment-osx" else AC_MSG_RESULT(no) fi ;; mingw*|cygwin*) platform=win32 AC_MSG_RESULT($platform) GNUCASH_ENVIRONMENT="environment-win32" 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 #include ]], [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) AC_SUBST(GNUCASH_ENVIRONMENT) 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, , , [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.7 to build. ])]) AC_SUBST(GUILE) AC_DEFINE_UNQUOTED(GNC_GUILE_MAJOR_VERSION, ${guile_major_version}, [Guile Major version number]) AC_DEFINE_UNQUOTED(GNC_GUILE_MINOR_VERSION, ${guile_minor_version}, [Guile Minor version number]) AC_DEFINE_UNQUOTED(GNC_GUILE_MICRO_VERSION, ${guile_micro_version}, [Guile Micro version number]) AM_GUILE_VERSION_CHECK(1.8.0, , [ AC_DEFINE(HAVE_GUILE18,1,[System has guile 1.8 or better]) ], ) AS_SCRUB_INCLUDE(CFLAGS) AC_MSG_CHECKING([for SLIB support]) if ${GUILE} -c "(use-modules (ice-9 slib)) (require 'printf)" > /dev/null 2>&1 then AC_MSG_RESULT(yes) else AC_MSG_ERROR([ Cannot find SLIB. Are you sure you have it installed? See http://bugzilla.gnome.org/show_bug.cgi?id=347922 and http://bugzilla.gnome.org/show_bug.cgi?id=483631 ]) fi ### Check size of long_long - some guile's are broken. AC_MSG_CHECKING(if guile long_long is at least as big as gint64) GNC_OLDCFLAGS="$CFLAGS" GNC_OLDLDFLAGS="$LDFLAGS" CFLAGS="${GNOME_CFLAGS} ${GUILE_INCS} ${CFLAGS} ${GLIB_CFLAGS}" LDFLAGS="${LDFLAGS} ${GLIB_LIBS}" AC_TRY_RUN([ #include #include 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 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) LIBXML_VERSION=`$PKG_CONFIG --version xml` AS_SCRUB_INCLUDE(LIBXML2_CFLAGS) AC_SUBST(LIBXML2_CFLAGS) AC_SUBST(LIBXML2_LIBS) AC_SUBST(LIBXML_VERSION) oLIBS="$LIBS" LIBS="$LIBS $LIBXML2_LIBS" # Compile a test program to verify that the xml2 library works. AC_CHECK_LIB(xml2, xmlElemDump, [:], [ AC_MSG_ERROR([libxml2 is required for GnuCash]) ]) LIBS="$oLIBS" ### -------------------------------------------------------------------------- ### Zlib ZLIB_LIBS=-lz AC_SUBST(ZLIB_LIBS) oLIBS="$LIBS" LIBS="$LIBS $ZLIB_LIBS" AC_CHECK_LIB(z, gzopen, [:], [ AC_MSG_ERROR([zlib is required for GnuCash]) ]) LIBS="$oLIBS" ### -------------------------------------------------------------------------- ### QOF, the Query Object Framework. Check if there is a native version. dnl XXX: FIXME: RELEASE HACK dnl This makes sure that we default to using internal QOF for SVN. dnl Make sure to enable this to be the default for stable releases! AC_ARG_ENABLE(qof, [AS_HELP_STRING([--enable-qof],[enable the search for an external QOF library (disabled)])], [AC_MSG_ERROR([GnuCash has disabled use of external QOF.]) case "${enableval}" in yes) gnc_enable_qof=true ;; no) gnc_enable_qof=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-qof) ;; esac], [gnc_enable_qof=false]) AC_ARG_WITH(qof, [AS_HELP_STRING([--with-qof=path],[prefix for Query Object Framework - QOF (auto)])], [gnc_with_qof=$withval], [gnc_with_qof=yes]) AC_ARG_WITH(qt3_wizard_package, [AS_HELP_STRING([--with-qt3-wizard-package=name],[name of package containing qt3-wizard (aqbanking)])], [QT3_WIZARD_PACKAGE=$withval], [QT3_WIZARD_PACKAGE=aqbanking]) AC_DEFINE_UNQUOTED([QT3_WIZARD_PACKAGE],["$QT3_WIZARD_PACKAGE"],[Name of package containing qt3-wizard.]) # GnuCash builds without deprecated QOF code so needs latest version. QOF_REQUIRED=0.6.4 # Can't use external qof until it supports "alternate dirty mode" QOF_REQUIRED=99.99.99 if test "$gnc_enable_qof" = true ; then AC_MSG_CHECKING([for QOF, version >= $QOF_REQUIRED]) if test "$gnc_with_qof" != "yes"; then QOF=`$PKG_CONFIG --silence-errors --exists '$gnc_with_qof/lib/pkgconfig/qof-1.pc >= $QOF_REQUIRED'` QOF_LIBS=`$PKG_CONFIG --silence-errors --libs $gnc_with_qof/lib/pkgconfig/qof-1.pc` QOF_CFLAGS=`$PKG_CONFIG --silence-errors --cflags $gnc_with_qof/lib/pkgconfig/qof-1.pc` QOF_VERSION=`$PKG_CONFIG --silence-errors --modversion $gnc_with_qof/lib/pkgconfig/qof-1.pc` QOF_PREFIX=`$PKG_CONFIG --silence-errors --variable=prefix $gnc_with_qof/lib/pkgconfig/qof-1.pc` QOF_LIB_DIR=`$PKG_CONFIG --silence-errors --variable=libdir $gnc_with_qof/lib/pkgconfig/qof-1.pc` QOF_XML_DIR=`$PKG_CONFIG --silence-errors --variable=xmldir $gnc_with_qof/lib/pkgconfig/qof-1.pc` else QOF=`$PKG_CONFIG --silence-errors --exists 'qof-1 >= $QOF_REQUIRED'` QOF_LIBS=`$PKG_CONFIG --silence-errors --libs qof-1` QOF_CFLAGS=`$PKG_CONFIG --silence-errors --cflags qof-1` QOF_VERSION=`$PKG_CONFIG --silence-errors --modversion qof-1` QOF_PREFIX=`$PKG_CONFIG --silence-errors --variable=prefix qof-1` QOF_LIB_DIR=`$PKG_CONFIG --silence-errors --variable=libdir qof-1` QOF_XML_DIR=`$PKG_CONFIG --silence-errors --variable=xmldir qof-1` fi if test x$QOF_XML_DIR = x; then AC_MSG_RESULT([no, will use internal QOF code]) else AC_MSG_RESULT([yes]) fi else AC_MSG_NOTICE([External QOF Disabled. Using Internal QOF Code.]) fi if test x$QOF_XML_DIR = x; then QOF_LIB_DIR='${pkglibdir}' QOF_CFLAGS='-I${top_builddir}/src/libqof/qof -I${top_srcdir}/src/libqof/qof' QOF_LIBS='${top_builddir}/src/libqof/qof/libgnc-qof.la' QOF_VERSION="internal" QOF_PREFIX="internal" LIBQOF_LIBRARY_VERSION=1:4:0 AC_SUBST(LIBQOF_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_DEFINE(QOF_DISABLE_DEPRECATED,1, [Don't use deprecated qof functions]) ### ---------------------- ### 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 DBI_DIR=dbi else AC_MSG_ERROR( Unable to find dbi/dbi.h ) fi fi AC_SUBST(LIBDBI_LIBS) AC_SUBST(DBI_DIR) AC_SUBST(GNC_DBD_DIR) AM_CONDITIONAL(CUSTOM_GNC_DBD_DIR, [test x"$GNC_DBD_DIR" != "x"]) ### -------------------------------------------------------------------------- ### Variables ### Set up all the initial variable values... GNC_CONFIGDIR='${sysconfdir}/gnucash' GNC_DOC_INSTALL_DIR='${pkgdatadir}/doc' GNC_INCLUDE_DIR='${includedir}/gnucash' GNC_SCM_INSTALL_DIR='${pkgdatadir}/scm' GNC_SHAREDIR='${pkgdatadir}' GNC_LIBEXECDIR='${libexecdir}/gnucash' GNC_ACCOUNTS_DIR='${GNC_SHAREDIR}/accounts' GNC_CHECKS_DIR='${GNC_SHAREDIR}/checks' GNC_GLADE_DIR='${GNC_SHAREDIR}/glade' GNC_UI_DIR='${GNC_SHAREDIR}/ui' GNC_PIXMAP_DIR='${GNC_SHAREDIR}/pixmaps' AC_SUBST(GNC_ACCOUNTS_DIR) AC_SUBST(GNC_CHECKS_DIR) AC_SUBST(GNC_CONFIGDIR) AC_SUBST(GNC_DOC_INSTALL_DIR) AC_SUBST(GNC_GLADE_DIR) AC_SUBST(GNC_UI_DIR) AC_SUBST(GNC_INCLUDE_DIR) AC_SUBST(GNC_PIXMAP_DIR) AC_SUBST(GNC_SCM_INSTALL_DIR) AC_SUBST(GNC_SHAREDIR) AC_SUBST(GNC_LIBEXECDIR) AC_ARG_ENABLE( debug, [AS_HELP_STRING([--enable-debug],[compile with debugging flags set])], [ # remove any optimization flags... CFLAGS=`echo ${CFLAGS} | sed -e 's,-O.,,g'` # ...except for those the user wants. CFLAGS="${CFLAGS} -g ${USER_OPTIMIZATION}" LDFLAGS="${LDFLAGS} -g" AC_DEFINE(DEBUG_MEMORY,1,[Enable debug memory]) AC_DEFINE(DEBUG_MEMORY,0,[Enable debug memory])]) AC_ARG_ENABLE( profile, [AS_HELP_STRING([--enable-profile],[compile with profiling set])], CFLAGS="${CFLAGS} -pg" LDFLAGS="${LDFLAGS} -pg") AC_ARG_ENABLE( ref-counts-dumps, [AS_HELP_STRING([--enable-ref-counts-dumps],[compile with ref count dumps])], AC_DEFINE(DEBUG_REFERENCE_COUNTING,1,[Enable reference count dumps]) AC_DEFINE(DEBUG_REFERENCE_COUNTING,0,[Enable reference count dumps]) ) ### -------------------------------------------------------------------------- ### OFX want_ofx=auto AC_ARG_ENABLE( ofx, [AS_HELP_STRING([--enable-ofx],[compile with ofx support (needs LibOFX)])], [ case "$enableval" in yes) want_ofx=yes ;; no) want_ofx=no ;; esac[]dnl ] ) AC_MSG_CHECKING(whether to use OFX) case "${want_ofx}" in yes) AC_MSG_RESULT(yes -- failure is fatal) ;; no) AC_MSG_RESULT(no) ;; auto) AC_MSG_RESULT(yes -- automatic test) ;; esac if test x${want_ofx} != xno ; then AC_ARG_WITH( ofx-prefix, [AS_HELP_STRING([--with-ofx-prefix=DIR],[specify where to look for libOFX])], OFXPREFIX="$with_ofx_prefix" ) if test x${OFXPREFIX} != x ; then LIBOFX_LIBS="-L${OFXPREFIX}/lib" LIBOFX_CFLAGS="-I${OFXPREFIX}/include" fi if test "x${want_ofx}" != xno ; then # Version number verified. Now check header files. AC_MSG_CHECKING(for libofx/libofx.h) AS_SCRUB_INCLUDE(LIBOFX_CFLAGS) save_CPPFLAGS="${CPPFLAGS}" CPPFLAGS="${CPPFLAGS} ${LIBOFX_CFLAGS}" AC_TRY_CPP( [#include ], 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 ], AC_MSG_RESULT([yes (in /usr/local)]), [ if test "x${want_ofx}" = xyes ; then AC_MSG_ERROR([cannot find libofx header, needed for OFX support.]) else AC_MSG_RESULT([cannot find libofx header, needed for OFX support.]) want_ofx=no fi ] ) fi if test "x${want_ofx}" != xno ; then LIBOFX_LIBS="${LIBOFX_LIBS} -lofx" AC_MSG_CHECKING(for libofx) save_LIBS="${LIBS}" LIBS="${LIBS} ${LIBOFX_LIBS}" AC_TRY_LINK( [ #include ], [ LibofxContextPtr libofx_context = libofx_get_new_context(); libofx_free_context(libofx_context); ], AC_MSG_RESULT(yes), [ if test "x${want_ofx}" = xyes ; then AC_MSG_ERROR([*** Cannot compile test program for libofx library. Please check config.log for the exact error.]) else AC_MSG_RESULT([*** Cannot compile test program for libofx library. Please check config.log for the exact error.]) want_ofx=no fi ] ) LIBS="${save_LIBS}" CPPFLAGS="${save_CPPFLAGS}" AC_SUBST(LIBOFX_CFLAGS) AC_SUBST(LIBOFX_LIBS) fi fi fi if test "x${want_ofx}" != xno ; then OFX_DIR=ofx fi AC_SUBST(OFX_DIR) ### -------------------------------------------------------------------------- ### MT940 AC_ARG_ENABLE( mt940, [AS_HELP_STRING([--enable-mt940],[obsolete, included in --enable-aqbanking])], if test "x$enableval" != "xno" ; then AC_MSG_ERROR([--enable-mt940 is obsolete -- all functionality is already included in --enable-aqbanking]) fi) ### -------------------------------------------------------------------------- ### AqBanking AC_ARG_ENABLE( aqbanking, [AS_HELP_STRING([--enable-aqbanking],[compile with AqBanking support])], if test "x$enableval" != "xno" ; then want_aqbanking=yes fi) AC_ARG_ENABLE( hbci, [AS_HELP_STRING([--enable-hbci],[an alias for --enable-aqbanking])], if test "x$enableval" != "xno" ; then want_aqbanking=yes fi) if test x${want_aqbanking} = xyes ; then # Check for Aqbanking library # aqbanking-1.6.1 was released on 2005-11-04; aqbanking ships with # a pkg-config file since 1.6.1. PKG_CHECK_MODULES(AQBANKING, aqbanking >= 3.0.0 gwenhywfar, [AQBANKING_DIR=aqbanking], [ PKG_CHECK_MODULES(AQBANKING, aqbanking >= 1.6.1 aqbanking < 2.9.0 gwenhywfar, [AQBANKING_DIR=hbci], [ AC_MSG_ERROR([Could not find aqbanking > 1.6.0. If you use --enable-aqbanking or --enable-hbci, you *have* to have aqbanking installed!]) ]) ]) # also check for ktoblzcheck AC_CHECK_HEADERS(ktoblzcheck.h) if test "x$ac_cv_header_ktoblzcheck_h" != xno; then AQBANKING_LIBS="${AQBANKING_LIBS} -lktoblzcheck" fi AS_SCRUB_INCLUDE(AQBANKING_CFLAGS) AC_SUBST(AQBANKING_LIBS) AC_SUBST(AQBANKING_CFLAGS) fi AC_SUBST(AQBANKING_DIR) ### -------------------------------------------------------------------------- ### i18n # This variable is set by GLIB_WITH_NLS, called through # AM_GLIB_GNU_GETTEXT above. Usually it is "share", but on some # platforms it is "lib". Make sure it is set. if test "x$DATADIRNAME" = "x"; then DATADIRNAME="share" AC_SUBST(DATADIRNAME) fi dnl check for nl_langinfo(D_FMT) which is missing on FreeBSD LANGINFO_D_FMT_CHECK dnl Enable locale-specific tax-related information in the accounts AC_ARG_ENABLE( locale-specific-tax, [AS_HELP_STRING([--enable-locale-specific-tax],[enable localized tax categories (experimental)])], AC_DEFINE(LOCALE_SPECIFIC_TAX,1,Enable the experimental locale-specific tax categories) ) dnl Make sure we have a proper gettext installed AC_MSG_CHECKING(for a valid gettext/gmsgfmt installation) if test "$gt_cv_have_gettext" != "yes" || test "x$GMSGFMT" = "x"; then AC_MSG_RESULT(no) AC_MSG_ERROR([Cannot find Glib Gettext. Maybe you need to install the gettext package?]) else AC_MSG_RESULT(yes - $GMSGFMT) fi # ------------------------------------------------------------------------- # URLs for MySQL and PostgreSQL testing AC_ARG_WITH(test-mysql-url, AS_HELP_STRING([--with-test-mysql-url=URL], [MySQL database URL for testing [default=none]]), [],[with_test_mysql_url=""]) TEST_MYSQL_URL=$with_test_mysql_url AC_SUBST(TEST_MYSQL_URL) AC_ARG_WITH(test-pgsql-url, AS_HELP_STRING([--with-test-pgsql-url=URL], [PgSQL database URL for testing [default=none]]), [],[with_test_pgsql_url=""]) TEST_PGSQL_URL=$with_test_pgsql_url AC_SUBST(TEST_PGSQL_URL) ### -------------------------------------------------------------------------- ### help files # Used to initialize doc-path. AC_ARG_WITH( help-prefix, [AS_HELP_STRING([--with-help-prefix=PATH],[specify where to store the help files])], GNC_HELPDIR="$with_help_prefix", GNC_HELPDIR="\${datadir}") AC_SUBST(GNC_HELPDIR) ### -------------------------------------------------------------------------- ### Check for etags AC_ARG_ENABLE( etags, [AS_HELP_STRING([--enable-etags],[enable automatic create of TAGS file])], if test x$enableval = xyes; then USE_ETAGS=1 fi, USE_ETAGS=0) if test x${USE_ETAGS} = x1; then AC_CHECK_PROG(GNC_ETAGS_FILE, etags, TAGS) fi AM_CONDITIONAL(GNC_ETAGS_FILE, test x${GNC_ETAGS_FILE} = xTAGS) ### -------------------------------------------------------------------------- ### Check for ctags AC_ARG_ENABLE( ctags, [AS_HELP_STRING([--enable-ctags],[enable automatic create of tags file])], if test x$enableval = xyes; then USE_CTAGS=1 fi, USE_CTAGS=0) if test x${USE_CTAGS} = x1; then AC_CHECK_PROG(GNC_CTAGS_FILE, ctags, tags) fi AM_CONDITIONAL(GNC_CTAGS_FILE, test x${GNC_CTAGS_FILE} = xtags) ### -------------------------------------------------------------------------- ### Check for perl # Check for perl, force version 5 AC_ARG_WITH(perl, [AS_HELP_STRING([--with-perl=FILE],[which perl executable to use])], PERL="${with_perl}") # If the user didn't specify a perl, then go fetch. if test x"$PERL" = x; then AC_PATH_PROG(PERL, perl) fi # Make sure Perl was found if test x"$PERL" = x; then AC_MSG_ERROR([Cannot find Perl. Try using the --with-perl flag.]) fi # Make sure it's version 5 or later if "$PERL" -e 'exit 1 if $] < 5.0'; then : else AC_MSG_ERROR([Found ${PERL} reports version ] [`${PERL} -e 'print $]'`, need version 5.*]) fi AC_SUBST(PERL) # check for doxygen, mostly stolen from http://log4cpp.sourceforge.net/ # ---------------------------------------------------------------------------- AC_DEFUN([BB_ENABLE_DOXYGEN], [ AC_ARG_ENABLE(doxygen, [AS_HELP_STRING([--enable-doxygen],[enable documentation generation with doxygen (auto)])]) AC_ARG_ENABLE(dot, [AS_HELP_STRING([--enable-dot],[use 'dot' to generate graphs in doxygen (auto)])]) AC_ARG_ENABLE(html-docs, [AS_HELP_STRING([--enable-html-docs],[enable HTML generation with doxygen (yes)])], [], [ enable_html_docs=yes]) AC_ARG_ENABLE(latex-docs, [AS_HELP_STRING([--enable-latex-docs],[enable LaTeX documentation generation with doxygen (no)])], [], [ enable_latex_docs=no]) if test "x$enable_doxygen" = xno; then enable_doc=no else AC_PATH_PROG(DOXYGEN, doxygen, , $PATH) if test x$DOXYGEN = x; then if test "x$enable_doxygen" = xyes; then AC_MSG_ERROR([could not find doxygen]) fi enable_doc=no else enable_doc=yes AC_PATH_PROG(DOT, dot, , $PATH) fi fi AM_CONDITIONAL(DOC, test x$enable_doc = xyes) if test x$DOT = x; then if test "x$enable_dot" = xyes; then AC_MSG_ERROR([could not find dot]) fi enable_dot=no else enable_dot=yes fi AM_CONDITIONAL(ENABLE_DOXYGEN, test x$enable_doc = xtrue) AC_SUBST(enable_dot) AC_SUBST(enable_html_docs) AC_SUBST(enable_latex_docs) ]) # check for doxygen # ---------------------------------------------------------------------------- BB_ENABLE_DOXYGEN ### -------------------------------------------------------------------------- ### Libraries LIBS="$LIBS -lm" ### -------------------------------------------------------------------------- ### 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 -lwebkit-1.0" 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_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) AC_REPLACE_FUNCS(strptime localtime_r gmtime_r) #AC_REPLACE_FUNCS(scm_strptime) if test x$am_cv_val_LC_MESSAGES = "xno"; then LC_MESSAGES_ENUM="LC_ALL" else LC_MESSAGES_ENUM="LC_MESSAGES" fi AC_SUBST(LC_MESSAGES_ENUM) ###-------------------------------------------------------- ### Make Python bindings optional ###-------------------------------------------------------- enable_python=false AC_ARG_ENABLE(python-bindings, [AS_HELP_STRING([--enable-python-bindings],[enable python bindings])], [case "${enableval}" in yes) enable_python=true ;; no) enable_python=false ;; *) enable_python=true ;; esac] ) if test x${enable_python} = "xtrue" then PYTHON_DIR=python-bindings AM_PATH_PYTHON(2.4) AC_PYTHON_DEVEL(>= '2.4') SWIG_PYTHON fi AC_SUBST(PYTHON_DIR) ###------------------------------------------------------------------------- ### Additional compiler warnings (or not) if we're running GCC ###------------------------------------------------------------------------- # This has to come after AC_PROG_CC _AND_ GNOME_COMPILE_WARNINGS AC_MSG_CHECKING(what extra warning flags to pass to the C compiler) if test ${GCC}x = yesx then warnFLAGS= CFLAGS="${CFLAGS} -Wno-unused" # other flags... # These next two are included in the GNOME_COMPILE_WARNINGS #warnFLAGS="${warnFLAGS} -Wmissing-prototypes" #warnFLAGS="${warnFLAGS} -Wmissing-declarations" #warnFLAGS="${warnFLAGS} -Werror-implicit-function-declaration" # In -Wall # error-on-warning should not be active in (stable) release tarballs if test "x$BUILDING_FROM_SVN" = "xyes" then # This code is from SVN/SVK, so enable error-on-warning error_on_warning_as_default="yes" else # This is from a tarball, so disable error-on-warning error_on_warning_as_default="no" fi # Enable error-on-warning by default -- I'm tired of fixing other # people's missing #includes, etc. AC_ARG_ENABLE(error-on-warning, [AS_HELP_STRING([--disable-error-on-warning],[disable treating compile warnings as errors])], [case "${enableval}" in yes) warnFLAGS="${warnFLAGS} -Werror" ; gnc_error_on_warning=yes ;; no) gnc_error_on_warning=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-error-on-warning) ;; esac], [ if test "${error_on_warning_as_default}" = "yes"; then warnFLAGS="${warnFLAGS} -Werror"; gnc_error_on_warning=auto else gnc_error_on_warning=no fi ]) # For gcc >= 3.4.x, specifically enable the new warning switch # -Wdeclaration-after-statement in order to preserve source code # compatibility to gcc 2.95 and other compilers. GCC_VERSION=`${CC} -dumpversion` if test "`echo ${GCC_VERSION} | cut -d. -f1`" -ge 3; then # This is gcc >= 3.x.x if test "`echo ${GCC_VERSION} | cut -d. -f2`" -ge 4; then # This is gcc >= 3.4.x warnFLAGS="${warnFLAGS} -Wdeclaration-after-statement" else if test "`echo ${GCC_VERSION} | cut -d. -f1`" -ge 4; then # This is gcc == 4.x.x warnFLAGS="${warnFLAGS} -Wdeclaration-after-statement -Wno-pointer-sign" # rpmbuild on FC4 forces this flag. Can't hurt to always compile with it. warnFLAGS="${warnFLAGS} -D_FORTIFY_SOURCE=2" fi fi fi CFLAGS="${warnFLAGS} ${CFLAGS}" else warnFLAGS=none fi AC_MSG_RESULT($warnFLAGS) ### -------------------------------------------------------------------------- ### Adjustments -- especially executables that aren't generated via ### makefiles, so that we don't have an opportunity to adjust them ### there. chmod u+x ${srcdir}/src/gnc-test-env chmod u+x ${srcdir}/src/bin/generate-gnc-script chmod u+x ${srcdir}/src/bin/overrides/gnucash-make-guids ### -------------------------------------------------------------------------- ### Makefile creation # This is necessary so that .o files in LIBOBJS are also built via # the ANSI2KNR-filtering rules. LIBOBJS_SEDSCRIPT="s,\.[[^.]]* ,$U&,g;s,\.[[^.]]*\$\$,$U&," AC_SUBST(LIBOBJS_SEDSCRIPT) AC_CONFIG_FILES(po/Makefile.in dnl # Makefiles Makefile accounts/Makefile accounts/C/Makefile accounts/cs/Makefile accounts/da/Makefile accounts/de_AT/Makefile accounts/de_CH/Makefile accounts/de_DE/Makefile accounts/el_GR/Makefile accounts/en_GB/Makefile accounts/es_ES/Makefile accounts/es_MX/Makefile accounts/fi_FI/Makefile accounts/fr_CA/Makefile accounts/fr_CH/Makefile accounts/fr_FR/Makefile accounts/hu_HU/Makefile accounts/it/Makefile accounts/ja/Makefile accounts/ko/Makefile accounts/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/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/qif-io-core/Makefile src/import-export/qif-io-core/test/Makefile src/import-export/schemas/Makefile src/import-export/ofx/Makefile src/import-export/ofx/test/Makefile src/import-export/csv/Makefile src/import-export/log-replay/Makefile src/import-export/aqbanking/Makefile src/import-export/aqbanking/schemas/Makefile src/import-export/hbci/Makefile src/import-export/hbci/glade/Makefile src/import-export/hbci/schemas/Makefile src/import-export/hbci/test/Makefile src/libqof/Makefile src/libqof/qof/Makefile src/optional/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/locale-specific/Makefile src/report/locale-specific/us/Makefile src/report/locale-specific/us/test/Makefile src/report/stylesheets/Makefile src/report/stylesheets/test/Makefile src/report/utility-reports/Makefile src/report/utility-reports/test/Makefile src/scm/Makefile src/scm/gnumeric/Makefile src/tax/Makefile src/tax/us/Makefile src/tax/us/test/Makefile src/test-core/Makefile src/business/Makefile src/business/business-core/Makefile src/business/business-core/sql/Makefile src/business/business-core/sql/test/Makefile src/business/business-core/test/Makefile src/business/business-core/xml/Makefile src/business/business-utils/Makefile src/business/dialog-tax-table/Makefile src/business/business-gnome/Makefile src/business/business-gnome/glade/Makefile src/business/business-gnome/schemas/Makefile src/business/business-gnome/ui/Makefile src/business/business-ledger/Makefile src/business/business-reports/Makefile dnl # non-makefiles dnl # Please read doc/build-system before adding *anything* here , dnl # commands go here, but we don't have any right now ) AC_OUTPUT if test x${DBI_DIR} != x; then components="$components dbi" fi if test x${OFX_DIR} != x; then components="$components ofx" fi if test x${AQBANKING_DIR} != x; then components="$components $AQBANKING_DIR" fi if test x${PYTHON_DIR} != x; then components="$components python-bindings" fi AC_MSG_RESULT([ Options detected/selected ------------------------- gnucash version ...... : $VERSION Build for host ....... : $host Optional components... : $components HTML engine .......... : $with_html_engine Extra Warnings ....... : $warnFLAGS CPPFLAGS ............. : $CPPFLAGS CFLAGS ............... : $CFLAGS LDFLAGS .............. : $LDFLAGS prefix................ : ${prefix} ])