1 AM_CPPFLAGS += $(SYSTEMD_CFLAGS) $(LUA_CFLAGS) $(LIBEDIT_CFLAGS) $(LIBSODIUM_CFLAGS) $(FSTRM_CFLAGS) $(YAHTTP_CFLAGS) $(SANITIZER_FLAGS) $(NET_SNMP_CFLAGS) $(LIBCAP_CFLAGS) -DSYSCONFDIR=\"${sysconfdir}\"
3 ACLOCAL_AMFLAGS = -I m4
16 dnslabeltext.cc: dnslabeltext.rl
17 $(AM_V_GEN)$(RAGEL) $< -o dnslabeltext.cc
19 BUILT_SOURCES=htmlfiles.h \
22 htmlfiles.h: $(srcdir)/html/*
23 $(AM_V_GEN)$(srcdir)/incfiles $(srcdir) > $@.tmp
26 SRC_JS_FILES := $(wildcard src_js/*.js)
27 MIN_JS_FILES := $(patsubst src_js/%.js,html/js/%.min.js,$(SRC_JS_FILES))
29 html/js/%.min.js: src_js/%.js
32 min_js: $(MIN_JS_FILES)
35 AM_CPPFLAGS += $(RE2_CFLAGS)
40 AM_CPPFLAGS += $(LIBSSL_CFLAGS)
44 AM_CPPFLAGS += $(GNUTLS_CFLAGS)
49 AM_CPPFLAGS += $(LIBCRYPTO_INCLUDES)
53 AM_CPPFLAGS += $(CDB_CFLAGS)
57 AM_CPPFLAGS += $(LMDB_CFLAGS)
60 if HAVE_DNS_OVER_HTTPS
62 AM_CPPFLAGS += $(LIBSSL_CFLAGS)
66 AM_CPPFLAGS += $(LIBH2OEVLOOP_CFLAGS)
76 delaypipe.cc delaypipe.hh \
79 ext/incbin/UNLICENSE \
84 bpf-filter.main.ebpf \
85 bpf-filter.qname.ebpf \
93 ext/lmdb-safe/lmdb-safe.cc ext/lmdb-safe/lmdb-safe.hh \
94 builder-support/gen-version
96 bin_PROGRAMS = dnsdist
99 noinst_PROGRAMS = testrunner
100 TESTS_ENVIRONMENT = env BOOST_TEST_LOG_LEVEL=message SRCDIR='$(srcdir)'
104 @echo "Unit tests are not enabled"
105 @echo "Run ./configure --enable-unit-tests"
108 dnsdist-web.$(OBJEXT): htmlfiles.h
113 bpf-filter.cc bpf-filter.hh \
115 capabilities.cc capabilities.hh \
118 dnscrypt.cc dnscrypt.hh \
119 dnsdist.cc dnsdist.hh \
120 dnsdist-dynbpf.cc dnsdist-dynbpf.hh \
121 dnsdist-cache.cc dnsdist-cache.hh \
123 dnsdist-console.cc dnsdist-console.hh \
124 dnsdist-dnscrypt.cc \
125 dnsdist-dynblocks.cc dnsdist-dynblocks.hh \
126 dnsdist-ecs.cc dnsdist-ecs.hh \
127 dnsdist-healthchecks.cc dnsdist-healthchecks.hh \
129 dnsdist-kvs.hh dnsdist-kvs.cc \
130 dnsdist-lua.hh dnsdist-lua.cc \
131 dnsdist-lua-actions.cc \
132 dnsdist-lua-bindings.cc \
133 dnsdist-lua-bindings-dnscrypt.cc \
134 dnsdist-lua-bindings-dnsquestion.cc \
135 dnsdist-lua-bindings-kvs.cc \
136 dnsdist-lua-bindings-packetcache.cc \
137 dnsdist-lua-bindings-protobuf.cc \
138 dnsdist-lua-inspection.cc \
139 dnsdist-lua-inspection-ffi.cc dnsdist-lua-inspection-ffi.hh \
140 dnsdist-lua-rules.cc \
141 dnsdist-lua-vars.cc \
142 dnsdist-prometheus.hh \
143 dnsdist-protobuf.cc dnsdist-protobuf.hh \
144 dnsdist-rings.cc dnsdist-rings.hh \
146 dnsdist-secpoll.cc dnsdist-secpoll.hh \
147 dnsdist-snmp.cc dnsdist-snmp.hh \
150 dnsdist-xpf.cc dnsdist-xpf.hh \
152 dnsname.cc dnsname.hh \
153 dnsparser.hh dnsparser.cc \
154 dnswriter.cc dnswriter.hh \
157 ednsoptions.cc ednsoptions.hh \
158 ednscookies.cc ednscookies.hh \
159 ednssubnet.cc ednssubnet.hh \
160 fstrm_logger.cc fstrm_logger.hh \
161 gettime.cc gettime.hh \
163 iputils.cc iputils.hh \
164 libssl.cc libssl.hh \
170 protobuf.cc protobuf.hh \
171 dnstap.cc dnstap.hh \
173 remote_logger.cc remote_logger.hh \
176 snmp-agent.cc snmp-agent.hh \
177 sodcrypto.cc sodcrypto.hh \
179 statnode.cc statnode.hh \
180 tcpiohandler.cc tcpiohandler.hh \
181 threadname.hh threadname.cc \
182 uuid-utils.hh uuid-utils.cc \
184 ext/luawrapper/include/LuaContext.hpp \
185 ext/json11/json11.cpp \
186 ext/json11/json11.hpp \
187 ext/incbin/incbin.h \
190 testrunner_SOURCES = \
194 test-delaypipe_hh.cc \
195 test-dnscrypt_cc.cc \
197 test-dnsdistdynblocks_hh.cc \
198 test-dnsdistkvs_cc.cc \
199 test-dnsdistpacketcache_cc.cc \
200 test-dnsdistrings_cc.cc \
201 test-dnsdistrules_cc.cc \
202 test-dnsparser_cc.cc \
208 dnsdist-cache.cc dnsdist-cache.hh \
209 dnsdist-dynblocks.cc dnsdist-dynblocks.hh \
210 dnsdist-ecs.cc dnsdist-ecs.hh \
211 dnsdist-kvs.cc dnsdist-kvs.hh \
213 dnsdist-xpf.cc dnsdist-xpf.hh \
214 dnscrypt.cc dnscrypt.hh \
216 dnsname.cc dnsname.hh \
217 dnsparser.hh dnsparser.cc \
218 dnswriter.cc dnswriter.hh \
220 ednsoptions.cc ednsoptions.hh \
221 ednscookies.cc ednscookies.hh \
222 ednssubnet.cc ednssubnet.hh \
223 gettime.cc gettime.hh \
224 iputils.cc iputils.hh \
233 statnode.cc statnode.hh \
234 threadname.hh threadname.cc \
256 testrunner_LDFLAGS = \
259 $(BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS) \
263 $(BOOST_UNIT_TEST_FRAMEWORK_LIBS) \
271 dnsdist_LDADD += $(CDB_LDFLAGS) $(CDB_LIBS)
272 testrunner_LDADD += $(CDB_LDFLAGS) $(CDB_LIBS)
273 dnsdist_SOURCES += cdb.cc cdb.hh
274 testrunner_SOURCES += cdb.cc cdb.hh
278 dnsdist_LDADD += $(RE2_LIBS)
282 dnsdist_LDADD += $(LIBSSL_LIBS)
286 dnsdist_LDADD += $(LIBCRYPTO_LDFLAGS) $(LIBCRYPTO_LIBS)
287 dnsdist_SOURCES += ipcipher.cc ipcipher.hh
291 dnsdist_LDADD += $(LMDB_LDFLAGS) $(LMDB_LIBS)
292 testrunner_LDADD += $(LMDB_LDFLAGS) $(LMDB_LIBS)
293 dnsdist_SOURCES += ext/lmdb-safe/lmdb-safe.cc ext/lmdb-safe/lmdb-safe.hh
294 testrunner_SOURCES += ext/lmdb-safe/lmdb-safe.cc ext/lmdb-safe/lmdb-safe.hh
299 dnsdist_LDADD += -lgnutls
303 if HAVE_DNS_OVER_HTTPS
306 dnsdist_LDADD += $(LIBH2OEVLOOP_LIBS)
312 BUILT_SOURCES += lua.hpp
313 nodist_dnsdist_SOURCES = lua.hpp
314 CLEANFILES += lua.hpp
319 dnsmessage.pb.cc: dnsmessage.proto
320 $(AM_V_GEN)$(PROTOC) -I$(srcdir) --cpp_out=./ $<
322 dnstap.pb.cc: dnstap.proto
323 $(AM_V_GEN)$(PROTOC) -I$(srcdir) --cpp_out=./ $<
325 BUILT_SOURCES += dnsmessage.pb.cc dnstap.pb.cc
327 nodist_dnsdist_SOURCES = dnsmessage.pb.cc dnsmessage.pb.h dnstap.pb.cc dnstap.pb.h
328 dnsdist_LDADD += $(PROTOBUF_LIBS)
330 dnsdist.$(OBJEXT): dnsmessage.pb.cc dnstap.pb.cc
335 dnsdist_SOURCES += kqueuemplexer.cc
336 testrunner_SOURCES += kqueuemplexer.cc
340 dnsdist_SOURCES += epollmplexer.cc
341 testrunner_SOURCES += epollmplexer.cc
348 testrunner_SOURCES += \
355 dist_man_MANS=$(MANPAGES)
359 $(MANPAGES): %: docs/manpages/%.rst .venv
360 $(AM_V_GEN).venv/bin/python -msphinx -b man docs . $<
361 endif # if !HAVE_MANPAGES
363 .venv: docs/requirements.txt
365 .venv/bin/pip install -U pip setuptools setuptools-git
366 .venv/bin/pip install -r $<
368 latex/dnsdist.pdf: docs/** .venv
369 .venv/bin/python -msphinx -M latexpdf docs .
371 dnsdist.pdf: latex/dnsdist.pdf
374 html-docs.tar.bz2: html-docs
377 html-docs: docs/** .venv
378 .venv/bin/python -msphinx -b html docs html-docs
380 all-docs: html-docs html-docs.tar.bz2 dnsdist.pdf
382 upload-docs: all-docs
383 rsync -crv --delete --no-p --chmod=g=rwX --exclude '*~' ./html-docs/ web1.powerdns.com:/srv/www/dnsdist.org
384 rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./html-docs.tar.bz2 web1.powerdns.com:/srv/www/dnsdist.org
385 rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./dnsdist.pdf web1.powerdns.com:/srv/www/dnsdist.org
387 else # if HAVE_VIRTUALENV
389 @echo "You need virtualenv to generate the manpages"
392 html-docs: %: docs/manpages/%.rst .venv
393 @echo "You need virtualenv to generate the HTML documentation"
397 @echo "You need virtualenv to generate the pdf documentation"
402 dnsdist.service: dnsdist.service.in
403 $(AM_V_GEN)sed -e 's![@]bindir[@]!$(bindir)!' < $< > $@
404 if !HAVE_SYSTEMD_LOCK_PERSONALITY
405 $(AM_V_GEN)perl -ni -e 'print unless /^LockPersonality/' $@
407 if !HAVE_SYSTEMD_PRIVATE_DEVICES
408 $(AM_V_GEN)perl -ni -e 'print unless /^PrivateDevices/' $@
410 if !HAVE_SYSTEMD_PRIVATE_TMP
411 $(AM_V_GEN)perl -ni -e 'print unless /^PrivateTmp/' $@
413 if !HAVE_SYSTEMD_PROTECT_CONTROL_GROUPS
414 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectControlGroups/' $@
416 if !HAVE_SYSTEMD_PROTECT_HOME
417 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectHome/' $@
419 if !HAVE_SYSTEMD_PROTECT_KERNEL_MODULES
420 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectKernelModules/' $@
422 if !HAVE_SYSTEMD_PROTECT_KERNEL_TUNABLES
423 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectKernelTunables/' $@
425 if !HAVE_SYSTEMD_PROTECT_SYSTEM
426 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectSystem/' $@
428 if !HAVE_SYSTEMD_RESTRICT_ADDRESS_FAMILIES
429 $(AM_V_GEN)perl -ni -e 'print unless /^RestrictAddressFamilies/' $@
431 if !HAVE_SYSTEMD_RESTRICT_NAMESPACES
432 $(AM_V_GEN)perl -ni -e 'print unless /^RestrictNamespaces/' $@
434 if !HAVE_SYSTEMD_RESTRICT_REALTIME
435 $(AM_V_GEN)perl -ni -e 'print unless /^RestrictRealtime/' $@
437 if !HAVE_SYSTEMD_SYSTEM_CALL_ARCHITECTURES
438 $(AM_V_GEN)perl -ni -e 'print unless /^SystemCallArchitectures/' $@
440 if !HAVE_SYSTEMD_SYSTEM_CALL_FILTER
441 $(AM_V_GEN)perl -ni -e 'print unless /^SystemCallFilter/' $@
444 dnsdist@.service: dnsdist.service
445 $(AM_V_GEN)sed -e 's!/dnsdist !&--config $(sysconfdir)/dnsdist-%i.conf !' < $< >$@
447 systemdsystemunitdir = $(SYSTEMD_DIR)
449 systemdsystemunit_DATA = \