diff options
-rw-r--r-- | Makefile.am | 17 | ||||
-rwxr-xr-x | autogen.sh | 21 | ||||
-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 >>$@ @@ -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 |