## -*-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


##  Do this first, because the other tests depend on it:

### --------------------------------------------------------------------------
### Headers
### check for various programs, and stuff (do this first because later
### commands depend on them):

AC_INIT(src/guile/gnucash.h)

AC_PROG_CC

GNUCASH_MAJOR_VERSION=1
GNUCASH_MINOR_VERSION=7
GNUCASH_MICRO_VERSION=0
GNUCASH_VERSION=$GNUCASH_MAJOR_VERSION.$GNUCASH_MINOR_VERSION.$GNUCASH_MICRO_VERSION

AC_SUBST(GNUCASH_MAJOR_VERSION)
AC_SUBST(GNUCASH_MINOR_VERSION)
AC_SUBST(GNUCASH_MICRO_VERSION)

AM_INIT_AUTOMAKE(gnucash,$GNUCASH_VERSION)

AC_PROG_INTLTOOL

AM_CONFIG_HEADER(config.h)

AC_DEFINE_UNQUOTED(GNUCASH_MAJOR_VERSION, $GNUCASH_MAJOR_VERSION)
AC_DEFINE_UNQUOTED(GNUCASH_MINOR_VERSION, $GNUCASH_MINOR_VERSION)
AC_DEFINE_UNQUOTED(GNUCASH_MICRO_VERSION, $GNUCASH_MICRO_VERSION)

dnl Set of available languages.
ALL_LINGUAS="da de en_GB es fr it ja no pt ru sv"
AM_GNU_GETTEXT


AC_CANONICAL_HOST
AM_MAINTAINER_MODE
AM_ACLOCAL_INCLUDE(macros)

AC_PROG_INSTALL

AC_LIBTOOL_DLOPEN
AC_DISABLE_STATIC
AM_PROG_LIBTOOL

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)

STRUCT_TM_GMTOFF_CHECK
SCANF_LLD_CHECK

AM_PATH_GLIB

if test ${no_glib}x = yesx
then
  AC_MSG_ERROR([Cannot find glib. Check config.log])
fi

AC_CHECK_HEADERS(dlfcn.h dl.h ghttp_ssl.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)

GNOME_INIT

GNOME_COMPILE_WARNINGS
GNOME_CHECK_GDK_PIXBUF
GNOME_CHECK_GUILE
GNOME_PRINT_CHECK
GNOME_XML_CHECK

#AC_CHECK_HEADER(libxml/xmlversion.h, [
#  HAVE_XML_VERSION_HEADER=1
#  AC_DEFINE(HAVE_XML_VERSION_HEADER)
#])


### --------------------------------------------------------------------------
### Variables
### Set up all the initial variable values...

AC_ARG_ENABLE(opt-style-install,
  [  --enable-opt-style-install   install everything in subdirs of --prefix],
  [case "${enableval}" in
     yes) gnc_opt_style_install=true ;;
     no)  gnc_opt_style_install=false ;;
     *) AC_MSG_ERROR(bad value ${enableval} for --enable-opt-style-install) ;;
   esac],
   [gnc_opt_style_install=false])

if test x${gnc_opt_style_install} = xtrue
then
  GNC_CONFIGDIR='${sysconfdir}'
  GNC_DOC_INSTALL_DIR='${datadir}/doc'
  GNC_INCLUDE_DIR=${includedir}
  GNC_LIBDIR='${libdir}'
  GNC_SCM_INSTALL_DIR='${datadir}/scm'
  GNC_SHAREDIR='${datadir}'
else
  GNC_CONFIGDIR='${sysconfdir}/gnucash'
  GNC_DOC_INSTALL_DIR='${pkgdatadir}/doc'
  GNC_INCLUDE_DIR=${includedir}/gnucash
  GNC_LIBDIR='${pkglibdir}'
  GNC_SCM_INSTALL_DIR='${pkgdatadir}/scm'
  GNC_SHAREDIR='${pkgdatadir}'
fi

GNC_ACCOUNTS_DIR=${GNC_SHAREDIR}/accounts
GNC_GLADE_DIR=${GNC_SHAREDIR}/glade
GNC_GWRAP_LIBDIR='${GNC_SHAREDIR}/guile-modules/g-wrapped'
GNC_MODULE_DIR='${pkglibdir}'
GNC_PIXMAP_DIR='${datadir}/pixmaps/gnucash'

AC_SUBST(GNC_ACCOUNTS_DIR)
AC_SUBST(GNC_CONFIGDIR)
AC_SUBST(GNC_DOC_INSTALL_DIR)
AC_SUBST(GNC_GLADE_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)

