]> git.ipfire.org Git - thirdparty/pdns.git/blob - pdns/dnsdistdist/Makefile.am
Merge remote-tracking branch 'origin/master' into ixfrdist-limit-size
[thirdparty/pdns.git] / pdns / dnsdistdist / Makefile.am
1 AM_CPPFLAGS += $(SYSTEMD_CFLAGS) $(LUA_CFLAGS) $(LIBEDIT_CFLAGS) $(LIBSODIUM_CFLAGS) $(FSTRM_CFLAGS) $(YAHTTP_CFLAGS) $(SANITIZER_FLAGS) $(NET_SNMP_CFLAGS) -DSYSCONFDIR=\"${sysconfdir}\"
2
3 ACLOCAL_AMFLAGS = -I m4
4
5 SUBDIRS=ext/yahttp
6
7 CLEANFILES = \
8 dnsmessage.pb.cc \
9 dnsmessage.pb.h \
10 htmlfiles.h.tmp \
11 htmlfiles.h \
12 dnstap.pb.cc \
13 dnstap.pb.h
14
15 dnslabeltext.cc: dnslabeltext.rl
16 $(AM_V_GEN)$(RAGEL) $< -o dnslabeltext.cc
17
18 BUILT_SOURCES=htmlfiles.h \
19 dnslabeltext.cc
20
21 htmlfiles.h: $(srcdir)/html/*
22 $(AM_V_GEN)$(srcdir)/incfiles $(srcdir) > $@.tmp
23 @mv $@.tmp $@
24
25 SRC_JS_FILES := $(wildcard src_js/*.js)
26 MIN_JS_FILES := $(patsubst src_js/%.js,html/js/%.min.js,$(SRC_JS_FILES))
27
28 html/js/%.min.js: src_js/%.js
29 uglifyjs $< > $@
30
31 min_js: $(MIN_JS_FILES)
32
33 if HAVE_RE2
34 AM_CPPFLAGS += $(RE2_CFLAGS)
35 endif
36
37 if HAVE_DNS_OVER_TLS
38 if HAVE_LIBSSL
39 AM_CPPFLAGS += $(LIBSSL_CFLAGS)
40 endif
41
42 if HAVE_GNUTLS
43 AM_CPPFLAGS += $(GNUTLS_CFLAGS)
44 endif
45 endif
46
47 EXTRA_DIST=COPYING \
48 dnslabeltext.rl \
49 dnsdistconf.lua \
50 dnsmessage.proto \
51 dnstap.proto \
52 README.md \
53 delaypipe.cc delaypipe.hh \
54 html \
55 contrib \
56 ext/incbin/UNLICENSE \
57 incfiles \
58 src_js \
59 dnsdist.service.in \
60 lua_hpp.mk \
61 bpf-filter.main.ebpf \
62 bpf-filter.qname.ebpf \
63 bpf-filter.ebpf.src \
64 DNSDIST-MIB.txt \
65 devpollmplexer.cc \
66 epollmplexer.cc \
67 kqueuemplexer.cc \
68 portsmplexer.cc \
69 builder-support/gen-version
70
71 bin_PROGRAMS = dnsdist
72
73 if UNIT_TESTS
74 noinst_PROGRAMS = testrunner
75 TESTS_ENVIRONMENT = env BOOST_TEST_LOG_LEVEL=message SRCDIR='$(srcdir)'
76 TESTS=testrunner
77 else
78 check-local:
79 @echo "Unit tests are not enabled"
80 @echo "Run ./configure --enable-unit-tests"
81 endif
82
83 dnsdist-web.$(OBJEXT): htmlfiles.h
84
85 dnsdist_SOURCES = \
86 ascii.hh \
87 base64.hh \
88 bpf-filter.cc bpf-filter.hh \
89 cachecleaner.hh \
90 dns.cc dns.hh \
91 dnscrypt.cc dnscrypt.hh \
92 dnsdist.cc dnsdist.hh \
93 dnsdist-dynbpf.cc dnsdist-dynbpf.hh \
94 dnsdist-cache.cc dnsdist-cache.hh \
95 dnsdist-carbon.cc \
96 dnsdist-console.cc dnsdist-console.hh \
97 dnsdist-dnscrypt.cc \
98 dnsdist-dynblocks.hh \
99 dnsdist-ecs.cc dnsdist-ecs.hh \
100 dnsdist-lua.hh dnsdist-lua.cc \
101 dnsdist-lua-actions.cc \
102 dnsdist-lua-bindings.cc \
103 dnsdist-lua-bindings-dnsquestion.cc \
104 dnsdist-lua-inspection.cc \
105 dnsdist-lua-rules.cc \
106 dnsdist-lua-vars.cc \
107 dnsdist-protobuf.cc dnsdist-protobuf.hh \
108 dnsdist-rings.cc dnsdist-rings.hh \
109 dnsdist-rules.hh \
110 dnsdist-secpoll.cc dnsdist-secpoll.hh \
111 dnsdist-snmp.cc dnsdist-snmp.hh \
112 dnsdist-tcp.cc \
113 dnsdist-web.cc \
114 dnsdist-xpf.cc dnsdist-xpf.hh \
115 dnslabeltext.cc \
116 dnsname.cc dnsname.hh \
117 dnsparser.hh dnsparser.cc \
118 dnswriter.cc dnswriter.hh \
119 dolog.hh \
120 ednsoptions.cc ednsoptions.hh \
121 ednscookies.cc ednscookies.hh \
122 ednssubnet.cc ednssubnet.hh \
123 fstrm_logger.cc fstrm_logger.hh \
124 gettime.cc gettime.hh \
125 htmlfiles.h \
126 iputils.cc iputils.hh \
127 lock.hh \
128 misc.cc misc.hh \
129 mplexer.hh \
130 namespaces.hh \
131 pdnsexception.hh \
132 protobuf.cc protobuf.hh \
133 dnstap.cc dnstap.hh \
134 qtype.cc qtype.hh \
135 remote_logger.cc remote_logger.hh \
136 pollmplexer.cc \
137 sholder.hh \
138 snmp-agent.cc snmp-agent.hh \
139 sodcrypto.cc sodcrypto.hh \
140 sstuff.hh \
141 statnode.cc statnode.hh \
142 tcpiohandler.cc tcpiohandler.hh \
143 threadname.hh threadname.cc \
144 xpf.cc xpf.hh \
145 ext/luawrapper/include/LuaContext.hpp \
146 ext/json11/json11.cpp \
147 ext/json11/json11.hpp \
148 ext/incbin/incbin.h \
149 ext/libbpf/libbpf.h
150
151 dnsdist_LDFLAGS = \
152 $(AM_LDFLAGS) \
153 $(PROGRAM_LDFLAGS) \
154 -pthread
155
156 dnsdist_LDADD = \
157 $(LUA_LIBS) \
158 $(LIBEDIT_LIBS) \
159 $(RT_LIBS) \
160 $(YAHTTP_LIBS) \
161 $(LIBSODIUM_LIBS) \
162 $(FSTRM_LIBS) \
163 $(SANITIZER_FLAGS) \
164 $(SYSTEMD_LIBS) \
165 $(NET_SNMP_LIBS)
166
167 if HAVE_RE2
168 dnsdist_LDADD += $(RE2_LIBS)
169 endif
170
171 if HAVE_DNS_OVER_TLS
172 if HAVE_GNUTLS
173 dnsdist_LDADD += -lgnutls
174 endif
175
176 if HAVE_LIBSSL
177 dnsdist_LDADD += $(LIBSSL_LIBS) $(LIBCRYPTO_LIBS)
178 endif
179 endif
180
181 if !HAVE_LUA_HPP
182 BUILT_SOURCES += lua.hpp
183 nodist_dnsdist_SOURCES = lua.hpp
184 CLEANFILES += lua.hpp
185 endif
186
187 if HAVE_PROTOBUF
188 if HAVE_PROTOC
189 dnsmessage.pb.cc: dnsmessage.proto
190 $(AM_V_GEN)$(PROTOC) -I$(srcdir) --cpp_out=./ $<
191
192 dnstap.pb.cc: dnstap.proto
193 $(AM_V_GEN)$(PROTOC) -I$(srcdir) --cpp_out=./ $<
194
195 BUILT_SOURCES += dnsmessage.pb.cc dnstap.pb.cc
196
197 nodist_dnsdist_SOURCES = dnsmessage.pb.cc dnsmessage.pb.h dnstap.pb.cc dnstap.pb.h
198 dnsdist_LDADD += $(PROTOBUF_LIBS)
199
200 dnsdist.$(OBJEXT): dnsmessage.pb.cc dnstap.pb.cc
201 endif
202 endif
203
204 if HAVE_FREEBSD
205 dnsdist_SOURCES += kqueuemplexer.cc
206 endif
207
208 if HAVE_LINUX
209 dnsdist_SOURCES += epollmplexer.cc
210 endif
211
212 if HAVE_SOLARIS
213 dnsdist_SOURCES += \
214 devpollmplexer.cc \
215 portsmplexer.cc
216 endif
217
218 testrunner_SOURCES = \
219 base64.hh \
220 dns.hh \
221 test-base64_cc.cc \
222 test-delaypipe_hh.cc \
223 test-dnscrypt_cc.cc \
224 test-dnsdist_cc.cc \
225 test-dnsdistdynblocks_hh.cc \
226 test-dnsdistpacketcache_cc.cc \
227 test-dnsdistrings_cc.cc \
228 test-dnsdistrules_cc.cc \
229 test-dnsparser_cc.cc \
230 test-iputils_hh.cc \
231 cachecleaner.hh \
232 dnsdist.hh \
233 dnsdist-cache.cc dnsdist-cache.hh \
234 dnsdist-ecs.cc dnsdist-ecs.hh \
235 dnsdist-xpf.cc dnsdist-xpf.hh \
236 dnscrypt.cc dnscrypt.hh \
237 dnslabeltext.cc \
238 dnsname.cc dnsname.hh \
239 dnsparser.hh dnsparser.cc \
240 dnswriter.cc dnswriter.hh \
241 dolog.hh \
242 ednsoptions.cc ednsoptions.hh \
243 ednscookies.cc ednscookies.hh \
244 ednssubnet.cc ednssubnet.hh \
245 gettime.cc gettime.hh \
246 iputils.cc iputils.hh \
247 misc.cc misc.hh \
248 namespaces.hh \
249 pdnsexception.hh \
250 qtype.cc qtype.hh \
251 sholder.hh \
252 sodcrypto.cc \
253 sstuff.hh \
254 threadname.hh threadname.cc \
255 testrunner.cc \
256 xpf.cc xpf.hh
257
258 testrunner_LDFLAGS = \
259 $(AM_LDFLAGS) \
260 $(PROGRAM_LDFLAGS) \
261 $(BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS) \
262 -pthread
263
264 testrunner_LDADD = \
265 $(BOOST_UNIT_TEST_FRAMEWORK_LIBS) \
266 $(LIBSODIUM_LIBS) \
267 $(FSTRM_LIBS) \
268 $(RT_LIBS) \
269 $(SANITIZER_FLAGS)
270
271 MANPAGES=dnsdist.1
272
273 dist_man_MANS=$(MANPAGES)
274
275 if HAVE_VIRTUALENV
276 if !HAVE_MANPAGES
277 $(MANPAGES): %: docs/manpages/%.rst .venv
278 $(AM_V_GEN).venv/bin/python -msphinx -b man docs . $<
279 endif # if !HAVE_MANPAGES
280
281 .venv: docs/requirements.txt
282 virtualenv .venv
283 .venv/bin/pip install -U pip setuptools setuptools-git
284 .venv/bin/pip install -r $<
285
286 latex/dnsdist.pdf: docs/** .venv
287 .venv/bin/python -msphinx -M latexpdf docs .
288
289 dnsdist.pdf: latex/dnsdist.pdf
290 mv $< $@
291
292 html-docs.tar.bz2: html-docs
293 tar cjf $@ $<
294
295 html-docs: docs/** .venv
296 .venv/bin/python -msphinx -b html docs html-docs
297
298 all-docs: html-docs html-docs.tar.bz2 dnsdist.pdf
299
300 upload-docs: all-docs
301 rsync -crv --delete --no-p --chmod=g=rwX --exclude '*~' ./html-docs/ web1.powerdns.com:/srv/www/dnsdist.org
302 rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./html-docs.tar.bz2 web1.powerdns.com:/srv/www/dnsdist.org
303 rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./dnsdist.pdf web1.powerdns.com:/srv/www/dnsdist.org
304
305 else # if HAVE_VIRTUALENV
306 $(MANPAGES):
307 @echo "You need virtualenv to generate the manpages"
308 exit 1
309
310 html-docs: %: docs/manpages/%.rst .venv
311 @echo "You need virtualenv to generate the HTML documentation"
312 exit 1
313
314 dnsdist.pdf:
315 @echo "You need virtualenv to generate the pdf documentation"
316 exit 1
317 endif
318
319 if HAVE_SYSTEMD
320 dnsdist.service: dnsdist.service.in
321 $(AM_V_GEN)sed -e 's![@]bindir[@]!$(bindir)!' < $< > $@
322
323 dnsdist@.service: dnsdist.service
324 $(AM_V_GEN)sed -e 's!/dnsdist !&--config $(sysconfdir)/dnsdist-%i.conf !' < $< >$@
325
326 systemdsystemunitdir = $(SYSTEMD_DIR)
327
328 systemdsystemunit_DATA = \
329 dnsdist.service \
330 dnsdist@.service
331
332 CLEANFILES += \
333 dnsdist.service \
334 dnsdist@.service
335 endif
336
337 if !HAVE_LUA_HPP
338 include lua_hpp.mk
339 endif