Imported Upstream version 0.8~alpha1
[platform/upstream/syncevolution.git] / src / Makefile.am
index bf1c700..8fb3951 100644 (file)
@@ -1,13 +1,19 @@
 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@
@@ -38,16 +44,41 @@ VOCL_SOURCES = \
        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)
 
@@ -56,23 +87,48 @@ SYNCECAL_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 :
@@ -82,47 +138,35 @@ syncevolution_SOURCES = \
        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 = \
@@ -140,21 +184,37 @@ SYNC4JSRC = @SYNC4JSRC@
 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
@@ -165,13 +225,15 @@ client_test_DEPENDENCIES = @SYNCEVOLUTION_MODULES@
 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
 
@@ -180,39 +242,15 @@ $(filter $(LOCAL_TEST_FILES), testcases) : % : $(srcdir)/../test/%
        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 :