]>
Commit | Line | Data |
---|---|---|
fdc3ea42 | 1 | AM_CPPFLAGS += $(SYSTEMD_CFLAGS) $(LUA_CFLAGS) $(LIBEDIT_CFLAGS) $(LIBSODIUM_CFLAGS) $(FSTRM_CFLAGS) $(YAHTTP_CFLAGS) $(SANITIZER_FLAGS) $(NET_SNMP_CFLAGS) $(LIBCAP_CFLAGS) -DSYSCONFDIR=\"${sysconfdir}\" |
50bed881 | 2 | |
91487eb9 PL |
3 | ACLOCAL_AMFLAGS = -I m4 |
4 | ||
496151cf RG |
5 | SUBDIRS=ext/ipcrypt \ |
6 | ext/yahttp | |
bbfefc98 | 7 | |
50169e30 CH |
8 | CLEANFILES = \ |
9 | dnsmessage.pb.cc \ | |
10 | dnsmessage.pb.h \ | |
11 | htmlfiles.h.tmp \ | |
12 | htmlfiles.h \ | |
13 | dnstap.pb.cc \ | |
14 | dnstap.pb.h | |
37a2da85 | 15 | |
bbfefc98 | 16 | dnslabeltext.cc: dnslabeltext.rl |
30bfe7f6 | 17 | $(AM_V_GEN)$(RAGEL) $< -o dnslabeltext.cc |
4676400a | 18 | |
56872c22 PL |
19 | BUILT_SOURCES=htmlfiles.h \ |
20 | dnslabeltext.cc | |
a1f81e3b | 21 | |
38b86118 PL |
22 | htmlfiles.h: $(srcdir)/html/* |
23 | $(AM_V_GEN)$(srcdir)/incfiles $(srcdir) > $@.tmp | |
24 | @mv $@.tmp $@ | |
bbfefc98 | 25 | |
7cc65f8a SH |
26 | SRC_JS_FILES := $(wildcard src_js/*.js) |
27 | MIN_JS_FILES := $(patsubst src_js/%.js,html/js/%.min.js,$(SRC_JS_FILES)) | |
28 | ||
29 | html/js/%.min.js: src_js/%.js | |
30 | uglifyjs $< > $@ | |
31 | ||
32 | min_js: $(MIN_JS_FILES) | |
33 | ||
4ed8dfeb | 34 | if HAVE_RE2 |
35 | AM_CPPFLAGS += $(RE2_CFLAGS) | |
36 | endif | |
37 | ||
a227f47d RG |
38 | if HAVE_DNS_OVER_TLS |
39 | if HAVE_LIBSSL | |
40 | AM_CPPFLAGS += $(LIBSSL_CFLAGS) | |
41 | endif | |
42 | ||
43 | if HAVE_GNUTLS | |
44 | AM_CPPFLAGS += $(GNUTLS_CFLAGS) | |
45 | endif | |
46 | endif | |
4ed8dfeb | 47 | |
190aaf91 PL |
48 | EXTRA_DIST=COPYING \ |
49 | dnslabeltext.rl \ | |
994c0ab3 | 50 | dnsdistconf.lua \ |
59c83cf6 | 51 | dnsmessage.proto \ |
82a91ddf | 52 | dnstap.proto \ |
994c0ab3 | 53 | README.md \ |
25553371 | 54 | delaypipe.cc delaypipe.hh \ |
994c0ab3 | 55 | html \ |
b3bcfb63 | 56 | contrib \ |
babc4bab SH |
57 | ext/incbin/UNLICENSE \ |
58 | incfiles \ | |
6ab65223 | 59 | src_js \ |
65613131 | 60 | dnsdist.service.in \ |
d45189b7 RG |
61 | lua_hpp.mk \ |
62 | bpf-filter.main.ebpf \ | |
63 | bpf-filter.qname.ebpf \ | |
9f4eb5cc | 64 | bpf-filter.ebpf.src \ |
0e663c3b RG |
65 | DNSDIST-MIB.txt \ |
66 | devpollmplexer.cc \ | |
67 | epollmplexer.cc \ | |
68 | kqueuemplexer.cc \ | |
8670e40d PL |
69 | portsmplexer.cc \ |
70 | builder-support/gen-version | |
bbfefc98 | 71 | |
72 | bin_PROGRAMS = dnsdist | |
d2143283 PL |
73 | |
74 | if UNIT_TESTS | |
75 | noinst_PROGRAMS = testrunner | |
3c2ea9e5 RG |
76 | TESTS_ENVIRONMENT = env BOOST_TEST_LOG_LEVEL=message SRCDIR='$(srcdir)' |
77 | TESTS=testrunner | |
78 | else | |
79 | check-local: | |
80 | @echo "Unit tests are not enabled" | |
81 | @echo "Run ./configure --enable-unit-tests" | |
ca404e94 RG |
82 | endif |
83 | ||
ca9836cb PL |
84 | dnsdist-web.$(OBJEXT): htmlfiles.h |
85 | ||
bbfefc98 | 86 | dnsdist_SOURCES = \ |
6ee9a5a2 | 87 | ascii.hh \ |
1489accc | 88 | base64.hh \ |
87b515ed | 89 | bpf-filter.cc bpf-filter.hh \ |
05f4003d | 90 | cachecleaner.hh \ |
f12666f2 | 91 | capabilities.cc capabilities.hh \ |
77f8ae1a | 92 | dns.cc dns.hh \ |
11e1e08b | 93 | dnscrypt.cc dnscrypt.hh \ |
bbfefc98 | 94 | dnsdist.cc dnsdist.hh \ |
87b515ed | 95 | dnsdist-dynbpf.cc dnsdist-dynbpf.hh \ |
886e2cf2 | 96 | dnsdist-cache.cc dnsdist-cache.hh \ |
96b092a7 | 97 | dnsdist-carbon.cc \ |
b5521206 | 98 | dnsdist-console.cc dnsdist-console.hh \ |
11e1e08b | 99 | dnsdist-dnscrypt.cc \ |
dc2fd93a | 100 | dnsdist-dynblocks.hh \ |
ca404e94 | 101 | dnsdist-ecs.cc dnsdist-ecs.hh \ |
d0ae6360 | 102 | dnsdist-idstate.cc \ |
cf48b0ce | 103 | dnsdist-lua.hh dnsdist-lua.cc \ |
6bb38cd6 RG |
104 | dnsdist-lua-actions.cc \ |
105 | dnsdist-lua-bindings.cc \ | |
106 | dnsdist-lua-bindings-dnsquestion.cc \ | |
107 | dnsdist-lua-inspection.cc \ | |
861ce85b | 108 | dnsdist-lua-inspection-ffi.cc dnsdist-lua-inspection-ffi.hh \ |
6bb38cd6 RG |
109 | dnsdist-lua-rules.cc \ |
110 | dnsdist-lua-vars.cc \ | |
ec469dd7 | 111 | dnsdist-protobuf.cc dnsdist-protobuf.hh \ |
03b00917 | 112 | dnsdist-rings.cc dnsdist-rings.hh \ |
5f2e235c | 113 | dnsdist-rules.hh \ |
5d4e1ef8 | 114 | dnsdist-secpoll.cc dnsdist-secpoll.hh \ |
9f4eb5cc | 115 | dnsdist-snmp.cc dnsdist-snmp.hh \ |
8a5d5053 | 116 | dnsdist-tcp.cc \ |
50bed881 | 117 | dnsdist-web.cc \ |
53c57da7 | 118 | dnsdist-xpf.cc dnsdist-xpf.hh \ |
bbfefc98 | 119 | dnslabeltext.cc \ |
120 | dnsname.cc dnsname.hh \ | |
ca404e94 | 121 | dnsparser.hh dnsparser.cc \ |
bbfefc98 | 122 | dnswriter.cc dnswriter.hh \ |
123 | dolog.hh \ | |
5c3b5e7f | 124 | ednsoptions.cc ednsoptions.hh \ |
ff73f02b | 125 | ednscookies.cc ednscookies.hh \ |
ca404e94 | 126 | ednssubnet.cc ednssubnet.hh \ |
82a91ddf | 127 | fstrm_logger.cc fstrm_logger.hh \ |
85c7ca75 | 128 | gettime.cc gettime.hh \ |
0e663c3b | 129 | htmlfiles.h \ |
bbfefc98 | 130 | iputils.cc iputils.hh \ |
0e41337b | 131 | lock.hh \ |
bbfefc98 | 132 | misc.cc misc.hh \ |
0e663c3b | 133 | mplexer.hh \ |
bbfefc98 | 134 | namespaces.hh \ |
135 | pdnsexception.hh \ | |
d9d3f9c1 | 136 | protobuf.cc protobuf.hh \ |
82a91ddf | 137 | dnstap.cc dnstap.hh \ |
bbfefc98 | 138 | qtype.cc qtype.hh \ |
ec469dd7 | 139 | remote_logger.cc remote_logger.hh \ |
926444e2 | 140 | pollmplexer.cc \ |
ecbe9133 | 141 | sholder.hh \ |
9f4eb5cc | 142 | snmp-agent.cc snmp-agent.hh \ |
bbfefc98 | 143 | sodcrypto.cc sodcrypto.hh \ |
f8204e9e | 144 | sstuff.hh \ |
71c94675 | 145 | statnode.cc statnode.hh \ |
a227f47d | 146 | tcpiohandler.cc tcpiohandler.hh \ |
519f5484 | 147 | threadname.hh threadname.cc \ |
d61aa945 | 148 | uuid-utils.hh uuid-utils.cc \ |
5cc8371b | 149 | xpf.cc xpf.hh \ |
f8204e9e PL |
150 | ext/luawrapper/include/LuaContext.hpp \ |
151 | ext/json11/json11.cpp \ | |
152 | ext/json11/json11.hpp \ | |
87b515ed RG |
153 | ext/incbin/incbin.h \ |
154 | ext/libbpf/libbpf.h | |
bbfefc98 | 155 | |
156 | dnsdist_LDFLAGS = \ | |
157 | $(AM_LDFLAGS) \ | |
bfb7cc84 | 158 | $(PROGRAM_LDFLAGS) \ |
50bed881 | 159 | -pthread |
bbfefc98 | 160 | |
161 | dnsdist_LDADD = \ | |
a6158e7a | 162 | $(LUA_LIBS) \ |
d9de8b61 | 163 | $(LIBEDIT_LIBS) \ |
a6158e7a RK |
164 | $(RT_LIBS) \ |
165 | $(YAHTTP_LIBS) \ | |
e85e4d88 | 166 | $(LIBSODIUM_LIBS) \ |
82a91ddf | 167 | $(FSTRM_LIBS) \ |
6ab65223 | 168 | $(SANITIZER_FLAGS) \ |
9f4eb5cc | 169 | $(SYSTEMD_LIBS) \ |
fdc3ea42 | 170 | $(NET_SNMP_LIBS) \ |
496151cf RG |
171 | $(LIBCAP_LIBS) \ |
172 | $(IPCRYPT_LIBS) | |
bbfefc98 | 173 | |
4ed8dfeb | 174 | if HAVE_RE2 |
175 | dnsdist_LDADD += $(RE2_LIBS) | |
176 | endif | |
177 | ||
f4b1f1fd RG |
178 | if HAVE_LIBCRYPTO |
179 | dnsdist_LDADD += $(LIBCRYPTO_LIBS) | |
496151cf | 180 | dnsdist_SOURCES += ipcipher.cc ipcipher.hh |
f4b1f1fd RG |
181 | endif |
182 | ||
a227f47d RG |
183 | if HAVE_DNS_OVER_TLS |
184 | if HAVE_GNUTLS | |
185 | dnsdist_LDADD += -lgnutls | |
186 | endif | |
187 | ||
188 | if HAVE_LIBSSL | |
f4b1f1fd | 189 | dnsdist_LDADD += $(LIBSSL_LIBS) |
a227f47d RG |
190 | endif |
191 | endif | |
192 | ||
65613131 PL |
193 | if !HAVE_LUA_HPP |
194 | BUILT_SOURCES += lua.hpp | |
195 | nodist_dnsdist_SOURCES = lua.hpp | |
196 | CLEANFILES += lua.hpp | |
197 | endif | |
b2eccf5f | 198 | |
37a2da85 PL |
199 | if HAVE_PROTOBUF |
200 | if HAVE_PROTOC | |
b2eccf5f | 201 | dnsmessage.pb.cc: dnsmessage.proto |
38b86118 | 202 | $(AM_V_GEN)$(PROTOC) -I$(srcdir) --cpp_out=./ $< |
b2eccf5f | 203 | |
82a91ddf CH |
204 | dnstap.pb.cc: dnstap.proto |
205 | $(AM_V_GEN)$(PROTOC) -I$(srcdir) --cpp_out=./ $< | |
206 | ||
207 | BUILT_SOURCES += dnsmessage.pb.cc dnstap.pb.cc | |
37a2da85 | 208 | |
82a91ddf | 209 | nodist_dnsdist_SOURCES = dnsmessage.pb.cc dnsmessage.pb.h dnstap.pb.cc dnstap.pb.h |
d8c19b98 | 210 | dnsdist_LDADD += $(PROTOBUF_LIBS) |
37a2da85 | 211 | |
82a91ddf | 212 | dnsdist.$(OBJEXT): dnsmessage.pb.cc dnstap.pb.cc |
37a2da85 | 213 | endif |
d8c19b98 | 214 | endif |
ca404e94 | 215 | |
0e663c3b RG |
216 | if HAVE_FREEBSD |
217 | dnsdist_SOURCES += kqueuemplexer.cc | |
218 | endif | |
219 | ||
220 | if HAVE_LINUX | |
221 | dnsdist_SOURCES += epollmplexer.cc | |
222 | endif | |
223 | ||
224 | if HAVE_SOLARIS | |
225 | dnsdist_SOURCES += \ | |
226 | devpollmplexer.cc \ | |
227 | portsmplexer.cc | |
228 | endif | |
229 | ||
ca404e94 | 230 | testrunner_SOURCES = \ |
11e1e08b RG |
231 | base64.hh \ |
232 | dns.hh \ | |
e27e17c3 | 233 | test-base64_cc.cc \ |
94e4d723 | 234 | test-delaypipe_hh.cc \ |
47698274 | 235 | test-dnscrypt_cc.cc \ |
11e1e08b | 236 | test-dnsdist_cc.cc \ |
1d3ba133 | 237 | test-dnsdistdynblocks_hh.cc \ |
886e2cf2 | 238 | test-dnsdistpacketcache_cc.cc \ |
cfe4b655 | 239 | test-dnsdistrings_cc.cc \ |
05f4003d | 240 | test-dnsdistrules_cc.cc \ |
47698274 | 241 | test-dnsparser_cc.cc \ |
0047d734 | 242 | test-iputils_hh.cc \ |
05f4003d | 243 | cachecleaner.hh \ |
11e1e08b | 244 | dnsdist.hh \ |
886e2cf2 | 245 | dnsdist-cache.cc dnsdist-cache.hh \ |
ca404e94 | 246 | dnsdist-ecs.cc dnsdist-ecs.hh \ |
53c57da7 | 247 | dnsdist-xpf.cc dnsdist-xpf.hh \ |
11e1e08b | 248 | dnscrypt.cc dnscrypt.hh \ |
ca404e94 RG |
249 | dnslabeltext.cc \ |
250 | dnsname.cc dnsname.hh \ | |
251 | dnsparser.hh dnsparser.cc \ | |
252 | dnswriter.cc dnswriter.hh \ | |
253 | dolog.hh \ | |
5c3b5e7f | 254 | ednsoptions.cc ednsoptions.hh \ |
ff73f02b | 255 | ednscookies.cc ednscookies.hh \ |
ca404e94 | 256 | ednssubnet.cc ednssubnet.hh \ |
85c7ca75 | 257 | gettime.cc gettime.hh \ |
ca404e94 RG |
258 | iputils.cc iputils.hh \ |
259 | misc.cc misc.hh \ | |
260 | namespaces.hh \ | |
261 | pdnsexception.hh \ | |
262 | qtype.cc qtype.hh \ | |
263 | sholder.hh \ | |
e27e17c3 | 264 | sodcrypto.cc \ |
ca404e94 | 265 | sstuff.hh \ |
23adffab | 266 | statnode.cc statnode.hh \ |
94e4d723 | 267 | threadname.hh threadname.cc \ |
5cc8371b RG |
268 | testrunner.cc \ |
269 | xpf.cc xpf.hh | |
ca404e94 RG |
270 | |
271 | testrunner_LDFLAGS = \ | |
272 | $(AM_LDFLAGS) \ | |
273 | $(PROGRAM_LDFLAGS) \ | |
274 | $(BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS) \ | |
275 | -pthread | |
276 | ||
277 | testrunner_LDADD = \ | |
278 | $(BOOST_UNIT_TEST_FRAMEWORK_LIBS) \ | |
11e1e08b | 279 | $(LIBSODIUM_LIBS) \ |
82a91ddf | 280 | $(FSTRM_LIBS) \ |
8d06661a | 281 | $(RT_LIBS) \ |
fdc3ea42 RG |
282 | $(SANITIZER_FLAGS) \ |
283 | $(LIBCAP_LIBS) | |
ca404e94 | 284 | |
f68a9074 PL |
285 | MANPAGES=dnsdist.1 |
286 | ||
287 | dist_man_MANS=$(MANPAGES) | |
288 | ||
20d81666 PL |
289 | if HAVE_VIRTUALENV |
290 | if !HAVE_MANPAGES | |
291 | $(MANPAGES): %: docs/manpages/%.rst .venv | |
292 | $(AM_V_GEN).venv/bin/python -msphinx -b man docs . $< | |
293 | endif # if !HAVE_MANPAGES | |
294 | ||
295 | .venv: docs/requirements.txt | |
296 | virtualenv .venv | |
29455e8a | 297 | .venv/bin/pip install -U pip setuptools setuptools-git |
20d81666 PL |
298 | .venv/bin/pip install -r $< |
299 | ||
300 | latex/dnsdist.pdf: docs/** .venv | |
301 | .venv/bin/python -msphinx -M latexpdf docs . | |
302 | ||
303 | dnsdist.pdf: latex/dnsdist.pdf | |
304 | mv $< $@ | |
305 | ||
306 | html-docs.tar.bz2: html-docs | |
307 | tar cjf $@ $< | |
308 | ||
309 | html-docs: docs/** .venv | |
310 | .venv/bin/python -msphinx -b html docs html-docs | |
311 | ||
312 | all-docs: html-docs html-docs.tar.bz2 dnsdist.pdf | |
313 | ||
314 | upload-docs: all-docs | |
60c95446 PL |
315 | rsync -crv --delete --no-p --chmod=g=rwX --exclude '*~' ./html-docs/ web1.powerdns.com:/srv/www/dnsdist.org |
316 | rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./html-docs.tar.bz2 web1.powerdns.com:/srv/www/dnsdist.org | |
317 | rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./dnsdist.pdf web1.powerdns.com:/srv/www/dnsdist.org | |
20d81666 PL |
318 | |
319 | else # if HAVE_VIRTUALENV | |
f68a9074 | 320 | $(MANPAGES): |
20d81666 PL |
321 | @echo "You need virtualenv to generate the manpages" |
322 | exit 1 | |
323 | ||
324 | html-docs: %: docs/manpages/%.rst .venv | |
325 | @echo "You need virtualenv to generate the HTML documentation" | |
326 | exit 1 | |
327 | ||
328 | dnsdist.pdf: | |
329 | @echo "You need virtualenv to generate the pdf documentation" | |
f68a9074 | 330 | exit 1 |
f68a9074 | 331 | endif |
6ab65223 PL |
332 | |
333 | if HAVE_SYSTEMD | |
334 | dnsdist.service: dnsdist.service.in | |
335 | $(AM_V_GEN)sed -e 's![@]bindir[@]!$(bindir)!' < $< > $@ | |
a3dfb540 | 336 | if !HAVE_SYSTEMD_LOCK_PERSONALITY |
6992cb2d | 337 | $(AM_V_GEN)perl -ni -e 'print unless /^LockPersonality/' $@ |
a3dfb540 RG |
338 | endif |
339 | if !HAVE_SYSTEMD_PRIVATE_DEVICES | |
6992cb2d | 340 | $(AM_V_GEN)perl -ni -e 'print unless /^PrivateDevices/' $@ |
a3dfb540 RG |
341 | endif |
342 | if !HAVE_SYSTEMD_PRIVATE_TMP | |
6992cb2d | 343 | $(AM_V_GEN)perl -ni -e 'print unless /^PrivateTmp/' $@ |
a3dfb540 RG |
344 | endif |
345 | if !HAVE_SYSTEMD_PROTECT_CONTROL_GROUPS | |
6992cb2d | 346 | $(AM_V_GEN)perl -ni -e 'print unless /^ProtectControlGroups/' $@ |
a3dfb540 RG |
347 | endif |
348 | if !HAVE_SYSTEMD_PROTECT_HOME | |
6992cb2d | 349 | $(AM_V_GEN)perl -ni -e 'print unless /^ProtectHome/' $@ |
a3dfb540 RG |
350 | endif |
351 | if !HAVE_SYSTEMD_PROTECT_KERNEL_MODULES | |
6992cb2d | 352 | $(AM_V_GEN)perl -ni -e 'print unless /^ProtectKernelModules/' $@ |
a3dfb540 RG |
353 | endif |
354 | if !HAVE_SYSTEMD_PROTECT_KERNEL_TUNABLES | |
6992cb2d | 355 | $(AM_V_GEN)perl -ni -e 'print unless /^ProtectKernelTunables/' $@ |
a3dfb540 RG |
356 | endif |
357 | if !HAVE_SYSTEMD_PROTECT_SYSTEM | |
6992cb2d | 358 | $(AM_V_GEN)perl -ni -e 'print unless /^ProtectSystem/' $@ |
a3dfb540 RG |
359 | endif |
360 | if !HAVE_SYSTEMD_RESTRICT_ADDRESS_FAMILIES | |
6992cb2d | 361 | $(AM_V_GEN)perl -ni -e 'print unless /^RestrictAddressFamilies/' $@ |
a3dfb540 RG |
362 | endif |
363 | if !HAVE_SYSTEMD_RESTRICT_NAMESPACES | |
6992cb2d | 364 | $(AM_V_GEN)perl -ni -e 'print unless /^RestrictNamespaces/' $@ |
a3dfb540 RG |
365 | endif |
366 | if !HAVE_SYSTEMD_RESTRICT_REALTIME | |
6992cb2d | 367 | $(AM_V_GEN)perl -ni -e 'print unless /^RestrictRealtime/' $@ |
a3dfb540 RG |
368 | endif |
369 | if !HAVE_SYSTEMD_SYSTEM_CALL_ARCHITECTURES | |
6992cb2d | 370 | $(AM_V_GEN)perl -ni -e 'print unless /^SystemCallArchitectures/' $@ |
a3dfb540 RG |
371 | endif |
372 | if !HAVE_SYSTEMD_SYSTEM_CALL_FILTER | |
6992cb2d | 373 | $(AM_V_GEN)perl -ni -e 'print unless /^SystemCallFilter/' $@ |
a3dfb540 | 374 | endif |
6ab65223 | 375 | |
aa663221 PL |
376 | dnsdist@.service: dnsdist.service |
377 | $(AM_V_GEN)sed -e 's!/dnsdist !&--config $(sysconfdir)/dnsdist-%i.conf !' < $< >$@ | |
378 | ||
6ab65223 PL |
379 | systemdsystemunitdir = $(SYSTEMD_DIR) |
380 | ||
381 | systemdsystemunit_DATA = \ | |
aa663221 PL |
382 | dnsdist.service \ |
383 | dnsdist@.service | |
50169e30 CH |
384 | |
385 | CLEANFILES += \ | |
386 | dnsdist.service \ | |
387 | dnsdist@.service | |
6ab65223 | 388 | endif |
65613131 PL |
389 | |
390 | if !HAVE_LUA_HPP | |
391 | include lua_hpp.mk | |
392 | endif |