# We should always see these errors...
CFLAGS="${CFLAGS} -Wall"

AC_ARG_ENABLE(error-on-warning,
  [  --enable-error-on-warning    treat compile warnings as errors],
  [case "${enableval}" in
     yes) CFLAGS="${CFLAGS} -Werror"; enable_compile_warnings=no ;;
     no)  ;;
     *) AC_MSG_ERROR(bad value ${enableval} for --enable-error-on-warning) ;;
   esac])

# This has to come after AC_PROG_CC
if test ${GCC}x = yesx
then
  CFLAGS="${CFLAGS} -Wno-unused"
  CFLAGS="${CFLAGS} -Werror-implicit-function-declaration"
fi

AC_ARG_ENABLE( debug,
  [  --enable-debug               compile with debugging flags set],
       CFLAGS="${CFLAGS} -g"
       LDFLAGS="${LDFLAGS} -g"
       AC_DEFINE(DEBUG_MEMORY,1),
       AC_DEFINE(DEBUG_MEMORY,0) )

AC_ARG_ENABLE( profile,
  [  --enable-profile             compile with profiling set],
       CFLAGS="${CFLAGS} -pg"
       LDFLAGS="${LDFLAGS} -pg")


### --------------------------------------------------------------------------
### 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],
  [
    if test "x$enableval" != "xno" ; then

      PGSQL_CFLAGS=`/usr/lib/postgresql/bin/pg_config --includedir`
      if test "x$PGSQL_CFLAGS" != x; then
         CFLAGS="${CFLAGS} -I${PGSQL_CFLAGS}"
      fi

      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
        
        saved_LIBS="$LIBS"
        PGSQL_LIBS=`/usr/lib/postgresql/bin/pg_config --libdir`
        if test "x$PGSQL_LIBS" != x; then
           LIBS="-L${PGSQL_LIBS} -lpq $LIBS"
        else
           LIBS="-lpq $LIBS"
        fi
        AC_MSG_CHECKING(for libpq)
        AC_TRY_LINK(
          [
	    #include <libpq-fe.h>
	  ],
          [
             PQconnectdb("asdf");
          ],
          [
            AC_MSG_RESULT(yes)
            SQL_DIR=postgres
          ],
          [
            AC_MSG_ERROR([Cannot find PostgreSQL libraries; will not build sql backend]) 
          ]
        )
        LIBS="$saved_LIBS"
      fi
    fi
  ]
)

AC_SUBST(SQL_DIR)


### --------------------------------------------------------------------------
### RPC
AC_ARG_ENABLE( rpc,
  [  --enable-rpc                 compile with rpc support],
       RPC_DIR=rpc)

AC_SUBST(RPC_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

### --------------------------------------------------------------------------
### help files
AC_ARG_WITH( help-prefix,
  [  --with-help-prefix=PATH      specify where to store the help files],
  GNC_HELPDIR="$with_help_prefix/gnome/help/gnucash",
  GNC_HELPDIR="\${datadir}/gnome/help/gnucash")

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_TAGS_FILE, etags, TAGS)
fi

AM_CONDITIONAL(GNC_TAGS_FILE, test x${GNC_TAGS_FILE} = xTAGS)


### --------------------------------------------------------------------------
### Check for glade

GLADE_LIBS=`$GNOME_CONFIG --libs libglade`
GLADE_CFLAGS=`$GNOME_CONFIG --cflags libglade`

# check for glade libs
AC_CHECK_LIB(glade, glade_init,
             GNOMEBUILDLIBS="${GNOMEBUILDLIBS} glade",
             AC_MSG_ERROR([Cannot find libglade. See the README and config.log for more info.]),
             $GLADE_LIBS)

AC_SUBST(GLADE_LIBS)
AC_SUBST(GLADE_CFLAGS)


### --------------------------------------------------------------------------
### Check for lib uri and do the right thing
# AC_CHECK_LIB(uri, uri_alloc)

# if [ -z "$HAVE_LIBURI" ] ; then
    

### --------------------------------------------------------------------------
### 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)


### --------------------------------------------------------------------------
### Libraries
LIBS="$LIBS -lm"


### --------------------------------------------------------------------------
### Berkeley db
AC_ARG_ENABLE(prefer-db1,
  [  --enable-prefer-db1          Prefer Berkeley DB 1.x],[prefer_db1="$enableval"],[prefer_db1=yes])

