f5bd6a8a0a2f6124fbf93ec8848a2527aaabb0cf
[platform/upstream/syncevolution.git] / src / syncevo / syncevo.am
1 include $(top_srcdir)/src/syncevo/configs/configs.am
2
3 # applies to sources in SyncEvolution repository, but not
4 # the Funambol C++ client library
5 src_syncevo_cxxflags = @SYNCEVOLUTION_CXXFLAGS@
6 src_syncevo_cppflags = @BACKEND_CPPFLAGS@ @GLIB_CFLAGS@ -I$(top_srcdir)/test -I$(gdbus_dir) $(DBUS_CFLAGS) -I$(top_builddir)/src/syncevo -I$(top_srcdir)/src -DSYNCEVO_LIBEXEC=\"$(libexecdir)\" -DSYNCEVO_BACKEND=\"$(BACKENDS_SEARCH_DIRECTORY)\"
7 src_syncevo_ldadd = @SYNCEVOLUTION_LDADD@ 
8
9 # needed in all cases
10 src_syncevo_ldadd += $(gdbus_build_dir)/libgdbussyncevo.la
11
12 if ENABLE_UNIT_TESTS
13 src_syncevo_cxxflags += $(CPPUNIT_CXXFLAGS)
14 src_syncevo_ldadd += $(CPPUNIT_LDFLAGS)
15 endif
16
17 lib_LTLIBRARIES += src/syncevo/libsyncevolution.la
18
19 src_syncevo_sources = \
20   src/syncevo/GeeSupport.h \
21   src/syncevo/GValueSupport.h \
22   src/syncevo/EDSClient.h \
23   src/syncevo/EDSClient.cpp \
24   \
25   src/syncevo/IdentityProvider.h \
26   src/syncevo/IdentityProvider.cpp \
27   \
28   src/syncevo/ConfigTree.h \
29   src/syncevo/ConfigFilter.h \
30   src/syncevo/ConfigFilter.cpp \
31   src/syncevo/ConfigNode.h \
32   src/syncevo/ConfigNode.cpp \
33   src/syncevo/DBusTraits.h \
34   src/syncevo/HashConfigNode.h \
35   src/syncevo/VolatileConfigNode.h \
36   src/syncevo/VolatileConfigTree.h \
37   src/syncevo/SmartPtr.h \
38   src/syncevo/eds_abi_wrapper.h \
39   src/syncevo/eds_abi_wrapper.cpp \
40   src/syncevo/GLibSupport.h \
41   src/syncevo/GLibSupport.cpp \
42   src/syncevo/ThreadSupport.h \
43   \
44   src/syncevo/SyncML.h \
45   src/syncevo/SyncML.cpp \
46   \
47   src/syncevo/SynthesisEngine.h \
48   src/syncevo/SynthesisEngine.cpp \
49   \
50   src/syncevo/Logging.h \
51   src/syncevo/Logging.cpp \
52   src/syncevo/LogStdout.h \
53   src/syncevo/LogStdout.cpp \
54   src/syncevo/LogRedirect.h \
55   src/syncevo/LogRedirect.cpp \
56   src/syncevo/LogSyslog.h \
57   src/syncevo/LogSyslog.cpp \
58   \
59   src/syncevo/TransportAgent.h \
60   src/syncevo/TransportAgent.cpp \
61   src/syncevo/CurlTransportAgent.h \
62   src/syncevo/CurlTransportAgent.cpp \
63   \
64   src/syncevo/SoupTransportAgent.h \
65   src/syncevo/SoupTransportAgent.cpp \
66   \
67   src/syncevo/LocalTransportAgent.h \
68   src/syncevo/LocalTransportAgent.cpp \
69   \
70   src/syncevo/util.cpp \
71   src/syncevo/util.h \
72   src/syncevo/BoostHelper.h \
73   \
74   src/syncevo/TmpFile.cpp \
75   src/syncevo/TmpFile.h \
76   \
77   src/syncevo/Timespec.h \
78   \
79   src/syncevo/lcs.h \
80   src/syncevo/lcs.cpp \
81   \
82   src/syncevo/ForkExec.cpp \
83   src/syncevo/ForkExec.h \
84   \
85   src/syncevo/Cmdline.cpp \
86   src/syncevo/Cmdline.h \
87   src/syncevo/CmdlineSyncClient.h \
88   src/syncevo/CmdlineSyncClient.cpp \
89   \
90   src/syncevo/SyncSource.h \
91   src/syncevo/SyncSource.cpp \
92   \
93   src/syncevo/SynthesisDBPlugin.cpp \
94   \
95   src/syncevo/SuspendFlags.h \
96   src/syncevo/SuspendFlags.cpp \
97   \
98   src/syncevo/SyncContext.h \
99   src/syncevo/SyncContext.cpp \
100   \
101   src/syncevo/UserInterface.h \
102   src/syncevo/UserInterface.cpp \
103   \
104   src/syncevo/SyncConfig.h \
105   src/syncevo/SyncConfig.cpp \
106   \
107   src/syncevo/DevNullConfigNode.h \
108   src/syncevo/MultiplexConfigNode.h \
109   src/syncevo/MultiplexConfigNode.cpp \
110   \
111   src/syncevo/FilterConfigNode.h \
112   src/syncevo/FilterConfigNode.cpp \
113   \
114   src/syncevo/SafeConfigNode.h \
115   src/syncevo/SafeConfigNode.cpp \
116   \
117   src/syncevo/PrefixConfigNode.h \
118   src/syncevo/PrefixConfigNode.cpp \
119   \
120   src/syncevo/IniConfigNode.h \
121   src/syncevo/IniConfigNode.cpp \
122   src/syncevo/SingleFileConfigTree.h \
123   src/syncevo/SingleFileConfigTree.cpp \
124   \
125   src/syncevo/DataBlob.h \
126   src/syncevo/FileDataBlob.h \
127   src/syncevo/FileDataBlob.cpp \
128   src/syncevo/StringDataBlob.h \
129   src/syncevo/StringDataBlob.cpp \
130   \
131   src/syncevo/SafeOstream.h \
132   src/syncevo/SafeOstream.cpp \
133   \
134   src/syncevo/FileConfigTree.h \
135   src/syncevo/FileConfigTree.cpp \
136   \
137   src/syncevo/MapSyncSource.h \
138   src/syncevo/MapSyncSource.cpp \
139   \
140   src/syncevo/TrackingSyncSource.h \
141   src/syncevo/TrackingSyncSource.cpp
142
143 if ENABLE_ICAL
144 src_syncevo_sources += \
145   src/syncevo/icalstrdup.c \
146   src/syncevo/icalstrdup.h
147 endif
148
149
150 src_syncevo_libsyncevolution_includedir= $(includedir)/syncevo
151 src_syncevo_libsyncevolution_include_HEADERS = \
152   src/syncevo/declarations.h \
153   src/syncevo/Cmdline.h \
154   src/syncevo/ConfigFilter.h \
155   src/syncevo/GLibSupport.h \
156   src/syncevo/ThreadSupport.h \
157   src/syncevo/TrackingSyncSource.h  \
158   src/syncevo/MapSyncSource.h \
159   src/syncevo/LogRedirect.h \
160   src/syncevo/LogStdout.h \
161   src/syncevo/LogSyslog.h \
162   \
163   src/syncevo/FilterConfigNode.h \
164   src/syncevo/PrefixConfigNode.h \
165   src/syncevo/SafeConfigNode.h \
166   src/syncevo/SyncConfig.h \
167   src/syncevo/SyncSource.h \
168   src/syncevo/IdentityProvider.h \
169   src/syncevo/util.h \
170   src/syncevo/BoostHelper.h \
171   src/syncevo/SuspendFlags.h \
172   src/syncevo/SyncContext.h \
173   src/syncevo/Timespec.h \
174   src/syncevo/UserInterface.h \
175   src/syncevo/SynthesisEngine.h \
176   src/syncevo/Logging.h \
177   src/syncevo/SyncML.h \
178   src/syncevo/eds_abi_wrapper.h \
179   src/syncevo/icalstrdup.h \
180   src/syncevo/SmartPtr.h \
181   src/syncevo/ConfigNode.h
182
183
184 if ENABLE_OBEX
185 src_syncevo_sources += \
186   src/syncevo/ObexTransportAgent.h \
187   src/syncevo/ObexTransportAgent.cpp
188
189 src_syncevo_ldadd += $(LIBOPENOBEX_LIBS)
190 src_syncevo_cxxflags += $(LIBOPENOBEX_CFLAGS)
191 if ENABLE_BLUETOOTH
192 src_syncevo_ldadd += $(BLUEZ_LIBS)
193 src_syncevo_cxxflags += $(BLUEZ_CFLAGS)
194 endif
195 endif
196
197 #pkgconfigdir is defined in $(top_srcdir)/setup-variables.am
198 pkgconfig_DATA += src/syncevo/syncevolution.pc
199 DISTCLEANFILES += src/syncevo/syncevolution.pc
200 dist_noinst_DATA += src/syncevo/syncevolution.pc.in
201
202 src_syncevo_libsyncevolution_la_SOURCES = $(src_syncevo_sources)
203 nodist_src_syncevo_libsyncevolution_la_SOURCES = src/syncevo/SyncEvolutionXML.c
204 CLEANFILES += src/syncevo/SyncEvolutionXML.c
205 src_syncevo_libsyncevolution_la_LIBADD = \
206   @EPACKAGE_LIBS@ \
207   @GIO_LIBS@ \
208   @GTHREAD_LIBS@ \
209   @GLIB_LIBS@ \
210   $(SYNTHESIS_LIBS) \
211   $(PCRECPP_LIBS) \
212   $(TRANSPORT_LIBS) \
213   @LIBS@ \
214   $(src_syncevo_ldadd) \
215   $(DBUS_LIBS) \
216   $(NSS_LIBS)
217 if ENABLE_MODULES
218 src_syncevo_libsyncevolution_la_LIBADD += -ldl
219 endif
220 src_syncevo_libsyncevolution_la_CXXFLAGS = \
221   $(PCRECPP_CFLAGS) \
222   $(TRANSPORT_CFLAGS) \
223   $(src_syncevo_cxxflags) \
224   $(SYNTHESIS_CFLAGS) \
225   $(NSS_CFLAGS) \
226   $(SYNCEVO_WFLAGS)
227 src_syncevo_libsyncevolution_la_CFLAGS = \
228   $(SYNCEVO_WFLAGS)
229 src_syncevo_libsyncevolution_la_CPPFLAGS = \
230   $(src_syncevo_cppflags) \
231   $(DBUS_CFLAGS) \
232   -DDATA_DIR=\""$(pkgdatadir)"\" \
233   -DXML_CONFIG_DIR=\""$(datadir)/syncevolution/xml"\" \
234   -DTEMPLATE_DIR=\""$(datadir)/syncevolution/templates"\" \
235   -DLIBDIR=\""$(libdir)"\"
236 src_syncevo_libsyncevolution_la_DEPENDENCIES = $(SYNTHESIS_DEP) $(src_syncevo_ldadd)
237
238 # rule which is only relevant when compiling Synthesis in subdirectory
239 src/build-synthesis/libsynthesissdk.la: $(SYNTHESIS_SUBDIR)/all
240 $(SYNTHESIS_SUBDIR)/% :
241         [ ! "$(SYNTHESIS_SUBDIR)" ] || ( cd ${dir $@} && $(MAKE) ${notdir $@} )
242
243 if ENABLE_MODULES
244 src_syncevo_libsyncevolution_la_LDFLAGS =
245 else
246 src_syncevo_libsyncevolution_la_LDFLAGS = -static
247 endif
248
249 # command which embeds its input lines into a C-style string that runs across multiple lines
250 TO_C_STRING = sed -e 's/\\/\\\\/g' -e 's/"/\\"/g' -e 's/\(.*\)/"\1\\n"/'
251
252 # Don't depend on specific XML files. Instead recreate
253 # SyncEvolutionXML.c each time make is invoked (allows including new
254 # fragments in the binary without rerunning configure).
255 src/syncevo/SyncEvolutionXML.c: src/syncevo/GenSyncEvolutionXML
256         $(AM_V_GEN)
257         @true
258 all_phonies += src/syncevo/GenSyncEvolutionXML
259 src/syncevo/GenSyncEvolutionXML:
260         $(AM_V_at)echo "const char *SyncEvolutionXMLClient =" >src/syncevo/SyncEvolutionXML.c.new \
261         && (cd $(top_srcdir)/src/syncevo/configs && perl update-samples.pl syncevolution.xml client ) | \
262           perl -p -e 's;</datatypes>;  <fieldlists/>\n    <profiles/>\n    <datatypedefs/>\n  </datatypes>;' | \
263           $(TO_C_STRING) >>src/syncevo/SyncEvolutionXML.c.new \
264         && echo ";" >>src/syncevo/SyncEvolutionXML.c.new \
265         && echo "const char *SyncEvolutionXMLClientRules =" >>src/syncevo/SyncEvolutionXML.c.new \
266         && (cd $(top_srcdir)/src/syncevo/configs && cat remoterules/*.xml remoterules/client/*.xml) | $(TO_C_STRING) >>src/syncevo/SyncEvolutionXML.c.new \
267         && echo ";" >>src/syncevo/SyncEvolutionXML.c.new \
268         && if cmp -s src/syncevo/SyncEvolutionXML.c src/syncevo/SyncEvolutionXML.c.new; \
269         then \
270           rm src/syncevo/SyncEvolutionXML.c.new; \
271         else \
272           mv src/syncevo/SyncEvolutionXML.c.new src/syncevo/SyncEvolutionXML.c; \
273         fi;
274
275 # turn README.rst into a file with plain text strings for
276 # "Synopsis" and "Usage"
277 CLEANFILES += src/syncevo/CmdlineHelp.c
278 BUILT_SOURCES += src/syncevo/CmdlineHelp.c
279 dist_noinst_SCRIPTS += src/syncevo/readme2c.pl
280 src/syncevo/CmdlineHelp.c: src/syncevo/readme2c.pl $(top_srcdir)/README.rst
281         $(AM_V_GEN)perl $+ >$@
282
283 # include boost in distribution
284 #dist-hook:
285 #       cp -r $(srcdir)/boost $(distdir)
286 #       find $(distdir) -name .libs -o -name "*~" -o -name ".*" -o -name "*.o" -o -name "*.lo" -o -name CVS -o -name autom4te.cache | xargs rm -rf
287
288 # make sure that the installed development files are usable
289 src_syncevo_install_check_local: $(top_srcdir)/src/syncevo/installcheck-local.sh
290         env PKG_CONFIG_PATH=$(DESTDIR)/$(pkgconfigdir):$$PKG_CONFIG_PATH $< "$(DESTDIR)/$(src_syncevo_libsyncevolution_includedir)" "$(DESTDIR)/$(includedir)" "$(DESTDIR)/$(libdir)"
291
292 all_local_installchecks += src_syncevo_install_check_local
293 dist_noinst_SCRIPTS += src/syncevo/installcheck-local.sh