major restructuring of the file layout and autotools build

This change makes it possible to add a new backend without
changing any of the core files. It also gets rid of some
hacks (like -export-dynamic for the binary) by putting all
core SyncEvolution code into a library.

The transition is not quite complete: there are still
some lists of existing backends, which will be removed
soon. EvolutionSmartPtr.h and EvolutionSyncSource depend
on Evolution/GNOME libs, which forces all backends to
use the right -I flags.


git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@684 15ad00c4-1369-45f4-8270-35d70d36bdcd
This commit is contained in:
Patrick Ohly 2008-07-29 21:06:11 +00:00
parent 8567833159
commit 5e8fa6eb94
61 changed files with 82 additions and 343 deletions

View file

@ -2,7 +2,7 @@
SUBDIRS = src test
EXTRA_DIST = HACKING description
EXTRA_DIST = HACKING description configure-pre.in configure-post.in autogen.sh
MAINTAINERCLEANFILES = Makefile.in config.h.in config.guess config.sub configure depcomp install-sh ltmain.sh missing mkinstalldirs
DISTCHECK_CONFIGURE_FLAGS = --with-sync4j=@FUNAMBOL@
@ -79,3 +79,18 @@ doc-pak : README NEWS COPYING
description-pak : description
cp $< $@
# TODO: make configurable
$(srcdir)/configure.in: configure-pre.in configure-post.in src/backends/addressbook/configure-sub.in src/backends/evolution/configure-sub.in src/backends/sqlite/configure-sub.in
rm -f $@
cat $(srcdir)/configure-pre.in >>$@
for sub in $(srcdir)/src/backends/*/configure-sub.in; do \
echo "# vvvvvvvvvvvvvv $$sub vvvvvvvvvvvvvv" >>$@; \
cat $$sub >>$@; \
echo "AC_CONFIG_FILES(`echo $$sub | sed -e 's;^$(srcdir)/;;' -e s/configure-sub.in/Makefile/`)" >>$@; \
echo "# ^^^^^^^^^^^^^^ $$sub ^^^^^^^^^^^^^^" >>$@; \
echo >>$@; \
done
echo BACKEND_REGISTRIES = `echo $(srcdir)/src/backends/*/*Register.cpp | sed -e 's;$(srcdir)/;;'` >>$@
echo "AC_SUBST(BACKEND_REGISTRIES)" >>$@
cat $(srcdir)/configure-post.in >>$@

View file

@ -1,5 +1,26 @@
#!/bin/sh
set -e
# generate configure.in from main configure-*.in pieces
# and all backend configure-sub.in pieces
rm -f configure.in
cat configure-pre.in >>configure.in
BACKENDS=
for sub in src/backends/*/configure-sub.in; do
BACKENDS="$BACKENDS `dirname $sub | sed -e 's;^src/;;'`"
echo "# vvvvvvvvvvvvvv $sub vvvvvvvvvvvvvv" >>configure.in
cat $sub >>configure.in
echo "AC_CONFIG_FILES(`echo $sub | sed -e s/configure-sub.in/Makefile/`)" >>configure.in
echo "# ^^^^^^^^^^^^^^ $sub ^^^^^^^^^^^^^^" >>configure.in
echo >>configure.in
done
cat configure-post.in >>configure.in
sed -e "s;@BACKEND_REGISTRIES@;`echo src/backends/*/*Register.cpp | sed -e s%src/%%g`;" \
-e "s;@BACKENDS@;$BACKENDS;" \
src/Makefile.am.gen >src/Makefile.am
libtoolize -c
aclocal
autoheader

View file

@ -1,4 +1,4 @@
dnl Process this file with autoconf to produce a configure script.
dnl Invoke autogen.sh to produce a configure script.
AC_INIT(src/syncevolution.cpp)
AM_INIT_AUTOMAKE(syncevolution, 0.8-beta1)
@ -108,9 +108,6 @@ FUNAMBOL_LIB=$PWD/src/client-api.build/src/libfunambol.la
AC_SUBST(CLEAN_CLIENT_SRC)
# list of backend names (--enable-<name>, $enable_<name>)
BACKENDS=
if test ! "$FUNAMBOL"; then
if test "$FUNAMBOLSRC"; then
# make a copy of the sources, remove it during maintainer-clean and distclean
@ -166,7 +163,12 @@ if test ! "$FUNAMBOL"; then
echo $i;
fi;
done`
if (set -x; mkdir -p $FUNAMBOL_SUBDIR && cd $FUNAMBOL_SUBDIR && $CLIENT_CONFIGURE --build=$build_alias --host=$host_alias --target=$target_alias --disable-shared $cxx_lib_args); then true; else
if test "$enable_shared" == "yes"; then
# Okay, this is a shortcut: strictly speaking we would have
# to check with autoconf for the right flags...
FUNAMBOL_LIB_SHARED_FLAGS="-DPIC -fPIC"
fi
if (set -x; mkdir -p $FUNAMBOL_SUBDIR && cd $FUNAMBOL_SUBDIR && $CLIENT_CONFIGURE --build=$build_alias --host=$host_alias --target=$target_alias --disable-shared CFLAGS="$CFLAGS $FUNAMBOL_LIB_SHARED_FLAGS" CXXFLAGS="$CXXFLAGS $FUNAMBOL_LIB_SHARED_FLAGS" $cxx_lib_args); then true; else
AC_MSG_ERROR( [configuring client library failed] )
fi
else
@ -189,78 +191,9 @@ AC_SUBST(FUNAMBOL_DEP)
AC_SUBST(FUNAMBOL_LIB)
AC_SUBST(FUNAMBOLSRC)
pkg_emodules_10="libedataserver-1.0"
pkg_emodules_11="libedataserver-1.1"
pkg_emodules_12="libedataserver-1.2"
pkg_ebook_10="libebook-1.0"
pkg_ebook_11="libebook-1.1"
pkg_ebook_12="libebook-1.2"
pkg_ecal_10="libecal-1.0"
pkg_ecal_11="libecal-1.1"
pkg_ecal_12="libecal-1.2"
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/usr/lib/pkgconfig:$prefix/lib/pkgconfig:/usr/local/lib/pkgconfig
anymissing="
Please install the development packages of Evolution and/or
set the PKG_CONFIG_PATH variable so that it points towards
the .pc files of libedataserver, libecal and libebook (the
latter two are optional).
You can check that these packages are available by running
pkg-config --list-all."
evomissing="No compatible evolution-data-server was found.
$anymissing"
dnl check for Evolution core packages
PKG_CHECK_MODULES(EPACKAGE, [$pkg_emodules_12], EDSFOUND=yes, [EDSFOUND=no])
if test "x${EDSFOUND}" = "xno"; then
PKG_CHECK_MODULES(EPACKAGE, [$pkg_emodules_11], EDSFOUND=yes, [EDSFOUND=no])
if test "x${EDSFOUND}" = "xno"; then
PKG_CHECK_MODULES(EPACKAGE, [$pkg_emodules_10], EDSFOUND=yes, [EDSFOUND=no])
fi
fi
AC_SUBST(EPACKAGE_CFLAGS)
AC_SUBST(EPACKAGE_LIBS)
dnl check for Evolution calendar packages
PKG_CHECK_MODULES(ECAL, [$pkg_ecal_12], ECALFOUND=yes, [ECALFOUND=no])
if test "x${ECALFOUND}" = "xno"; then
PKG_CHECK_MODULES(ECAL, [$pkg_ecal_11], ECALFOUND=yes, [ECALFOUND=no])
if test "x${ECALFOUND}" = "xno"; then
PKG_CHECK_MODULES(ECAL, [$pkg_ecal_10], ECALFOUND=yes, [ECALFOUND=no])
fi
fi
AC_SUBST(ECAL_CFLAGS)
AC_SUBST(ECAL_LIBS)
dnl check for Evolution contact packages
PKG_CHECK_MODULES(EBOOK, [$pkg_ebook_12], EBOOKFOUND=yes, [EBOOKFOUND=no])
if test "x${EBOOKFOUND}" = "xno"; then
PKG_CHECK_MODULES(EBOOK, [$pkg_ebook_11], EBOOKFOUND=yes, [EBOOKFOUND=no])
if test "x${EBOOKFOUND}" = "xno"; then
PKG_CHECK_MODULES(EBOOK, [$pkg_ebook_10], EBOOKFOUND=yes, [EBOOKFOUND=no])
fi
fi
AC_SUBST(EBOOK_CFLAGS)
AC_SUBST(EBOOK_LIBS)
dnl check for sqlite
PKG_CHECK_MODULES(SQLITE, sqlite3, SQLITEFOUND=yes, [SQLITEFOUND=no])
AC_SUBST(SQLITE_CFLAGS)
AC_SUBST(SQLITE_LIBS)
dnl hard-coded settings for Mac OS X AddressBook
ADDRESSBOOK_CFLAGS=
ADDRESSBOOK_LIBS="-framework AddressBook -framework CoreFoundation"
AC_SUBST(ADDRESSBOOK_CFLAGS)
AC_SUBST(ADDRESSBOOK_LIBS)
dnl select backends
BACKENDS=""
# AC_ARG_ENABLE_BACKEND(BACKEND, HELP-STRING, [ACTION-IF-GIVEN],
# [ACTION-IF-NOT-GIVEN])
#
@ -272,132 +205,4 @@ AC_DEFUN([AC_ARG_ENABLE_BACKEND],
BACKENDS="$BACKENDS $1"
])
AC_ARG_ENABLE_BACKEND(ebook, AS_HELP_STRING([--disable-ebook], [disable access to Evolution addressbooks (default on if available)]),
[enable_ebook="$enableval"], [enable_ebook=$EBOOKFOUND])
AC_ARG_ENABLE_BACKEND(ecal, AS_HELP_STRING([--disable-ecal], [disable access to Evolution calendars and tasks (default on if available)]),
[enable_ecal="$enableval"], [enable_ecal=$ECALFOUND])
AC_ARG_ENABLE_BACKEND(sqlite, AS_HELP_STRING([--enable-sqlite], [enable access to PIM data stored in SQLite files (experimental, default off)]),
[enable_sqlite="$enableval"], [enable_sqlite="no"])
AC_ARG_ENABLE_BACKEND(addressbook, AS_HELP_STRING([--enable-addressbook], [enable access to Mac OS X address book (default off)]),
[enable_addressbook="$enableval"], [enable_addressbook="no"])
enable_evo="no"
enable_any="no"
if test "$enable_ebook" = "yes"; then
test "x${EBOOKFOUND}" == "xyes" || AC_MSG_ERROR([--enable-ebook requires pkg-config information for libebook, which was not found])
AC_DEFINE(ENABLE_EBOOK, 1, [libebook available])
enable_evo="yes"
enable_any="yes"
fi
AM_CONDITIONAL([ENABLE_ECAL], [test "$enable_ecal" == "yes"])
if test "$enable_ecal" = "yes"; then
test "x${ECALFOUND}" == "xyes" || AC_MSG_ERROR([--enable-ecal requires pkg-config information for libecal, which was not found"])
AC_DEFINE(ENABLE_ECAL, 1, [libecal available])
enable_evo="yes"
enable_any="yes"
fi
if test "$enable_sqlite" = "yes"; then
test "x${SQLITEFOUND}" == "xyes" || AC_MSG_ERROR([--enable-sqlite requires pkg-config information for sqlite3, which was not found])
AC_DEFINE(ENABLE_SQLITE, 1, [sqlite available])
enable_any="yes"
fi
if test "$enable_addressbook" = "yes"; then
AC_DEFINE(ENABLE_ADDRESSBOOK, 1, [addressbook available])
DEVICE_TYPE=MacOS_X
enable_any="yes"
else
ADDRESSBOOK_LIBS=
fi
if test "$enable_any" = "no"; then
AC_MSG_ERROR([no backend enabled - refusing to continue: $anymissing])
fi
if test "$enable_evo" = "yes"; then
if test "$EDSFOUND" = "yes"; then
AC_DEFINE(HAVE_EDS, 1, [evolution-dataserver available])
else
AC_MSG_ERROR($evomissing)
fi
else
EPACKAGE_CFLAGS=
EPACKAGE_LIBS=
fi
dnl check for glib - calling g_type_init() is expected on Maemo
PKG_CHECK_MODULES(GLIB, "glib-2.0", GLIBFOUND=yes, GLIBFOUND=no)
if test "x${GLIBFOUND}" = "xno"; then
PKG_CHECK_MODULES(GLIB, "glib", GLIBFOUND=yes, GLIBFOUND=no)
fi
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
dnl check for programs.
AC_PROG_CXX
AC_PROG_LIBTOOL
AC_PROG_MAKE_SET
if test "$enable_sqlite" == "yes"; then
SYNCEVOLUTION_MODULES="$SYNCEVOLUTION_MODULES syncsqlite.la"
fi
if test "$enable_addressbook" == "yes"; then
SYNCEVOLUTION_MODULES="$SYNCEVOLUTION_MODULES syncaddressbook.la"
fi
dnl glib initialization is done only for libebook and libecal, not needed
dnl otherwise even if found
if test "$enable_ebook" != "yes" && test "$enable_ecal" != "yes"; then
GLIB_CFLAGS=
GLIB_LIBS=
else
if test "x${GLIBFOUND}" = "xyes"; then
AC_DEFINE(HAVE_GLIB, 1, [glib found])
fi
fi
dnl figure out whether we link all code statically or as modules
AM_CONDITIONAL([ENABLE_MODULES], [test "$enable_shared" == "yes"])
if test "$enable_shared" == "yes"; then
SYNCEVOLUTION_LDADD="-Wl,-export-dynamic -rpath '\$(pkglibdir)'"
AC_DEFINE(ENABLE_MODULES, 1, [enable dynamically opening sync source backends])
else
SYNCEVOLUTION_LDADD="\$(EXTRA_LTLIBRARIES)"
fi
AC_SUBST(SYNCEVOLUTION_LDADD)
dnl CXXFLAGS gets applied to SyncEvolution and the client library.
dnl For e.g. "-Wall -Werror" this might not be such a good idea;
dnl SYNCEVOLUTION_CXXFLAGS can be used instead. It applies only
dnl to the sources in the SyncEvolution repository.
AC_SUBST(SYNCEVOLUTION_CXXFLAGS)
dnl a quick-and-dirty way to detect compilation for the iPhone
if test "$host" == "arm-apple-darwin"; then
AC_DEFINE(IPHONE, 1, [compiling for iPhone])
DEVICE_TYPE=iPhone
fi
dnl This string is sent as part of the SyncML DevInf (device
dnl information) structure to the server. All SyncEvolution platforms
dnl use "SyncEvolution" as HTTP user agent and "Mod" (model), so the
dnl device type is the only way how different kinds of clients can be
dnl distinguished.
AC_DEFINE_UNQUOTED(DEVICE_TYPE, "$DEVICE_TYPE", "SyncML DevInf DevType")
AC_CHECK_HEADERS(stdarg.h valgrind/valgrind.h execinfo.h)
echo
echo CONFIGURATION SUMMARY
for backend in $BACKENDS; do
eval echo $backend: \${enable_${backend}}
done
echo
AC_OUTPUT([
Makefile
src/Makefile
test/Makefile
])
dnl src/backends/*/configure-sub.in and configure-post.in follow