DB_LIBS=
AC_CHECK_FUNC(dbopen, [],
if test "$prefer_db1" = "yes"; then
 AC_CHECK_LIB(db1, dbopen, DB_LIBS="-ldb1",
  AC_CHECK_LIB(db, dbopen, DB_LIBS="-ldb",
   AC_CHECK_LIB(db-3, __db185_open, DB_LIB="-ldb-3",
    AC_MSG_ERROR([Your db library is missing db 1.85 compatibility mode])
   )
  )
 )
else
 AC_CHECK_LIB(db, dbopen, DB_LIBS="-ldb",
  AC_CHECK_LIB(db1, dbopen, DB_LIBS="-ldb1",
   AC_CHECK_LIB(db-3, __db185_open, DB_LIB="-ldb-3",
    AC_MSG_ERROR([Your db library is missing db 1.85 compatibility mode])
   )
  )
 )
fi
)

dnl look for db headers
if test "$prefer_db1" = "yes"; then
	AC_CHECK_HEADERS(db_185.h db1/db.h)
	if test "$ac_cv_header_db_185_h$ac_cv_header_db1_db_h" = nono; then
	  AC_MSG_ERROR([Berkeley db library required for GnuCash])
	fi
	AC_DEFINE(PREFER_DB1)
else
	AC_CHECK_HEADERS(db.h db_185.h db1/db.h)

	if test "$ac_cv_header_db_h$ac_cv_header_db_185_h$ac_cv_header_db1_db_h" = nonono; then
	  AC_MSG_ERROR([Berkeley db library required for GnuCash])
	fi
fi

AC_SUBST(DB_LIBS)


### --------------------------------------------------------------------------
### Gnome XML -- GNOME_XML_LIB is define by GNOME_XML_CHECK
GNOME_XML_CFLAGS=`$GNOME_CONFIG --cflags xml`

AC_SUBST(GNOME_XML_CFLAGS)

oLIBS="$LIBS"
LIBS="$LIBS $GNOME_XML_LIB"
AC_CHECK_LIB(xml, xmlElemDump, [:], [
  AC_MSG_ERROR([libxml 1.8.3 or newer required for GnuCash])
  ])
LIBS="$oLIBS"


### --------------------------------------------------------------------------
GTKHTML_LIBS=`$GNOME_CONFIG --libs gtkhtml`
GTKHTML_CFLAGS=`$GNOME_CONFIG --cflags gtkhtml`

AC_CHECK_LIB(gal, main, true,
  [AC_MSG_ERROR([gal library not found. See the README and config.log for more info.])],
  `$GNOME_CONFIG --libs gal`)

# check for gtkhtml and enable it via HAVE_LIBGTKHTML
# if found
AC_CHECK_LIB(gtkhtml, gtk_html_new,
             GNOMEBUILDLIBS="${GNOMEBUILDLIBS} gtkhtml"
             AC_DEFINE(HAVE_LIBGTKHTML),
             AC_MSG_ERROR([Cannot find gtkhtml. See the README and config.log for more info.]),
             $GTKHTML_LIBS)

GHTTP_LIBS=`$GNOME_CONFIG --libs ghttp`
GHTTP_CFLAGS=`$GNOME_CONFIG --cflags ghttp`

# Note: this doesn't croak if GHTTP_LIBS is empty! (e.g. on RH6.2)
AC_CHECK_LIB(ghttp, ghttp_request_new,
             GNOMEBUILDLIBS="${GNOMEBUILDLIBS} ghttp"
             AC_DEFINE(HAVE_LIBGHTTP)
	     if test "x$GHTTP_LIBS" = "x" ; then
		GHTTP_LIBS=-lghttp
	     fi,
             AC_MSG_ERROR([Cannot find ghttp. See the README and config.log for more info.]),
             $GHTTP_LIBS)

AC_CHECK_LIB(ghttp, ghttp_enable_ssl,
             AC_DEFINE(HAVE_OPENSSL),
	     AC_MSG_WARN([****** ghttp does not have SSL support.]),
	     $GHTTP_LIBS)

AC_SUBST(GTKHTML_LIBS)
AC_SUBST(GTKHTML_CFLAGS)
AC_SUBST(GHTTP_LIBS)
AC_SUBST(GHTTP_CFLAGS)


### --------------------------------------------------------------------------
### guppi

AC_ARG_ENABLE( guppi,
  [  --disable-guppi               compile without guppi support],
  if test $enableval = no; then
    USE_GUPPI=0
  else
    USE_GUPPI=1
  fi,
  USE_GUPPI=1 )

if test ${USE_GUPPI} = 0; then
  AC_MSG_WARN([Compiling without guppi support])
else
  AC_DEFINE(USE_GUPPI)


