1 AM_CPPFLAGS += $(SYSTEMD_CFLAGS) $(LUA_CFLAGS) $(LIBEDIT_CFLAGS) $(LIBSODIUM_CFLAGS) $(FSTRM_CFLAGS) $(YAHTTP_CFLAGS) $(SANITIZER_FLAGS) $(NET_SNMP_CFLAGS) -DSYSCONFDIR=\"${sysconfdir}\"
3 ACLOCAL_AMFLAGS = -I m4
15 dnslabeltext.cc: dnslabeltext.rl
16 $(AM_V_GEN)$(RAGEL) $< -o dnslabeltext.cc
18 BUILT_SOURCES=htmlfiles.h \
21 htmlfiles.h: $(srcdir)/html/*
22 $(AM_V_GEN)$(srcdir)/incfiles $(srcdir) > $@.tmp
25 SRC_JS_FILES := $(wildcard src_js/*.js)
26 MIN_JS_FILES := $(patsubst src_js/%.js,html/js/%.min.js,$(SRC_JS_FILES))
28 html/js/%.min.js: src_js/%.js
31 min_js: $(MIN_JS_FILES)
34 AM_CPPFLAGS += $(RE2_CFLAGS)
39 AM_CPPFLAGS += $(LIBSSL_CFLAGS)
43 AM_CPPFLAGS += $(GNUTLS_CFLAGS)
53 delaypipe.cc delaypipe.hh \
56 ext/incbin/UNLICENSE \
61 bpf-filter.main.ebpf \
62 bpf-filter.qname.ebpf \
69 builder-support/gen-version
71 bin_PROGRAMS = dnsdist
74 noinst_PROGRAMS = testrunner
75 TESTS_ENVIRONMENT = env BOOST_TEST_LOG_LEVEL=message SRCDIR='$(srcdir)'
79 @echo "Unit tests are not enabled"
80 @echo "Run ./configure --enable-unit-tests"
83 dnsdist-web.$(OBJEXT): htmlfiles.h
88 bpf-filter.cc bpf-filter.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 \
96 dnsdist-console.cc dnsdist-console.hh \
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 \
110 dnsdist-secpoll.cc dnsdist-secpoll.hh \
111 dnsdist-snmp.cc dnsdist-snmp.hh \
115 dnsname.cc dnsname.hh \
116 dnsparser.hh dnsparser.cc \
117 dnswriter.cc dnswriter.hh \
119 ednsoptions.cc ednsoptions.hh \
120 ednscookies.cc ednscookies.hh \
121 ednssubnet.cc ednssubnet.hh \
122 fstrm_logger.cc fstrm_logger.hh \
123 gettime.cc gettime.hh \
125 iputils.cc iputils.hh \
131 protobuf.cc protobuf.hh \
132 dnstap.cc dnstap.hh \
134 remote_logger.cc remote_logger.hh \
137 snmp-agent.cc snmp-agent.hh \
138 sodcrypto.cc sodcrypto.hh \
140 statnode.cc statnode.hh \
141 tcpiohandler.cc tcpiohandler.hh \
142 threadname.hh threadname.cc \
144 ext/luawrapper/include/LuaContext.hpp \
145 ext/json11/json11.cpp \
146 ext/json11/json11.hpp \
147 ext/incbin/incbin.h \
167 dnsdist_LDADD += $(RE2_LIBS)
172 dnsdist_LDADD += -lgnutls
176 dnsdist_LDADD += $(LIBSSL_LIBS) $(LIBCRYPTO_LIBS)
181 BUILT_SOURCES += lua.hpp
182 nodist_dnsdist_SOURCES = lua.hpp
183 CLEANFILES += lua.hpp
188 dnsmessage.pb.cc: dnsmessage.proto
189 $(AM_V_GEN)$(PROTOC) -I$(srcdir) --cpp_out=./ $<
191 dnstap.pb.cc: dnstap.proto
192 $(AM_V_GEN)$(PROTOC) -I$(srcdir) --cpp_out=./ $<
194 BUILT_SOURCES += dnsmessage.pb.cc dnstap.pb.cc
196 nodist_dnsdist_SOURCES = dnsmessage.pb.cc dnsmessage.pb.h dnstap.pb.cc dnstap.pb.h
197 dnsdist_LDADD += $(PROTOBUF_LIBS)
199 dnsdist.$(OBJEXT): dnsmessage.pb.cc dnstap.pb.cc
204 dnsdist_SOURCES += kqueuemplexer.cc
208 dnsdist_SOURCES += epollmplexer.cc
217 testrunner_SOURCES = \
221 test-delaypipe_hh.cc \
222 test-dnscrypt_cc.cc \
224 test-dnsdistdynblocks_hh.cc \
225 test-dnsdistpacketcache_cc.cc \
226 test-dnsdistrings_cc.cc \
227 test-dnsdistrules_cc.cc \
228 test-dnsparser_cc.cc \
232 dnsdist-cache.cc dnsdist-cache.hh \
233 dnsdist-ecs.cc dnsdist-ecs.hh \
234 dnscrypt.cc dnscrypt.hh \
236 dnsname.cc dnsname.hh \
237 dnsparser.hh dnsparser.cc \
238 dnswriter.cc dnswriter.hh \
240 ednsoptions.cc ednsoptions.hh \
241 ednscookies.cc ednscookies.hh \
242 ednssubnet.cc ednssubnet.hh \
243 gettime.cc gettime.hh \
244 iputils.cc iputils.hh \
252 threadname.hh threadname.cc \
256 testrunner_LDFLAGS = \
259 $(BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS) \
263 $(BOOST_UNIT_TEST_FRAMEWORK_LIBS) \
271 dist_man_MANS=$(MANPAGES)
275 $(MANPAGES): %: docs/manpages/%.rst .venv
276 $(AM_V_GEN).venv/bin/python -msphinx -b man docs . $<
277 endif # if !HAVE_MANPAGES
279 .venv: docs/requirements.txt
281 .venv/bin/pip install -U pip setuptools setuptools-git
282 .venv/bin/pip install -r $<
284 latex/dnsdist.pdf: docs/** .venv
285 .venv/bin/python -msphinx -M latexpdf docs .
287 dnsdist.pdf: latex/dnsdist.pdf
290 html-docs.tar.bz2: html-docs
293 html-docs: docs/** .venv
294 .venv/bin/python -msphinx -b html docs html-docs
296 all-docs: html-docs html-docs.tar.bz2 dnsdist.pdf
298 upload-docs: all-docs
299 rsync -crv --delete --no-p --chmod=g=rwX --exclude '*~' ./html-docs/ web1.powerdns.com:/srv/www/dnsdist.org
300 rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./html-docs.tar.bz2 web1.powerdns.com:/srv/www/dnsdist.org
301 rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./dnsdist.pdf web1.powerdns.com:/srv/www/dnsdist.org
303 else # if HAVE_VIRTUALENV
305 @echo "You need virtualenv to generate the manpages"
308 html-docs: %: docs/manpages/%.rst .venv
309 @echo "You need virtualenv to generate the HTML documentation"
313 @echo "You need virtualenv to generate the pdf documentation"
318 dnsdist.service: dnsdist.service.in
319 $(AM_V_GEN)sed -e 's![@]bindir[@]!$(bindir)!' < $< > $@
321 dnsdist@.service: dnsdist.service
322 $(AM_V_GEN)sed -e 's!/dnsdist !&--config $(sysconfdir)/dnsdist-%i.conf !' < $< >$@
324 systemdsystemunitdir = $(SYSTEMD_DIR)
326 systemdsystemunit_DATA = \