RIC:1060: Change in PTL
[ric-plt/sdl.git] / Makefile.am
1 ACLOCAL_AMFLAGS = -I m4
2
3 BASE_CPPFLAGS = \
4     -Wall \
5     -Werror \
6     -Wextra \
7     -Wno-missing-field-initializers \
8     -Wno-error=deprecated-declarations \
9     -I$(top_srcdir)/include \
10     -I$(builddir)/include \
11     -DSDL_CONF_DIR='"@SDL_CONF_DIR@"' \
12     $(BOOST_CPPFLAGS)
13
14 lib_LTLIBRARIES = \
15     libsdl.la \
16     libshareddatalayercli.la
17
18 libsdl_la_SOURCES = \
19     include/private/abort.hpp \
20     include/private/asyncconnection.hpp \
21     include/private/asyncdummystorage.hpp \
22     include/private/asyncstorageimpl.hpp \
23     include/private/createlogger.hpp \
24     include/private/configurationpaths.hpp \
25     include/private/configurationreader.hpp \
26     include/private/databaseconfiguration.hpp \
27     include/private/databaseconfigurationimpl.hpp \
28     include/private/engine.hpp \
29     include/private/engineimpl.hpp \
30     include/private/error.hpp \
31     include/private/eventfd.hpp \
32     include/private/filedescriptor.hpp \
33     include/private/hostandport.hpp \
34     include/private/logger.hpp \
35     include/private/namespaceconfiguration.hpp \
36     include/private/namespaceconfigurations.hpp \
37     include/private/namespaceconfigurationsimpl.hpp \
38     include/private/namespacevalidator.hpp \
39     include/private/stdstreamlogger.hpp \
40     include/private/syncstorageimpl.hpp \
41     include/private/system.hpp \
42     include/private/timer.hpp \
43     include/private/timerfd.hpp \
44     src/abort.cpp \
45     src/asyncconnection.cpp \
46     src/asyncdummystorage.cpp \
47     src/asyncstorage.cpp \
48     src/asyncstorageimpl.cpp \
49     src/backenderror.cpp \
50     src/configurationpaths.cpp \
51     src/configurationreader.cpp \
52     src/createlogger.cpp \
53     src/databaseconfiguration.cpp \
54     src/databaseconfigurationimpl.cpp \
55     src/emptynamespace.cpp \
56     src/engine.cpp \
57     src/engineimpl.cpp \
58     src/error.cpp \
59     src/errorqueries.cpp \
60     src/exception.cpp \
61     src/eventfd.cpp \
62     src/filedescriptor.cpp \
63     src/hostandport.cpp \
64     src/invalidnamespace.cpp \
65     src/namespacevalidator.cpp \
66     src/namespaceconfigurationsimpl.cpp \
67     src/notconnected.cpp \
68     src/operationinterrupted.cpp \
69     src/publisherid.cpp \
70     src/rejectedbybackend.cpp \
71     src/rejectedbysdl.cpp \
72     src/stdstreamlogger.cpp \
73     src/syncstorage.cpp \
74     src/syncstorageimpl.cpp \
75     src/system.cpp \
76     src/timer.cpp \
77     src/timerfd.cpp
78
79 if SYSTEMLOGGER
80 libsdl_la_SOURCES += \
81     include/private/systemlogger.hpp \
82     src/systemlogger.cpp
83 endif
84
85 if REDIS
86 libsdl_la_SOURCES += \
87     include/private/redis/asynccommanddispatcher.hpp \
88     include/private/redis/asyncdatabasediscovery.hpp \
89     include/private/redis/asyncredisreply.hpp \
90     include/private/redis/asyncredisstorage.hpp \
91     include/private/redis/asyncsentineldatabasediscovery.hpp \
92     include/private/redis/contents.hpp \
93     include/private/redis/contentsbuilder.hpp \
94     include/private/redis/databaseinfo.hpp \
95     include/private/redis/reply.hpp \
96     src/redis/asynccommanddispatcher.cpp \
97     src/redis/asyncdatabasediscovery.cpp \
98     src/redis/asyncredisreply.cpp \
99     src/redis/asyncredisstorage.cpp \
100     src/redis/asyncsentineldatabasediscovery.cpp \
101     src/redis/contentsbuilder.cpp
102 endif
103 if HIREDIS
104 libsdl_la_SOURCES += \
105     include/private/redis/asynchirediscommanddispatcher.hpp \
106     include/private/redis/asynchiredisdatabasediscovery.hpp \
107     include/private/redis/hiredisepolladapter.hpp \
108     include/private/redis/hiredissystem.hpp \
109     include/private/redis/redisgeneral.hpp \
110     src/redis/asynchirediscommanddispatcher.cpp \
111     src/redis/asynchiredisdatabasediscovery.cpp \
112     src/redis/hiredisepolladapter.cpp \
113     src/redis/hiredissystem.cpp \
114     src/redis/redisgeneral.cpp
115 endif
116 if HIREDIS_VIP
117 libsdl_la_SOURCES += \
118     include/private/redis/asynchiredisclustercommanddispatcher.hpp \
119     include/private/redis/hiredisclusterepolladapter.hpp \
120     include/private/redis/hiredisclustersystem.hpp \
121     src/redis/asynchiredisclustercommanddispatcher.cpp \
122     src/redis/hiredisclusterepolladapter.cpp \
123     src/redis/hiredisclustersystem.cpp
124 endif
125 libsdl_la_CPPFLAGS = \
126     $(BASE_CPPFLAGS) \
127     $(HIREDIS_CFLAGS) \
128     $(HIREDIS_VIP_CFLAGS)
129 libsdl_la_LDFLAGS = \
130     $(BOOST_LDFLAGS) \
131     -version-info @SDL_LT_VERSION@
132 libsdl_la_LIBADD = \
133     $(BOOST_SYSTEM_LIB) \
134     $(BOOST_FILESYSTEM_LIB) \
135     $(HIREDIS_LIBS) \
136     $(HIREDIS_VIP_LIBS)
137
138 libshareddatalayercli_la_SOURCES = \
139     src/cli/commandmap.cpp \
140     src/cli/commandparserandexecutor.cpp \
141     src/cli/dumpconfigurationcommand.cpp \
142     src/cli/testgetsetcommand.cpp \
143     src/cli/testconnectivitycommand.cpp \
144     src/cli/listkeyscommand.cpp \
145     src/cli/setcommand.cpp \
146     src/cli/getcommand.cpp \
147     src/exception.cpp \
148     src/configurationpaths.cpp \
149     include/private/configurationpaths.hpp \
150     include/private/cli/commandmap.hpp \
151     include/private/cli/commandparserandexecutor.hpp
152
153 libshareddatalayercli_la_CPPFLAGS = \
154     $(BASE_CPPFLAGS) \
155     $(BOOST_CPPFLAGS)
156 libshareddatalayercli_la_LDFLAGS = \
157     $(BOOST_LDFLAGS) \
158     -release $(PACKAGE_VERSION)
159 libshareddatalayercli_la_LIBADD = \
160     $(BOOST_FILESYSTEM_LIB) \
161     $(BOOST_PROGRAM_OPTIONS_LIB) \
162     $(BOOST_SYSTEM_LIB) \
163     -lboost_system \
164     libsdl.la
165
166 pkgincludedir = \
167     $(includedir)/sdl
168 pkginclude_HEADERS = \
169     include/sdl/asyncstorage.hpp \
170     include/sdl/backenderror.hpp \
171     include/sdl/doxygen.hpp \
172     include/sdl/emptynamespace.hpp \
173     include/sdl/errorqueries.hpp \
174     include/sdl/exception.hpp \
175     include/sdl/invalidnamespace.hpp \
176     include/sdl/notconnected.hpp \
177     include/sdl/operationinterrupted.hpp \
178     include/sdl/publisherid.hpp \
179     include/sdl/rejectedbybackend.hpp \
180     include/sdl/rejectedbysdl.hpp \
181     include/sdl/syncstorage.hpp
182
183 pkgtstincludedir = \
184     $(includedir)/sdl/tst
185 pkgtstinclude_HEADERS = \
186     include/sdl/tst/mockableasyncstorage.hpp \
187     include/sdl/tst/mockablesyncstorage.hpp
188
189 pkgconfigdir = \
190     ${libdir}/pkgconfig
191 nodist_pkgconfig_DATA = \
192     libsdl.pc
193
194 libsdl.pc: $(top_srcdir)/libsdl.pc.in
195         sed -e 's![@]prefix[@]!$(prefix)!g' \
196         -e 's![@]exec_prefix[@]!$(exec_prefix)!g' \
197         -e 's![@]includedir[@]!$(includedir)!g' \
198         -e 's![@]pkglibexecdir[@]!$(pkglibexecdir)!g' \
199         -e 's![@]libdir[@]!$(libdir)!g' \
200         -e 's![@]confdir[@]!@SDL_CONF_DIR@!g' \
201         -e 's![@]PACKAGE_VERSION[@]!$(PACKAGE_VERSION)!g' \
202         -e 's![@]PACKAGE_URL[@]!$(PACKAGE_URL)!g' \
203         $< > $@
204
205 bin_PROGRAMS = \
206     sdltool
207
208 sdltool_SOURCES = \
209     src/cli/main.cpp
210 sdltool_CPPFLAGS = \
211     $(BASE_CPPFLAGS) \
212     $(BOOST_CPPFLAGS)
213 sdltool_LDFLAGS = \
214     $(BOOST_LDFLAGS)
215 sdltool_LDADD = \
216     $(BOOST_PROGRAM_OPTIONS_LIB) \
217     libsdl.la \
218     -lboost_system \
219     libshareddatalayercli.la
220
221 check_LTLIBRARIES = \
222     libgmock.la libgtest.la
223
224 libgmock_la_SOURCES = \
225     3rdparty/googletest/googlemock/src/gmock-all.cc \
226     3rdparty/googletest/googlemock/src/gmock-cardinalities.cc \
227     3rdparty/googletest/googlemock/src/gmock.cc \
228     3rdparty/googletest/googlemock/src/gmock-internal-utils.cc \
229     3rdparty/googletest/googlemock/src/gmock_main.cc \
230     3rdparty/googletest/googlemock/src/gmock-matchers.cc \
231     3rdparty/googletest/googlemock/src/gmock-spec-builders.cc \
232     3rdparty/googletest/googlemock/include/gmock/gmock-actions.h \
233     3rdparty/googletest/googlemock/include/gmock/gmock-cardinalities.h \
234     3rdparty/googletest/googlemock/include/gmock/gmock-generated-actions.h \
235     3rdparty/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h \
236     3rdparty/googletest/googlemock/include/gmock/gmock-generated-matchers.h \
237     3rdparty/googletest/googlemock/include/gmock/gmock-generated-nice-strict.h \
238     3rdparty/googletest/googlemock/include/gmock/gmock.h \
239     3rdparty/googletest/googlemock/include/gmock/gmock-matchers.h \
240     3rdparty/googletest/googlemock/include/gmock/gmock-more-actions.h \
241     3rdparty/googletest/googlemock/include/gmock/gmock-more-matchers.h \
242     3rdparty/googletest/googlemock/include/gmock/gmock-spec-builders.h \
243     3rdparty/googletest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h \
244     3rdparty/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h \
245     3rdparty/googletest/googlemock/include/gmock/internal/gmock-port.h \
246     3rdparty/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h \
247     3rdparty/googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h \
248     3rdparty/googletest/googlemock/include/gmock/internal/custom/gmock-port.h
249
250 libgmock_la_CPPFLAGS = \
251     -I$(top_srcdir)/3rdparty/googletest/googlemock/include/ \
252     -I$(top_srcdir)/3rdparty/googletest/googlemock/ \
253     -I$(top_srcdir)/3rdparty/googletest/googletest/include/
254 libgmock_la_LIBADD = \
255     -lpthread
256
257 libgtest_la_SOURCES = \
258     3rdparty/googletest/googletest/src/gtest-all.cc \
259     3rdparty/googletest/googletest/src/gtest.cc \
260     3rdparty/googletest/googletest/src/gtest-death-test.cc \
261     3rdparty/googletest/googletest/src/gtest-filepath.cc \
262     3rdparty/googletest/googletest/src/gtest-internal-inl.h \
263     3rdparty/googletest/googletest/src/gtest_main.cc \
264     3rdparty/googletest/googletest/src/gtest-port.cc \
265     3rdparty/googletest/googletest/src/gtest-printers.cc \
266     3rdparty/googletest/googletest/src/gtest-test-part.cc \
267     3rdparty/googletest/googletest/src/gtest-typed-test.cc \
268     3rdparty/googletest/googletest/include/gtest/gtest-death-test.h \
269     3rdparty/googletest/googletest/include/gtest/gtest.h \
270     3rdparty/googletest/googletest/include/gtest/gtest-message.h \
271     3rdparty/googletest/googletest/include/gtest/gtest-param-test.h \
272     3rdparty/googletest/googletest/include/gtest/gtest-param-test.h.pump \
273     3rdparty/googletest/googletest/include/gtest/gtest_pred_impl.h \
274     3rdparty/googletest/googletest/include/gtest/gtest-printers.h \
275     3rdparty/googletest/googletest/include/gtest/gtest_prod.h \
276     3rdparty/googletest/googletest/include/gtest/gtest-spi.h \
277     3rdparty/googletest/googletest/include/gtest/gtest-test-part.h \
278     3rdparty/googletest/googletest/include/gtest/gtest-typed-test.h \
279     3rdparty/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h \
280     3rdparty/googletest/googletest/include/gtest/internal/gtest-filepath.h \
281     3rdparty/googletest/googletest/include/gtest/internal/gtest-internal.h \
282     3rdparty/googletest/googletest/include/gtest/internal/gtest-linked_ptr.h \
283     3rdparty/googletest/googletest/include/gtest/internal/gtest-param-util-generated.h \
284     3rdparty/googletest/googletest/include/gtest/internal/gtest-param-util.h \
285     3rdparty/googletest/googletest/include/gtest/internal/gtest-port-arch.h \
286     3rdparty/googletest/googletest/include/gtest/internal/gtest-port.h \
287     3rdparty/googletest/googletest/include/gtest/internal/gtest-string.h \
288     3rdparty/googletest/googletest/include/gtest/internal/gtest-tuple.h \
289     3rdparty/googletest/googletest/include/gtest/internal/gtest-type-util.h \
290     3rdparty/googletest/googletest/include/gtest/internal/custom/gtest.h \
291     3rdparty/googletest/googletest/include/gtest/internal/custom/gtest-port.h \
292     3rdparty/googletest/googletest/include/gtest/internal/custom/gtest-printers.h
293
294 libgtest_la_CPPFLAGS = \
295     -I$(top_srcdir)/3rdparty/googletest/googletest/include/ \
296     -I$(top_srcdir)/3rdparty/googletest/googletest/
297 libgtest_la_LIBADD = \
298     -lpthread
299
300 check_PROGRAMS = \
301     testrunner
302
303 testrunner_SOURCES = \
304     include/private/tst/asyncstoragemock.hpp \
305     include/private/tst/databaseconfigurationmock.hpp \
306     include/private/tst/enginemock.hpp \
307     include/private/tst/gettopsrcdir.hpp \
308     include/private/tst/namespaceconfigurationsmock.hpp \
309     include/private/tst/syncstorageimplmock.hpp \
310     include/private/tst/systemmock.hpp \
311     include/private/tst/wellknownerrorcode.hpp \
312     tst/abort_test.cpp \
313     tst/asyncdummystorage_test.cpp \
314     tst/asyncstorage_test.cpp \
315     tst/backenderror_test.cpp \
316     tst/configurationreader_test.cpp \
317     tst/databaseconfiguration_test.cpp \
318     tst/databaseconfigurationimpl_test.cpp \
319     tst/emptynamespace_test.cpp \
320     tst/engine_test.cpp \
321     tst/engineimpl_test.cpp \
322     tst/error_test.cpp \
323     tst/errorqueries_test.cpp \
324     tst/eventfd_test.cpp \
325     tst/gettopsrcdir.cpp \
326     tst/filedescriptor_test.cpp \
327     tst/hostandport_test.cpp \
328     tst/invalidnamespace_test.cpp \
329     tst/main.cpp \
330     tst/mockableasyncstorage_test.cpp \
331     tst/mockablesyncstorage_test.cpp \
332     tst/namespaceconfigurations_test.cpp \
333     tst/namespaceconfigurationsimpl_test.cpp \
334     tst/namespacevalidator_test.cpp \
335     tst/publisherid_test.cpp \
336     tst/syncstorage_test.cpp \
337     tst/syncstorageimpl_test.cpp \
338     tst/system_test.cpp \
339     tst/timer_test.cpp \
340     tst/timerfd_test.cpp \
341     tst/wellknownerrorcode.cpp
342 if REDIS
343 testrunner_SOURCES += \
344     include/private/tst/asynccommanddispatchermock.hpp \
345     include/private/tst/asyncdatabasediscoverymock.hpp \
346     include/private/tst/contentsbuildermock.hpp \
347     include/private/tst/redisreplybuilder.hpp \
348     include/private/tst/replymock.hpp \
349     tst/asynccommanddispatcher_test.cpp \
350     tst/asyncdatabasediscovery_test.cpp \
351     tst/asyncredisstorage_test.cpp \
352     tst/asyncsentineldatabasediscovery_test.cpp \
353     tst/asyncstorageimpl_test.cpp \
354     tst/contents_test.cpp \
355     tst/contentsbuilder_test.cpp \
356     tst/databaseinfo_test.cpp \
357     tst/redisgeneral_test.cpp \
358     tst/redisreplybuilder.cpp \
359     tst/reply_test.cpp
360 endif
361 if HIREDIS
362 testrunner_SOURCES += \
363     include/private/tst/hiredisepolladaptermock.hpp \
364     include/private/tst/hiredissystemmock.hpp \
365     tst/asynchirediscommanddispatcher_test.cpp \
366     tst/asynchiredisdatabasediscovery_test.cpp \
367     tst/hiredisepolladapter_test.cpp \
368     tst/hiredissystem_test.cpp
369 endif
370 if HIREDIS_VIP
371 testrunner_SOURCES += \
372     include/private/tst/hiredisclusterepolladaptermock.hpp \
373     include/private/tst/hiredisclustersystemmock.hpp \
374     tst/asynchiredisclustercommanddispatcher_test.cpp \
375     tst/hiredisclusterepolladapter_test.cpp \
376     tst/hiredisclustersystem_test.cpp
377 endif
378 testrunner_CPPFLAGS = \
379     $(BASE_CPPFLAGS) \
380     -I$(top_srcdir)/3rdparty/googletest/googlemock/include \
381     -I$(top_srcdir)/3rdparty/googletest/googletest/include \
382     $(HIREDIS_CFLAGS) \
383     $(HIREDIS_VIP_CFLAGS)
384 testrunner_LDADD = \
385     libsdl.la \
386     libgmock.la \
387     libgtest.la
388
389 TESTS = \
390     run-tests.sh
391
392 test: testrunner
393         ./run-tests.sh
394
395 if ENABLE_GCOV
396 AM_CXXFLAGS= -O0 --coverage
397 AM_LDFLAGS= --coverage
398
399 test_gcov: test
400         @for p in src/.libs/*.o src/redis/.libs/*.o; do \
401                 gcov -abcfru $$p 1>/dev/null; \
402         done
403         mkdir -p @GCOV_REPORT_DIR@
404         mv *.gcov @GCOV_REPORT_DIR@
405         ls -la @GCOV_REPORT_DIR@
406 endif
407
408 if ENABLE_RPM_BUILD
409 rpm-pkg:
410         rpmbuild --nodeps --nocheck -bb rpm/sdl.spec --define="_sourcedir $(top_srcdir)" --define="_builddir $(top_srcdir)" --define="_rpmdir .."
411         mkdir -p @RPM_DIR@
412         cp ../x86_64/*.rpm @RPM_DIR@
413 endif
414
415
416 if ENABLE_DEB_BUILD
417 deb-pkg:
418         DEB_BUILD_OPTIONS='nocheck noddebs' debuild -b -us -uc
419         mkdir -p @DEB_DIR@
420         cp ../*.deb @DEB_DIR@
421 endif
422
423 clean-local:
424         rm -f libsdl.pc
425 if ENABLE_GCOV
426         rm -rf @GCOV_REPORT_DIR@
427         @find . -name '*.gcno' -o -name '*.gcda'| xargs -r rm
428 endif
429
430 @DX_RULES@
431
432 MOSTLYCLEANFILES = \
433     $(DX_CLEANFILES)
434
435 EXTRA_DIST = \
436     $(top_srcdir)/libsdl.pc.in \
437     $(top_srcdir)/tst/valgrind-suppressions.conf \
438     $(top_srcdir)/LICENSES.txt
439
440 AUTOMAKE_OPTIONS = \
441     serial-tests