AC_ARG_ENABLE( efence,
  [  --enable-efence               link using efence],
  if test $enableval = yes; then
     EFENCE_LIBS="-lefence"
     USE_EFENCE=1
  fi,
  USE_EFENCE=0
  EFENCE_LIBS="")
AC_DEFINE(USE_EFENCE)
AC_SUBST(EFENCE_LIBS)

## Things guppi needs (actually are these guppi dependencies or gtkhtml's?)

# LAME: if you ask gnome-config for the zvt libs, it doesn't include
# imlib, though it needs it so we'll just steal gtkhtml's which does.
AC_CHECK_LIB(zvt, main, true,
  [AC_MSG_ERROR([libzvt development files not found. See config.log.])],
  `$GNOME_CONFIG --libs zvt gtkhtml`)

AC_CHECK_LIB(bonobo, main, true,
  [AC_MSG_ERROR([libbonobo development files not found. See config.log.])
],
  `$GNOME_CONFIG --libs bonobo`)

AC_CHECK_LIB(oaf, main, true,
  [AC_MSG_ERROR([liboaf development files not found. See config.log.])],
  `$GNOME_CONFIG --libs oaf`)

## guppi itself.

GUPPI_LIBS=`$GNOME_CONFIG --libs libguppi`
GUPPI_CFLAGS=`$GNOME_CONFIG --cflags libguppi`
LIBGUPPI_CHECK
AC_SUBST(GUPPI_LIBS)
AC_SUBST(GUPPI_CFLAGS)

fi

### --------------------------------------------------------------------------
### 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)


### --------------------------------------------------------------------------
### popt

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.
])])

### --------------------------------------------------------------------------
## 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)


### --------------------------------------------------------------------------
### G-wrap (libraries and executable)

G_WRAP_COMPILE_ARGS=""
G_WRAP_LINK_ARGS=""

AM_PATH_GWRAP(1.3.1, , [AC_MSG_ERROR([

  g-wrap does not appear to be installed correctly, or is not new
  enough.  Right now gnucash requires at least version 1.1.12 to build.
  If you need to install g-wrap, you can find it at
  ftp://ftp.gnucash.org/pub/g-wrap.
])])

# Find out what the g-wrap compile and link flags are.
AC_MSG_CHECKING(for g-wrap compile args)
G_WRAP_COMPILE_ARGS=`${G_WRAP_CONFIG} --c-compile-args guile`
AC_MSG_RESULT($G_WRAP_COMPILE_ARGS)

