]> git.ipfire.org Git - thirdparty/pdns.git/blob - pdns/Makefile.am
Merge pull request #13164 from fredmorcos/bindlexer-use-c++-header
[thirdparty/pdns.git] / pdns / Makefile.am
1 JSON11_LIBS = $(top_builddir)/ext/json11/libjson11.la
2 ARC4RANDOM_LIBS = $(top_builddir)/ext/arc4random/libarc4random.la
3
4 AM_CPPFLAGS += \
5 -I$(top_srcdir)/ext/json11 \
6 $(YAHTTP_CFLAGS) \
7 $(LIBEDIT_CFLAGS) \
8 $(LIBCRYPTO_INCLUDES) \
9 $(SYSTEMD_CFLAGS) \
10 $(YAML_CFLAGS) \
11 -I$(top_srcdir)/ext/protozero/include \
12 -DBOOST_CONTAINER_USE_STD_EXCEPTIONS
13
14 AM_CXXFLAGS = \
15 -DSYSCONFDIR=\"$(sysconfdir)\" \
16 -DPKGLIBDIR=\"$(pkglibdir)\" \
17 -DLOCALSTATEDIR=\"$(socketdir)\"
18
19 AM_LDFLAGS = \
20 $(PROGRAM_LDFLAGS) \
21 $(LIBCRYPTO_LIBS) \
22 $(ARC4RANDOM_LIBS) \
23 $(THREADFLAGS)
24
25 AM_LFLAGS = -i
26 AM_YFLAGS = -d --verbose --debug
27
28 if PKCS11
29 AM_CPPFLAGS += $(P11KIT1_CFLAGS)
30 endif
31
32 if SQLITE3
33 AM_CPPFLAGS += $(SQLITE3_CFLAGS)
34 endif
35
36 if LUA
37 AM_CPPFLAGS +=$(LUA_CFLAGS)
38 endif
39
40 if GSS_TSIG
41 AM_CPPFLAGS +=$(GSS_CFLAGS)
42 endif
43
44 if LIBSODIUM
45 AM_CPPFLAGS +=$(LIBSODIUM_CFLAGS)
46 endif
47
48 if LIBDECAF
49 AM_CPPFLAGS += $(LIBDECAF_CFLAGS)
50 endif
51
52 EXTRA_DIST = \
53 dnslabeltext.rl \
54 dnslabeltext.cc \
55 dnsmessage.proto \
56 mtasker.cc \
57 inflighter.cc \
58 bindparser.hh \
59 named.conf.parsertest \
60 pdns.service.in \
61 ixfrdist.service.in \
62 ixfrdist.example.yml \
63 lua-record.cc \
64 minicurl.cc \
65 minicurl.hh \
66 api-swagger.yaml \
67 api-swagger.json \
68 requirements.txt \
69 incfiles \
70 convert-yaml-to-json.py
71
72 BUILT_SOURCES = \
73 bind-dnssec.schema.sqlite3.sql.h \
74 bindparser.hh \
75 dnslabeltext.cc \
76 apidocfiles.h
77
78 CLEANFILES = \
79 *.gcda \
80 *.gcno \
81 *.gcov \
82 backends/gsql/gsqlbackend.gcda \
83 backends/gsql/gsqlbackend.gcno \
84 backends/gsql/gsqlbackend.gcov \
85 pdns.conf-dist \
86 apidocfiles.h
87
88 if !HAVE_API_SWAGGER_JSON
89 # don't clean these files if they were present
90 # at 'configure' time (e.g. from a source dist)
91 CLEANFILES += \
92 api-swagger.yaml \
93 api-swagger.json
94 endif
95
96 # use a $(wildcard) wrapper here to allow build to proceed if output
97 # file is present but input file is not (e.g. in a dist tarball)
98 api-swagger.yaml: $(wildcard ../docs/http-api/swagger/authoritative-api-swagger.yaml)
99 cp $< $@
100
101 if HAVE_VENV
102 api-swagger.json: api-swagger.yaml requirements.txt
103 $(PYTHON) -m venv .venv
104 .venv/bin/pip install -U pip setuptools setuptools-git wheel
105 .venv/bin/pip install -r requirements.txt
106 .venv/bin/python convert-yaml-to-json.py $< $@
107 else # if HAVE_VENV
108 if !HAVE_API_SWAGGER_JSON
109 api-swagger.json:
110 echo "You need Python 3 and the 'venv' module to generate the JSON API document"
111 exit 1
112 endif
113 endif
114
115 apidocfiles.h: api-swagger.yaml api-swagger.json
116 ./incfiles $^ > $@
117
118 sysconf_DATA = pdns.conf-dist
119
120 sbin_PROGRAMS = pdns_server
121 bin_PROGRAMS = \
122 pdns_control \
123 pdnsutil \
124 zone2sql \
125 zone2json
126
127 if TOOLS
128 bin_PROGRAMS += \
129 dnsgram \
130 dnspcap2calidns \
131 dnspcap2protobuf \
132 dnsreplay \
133 dnsscan \
134 dnsscope \
135 dnswasher \
136 dumresp \
137 pdns_notify \
138 nproxy \
139 nsec3dig \
140 saxfr \
141 stubquery \
142 ixplore \
143 sdig
144
145 bin_PROGRAMS += calidns
146
147 if HAVE_BOOST_GE_148
148 bin_PROGRAMS += \
149 dnsbulktest \
150 dnstcpbench
151 endif
152
153 endif # TOOLS
154
155 if IXFRDIST
156 bin_PROGRAMS += \
157 ixfrdist
158
159 sysconf_DATA += \
160 ixfrdist.example.yml
161 endif
162
163 EXTRA_PROGRAMS = \
164 calidns \
165 comfun \
166 dnsbulktest \
167 dnsdemog \
168 dnsgram \
169 dnspcap2calidns \
170 dnspcap2protobuf \
171 dnsreplay \
172 dnsscan \
173 dnsscope \
174 dnstcpbench \
175 dnswasher \
176 dumresp \
177 kvresp \
178 ixplore \
179 ixfrdist \
180 pdns_notify \
181 nproxy \
182 nsec3dig \
183 saxfr \
184 stubquery \
185 sdig \
186 speedtest \
187 testrunner \
188 tsig-tests \
189 zone2ldap
190
191 pdns_server_SOURCES = \
192 arguments.cc arguments.hh \
193 auth-caches.cc auth-caches.hh \
194 auth-carbon.cc \
195 auth-catalogzone.cc auth-catalogzone.hh \
196 auth-main.cc auth-main.hh \
197 auth-packetcache.cc auth-packetcache.hh \
198 auth-querycache.cc auth-querycache.hh \
199 auth-zonecache.cc auth-zonecache.hh \
200 axfr-retriever.cc axfr-retriever.hh \
201 backends/gsql/gsqlbackend.cc backends/gsql/gsqlbackend.hh \
202 backends/gsql/ssql.hh \
203 base32.cc base32.hh \
204 base64.cc base64.hh \
205 bind-dnssec.schema.sqlite3.sql.h \
206 bindlexer.l \
207 bindparser.cc \
208 burtle.hh \
209 cachecleaner.hh \
210 circular_buffer.hh \
211 comment.hh \
212 communicator.cc communicator.hh \
213 credentials.cc credentials.hh \
214 dbdnsseckeeper.cc \
215 digests.hh \
216 distributor.hh \
217 dns.cc dns.hh \
218 dns_random.hh \
219 dnsbackend.cc dnsbackend.hh \
220 dnslabeltext.cc \
221 dnsname.cc dnsname.hh \
222 dnspacket.cc dnspacket.hh \
223 dnsparser.cc \
224 dnsproxy.cc dnsproxy.hh \
225 dnsrecords.cc dnsrecords.hh \
226 dnssecinfra.cc dnssecinfra.hh \
227 dnsseckeeper.hh \
228 dnssecsigner.cc \
229 dnswriter.cc \
230 dynhandler.cc dynhandler.hh \
231 dynlistener.cc dynlistener.hh \
232 dynmessenger.hh \
233 ednscookies.cc ednscookies.hh \
234 ednsoptions.cc ednsoptions.hh \
235 ednssubnet.cc ednssubnet.hh \
236 gettime.cc gettime.hh \
237 gss_context.cc gss_context.hh \
238 histogram.hh \
239 iputils.cc iputils.hh \
240 ixfr.cc ixfr.hh \
241 json.cc json.hh \
242 lock.hh \
243 logger.cc logger.hh \
244 logging.hh \
245 lua-auth4.cc lua-auth4.hh \
246 lua-base4.cc lua-base4.hh \
247 mastercommunicator.cc \
248 misc.cc misc.hh \
249 nameserver.cc nameserver.hh \
250 namespaces.hh \
251 noinitvector.hh \
252 nsecrecords.cc \
253 opensslsigners.cc opensslsigners.hh \
254 packetcache.hh \
255 packethandler.cc packethandler.hh \
256 pdnsexception.hh \
257 proxy-protocol.cc proxy-protocol.hh \
258 qtype.cc qtype.hh \
259 query-local-address.hh query-local-address.cc \
260 rcpgenerator.cc \
261 resolver.cc resolver.hh \
262 responsestats.cc responsestats.hh responsestats-auth.cc \
263 rfc2136handler.cc \
264 secpoll-auth.cc secpoll-auth.hh \
265 secpoll.cc secpoll.hh \
266 serialtweaker.cc \
267 sha.hh \
268 shuffle.cc shuffle.hh \
269 signingpipe.cc signingpipe.hh \
270 sillyrecords.cc \
271 slavecommunicator.cc \
272 stat_t.hh \
273 statbag.cc statbag.hh \
274 stubresolver.cc stubresolver.hh \
275 svc-records.cc svc-records.hh \
276 tcpreceiver.cc tcpreceiver.hh \
277 threadname.hh threadname.cc \
278 tkey.cc \
279 trusted-notification-proxy.hh trusted-notification-proxy.cc \
280 tsigutils.hh tsigutils.cc \
281 tsigverifier.cc tsigverifier.hh \
282 ueberbackend.cc ueberbackend.hh \
283 unix_semaphore.cc \
284 unix_utility.cc \
285 utility.hh \
286 uuid-utils.hh uuid-utils.cc \
287 version.cc version.hh \
288 webserver.cc webserver.hh \
289 ws-api.cc ws-api.hh \
290 ws-auth.cc ws-auth.hh \
291 zoneparser-tng.cc
292
293 pdns_server_LDFLAGS = \
294 $(AM_LDFLAGS) \
295 $(DYNLINKFLAGS) \
296 $(LIBCRYPTO_LDFLAGS)
297
298 EXTRA_pdns_server_DEPENDENCIES = @moduleobjects@
299 pdns_server_LDADD = \
300 @moduleobjects@ \
301 @modulelibs@ \
302 $(LIBDL) \
303 $(YAHTTP_LIBS) \
304 $(JSON11_LIBS) \
305 $(LIBCRYPTO_LIBS) \
306 $(SYSTEMD_LIBS)
307
308 if HAVE_LUA_RECORDS
309 pdns_server_SOURCES += lua-record.cc minicurl.cc minicurl.hh
310 pdns_server_LDADD += $(LIBCURL)
311 endif
312
313 if LIBSODIUM
314 pdns_server_SOURCES += sodiumsigners.cc
315 pdns_server_LDADD += $(LIBSODIUM_LIBS)
316 endif
317
318 if LIBDECAF
319 pdns_server_SOURCES += decafsigners.cc
320 pdns_server_LDADD += $(LIBDECAF_LIBS)
321 endif
322
323 if SQLITE3
324 pdns_server_SOURCES += ssqlite3.cc ssqlite3.hh
325 pdns_server_LDADD += $(SQLITE3_LIBS)
326 endif
327
328 if PKCS11
329 pdns_server_SOURCES += pkcs11signers.cc pkcs11signers.hh
330 pdns_server_LDADD += $(P11KIT1_LIBS)
331 endif
332
333 if LUA
334 pdns_server_LDADD += $(LUA_LIBS)
335 endif
336
337 if GSS_TSIG
338 pdns_server_LDADD += $(GSS_LIBS)
339 endif
340
341 pdnsutil_SOURCES = \
342 arguments.cc \
343 auth-caches.cc auth-caches.hh \
344 auth-catalogzone.cc auth-catalogzone.hh \
345 auth-packetcache.cc auth-packetcache.hh \
346 auth-querycache.cc auth-querycache.hh \
347 auth-zonecache.cc auth-zonecache.hh \
348 backends/gsql/gsqlbackend.cc backends/gsql/gsqlbackend.hh \
349 backends/gsql/ssql.hh \
350 base32.cc \
351 base64.cc base64.hh \
352 bindlexer.l \
353 bindparser.yy \
354 cachecleaner.hh \
355 circular_buffer.hh \
356 credentials.cc credentials.hh \
357 dbdnsseckeeper.cc \
358 dns.cc \
359 dnsbackend.cc \
360 dnslabeltext.cc \
361 dnsname.cc dnsname.hh \
362 dnspacket.cc \
363 dnsparser.cc dnsparser.hh \
364 dnsrecords.cc \
365 dnssecinfra.cc dnssecinfra.hh \
366 dnssecsigner.cc \
367 dnswriter.cc dnswriter.hh \
368 dynlistener.cc \
369 ednscookies.cc ednscookies.hh \
370 ednsoptions.cc ednsoptions.hh \
371 ednssubnet.cc \
372 gettime.cc gettime.hh \
373 gss_context.cc gss_context.hh \
374 ipcipher.cc ipcipher.hh \
375 iputils.cc iputils.hh \
376 json.cc \
377 logger.cc \
378 lua-auth4.cc lua-auth4.hh \
379 lua-base4.cc lua-base4.hh \
380 misc.cc misc.hh \
381 nsecrecords.cc \
382 opensslsigners.cc opensslsigners.hh \
383 pdnsutil.cc \
384 qtype.cc \
385 rcpgenerator.cc rcpgenerator.hh \
386 serialtweaker.cc \
387 shuffle.cc shuffle.hh \
388 signingpipe.cc \
389 sillyrecords.cc \
390 sstuff.hh \
391 statbag.cc \
392 stubresolver.cc stubresolver.hh \
393 svc-records.cc svc-records.hh \
394 threadname.hh threadname.cc \
395 tsigutils.hh tsigutils.cc \
396 ueberbackend.cc \
397 unix_utility.cc \
398 uuid-utils.hh uuid-utils.cc \
399 validate.hh \
400 zonemd.hh zonemd.cc \
401 zoneparser-tng.cc
402
403 pdnsutil_LDFLAGS = \
404 $(AM_LDFLAGS) \
405 $(DYNLINKFLAGS) \
406 $(BOOST_PROGRAM_OPTIONS_LDFLAGS) \
407 $(LIBCRYPTO_LDFLAGS)
408
409 EXTRA_pdnsutil_DEPENDENCIES = @moduleobjects@
410 pdnsutil_LDADD = \
411 @moduleobjects@ \
412 @modulelibs@ \
413 $(YAHTTP_LIBS) \
414 $(JSON11_LIBS) \
415 $(LIBDL) \
416 $(BOOST_PROGRAM_OPTIONS_LIBS) \
417 $(LIBCRYPTO_LIBS) \
418 $(IPCRYPT_LIBS)
419
420 if LIBSODIUM
421 pdnsutil_SOURCES += sodiumsigners.cc
422 pdnsutil_LDADD += $(LIBSODIUM_LIBS)
423 endif
424
425 if LIBDECAF
426 pdnsutil_SOURCES += decafsigners.cc
427 pdnsutil_LDADD += $(LIBDECAF_LIBS)
428 endif
429
430 if SQLITE3
431 pdnsutil_SOURCES += ssqlite3.cc ssqlite3.hh
432 pdnsutil_LDADD += $(SQLITE3_LIBS)
433 endif
434
435 if PKCS11
436 pdnsutil_SOURCES += pkcs11signers.cc pkcs11signers.hh
437 pdnsutil_LDADD += $(P11KIT1_LIBS)
438 endif
439
440 if LUA
441 pdnsutil_LDADD += $(LUA_LIBS)
442 endif
443
444 if GSS_TSIG
445 pdnsutil_LDADD += $(GSS_LIBS)
446 endif
447
448 zone2sql_SOURCES = \
449 arguments.cc \
450 base32.cc \
451 base64.cc \
452 bind-dnssec.schema.sqlite3.sql.h \
453 bindlexer.l \
454 bindparser.yy \
455 bindparserclasses.hh \
456 dns.cc \
457 dnslabeltext.cc \
458 dnsname.cc dnsname.hh \
459 dnsparser.cc \
460 dnsrecords.cc \
461 dnswriter.cc \
462 json.cc json.hh \
463 logger.cc \
464 misc.cc \
465 nsecrecords.cc \
466 qtype.cc \
467 rcpgenerator.cc \
468 sillyrecords.cc \
469 statbag.cc \
470 svc-records.cc svc-records.hh \
471 unix_utility.cc \
472 zone2sql.cc \
473 zoneparser-tng.cc
474
475 zone2sql_LDADD = $(LIBCRYPTO_LIBS) $(JSON11_LIBS)
476 zone2sql_LDFLAGS = $(AM_LDFLAGS) $(LIBCRYPTO_LDFLAGS)
477
478 zone2json_SOURCES = \
479 arguments.cc \
480 base32.cc \
481 base64.cc \
482 bind-dnssec.schema.sqlite3.sql.h \
483 bindlexer.l \
484 bindparser.yy \
485 bindparserclasses.hh \
486 dnslabeltext.cc \
487 dnsname.cc dnsname.hh \
488 dnsparser.cc \
489 dnsrecords.cc \
490 dnswriter.cc \
491 logger.cc \
492 misc.cc \
493 nsecrecords.cc \
494 qtype.cc \
495 rcpgenerator.cc \
496 sillyrecords.cc \
497 statbag.cc \
498 svc-records.cc svc-records.hh \
499 unix_utility.cc \
500 zone2json.cc \
501 zoneparser-tng.cc
502
503 zone2json_LDADD = $(LIBCRYPTO_LIBS) $(JSON11_LIBS)
504 zone2json_LDFLAGS = $(AM_LDFLAGS) $(LIBCRYPTO_LDFLAGS)
505
506 # pkglib_LTLIBRARIES = iputils.la
507 # iputils_la_SOURCES = lua-iputils.cc
508 # iputils_la_LDFLAGS= -module -avoid-version
509
510 if LDAP
511 bin_PROGRAMS += zone2ldap
512 endif
513
514 zone2ldap_SOURCES = \
515 arguments.cc \
516 base32.cc \
517 base64.cc \
518 bind-dnssec.schema.sqlite3.sql.h \
519 bindlexer.l \
520 bindparser.yy \
521 bindparserclasses.hh \
522 dnslabeltext.cc \
523 dnsname.cc dnsname.hh \
524 dnsparser.cc \
525 dnsrecords.cc \
526 dnswriter.cc \
527 logger.cc \
528 misc.cc \
529 nsecrecords.cc \
530 qtype.cc \
531 rcpgenerator.cc \
532 sillyrecords.cc \
533 statbag.cc \
534 svc-records.cc svc-records.hh \
535 unix_utility.cc \
536 zone2ldap.cc \
537 zoneparser-tng.cc
538
539 zone2ldap_LDADD = $(LIBCRYPTO_LIBS)
540 zone2ldap_LDFLAGS = $(AM_LDFLAGS) $(LIBCRYPTO_LDFLAGS)
541
542 if GSS_TSIG
543 zone2ldap_LDADD += $(GSS_LIBS)
544 endif
545
546 sdig_SOURCES = \
547 base32.cc \
548 base64.cc base64.hh \
549 dns.cc \
550 dnslabeltext.cc \
551 dnsname.cc dnsname.hh \
552 dnsparser.cc dnsparser.hh \
553 dnsrecords.cc \
554 dnswriter.cc dnswriter.hh \
555 dolog.hh \
556 ednssubnet.cc iputils.cc \
557 libssl.cc libssl.hh \
558 logger.cc \
559 misc.cc misc.hh \
560 nsecrecords.cc \
561 proxy-protocol.cc proxy-protocol.hh \
562 qtype.cc \
563 rcpgenerator.cc rcpgenerator.hh \
564 sdig.cc \
565 sillyrecords.cc \
566 sstuff.hh \
567 statbag.cc \
568 svc-records.cc svc-records.hh \
569 tcpiohandler.cc tcpiohandler.hh \
570 unix_utility.cc
571
572 sdig_CPPFLAGS = $(AM_CPPFLAGS)
573 sdig_LDADD = $(LIBCRYPTO_LIBS)
574 sdig_LDFLAGS = $(AM_LDFLAGS) $(LIBCRYPTO_LDFLAGS)
575
576 if HAVE_LIBCURL
577 sdig_SOURCES += minicurl.cc minicurl.hh
578 sdig_LDADD += $(LIBCURL)
579 endif
580
581 if HAVE_DNS_OVER_TLS
582
583 if HAVE_GNUTLS
584 sdig_CPPFLAGS += $(GNUTLS_CFLAGS)
585 sdig_LDADD += -lgnutls
586 endif
587
588 if HAVE_LIBSSL
589 sdig_CPPFLAGS += $(LIBSSL_CFLAGS)
590 sdig_LDADD += $(LIBSSL_LIBS)
591 endif
592
593 if LIBSODIUM
594 sdig_CPPFLAGS +=$(LIBSODIUM_CFLAGS)
595 sdig_LDADD += $(LIBSODIUM_LIBS)
596 endif
597
598 endif
599
600 calidns_SOURCES = \
601 base32.cc \
602 base64.cc base64.hh \
603 calidns.cc \
604 dns_random.hh \
605 dnslabeltext.cc \
606 dnsname.cc dnsname.hh \
607 dnsparser.cc dnsparser.hh \
608 dnsrecords.cc \
609 dnswriter.cc dnswriter.hh \
610 ednsoptions.cc ednsoptions.hh \
611 ednssubnet.cc ednssubnet.hh \
612 iputils.cc \
613 logger.cc \
614 misc.cc misc.hh \
615 nsecrecords.cc \
616 qtype.cc \
617 rcpgenerator.cc rcpgenerator.hh \
618 sillyrecords.cc \
619 sstuff.hh \
620 statbag.cc \
621 svc-records.cc svc-records.hh \
622 unix_utility.cc
623
624 calidns_LDADD = $(LIBCRYPTO_LIBS) \
625 $(BOOST_PROGRAM_OPTIONS_LIBS)
626 calidns_LDFLAGS = $(AM_LDFLAGS) $(THREADFLAGS) $(LIBCRYPTO_LDFLAGS) \
627 $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
628
629 dumresp_SOURCES = \
630 dnslabeltext.cc \
631 dnsname.cc dnsname.hh \
632 dumresp.cc \
633 iputils.cc iputils.hh \
634 logger.cc \
635 misc.cc misc.hh \
636 qtype.cc \
637 statbag.cc \
638 unix_utility.cc
639
640 dumresp_LDFLAGS = $(AM_LDFLAGS) $(LIBCRYPTO_LDFLAGS)
641
642 kvresp_SOURCES = \
643 dnslabeltext.cc dnsname.cc dnsname.hh \
644 kvresp.cc \
645 logger.cc \
646 misc.cc misc.hh \
647 qtype.cc \
648 statbag.cc \
649 unix_utility.cc
650
651 stubquery_SOURCES = \
652 arguments.cc arguments.hh \
653 base32.cc \
654 base64.cc \
655 dnslabeltext.cc \
656 dnsname.cc \
657 dnsparser.cc \
658 dnsrecords.cc \
659 dnswriter.cc \
660 iputils.cc \
661 logger.cc \
662 misc.cc \
663 nsecrecords.cc \
664 qtype.cc \
665 rcpgenerator.cc \
666 sillyrecords.cc \
667 statbag.cc \
668 stubquery.cc \
669 stubresolver.cc stubresolver.hh \
670 svc-records.cc svc-records.hh \
671 unix_utility.cc
672
673 stubquery_LDADD = $(LIBCRYPTO_LIBS)
674 stubquery_LDFLAGS = $(AM_LDFLAGS) $(LIBCRYPTO_LDFLAGS)
675
676 saxfr_SOURCES = \
677 base32.cc \
678 base64.cc base64.hh \
679 dns_random.hh \
680 dnslabeltext.cc \
681 dnsname.cc dnsname.hh \
682 dnsparser.cc dnsparser.hh \
683 dnsrecords.cc \
684 dnssecinfra.cc \
685 dnswriter.cc dnswriter.hh \
686 gss_context.cc gss_context.hh \
687 iputils.cc \
688 logger.cc \
689 misc.cc misc.hh \
690 nsecrecords.cc \
691 qtype.cc \
692 rcpgenerator.cc rcpgenerator.hh \
693 saxfr.cc \
694 sillyrecords.cc \
695 sstuff.hh \
696 statbag.cc \
697 svc-records.cc svc-records.hh \
698 unix_utility.cc
699
700 saxfr_LDADD = $(LIBCRYPTO_LIBS)
701 saxfr_LDFLAGS = $(AM_LDFLAGS) $(LIBCRYPTO_LDFLAGS)
702
703 if PKCS11
704 saxfr_SOURCES += pkcs11signers.cc pkcs11signers.hh
705 saxfr_LDADD += $(P11KIT1_LIBS)
706 endif
707
708 if GSS_TSIG
709 saxfr_LDADD += $(GSS_LIBS)
710 endif
711
712 ixfrdist_SOURCES = \
713 arguments.cc \
714 axfr-retriever.cc \
715 base32.cc \
716 base64.cc base64.hh \
717 credentials.cc credentials.hh \
718 dns.cc \
719 dns_random.hh \
720 dnslabeltext.cc \
721 dnsname.cc dnsname.hh \
722 dnsparser.cc dnsparser.hh \
723 dnsrecords.cc \
724 dnssecinfra.cc \
725 dnswriter.cc dnswriter.hh \
726 gss_context.cc gss_context.hh \
727 iputils.hh iputils.cc \
728 ixfr.cc ixfr.hh \
729 ixfrdist-stats.hh ixfrdist-stats.cc \
730 ixfrdist-web.hh ixfrdist-web.cc \
731 ixfrdist.cc \
732 ixfrutils.cc ixfrutils.hh \
733 logger.cc logger.hh\
734 misc.cc misc.hh \
735 mplexer.hh \
736 nsecrecords.cc \
737 pollmplexer.cc \
738 qtype.cc \
739 query-local-address.hh query-local-address.cc \
740 rcpgenerator.cc rcpgenerator.hh \
741 resolver.cc \
742 sillyrecords.cc \
743 sstuff.hh \
744 statbag.cc \
745 svc-records.cc svc-records.hh \
746 threadname.hh threadname.cc \
747 tsigverifier.cc tsigverifier.hh \
748 unix_utility.cc \
749 uuid-utils.hh uuid-utils.cc \
750 webserver.hh webserver.cc \
751 zoneparser-tng.cc
752
753 ixfrdist_LDADD = \
754 $(BOOST_PROGRAM_OPTIONS_LIBS) \
755 $(JSON11_LIBS) \
756 $(LIBCRYPTO_LIBS) \
757 $(YAHTTP_LIBS) \
758 $(YAML_LIBS)
759
760 ixfrdist_LDFLAGS = \
761 $(AM_LDFLAGS) \
762 $(BOOST_PROGRAM_OPTIONS_LDFLAGS) \
763 $(LIBCRYPTO_LDFLAGS)
764
765 if LIBSODIUM
766 ixfrdist_LDADD += $(LIBSODIUM_LIBS)
767 endif
768
769 if PKCS11
770 ixfrdist_SOURCES += pkcs11signers.cc pkcs11signers.hh
771 ixfrdist_LDADD += $(P11KIT1_LIBS)
772 endif
773
774 if GSS_TSIG
775 ixfrdist_LDADD += $(GSS_LIBS)
776 endif
777
778
779 ixplore_SOURCES = \
780 arguments.cc \
781 axfr-retriever.cc \
782 base32.cc \
783 base64.cc base64.hh \
784 dns.cc \
785 dns_random.hh \
786 dnslabeltext.cc \
787 dnsname.cc dnsname.hh \
788 dnsparser.cc dnsparser.hh \
789 dnsrecords.cc \
790 dnssecinfra.cc \
791 dnswriter.cc dnswriter.hh \
792 gss_context.cc gss_context.hh \
793 iputils.cc \
794 ixfr.cc ixfr.hh \
795 ixfrutils.cc ixfrutils.hh \
796 ixplore.cc \
797 logger.cc \
798 misc.cc misc.hh \
799 nsecrecords.cc \
800 qtype.cc \
801 query-local-address.hh query-local-address.cc \
802 rcpgenerator.cc rcpgenerator.hh \
803 resolver.cc \
804 sillyrecords.cc \
805 sstuff.hh \
806 statbag.cc \
807 svc-records.cc svc-records.hh \
808 tsigverifier.cc tsigverifier.hh \
809 unix_utility.cc zoneparser-tng.cc
810
811 ixplore_LDADD = $(LIBCRYPTO_LIBS)
812 ixplore_LDFLAGS = $(AM_LDFLAGS) $(LIBCRYPTO_LDFLAGS)
813 if GSS_TSIG
814 ixplore_LDADD += $(GSS_LIBS)
815 endif
816
817 if PKCS11
818 ixplore_SOURCES += pkcs11signers.cc pkcs11signers.hh
819 ixplore_LDADD += $(P11KIT1_LIBS)
820 endif
821
822 dnstcpbench_SOURCES = \
823 base32.cc \
824 base64.cc base64.hh \
825 dnslabeltext.cc \
826 dnsname.cc dnsname.hh \
827 dnsparser.cc dnsparser.hh \
828 dnsrecords.cc \
829 dnstcpbench.cc \
830 dnswriter.cc dnswriter.hh \
831 iputils.cc \
832 logger.cc \
833 misc.cc misc.hh \
834 nsecrecords.cc \
835 qtype.cc \
836 rcpgenerator.cc rcpgenerator.hh \
837 sillyrecords.cc \
838 sstuff.hh \
839 statbag.cc \
840 svc-records.cc svc-records.hh \
841 threadname.hh threadname.cc \
842 unix_utility.cc
843
844 dnstcpbench_LDFLAGS = \
845 $(AM_LDFLAGS) \
846 $(LIBCRYPTO_LDFLAGS) \
847 $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
848
849 dnstcpbench_LDADD = \
850 $(LIBCRYPTO_LIBS) \
851 $(BOOST_PROGRAM_OPTIONS_LIBS)
852
853 nsec3dig_SOURCES = \
854 base32.cc \
855 base64.cc base64.hh \
856 dnslabeltext.cc \
857 dnsname.cc dnsname.hh \
858 dnsparser.cc dnsparser.hh \
859 dnsrecords.cc \
860 dnssecinfra.cc \
861 dnswriter.cc dnswriter.hh \
862 gss_context.cc gss_context.hh \
863 iputils.cc \
864 logger.cc \
865 misc.cc misc.hh \
866 nsec3dig.cc \
867 nsecrecords.cc \
868 qtype.cc \
869 rcpgenerator.cc rcpgenerator.hh \
870 sillyrecords.cc \
871 sstuff.hh \
872 statbag.cc \
873 svc-records.cc svc-records.hh \
874 unix_utility.cc
875
876
877 nsec3dig_LDADD = $(LIBCRYPTO_LIBS)
878 nsec3dig_LDFLAGS = $(AM_LDFLAGS) $(LIBCRYPTO_LDFLAGS)
879
880 if GSS_TSIG
881 nsec3dig_LDADD += $(GSS_LIBS)
882 endif
883
884 if PKCS11
885 nsec3dig_SOURCES += pkcs11signers.cc pkcs11signers.hh
886 nsec3dig_LDADD += $(P11KIT1_LIBS)
887 endif
888
889 tsig_tests_SOURCES = \
890 arguments.cc \
891 axfr-retriever.cc \
892 base32.cc \
893 base64.cc base64.hh \
894 digests.hh \
895 dns.cc \
896 dns_random.hh \
897 dnslabeltext.cc \
898 dnsname.cc dnsname.hh \
899 dnsparser.cc dnsparser.hh \
900 dnsrecords.cc \
901 dnssecinfra.cc \
902 dnswriter.cc dnswriter.hh \
903 gss_context.cc gss_context.hh \
904 iputils.cc \
905 logger.cc \
906 misc.cc misc.hh \
907 nsecrecords.cc \
908 qtype.cc \
909 query-local-address.cc \
910 rcpgenerator.cc rcpgenerator.hh \
911 resolver.cc \
912 sillyrecords.cc \
913 sstuff.hh \
914 statbag.cc \
915 svc-records.cc svc-records.hh \
916 tsig-tests.cc \
917 tsigverifier.cc tsigverifier.hh \
918 unix_utility.cc
919
920 tsig_tests_LDADD = $(LIBCRYPTO_LIBS)
921 tsig_tests_LDFLAGS = $(AM_LDFLAGS) $(LIBCRYPTO_LDFLAGS)
922
923 if PKCS11
924 tsig_tests_SOURCES += pkcs11signers.cc pkcs11signers.hh
925 tsig_tests_LDADD += $(P11KIT1_LIBS)
926 endif
927
928 speedtest_SOURCES = \
929 arguments.cc arguments.hh \
930 base32.cc \
931 base64.cc base64.hh \
932 credentials.cc credentials.hh \
933 dns_random.hh \
934 dnslabeltext.cc \
935 dnsname.cc dnsname.hh \
936 dnsparser.cc dnsparser.hh \
937 dnsrecords.cc \
938 dnssecinfra.cc dnssecinfra.hh \
939 dnswriter.cc dnswriter.hh \
940 gss_context.cc gss_context.hh \
941 iputils.cc \
942 logger.cc \
943 misc.cc misc.hh \
944 nsecrecords.cc \
945 qtype.cc \
946 rcpgenerator.cc rcpgenerator.hh \
947 sillyrecords.cc \
948 speedtest.cc \
949 statbag.cc \
950 svc-records.cc svc-records.hh \
951 unix_utility.cc \
952 uuid-utils.cc
953
954 speedtest_LDFLAGS = $(AM_LDFLAGS) $(LIBCRYPTO_LDFLAGS)
955 speedtest_LDADD = $(LIBCRYPTO_LIBS) \
956 $(RT_LIBS)
957
958 dnswasher_SOURCES = \
959 base64.cc \
960 dnslabeltext.cc \
961 dnsname.hh dnsname.cc \
962 dnsparser.hh \
963 dnspcap.cc dnspcap.hh \
964 dnswasher.cc \
965 dnswriter.hh \
966 ipcipher.cc ipcipher.hh \
967 logger.cc \
968 misc.cc \
969 qtype.cc \
970 statbag.cc \
971 unix_utility.cc
972
973 dnswasher_LDFLAGS = $(AM_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LDFLAGS) $(LIBCRYPTO_LDFLAGS)
974 dnswasher_LDADD = $(BOOST_PROGRAM_OPTIONS_LIBS) $(LIBCRYPTO_LIBS) $(IPCRYPT_LIBS)
975
976 dnsbulktest_SOURCES = \
977 arguments.cc arguments.hh \
978 base32.cc \
979 base64.cc \
980 dns_random.hh \
981 dnsbulktest.cc \
982 dnslabeltext.cc \
983 dnsname.cc dnsname.hh \
984 dnsparser.cc \
985 dnsrecords.cc \
986 dnswriter.cc \
987 iputils.cc iputils.hh \
988 logger.cc \
989 misc.cc \
990 nsecrecords.cc \
991 qtype.cc \
992 rcpgenerator.cc \
993 sillyrecords.cc \
994 statbag.cc \
995 svc-records.cc svc-records.hh \
996 unix_utility.cc
997
998 dnsbulktest_LDFLAGS = \
999 $(AM_LDFLAGS) \
1000 $(LIBCRYPTO_LDFLAGS) \
1001 $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
1002
1003 dnsbulktest_LDADD = \
1004 $(LIBCRYPTO_LIBS) \
1005 $(BOOST_PROGRAM_OPTIONS_LIBS)
1006
1007 comfun_SOURCES = \
1008 base32.cc \
1009 base64.cc \
1010 comfun.cc \
1011 dns.cc \
1012 dnslabeltext.cc \
1013 dnsname.cc dnsname.hh \
1014 dnsparser.cc \
1015 dnsrecords.cc \
1016 dnswriter.cc \
1017 logger.cc \
1018 misc.cc \
1019 nsecrecords.cc \
1020 qtype.cc \
1021 rcpgenerator.cc \
1022 sillyrecords.cc \
1023 statbag.cc \
1024 svc-records.cc svc-records.hh \
1025 unix_utility.cc \
1026 zoneparser-tng.cc zoneparser-tng.hh
1027
1028 comfun_LDFLAGS = \
1029 $(AM_LDFLAGS) \
1030 $(LIBCRYPTO_LDFLAGS) \
1031 $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
1032
1033 comfun_LDADD = \
1034 $(LIBCRYPTO_LIBS) \
1035 $(BOOST_PROGRAM_OPTIONS_LIBS)
1036
1037
1038 dnsscan_SOURCES = \
1039 anadns.hh \
1040 base32.cc \
1041 base64.cc base64.hh \
1042 dnslabeltext.cc \
1043 dnsname.cc dnsname.hh \
1044 dnsparser.cc dnsparser.hh \
1045 dnspcap.cc dnspcap.hh \
1046 dnsrecords.cc \
1047 dnsscan.cc \
1048 dnswriter.cc dnswriter.hh \
1049 logger.cc \
1050 misc.cc \
1051 nsecrecords.cc \
1052 qtype.cc \
1053 rcpgenerator.cc rcpgenerator.hh \
1054 sillyrecords.cc \
1055 statbag.cc \
1056 svc-records.cc svc-records.hh \
1057 unix_utility.cc \
1058 utility.hh
1059
1060 dnsscan_LDFLAGS = \
1061 $(AM_LDFLAGS) \
1062 $(LIBCRYPTO_LDFLAGS)
1063
1064 dnsscan_LDADD = $(LIBCRYPTO_LIBS)
1065
1066 dnsreplay_SOURCES = \
1067 anadns.hh \
1068 base32.cc \
1069 base64.cc base64.hh \
1070 dnslabeltext.cc \
1071 dnsname.cc dnsname.hh \
1072 dnsparser.cc dnsparser.hh \
1073 dnspcap.cc dnspcap.hh \
1074 dnsrecords.cc \
1075 dnsreplay.cc \
1076 dnswriter.cc dnswriter.hh \
1077 ednsoptions.cc ednsoptions.hh \
1078 ednssubnet.cc ednssubnet.hh \
1079 iputils.cc \
1080 logger.cc \
1081 misc.cc \
1082 nsecrecords.cc \
1083 qtype.cc \
1084 rcpgenerator.cc rcpgenerator.hh \
1085 sillyrecords.cc \
1086 statbag.cc \
1087 svc-records.cc svc-records.hh \
1088 unix_utility.cc \
1089 utility.hh
1090
1091 dnsreplay_LDFLAGS = \
1092 $(AM_LDFLAGS) \
1093 $(LIBCRYPTO_LDFLAGS) \
1094 $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
1095
1096 dnsreplay_LDADD = \
1097 $(LIBCRYPTO_LIBS) \
1098 $(BOOST_PROGRAM_OPTIONS_LIBS)
1099
1100 nproxy_SOURCES = \
1101 base32.cc \
1102 base64.cc base64.hh \
1103 dnslabeltext.cc \
1104 dnsname.cc dnsname.hh \
1105 dnsparser.cc dnsparser.hh \
1106 dnsrecords.cc \
1107 dnswriter.cc dnswriter.hh \
1108 logger.cc \
1109 misc.cc \
1110 mplexer.hh \
1111 nproxy.cc \
1112 nsecrecords.cc \
1113 pollmplexer.cc \
1114 qtype.cc \
1115 rcpgenerator.cc rcpgenerator.hh \
1116 sillyrecords.cc \
1117 statbag.cc \
1118 svc-records.cc svc-records.hh \
1119 unix_utility.cc
1120
1121 nproxy_LDFLAGS = \
1122 $(AM_LDFLAGS) \
1123 $(LIBCRYPTO_LDFLAGS) \
1124 $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
1125
1126 nproxy_LDADD = \
1127 $(LIBCRYPTO_LIBS) \
1128 $(BOOST_PROGRAM_OPTIONS_LIBS)
1129
1130 pdns_notify_SOURCES = \
1131 arguments.cc \
1132 base32.cc \
1133 base64.cc base64.hh \
1134 dns.cc \
1135 dnslabeltext.cc \
1136 dnsname.cc dnsname.hh \
1137 dnsparser.cc dnsparser.hh \
1138 dnsrecords.cc \
1139 dnswriter.cc dnswriter.hh \
1140 logger.cc \
1141 misc.cc \
1142 notify.cc \
1143 nsecrecords.cc \
1144 pollmplexer.cc \
1145 qtype.cc \
1146 rcpgenerator.cc rcpgenerator.hh \
1147 sillyrecords.cc \
1148 statbag.cc \
1149 svc-records.cc svc-records.hh \
1150 unix_utility.cc
1151
1152 pdns_notify_LDFLAGS = \
1153 $(AM_LDFLAGS) \
1154 $(LIBCRYPTO_LDFLAGS) \
1155 $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
1156
1157 pdns_notify_LDADD = \
1158 $(LIBCRYPTO_LIBS) \
1159 $(BOOST_PROGRAM_OPTIONS_LIBS)
1160
1161 if LIBSODIUM
1162 pdns_notify_LDADD += $(LIBSODIUM_LIBS)
1163 dnsbulktest_LDADD += $(LIBSODIUM_LIBS)
1164 endif
1165
1166 dnsscope_SOURCES = \
1167 arguments.cc \
1168 base32.cc \
1169 base64.cc base64.hh \
1170 dns.cc \
1171 dnslabeltext.cc \
1172 dnsname.cc dnsname.hh \
1173 dnsparser.cc dnsparser.hh \
1174 dnspcap.cc dnspcap.hh \
1175 dnsrecords.cc \
1176 dnsscope.cc \
1177 dnswriter.cc dnswriter.hh \
1178 histog.hh \
1179 logger.cc \
1180 misc.cc \
1181 nsecrecords.cc \
1182 qtype.cc \
1183 rcpgenerator.cc rcpgenerator.hh \
1184 sillyrecords.cc \
1185 statbag.cc \
1186 statnode.cc statnode.hh \
1187 svc-records.cc svc-records.hh \
1188 unix_utility.cc \
1189 utility.hh
1190
1191 dnsscope_LDFLAGS = \
1192 $(AM_LDFLAGS) \
1193 $(LIBCRYPTO_LDFLAGS) \
1194 $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
1195
1196 dnsscope_LDADD = \
1197 $(LIBCRYPTO_LIBS) \
1198 $(BOOST_PROGRAM_OPTIONS_LIBS)
1199
1200 dnsgram_SOURCES = \
1201 base32.cc \
1202 base64.cc base64.hh \
1203 dnsgram.cc \
1204 dnslabeltext.cc \
1205 dnsname.cc dnsname.hh \
1206 dnsparser.cc dnsparser.hh \
1207 dnspcap.cc dnspcap.hh \
1208 dnsrecords.cc \
1209 dnswriter.cc dnswriter.hh \
1210 logger.cc \
1211 misc.cc \
1212 nsecrecords.cc \
1213 qtype.cc \
1214 rcpgenerator.cc rcpgenerator.hh \
1215 sillyrecords.cc \
1216 statbag.cc \
1217 svc-records.cc svc-records.hh \
1218 unix_utility.cc \
1219 utility.hh
1220
1221 dnsgram_LDFLAGS = \
1222 $(AM_LDFLAGS) \
1223 $(LIBCRYPTO_LDFLAGS)
1224
1225 dnsgram_LDADD = \
1226 $(LIBCRYPTO_LIBS)
1227
1228 dnsdemog_SOURCES = \
1229 base32.cc \
1230 base64.cc base64.hh \
1231 dnsdemog.cc \
1232 dnslabeltext.cc \
1233 dnsname.cc dnsname.hh \
1234 dnsparser.cc dnsparser.hh \
1235 dnspcap.cc dnspcap.hh \
1236 dnsrecords.cc \
1237 dnswriter.cc dnswriter.hh \
1238 logger.cc \
1239 misc.cc \
1240 nsecrecords.cc \
1241 qtype.cc \
1242 rcpgenerator.cc rcpgenerator.hh \
1243 sillyrecords.cc \
1244 statbag.cc \
1245 svc-records.cc svc-records.hh \
1246 unix_utility.cc \
1247 utility.hh
1248
1249 dnsdemog_LDFLAGS = \
1250 $(AM_LDFLAGS) \
1251 $(LIBCRYPTO_LDFLAGS)
1252
1253 dnsdemog_LDADD = \
1254 $(LIBCRYPTO_LIBS)
1255
1256 dnspcap2calidns_SOURCES = \
1257 base32.cc \
1258 base64.cc base64.hh \
1259 dnslabeltext.cc \
1260 dnsname.cc dnsname.hh \
1261 dnsparser.cc dnsparser.hh \
1262 dnspcap.cc dnspcap.hh \
1263 dnspcap2calidns.cc \
1264 dnsrecords.cc \
1265 dnswriter.cc dnswriter.hh \
1266 ednsoptions.cc ednsoptions.hh \
1267 ednssubnet.cc ednssubnet.hh \
1268 iputils.cc \
1269 logger.cc \
1270 misc.cc \
1271 nsecrecords.cc \
1272 qtype.cc \
1273 rcpgenerator.cc rcpgenerator.hh \
1274 sillyrecords.cc \
1275 statbag.cc \
1276 svc-records.cc svc-records.hh \
1277 unix_utility.cc \
1278 utility.hh
1279
1280 dnspcap2calidns_LDFLAGS = \
1281 $(AM_LDFLAGS) \
1282 $(LIBCRYPTO_LDFLAGS) \
1283 $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
1284
1285 dnspcap2calidns_LDADD = \
1286 $(LIBCRYPTO_LIBS) \
1287 $(BOOST_PROGRAM_OPTIONS_LIBS)
1288
1289 dnspcap2protobuf_SOURCES = \
1290 base32.cc \
1291 base64.cc base64.hh \
1292 dnslabeltext.cc \
1293 dnsname.cc dnsname.hh \
1294 dnsparser.cc dnsparser.hh \
1295 dnspcap.cc dnspcap.hh \
1296 dnspcap2protobuf.cc \
1297 dnsrecords.cc \
1298 dnswriter.cc dnswriter.hh \
1299 gettime.cc gettime.hh \
1300 iputils.cc \
1301 logger.cc \
1302 misc.cc \
1303 nsecrecords.cc \
1304 protozero.cc protozero.hh \
1305 qtype.cc \
1306 rcpgenerator.cc rcpgenerator.hh \
1307 sillyrecords.cc \
1308 statbag.cc \
1309 svc-records.cc svc-records.hh \
1310 unix_utility.cc \
1311 utility.hh \
1312 uuid-utils.hh uuid-utils.cc
1313
1314 dnspcap2protobuf_LDFLAGS = \
1315 $(AM_LDFLAGS) \
1316 $(LIBCRYPTO_LDFLAGS) \
1317 $(BOOST_PROGRAM_OPTIONS_LDFLAGS)
1318
1319 dnspcap2protobuf_LDADD = \
1320 $(LIBCRYPTO_LIBS) \
1321 $(BOOST_PROGRAM_OPTIONS_LIBS) \
1322 $(RT_LIBS)
1323
1324 pdns.conf-dist: pdns_server
1325 $(AM_V_GEN)./pdns_server --config=default > $@
1326
1327 testrunner_SOURCES = \
1328 arguments.cc \
1329 auth-caches.cc auth-caches.hh \
1330 auth-packetcache.cc auth-packetcache.hh \
1331 auth-querycache.cc auth-querycache.hh \
1332 auth-zonecache.cc auth-zonecache.hh \
1333 base32.cc \
1334 base64.cc \
1335 bindlexer.l \
1336 bindparser.yy \
1337 channel.cc channel.hh \
1338 credentials.cc credentials.hh \
1339 dbdnsseckeeper.cc \
1340 dns.cc \
1341 dnsbackend.cc \
1342 dnslabeltext.cc \
1343 dnsname.cc \
1344 dnsname.hh \
1345 dnspacket.cc \
1346 dnsparser.hh dnsparser.cc \
1347 dnsrecords.cc \
1348 dnssecinfra.cc \
1349 dnssecsigner.cc \
1350 dnswriter.cc \
1351 ednscookies.cc ednscookies.hh \
1352 ednsoptions.cc ednsoptions.hh \
1353 ednssubnet.cc \
1354 gettime.cc gettime.hh \
1355 gss_context.cc gss_context.hh \
1356 histogram.hh \
1357 ipcipher.cc ipcipher.hh \
1358 iputils.cc \
1359 ixfr.cc ixfr.hh \
1360 logger.cc \
1361 lua-auth4.hh lua-auth4.cc \
1362 lua-base4.hh lua-base4.cc \
1363 misc.cc \
1364 nameserver.cc \
1365 nsecrecords.cc \
1366 opensslsigners.cc opensslsigners.hh \
1367 pollmplexer.cc \
1368 proxy-protocol.cc proxy-protocol.hh \
1369 qtype.cc \
1370 rcpgenerator.cc \
1371 responsestats-auth.cc \
1372 responsestats.cc responsestats.hh \
1373 shuffle.cc shuffle.hh \
1374 sillyrecords.cc \
1375 stat_t.hh \
1376 statbag.cc \
1377 stubresolver.hh stubresolver.cc \
1378 svc-records.cc svc-records.hh \
1379 test-arguments_cc.cc \
1380 test-auth-zonecache_cc.cc \
1381 test-base32_cc.cc \
1382 test-base64_cc.cc \
1383 test-bindparser_cc.cc \
1384 test-channel.cc \
1385 test-common.hh \
1386 test-communicator_hh.cc \
1387 test-credentials_cc.cc \
1388 test-digests_hh.cc \
1389 test-distributor_hh.cc \
1390 test-dns_random_hh.cc \
1391 test-dnsname_cc.cc \
1392 test-dnsparser_cc.cc \
1393 test-dnsparser_hh.cc \
1394 test-dnsrecordcontent.cc \
1395 test-dnsrecords_cc.cc \
1396 test-dnswriter_cc.cc \
1397 test-ednscookie_cc.cc \
1398 test-ipcrypt_cc.cc \
1399 test-iputils_hh.cc \
1400 test-ixfr_cc.cc \
1401 test-lock_hh.cc \
1402 test-lua_auth4_cc.cc \
1403 test-luawrapper.cc \
1404 test-misc_hh.cc \
1405 test-mplexer.cc \
1406 test-nameserver_cc.cc \
1407 test-packetcache_cc.cc \
1408 test-packetcache_hh.cc \
1409 test-proxy_protocol_cc.cc \
1410 test-rcpgenerator_cc.cc \
1411 test-sha_hh.cc \
1412 test-signers.cc \
1413 test-statbag_cc.cc \
1414 test-svc_records_cc.cc \
1415 test-trusted-notification-proxy_cc.cc \
1416 test-tsig.cc \
1417 test-ueberbackend_cc.cc \
1418 test-webserver_cc.cc \
1419 test-zonemd_cc.cc \
1420 test-zoneparser_tng_cc.cc \
1421 testrunner.cc \
1422 threadname.hh threadname.cc \
1423 trusted-notification-proxy.cc \
1424 tsigverifier.cc tsigverifier.hh \
1425 ueberbackend.cc ueberbackend.hh \
1426 unix_utility.cc \
1427 uuid-utils.cc \
1428 validate.hh \
1429 webserver.cc \
1430 zonemd.cc zonemd.hh \
1431 zoneparser-tng.cc zoneparser-tng.hh
1432
1433 testrunner_LDFLAGS = \
1434 $(AM_LDFLAGS) \
1435 $(LIBCRYPTO_LDFLAGS) \
1436 $(BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS)
1437
1438 testrunner_LDADD = \
1439 $(LIBCRYPTO_LIBS) \
1440 $(BOOST_UNIT_TEST_FRAMEWORK_LIBS) \
1441 $(RT_LIBS) \
1442 $(LUA_LIBS) \
1443 $(LIBDL) \
1444 $(IPCRYPT_LIBS) \
1445 $(YAHTTP_LIBS) \
1446 $(JSON11_LIBS)
1447
1448 if GSS_TSIG
1449 testrunner_LDADD += $(GSS_LIBS)
1450 speedtest_LDADD += $(GSS_LIBS)
1451 endif
1452
1453 if PKCS11
1454 testrunner_SOURCES += pkcs11signers.cc pkcs11signers.hh
1455 testrunner_LDADD += $(P11KIT1_LIBS)
1456 speedtest_SOURCES += pkcs11signers.cc pkcs11signers.hh
1457 speedtest_LDADD += $(P11KIT1_LIBS)
1458 endif
1459
1460 if LIBSODIUM
1461 testrunner_SOURCES += sodiumsigners.cc
1462 testrunner_LDADD += $(LIBSODIUM_LIBS)
1463 speedtest_LDADD += $(LIBSODIUM_LIBS)
1464 endif
1465
1466 if LIBDECAF
1467 testrunner_SOURCES += decafsigners.cc
1468 testrunner_LDADD += $(LIBDECAF_LIBS)
1469 endif
1470
1471 if HAVE_FREEBSD
1472 ixfrdist_SOURCES += kqueuemplexer.cc
1473 testrunner_SOURCES += kqueuemplexer.cc
1474 endif
1475
1476 if HAVE_OPENBSD
1477 ixfrdist_SOURCES += kqueuemplexer.cc
1478 testrunner_SOURCES += kqueuemplexer.cc
1479 endif
1480
1481 if HAVE_LINUX
1482 ixfrdist_SOURCES += epollmplexer.cc
1483 testrunner_SOURCES += epollmplexer.cc
1484 endif
1485
1486 if HAVE_SOLARIS
1487 ixfrdist_SOURCES += \
1488 devpollmplexer.cc \
1489 portsmplexer.cc
1490 testrunner_SOURCES += \
1491 devpollmplexer.cc \
1492 portsmplexer.cc
1493 endif
1494
1495 pdns_control_SOURCES = \
1496 arguments.cc \
1497 dnslabeltext.cc \
1498 dnsname.cc \
1499 dynloader.cc \
1500 dynmessenger.cc \
1501 logger.cc \
1502 misc.cc \
1503 qtype.cc \
1504 statbag.cc \
1505 unix_utility.cc
1506
1507 pdns_control_LDFLAGS = \
1508 $(AM_LDFLAGS) \
1509 $(LIBCRYPTO_LDFLAGS)
1510
1511 noinst_PROGRAMS = speedtest
1512
1513 if UNIT_TESTS
1514 noinst_PROGRAMS += testrunner
1515 if HAVE_BOOST_GE_148
1516 TESTS_ENVIRONMENT = env BOOST_TEST_LOG_LEVEL=message SRCDIR='$(srcdir)'
1517 TESTS=testrunner
1518 else
1519 check-local:
1520 @echo "Unit tests disabled, boost is too old"
1521 endif
1522
1523 else
1524 check-local:
1525 @echo "Unit tests are not enabled"
1526 @echo "Run ./configure --enable-unit-tests"
1527 endif
1528
1529 if FUZZ_TARGETS
1530
1531 LIB_FUZZING_ENGINE ?= standalone_fuzz_target_runner.o
1532
1533 standalone_fuzz_target_runner.o: standalone_fuzz_target_runner.cc
1534
1535 fuzz_targets_programs = \
1536 fuzz_target_dnsdistcache \
1537 fuzz_target_moadnsparser \
1538 fuzz_target_packetcache \
1539 fuzz_target_proxyprotocol \
1540 fuzz_target_dnslabeltext_parseRFC1035CharString \
1541 fuzz_target_yahttp \
1542 fuzz_target_zoneparsertng
1543
1544 fuzz_targets: $(ARC4RANDOM_LIBS) $(fuzz_targets_programs)
1545
1546 bin_PROGRAMS += \
1547 $(fuzz_targets_programs)
1548
1549 fuzz_targets_libs = \
1550 $(LIBCRYPTO_LIBS) \
1551 $(LIB_FUZZING_ENGINE)
1552 fuzz_targets_ldflags = \
1553 $(AM_LDFLAGS) \
1554 $(DYNLINKFLAGS) \
1555 $(LIBCRYPTO_LDFLAGS) \
1556 $(FUZZING_LDFLAGS)
1557
1558 # we need the mockup runner to be built, but not linked if a real fuzzing engine is used
1559 fuzz_targets_deps = standalone_fuzz_target_runner.o
1560
1561 fuzz_target_moadnsparser_SOURCES = \
1562 base32.cc base32.hh \
1563 base64.cc base64.hh \
1564 dnslabeltext.cc \
1565 dnsname.cc dnsname.hh \
1566 dnsparser.cc dnsparser.hh \
1567 dnsrecords.cc dnsrecords.hh \
1568 dnswriter.cc dnswriter.hh \
1569 fuzz_moadnsparser.cc \
1570 logger.cc logger.hh \
1571 misc.cc misc.hh \
1572 nsecrecords.cc \
1573 qtype.cc qtype.hh \
1574 rcpgenerator.cc rcpgenerator.hh \
1575 sillyrecords.cc \
1576 statbag.cc statbag.hh \
1577 svc-records.cc svc-records.hh \
1578 unix_utility.cc \
1579 utility.hh
1580
1581 fuzz_target_moadnsparser_DEPENDENCIES = $(fuzz_targets_deps)
1582 fuzz_target_moadnsparser_LDFLAGS = $(fuzz_targets_ldflags)
1583 fuzz_target_moadnsparser_LDADD = $(fuzz_targets_libs)
1584
1585 fuzz_target_packetcache_SOURCES = \
1586 dnslabeltext.cc \
1587 dnsname.cc dnsname.hh \
1588 ednsoptions.cc ednsoptions.hh \
1589 fuzz_packetcache.cc \
1590 misc.cc misc.hh \
1591 packetcache.hh \
1592 qtype.cc qtype.hh \
1593 statbag.cc statbag.hh \
1594 svc-records.cc svc-records.hh
1595
1596 fuzz_target_packetcache_DEPENDENCIES = $(fuzz_targets_deps)
1597 fuzz_target_packetcache_LDFLAGS = $(fuzz_targets_ldflags)
1598 fuzz_target_packetcache_LDADD = $(fuzz_targets_libs)
1599
1600 fuzz_target_proxyprotocol_SOURCES = \
1601 fuzz_proxyprotocol.cc \
1602 iputils.hh \
1603 proxy-protocol.cc \
1604 proxy-protocol.hh
1605
1606 fuzz_target_proxyprotocol_DEPENDENCIES = $(fuzz_targets_deps)
1607 fuzz_target_proxyprotocol_LDFLAGS = $(fuzz_targets_ldflags)
1608 fuzz_target_proxyprotocol_LDADD = $(fuzz_targets_libs)
1609
1610 fuzz_target_dnsdistcache_SOURCES = \
1611 channel.hh channel.cc \
1612 dns.cc dns.hh \
1613 dnsdist-cache.cc dnsdist-cache.hh \
1614 dnsdist-ecs.cc dnsdist-ecs.hh \
1615 dnsdist-idstate.hh \
1616 dnsdist-protocols.cc dnsdist-protocols.hh \
1617 dnslabeltext.cc \
1618 dnsname.cc dnsname.hh \
1619 dnsparser.cc dnsparser.hh \
1620 dnswriter.cc dnswriter.hh \
1621 doh.hh \
1622 ednsoptions.cc ednsoptions.hh \
1623 ednssubnet.cc ednssubnet.hh \
1624 fuzz_dnsdistcache.cc \
1625 iputils.cc iputils.hh \
1626 misc.cc misc.hh \
1627 packetcache.hh \
1628 qtype.cc qtype.hh \
1629 svc-records.cc svc-records.hh
1630
1631 fuzz_target_dnsdistcache_DEPENDENCIES = $(fuzz_targets_deps)
1632 fuzz_target_dnsdistcache_LDFLAGS = $(fuzz_targets_ldflags)
1633 fuzz_target_dnsdistcache_LDADD = $(fuzz_targets_libs)
1634
1635 fuzz_target_yahttp_SOURCES = \
1636 fuzz_yahttp.cc
1637
1638 fuzz_target_yahttp_DEPENDENCIES = $(fuzz_targets_deps)
1639 fuzz_target_yahttp_LDFLAGS = $(fuzz_targets_ldflags)
1640 fuzz_target_yahttp_LDADD = $(fuzz_targets_libs) \
1641 $(YAHTTP_LIBS)
1642
1643 fuzz_target_zoneparsertng_SOURCES = \
1644 base32.cc base32.hh \
1645 base64.cc base64.hh \
1646 dnslabeltext.cc \
1647 dnsname.cc dnsname.hh \
1648 dnsparser.cc dnsparser.hh \
1649 dnsrecords.cc dnsrecords.hh \
1650 dnswriter.cc dnswriter.hh \
1651 fuzz_zoneparsertng.cc \
1652 logger.cc logger.hh \
1653 misc.cc misc.hh \
1654 nsecrecords.cc \
1655 qtype.cc qtype.hh \
1656 rcpgenerator.cc rcpgenerator.hh \
1657 sillyrecords.cc \
1658 statbag.cc statbag.hh \
1659 svc-records.cc svc-records.hh \
1660 unix_utility.cc \
1661 utility.hh \
1662 zoneparser-tng.cc zoneparser-tng.hh
1663
1664 fuzz_target_zoneparsertng_DEPENDENCIES = $(fuzz_targets_deps)
1665 fuzz_target_zoneparsertng_LDFLAGS = $(fuzz_targets_ldflags)
1666 fuzz_target_zoneparsertng_LDADD = $(fuzz_targets_libs)
1667
1668 fuzz_target_dnslabeltext_parseRFC1035CharString_SOURCES = \
1669 dnslabeltext.cc \
1670 fuzz_dnslabeltext_parseRFC1035CharString.cc
1671
1672 fuzz_target_dnslabeltext_parseRFC1035CharString_DEPENDENCIES = $(fuzz_targets_deps)
1673 fuzz_target_dnslabeltext_parseRFC1035CharString_LDFLAGS = $(fuzz_targets_ldflags)
1674 fuzz_target_dnslabeltext_parseRFC1035CharString_LDADD = $(fuzz_targets_libs)
1675
1676 endif
1677
1678 dnslabeltext.cc: dnslabeltext.rl
1679 $(AM_V_GEN)$(RAGEL) $< -o dnslabeltext.cc
1680
1681 bind-dnssec.schema.sqlite3.sql.h: bind-dnssec.schema.sqlite3.sql
1682 ( echo '#pragma once'; echo 'static char sqlCreate[] __attribute__((unused))=' ; sed 's/$$/"/g' $< | sed 's/^/"/g' ; echo ';' ) > $@
1683
1684 bindlexer.$(OBJEXT): bindparser.hh
1685
1686 pdns_recursor rec_control:
1687 @echo "Please build the recursor from the recursordist/ dir"
1688 @exit 1
1689
1690 dnsdist:
1691 @echo "Please build dnsdist from the dnsdistdist/ dir"
1692 @exit 1
1693
1694 if HAVE_SYSTEMD
1695 pdns.service: pdns.service.in
1696 $(AM_V_GEN)sed -e 's![@]sbindir[@]!$(sbindir)!' -e 's![@]service_user[@]!$(service_user)!' -e 's![@]service_group[@]!$(service_group)!' < $< > $@
1697 if !HAVE_SYSTEMD_WITH_RUNTIME_DIR_ENV
1698 if HAVE_SYSTEMD_PERCENT_T
1699 $(AM_V_GEN)sed -e 's!/pdns_server!& --socket-dir=%t/pdns!' -i $@
1700 endif
1701 endif
1702 if !HAVE_SYSTEMD_LOCK_PERSONALITY
1703 $(AM_V_GEN)perl -ni -e 'print unless /^LockPersonality/' $@
1704 endif
1705 if !HAVE_SYSTEMD_PRIVATE_DEVICES
1706 $(AM_V_GEN)perl -ni -e 'print unless /^PrivateDevices/' $@
1707 endif
1708 if !HAVE_SYSTEMD_PRIVATE_TMP
1709 $(AM_V_GEN)perl -ni -e 'print unless /^PrivateTmp/' $@
1710 endif
1711 if !HAVE_SYSTEMD_PRIVATE_USERS
1712 $(AM_V_GEN)perl -ni -e 'print unless /^PrivateUsers/' $@
1713 endif
1714 if !HAVE_SYSTEMD_PROTECT_CLOCK
1715 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectClock/' $@
1716 endif
1717 if !HAVE_SYSTEMD_PROTECT_CONTROL_GROUPS
1718 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectControlGroups/' $@
1719 endif
1720 if !HAVE_SYSTEMD_PROTECT_HOME
1721 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectHome/' $@
1722 endif
1723 if !HAVE_SYSTEMD_PROTECT_HOSTNAME
1724 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectHostname/' $@
1725 endif
1726 if !HAVE_SYSTEMD_PROTECT_KERNEL_LOGS
1727 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectKernelLogs/' $@
1728 endif
1729 if !HAVE_SYSTEMD_PROTECT_KERNEL_MODULES
1730 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectKernelModules/' $@
1731 endif
1732 if !HAVE_SYSTEMD_PROTECT_KERNEL_TUNABLES
1733 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectKernelTunables/' $@
1734 endif
1735 if !HAVE_SYSTEMD_PROTECT_SYSTEM
1736 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectSystem/' $@
1737 endif
1738 if !HAVE_SYSTEMD_RESTRICT_ADDRESS_FAMILIES
1739 $(AM_V_GEN)perl -ni -e 'print unless /^RestrictAddressFamilies/' $@
1740 endif
1741 if !HAVE_SYSTEMD_RESTRICT_NAMESPACES
1742 $(AM_V_GEN)perl -ni -e 'print unless /^RestrictNamespaces/' $@
1743 endif
1744 if !HAVE_SYSTEMD_RESTRICT_REALTIME
1745 $(AM_V_GEN)perl -ni -e 'print unless /^RestrictRealtime/' $@
1746 endif
1747 if !HAVE_SYSTEMD_RESTRICT_SUIDSGID
1748 $(AM_V_GEN)perl -ni -e 'print unless /^RestrictSUIDSGID/' $@
1749 endif
1750 if !HAVE_SYSTEMD_SYSTEM_CALL_ARCHITECTURES
1751 $(AM_V_GEN)perl -ni -e 'print unless /^SystemCallArchitectures/' $@
1752 endif
1753 if !HAVE_SYSTEMD_SYSTEM_CALL_FILTER
1754 $(AM_V_GEN)perl -ni -e 'print unless /^SystemCallFilter/' $@
1755 endif
1756 if !HAVE_SYSTEMD_PROTECT_PROC
1757 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectProc/' $@
1758 endif
1759 if !HAVE_SYSTEMD_PRIVATE_IPC
1760 $(AM_V_GEN)perl -ni -e 'print unless /^PrivateIPC/' $@
1761 endif
1762 if !HAVE_SYSTEMD_REMOVE_IPC
1763 $(AM_V_GEN)perl -ni -e 'print unless /^RemoveIPC/' $@
1764 endif
1765
1766 pdns@.service: pdns.service
1767 $(AM_V_GEN)sed -e 's!/pdns_server!& --config-name=%i!' \
1768 -e 's!Authoritative Server!& %i!' \
1769 -e 's!SyslogIdentifier=.*!&-%i!' \
1770 < $< > $@
1771 if HAVE_SYSTEMD_PERCENT_T
1772 $(AM_V_GEN)sed -e 's!RuntimeDirectory=.*!&-%i!' -i $@
1773 if !HAVE_SYSTEMD_WITH_RUNTIME_DIR_ENV
1774 $(AM_V_GEN)sed -e 's!--socket-dir=[^ ]\+!&-%i !' -i $@
1775 endif
1776 endif
1777
1778 systemdsystemunitdir = $(SYSTEMD_DIR)
1779
1780 systemdsystemunit_DATA = \
1781 pdns.service \
1782 pdns@.service
1783
1784 CLEANFILES += \
1785 pdns.service \
1786 pdns@.service
1787
1788 if IXFRDIST
1789 ixfrdist.service: ixfrdist.service.in
1790 $(AM_V_GEN)sed -e 's![@]bindir[@]!$(bindir)!' < $< > $@
1791 if !HAVE_SYSTEMD_LOCK_PERSONALITY
1792 $(AM_V_GEN)perl -ni -e 'print unless /^LockPersonality/' $@
1793 endif
1794 if !HAVE_SYSTEMD_PRIVATE_DEVICES
1795 $(AM_V_GEN)perl -ni -e 'print unless /^PrivateDevices/' $@
1796 endif
1797 if !HAVE_SYSTEMD_PRIVATE_TMP
1798 $(AM_V_GEN)perl -ni -e 'print unless /^PrivateTmp/' $@
1799 endif
1800 if !HAVE_SYSTEMD_PRIVATE_USERS
1801 $(AM_V_GEN)perl -ni -e 'print unless /^PrivateUsers/' $@
1802 endif
1803 if !HAVE_SYSTEMD_PROTECT_CLOCK
1804 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectClock/' $@
1805 endif
1806 if !HAVE_SYSTEMD_PROTECT_CONTROL_GROUPS
1807 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectControlGroups/' $@
1808 endif
1809 if !HAVE_SYSTEMD_PROTECT_HOME
1810 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectHome/' $@
1811 endif
1812 if !HAVE_SYSTEMD_PROTECT_HOSTNAME
1813 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectHostname/' $@
1814 endif
1815 if !HAVE_SYSTEMD_PROTECT_KERNEL_LOGS
1816 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectKernelLogs/' $@
1817 endif
1818 if !HAVE_SYSTEMD_PROTECT_KERNEL_MODULES
1819 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectKernelModules/' $@
1820 endif
1821 if !HAVE_SYSTEMD_PROTECT_KERNEL_TUNABLES
1822 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectKernelTunables/' $@
1823 endif
1824 if !HAVE_SYSTEMD_PROTECT_SYSTEM
1825 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectSystem/' $@
1826 endif
1827 if !HAVE_SYSTEMD_RESTRICT_ADDRESS_FAMILIES
1828 $(AM_V_GEN)perl -ni -e 'print unless /^RestrictAddressFamilies/' $@
1829 endif
1830 if !HAVE_SYSTEMD_RESTRICT_NAMESPACES
1831 $(AM_V_GEN)perl -ni -e 'print unless /^RestrictNamespaces/' $@
1832 endif
1833 if !HAVE_SYSTEMD_RESTRICT_REALTIME
1834 $(AM_V_GEN)perl -ni -e 'print unless /^RestrictRealtime/' $@
1835 endif
1836 if !HAVE_SYSTEMD_RESTRICT_SUIDSGID
1837 $(AM_V_GEN)perl -ni -e 'print unless /^RestrictSUIDSGID/' $@
1838 endif
1839 if !HAVE_SYSTEMD_SYSTEM_CALL_ARCHITECTURES
1840 $(AM_V_GEN)perl -ni -e 'print unless /^SystemCallArchitectures/' $@
1841 endif
1842 if !HAVE_SYSTEMD_SYSTEM_CALL_FILTER
1843 $(AM_V_GEN)perl -ni -e 'print unless /^SystemCallFilter/' $@
1844 endif
1845 if !HAVE_SYSTEMD_PROTECT_PROC
1846 $(AM_V_GEN)perl -ni -e 'print unless /^ProtectProc/' $@
1847 endif
1848 if !HAVE_SYSTEMD_MEMORY_DENY_WRITE_EXECUTE
1849 $(AM_V_GEN)perl -ni -e 'print unless /^MemoryDenyWriteExecute/' $@
1850 endif
1851 if !HAVE_SYSTEMD_PRIVATE_IPC
1852 $(AM_V_GEN)perl -ni -e 'print unless /^PrivateIPC/' $@
1853 endif
1854 if !HAVE_SYSTEMD_REMOVE_IPC
1855 $(AM_V_GEN)perl -ni -e 'print unless /^RemoveIPC/' $@
1856 endif
1857
1858 ixfrdist@.service: ixfrdist.service
1859 $(AM_V_GEN)sed -e 's!/ixfrdist!& --config $(sysconfdir)/ixfrdist-%i.yml!' \
1860 < $< > $@
1861
1862 systemdsystemunit_DATA += \
1863 ixfrdist.service \
1864 ixfrdist@.service
1865 endif # IXFRDIST
1866
1867 CLEANFILES += \
1868 ixfrdist.service \
1869 ixfrdist@.service
1870
1871 endif # HAVE_SYSTEMD