]> git.ipfire.org Git - thirdparty/pdns.git/blame - pdns/recursordist/Makefile.am
rec: Add support for loading the Public Suffix List from a file
[thirdparty/pdns.git] / pdns / recursordist / Makefile.am
CommitLineData
23448838 1JSON11_LIBS = $(top_srcdir)/ext/json11/libjson11.la
af1377b7 2PROBDS_LIBS = $(top_srcdir)/ext/probds/libprobds.la
0c6f6275 3
a94c1476 4AM_CPPFLAGS = $(LUA_CFLAGS) $(YAHTTP_CFLAGS) $(BOOST_CPPFLAGS) $(LIBSODIUM_CFLAGS) $(NET_SNMP_CFLAGS) $(SANITIZER_FLAGS) -O3 -Wall -pthread -DSYSCONFDIR=\"${sysconfdir}\" $(SYSTEMD_CFLAGS)
0c6f6275
PL
5
6AM_CPPFLAGS += \
7 -I$(top_srcdir)/ext/json11 \
aac75773 8 $(YAHTTP_CFLAGS) \
74d83458 9 $(LIBCRYPTO_INCLUDES)
0c6f6275
PL
10
11AM_CXXFLAGS = \
12 -DSYSCONFDIR=\"$(sysconfdir)\" \
13 -DPKGLIBDIR=\"$(pkglibdir)\" \
b7b7c32f
NC
14 -DLOCALSTATEDIR=\"$(socketdir)\"
15
16if NOD_ENABLED
17AM_CXXFLAGS += \
af1377b7 18 -DNODCACHEDIR=\"$(nodcachedir)\"
b7b7c32f 19endif
0c6f6275
PL
20
21AM_LDFLAGS = \
22 $(PROGRAM_LDFLAGS) \
23 $(THREADFLAGS)
24
25ACLOCAL_AMFLAGS = -I m4
26
56872c22
PL
27BUILT_SOURCES=htmlfiles.h \
28 dnslabeltext.cc
29
48a44e8b
PL
30CLEANFILES = htmlfiles.h \
31 dnsmessage.pb.cc \
50169e30
CH
32 dnsmessage.pb.h \
33 recursor.conf-dist
642339d8 34
35htmlfiles.h: html/*
36 ./incfiles > $@
37
0c6f6275
PL
38SUBDIRS=ext
39
40if LUA
41AM_CPPFLAGS +=$(LUA_CFLAGS)
42endif
43
44EXTRA_DIST = \
7676c316 45 contrib/* \
190aaf91 46 COPYING \
0c6f6275
PL
47 devpollmplexer.cc \
48 dnslabeltext.cc \
49 dnslabeltext.rl \
aa7929a3 50 dnsmessage.proto \
0c6f6275
PL
51 effective_tld_names.dat \
52 epollmplexer.cc \
53 kqueuemplexer.cc \
e10b6528 54 lua_hpp.mk \
0c6f6275 55 malloctrace.cc malloctrace.hh \
265ff1c3 56 mkpubsuffixcc \
0c6f6275 57 mtasker.cc \
a7303306 58 mtasker_fcontext.cc mtasker_ucontext.cc \
190aaf91 59 NOTICE \
0c6f6275 60 opensslsigners.hh opensslsigners.cc \
0c6f6275 61 portsmplexer.cc \
218feb9d 62 rrd/* \
4ff58b75 63 html incfiles \
759196e1 64 test_libcrypto \
4368d62f 65 pdns-recursor.service.in \
8670e40d
PL
66 RECURSOR-MIB.txt \
67 builder-support/gen-version
0c6f6275 68
223bb49e
PL
69dist-hook:
70 for file in $$(find $(distdir)/docs -type l); do \
71 t=`stat -c%N $$file | awk '{print $$NF}' | sed "s/'//g"` ; \
72 ln -fs ../$$t $$file; \
73 done
74
0c6f6275
PL
75sbin_PROGRAMS = pdns_recursor
76bin_PROGRAMS = rec_control
77
759196e1
PL
78TESTS=test_libcrypto
79
35d883a8
RG
80if UNIT_TESTS
81noinst_PROGRAMS = testrunner
82TESTS_ENVIRONMENT = env BOOST_TEST_LOG_LEVEL=message SRCDIR='$(srcdir)'
759196e1 83TESTS += testrunner
35d883a8
RG
84else
85check-local:
86 @echo "Unit tests are not enabled"
87 @echo "Run ./configure --enable-unit-tests"
88endif
89
0c6f6275
PL
90pdns_recursor_SOURCES = \
91 arguments.cc \
6ee9a5a2 92 ascii.hh \
0c6f6275
PL
93 base32.cc base32.hh \
94 base64.cc base64.hh \
95 cachecleaner.hh \
96 comment.hh \
97 dns.hh dns.cc \
98 dns_random.hh dns_random.cc \
99 dnsbackend.hh \
100 dnslabeltext.cc \
101 dnsname.cc dnsname.hh \
102 dnspacket.hh \
103 dnsparser.hh dnsparser.cc \
104 dnsrecords.cc dnsrecords.hh \
105 dnssecinfra.hh dnssecinfra.cc \
106 dnsseckeeper.hh \
107 dnswriter.cc dnswriter.hh \
5c3b5e7f 108 ednsoptions.cc ednsoptions.hh \
0c6f6275
PL
109 ednssubnet.cc ednssubnet.hh \
110 filterpo.cc filterpo.hh \
85c7ca75 111 gettime.cc gettime.hh \
0c6f6275
PL
112 gss_context.cc gss_context.hh \
113 iputils.hh iputils.cc \
114 ixfr.cc ixfr.hh \
115 json.cc json.hh \
5cf909f3 116 lazy_allocator.hh \
0c6f6275
PL
117 lock.hh \
118 logger.hh logger.cc \
70c21c40 119 lua-base4.cc lua-base4.hh \
0c6f6275 120 lua-recursor4.cc lua-recursor4.hh \
70fb28d9 121 lua-recursor4-ffi.hh \
0c6f6275
PL
122 lwres.cc lwres.hh \
123 misc.hh misc.cc \
124 mplexer.hh \
125 mtasker.hh \
5ab14378 126 mtasker_context.cc mtasker_context.hh \
0c6f6275 127 namespaces.hh \
39ce10b2 128 negcache.hh negcache.cc \
0c6f6275 129 nsecrecords.cc \
04c74848 130 opensslsigners.cc opensslsigners.hh \
bf269e28 131 packetcache.hh \
0c6f6275
PL
132 pdns_recursor.cc \
133 pdnsexception.hh \
926444e2 134 pollmplexer.cc \
d9d3f9c1 135 protobuf.cc protobuf.hh \
0c6f6275 136 pubsuffix.hh pubsuffix.cc \
d6f3fcfa 137 pubsuffixloader.cc \
0c6f6275 138 qtype.hh qtype.cc \
0c6f6275
PL
139 rcpgenerator.cc rcpgenerator.hh \
140 rec-carbon.cc \
141 rec-lua-conf.hh rec-lua-conf.cc \
d9d3f9c1 142 rec-protobuf.cc rec-protobuf.hh \
d705aad9 143 rec-snmp.hh rec-snmp.cc \
0c6f6275
PL
144 rec_channel.cc rec_channel.hh \
145 rec_channel_rec.cc \
146 recpacketcache.cc recpacketcache.hh \
147 recursor_cache.cc recursor_cache.hh \
148 reczones.cc \
aa7929a3 149 remote_logger.cc remote_logger.hh \
0c6f6275 150 resolver.hh resolver.cc \
4898a348 151 resolve-context.hh \
0c6f6275 152 responsestats.hh responsestats.cc \
10c96475 153 root-addresses.hh \
f2234140 154 root-dnssec.hh \
0c6f6275
PL
155 rpzloader.cc rpzloader.hh \
156 secpoll-recursor.cc \
157 secpoll-recursor.hh \
0c6f6275
PL
158 sholder.hh \
159 sillyrecords.cc \
d705aad9 160 snmp-agent.hh snmp-agent.cc \
0c6f6275
PL
161 sortlist.cc sortlist.hh \
162 sstuff.hh \
af1377b7 163 stable-bloom.hh \
0c6f6275 164 syncres.cc syncres.hh \
519f5484 165 threadname.hh threadname.cc \
60a1c204 166 tsigverifier.cc tsigverifier.hh \
0c6f6275
PL
167 ueberbackend.hh \
168 unix_utility.cc \
169 utility.hh \
170 validate.cc validate.hh validate-recursor.cc validate-recursor.hh \
171 version.cc version.hh \
172 webserver.cc webserver.hh \
173 ws-api.cc ws-api.hh \
174 ws-recursor.cc ws-recursor.hh \
5cc8371b 175 xpf.cc xpf.hh \
0c6f6275
PL
176 zoneparser-tng.cc zoneparser-tng.hh
177
e10b6528
PL
178if !HAVE_LUA_HPP
179BUILT_SOURCES += lua.hpp
180nodist_pdns_recursor_SOURCES = lua.hpp
181CLEANFILES += lua.hpp
182endif
183
0c6f6275
PL
184pdns_recursor_LDADD = \
185 $(YAHTTP_LIBS) \
04c74848 186 $(JSON11_LIBS) \
74d83458 187 $(LIBCRYPTO_LIBS) \
6b6720de 188 $(BOOST_CONTEXT_LIBS) \
d705aad9 189 $(NET_SNMP_LIBS) \
21b338e8 190 $(SYSTEMD_LIBS) \
af1377b7 191 $(RT_LIBS) \
af1377b7
NC
192 $(BOOST_SYSTEM_LIBS) \
193 $(PROBDS_LIBS)
0c6f6275 194
04c74848 195pdns_recursor_LDFLAGS = $(AM_LDFLAGS) \
af1377b7 196 $(LIBCRYPTO_LDFLAGS) $(BOOST_CONTEXT_LDFLAGS) \
b7b7c32f
NC
197 $(BOOST_SYSTEM_LDFLAGS)
198
199if NOD_ENABLED
200pdns_recursor_SOURCES += nod.hh nod.cc
201pdns_recursor_LDADD += \
202 $(BOOST_FILESYSTEM_LIBS)
203pdns_recursor_LDFLAGS += \
204 $(BOOST_FILESYSTEM_LDFLAGS)
205endif
0c6f6275 206
35d883a8
RG
207testrunner_SOURCES = \
208 arguments.cc \
209 base32.cc \
210 base64.cc base64.hh \
211 dns.cc dns.hh \
05739b0e 212 dns_random.cc dns_random.hh \
35d883a8
RG
213 dnslabeltext.cc \
214 dnsname.cc dnsname.hh \
215 dnsparser.hh dnsparser.cc \
216 dnsrecords.cc \
217 dnssecinfra.cc \
8455425c 218 dnsseckeeper.hh \
35d883a8 219 dnswriter.cc dnswriter.hh \
00b8cadc 220 ednscookies.cc ednscookies.hh \
35d883a8
RG
221 ednsoptions.cc ednsoptions.hh \
222 ednssubnet.cc ednssubnet.hh \
30ee601a 223 filterpo.cc filterpo.hh \
35d883a8
RG
224 gettime.cc gettime.hh \
225 gss_context.cc gss_context.hh \
226 iputils.cc iputils.hh \
e503653f 227 ixfr.cc ixfr.hh \
35d883a8
RG
228 logger.cc logger.hh \
229 misc.cc misc.hh \
2eca39af 230 mtasker_context.cc \
39ce10b2 231 negcache.hh negcache.cc \
35d883a8
RG
232 namespaces.hh \
233 nsecrecords.cc \
234 pdnsexception.hh \
8455425c 235 opensslsigners.cc opensslsigners.hh \
35d883a8
RG
236 protobuf.cc protobuf.hh \
237 qtype.cc qtype.hh \
238 rcpgenerator.cc \
35d883a8 239 rec-protobuf.cc rec-protobuf.hh \
30ee601a
RG
240 recpacketcache.cc recpacketcache.hh \
241 recursor_cache.cc recursor_cache.hh \
35d883a8 242 responsestats.cc \
30ee601a 243 root-dnssec.hh \
35d883a8
RG
244 sillyrecords.cc \
245 sholder.hh \
246 sstuff.hh \
af1377b7 247 stable-bloom.hh \
30ee601a 248 syncres.cc syncres.hh \
35d883a8
RG
249 test-arguments_cc.cc \
250 test-base32_cc.cc \
251 test-base64_cc.cc \
e503653f 252 test-common.hh \
35d883a8
RG
253 test-dnsrecordcontent.cc \
254 test-dns_random_hh.cc \
255 test-dnsname_cc.cc \
256 test-dnsparser_hh.cc \
257 test-dnsrecords_cc.cc \
00b8cadc 258 test-ednsoptions_cc.cc \
35d883a8 259 test-iputils_hh.cc \
e503653f 260 test-ixfr_cc.cc \
35d883a8 261 test-misc_hh.cc \
7346028e 262 test-mtasker.cc \
c8cb955a 263 test-negcache_cc.cc \
08b02366 264 test-packetcache_hh.cc \
35d883a8
RG
265 test-rcpgenerator_cc.cc \
266 test-recpacketcache_cc.cc \
941db220 267 test-recursorcache_cc.cc \
620d4801 268 test-signers.cc \
30ee601a 269 test-syncres_cc.cc \
35d883a8 270 test-tsig.cc \
5cc8371b 271 test-xpf_cc.cc \
35d883a8 272 testrunner.cc \
dc825c63 273 threadname.hh threadname.cc \
e503653f 274 tsigverifier.cc tsigverifier.hh \
35d883a8 275 unix_utility.cc \
30ee601a
RG
276 validate.cc validate.hh \
277 validate-recursor.cc validate-recursor.hh \
5cc8371b 278 xpf.cc xpf.hh \
35d883a8
RG
279 zoneparser-tng.cc zoneparser-tng.hh
280
281testrunner_LDFLAGS = \
282 $(AM_LDFLAGS) \
7346028e 283 $(BOOST_CONTEXT_LDFLAGS) \
35d883a8 284 $(BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS) \
af1377b7 285 $(LIBCRYPTO_LDFLAGS) \
af1377b7 286 $(BOOST_SYSTEM_LDFLAGS)
35d883a8
RG
287
288testrunner_LDADD = \
7346028e 289 $(BOOST_CONTEXT_LIBS) \
35d883a8
RG
290 $(BOOST_UNIT_TEST_FRAMEWORK_LIBS) \
291 $(LIBCRYPTO_LIBS) \
af1377b7 292 $(RT_LIBS) \
af1377b7
NC
293 $(BOOST_SYSTEM_LIBS) \
294 $(PROBDS_LIBS)
35d883a8 295
b7b7c32f
NC
296if NOD_ENABLED
297testrunner_SOURCES += nod.hh nod.cc \
298 test-nod_cc.cc
299
300testrunner_LDADD += \
301 $(BOOST_FILESYSTEM_LIBS)
302testrunner_LDFLAGS += \
303 $(BOOST_FILESYSTEM_LDFLAGS)
304endif
305
d1b28475
KM
306if LIBSODIUM
307pdns_recursor_SOURCES += \
308 sodiumsigners.cc
309pdns_recursor_LDADD += $(LIBSODIUM_LIBS)
8455425c
RG
310testrunner_SOURCES += \
311 sodiumsigners.cc
312testrunner_LDADD += $(LIBSODIUM_LIBS)
d1b28475
KM
313endif
314
21a8834a
KM
315if LIBDECAF
316pdns_recursor_SOURCES += \
317 decafsigners.cc
318pdns_recursor_LDADD += $(LIBDECAF_LIBS)
319endif
320
0c6f6275
PL
321if MALLOC_TRACE
322pdns_recursor_SOURCES += \
323 malloctrace.cc \
324 malloctrace.hh
325pdns_recursor_LDFLAGS += -rdynamic
326endif
327
328if LUA
329pdns_recursor_LDADD += $(LUA_LIBS)
330endif
331
332if HAVE_FREEBSD
333pdns_recursor_SOURCES += kqueuemplexer.cc
334endif
335
336if HAVE_LINUX
337pdns_recursor_SOURCES += epollmplexer.cc
338endif
339
340if HAVE_SOLARIS
341pdns_recursor_SOURCES += \
342 devpollmplexer.cc \
343 portsmplexer.cc
344endif
345
48a44e8b
PL
346if HAVE_PROTOBUF
347if HAVE_PROTOC
aa7929a3 348dnsmessage.pb.cc: dnsmessage.proto
48a44e8b 349 $(AM_V_GEN)$(PROTOC) --cpp_out=./ $<
aa7929a3 350
aa7929a3
RG
351BUILT_SOURCES += dnsmessage.pb.cc
352pdns_recursor_LDADD += $(PROTOBUF_LIBS)
353nodist_pdns_recursor_SOURCES = dnsmessage.pb.cc dnsmessage.pb.h
48a44e8b 354pdns_recursor.$(OBJEXT): dnsmessage.pb.cc
35d883a8
RG
355
356nodist_testrunner_SOURCES = dnsmessage.pb.cc dnsmessage.pb.h
357testrunner_LDADD += $(PROTOBUF_LIBS)
358testrunner$(OBJEXT): dnsmessage.pb.cc
359
48a44e8b 360endif
aa7929a3
RG
361endif
362
0c6f6275
PL
363rec_control_SOURCES = \
364 arguments.cc arguments.hh \
365 dnsname.hh dnsname.cc \
366 dnslabeltext.cc \
367 logger.cc \
368 misc.cc \
369 qtype.cc \
370 rec_channel.cc rec_channel.hh \
371 rec_control.cc \
0c6f6275
PL
372 unix_utility.cc
373
374dnslabeltext.cc: dnslabeltext.rl
375 $(AM_V_GEN)$(RAGEL) $< -o dnslabeltext.cc
376
377curl_verbose = $(curl_verbose_$(V))
378curl_verbose_ = $(curl_verbose_$(AM_DEFAULT_VERBOSITY))
379curl_verbose_0 = @echo " CURL " $@;
380$(srcdir)/effective_tld_names.dat:
2603a63d 381 $(curl_verbose)if ! curl -s -S https://publicsuffix.org/list/public_suffix_list.dat > $@; then rm -f $@; exit 1; fi
0c6f6275
PL
382
383pubsuffix.cc: $(srcdir)/effective_tld_names.dat
384 $(AM_V_GEN)./mkpubsuffixcc
385
2f0d6d58
PL
386## Config file
387sysconf_DATA = recursor.conf-dist
388
389recursor.conf-dist: pdns_recursor
390 $(AM_V_GEN)./pdns_recursor --config > $@
391
392## Manpages
0c6f6275
PL
393MANPAGES=pdns_recursor.1 \
394 rec_control.1
395
223bb49e 396dist_man_MANS=$(MANPAGES)
0c6f6275 397
223bb49e
PL
398if HAVE_VIRTUALENV
399if !HAVE_MANPAGES
f52b0223 400$(MANPAGES): %: docs/manpages/%.rst .venv
223bb49e
PL
401 .venv/bin/python -msphinx -b man docs . $<
402endif # if !HAVE_MANPAGES
403
404.venv: docs/requirements.txt
405 virtualenv .venv
b13febd7 406 .venv/bin/pip install -U pip setuptools setuptools-git
223bb49e
PL
407 .venv/bin/pip install -r docs/requirements.txt
408
409html-docs: docs/** .venv
410 .venv/bin/python -msphinx -b html docs html-docs
411
412latex/PowerDNS-Recursor.pdf: docs/** .venv
413 .venv/bin/python -msphinx -M latexpdf docs .
414
415PowerDNS-Recursor.pdf: latex/PowerDNS-Recursor.pdf
416 mv $< $@
417
418html-docs.tar.bz2: html-docs
419 tar cjf $@ $<
420
421all-docs: PowerDNS-Recursor.pdf html-docs html-docs.tar.bz2
422
423upload-docs: all-docs
424 rsync -crv --delete --no-p --chmod=g=rwX --exclude '*~' ./html-docs/ web1.powerdns.com:/srv/www/doc.powerdns.com/recursor/
425 rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./html-docs.tar.bz2 web1.powerdns.com:/srv/www/doc.powerdns.com/recursor/
426 rsync -crv --no-p --chmod=g=rwX --exclude '*~' ./PowerDNS-Recursor.pdf web1.powerdns.com:/srv/www/doc.powerdns.com/recursor/
427
428else # if HAVE_VIRTUALENV
0c6f6275 429$(MANPAGES):
223bb49e
PL
430 echo "You need virtualenv to generate the manpages"
431 exit 1
432
433PowerDNS-Recursor.pdf:
434 echo "You need virtualenv to generate the PDF"
435 exit 1
436
437html-docs:
438 echo "You need virtualenv to generate the HTML docs"
0c6f6275
PL
439 exit 1
440endif
4ff58b75
PL
441
442if HAVE_SYSTEMD
443pdns-recursor.service: pdns-recursor.service.in
444 $(AM_V_GEN)sed -e 's![@]sbindir[@]!$(sbindir)!' < $< > $@
445
a67f98c2
PL
446pdns-recursor@.service: pdns-recursor.service
447 $(AM_V_GEN)sed -e 's!/pdns_recursor!& --config-name=%i!' \
448 -e 's!Recursor!& %i!' \
449 < $< > $@
450
4ff58b75
PL
451systemdsystemunitdir = $(SYSTEMD_DIR)
452
453systemdsystemunit_DATA = \
a67f98c2
PL
454 pdns-recursor.service \
455 pdns-recursor@.service
50169e30
CH
456
457CLEANFILES += \
458 pdns-recursor.service \
459 pdns-recursor@.service
460
4ff58b75 461endif
e10b6528
PL
462
463if !HAVE_LUA_HPP
464include lua_hpp.mk
465endif