AC_MSG_CHECKING(for g-wrap link args)
G_WRAP_LINK_ARGS=`${G_WRAP_CONFIG} --c-link-args guile`
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`
AC_MSG_RESULT($G_WRAP_MODULE_DIR)

AC_GWRAP_CHECK_GUILE

AC_SUBST(G_WRAP_CONFIG)
AC_SUBST(G_WRAP_COMPILE_ARGS)
AC_SUBST(G_WRAP_LINK_ARGS)
AC_SUBST(G_WRAP_MODULE_DIR)

### --------------------------------------------------------------------------
### 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_INCLUDEDIR} ${GUILE_INCS} ${CFLAGS} ${GLIB_CFLAGS}"
AC_TRY_RUN([
  #include <glib.h>
  #include <libguile/__scm.h>
  int main(int argc, char *argv[]) {
    return(!(sizeof(long_long) >= sizeof(gint64)));
  }
],[
  AC_MSG_RESULT(yes)
  AC_CHECK_LIB(guile, scm_long_long2num,
               AC_DEFINE(GUILE_LONG_LONG_OK,1,is sizeof(long_long) >=
	       sizeof(gint64)))
],[
  AC_MSG_RESULT(no)
])
CFLAGS="$GNC_OLDCFLAGS"

# One of the places this is critical is in gnc_scm_to_gint64 and inverse.
# However, I'm sure we require this elsewhere, so don't remove this test
# unless you've done sufficient code review/testing.
AC_MSG_CHECKING(if unsigned long is at least as big as guint32)
GNC_OLDCFLAGS="$CFLAGS"
CFLAGS="${GNOME_INCLUDEDIR} ${GUILE_INCS} ${CFLAGS} ${GLIB_CFLAGS}"
AC_TRY_RUN([
  #include <glib.h>
  int main(int argc, char *argv[]) {
    return(!(sizeof(unsigned long) >= sizeof(guint32)));
  }
],[
  AC_MSG_RESULT(yes)
],[
  AC_MSG_RESULT(no)
  AC_MSG_ERROR(cannot continue, size of unsigned long too small.)
])
CFLAGS="$GNC_OLDCFLAGS"


### --------------------------------------------------------------------------
### Check which SRFIs we need.

GNC_ADD_ON_SRFIS=""

for srfi in `ls lib/srfi/srfi-*.scm | sed -e 's|lib/srfi/||; s/\.scm//'`
do
  AC_MSG_CHECKING(if guile needs our copy of ${srfi})
  if ! ${GUILE} -c "(use-modules (srfi ${srfi}))" > /dev/null 2>&1
  then
    GNC_ADD_ON_SRFIS="${GNC_ADD_ON_SRFIS} ${srfi}.scm"
    AC_MSG_RESULT(yes)
  else
    AC_MSG_RESULT(no)
  fi
done

AC_SUBST(GNC_ADD_ON_SRFIS)

### --------------------------------------------------------------------------
### GnuCash flags and libs configuration

GNUCASH_ENGINE_BASE_LIBS="${GUILE_LIBS} ${GLIB_LIBS}"
GNUCASH_ENGINE_LIBS="-L'${libdir}' -L${GNC_MODULE_DIR} -L${GNC_GWRAP_LIBDIR} ${GNUCASH_ENGINE_BASE_LIBS} -lgncmod-engine -lgw-engine -lgw-kvp -lgw-glib -lgncmodule"

GNUCASH_ENGINE_BASE_CFLAGS="${GLIB_CFLAGS} ${G_WRAP_COMPILE_ARGS} ${GUILE_INCS}"
GNUCASH_ENGINE_CFLAGS="-I${GNC_INCLUDE_DIR} ${GNUCASH_ENGINE_BASE_CFLAGS}"

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} ${GUPPI_CFLAGS}"
GNUCASH_GNOME_UTILS_LIBS="${GNUCASH_APP_UTILS_LIBS} ${GNUCASH_NETWORK_UTILS_LIBS} ${GNOME_LIBDIR} ${GNOMEUI_LIBS} ${GNOME_PRINT_LIBS} ${GTKHTML_LIBS} ${GLADE_LIBS} ${GUPPI_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)


### --------------------------------------------------------------------------
### Makefile creation

AC_OUTPUT(
          dnl # Makefiles
          Makefile
          accounts/Makefile
          accounts/C/Makefile
          accounts/da/Makefile
          accounts/de_DE/Makefile
          accounts/es_ES/Makefile
          accounts/pt_PT/Makefile
          accounts/sk/Makefile
          debian/Makefile
          doc/Makefile
          doc/examples/Makefile
          doc/html/Makefile
          doc/html/fr/Makefile
          doc/html/fr/image/Makefile
          doc/sgml/Makefile
          doc/sgml/C/Makefile
          doc/sgml/C/image/Makefile
          doc/sgml/de_DE/Makefile
          doc/sgml/es/Makefile
          doc/sgml/pt_PT/Makefile
          doc-tools/Makefile
          intl/Makefile
          intl-scm/Makefile
          lib/Makefile
          lib/guile-www/Makefile
          lib/srfi/Makefile
          macros/Makefile
	  po/Makefile.in
          po/Makefile
          rpm/Makefile
          src/Makefile
          src/app-file/Makefile
          src/app-file/gnome/Makefile
          src/app-utils/Makefile
          src/app-utils/test/Makefile
          src/backend/Makefile
          src/backend/net/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/backend/rpc/Makefile
          src/calculation/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/experimental/Makefile
          src/experimental/cbb/Makefile
          src/experimental/cbb/cbb-engine/Makefile
          src/experimental/cgi-bin/Makefile
          src/experimental/gg/Makefile
          src/experimental/ofx/Makefile
          src/experimental/ofx/dtd/Makefile
          src/experimental/ofx/explore/Makefile
          src/experimental/ofx/parser/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-utils/Makefile
          src/gnome-utils/test/Makefile
          src/guile/Makefile
          src/import-export/Makefile
          src/import-export/binary-import/Makefile
          src/import-export/binary-import/test/Makefile
          src/import-export/qif-import/Makefile
          src/import-export/qif-io-core/Makefile
          src/import-export/qif-io-core/test/Makefile
          src/network-utils/Makefile
          src/network-utils/test/Makefile
          src/optional/Makefile
          src/optional/swig/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-system/test/Makefile
          src/report/report-system/Makefile
          src/report/standard-reports/test/Makefile
          src/report/standard-reports/Makefile
          src/report/locale-specific/Makefile
          src/report/locale-specific/us/Makefile
          src/report/locale-specific/us/test/Makefile
          src/report/stylesheets/test/Makefile
          src/report/stylesheets/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

          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
          )
