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