ext_modules = ['yahttp', 'ipcrypt', 'json11']
subdir('ext')
+# Pdns
+subdir('pdns')
+
# Generate config.h ----------------------------------------------------------------------
config_h = configure_file(configuration: conf, output: 'config.h')
# summary('Defines', conf.keys(), section: 'Build Configuration') # TODO Meson 0.57
# TODO: Add source files
-auth = executable('pdns', config_h, dependencies: deps, export_dynamic: true)
+internal_deps = [libpdns, libpdns_bindparser, libpdns_auth]
+auth = executable('pdns_server', config_h, dependencies: deps, link_with: internal_deps, export_dynamic: true)
--- /dev/null
+# libpdns-bindparser
+libpdns_bindparser_sources = [
+ 'zoneparser-tng.cc',
+ 'zoneparser-tng.hh',
+
+ flex_generator.process('bindlexer.l'),
+ bison_generator.process('bindparser.yy'),
+]
+
+libpdns_bindparser = static_library(
+ 'pdns-bindparser',
+ libpdns_bindparser_sources,
+ include_directories: toplevel_includes,
+ # dependencies: [dep_pkcs11, dep_gss_tsig],
+)
+
+# libpdns
+libpdns_sources = [
+ 'arguments.cc',
+ 'arguments.hh',
+ 'axfr-retriever.cc',
+ 'axfr-retriever.hh',
+ 'backends/gsql/gsqlbackend.cc',
+ 'backends/gsql/gsqlbackend.hh',
+ 'backends/gsql/ssql.hh',
+ 'base32.cc',
+ 'base32.hh',
+ 'base64.cc',
+ 'base64.hh',
+ 'bind-dnssec.schema.sqlite3.sql.h',
+ 'burtle.hh',
+ 'cachecleaner.hh',
+ 'circular_buffer.hh',
+ 'comment.hh',
+ 'communicator.cc',
+ 'communicator.hh',
+ 'credentials.cc',
+ 'credentials.hh',
+ 'dbdnsseckeeper.cc',
+ 'digests.hh',
+ 'distributor.hh',
+ 'dns.cc',
+ 'dns.hh',
+ 'dns_random.hh',
+ 'dnsbackend.cc',
+ 'dnsbackend.hh',
+ 'dnslabeltext.cc',
+ 'dnsname.cc',
+ 'dnsname.hh',
+ 'dnspacket.cc',
+ 'dnspacket.hh',
+ 'dnsparser.cc',
+ 'dnsparser.hh',
+ 'dnsproxy.cc',
+ 'dnsproxy.hh',
+ 'dnsrecords.cc',
+ 'dnsrecords.hh',
+ 'dnssecinfra.cc',
+ 'dnssecinfra.hh',
+ 'dnsseckeeper.hh',
+ 'dnssecsigner.cc',
+ 'dnswriter.cc',
+ 'dnswriter.hh',
+ 'dynhandler.cc',
+ 'dynhandler.hh',
+ 'dynlistener.cc',
+ 'dynlistener.hh',
+ 'dynmessenger.hh',
+ 'ednscookies.cc',
+ 'ednscookies.hh',
+ 'ednsoptions.cc',
+ 'ednsoptions.hh',
+ 'ednssubnet.cc',
+ 'ednssubnet.hh',
+ 'gettime.cc',
+ 'gettime.hh',
+ 'gss_context.cc',
+ 'gss_context.hh',
+ 'histogram.hh',
+ 'iputils.cc',
+ 'iputils.hh',
+ 'ixfr.cc',
+ 'ixfr.hh',
+ 'json.cc',
+ 'json.hh',
+ 'lock.hh',
+ 'logger.cc',
+ 'logger.hh',
+ 'logging.hh',
+ 'lua-auth4.cc',
+ 'lua-auth4.hh',
+ 'lua-base4.cc',
+ 'lua-base4.hh',
+ 'mastercommunicator.cc',
+ 'misc.cc',
+ 'misc.hh',
+ 'nameserver.cc',
+ 'nameserver.hh',
+ 'namespaces.hh',
+ 'noinitvector.hh',
+ 'nsecrecords.cc',
+ 'nsecrecords.cc',
+ 'opensslsigners.cc',
+ 'opensslsigners.hh',
+ 'packetcache.hh',
+ 'packethandler.cc',
+ 'packethandler.hh',
+ 'pdnsexception.hh',
+ 'proxy-protocol.cc',
+ 'proxy-protocol.hh',
+ 'qtype.cc',
+ 'qtype.hh',
+ 'query-local-address.cc',
+ 'query-local-address.hh',
+ 'rcpgenerator.cc',
+ 'rcpgenerator.hh',
+ 'resolver.cc',
+ 'resolver.hh',
+ 'responsestats-auth.cc',
+ 'responsestats.cc',
+ 'responsestats.hh',
+ 'rfc2136handler.cc',
+ 'secpoll-auth.cc',
+ 'secpoll-auth.hh',
+ 'secpoll.cc',
+ 'secpoll.hh',
+ 'serialtweaker.cc',
+ 'sha.hh',
+ 'shuffle.cc',
+ 'shuffle.hh',
+ 'signingpipe.cc',
+ 'signingpipe.hh',
+ 'sillyrecords.cc',
+ 'sillyrecords.cc',
+ 'slavecommunicator.cc',
+ 'stat_t.hh',
+ 'statbag.cc',
+ 'statbag.hh',
+ 'stubresolver.cc',
+ 'stubresolver.hh',
+ 'svc-records.cc',
+ 'svc-records.hh',
+ 'tcpreceiver.cc',
+ 'tcpreceiver.hh',
+ 'threadname.cc',
+ 'threadname.hh',
+ 'tkey.cc',
+ 'trusted-notification-proxy.cc',
+ 'trusted-notification-proxy.hh',
+ 'tsigutils.cc',
+ 'tsigutils.hh',
+ 'tsigverifier.cc',
+ 'tsigverifier.hh',
+ 'ueberbackend.cc',
+ 'ueberbackend.hh',
+ 'unix_semaphore.cc',
+ 'unix_utility.cc',
+ 'unix_utility.cc',
+ 'utility.hh',
+ 'utility.hh',
+ 'uuid-utils.cc',
+ 'uuid-utils.hh',
+ 'version.cc',
+ 'version.hh',
+ 'webserver.cc',
+ 'webserver.hh',
+ 'ws-api.cc',
+ 'ws-api.hh',
+ 'ws-auth.cc',
+ 'ws-auth.hh',
+ 'zoneparser-tng.cc',
+]
+
+libpdns = static_library(
+ 'pdns',
+ libpdns_sources,
+ include_directories: toplevel_includes,
+ dependencies: [deps, dep_pkcs11, dep_gss_tsig, dep_json11, dep_yahttp],
+)
+
+# libpdns-auth
+libpdns_auth_sources = [
+ 'auth-caches.cc',
+ 'auth-caches.hh',
+ 'auth-carbon.cc',
+ 'auth-catalogzone.cc',
+ 'auth-catalogzone.hh',
+ 'auth-main.cc',
+ 'auth-main.hh',
+ 'auth-packetcache.cc',
+ 'auth-packetcache.hh',
+ 'auth-querycache.cc',
+ 'auth-querycache.hh',
+ 'auth-zonecache.cc',
+ 'auth-zonecache.hh',
+]
+
+libpdns_auth = static_library(
+ 'pdns-auth',
+ libpdns_auth_sources,
+ include_directories: toplevel_includes,
+ dependencies: [deps, dep_yahttp, dep_json11],
+)