add integer overflow guards and avoid (unlimited) stack allocation
[oweals/gnunet.git] / src / consensus / Makefile.am
1 # This Makefile.am is in the public domain
2 AM_CPPFLAGS = -I$(top_srcdir)/src/include
3
4 pkgcfgdir= $(pkgdatadir)/config.d/
5
6 libexecdir= $(pkglibdir)/libexec/
7
8 plugindir = $(libdir)/gnunet
9
10 pkgcfg_DATA = \
11   consensus.conf
12
13 if USE_COVERAGE
14   AM_CFLAGS = -fprofile-arcs -ftest-coverage
15 endif
16
17
18 libexec_PROGRAMS = \
19  gnunet-service-consensus
20
21 if ENABLE_MALICIOUS
22 libexec_PROGRAMS += \
23  gnunet-service-evil-consensus
24 endif
25
26 SUFFIXES = .py.in .py
27
28 .py.in.py:
29         $(AWK) -v bdir="$(bindir)" -v py="$(PYTHON)" -v awkay="$(AWK_BINARY)" -v pfx="$(prefix)" -v prl="$(PERL)" -v sysconfdirectory="$(sysconfdir)" -v pkgdatadirectory="$(pkgdatadir)" -f $(top_srcdir)/bin/dosubst.awk < $< > $@
30         chmod +x $@
31
32 check-python-style:
33         flake8 consensus-simulation.py.in
34
35 lib_LTLIBRARIES = \
36   libgnunetconsensus.la
37
38 gnunet_consensus_profiler_SOURCES = \
39  gnunet-consensus-profiler.c
40 gnunet_consensus_profiler_LDADD = \
41   $(top_builddir)/src/util/libgnunetutil.la \
42   libgnunetconsensus.la \
43   $(top_builddir)/src/testbed/libgnunettestbed.la \
44   $(GN_LIBINTL)
45
46 gnunet_service_consensus_SOURCES = \
47  gnunet-service-consensus.c
48 gnunet_service_consensus_LDADD = \
49   $(top_builddir)/src/util/libgnunetutil.la \
50   $(top_builddir)/src/core/libgnunetcore.la \
51   $(top_builddir)/src/set/libgnunetset.la \
52   $(top_builddir)/src/statistics/libgnunetstatistics.la \
53   $(GN_LIBINTL)
54
55 gnunet_service_evil_consensus_SOURCES = \
56  gnunet-service-consensus.c \
57  consensus_protocol.h
58 gnunet_service_evil_consensus_LDADD = \
59   $(top_builddir)/src/util/libgnunetutil.la \
60   $(top_builddir)/src/core/libgnunetcore.la \
61   $(top_builddir)/src/set/libgnunetset.la \
62   $(top_builddir)/src/statistics/libgnunetstatistics.la \
63   $(GN_LIBINTL)
64 gnunet_service_evil_consensus_CFLAGS = -DEVIL
65
66 libgnunetconsensus_la_SOURCES = \
67   consensus_api.c \
68   consensus.h
69 libgnunetconsensus_la_LIBADD = \
70   $(top_builddir)/src/util/libgnunetutil.la \
71   $(LTLIBINTL)
72 libgnunetconsensus_la_LDFLAGS = \
73   $(GN_LIB_LDFLAGS)
74
75
76 plugin_LTLIBRARIES = \
77   libgnunet_plugin_block_consensus.la
78
79 libgnunet_plugin_block_consensus_la_SOURCES = \
80   plugin_block_consensus.c
81 libgnunet_plugin_block_consensus_la_LIBADD = \
82   $(top_builddir)/src/block/libgnunetblock.la \
83   $(top_builddir)/src/block/libgnunetblockgroup.la \
84   $(top_builddir)/src/util/libgnunetutil.la \
85   $(LTLIBINTL)
86 libgnunet_plugin_block_consensus_la_LDFLAGS = \
87  $(GN_PLUGIN_LDFLAGS)
88
89
90
91 if HAVE_TESTING
92 bin_PROGRAMS = \
93  gnunet-consensus-profiler
94
95 check_PROGRAMS = \
96  test_consensus_api
97
98 if ENABLE_TEST_RUN
99 AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH;unset XDG_DATA_HOME;unset XDG_CONFIG_HOME;
100 TESTS = $(check_PROGRAMS)
101 endif
102 endif
103
104 test_consensus_api_SOURCES = \
105  test_consensus_api.c
106 test_consensus_api_LDADD = \
107   $(top_builddir)/src/util/libgnunetutil.la \
108   $(top_builddir)/src/testing/libgnunettesting.la \
109   libgnunetconsensus.la
110
111 noinst_SCRIPTS = \
112         consensus-simulation.py
113
114 CLEANFILES = \
115         $(noinst_SCRIPTS)
116
117 EXTRA_DIST = \
118   test_consensus.conf \
119   consensus-simulation.py.in