summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am17
-rwxr-xr-xautogen.sh21
-rw-r--r--configure-pre.in (renamed from configure.in)213
-rw-r--r--src/Makefile.am.gen (renamed from src/Makefile.am)174
-rw-r--r--src/backends/addressbook/AddressBookConstants.cpp (renamed from src/AddressBookConstants.cpp)0
-rw-r--r--src/backends/addressbook/AddressBookSource.cpp (renamed from src/AddressBookSource.cpp)0
-rw-r--r--src/backends/addressbook/AddressBookSource.h (renamed from src/AddressBookSource.h)0
-rw-r--r--src/backends/addressbook/AddressBookSourceRegister.cpp (renamed from src/AddressBookSourceRegister.cpp)0
-rw-r--r--src/backends/evolution/EvolutionCalendarSource.cpp (renamed from src/EvolutionCalendarSource.cpp)0
-rw-r--r--src/backends/evolution/EvolutionCalendarSource.h (renamed from src/EvolutionCalendarSource.h)0
-rw-r--r--src/backends/evolution/EvolutionCalendarSourceRegister.cpp (renamed from src/EvolutionCalendarSourceRegister.cpp)0
-rw-r--r--src/backends/evolution/EvolutionContactSource.cpp (renamed from src/EvolutionContactSource.cpp)0
-rw-r--r--src/backends/evolution/EvolutionContactSource.h (renamed from src/EvolutionContactSource.h)0
-rw-r--r--src/backends/evolution/EvolutionContactSourceRegister.cpp (renamed from src/EvolutionContactSourceRegister.cpp)0
-rw-r--r--src/backends/evolution/EvolutionMemoSource.cpp (renamed from src/EvolutionMemoSource.cpp)0
-rw-r--r--src/backends/evolution/EvolutionMemoSource.h (renamed from src/EvolutionMemoSource.h)0
-rw-r--r--src/backends/evolution/e-cal-check-timezones.c (renamed from src/e-cal-check-timezones.c)0
-rw-r--r--src/backends/evolution/e-cal-check-timezones.h (renamed from src/e-cal-check-timezones.h)0
-rw-r--r--src/backends/evolution/libical/icalstrdup.c (renamed from src/libical/icalstrdup.c)0
-rw-r--r--src/backends/evolution/libical/icalstrdup.h (renamed from src/libical/icalstrdup.h)0
-rw-r--r--src/backends/sqlite/SQLiteContactSource.cpp (renamed from src/SQLiteContactSource.cpp)0
-rw-r--r--src/backends/sqlite/SQLiteContactSource.h (renamed from src/SQLiteContactSource.h)0
-rw-r--r--src/backends/sqlite/SQLiteContactSourceRegister.cpp (renamed from src/SQLiteContactSourceRegister.cpp)0
-rw-r--r--src/backends/sqlite/SQLiteUtil.cpp (renamed from src/SQLiteUtil.cpp)0
-rw-r--r--src/backends/sqlite/SQLiteUtil.h (renamed from src/SQLiteUtil.h)0
-rw-r--r--src/core/ConfigNode.h (renamed from src/ConfigNode.h)0
-rw-r--r--src/core/ConfigTree.h (renamed from src/ConfigTree.h)0
-rw-r--r--src/core/EvolutionSmartPtr.h (renamed from src/EvolutionSmartPtr.h)0
-rw-r--r--src/core/EvolutionSyncClient.cpp (renamed from src/EvolutionSyncClient.cpp)0
-rw-r--r--src/core/EvolutionSyncClient.h (renamed from src/EvolutionSyncClient.h)0
-rw-r--r--src/core/EvolutionSyncSource.cpp (renamed from src/EvolutionSyncSource.cpp)0
-rw-r--r--src/core/EvolutionSyncSource.h (renamed from src/EvolutionSyncSource.h)0
-rw-r--r--src/core/FileConfigNode.cpp (renamed from src/FileConfigNode.cpp)0
-rw-r--r--src/core/FileConfigNode.h (renamed from src/FileConfigNode.h)0
-rw-r--r--src/core/FileConfigTree.cpp (renamed from src/FileConfigTree.cpp)0
-rw-r--r--src/core/FileConfigTree.h (renamed from src/FileConfigTree.h)0
-rw-r--r--src/core/FilterConfigNode.cpp (renamed from src/FilterConfigNode.cpp)0
-rw-r--r--src/core/FilterConfigNode.h (renamed from src/FilterConfigNode.h)0
-rw-r--r--src/core/PrefixConfigNode.cpp (renamed from src/PrefixConfigNode.cpp)0
-rw-r--r--src/core/PrefixConfigNode.h (renamed from src/PrefixConfigNode.h)0
-rw-r--r--src/core/SafeConfigNode.cpp (renamed from src/SafeConfigNode.cpp)0
-rw-r--r--src/core/SafeConfigNode.h (renamed from src/SafeConfigNode.h)0
-rw-r--r--src/core/SyncEvolutionCmdline.cpp (renamed from src/SyncEvolutionCmdline.cpp)0
-rw-r--r--src/core/SyncEvolutionCmdline.h (renamed from src/SyncEvolutionCmdline.h)0
-rw-r--r--src/core/SyncEvolutionConfig.cpp (renamed from src/SyncEvolutionConfig.cpp)0
-rw-r--r--src/core/SyncEvolutionConfig.h (renamed from src/SyncEvolutionConfig.h)0
-rw-r--r--src/core/SyncEvolutionUtil.cpp (renamed from src/SyncEvolutionUtil.cpp)0
-rw-r--r--src/core/SyncEvolutionUtil.h (renamed from src/SyncEvolutionUtil.h)0
-rw-r--r--src/core/TrackingSyncSource.cpp (renamed from src/TrackingSyncSource.cpp)0
-rw-r--r--src/core/TrackingSyncSource.h (renamed from src/TrackingSyncSource.h)0
-rw-r--r--src/core/VolatileConfigNode.h (renamed from src/VolatileConfigNode.h)0
-rw-r--r--src/core/VolatileConfigTree.h (renamed from src/VolatileConfigTree.h)0
-rw-r--r--src/core/vocl/README (renamed from src/vocl/README)0
-rw-r--r--src/core/vocl/VConverter.cpp (renamed from src/vocl/VConverter.cpp)0
-rw-r--r--src/core/vocl/VConverter.h (renamed from src/vocl/VConverter.h)0
-rw-r--r--src/core/vocl/VObject.cpp (renamed from src/vocl/VObject.cpp)0
-rw-r--r--src/core/vocl/VObject.h (renamed from src/vocl/VObject.h)0
-rw-r--r--src/core/vocl/VProperty.cpp (renamed from src/vocl/VProperty.cpp)0
-rw-r--r--src/core/vocl/VProperty.h (renamed from src/vocl/VProperty.h)0
-rw-r--r--src/core/vocl/posixadapter.h (renamed from src/vocl/posixadapter.h)0
-rw-r--r--src/core/vocl/vcardconverter.cpp (renamed from src/vocl/vcardconverter.cpp)0
61 files changed, 82 insertions, 343 deletions
diff --git a/Makefile.am b/Makefile.am
index 4983fbd0..9c8e8ac4 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -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 >>$@
diff --git a/autogen.sh b/autogen.sh
index 779d3b21..5cdf9f0c 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -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
diff --git a/configure.in b/configure-pre.in
index 793b6ed1..8b16c4a7 100644
--- a/configure.in
+++ b/configure-pre.in
@@ -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
diff --git a/src/Makefile.am b/src/Makefile.am.gen
index e7c4e4de..1d8dd134 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am.gen
@@ -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 = \
- 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
-if ENABLE_MODULES
-else
-CORE_SOURCES += EvolutionCalendarSourceRegister.cpp
-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
+CORE_SOURCES =
-SYNCADDRESSBOOK_SOURCES = \
- AddressBookSource.h \
- AddressBookConstants.cpp \
- AddressBookSource.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 += AddressBookSourceRegister.cpp
+CORE_SOURCES += $(BACKEND_REGISTRIES)
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);' \
+ $< >$@
diff --git a/src/AddressBookConstants.cpp b/src/backends/addressbook/AddressBookConstants.cpp
index c83fa856..c83fa856 100644
--- a/src/AddressBookConstants.cpp
+++ b/src/backends/addressbook/AddressBookConstants.cpp
diff --git a/src/AddressBookSource.cpp b/src/backends/addressbook/AddressBookSource.cpp
index 596ff397..596ff397 100644
--- a/src/AddressBookSource.cpp
+++ b/src/backends/addressbook/AddressBookSource.cpp
diff --git a/src/AddressBookSource.h b/src/backends/addressbook/AddressBookSource.h
index 222173e9..222173e9 100644
--- a/src/AddressBookSource.h
+++ b/src/backends/addressbook/AddressBookSource.h
diff --git a/src/AddressBookSourceRegister.cpp b/src/backends/addressbook/AddressBookSourceRegister.cpp
index 125d834a..125d834a 100644
--- a/src/AddressBookSourceRegister.cpp
+++ b/src/backends/addressbook/AddressBookSourceRegister.cpp
diff --git a/src/EvolutionCalendarSource.cpp b/src/backends/evolution/EvolutionCalendarSource.cpp
index 9c461045..9c461045 100644
--- a/src/EvolutionCalendarSource.cpp
+++ b/src/backends/evolution/EvolutionCalendarSource.cpp
diff --git a/src/EvolutionCalendarSource.h b/src/backends/evolution/EvolutionCalendarSource.h
index da1eeda9..da1eeda9 100644
--- a/src/EvolutionCalendarSource.h
+++ b/src/backends/evolution/EvolutionCalendarSource.h
diff --git a/src/EvolutionCalendarSourceRegister.cpp b/src/backends/evolution/EvolutionCalendarSourceRegister.cpp
index 19f53e31..19f53e31 100644
--- a/src/EvolutionCalendarSourceRegister.cpp
+++ b/src/backends/evolution/EvolutionCalendarSourceRegister.cpp
diff --git a/src/EvolutionContactSource.cpp b/src/backends/evolution/EvolutionContactSource.cpp
index ad6dfa3c..ad6dfa3c 100644
--- a/src/EvolutionContactSource.cpp
+++ b/src/backends/evolution/EvolutionContactSource.cpp
diff --git a/src/EvolutionContactSource.h b/src/backends/evolution/EvolutionContactSource.h
index 331b6b41..331b6b41 100644
--- a/src/EvolutionContactSource.h
+++ b/src/backends/evolution/EvolutionContactSource.h
diff --git a/src/EvolutionContactSourceRegister.cpp b/src/backends/evolution/EvolutionContactSourceRegister.cpp
index 7784891f..7784891f 100644
--- a/src/EvolutionContactSourceRegister.cpp
+++ b/src/backends/evolution/EvolutionContactSourceRegister.cpp
diff --git a/src/EvolutionMemoSource.cpp b/src/backends/evolution/EvolutionMemoSource.cpp
index 6189ba3c..6189ba3c 100644
--- a/src/EvolutionMemoSource.cpp
+++ b/src/backends/evolution/EvolutionMemoSource.cpp
diff --git a/src/EvolutionMemoSource.h b/src/backends/evolution/EvolutionMemoSource.h
index 75475cee..75475cee 100644
--- a/src/EvolutionMemoSource.h
+++ b/src/backends/evolution/EvolutionMemoSource.h
diff --git a/src/e-cal-check-timezones.c b/src/backends/evolution/e-cal-check-timezones.c
index 02791aba..02791aba 100644
--- a/src/e-cal-check-timezones.c
+++ b/src/backends/evolution/e-cal-check-timezones.c
diff --git a/src/e-cal-check-timezones.h b/src/backends/evolution/e-cal-check-timezones.h
index a19f644b..a19f644b 100644
--- a/src/e-cal-check-timezones.h
+++ b/src/backends/evolution/e-cal-check-timezones.h
diff --git a/src/libical/icalstrdup.c b/src/backends/evolution/libical/icalstrdup.c
index 606aabba..606aabba 100644
--- a/src/libical/icalstrdup.c
+++ b/src/backends/evolution/libical/icalstrdup.c
diff --git a/src/libical/icalstrdup.h b/src/backends/evolution/libical/icalstrdup.h
index ed8ace81..ed8ace81 100644
--- a/src/libical/icalstrdup.h
+++ b/src/backends/evolution/libical/icalstrdup.h
diff --git a/src/SQLiteContactSource.cpp b/src/backends/sqlite/SQLiteContactSource.cpp
index c204639b..c204639b 100644
--- a/src/SQLiteContactSource.cpp
+++ b/src/backends/sqlite/SQLiteContactSource.cpp
diff --git a/src/SQLiteContactSource.h b/src/backends/sqlite/SQLiteContactSource.h
index 91d7f6ae..91d7f6ae 100644
--- a/src/SQLiteContactSource.h
+++ b/src/backends/sqlite/SQLiteContactSource.h
diff --git a/src/SQLiteContactSourceRegister.cpp b/src/backends/sqlite/SQLiteContactSourceRegister.cpp
index f439c9c4..f439c9c4 100644
--- a/src/SQLiteContactSourceRegister.cpp
+++ b/src/backends/sqlite/SQLiteContactSourceRegister.cpp
diff --git a/src/SQLiteUtil.cpp b/src/backends/sqlite/SQLiteUtil.cpp
index 5e754cb9..5e754cb9 100644
--- a/src/SQLiteUtil.cpp
+++ b/src/backends/sqlite/SQLiteUtil.cpp
diff --git a/src/SQLiteUtil.h b/src/backends/sqlite/SQLiteUtil.h
index 067d946b..067d946b 100644
--- a/src/SQLiteUtil.h
+++ b/src/backends/sqlite/SQLiteUtil.h
diff --git a/src/ConfigNode.h b/src/core/ConfigNode.h
index 53ec93fc..53ec93fc 100644
--- a/src/ConfigNode.h
+++ b/src/core/ConfigNode.h
diff --git a/src/ConfigTree.h b/src/core/ConfigTree.h
index 86b87bed..86b87bed 100644
--- a/src/ConfigTree.h
+++ b/src/core/ConfigTree.h
diff --git a/src/EvolutionSmartPtr.h b/src/core/EvolutionSmartPtr.h
index 33e0c1ee..33e0c1ee 100644
--- a/src/EvolutionSmartPtr.h
+++ b/src/core/EvolutionSmartPtr.h
diff --git a/src/EvolutionSyncClient.cpp b/src/core/EvolutionSyncClient.cpp
index f6201485..f6201485 100644
--- a/src/EvolutionSyncClient.cpp
+++ b/src/core/EvolutionSyncClient.cpp
diff --git a/src/EvolutionSyncClient.h b/src/core/EvolutionSyncClient.h
index 1de8551b..1de8551b 100644
--- a/src/EvolutionSyncClient.h
+++ b/src/core/EvolutionSyncClient.h
diff --git a/src/EvolutionSyncSource.cpp b/src/core/EvolutionSyncSource.cpp
index 16123be3..16123be3 100644
--- a/src/EvolutionSyncSource.cpp
+++ b/src/core/EvolutionSyncSource.cpp
diff --git a/src/EvolutionSyncSource.h b/src/core/EvolutionSyncSource.h
index 3c90ead5..3c90ead5 100644
--- a/src/EvolutionSyncSource.h
+++ b/src/core/EvolutionSyncSource.h
diff --git a/src/FileConfigNode.cpp b/src/core/FileConfigNode.cpp
index 3a6c278d..3a6c278d 100644
--- a/src/FileConfigNode.cpp
+++ b/src/core/FileConfigNode.cpp
diff --git a/src/FileConfigNode.h b/src/core/FileConfigNode.h
index 424ff852..424ff852 100644
--- a/src/FileConfigNode.h
+++ b/src/core/FileConfigNode.h
diff --git a/src/FileConfigTree.cpp b/src/core/FileConfigTree.cpp
index bad24ba7..bad24ba7 100644
--- a/src/FileConfigTree.cpp
+++ b/src/core/FileConfigTree.cpp
diff --git a/src/FileConfigTree.h b/src/core/FileConfigTree.h
index e455a3ed..e455a3ed 100644
--- a/src/FileConfigTree.h
+++ b/src/core/FileConfigTree.h
diff --git a/src/FilterConfigNode.cpp b/src/core/FilterConfigNode.cpp
index 0425bc09..0425bc09 100644
--- a/src/FilterConfigNode.cpp
+++ b/src/core/FilterConfigNode.cpp
diff --git a/src/FilterConfigNode.h b/src/core/FilterConfigNode.h
index 34befda1..34befda1 100644
--- a/src/FilterConfigNode.h
+++ b/src/core/FilterConfigNode.h
diff --git a/src/PrefixConfigNode.cpp b/src/core/PrefixConfigNode.cpp
index 389bd566..389bd566 100644
--- a/src/PrefixConfigNode.cpp
+++ b/src/core/PrefixConfigNode.cpp
diff --git a/src/PrefixConfigNode.h b/src/core/PrefixConfigNode.h
index 1ed66551..1ed66551 100644
--- a/src/PrefixConfigNode.h
+++ b/src/core/PrefixConfigNode.h
diff --git a/src/SafeConfigNode.cpp b/src/core/SafeConfigNode.cpp
index 5fa641e4..5fa641e4 100644
--- a/src/SafeConfigNode.cpp
+++ b/src/core/SafeConfigNode.cpp
diff --git a/src/SafeConfigNode.h b/src/core/SafeConfigNode.h
index b2d1ee6b..b2d1ee6b 100644
--- a/src/SafeConfigNode.h
+++ b/src/core/SafeConfigNode.h
diff --git a/src/SyncEvolutionCmdline.cpp b/src/core/SyncEvolutionCmdline.cpp
index beaae6cf..beaae6cf 100644
--- a/src/SyncEvolutionCmdline.cpp
+++ b/src/core/SyncEvolutionCmdline.cpp
diff --git a/src/SyncEvolutionCmdline.h b/src/core/SyncEvolutionCmdline.h
index 21001802..21001802 100644
--- a/src/SyncEvolutionCmdline.h
+++ b/src/core/SyncEvolutionCmdline.h
diff --git a/src/SyncEvolutionConfig.cpp b/src/core/SyncEvolutionConfig.cpp
index 05774fc5..05774fc5 100644
--- a/src/SyncEvolutionConfig.cpp
+++ b/src/core/SyncEvolutionConfig.cpp
diff --git a/src/SyncEvolutionConfig.h b/src/core/SyncEvolutionConfig.h
index eb6ecd29..eb6ecd29 100644
--- a/src/SyncEvolutionConfig.h
+++ b/src/core/SyncEvolutionConfig.h
diff --git a/src/SyncEvolutionUtil.cpp b/src/core/SyncEvolutionUtil.cpp
index e65b6739..e65b6739 100644
--- a/src/SyncEvolutionUtil.cpp
+++ b/src/core/SyncEvolutionUtil.cpp
diff --git a/src/SyncEvolutionUtil.h b/src/core/SyncEvolutionUtil.h
index 790f7d23..790f7d23 100644
--- a/src/SyncEvolutionUtil.h
+++ b/src/core/SyncEvolutionUtil.h
diff --git a/src/TrackingSyncSource.cpp b/src/core/TrackingSyncSource.cpp
index 55fe98d5..55fe98d5 100644
--- a/src/TrackingSyncSource.cpp
+++ b/src/core/TrackingSyncSource.cpp
diff --git a/src/TrackingSyncSource.h b/src/core/TrackingSyncSource.h
index bde38ec4..bde38ec4 100644
--- a/src/TrackingSyncSource.h
+++ b/src/core/TrackingSyncSource.h
diff --git a/src/VolatileConfigNode.h b/src/core/VolatileConfigNode.h
index 2cb06106..2cb06106 100644
--- a/src/VolatileConfigNode.h
+++ b/src/core/VolatileConfigNode.h
diff --git a/src/VolatileConfigTree.h b/src/core/VolatileConfigTree.h
index 72d46aa8..72d46aa8 100644
--- a/src/VolatileConfigTree.h
+++ b/src/core/VolatileConfigTree.h
diff --git a/src/vocl/README b/src/core/vocl/README
index c3f7af7a..c3f7af7a 100644
--- a/src/vocl/README
+++ b/src/core/vocl/README
diff --git a/src/vocl/VConverter.cpp b/src/core/vocl/VConverter.cpp
index 393bee36..393bee36 100644
--- a/src/vocl/VConverter.cpp
+++ b/src/core/vocl/VConverter.cpp
diff --git a/src/vocl/VConverter.h b/src/core/vocl/VConverter.h
index 5d0357e0..5d0357e0 100644
--- a/src/vocl/VConverter.h
+++ b/src/core/vocl/VConverter.h
diff --git a/src/vocl/VObject.cpp b/src/core/vocl/VObject.cpp
index cb509765..cb509765 100644
--- a/src/vocl/VObject.cpp
+++ b/src/core/vocl/VObject.cpp
diff --git a/src/vocl/VObject.h b/src/core/vocl/VObject.h
index 4fd3659b..4fd3659b 100644
--- a/src/vocl/VObject.h
+++ b/src/core/vocl/VObject.h
diff --git a/src/vocl/VProperty.cpp b/src/core/vocl/VProperty.cpp
index 191ad2af..191ad2af 100644
--- a/src/vocl/VProperty.cpp
+++ b/src/core/vocl/VProperty.cpp
diff --git a/src/vocl/VProperty.h b/src/core/vocl/VProperty.h
index d43c4c7c..d43c4c7c 100644
--- a/src/vocl/VProperty.h
+++ b/src/core/vocl/VProperty.h
diff --git a/src/vocl/posixadapter.h b/src/core/vocl/posixadapter.h
index 4e0f684c..4e0f684c 100644
--- a/src/vocl/posixadapter.h
+++ b/src/core/vocl/posixadapter.h
diff --git a/src/vocl/vcardconverter.cpp b/src/core/vocl/vcardconverter.cpp
index 608ab077..608ab077 100644
--- a/src/vocl/vcardconverter.cpp
+++ b/src/core/vocl/vcardconverter.cpp