## -*-m4-*- dnl Process this file with autoconf to produce a configure script. # FILE: # configure.in # # FUNCTION: # implements checks for a variety of system-specific functions # # Contents: # Headers - Autoconf header stuff # Variables - Hardcoded variables # Programs - Check for programs binaries # Functions - Check for functions # With - Check for --with/without options # Enable - Check for --enable/disable options # Libraries - Check for libraries # Footer - Autoconf footer stuff # Autoconf initialization AC_PREREQ(2.59) AC_INIT([gnucash], [1.9.1], [gnucash-devel@gnucash.org]) AC_CONFIG_HEADERS(config.h) AC_CONFIG_SRCDIR(src/engine/Transaction.h) # Initialize automake -- make sure we have at least version 1.9 AM_INIT_AUTOMAKE(1.9) # Parse out the version number GNUCASH_VERSION_STRING=AC_PACKAGE_VERSION GNUCASH_MAJOR_VERSION=`echo $GNUCASH_VERSION_STRING | [ sed -e 's/^\([^\.]*\)\.\([^.]*\)\.\(.*\)$/\1/' ]` GNUCASH_MINOR_VERSION=`echo $GNUCASH_VERSION_STRING | [ sed -e 's/^\([^\.]*\)\.\([^.]*\)\.\(.*\)$/\2/' ]` GNUCASH_MICRO_VERSION=`echo $GNUCASH_VERSION_STRING | [ sed -e 's/^\([^\.]*\)\.\([^.]*\)\.\(.*\)$/\3/' ]` ## Do this first, because the other tests depend on it: # Check for gcc and intltool (somehow breaks the suggested content # order, doesn't it? Whatever.) AC_PROG_CC AC_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 (or libtool-ltdl-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. GnuCash requires at least version 1.3.3 to build, and 1.9.6 to build cleanly with GCC4. If you need to install g-wrap, you can find it at http://www.nongnu.org/g-wrap/ . ])]) # Find out what the g-wrap compile and link flags are. AC_MSG_CHECKING(for g-wrap compile args) G_WRAP_COMPILE_ARGS=`${G_WRAP_CONFIG} --c-compile-args guile` AC_MSG_RESULT($G_WRAP_COMPILE_ARGS) AC_MSG_CHECKING(for g-wrap link args) G_WRAP_LINK_ARGS=`${G_WRAP_CONFIG} --c-link-args guile` # Dear g-wrap: adding -L/usr/lib is very silly. Do not do this. G_WRAP_LINK_ARGS=`echo ${G_WRAP_LINK_ARGS} | sed -e 's|-L/usr/lib ||'` AC_MSG_RESULT($G_WRAP_LINK_ARGS) AC_MSG_CHECKING(for g-wrap module directory) G_WRAP_MODULE_DIR=`${G_WRAP_CONFIG} --guile-module-directory` G_WRAP_LIB_DIR=`echo $G_WRAP_MODULE_DIR | sed -e 's|share/guile.*$|lib|'` AC_MSG_RESULT($G_WRAP_MODULE_DIR) AC_GWRAP_CHECK_GUILE($G_WRAP_MODULE_DIR) save_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS $G_WRAP_COMPILE_ARGS" AC_CHECK_HEADER(g-wrap-wct.h,, [AC_MSG_ERROR([ cannot find g-wrap-wct.h where g-wrap claims it should be. are you on Debian or Ubuntu and still using g-wrap 1.9.6-2? See: http://bugzilla.gnome.org/show_bug.cgi?id=330539 ])]) CPPFLAGS=$save_CPPFLAGS AC_SUBST(G_WRAP_CONFIG) AC_SUBST(G_WRAP_COMPILE_ARGS) AC_SUBST(G_WRAP_LINK_ARGS) AC_SUBST(G_WRAP_MODULE_DIR) AC_SUBST(G_WRAP_LIB_DIR) AS_SCRUB_INCLUDE(CFLAGS) ### 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 #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) ]) 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 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 AM_CONDITIONAL(GNC_HAVE_GUILE_WWW, test "${gnc_have_guile_www}" = yes) ### -------------------------------------------------------------------------- ### look for gconf PKG_CHECK_MODULES(GCONF, gconf-2.0 >= "2.0") AC_SUBST(GCONF_CFLAGS) AC_SUBST(GCONF_LIBS) ### -------------------------------------------------------------------------- ### LIBXML -- GNOME_XML_LIB is defined by GNOME_XML_CHECK LIBXML2_REQUIRED=2.5.10 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= $LIBXML2_REQUIRED) LIBXML_VERSION=`$PKG_CONFIG --version xml` AS_SCRUB_INCLUDE(LIBXML2_CFLAGS) AC_SUBST(LIBXML2_CFLAGS) AC_SUBST(LIBXML2_LIBS) AC_SUBST(LIBXML_VERSION) oLIBS="$LIBS" LIBS="$LIBS $LIBXML2_LIBS" # Compile a test program to verify that the xml2 library works. AC_CHECK_LIB(xml2, xmlElemDump, [:], [ AC_MSG_ERROR([libxml2 is required for GnuCash]) ]) LIBS="$oLIBS" ### -------------------------------------------------------------------------- ### QOF, the Query Object Framework. Check if there is a native version. dnl XXX: FIXME: RELEASE HACK dnl This makes sure that we default to using internal QOF for SVN. dnl Make sure to enable this 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)], [gnc_with_qof=$withval], [gnc_with_qof=yes]) # 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 "$gnc_with_qof" != "yes"; then QOF=`$PKG_CONFIG --silence-errors --exists '$gnc_with_qof/lib/pkgconfig/qof-1.pc >= $QOF_REQUIRED'` QOF_LIBS=`$PKG_CONFIG --silence-errors --libs $gnc_with_qof/lib/pkgconfig/qof-1.pc` QOF_CFLAGS=`$PKG_CONFIG --silence-errors --cflags $gnc_with_qof/lib/pkgconfig/qof-1.pc` QOF_VERSION=`$PKG_CONFIG --silence-errors --modversion $gnc_with_qof/lib/pkgconfig/qof-1.pc` QOF_PREFIX=`$PKG_CONFIG --silence-errors --variable=prefix $gnc_with_qof/lib/pkgconfig/qof-1.pc` QOF_LIB_DIR=`$PKG_CONFIG --silence-errors --variable=libdir $gnc_with_qof/lib/pkgconfig/qof-1.pc` QOF_XML_DIR=`$PKG_CONFIG --silence-errors --variable=xmldir $gnc_with_qof/lib/pkgconfig/qof-1.pc` else QOF=`$PKG_CONFIG --silence-errors --exists 'qof-1 >= $QOF_REQUIRED'` QOF_LIBS=`$PKG_CONFIG --silence-errors --libs qof-1` QOF_CFLAGS=`$PKG_CONFIG --silence-errors --cflags qof-1` QOF_VERSION=`$PKG_CONFIG --silence-errors --modversion qof-1` QOF_PREFIX=`$PKG_CONFIG --silence-errors --variable=prefix qof-1` QOF_LIB_DIR=`$PKG_CONFIG --silence-errors --variable=libdir qof-1` QOF_XML_DIR=`$PKG_CONFIG --silence-errors --variable=xmldir qof-1` fi if test x$QOF_XML_DIR = x; then AC_MSG_RESULT([no, will use internal QOF code]) else AC_MSG_RESULT([yes]) fi else AC_MSG_NOTICE([External QOF Disabled. Using Internal QOF Code.]) fi if test x$QOF_XML_DIR = x; then QOF_LIB_DIR='${libdir}' QOF_CFLAGS='-I${top_builddir}/lib/libqof/qof -I${top_srcdir}/lib/libqof/qof' QOF_LIBS='${top_builddir}/lib/libqof/qof/libqof.la' QOF_VERSION="internal" QOF_PREFIX="internal" QOF_XML_DIR='${datadir}/xml/qsf' LIBQOF_LIBRARY_VERSION=1:3:0 LIBQOF_BACKEND_QSF_LIBRARY_VERSION=0:2: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) ### -------------------------------------------------------------------------- ### Variables ### Set up all the initial variable values... GNC_CONFIGDIR='${sysconfdir}/gnucash' GNC_DOC_INSTALL_DIR='${pkgdatadir}/doc' GNC_INCLUDE_DIR='${includedir}/gnucash' GNC_LIBDIR='${pkglibdir}' GNC_SCM_INSTALL_DIR='${pkgdatadir}/scm' GNC_SHAREDIR='${pkgdatadir}' GNC_LIBEXECDIR='${libexecdir}/gnucash' GNC_ACCOUNTS_DIR='${GNC_SHAREDIR}/accounts' GNC_GLADE_DIR='${GNC_SHAREDIR}/glade' GNC_UI_DIR='${GNC_SHAREDIR}/ui' GNC_GWRAP_LIBDIR='${GNC_SHAREDIR}/guile-modules/g-wrapped' GNC_MODULE_DIR='${pkglibdir}' GNC_PIXMAP_DIR='${GNC_SHAREDIR}/pixmaps' AC_SUBST(GNC_ACCOUNTS_DIR) AC_SUBST(GNC_CONFIGDIR) AC_SUBST(GNC_DOC_INSTALL_DIR) AC_SUBST(GNC_GLADE_DIR) AC_SUBST(GNC_UI_DIR) AC_SUBST(GNC_GWRAP_LIBDIR) AC_SUBST(GNC_INCLUDE_DIR) AC_SUBST(GNC_LIBDIR) AC_SUBST(GNC_MODULE_DIR) AC_SUBST(GNC_PIXMAP_DIR) AC_SUBST(GNC_SCM_INSTALL_DIR) AC_SUBST(GNC_SHAREDIR) AC_SUBST(GNC_LIBEXECDIR) AC_ARG_ENABLE( debug, [ --enable-debug compile with debugging flags set], CFLAGS="${CFLAGS} -g" LDFLAGS="${LDFLAGS} -g" AC_DEFINE(DEBUG_MEMORY,1,Enable debug memory), AC_DEFINE(DEBUG_MEMORY,0,Enable debug memory) ) AC_ARG_ENABLE( profile, [ --enable-profile compile with profiling set], CFLAGS="${CFLAGS} -pg" LDFLAGS="${LDFLAGS} -pg") AC_ARG_ENABLE( ref-counts-dumps, [ --enable-ref-counts-dumps compile with ref count dumps], AC_DEFINE(DEBUG_REFERENCE_COUNTING,1,Enable reference count dumps), AC_DEFINE(DEBUG_REFERENCE_COUNTING,0,Enable reference count dumps) ) ### -------------------------------------------------------------------------- ### SQL # Check to see if the user wants to have Postgres support # # hack alert ... we should use 'pg_config --includedir' and # 'pg_config --libdir' to find paths; unfortunately pg_config itself # is hard to find :-( AC_ARG_ENABLE( sql, [ --enable-sql compile with sql support], [ PG_CONFIG=`which pg_config` if test "x$PG_CONFIG" = "x" ; then PG_CONFIG="/usr/lib/postgresql/bin/pg_config" fi if test "x$enableval" != "xno" ; then PGSQL_CFLAGS=`${PG_CONFIG} --includedir` if test "x$PGSQL_CFLAGS" != x; then PGSQL_CFLAGS="-I${PGSQL_CFLAGS}" fi AS_SCRUB_INCLUDE(PGSQL_CFLAGS) # XXX Fixme: CPPFLAGS are saved but CFLAGS are altered later on and not restored. saved_CPPFLAGS="${CPPFLAGS}" saved_CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS} ${PGSQL_CFLAGS}" AC_CHECK_HEADERS(pgsql/libpq-fe.h postgresql/libpq-fe.h libpq-fe.h) if test "x$ac_cv_header_pgsql_libpq_fe_h$ac_cv_header_postgresql_libpq_fe_h$ac_cv_header_libpq_fe_h" = xnonono; then AC_MSG_ERROR([Cannot find PostgreSQL headers; won't build sql backend]) else master_dirs="/usr/include /usr/local/include" if test "x$ac_cv_header_pgsql_libpq_fe_h" != xno; then for dir in $master_dirs; do if test -f "$dir/pgsql/libpq-fe.h"; then CFLAGS="${CFLAGS} -I$dir/pgsql" break fi done elif test "x$ac_cv_header_postgresql_libpq_fe_h" != xno; then for dir in $master_dirs; do if test -f "$dir/postgresql/libpq-fe.h"; then CFLAGS="${CFLAGS} -I$dir/postgresql" break fi done fi AS_SCRUB_INCLUDE(CFLAGS) PGSQL_LIBS=`${PG_CONFIG} --libdir` if test "x$PGSQL_LIBS" != x; then PGSQL_LIBS="-L${PGSQL_LIBS}" fi saved_LIBS="$LIBS" LIBS="${PGSQL_LIBS} -lpq $LIBS" AC_MSG_CHECKING(for libpq) AC_TRY_LINK( [ #include ], [ PQconnectdb("asdf"); ], [ AC_MSG_RESULT(yes) SQL_DIR=postgres ], [ AC_MSG_ERROR([Cannot find PostgreSQL libraries; will not build sql backend]) ] ) LIBS="$saved_LIBS" fi CPPFLAGS="$saved_CPPFLAGS" CFLAGS="$saved_CFLAGS" fi ] ) AC_SUBST(PGSQL_CFLAGS) AC_SUBST(PGSQL_LIBS) AC_SUBST(SQL_DIR) ### -------------------------------------------------------------------------- ### RPC has been removed in gnucash 1.9.0 ### -------------------------------------------------------------------------- ### OFX want_ofx=auto AC_ARG_ENABLE( ofx, [ --enable-ofx compile with ofx support (needs LibOFX)], [ case "$enableval" in yes) want_ofx=yes ;; no) want_ofx=no ;; esac[]dnl ] ) AC_MSG_CHECKING(whether to use OFX) case "${want_ofx}" in yes) AC_MSG_RESULT(yes -- failure is fatal) ;; no) AC_MSG_RESULT(no) ;; auto) AC_MSG_RESULT(yes -- automatic test) ;; esac if test x${want_ofx} != xno ; then AC_ARG_WITH( ofx-prefix, [ --with-ofx-prefix=DIR specify where to look for libOFX], OFXPREFIX="$with_ofx_prefix" ) if test x${OFXPREFIX} != x ; then LIBOFX_LIBS="-L${OFXPREFIX}/lib" LIBOFX_CFLAGS="-I${OFXPREFIX}/include" fi ### Check libofx version # Obtain version string AC_MSG_CHECKING(for libofx version >= 0.7.0) if test x${OFXPREFIX} = x ; then ofx_version_output=`ofxdump --version` else ofx_version_output=`${OFXPREFIX}/bin/ofxdump --version` fi # Extract version number; output format changed from 0.6.x to 0.7.x LIBOFX_VERSION=`echo ${ofx_version_output} | sed 's/\([[^0-9]]*\)\([[0-9]]*\.\)/\2/' ` LIBOFX_VERSION_MAJOR=`echo ${LIBOFX_VERSION} | cut -d. -f1` LIBOFX_VERSION_MINOR=`echo ${LIBOFX_VERSION} | cut -d. -f2` # Make sure the numbers are not empty if test x${LIBOFX_VERSION_MAJOR} = x ; then LIBOFX_VERSION_MAJOR=0 fi if test x${LIBOFX_VERSION_MINOR} = x ; then LIBOFX_VERSION_MINOR=0 fi # Now check for >= 0.7.x or >= 1.x.x if test "${LIBOFX_VERSION_MAJOR}" -ge 1 -o \ "${LIBOFX_VERSION_MINOR}" -ge 7; then # This is libofx >= 0.7.x AC_MSG_RESULT([found ${LIBOFX_VERSION}]) else if x${want_ofx} = xyes ; then AC_MSG_ERROR([found ${LIBOFX_VERSION}; Libofx 0.7.0 or newer needed for ofx support]) else AC_MSG_RESULT([found ${LIBOFX_VERSION}; Libofx 0.7.0 or newer needed for ofx support]) want_ofx=no fi fi if test "x${want_ofx}" != xno ; then # Version number verified. Now check header files. AC_MSG_CHECKING(for libofx/libofx.h) AS_SCRUB_INCLUDE(LIBOFX_CFLAGS) save_CPPFLAGS="${CPPFLAGS}" CPPFLAGS="${CPPFLAGS} ${LIBOFX_CFLAGS}" AC_TRY_CPP( [#include ], 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, [ --enable-mt940 compile with MT940 support (needs --enable-hbci)], if test "x$enableval" != "xno" ; then MT940_DIR=mt940 fi) if test x${MT940_DIR} = xmt940 ; then AC_MSG_WARN([MT940 importing support is enabled but is totally experimental!]) PKG_CHECK_MODULES(HBCI, aqbanking >= "1.3.0", [], [ # aqbanking-1.3.0 was released on 2005-08-11 AC_AQBANKING(1,3,0) if test x${have_aqbanking} != xyes; then AC_MSG_ERROR([Could not find aqbanking. If you use --enable-mt940, you *have* to enable aqbanking.]) fi HBCI_LIBS="${aqbanking_libs}" HBCI_CFLAGS="${aqbanking_includes}" ]) # Note: HBCI_LIBS is changed again below in the --enable-hbci # section. So check for mt940 first and *not* the other way round! AS_SCRUB_INCLUDE(HBCI_CFLAGS) AC_SUBST(HBCI_LIBS) AC_SUBST(HBCI_CFLAGS) fi AC_SUBST(MT940_DIR) ### -------------------------------------------------------------------------- ### HBCI AC_ARG_ENABLE( hbci, [ --enable-hbci compile with HBCI support (needs AqBanking)], if test "x$enableval" != "xno" ; then HBCI_DIR=hbci fi) if test x${HBCI_DIR} = xhbci ; then # Check for Aqbanking library PKG_CHECK_MODULES(HBCI, aqbanking >= "1.0.0", [], [ AC_AQBANKING(1,0,0) if test x${have_aqbanking} != xyes; then AC_MSG_ERROR([Could not find aqbanking. If you use --enable-hbci, you *have* to enable aqbanking.]) fi HBCI_LIBS="${aqbanking_libs}" HBCI_CFLAGS="${aqbanking_includes}" ]) # also check for ktoblzcheck AC_CHECK_HEADERS(ktoblzcheck.h) if test "x$ac_cv_header_ktoblzcheck_h" != xno; then HBCI_LIBS="${HBCI_LIBS} -lktoblzcheck" fi AS_SCRUB_INCLUDE(HBCI_CFLAGS) AC_SUBST(HBCI_LIBS) AC_SUBST(HBCI_CFLAGS) fi AC_SUBST(HBCI_DIR) ### -------------------------------------------------------------------------- ### i18n AC_ARG_WITH( locale-dir, [ --with-locale-dir=PATH specify where to look for locale-specific information], LOCALE_DIR="$with_locale_dir", LOCALE_DIR="\${prefix}/share/locale") AC_SUBST(LOCALE_DIR) dnl check for nl_langinfo(D_FMT) which is missing on FreeBSD LANGINFO_D_FMT_CHECK dnl Enable locale-specific tax-related information in the accounts AC_ARG_ENABLE( locale-specific-tax, [ --enable-locale-specific-tax enable localized tax categories (experimental)], AC_DEFINE(LOCALE_SPECIFIC_TAX,1,Enable the experimental locale-specific tax categories) ) ### -------------------------------------------------------------------------- ### help files # Used to initialize doc-path. AC_ARG_WITH( help-prefix, [ --with-help-prefix=PATH specify where to store the help files], GNC_HELPDIR="$with_help_prefix", GNC_HELPDIR="\${datadir}") AC_SUBST(GNC_HELPDIR) ### -------------------------------------------------------------------------- ### Check for etags AC_ARG_ENABLE( etags, [ --enable-etags enable automatic create of TAGS file], if test $enableval = yes; then USE_ETAGS=1 fi, USE_ETAGS=0) if test ${USE_ETAGS} = 1; then AC_CHECK_PROG(GNC_ETAGS_FILE, etags, TAGS) fi AM_CONDITIONAL(GNC_ETAGS_FILE, test x${GNC_ETAGS_FILE} = xTAGS) ### -------------------------------------------------------------------------- ### Check for ctags AC_ARG_ENABLE( ctags, [ --enable-ctags enable automatic create of tags file], if test $enableval = yes; then USE_CTAGS=1 fi, USE_CTAGS=0) if test ${USE_CTAGS} = 1; then AC_CHECK_PROG(GNC_CTAGS_FILE, ctags, tags) fi AM_CONDITIONAL(GNC_CTAGS_FILE, test x${GNC_CTAGS_FILE} = xtags) ### -------------------------------------------------------------------------- ### Check for perl # Check for perl, force version 5 AC_ARG_WITH(perl, [ --with-perl=FILE which perl executable to use ], PERL="${with_perl}") # If the user didn't specify a perl, then go fetch. if test x"$PERL" = x; then AC_PATH_PROG(PERL, perl) fi # Make sure Perl was found if test x"$PERL" = x; then AC_MSG_ERROR([Cannot find Perl. Try using the --with-perl flag.]) fi # Make sure it's version 5 or later if "$PERL" -e 'exit 1 if $] < 5.0'; then : else AC_MSG_ERROR([Found ${PERL} reports version ] [`${PERL} -e 'print $]'`, need version 5.*]) fi AC_SUBST(PERL) # Now check for perl headers # This appears to be what Perl's ExtUtils::MakeMaker module does, so # I'm reasonably sure it's correct. # PERLINCL="/usr/lib/perl5/i386-linux/5.00404" # PERLINCL=`$PERL -MConfig -e 'print $Config{"archlibexp"}'` AC_ARG_WITH( perl-includes, [ --with-perl-includes=DIR specify where to look for perl includes], PERLINCL="$with_perl_includes" ) AC_SUBST(PERLINCL) # check for doxygen, mostly stolen from http://log4cpp.sourceforge.net/ # ---------------------------------------------------------------------------- AC_DEFUN([BB_ENABLE_DOXYGEN], [ AC_ARG_ENABLE(doxygen, [ --enable-doxygen enable documentation generation with doxygen (auto)]) AC_ARG_ENABLE(dot, [ --enable-dot use 'dot' to generate graphs in doxygen (auto)]) AC_ARG_ENABLE(html-docs, [ --enable-html-docs enable HTML generation with doxygen (yes)], [], [ enable_html_docs=yes]) AC_ARG_ENABLE(latex-docs, [ --enable-latex-docs enable LaTeX documentation generation with doxygen (no)], [], [ enable_latex_docs=no]) if test "x$enable_doxygen" = xno; then enable_doc=no else AC_PATH_PROG(DOXYGEN, doxygen, , $PATH) if test x$DOXYGEN = x; then if test "x$enable_doxygen" = xyes; then AC_MSG_ERROR([could not find doxygen]) fi enable_doc=no else enable_doc=yes AC_PATH_PROG(DOT, dot, , $PATH) fi fi AM_CONDITIONAL(DOC, test x$enable_doc = xyes) if test x$DOT = x; then if test "x$enable_dot" = xyes; then AC_MSG_ERROR([could not find dot]) fi enable_dot=no else enable_dot=yes fi AM_CONDITIONAL(ENABLE_DOXYGEN, test x$enable_doc = xtrue) AC_SUBST(enable_dot) AC_SUBST(enable_html_docs) AC_SUBST(enable_latex_docs) ]) # check for doxygen # ---------------------------------------------------------------------------- BB_ENABLE_DOXYGEN # check for callgrind # ---------------------------------------------------------------------------- AC_CHECK_HEADERS(valgrind/callgrind.h) ### -------------------------------------------------------------------------- ### Libraries LIBS="$LIBS -lm" ### -------------------------------------------------------------------------- ### popt AC_CHECK_HEADERS(popt.h) AC_CHECK_LIB(popt, poptStrippedArgv,, [AC_MSG_ERROR([ popt 1.5 or newer is required to build gnucash. You can download the latest version from ftp://people.redhat.com/sopwith/popt/, or if you're running Debian, install the libpopt-dev package. ])]) ### -------------------------------------------------------------------------- ### Whether or not to build the GTK GUI components. ### When disabled, we don't even need to check for them! ### -------------------------------------------------------------------------- AC_ARG_ENABLE(gui, [ --disable-gui build without the GNOME GUI components of Gnucash], [case "${enableval}" in yes) gnc_build_gui=true ;; no) gnc_build_gui=false ;; *) gnc_build_gui=true ;; esac], [gnc_build_gui=true]) AM_CONDITIONAL(GNUCASH_ENABLE_GUI, test x${gnc_build_gui} = xtrue) ### -------------------------------------------------------------------------- ### GNOME gui components -- built by default, but not if --enable-gui=no ### or --disable-gui is passed to autogen ### -------------------------------------------------------------------------- if test x${gnc_build_gui} = xtrue ; then if test x${enable_compile_warnings} = x ; then enable_compile_warnings="yes" fi GNOME_COMPILE_WARNINGS PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.4) AS_SCRUB_INCLUDE(GTK_CFLAGS) AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) HAVE_UNTESTED_GDK=yes HAVE_UNTESTED_GTK=yes PKG_CHECK_MODULES(GNOME, libgnomeui-2.0 >= 2.4) AS_SCRUB_INCLUDE(GNOME_CFLAGS) AC_SUBST(GNOME_CFLAGS) AC_SUBST(GNOME_LIBS) AC_MSG_CHECKING([for untested GNOME versions (libgnome > 2.13.7)]) if $PKG_CONFIG 'libgnome-2.0 > 2.13.7' then AC_MSG_RESULT(yes) HAVE_UNTESTED_GNOME=yes else AC_MSG_RESULT(no) fi PKG_CHECK_MODULES(GDK_PIXBUF, gdk-pixbuf-2.0) AS_SCRUB_INCLUDE(GDK_PIXBUF_CFLAGS) AC_SUBST(GDK_PIXBUF_CFLAGS) AC_SUBST(GDK_PIXBUF_LIBS) PKG_CHECK_MODULES(GNOME_PRINT, libgnomeprint-2.2 libgnomeprintui-2.2) AS_SCRUB_INCLUDE(GNOME_PRINT_CFLAGS) AC_SUBST(GNOME_PRINT_CFLAGS) AC_SUBST(GNOME_PRINT_LIBS) PKG_CHECK_MODULES(GLADE, libglade-2.0 >= 2.4) AS_SCRUB_INCLUDE(GLADE_CFLAGS) AC_SUBST(GLADE_CFLAGS) AC_SUBST(GLADE_LIBS) # check for gtkhtml 3.x versions. gtkhtml=0 PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.8 , [gtkhtml=1] , [gtkhtml=0]) if test $gtkhtml = 0 then PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.6 , [gtkhtml=1] , [gtkhtml=0]) if test $gtkhtml = 0 then PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.2 , [gtkhtml=1] , [gtkhtml=0]) if test $gtkhtml = 0 then PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.1 , [gtkhtml=1], AC_MSG_ERROR([Could not find a working gtkhtml version (need 3.1, 3.2, 3.6, or 3.8)])) fi fi fi AS_SCRUB_INCLUDE(GTKHTML_CFLAGS) dnl if Mac OSX, also scrub /sw/include dnl GIVEN_CFLAGS=$(echo $GIVEN_CFLAGS | sed -e "s;-I/sw/include ;;" | sed -e "s;-I/sw/include$;;") case $host_os in darwin*) GTKHTML_CFLAGS=$(echo $GTKHTML_CFLAGS | ${SED} -e "s;-I/sw/include ;;" | ${SED} -e "s;-I/sw/include$;;") GTKHTML_CFLAGS=$(echo $GTKHTML_CFLAGS | ${SED} -e "s;-I/sw/include/gtkhtml ;;" | ${SED} -e "s;-I/sw/includ/gtkhtmle$;;") ;; esac AC_SUBST(GTKHTML_CFLAGS) AC_SUBST(GTKHTML_LIBS) ### ---------------------------------------------------------------------- AC_ARG_ENABLE( efence, [ --enable-efence link using efence], if test $enableval = yes; then EFENCE_LIBS="-lefence" USE_EFENCE=1 AC_DEFINE(USE_EFENCE,,We are using EFence) fi, USE_EFENCE=0 EFENCE_LIBS="") AC_SUBST(EFENCE_LIBS) ### ---------------------------------------------------------------------- ### 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 ### ------------------------------------------------------------------------ ### GOG/goffice, gsf, etc... ### Only test this if we're building the GUI if test x${gnc_build_gui} = xtrue ; then AC_MSG_CHECKING(for GTK - version >= 2.6.0) if $PKG_CONFIG 'gtk+-2.0 >= 2.6.0' then AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GTK26,1,[System has gtk 2.6.0 or better]) HAVE_GTK26=yes else AC_MSG_RESULT(no) fi AM_CONDITIONAL(HAVE_GTK26, test "x$HAVE_GTK26" = "xyes" ) AC_MSG_CHECKING(for pango version >= 1.8.0) if $PKG_CONFIG 'pango >= 1.8.0' then AC_MSG_RESULT(yes) AC_DEFINE(HAVE_PANGO18,1,[System has pango 1.8.0 or better]) HAVE_PANGO18=yes else AC_MSG_RESULT(no) fi AM_CONDITIONAL(HAVE_PANGO18, test "x$HAVE_PANGO18" = "xyes" ) dnl @@fixme dnl use both PKG_CHECK_MODULES and `$PKG_CONFIG`; the first importantly sets dnl MUMBLE_{LIBS,CFLAGS}... dnl Q: What does PKG_CHECK_MODULES create? dnl A: Just _CFLAGS and _LIBS, apparently [pkg.m4] AC_MSG_CHECKING([for libgsf >= 1.12.2]) if $PKG_CONFIG --silence-errors 'libgsf-1 >= 1.12.2' then AC_MSG_RESULT(found) PKG_CHECK_MODULES(GSF, libgsf-1 >= 1.12.2 libgsf-gnome-1 >= 1.12.2,,) AC_DEFINE(HAVE_LIBGSF,1,[System has libgsf-1.12.2 or better]) HAVE_LIBGSF=yes else AC_MSG_RESULT(not found. using internally-packaged libgsf) GSF_CFLAGS='-I${top_srcdir}/lib/libgsf-1.12.3' GSF_LIBS='${top_builddir}/lib/libgsf-1.12.3/gsf/libgsf-1.la' HAVE_LIBGSF=no fi AM_CONDITIONAL(HAVE_LIBGSF, test "x$HAVE_LIBGSF" = "xyes") AC_SUBST(GSF_CFLAGS) AC_SUBST(GSF_LIBS) dnl $4=true => don't die if failure. PKG_CHECK_MODULES(GOFFICE, libgoffice-1 >= 0.0.4,,true) if $PKG_CONFIG --silence-errors 'libgoffice-1 >= 0.0.4' then AC_DEFINE(HAVE_GOFFICE,1,[System has goffice-0.0.4 or better]) HAVE_GOFFICE=yes else AC_MSG_RESULT(using internally-packaged goffice) GOFFICE_CFLAGS='-I${top_srcdir}/lib/goffice-0.0.4' GOFFICE_LIBS='${top_builddir}/lib/goffice-0.0.4/goffice/libgoffice-1.la' HAVE_GOFFICE=no fi AM_CONDITIONAL(HAVE_GOFFICE, test "x$HAVE_GOFFICE" = "xyes") AC_SUBST(GOFFICE_CFLAGS) AC_SUBST(GOFFICE_LIBS) ### ------------------------------------------------------------------------ ### Checks when building internal LIBGSF ### +libgsf-1.12.3 if test "x$HAVE_LIBGSF" != xyes; then AC_MSG_NOTICE('internal libgsf configuration...') m4_define([libgsf_version_major], [1]) m4_define([libgsf_version_minor], [12]) m4_define([libgsf_version_micro], [3]) m4_define([libgsf_version_extra], []) m4_define([libgsf_full_version], [libgsf_version_major.libgsf_version_minor.libgsf_version_micro[]libgsf_version_extra]) dnl AC_CONFIG_SRCDIR(lib/libgsf-1.12.3/gsf/gsf.h) AC_SUBST(LIBGSF_MAJOR_VERSION, libgsf_version_major) AC_SUBST(LIBGSF_MINOR_VERSION, libgsf_version_minor) AC_SUBST(LIBGSF_MICRO_VERSION, libgsf_version_micro) dnl Version info for libraries = CURRENT:REVISION:AGE AC_SUBST(VERSION_INFO, m4_eval(libgsf_version_major + libgsf_version_minor)[]dnl :libgsf_version_micro:libgsf_version_minor) dnl NOTE: Above line needs no leading whitespace! --warlord dnl 2005-11-19,jsled, this doesn't seem to work... :( dnl ifelse(x$HAVE_LIBGSF, xyes,, AC_CONFIG_HEADERS(gsf-config.h) dnl) AC_FUNC_FSEEKO AC_SYS_LARGEFILE dnl Checks for libraries. ifelse([ If we defined the module lists on the M4 level, we could have problems with PKG_CHECK_MODULES from pkgconfig 0.16.0, which double quotes its second argument (the module list). As a handy workaround, we use shell variables. ]) dnl Modules common to libgsf and libgsf-gnome libgsf_reqs=" gobject-2.0 >= 2.4.0 glib-2.0 >= 2.4.0 libxml-2.0 >= 2.4.16 " dnl Modules required for libgsf-gnome libgsf_gnome_reqs=" $libgsf_reqs libbonobo-2.0 >= 2.0.0 gnome-vfs-2.0 >= 2.2.0 gnome-vfs-module-2.0 >= 2.2.0 " PKG_CHECK_MODULES(LIBGSF, $libgsf_reqs) AC_CHECK_DECL(fdopen, fdopen_works=yes, fdopen_works=no) if test $fdopen_works = no ; then unset ac_cv_have_decl_fdopen CFLAGS="$CFLAGS -D_POSIX_SOURCE" AC_MSG_NOTICE([adding -D_POSIX_SOURCE to CFLAGS]) AC_CHECK_DECL(fdopen, fdopen_works=yes, fdopen_works=no) if test $fdopen_works = no ; then AC_MSG_ERROR([fdopen is not available]) fi fi # Unfortunately, -D_POSIX_SOURCE turns off struct timeval on Solaris AC_MSG_CHECKING([whether struct timeval is available]) for try in 1 2; do AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[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 ]], [[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 #include #include ]], [[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 ]], [[(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 ]], [[(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 #include ]], [[S_ISREG(S_IFMT);]])], [macro_s_isreg=yes], [AH_TEMPLATE([S_ISREG], [Define S_ISREG if stat.h doesn't]) AC_DEFINE([S_ISREG(m)], [(((m) & S_IFMT) == S_IFREG)]) macro_s_isreg=no]) AC_MSG_RESULT($macro_s_isreg) AC_MSG_CHECKING([for native Win32]) case $host in *-*-mingw*) native_win32=yes ;; *) native_win32=no ;; esac AC_MSG_RESULT([$native_win32]) AM_CONDITIONAL(OS_WIN32, test "$native_win32" = yes) AC_MSG_CHECKING([for Win32 platform in general]) case $host in *-*-mingw*|*-*-cygwin*) platform_win32=yes ;; *) platform_win32=no ;; esac AC_MSG_RESULT($platform_win32) AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = yes) ################################################## # Checks for gtk-doc and docbook-tools ################################################## # gtk_doc_installed=true #ifdef([GTK_DOC_CHECK],[GTK_DOC_CHECK([1.0])],[gtk_doc_installed=false]) # I would have liked to conditionalize this, but # that appears to break other things http://bugzilla.gnome.org/show_bug.cgi?id=156399 # dnl GTK_DOC_CHECK([1.0]) # dnl AM_CONDITIONAL(GTK_DOC_INSTALLED, $gtk_doc_installed) dnl ************************************************************************ # Check for zlib. _cppflags=$CPPFLAGS _ldflags=$LDFLAGS Z_DIR= Z_LIBS= Z_CPPFLAGS= AC_ARG_WITH(zlib, [[ --with-zlib=DIR use libz in DIR]], [case $withval in yes|no) ;; *) Z_DIR=$withval CPPFLAGS="${CPPFLAGS} -I$withval/include" LDFLAGS="${LDFLAGS} -L$withval/lib" ;; esac]) if test "x$with_zlib" != xno; then with_zlib=no AC_CHECK_HEADER(zlib.h, [AC_CHECK_LIB(z, gzread, [with_zlib=yes])]) fi if test "$with_zlib" = no; then AC_MSG_ERROR([*** zlib is required]) fi if test "x$Z_DIR" != "x"; then Z_CPPFLAGS="-I$Z_DIR/include" case $host in *-*-solaris*) Z_LIBS="-L$Z_DIR/lib -R$Z_DIR/lib -lz" ;; *) Z_LIBS="-L$Z_DIR/lib -lz" ;; esac else Z_LIBS="-lz" fi AC_SUBST(Z_CPPFLAGS) AC_SUBST(Z_LIBS) CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags} dnl bz2 dnl BZ2_LIBS= test_bz2=true AC_ARG_WITH(bz2, [ --without-bz2 Build additional libgsf wrappers for BZ2], if test "x$withval" = xno; then test_bz2=false fi ) with_bz2=false if test "x$test_bz2" = xtrue ; then AC_CHECK_LIB(bz2, BZ2_bzDecompressInit, bz2_ok=yes, bz2_ok=no AC_MSG_WARN(*** BZ2 support disabled (BZ2 library not found) ***)) if test "$bz2_ok" = yes; then AC_MSG_CHECKING([for bzlib.h]) AC_PREPROC_IFELSE( [AC_LANG_SOURCE( [[#include #undef PACKAGE #undef VERSION #undef HAVE_STDLIB_H #include ]])], bz2_ok=yes, bz2_ok=no) AC_MSG_RESULT($bz2_ok) fi if test "$bz2_ok" = yes; then AC_DEFINE(HAVE_BZ2, 1, [Is bzip2 available and enabled]) BZ2_LIBS="-lbz2" else AC_MSG_WARN(*** BZ2 support disabled (BZ2 header not found) ***) fi else AC_MSG_WARN([BZ2 support disabled, as requested (Use --with-bz2 to enable)]) fi AC_SUBST(BZ2_LIBS) dnl ************************************************************************* dnl gnome dnl want_gnome=yes #dnl AC_ARG_WITH(gnome, #dnl [--{with,without}-gnome Build additional wrappers for GNOME-VFS and BONOBO], #dnl [case $withval in #dnl yes) want_gnome=yes;; #dnl no) want_gnome=no;; #dnl esac[]dnl #dnl]) have_gnome=no if test $want_gnome = no ; then AC_MSG_WARN([GNOME support disabled, as requested (Use --with-gnome to enable)]) else PKG_CHECK_MODULES(LIBGSF_GNOME, $libgsf_gnome_reqs, [have_gnome=yes], [if test $want_gnome = yes; then AC_MSG_ERROR([GNOME support requested, but not available.]) else AC_MSG_WARN([GNOME support disabled, unable to find required version of VFS and/or Bonobo]) fi]) fi AM_CONDITIONAL(WITH_LIBGSF_GNOME, test $have_gnome = yes) dnl # LDFLAGS="-no-undefined $LDFLAGS" # turn off unneeded python support AM_CONDITIONAL(WITH_PYTHON, false) else AM_CONDITIONAL(OS_WIN32, false) AM_CONDITIONAL(PLATFORM_WIN32, false) # dnl AM_CONDITIONAL(GTK_DOC_INSTALLED, false) # dnl AM_CONDITIONAL(ENABLE_GTK_DOC, false) # dnl AM_CONDITIONAL(GTK_DOC_USE_LIBTOOL, false) AM_CONDITIONAL(WITH_LIBGSF_GNOME, false) # dnl AM_CONDITIONAL(WITH_GCONF, false) AM_CONDITIONAL(WITH_PYTHON, false) fi ### -libgsf-1.12.3 ### ### ------------------------------------------------------------------------ ### Checks when building internal goffice ### +goffice-0.0.4 if test "x$HAVE_GOFFICE" != xyes; then AC_MSG_NOTICE('internal goffice configuration...') m4_define([goffice_version_epoch], [0]) m4_define([goffice_version_major], [0]) m4_define([goffice_version_minor], [4]) m4_define([goffice_version_extra], []) m4_define([goffice_full_version], [goffice_version_epoch.goffice_version_major.goffice_version_minor[]goffice_version_extra]) AC_CONFIG_SRCDIR(lib/goffice-0.0.4/goffice/goffice.h) AC_SUBST(GOFFICE_LIB_VERSION, m4_eval(goffice_version_epoch + goffice_version_major)[]dnl :goffice_version_minor:goffice_version_major) dnl NOTE: Above line needs no leading whitespace! --warlord dnl This one is created by autoheader, ... AC_CONFIG_HEADERS(goffice-config.h) dnl ... and this one is a small subset, maintained manually, dnl which will be installed. AC_CONFIG_HEADERS(goffice-features.h) dnl dnl Make sure these two won't clash. Put the following to goffice-config.h: AH_BOTTOM([/* Don't include goffice-features.h, it's a subset of goffice-config.h. */ #define GOFFICE_FEATURES_H]) dnl We use $host_os: dnl AC_CANONICAL_HOST AC_ISC_POSIX AC_PROG_YACC AM_PROG_LEX 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.7 gobject-2.0 >= 2.4.7 gmodule-2.0 >= 2.4.7 libxml-2.0 >= 2.4.12 pango >= 1.6.0 pangoft2 >= 1.6.0 " goffice_gtk_reqs=" gtk+-2.0 >= 2.4.13 libglade-2.0 >= 2.3.6 libgnomeprint-2.2 >= 2.8.0 libart-2.0 >= 2.3.11 " goffice_gnome_reqs=" gconf-2.0 libgnomeui-2.0 >= 2.0.0 libgsf-gnome-1 >= 1.12.2 " dnl Should we use cairo ? no goffice_with_cairo=false cairo_msg="Disabled" dnl ******************* dnl Should we use gtk ? dnl ******************* goffice_with_gtk=true #dnl AC_ARG_WITH(gtk, [ --without-gtk Build without UI]) #dnl if test "x$with_gtk" = xno; then #dnl ui_msg="None (Gtk disabled by request)" #dnl goffice_with_gtk=false #dnl else dnl We shouldn't silently default to --without-gtk. dnl If the requirements are not met, fail. ui_msg="Gtk" PKG_CHECK_MODULES(GOFFICE_GTK, [$goffice_gtk_reqs]) #dnl fi goffice_with_gnome=$goffice_with_gtk if test "x$goffice_with_gtk" = "xtrue" ; then AC_DEFINE(WITH_GTK, 1, [Define if UI is built]) goffice_reqs="$goffice_reqs $goffice_gtk_reqs" dnl ************************************ dnl Are the GNOME extensions available ? dnl ************************************ goffice_with_gnome=true #dnl AC_ARG_WITH(gnome, #dnl [ --{with,without}-gnome Use GNOME extensions], #dnl [if test "x$withval" = xno; then #dnl goffice_with_gnome=false #dnl ui_msg="Gtk+ (Gnome disabled by request)" #dnl fi] #dnl) if test "x$goffice_with_gnome" = "xtrue"; then PKG_CHECK_MODULES(GOFFICE_GNOME, [$goffice_gnome_reqs], [ui_msg="Gnome"], [ui_msg="Gtk (missing gnome dependencies)" ; goffice_with_gnome=false]) fi if test "x$goffice_with_gnome" = "xtrue"; then AC_DEFINE(WITH_GNOME, 1, [Define if GNOME extensions are available]) goffice_reqs="$goffice_reqs $goffice_gnome_reqs" fi fi AM_CONDITIONAL(WITH_CAIRO, $goffice_with_cairo) AM_CONDITIONAL(WITH_GTK, $goffice_with_gtk) AM_CONDITIONAL(WITH_GNOME, $goffice_with_gnome) dnl **************************** dnl now that we have selected out libraries the whole collection in one dnl shot so that we can have a nice neat compile/link line dnl **************************** PKG_CHECK_MODULES(GOFFICE_DEPS, $goffice_reqs) dnl Checks for Xft/XRender AC_CHECK_LIB(Xrender, XRenderFindFormat, [AC_SUBST(RENDER_LIBS, "-lXrender -lXext") AC_DEFINE(HAVE_RENDER, 1, [Define if libXrender is available.])], [AC_SUBST(RENDER_LIBS, "")], [-lXext]) dnl ***************************** AC_MSG_CHECKING([for Win32 platform]) with_win32=no case $host_os in mingw* | pw32* | cygwin*) with_win32=yes GOFFICE_PLUGIN_LDFLAGS="-Wl,--enable-runtime-pseudo-relo,--export-all-symbols $GOFFICE_PLUGIN_LDFLAGS" AC_ARG_VAR(WINDRES, [The windres executable (used by win32 builds only).]) AC_CHECK_TOOL(WINDRES, windres, :) ;; esac AC_MSG_RESULT($with_win32) AM_CONDITIONAL(WITH_WIN32, test $with_win32 = yes) dnl ***************************** dnl FIXME: perhaps declare with AC_ARG_VAR? dnl If we use the initial value of a variable, we have to make it precious. dnl GOFFICE_PLUGIN_LDFLAGS="-avoid-version -no-undefined $GOFFICE_PLUGIN_LDFLAGS" GOFFICE_PLUGIN_LIBADD="\$(top_builddir)/lib/goffice-0.0.4/goffice/libgoffice-1.la $GOFFICE_DEPS_LIBS $GOFFICE_PLUGIN_LIBADD" AC_SUBST(GOFFICE_PLUGIN_LDFLAGS) AC_SUBST(GOFFICE_PLUGIN_LIBADD) dnl **************************** dnl prep the pixmap generator dnl **************************** AC_ARG_VAR(GLIB_GENMARSHAL, [The glib-genmarshal executable.]) AC_CHECK_PROG(GLIB_GENMARSHAL, glib-genmarshal, glib-genmarshal) AC_ARG_VAR(GDK_PIXBUF_CSOURCE, [The gdk-pixbuf-csource executable.]) AC_CHECK_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, gdk-pixbuf-csource) 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 ], [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 ], [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 ], [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 int main () { const char *s = "+3.1415e+0"; char *theend; long double res = strtold (s, &theend); return !(*theend == 0 && finitel (res) && res >= 3.14 && res <= 3.15); }], [AC_MSG_RESULT(no)], [AC_MSG_RESULT(yes) AC_DEFINE([GOFFICE_SUPPLIED_STRTOLD], 1, [Define if G Office supplies strtold.]) ], [AC_MSG_RESULT(assuming not)]) else AC_DEFINE([GOFFICE_SUPPLIED_STRTOLD], 1, [Define if G Office supplies strtold.]) AC_CHECK_FUNCS(string_to_decimal decimal_to_quadruple) if test "x$ac_cv_func_string_to_decimal" != "xyes" || \ test "x$ac_cv_func_decimal_to_quadruple" != "xyes" || \ test "x$ac_cv_header_floatingpoint_h" != "xyes"; then AC_MSG_WARN([You lack the strtold function -- precision will be impaired]) fi fi if test "$have_mandatory_funcs" = yes; then float_msg=yes AC_DEFINE([GOFFICE_WITH_LONG_DOUBLE], 1, [Define if G Office supports long double.]) else AC_MSG_WARN([Long double support disabled because of library problems]) fi unset have_mandatory_funcs fi AC_SUBST(EXTRA_LIBS) AC_SUBST(EXTRA_INCLUDES) dnl ****************** dnl * Config defaults dnl ****************** dnl dnl These are changed in goffice.c for WIN32 packages AC_SUBST(goffice_datadir, '${datadir}/gnucash/goffice/${GOFFICE_VERSION}') AC_SUBST(goffice_libdir, '${libdir}/gnucash/goffice/${GOFFICE_VERSION}') AC_SUBST(goffice_icondir, '${datadir}/gnucash/pixmaps/goffice') AC_SUBST(goffice_localedir, '${prefix}/${DATADIRNAME}/locale') dnl AC_SUBST(goffice_plugindir, '${goffice_libdir}/plugins') AC_SUBST(goffice_gladedir, '${goffice_datadir}/glade') dnl Export to goffice-config.h and goffice-features.h AC_DEFINE(GOFFICE_VERSION, "goffice_full_version", [The version number of this release, possibly with additional suffix]) AC_DEFINE(GO_VERSION_EPOCH, goffice_version_epoch, [The Epoch of this release]) AC_DEFINE(GO_VERSION_MAJOR, goffice_version_major, [The Major version number of this release]) AC_DEFINE(GO_VERSION_MINOR, goffice_version_minor, [The Minor version number of this release]) AC_DEFINE(GO_VERSION_EXTRA, "goffice_version_extra", [Extra, possibly empty tag for this release]) else AM_CONDITIONAL(WITH_CAIRO, false) AM_CONDITIONAL(WITH_GTK, false) AM_CONDITIONAL(WITH_GNOME, false) AM_CONDITIONAL(WITH_WIN32, false) fi ### -goffice-0.0.4 ### ------------------------------------------------------------------------ else ### A bunch of am conditionals that need to be set AM_CONDITIONAL(HAVE_GTK26, false ) AM_CONDITIONAL(HAVE_PANGO18, false ) AM_CONDITIONAL(HAVE_LIBGSF, false) AM_CONDITIONAL(HAVE_GOFFICE, false) AM_CONDITIONAL(OS_WIN32, false) AM_CONDITIONAL(PLATFORM_WIN32, false) AM_CONDITIONAL(WITH_LIBGSF_GNOME, false) AM_CONDITIONAL(WITH_PYTHON, false) AM_CONDITIONAL(WITH_CAIRO, false) AM_CONDITIONAL(WITH_GTK, false) AM_CONDITIONAL(WITH_GNOME, false) AM_CONDITIONAL(WITH_WIN32, false) fi ### End of gui-only checks ###------------------------------------------------------------------------- ### Selectively disable deprecated bits of glib/gdk/gtk/gnome ###------------------------------------------------------------------------- if test x${HAVE_UNTESTED_GLIB} = "xyes" then allow_deprecated=true else allow_deprecated=false fi AC_ARG_ENABLE(deprecated-glib, [ --disable-deprecated-glib don't use deprecated glib functions], [case "${enableval}" in no) allow_deprecated=false ;; *) allow_deprecated=true ;; esac] ) if test x${allow_deprecated} != "xtrue" then AC_DEFINE(G_DISABLE_DEPRECATED,1, [Don't use deprecated glib functions]) fi if test x${HAVE_UNTESTED_GDK} = "xyes" then allow_deprecated=true else allow_deprecated=false fi AC_ARG_ENABLE(deprecated-gdk, [ --disable-deprecated-gdk don't use deprecated gdk functions], [case "${enableval}" in no) allow_deprecated=false ;; *) allow_deprecated=true ;; esac] ) if test x${allow_deprecated} != "xtrue" then AC_DEFINE(GDK_DISABLE_DEPRECATED,1, [Don't use deprecated gdk functions]) AC_DEFINE(GDK_PIXBUF_DISABLE_DEPRECATED,1, [Don't use deprecated gdk-pixbuf functions]) fi if test x${HAVE_UNTESTED_GTK} = "xyes" then allow_deprecated=true else allow_deprecated=false fi AC_ARG_ENABLE(deprecated-gtk, [ --disable-deprecated-gtk don't use deprecated gtk functions], [case "${enableval}" in no) allow_deprecated=false ;; *) allow_deprecated=true ;; esac] ) if test x${allow_deprecated} != "xtrue" then AC_DEFINE(GTK_DISABLE_DEPRECATED,1, [Don't use deprecated gtk functions]) fi if test x${HAVE_UNTESTED_GNOME} = "xyes" then allow_deprecated=true else allow_deprecated=false fi AC_ARG_ENABLE(deprecated-gnome, [ --disable-deprecated-gnome don't use deprecated gnome functions], [case "${enableval}" in no) allow_deprecated=false ;; *) allow_deprecated=true ;; esac] ) if test x${allow_deprecated} != "xtrue" then AC_DEFINE(GNOME_DISABLE_DEPRECATED,1, [Don't use deprecated gnome functions]) fi ###------------------------------------------------------------------------- ### Stuff from Mac OS X Port ###------------------------------------------------------------------------- AC_CHECK_FUNCS(pthread_mutex_init) AC_REPLACE_FUNCS(strptime localtime_r) #AC_REPLACE_FUNCS(scm_strptime) if test $am_cv_val_LC_MESSAGES = "no"; then LC_MESSAGES_ENUM="LC_ALL" else LC_MESSAGES_ENUM="LC_MESSAGES" fi AC_SUBST(LC_MESSAGES_ENUM) ### -------------------------------------------------------------------------- ### GnuCash flags and libs configuration GNUCASH_ENGINE_BASE_LIBS="${GLIB_LIBS}" GNUCASH_ENGINE_LIBS="-L${GNC_MODULE_DIR} -L${GNC_GWRAP_LIBDIR} ${GNUCASH_ENGINE_BASE_LIBS} ${GUILE_LIBS} -lgncmod-engine -lgw-engine -lgw-kvp -lgncmodule" GNUCASH_ENGINE_BASE_CFLAGS="-DGNUCASH ${GLIB_CFLAGS} ${G_WRAP_COMPILE_ARGS}" GNUCASH_ENGINE_CFLAGS="${GNUCASH_ENGINE_BASE_CFLAGS} ${GUILE_INCS}" AC_SUBST(GNUCASH_ENGINE_BASE_LIBS) AC_SUBST(GNUCASH_ENGINE_LIBS) AC_SUBST(GNUCASH_ENGINE_BASE_CFLAGS) AC_SUBST(GNUCASH_ENGINE_CFLAGS) GNUCASH_APP_UTILS_CFLAGS="${GNUCASH_ENGINE_CFLAGS}" GNUCASH_APP_UTILS_LIBS="${GNUCASH_ENGINE_LIBS} -lgncmod-calculation -lgncmod-app-utils" AC_SUBST(GNUCASH_APP_UTILS_CFLAGS) AC_SUBST(GNUCASH_APP_UTILS_LIBS) GNUCASH_NETWORK_UTILS_CFLAGS="${GLIB_CFLAGS} ${GHTTP_CFLAGS} ${GNOME_INCLUDEDIR}" GNUCASH_NETWORK_UTILS_LIBS="${GHTTP_LIBS} ${GNOME_LIBDIR} ${GNOME_LIBS} ${GNOMEUI_LIBS} -lgncmod-network-utils" AC_SUBST(GNUCASH_NETWORK_UTILS_CFLAGS) AC_SUBST(GNUCASH_NETWORK_UTILS_LIBS) GNUCASH_GNOME_UTILS_CFLAGS="${GNUCASH_APP_UTILS_CFLAGS} ${GNUCASH_NETWORK_UTILS_CFLAGS} ${GNOME_PRINT_CFLAGS} ${GNOME_INCLUDEDIR} ${GDK_PIXBUF_CFLAGS}" GNUCASH_GNOME_UTILS_LIBS="${GNUCASH_APP_UTILS_LIBS} ${GNUCASH_NETWORK_UTILS_LIBS} ${GNOME_LIBDIR} ${GNOMEUI_LIBS} ${GNOME_PRINT_LIBS} ${GTKHTML_LIBS} ${GLADE_LIBS} ${GDK_PIXBUF_LIBS} -lgncmod-gnome-utils" AC_SUBST(GNUCASH_GNOME_UTILS_CFLAGS) AC_SUBST(GNUCASH_GNOME_UTILS_LIBS) GNUCASH_REGISTER_CORE_CFLAGS="${GNUCASH_GNOME_UTILS_CFLAGS}" GNUCASH_REGISTER_CORE_LIBS="${GNUCASH_GNOME_UTILS_LIBS} -lgncmod-register-core" AC_SUBST(GNUCASH_REGISTER_CORE_CFLAGS) AC_SUBST(GNUCASH_REGISTER_CORE_LIBS) AM_CONDITIONAL(GNUCASH_SEPARATE_BUILDDIR, test "x${srcdir}" != "x.") AM_CONDITIONAL(GNC_FALSE, false) ###------------------------------------------------------------------------- ### Additional compiler warnings (or not) if we're running GCC ###------------------------------------------------------------------------- # This has to come after AC_PROG_CC _AND_ GNOME_COMPILE_WARNINGS AC_MSG_CHECKING(what extra warning flags to pass to the C compiler) if test ${GCC}x = yesx then warnFLAGS= # These two are because of g-wrap -- it can't avoid unused and uninitialized. #warnFLAGS="${warnFLAGS} -Wno-uninitialized" #warnFLAGS="${warnFLAGS} -Wno-unused" # other flags... # These next two are included in the GNOME_COMPILE_WARNINGS #warnFLAGS="${warnFLAGS} -Wmissing-prototypes" #warnFLAGS="${warnFLAGS} -Wmissing-declarations" #warnFLAGS="${warnFLAGS} -Werror-implicit-function-declaration" # In -Wall ## 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" ; gnc_error_on_warning=yes ;; no) gnc_error_on_warning=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-error-on-warning) ;; esac], [ warnFLAGS="${warnFLAGS} -Werror"; gnc_error_on_warning=auto ]) # For gcc >= 3.4.x, specifically enable the new warning switch # -Wdeclaration-after-statement in order to preserve source code # compatibility to gcc 2.95 and other compilers. GCC_VERSION=`${CC} -dumpversion` if test `echo ${GCC_VERSION} | cut -d. -f1` -ge 3; then # This is gcc >= 3.x.x if test `echo ${GCC_VERSION} | cut -d. -f2` -ge 4; then # This is gcc >= 3.4.x warnFLAGS="${warnFLAGS} -Wdeclaration-after-statement" else if test `echo ${GCC_VERSION} | cut -d. -f1` -ge 4; then # This is gcc == 4.x.x warnFLAGS="${warnFLAGS} -Wdeclaration-after-statement -Wno-pointer-sign" # rpmbuild on FC4 forces this flag. Can't hurt to always compile with it. warnFLAGS="${warnFLAGS} -D_FORTIFY_SOURCE=2" if test $gwrap_major_version = 1 -a $gwrap_minor_version -lt 9 ; then # This is g-wrap 1.3 + gcc4. Test error-on-warning case "$gnc_error_on_warning" in auto) AC_MSG_ERROR([ Sorry, your current configuration will not compile. You are running g-wrap 1.3.x, GCC4, and --enable-error-on-warning, which do not work together. You have three options: You can update g-wrap to 1.9.6, you can downgrade gcc to GCC3, or you can --disable-error-on-warning on the configure line. We recommend you update g-wrap to 1.9.6 so gnucash can compile cleanly on GCC4 You can find it at http://www.nongnu.org/g-wrap/ . ]) ;; yes) AC_MSG_WARN([ g-wrap 1.3.x and GCC4 may cause build problems. You have been warned! ]) ;; esac fi fi fi fi CFLAGS="${CFLAGS} ${warnFLAGS}" else warnFLAGS=none fi AC_MSG_RESULT($warnFLAGS) ### -------------------------------------------------------------------------- ### Adjustments -- especially executables that aren't generated via ### makefiles, so that we don't have an opportunity to adjust them ### there. chmod u+x ${srcdir}/src/gnc-test-env chmod u+x ${srcdir}/src/bin/generate-gnc-script chmod u+x ${srcdir}/src/bin/overrides/gnucash-make-guids ### -------------------------------------------------------------------------- ### Makefile creation # This is necessary so that .o files in LIBOBJS are also built via # the ANSI2KNR-filtering rules. LIBOBJS_SEDSCRIPT="s,\.[[^.]]* ,$U&,g;s,\.[[^.]]*\$\$,$U&," AC_SUBST(LIBOBJS_SEDSCRIPT) AC_CONFIG_FILES(po/Makefile.in dnl # Makefiles Makefile accounts/Makefile accounts/C/Makefile accounts/da/Makefile accounts/de_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 packaging/Makefile src/Makefile src/app-utils/Makefile src/app-utils/test/Makefile src/backend/Makefile src/backend/file/Makefile src/backend/file/test/Makefile src/backend/file/test/test-files/Makefile src/backend/file/test/test-files/xml2/Makefile src/backend/postgres/Makefile src/backend/postgres/test/Makefile src/bin/Makefile src/bin/overrides/Makefile src/bin/test/Makefile src/core-utils/Makefile src/calculation/Makefile src/calculation/test/Makefile src/doc/Makefile src/doc/design/Makefile src/doc/xml/Makefile src/engine/Makefile src/engine/test/Makefile src/engine/test-core/Makefile src/gnc-module/Makefile src/gnc-module/test/Makefile src/gnc-module/test/mod-foo/Makefile src/gnc-module/test/mod-bar/Makefile src/gnc-module/test/mod-baz/Makefile src/gnc-module/test/misc-mods/Makefile src/gnome/Makefile src/gnome/glade/Makefile src/gnome/schemas/Makefile src/gnome/ui/Makefile src/gnome-utils/Makefile src/gnome-utils/glade/Makefile src/gnome-utils/schemas/Makefile src/gnome-utils/test/Makefile src/gnome-utils/ui/Makefile src/gnome-search/Makefile src/import-export/Makefile src/import-export/test/Makefile src/import-export/binary-import/Makefile src/import-export/binary-import/test/Makefile src/import-export/qif-import/Makefile src/import-export/qif/Makefile src/import-export/qif/test/Makefile src/import-export/qif-import/test/Makefile src/import-export/qif-io-core/Makefile src/import-export/qif-io-core/test/Makefile src/import-export/schemas/Makefile src/import-export/ofx/Makefile src/import-export/ofx/test/Makefile src/import-export/mt940/Makefile src/import-export/log-replay/Makefile src/import-export/hbci/Makefile src/import-export/hbci/glade/Makefile src/import-export/hbci/schemas/Makefile src/import-export/hbci/test/Makefile src/network-utils/Makefile src/network-utils/test/Makefile src/optional/Makefile src/optional/swig/Makefile src/optional/swig/examples/Makefile src/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 output_qof_prefix=`eval eval eval echo $QOF_PREFIX` output_qof_lib_dir=`eval eval eval echo $QOF_LIB_DIR` output_qof_xml_dir=`eval eval eval echo $QOF_XML_DIR` AC_MSG_RESULT([ Options detected/selected ------------------------- gnucash version ...... : $VERSION Build for host ....... : $host Extra Warnings ....... : $warnFLAGS CPPFLAGS ............. : $CPPFLAGS CFLAGS ............... : $CFLAGS LDFLAGS .............. : $LDFLAGS prefix.................: ${prefix} Native libgsf..........: $HAVE_LIBGSF Native goffice.........: $HAVE_GOFFICE QOF support ...........: $QOF_VERSION QOF location ..........: $output_qof_prefix QOF library dir .......: $output_qof_lib_dir QOF backend config ....: $output_qof_xml_dir ])