View file

@ -1,4 +1,7 @@
INCLUDES = @EPACKAGE_CFLAGS@ @EBOOK_CFLAGS@ @ECAL_CFLAGS@ @GLIB_CFLAGS@ @FUNAMBOL_CFLAGS@ @SQLITE_CFLAGS@ @ADDRESSBOOK_CFLAGS@
BACKENDS = @BACKENDS@
SUBDIRS = core $(BACKENDS)
AM_CPPFLAGS = $(SUBDIRS:%=-I$(srcdir)/%) @BACKEND_CPPFLAGS@ @FUNAMBOL_CFLAGS@
# applies to sources in SyncEvolution repository, but not
# the Funambol C++ client library
@ -6,16 +9,18 @@ SYNCEVOLUTION_CXXFLAGS = @SYNCEVOLUTION_CXXFLAGS@
bin_PROGRAMS = syncevolution
bin_SCRIPTS = synccompare
SYNCSOURCES = syncecal.la syncebook.la syncsqlite.la syncaddressbook.la
MOSTLYCLEANFILES = $(SYNCSOURCES)
SYNCSOURCES = backends/evolution/syncecal.la backends/evolution/syncebook.la backends/sqlite/syncsqlite.la backends/addressbook/syncaddressbook.la # TODO
# The Funambol libs should be inherited via libsyncevolution.la, but
# somehow that didn't work when enabling shared objects (probably
# because only a static libfunambol.a is built, which relies on
# tricks like adding -fPIC manually).
SYNCEVOLUTION_LDADD = @SYNCEVOLUTION_LDADD@ @FUNAMBOL_LIBS@
if ENABLE_MODULES
pkglib_LTLIBRARIES = $(SYNCSOURCES)
else
EXTRA_LTLIBRARIES = $(SYNCSOURCES)
SYNCEVOLUTION_LDADD += $(SYNCSOURCES)
endif
SYNCEVOLUTION_LDADD = @SYNCEVOLUTION_LDADD@
EXTRA_PROGRAMS = client-test
EXTRA_DIST = shlibs.local
EXTRA_DIST = shlibs.local Makefile.am.gen
check_PROGRAMS = @CPPUNIT_TESTS@
TESTS = @CPPUNIT_TESTS@
@ -34,104 +39,25 @@ synccompare : Diff.pm synccompare.pl
perl -e '$$diff = shift; open(DIFF, "<$$diff"); ($$_) = split(/__END__/, join("", <DIFF>)); s/\*import.*//m; s/require +Exporter;//; s/^#.*\n//mg; s/ +#.*\n//mg; $$diff = $$_;' -e 'while(<>) {' @MODIFY_SYNCCOMPARE@ -e 's/use +Algorithm::Diff;/"# embedded version of Algorithm::Diff follows, copyright by the original authors\n" . $$diff . "# end of embedded Algorithm::Diff\n"/e; print;}' $+ >$@
chmod u+x $@
VOCL_SOURCES = \
vocl/VObject.h \
vocl/VProperty.h \
vocl/VConverter.h \
vocl/posixadapter.h \
\
vocl/VObject.cpp \
vocl/VProperty.cpp \
vocl/VConverter.cpp
CORE_SOURCES =
CORE_SOURCES = \
ConfigTree.h \
ConfigNode.h \
VolatileConfigNode.h \
VolatileConfigTree.h \
EvolutionSmartPtr.h \
\
SyncEvolutionUtil.cpp \
SyncEvolutionUtil.h \
\
SyncEvolutionCmdline.cpp \
SyncEvolutionCmdline.h \
\
EvolutionSyncSource.h \
EvolutionSyncSource.cpp \
\
EvolutionSyncClient.h \
EvolutionSyncClient.cpp \
\
SyncEvolutionConfig.h \
SyncEvolutionConfig.cpp \
\
FilterConfigNode.h \
FilterConfigNode.cpp \
\
SafeConfigNode.h \
SafeConfigNode.cpp \
\
PrefixConfigNode.h \
PrefixConfigNode.cpp \
\
FileConfigNode.h \
FileConfigNode.cpp \
\
FileConfigTree.h \
FileConfigTree.cpp \
\
TrackingSyncSource.h \
TrackingSyncSource.cpp \
\
$(VOCL_SOURCES)
SYNCECAL_SOURCES = \
EvolutionCalendarSource.h \
EvolutionMemoSource.h \
EvolutionCalendarSource.cpp \
EvolutionMemoSource.cpp
# The files which register backends have to be compiled into
# "client-test" and "syncevolution" in order to pull in the
# code from the libs which implement the backends.
#
# Unit testing also goes there.
#
# When using modules the registration is done inside the
# module and the register file is unnecessary. However, they
# still need to be included in "make dist".
BACKEND_REGISTRIES = @BACKEND_REGISTRIES@
if ENABLE_MODULES
EXTRA_DIST += $(BACKEND_REGISTRIES)
else
CORE_SOURCES += EvolutionCalendarSourceRegister.cpp
CORE_SOURCES += $(BACKEND_REGISTRIES)
endif
if ENABLE_ECAL
SYNCECAL_SOURCES += \
libical/icalstrdup.c \
libical/icalstrdup.h \
e-cal-check-timezones.c \
e-cal-check-timezones.h
endif
SYNCEBOOK_SOURCES = \
EvolutionContactSource.h \
EvolutionContactSource.cpp
if ENABLE_MODULES
else
CORE_SOURCES += EvolutionContactSourceRegister.cpp
endif
SYNCSQLITE_SOURCES = \
SQLiteUtil.h \
SQLiteUtil.cpp \
SQLiteContactSource.h \
SQLiteContactSource.cpp
if ENABLE_MODULES
else
CORE_SOURCES += SQLiteContactSourceRegister.cpp
endif
SYNCADDRESSBOOK_SOURCES = \
AddressBookSource.h \
AddressBookConstants.cpp \
AddressBookSource.cpp
if ENABLE_MODULES
else
CORE_SOURCES += AddressBookSourceRegister.cpp
endif
CORE_LDADD = @EPACKAGE_LIBS@ @GLIB_LIBS@ @FUNAMBOL_LIBS@ @ADDRESSBOOK_LIBS@ @LIBS@
CORE_LDADD = core/libsyncevolution.la @GLIB_LIBS@ @LIBS@
CORE_DEP = @FUNAMBOL_DEP@
# put link to static c++ library into current directory, needed if compiling with --enable-static-c++
@ -145,46 +71,10 @@ syncevolution_SOURCES = \
# SYNCEVOLUTION_LDADD will be replaced with libsyncebook.la/libsyncecal.la/libsyncsqlite.la
# if linking statically against them, empty otherwise;
# either way this does not lead to a dependency on those libs - done explicitly
#
# LIBDBUS might be replaced with path to patched libdbus-1.a (required for
# DBUS_DEFAULT_TIMEOUT hack on Maemo).
syncevolution_LDADD = $(SYNCEVOLUTION_LDADD) @LIBDBUS@ $(CORE_LDADD)
syncevolution_LDADD = $(SYNCEVOLUTION_LDADD) $(CORE_LDADD)
syncevolution_CXXFLAGS = $(SYNCEVOLUTION_CXXFLAGS)
syncevolution_DEPENDENCIES = $(EXTRA_LTLIBRARIES) $(CORE_DEP)
syncecal_la_SOURCES = $(SYNCECAL_SOURCES)
syncecal_la_LIBADD = @ECAL_LIBS@
# _GNU_SOURCE and -ldl for libical.c + dlsym():
syncecal_la_CPPFLAGS = -D_GNU_SOURCE \
-De_cal_check_timezones=syncevolution_check_timezones \
-De_cal_tzlookup_ecal=syncevolution_tzlookup_ecal \
-De_cal_tzlookup_icomp=syncevolution_tzlookup_icomp \
-De_cal_match_tzid=syncevolution_match_tzid
syncecal_la_LDFLAGS = -module -rpath '$(pkglibdir)' -ldl
syncecal_la_CXXFLAGS = $(SYNCEVOLUTION_CXXFLAGS)
syncebook_la_SOURCES = $(SYNCEBOOK_SOURCES)
syncebook_la_LIBADD = @EBOOK_LIBS@
syncebook_la_LDFLAGS = -module -rpath '$(pkglibdir)'
syncebook_la_CXXFLAGS = $(SYNCEVOLUTION_CXXFLAGS)
syncsqlite_la_SOURCES = $(SYNCSQLITE_SOURCES)
syncsqlite_la_LIBADD = @SQLITE_LIBS@
syncsqlite_la_LDFLAGS = -module -rpath '$(pkglibdir)'
syncsqlite_la_CXXFLAGS = $(SYNCEVOLUTION_CXXFLAGS)
syncaddressbook_la_SOURCES = $(SYNCADDRESSBOOK_SOURCES)
syncaddressbook_la_LIBADD = @ADDRESSBOOK_LIBS@
syncaddressbook_la_LDFLAGS = -module -rpath '$(pkglibdir)'
syncaddressbook_la_CXXFLAGS = $(SYNCEVOLUTION_CXXFLAGS)
EXTRA_PROGRAMS += vcardconverter
vcardconverter_SOURCES = \
vocl/vcardconverter.cpp \
$(VOCL_SOURCES)
vcardconverter_LDADD = $(CORE_LDADD)
# FUNAMBOL_SUBDIR specifies the directory where we compile
# the client library by invoking make there.
# Installing its source is done explicitly.
@ -220,7 +110,7 @@ distclean-local:
client_test_SOURCES = client-test-app.cpp $(CORE_SOURCES)
CLIENT_LIB_TEST_FILES = ClientTest.h ClientTest.cpp client-test-main.cpp
nodist_client_test_SOURCES = $(CLIENT_LIB_TEST_FILES)
client_test_CPPFLAGS = -DHAVE_CONFIG_H -DENABLE_INTEGRATION_TESTS
client_test_CPPFLAGS = -DHAVE_CONFIG_H -DENABLE_INTEGRATION_TESTS $(AM_CPPFLAGS)
client_test_CXXFLAGS = `cppunit-config --cflags` $(SYNCEVOLUTION_CXXFLAGS)
client_test_LDFLAGS = `cppunit-config --libs` `nm $(FUNAMBOL_SUBDIR)/src/.libs/libfunambol.a | grep funambolAutoRegisterRegistry | sed -e 's/.* /-u /'`
client_test_LDADD = $(SYNCEVOLUTION_LDADD) @LIBDBUS@ $(FUNAMBOL_SUBDIR)/src/libfunambol.la $(CORE_LDADD)
@ -278,3 +168,11 @@ client-api-diff :
# special target for testing with valgrind
valgrind : test
valgrind --leak-check=yes --suppressions=valgrind.supp ./test
# Because backend-related variables need to be substituted in
# Makefile.am.gen we need an explicit rule to redo that work
# so that "make" rebuilds derived files correctly.
$(srcdir)/Makefile.am: Makefile.am.gen
sed -e 's;[@]BACKEND_REGISTRIES[@];$(BACKEND_REGISTRIES);' \
-e 's;[@]BACKENDS[@];$(BACKENDS);' \
$< >$@