INCLUDES = @EPACKAGE_CFLAGS@ @EBOOK_CFLAGS@ @ECAL_CFLAGS@ @GLIB_CFLAGS@ @SYNC4J_CFLAGS@ @SQLITE_CFLAGS@ @ADDRESSBOOK_CFLAGS@
-# Please remove '-Wno-return-type' when Evo fixes the warning in their headers.
-AM_CFLAGS = -Wall -Werror -Wno-return-type
+# applies to sources in SyncEvolution repository, but not
+# the Funambol C++ client library
+SYNCEVOLUTION_CXXFLAGS = @SYNCEVOLUTION_CXXFLAGS@
bin_PROGRAMS = syncevolution
bin_SCRIPTS = synccompare
-EXTRA_LTLIBRARIES = syncecal.la syncebook.la syncsqlite.la syncaddressbook.la
-MOSTLYCLEANFILES = syncecal.la syncebook.la syncsqlite.la syncaddressbook.la
-pkglib_LTLIBRARIES = @SYNCEVOLUTION_LTLIBRARIES@
+SYNCSOURCES = syncecal.la syncebook.la syncsqlite.la syncaddressbook.la
+MOSTLYCLEANFILES = $(SYNCSOURCES)
+if ENABLE_MODULES
+pkglib_LTLIBRARIES = $(SYNCSOURCES)
+else
+EXTRA_LTLIBRARIES = $(SYNCSOURCES)
+endif
+SYNCEVOLUTION_LDADD = @SYNCEVOLUTION_LDADD@
EXTRA_PROGRAMS = client-test
check_PROGRAMS = @CPPUNIT_TESTS@
TESTS = @CPPUNIT_TESTS@
vocl/VConverter.cpp
CORE_SOURCES = \
+ ConfigTree.h \
+ ConfigNode.h \
+ VolatileConfigNode.h \
+ VolatileConfigTree.h \
EvolutionSmartPtr.h \
- EvolutionSyncClient.h \
- EvolutionSyncSource.h \
- EvolutionClientConfig.h \
+ \
+ SyncEvolutionUtil.cpp \
+ SyncEvolutionUtil.h \
\
+ SyncEvolutionCmdline.cpp \
+ SyncEvolutionCmdline.h \
+ \
+ EvolutionSyncSource.h \
EvolutionSyncSource.cpp \
+ \
+ EvolutionSyncClient.h \
EvolutionSyncClient.cpp \
\
- DeviceManagementNode.h \
- DeviceManagementNode.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 \
\
$(VOCL_SOURCES)
EvolutionMemoSource.h \
EvolutionCalendarSource.cpp \
EvolutionMemoSource.cpp
+if ENABLE_MODULES
+else
+CORE_SOURCES += EvolutionCalendarSourceRegister.cpp
+endif
+
+if ENABLE_ECAL
+SYNCECAL_SOURCES += \
+ 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 = \
- SQLiteSyncSource.h \
- SQLiteSyncSource.cpp \
+ TrackingSyncSource.h \
+ TrackingSyncSource.cpp \
+ 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@ @SYNC4J_LIBS@ @ADDRESSBOOK_LIBS@ @LIBS@
+CORE_DEP = @SYNC4J_DEP@
# put link to static c++ library into current directory, needed if compiling with --enable-static-c++
libstdc++.a :
syncevolution.cpp \
$(CORE_SOURCES)
-# SYNCEVOLUTION_LDADD@ will be replaced with libsyncebook.la/libsyncecal.la/libsyncsqlite.la
+# 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_DEPENDENCIES = @SYNCEVOLUTION_MODULES@
+syncevolution_LDADD = $(SYNCEVOLUTION_LDADD) @LIBDBUS@ $(CORE_LDADD)
+syncevolution_CXXFLAGS = $(SYNCEVOLUTION_CXXFLAGS)
+syncevolution_DEPENDENCIES = $(EXTRA_LTLIBRARIES) $(CORE_DEP)
syncecal_la_SOURCES = $(SYNCECAL_SOURCES)
syncecal_la_LIBADD = @ECAL_LIBS@
syncecal_la_LDFLAGS = -module -rpath '$(pkglibdir)'
+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)'
-
-# test suite - *not* declared as an obligatory check,
-# because some of them are known to fail and thus
-# prevent a successful "distcheck"
-# TESTS = test
-# check_PROGRAMS = test
-#EXTRA_PROGRAMS += TestEvolution
-#TestEvolution_SOURCES = \
-# Test.h \
-# TestMain.cpp \
-# TestEvolution.cpp \
-# $(CORE_SOURCES)
-
-#TestEvolution_CXXFLAGS = `cppunit-config --cflags`
-#TestEvolution_LDFLAGS = `cppunit-config --libs`
-#TestEvolution_LDADD = @SYNCEVOLUTION_MODULES@ @LIBDBUS@ $(CORE_LDADD)
-#TestEvolution_DEPENDENCIES = @SYNCEVOLUTION_MODULES@
+syncaddressbook_la_CXXFLAGS = $(SYNCEVOLUTION_CXXFLAGS)
EXTRA_PROGRAMS += vcardconverter
vcardconverter_SOURCES = \
SYNC4J_SUBDIR = @SYNC4J_SUBDIR@
BUILT_SOURCES = $(SYNC4J_SUBDIR)/all
-clean distclean mostlyclean maintainer-clean distdir : % : $(SYNC4J_SUBDIR)/%
-clean distclean mostlyclean maintainer-clean : % : %-am
-clean : testclean
+@SYNC4J_LIB@ : $(SYNC4J_SUBDIR)/all
+
+# include client library and boost in distribution
+dist-hook:
+ cp -r $(srcdir)/boost $(distdir)
+ [ ! "$(SYNC4J_SUBDIR)" ] || cp -r client-api $(distdir)
+ find $(distdir) -name .libs -o -name "*~" -o -name ".*" -o -name "*.o" -o -name "*.lo" -o -name CVS -o -name autom4te.cache | xargs rm -rf
+
+clean-local: testclean
+ [ ! -d "$(SYNC4J_SUBDIR)" ] || (cd $(SYNC4J_SUBDIR) && $(MAKE) clean)
+
+# files created during testing
+testclean:
+ rm -f *.test.vcf *.log *.tests *.diff *.dat
+
+distclean-local:
+ rm -rf $(SYNC4J_SUBDIR)
+ rm -rf @CLEAN_CLIENT_SRC@ # "client-api", only set when it was created by configure
# With --disable-shared autotools links against libsync4j.a which does not
# pull any of the test suites into the test binary, so they would not be
# executed. The workaround is to explicitly set them as undefined on the
# link line.
client_test_SOURCES = client-test-app.cpp $(CORE_SOURCES)
-nodist_client_test_SOURCES = ClientTest.cpp client-test-main.cpp ClientTest.h
+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_CXXFLAGS = `cppunit-config --cflags`
+client_test_CXXFLAGS = `cppunit-config --cflags` $(SYNCEVOLUTION_CXXFLAGS)
client_test_LDFLAGS = `cppunit-config --libs` `nm $(SYNC4J_SUBDIR)/src/.libs/libsync4j.a | grep funambolAutoRegisterRegistry | sed -e 's/.* /-u /'`
-client_test_LDADD = @SYNCEVOLUTION_MODULES@ @LIBDBUS@ $(SYNC4J_SUBDIR)/src/libsync4j.la $(CORE_LDADD)
-client_test_DEPENDENCIES = @SYNCEVOLUTION_MODULES@
+client_test_LDADD = $(SYNCEVOLUTION_LDADD) @LIBDBUS@ $(SYNC4J_SUBDIR)/src/libsync4j.la $(CORE_LDADD)
+client_test_DEPENDENCIES = $(EXTRA_LTLIBRARIES) $(CORE_DEP)
# copy test files for several reasons:
# - automake expects them here
LOCAL_TEST_FILES=$(notdir $(wildcard $(srcdir)/../test/*))
# sources from SyncEvolution
-$(filter $(LOCAL_TEST_FILES), ClientTest.h ClientTest.cpp client-test-main.cpp) : % : $(srcdir)/../test/%
+$(filter $(LOCAL_TEST_FILES), $(CLIENT_LIB_TEST_FILES)) : % : $(srcdir)/../test/%
sed -e 's/WCHAR_T/char/g' -e 's/TEXT(/(/g' -e 's/wcslen/strlen/g' -e 's/wcscmp/strcmp/g' $< >$@
# sources from compiled client library
-$(filter-out $(LOCAL_TEST_FILES), ClientTest.h ClientTest.cpp client-test-main.cpp) : % : $(SYNC4J_SUBDIR)/test/test/%
+$(filter-out $(LOCAL_TEST_FILES), $(CLIENT_LIB_TEST_FILES)) : % : $(SYNC4J_SUBDIR)/test/test/%
sed -e 's/WCHAR_T/char/g' -e 's/TEXT(/(/g' -e 's/wcslen/strlen/g' -e 's/wcscmp/strcmp/g' $< >$@
+$(CLIENT_LIB_TEST_FILES:%=$(SYNC4J_SUBDIR)/test/test/%): @SYNC4J_DEP@
+
# extra dependency - don't remember why
ClientTest.cpp : ClientTest.h
rm -rf $@
cp -r $< $@
-# verbatim files from client library
+# verbatim files from client library:
+# - SQLiteContactSource does not support all fields: filter those out
$(filter-out $(LOCAL_TEST_FILES), testcases) : % : $(SYNC4J_SUBDIR)/test/test/%
rm -rf $@
cp -r $< $@
+ perl -e '$$_ = join("", <>); s/^(ADR|TEL|EMAIL|PHOTO).*?(?=^\S)//msg; print;' testcases/vcard21.vcf >testcases/vcard21_sqlite.vcf
test : client-test testcases synccompare
-
-
-# TestEvolution syncevolution vcardconverter : \
-# @CORE_LDADD_DEP@ \
-# $(SYNC4J_SUBDIR)/src/libsync4j.la
-#test : TestEvolution addressbook.tests calendar.tests todo.tests memo.tests synccompare vcardconverter
-
-# test files are in CVS under a different name so that they
-# can be copied to the work directory under the name expected
-# by the "test" program
-#addressbook.tests : testVCard.vcf
-# cp $< $@
-#calendar.tests : testCalendar.ics
-# cp $< $@
-#todo.tests : testTask.ics
-# cp $< $@
-#memo.tests : testMemo.ics
-# cp $< $@
-
-testclean :
- rm -f *.test.vcf *.log *.tests *.diff
-
-$(SYNC4J_SUBDIR)/maintainer-clean $(SYNC4J_SUBDIR)/distclean :
- rm -rf $(SYNC4J_SUBDIR) @CLEAN_CLIENT_SRC@
-
-$(SYNC4J_SUBDIR)/distdir :
- [ ! "$(SYNC4J_SUBDIR)" ] || ( cp -r client-api $(distdir) && ( find $(distdir)/client-api -name .libs -o -name "*.o" -o -name "*.lo" -o -name CVS -name autom4te.cache | xargs rm -rf ) )
+.PHONY : test
# rule to satisfy automatic dependencies on header files
$(SYNC4J_SUBDIR)/%.h :