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