gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnunet] branch master updated: meson: reintroduce libgnunet build with


From: gnunet
Subject: [gnunet] branch master updated: meson: reintroduce libgnunet build with meson
Date: Thu, 19 Oct 2023 14:42:49 +0200

This is an automated email from the git hooks/post-receive script.

martin-schanzenbach pushed a commit to branch master
in repository gnunet.

The following commit(s) were added to refs/heads/master by this push:
     new dc222ad3a meson: reintroduce libgnunet build with meson
dc222ad3a is described below

commit dc222ad3a32cfa1755ea634f547c99f58cff7c05
Author: Martin Schanzenbach <schanzen@gnunet.org>
AuthorDate: Thu Oct 19 14:42:43 2023 +0200

    meson: reintroduce libgnunet build with meson
---
 meson.build                                        |  3 -
 meson.options                                      |  2 +-
 src/cli/arm/meson.build                            |  8 ++
 src/cli/cadet/meson.build                          | 15 ++++
 src/cli/core/meson.build                           |  6 ++
 src/cli/datastore/meson.build                      |  9 ++
 src/cli/dht/meson.build                            | 25 ++++++
 src/cli/fs/meson.build                             | 51 ++++++++++++
 src/cli/gns/meson.build                            | 65 +++++++++++++++
 src/{service => cli}/gns/test_dns2gns.conf         |  0
 src/{service => cli}/gns/test_gns_defaults.conf    |  0
 src/{service => cli}/gns/test_gns_lookup.conf      |  0
 .../gns/test_gns_lookup_peer1.conf                 |  0
 .../gns/test_gns_lookup_peer2.conf                 |  0
 src/{service => cli}/gns/test_gns_proxy.conf       |  0
 .../gns/test_gns_simple_lookup.conf                |  0
 src/cli/identity/meson.build                       |  9 ++
 src/cli/meson.build                                | 21 +++++
 src/cli/messenger/meson.build                      |  8 ++
 src/cli/namecache/meson.build                      | 10 +++
 src/cli/namestore/meson.build                      | 38 +++++++++
 src/cli/nat-auto/meson.build                       | 14 ++++
 src/cli/nat/meson.build                            |  7 ++
 src/cli/nse/meson.build                            |  7 ++
 src/cli/reclaim/meson.build                        | 22 +++++
 src/cli/revocation/meson.build                     | 12 +++
 src/cli/statistics/meson.build                     |  8 ++
 src/cli/util/meson.build                           | 62 ++++++++++++++
 src/cli/vpn/meson.build                            | 13 +++
 src/contrib/cli/meson.build                        |  1 +
 src/contrib/cli/template/meson.build               |  6 ++
 src/contrib/meson.build                            |  5 ++
 src/contrib/service/meson.build                    | 11 +++
 src/contrib/service/template/meson.build           | 10 ---
 src/lib/block/meson.build                          | 23 -----
 src/lib/curl/meson.build                           |  7 --
 src/lib/gnsrecord/meson.build                      | 15 ----
 src/lib/hello/meson.build                          |  7 --
 src/lib/json/meson.build                           |  7 --
 src/lib/meson.build                                |  8 ++
 src/lib/pq/meson.build                             |  7 --
 src/lib/sq/meson.build                             |  7 --
 src/lib/util/Makefile.am                           |  2 -
 src/lib/util/meson.build                           | 92 +-------------------
 src/meson.build                                    | 73 ++--------------
 src/plugin/block/meson.build                       | 15 ++++
 src/plugin/fs/meson.build                          |  8 ++
 src/plugin/gns/meson.build                         | 17 ++++
 src/plugin/gnsrecord/meson.build                   |  6 ++
 src/plugin/meson.build                             |  9 ++
 src/plugin/namecache/meson.build                   | 22 +++++
 src/plugin/namestore/meson.build                   | 42 ++++++++++
 src/plugin/reclaim/meson.build                     | 30 +++++++
 src/plugin/revocation/meson.build                  | 10 +++
 src/rest-plugin/gns/meson.build                    | 13 +++
 src/rest-plugin/identity/meson.build               | 11 +++
 src/rest-plugin/meson.build                        |  6 ++
 src/rest-plugin/reclaim/meson.build                | 29 +++++++
 src/rest-plugin/rest/meson.build                   | 18 ++++
 src/service/arm/meson.build                        | 15 ----
 src/service/cadet/meson.build                      | 15 ----
 src/service/core/meson.build                       |  8 --
 src/service/datacache/meson.build                  |  1 -
 src/service/datastore/meson.build                  | 10 ---
 src/service/dht/meson.build                        | 37 ---------
 src/service/dns/meson.build                        |  1 -
 src/service/fs/meson.build                         | 59 -------------
 src/service/gns/meson.build                        | 97 ----------------------
 src/service/identity/meson.build                   | 20 -----
 src/service/meson.build                            | 49 +++++++++++
 src/service/messenger/meson.build                  |  8 --
 src/service/namecache/meson.build                  | 32 -------
 src/service/namestore/meson.build                  | 82 +-----------------
 src/service/nat-auto/meson.build                   | 17 +---
 src/service/nat/meson.build                        |  8 --
 src/service/nse/meson.build                        |  8 --
 src/service/peerstore/meson.build                  |  1 -
 src/service/reclaim/meson.build                    | 79 ------------------
 src/service/regex/meson.build                      |  1 -
 src/service/rest/meson.build                       | 21 -----
 src/service/revocation/meson.build                 | 22 -----
 src/service/seti/meson.build                       |  1 -
 src/service/setu/meson.build                       |  1 -
 src/service/statistics/meson.build                 |  9 --
 src/service/testing/meson.build                    |  7 --
 src/service/transport/meson.build                  |  1 -
 src/service/util/Makefile.am                       |  3 +
 src/service/util/meson.build                       | 21 +++++
 src/{lib => service}/util/resolver.conf.in         |  0
 src/service/vpn/meson.build                        | 14 ----
 90 files changed, 760 insertions(+), 820 deletions(-)

diff --git a/meson.build b/meson.build
index b3bb62fac..d88b5432f 100644
--- a/meson.build
+++ b/meson.build
@@ -41,9 +41,6 @@ endif
 
 
 # TODO: Set to true to build a single libgnunet
-if get_option('monolith')
-  add_project_arguments('-DHAVE_GNUNET_MONOLITH', language: 'c')
-endif
 cdata.set('enable_experimental', get_option('experimental'))
 if get_option('experimental')
   add_project_arguments('-DHAVE_EXPERIMENTAL', language: 'c')
diff --git a/meson.options b/meson.options
index 9959aaedc..e243307e1 100644
--- a/meson.options
+++ b/meson.options
@@ -1,5 +1,5 @@
 # Build options
-option('monolith', type : 'boolean', value : false, description: 'Build a 
single, monolithic libgnunet shlib')
+option('monolith', type : 'boolean', value : true, description: 'Build a 
single, monolithic libgnunet shlib')
 option('testbed', type : 'boolean', value : false, description: 'Build the 
testbed')
 option('experimental', type : 'boolean', value : false, description: 'Build 
experimental components')
 option('logging', type : 'string', value: 'yes', description: 'Log setting. 
Can be set to "yes" (logging, default), "no" (no logging), "verbose" (extra 
loggin"), veryverbose (even more logging)')
diff --git a/src/cli/arm/meson.build b/src/cli/arm/meson.build
new file mode 100644
index 000000000..a50e47ee9
--- /dev/null
+++ b/src/cli/arm/meson.build
@@ -0,0 +1,8 @@
+gnunetarm_src = ['gnunet-arm.c']
+
+executable ('gnunet-arm',
+            gnunetarm_src,
+            dependencies: [libgnunetarm_dep, libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
diff --git a/src/cli/cadet/meson.build b/src/cli/cadet/meson.build
new file mode 100644
index 000000000..09a1965ac
--- /dev/null
+++ b/src/cli/cadet/meson.build
@@ -0,0 +1,15 @@
+executable ('gnunet-cadet',
+            ['gnunet-cadet.c'],
+            dependencies: [libgnunetcadet_dep,
+                           libgnunetutil_dep,
+                           libgnunetcore_dep,
+                           libgnunetdht_dep,
+                           m_dep,
+                           libgnunetstatistics_dep,
+                           libgnunetpeerstore_dep,
+                           libgnunettransportapplication_dep,
+                           libgnunethello_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+
diff --git a/src/cli/core/meson.build b/src/cli/core/meson.build
new file mode 100644
index 000000000..db246a3c4
--- /dev/null
+++ b/src/cli/core/meson.build
@@ -0,0 +1,6 @@
+executable ('gnunet-core',
+            ['gnunet-core.c'],
+            dependencies: [libgnunetcore_dep, libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
diff --git a/src/cli/datastore/meson.build b/src/cli/datastore/meson.build
new file mode 100644
index 000000000..7ec8eec47
--- /dev/null
+++ b/src/cli/datastore/meson.build
@@ -0,0 +1,9 @@
+executable ('gnunet-datastore',
+            ['gnunet-datastore.c'],
+            dependencies: [libgnunetdatastore_dep,
+                           libgnunetutil_dep,
+                           libgnunetstatistics_dep,
+                           libgnunetdatacache_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
diff --git a/src/cli/dht/meson.build b/src/cli/dht/meson.build
new file mode 100644
index 000000000..d8c326513
--- /dev/null
+++ b/src/cli/dht/meson.build
@@ -0,0 +1,25 @@
+executable ('gnunet-dht-put',
+            ['gnunet-dht-put.c'],
+            dependencies: [libgnunetdht_dep, libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-dht-get',
+            ['gnunet-dht-get.c'],
+            dependencies: [libgnunetdht_dep, libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-dht-monitor',
+            ['gnunet-dht-monitor.c'],
+            dependencies: [libgnunetdht_dep, libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-dht-hello',
+            ['gnunet-dht-hello.c'],
+            dependencies: [libgnunetdht_dep, libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+
diff --git a/src/cli/fs/meson.build b/src/cli/fs/meson.build
new file mode 100644
index 000000000..1b29dd56d
--- /dev/null
+++ b/src/cli/fs/meson.build
@@ -0,0 +1,51 @@
+executable ('gnunet-search',
+            'gnunet-search.c',
+            dependencies: [libgnunetfs_dep,
+                           libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-unindex',
+            'gnunet-unindex.c',
+            dependencies: [libgnunetfs_dep,
+                           libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-auto-share',
+            'gnunet-auto-share.c',
+            dependencies: [libgnunetfs_dep,
+                           libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-directory',
+            'gnunet-directory.c',
+            dependencies: [libgnunetfs_dep,
+                           libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-download',
+            'gnunet-download.c',
+            dependencies: [libgnunetfs_dep,
+                           libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-fs',
+            'gnunet-fs.c',
+            dependencies: [libgnunetfs_dep,
+                           libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-publish',
+            'gnunet-publish.c',
+            dependencies: [libgnunetfs_dep,
+                           libgnunetidentity_dep,
+                           libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+
diff --git a/src/cli/gns/meson.build b/src/cli/gns/meson.build
new file mode 100644
index 000000000..57f4f3c5f
--- /dev/null
+++ b/src/cli/gns/meson.build
@@ -0,0 +1,65 @@
+configure_file(input : 'gnunet-gns-proxy-setup-ca.in',
+               output : 'gnunet-gns-proxy-setup-ca',
+               configuration : cdata,
+               install: true,
+               install_dir: get_option('bindir'))
+
+install_data('gnunet-gns-proxy-ca.template',
+             install_dir: get_option('datadir')/'gnunet')
+
+executable ('gnunet-gns',
+            'gnunet-gns.c',
+            dependencies: [libgnunetgns_dep,
+                           libgnunetgnsrecord_dep,
+                           idn_dep,
+                           libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+
+testgns = [
+  'test_dns2gns',
+  'test_gns_at_lookup',
+  'test_gns_caa_lookup',
+  'test_gns_config_lookup',
+  'test_gns_delegated_lookup',
+  'test_gns_dht_lookup',
+  'test_gns_gns2dns_cname_lookup',
+  'test_gns_gns2dns_lookup',
+  'test_gns_gns2dns_zkey_lookup',
+  'test_gns_ipv6_lookup',
+  'test_gns_lookup',
+  'test_gns_multiple_record_lookup',
+  'test_gns_mx_lookup',
+  'test_gns_quickupdate',
+  'test_gns_redirect_lookup',
+  'test_gns_rel_expiration',
+  'test_gns_revocation',
+  'test_gns_soa_lookup',
+  'test_gns_txt_lookup',
+  'test_gns_zkey_lookup',
+]
+
+testconfigs = [
+  'test_dns2gns.conf',
+  'test_gns_defaults.conf',
+  'test_gns_lookup.conf',
+  'test_gns_lookup_peer1.conf',
+  'test_gns_lookup_peer2.conf',
+  'test_gns_proxy.conf',
+  'test_gns_simple_lookup.conf'
+]
+
+foreach f : testconfigs
+  configure_file(input: f, output: f, copy: true)
+endforeach
+
+foreach t : testgns
+
+  test_filename = t + '.sh'
+  test_file = configure_file(input : test_filename,
+               output : test_filename,
+               copy: true)
+
+  test(t, test_file, suite: 'gns', workdir: meson.current_build_dir(), 
is_parallel: false)
+endforeach
diff --git a/src/service/gns/test_dns2gns.conf b/src/cli/gns/test_dns2gns.conf
similarity index 100%
rename from src/service/gns/test_dns2gns.conf
rename to src/cli/gns/test_dns2gns.conf
diff --git a/src/service/gns/test_gns_defaults.conf 
b/src/cli/gns/test_gns_defaults.conf
similarity index 100%
rename from src/service/gns/test_gns_defaults.conf
rename to src/cli/gns/test_gns_defaults.conf
diff --git a/src/service/gns/test_gns_lookup.conf 
b/src/cli/gns/test_gns_lookup.conf
similarity index 100%
rename from src/service/gns/test_gns_lookup.conf
rename to src/cli/gns/test_gns_lookup.conf
diff --git a/src/service/gns/test_gns_lookup_peer1.conf 
b/src/cli/gns/test_gns_lookup_peer1.conf
similarity index 100%
rename from src/service/gns/test_gns_lookup_peer1.conf
rename to src/cli/gns/test_gns_lookup_peer1.conf
diff --git a/src/service/gns/test_gns_lookup_peer2.conf 
b/src/cli/gns/test_gns_lookup_peer2.conf
similarity index 100%
rename from src/service/gns/test_gns_lookup_peer2.conf
rename to src/cli/gns/test_gns_lookup_peer2.conf
diff --git a/src/service/gns/test_gns_proxy.conf 
b/src/cli/gns/test_gns_proxy.conf
similarity index 100%
rename from src/service/gns/test_gns_proxy.conf
rename to src/cli/gns/test_gns_proxy.conf
diff --git a/src/service/gns/test_gns_simple_lookup.conf 
b/src/cli/gns/test_gns_simple_lookup.conf
similarity index 100%
rename from src/service/gns/test_gns_simple_lookup.conf
rename to src/cli/gns/test_gns_simple_lookup.conf
diff --git a/src/cli/identity/meson.build b/src/cli/identity/meson.build
new file mode 100644
index 000000000..958a4ccd5
--- /dev/null
+++ b/src/cli/identity/meson.build
@@ -0,0 +1,9 @@
+executable ('gnunet-identity',
+            ['gnunet-identity.c'],
+            dependencies: [libgnunetidentity_dep,
+                           libgnunetutil_dep,
+                           libgnunetstatistics_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+
diff --git a/src/cli/meson.build b/src/cli/meson.build
new file mode 100644
index 000000000..cfaceab74
--- /dev/null
+++ b/src/cli/meson.build
@@ -0,0 +1,21 @@
+subdir('util')
+if get_option('monolith') == false
+  subdir('arm')
+endif
+subdir('statistics')
+subdir('datastore')
+subdir('nat')
+subdir('nat-auto')
+subdir('core')
+subdir('nse')
+subdir('dht')
+subdir('identity')
+subdir('namecache')
+subdir('namestore')
+subdir('cadet')
+subdir('revocation')
+subdir('vpn')
+subdir('gns')
+subdir('fs')
+subdir('reclaim')
+subdir('messenger')
diff --git a/src/cli/messenger/meson.build b/src/cli/messenger/meson.build
new file mode 100644
index 000000000..69bc6af75
--- /dev/null
+++ b/src/cli/messenger/meson.build
@@ -0,0 +1,8 @@
+executable ('gnunet-messenger',
+            'gnunet-messenger.c',
+            dependencies: [libgnunetmessenger_dep,
+                           libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+
diff --git a/src/cli/namecache/meson.build b/src/cli/namecache/meson.build
new file mode 100644
index 000000000..99ed68bca
--- /dev/null
+++ b/src/cli/namecache/meson.build
@@ -0,0 +1,10 @@
+executable ('gnunet-namecache',
+            gnunetnamecache_src,
+            dependencies: [libgnunetnamecache_dep,
+                           libgnunetutil_dep,
+                           libgnunetgnsrecord_dep,
+                           libgnunetidentity_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+
diff --git a/src/cli/namestore/meson.build b/src/cli/namestore/meson.build
new file mode 100644
index 000000000..2bad795b9
--- /dev/null
+++ b/src/cli/namestore/meson.build
@@ -0,0 +1,38 @@
+executable ('gnunet-namestore',
+          gnunetnamestore_src,
+          dependencies: [libgnunetnamestore_dep,
+                         libgnunetutil_dep,
+                         libgnunetgnsrecord_dep,
+                         libgnunetidentity_dep],
+          include_directories: [incdir, configuration_inc],
+        install: true,
+        install_dir: get_option('bindir'))
+executable ('gnunet-namestore-dbtool',
+            ['gnunet-namestore-dbtool.c'],
+            dependencies: [libgnunetnamestore_dep,
+                           libgnunetutil_dep,
+                           libgnunetgnsrecord_dep,
+                           libgnunetidentity_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-namestore-zonefile',
+            ['gnunet-namestore-zonefile.c'],
+            dependencies: [libgnunetnamestore_dep,
+                           libgnunetutil_dep,
+                           libgnunetgnsrecord_dep,
+                           libgnunetidentity_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-zoneimport',
+            ['gnunet-zoneimport.c'],
+            dependencies: [libgnunetnamestore_dep,
+                           libgnunetutil_dep,
+                           libgnunetstatistics_dep,
+                           libgnunetgnsrecord_dep,
+                           libgnunetidentity_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+
diff --git a/src/cli/nat-auto/meson.build b/src/cli/nat-auto/meson.build
new file mode 100644
index 000000000..69e719126
--- /dev/null
+++ b/src/cli/nat-auto/meson.build
@@ -0,0 +1,14 @@
+executable ('gnunet-nat-auto',
+            ['gnunet-nat-auto.c'],
+            dependencies: [libgnunetnatauto_dep, libgnunetutil_dep,
+                           libgnunetnat_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-nat-server',
+            ['gnunet-nat-server.c'],
+            dependencies: [libgnunetnatauto_dep, libgnunetutil_dep, 
libgnunetnat_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+
diff --git a/src/cli/nat/meson.build b/src/cli/nat/meson.build
new file mode 100644
index 000000000..41af0c087
--- /dev/null
+++ b/src/cli/nat/meson.build
@@ -0,0 +1,7 @@
+executable ('gnunet-nat',
+            ['gnunet-nat.c'],
+            dependencies: [libgnunetnat_dep, libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+
diff --git a/src/cli/nse/meson.build b/src/cli/nse/meson.build
new file mode 100644
index 000000000..584c7eb71
--- /dev/null
+++ b/src/cli/nse/meson.build
@@ -0,0 +1,7 @@
+executable ('gnunet-nse',
+            ['gnunet-nse.c'],
+            dependencies: [libgnunetnse_dep, m_dep, libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+
diff --git a/src/cli/reclaim/meson.build b/src/cli/reclaim/meson.build
new file mode 100644
index 000000000..53ce13edb
--- /dev/null
+++ b/src/cli/reclaim/meson.build
@@ -0,0 +1,22 @@
+executable ('gnunet-reclaim',
+            'gnunet-reclaim.c',
+            dependencies: [libgnunetreclaim_dep,
+                           libgnunetidentity_dep,
+                           libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-did',
+            'gnunet-did.c',
+            dependencies: [libgnunetreclaim_dep,
+                           libgnunetdid_dep,
+                           libgnunetgns_dep,
+                           libgnunetnamestore_dep,
+                           libgnunetidentity_dep,
+                           libgnunetutil_dep],
+            include_directories: [incdir,
+                                  configuration_inc,
+                                  include_directories 
('../../service/reclaim')],
+            install: true,
+            install_dir: get_option('bindir'))
+
diff --git a/src/cli/revocation/meson.build b/src/cli/revocation/meson.build
new file mode 100644
index 000000000..83923c278
--- /dev/null
+++ b/src/cli/revocation/meson.build
@@ -0,0 +1,12 @@
+executable ('gnunet-revocation',
+            ['gnunet-revocation.c'],
+            dependencies: [libgnunetrevocation_dep,
+                           libgnunetutil_dep,
+                           libgnunetstatistics_dep,
+                           libgnunetcore_dep,
+                           libgnunetsetu_dep,
+                           libgnunetidentity_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+
diff --git a/src/cli/statistics/meson.build b/src/cli/statistics/meson.build
new file mode 100644
index 000000000..ea0af10c7
--- /dev/null
+++ b/src/cli/statistics/meson.build
@@ -0,0 +1,8 @@
+executable ('gnunet-statistics',
+            ['gnunet-statistics.c'],
+            dependencies: [libgnunetstatistics_dep, libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+
+
diff --git a/src/cli/util/meson.build b/src/cli/util/meson.build
new file mode 100644
index 000000000..ed9c3105c
--- /dev/null
+++ b/src/cli/util/meson.build
@@ -0,0 +1,62 @@
+executable ('gnunet-base32',
+            ['gnunet-base32.c'],
+            dependencies: [libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-config',
+            ['gnunet-config.c'],
+            dependencies: [libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-resolver',
+            ['gnunet-resolver.c'],
+            dependencies: [libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-ecc',
+            ['gnunet-ecc.c'],
+            dependencies: [libgnunetutil_dep, gcrypt_dep, m_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-scrypt',
+            ['gnunet-scrypt.c'],
+            dependencies: [libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+executable ('gnunet-uri',
+            ['gnunet-uri.c'],
+            dependencies: [libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
+if zbar_dep.found()
+  executable ('gnunet-qr',
+              ['gnunet-qr.c'],
+              dependencies: [zbar_dep, libgnunetutil_dep],
+              include_directories: [incdir, configuration_inc],
+              install: true,
+              install_dir: get_option('bindir'))
+endif
+executable ('gnunet-config-diff',
+            ['gnunet-config-diff.c'],
+            dependencies: [libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: false)
+
+executable ('gnunet-timeout',
+            ['gnunet-timeout.c'],
+            dependencies: [libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('libdir') / 'gnunet' / 'libexec')
+executable ('gnunet-crypto-tvg',
+            ['gnunet-crypto-tvg.c'],
+            dependencies: [libgnunetutil_dep, json_dep],
+            include_directories: [incdir, configuration_inc],
+            install: false)
+
diff --git a/src/cli/vpn/meson.build b/src/cli/vpn/meson.build
new file mode 100644
index 000000000..477551f1d
--- /dev/null
+++ b/src/cli/vpn/meson.build
@@ -0,0 +1,13 @@
+executable ('gnunet-vpn',
+            ['gnunet-vpn.c'],
+            dependencies: [libgnunetvpn_dep,
+                           libgnunetutil_dep,
+                           libgnunetstatistics_dep,
+                           libgnunetregex_dep,
+                           libgnunetcore_dep,
+                           libgnunetcadet_dep,
+                           libgnunetblock_dep],
+            include_directories: [incdir, configuration_inc, exitdir],
+            install: true,
+            install_dir: get_option('bindir'))
+
diff --git a/src/contrib/cli/meson.build b/src/contrib/cli/meson.build
new file mode 100644
index 000000000..26b120864
--- /dev/null
+++ b/src/contrib/cli/meson.build
@@ -0,0 +1 @@
+subdir('template')
diff --git a/src/contrib/cli/template/meson.build 
b/src/contrib/cli/template/meson.build
new file mode 100644
index 000000000..f5adc97b3
--- /dev/null
+++ b/src/contrib/cli/template/meson.build
@@ -0,0 +1,6 @@
+executable ('gnunet-template',
+            ['gnunet-template.c'],
+            dependencies: [libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('bindir'))
diff --git a/src/contrib/meson.build b/src/contrib/meson.build
new file mode 100644
index 000000000..e856ea7ef
--- /dev/null
+++ b/src/contrib/meson.build
@@ -0,0 +1,5 @@
+#subdir('lib')
+subdir('service')
+#subdir('plugin')
+#subdir('rest-plugin')
+subdir('cli')
diff --git a/src/contrib/service/meson.build b/src/contrib/service/meson.build
new file mode 100644
index 000000000..eae7b7c8e
--- /dev/null
+++ b/src/contrib/service/meson.build
@@ -0,0 +1,11 @@
+subdir('template')
+subdir('set')
+subdir('consensus')
+#subdir('auction')
+#subdir('abd')
+#subdir('rps')
+subdir('scalarproduct')
+if conversation_backend != 'none'
+  subdir('conversation')
+endif
+subdir('secretsharing')
diff --git a/src/contrib/service/template/meson.build 
b/src/contrib/service/template/meson.build
index cffaa9f14..b17b86709 100644
--- a/src/contrib/service/template/meson.build
+++ b/src/contrib/service/template/meson.build
@@ -6,16 +6,6 @@ configure_file(input : 'template.conf',
                install: true,
                install_dir: pkgcfgdir)
 
-if get_option('monolith')
-  subdir_done()
-endif
-
-executable ('gnunet-template',
-            ['gnunet-template.c'],
-            dependencies: [libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
 executable ('gnunet-service-template',
             gnunetservicetemplate_src,
             dependencies: [libgnunetutil_dep],
diff --git a/src/lib/block/meson.build b/src/lib/block/meson.build
index b9bde48f6..999391c27 100644
--- a/src/lib/block/meson.build
+++ b/src/lib/block/meson.build
@@ -1,13 +1,6 @@
 libgnunetblock_src = ['block.c']
 libgnunetblockgroup_src = ['bg_bf.c']
 
-if get_option('monolith')
-  foreach p : libgnunetblock_src + libgnunetblockgroup_src
-    gnunet_src += 'block/' + p
-  endforeach
-  subdir_done()
-endif
-
 libgnunetblock = library('gnunetblock',
         libgnunetblock_src,
         dependencies: libgnunetutil_dep,
@@ -29,19 +22,3 @@ libgnunetblockgroup = library('gnunetblockgroup',
         soversion: '0',
         install_dir: get_option('libdir'))
 libgnunetblockgroup_dep = declare_dependency(link_with : libgnunetblockgroup)
-
-plugin_dep = [libgnunetutil_dep, libgnunetblock_dep, libgnunetblockgroup_dep]
-shared_module('gnunet_plugin_block_test',
-      ['plugin_block_test.c'],
-      dependencies: plugin_dep,
-      include_directories: [incdir, configuration_inc],
-      install: true,
-      install_dir: get_option('libdir')/'gnunet')
-
-shared_module('gnunet_plugin_block_template',
-      ['plugin_block_template.c'],
-      dependencies: plugin_dep,
-      include_directories: [incdir, configuration_inc],
-      install: false,
-      install_dir: get_option('libdir')/'gnunet')
-
diff --git a/src/lib/curl/meson.build b/src/lib/curl/meson.build
index 00f35aa20..77594d6c1 100644
--- a/src/lib/curl/meson.build
+++ b/src/lib/curl/meson.build
@@ -1,13 +1,6 @@
 libgnunetcurl_src = ['curl.c',
                     'curl_reschedule.c']
 
-if get_option('monolith')
-  foreach p : libgnunetcurl_src
-    gnunet_src += 'curl/' + p
-  endforeach
-  subdir_done()
-endif
-
 libgnunetcurl = library('gnunetcurl',
         libgnunetcurl_src,
         soversion: '0',
diff --git a/src/lib/gnsrecord/meson.build b/src/lib/gnsrecord/meson.build
index 11b355796..3e35e0caf 100644
--- a/src/lib/gnsrecord/meson.build
+++ b/src/lib/gnsrecord/meson.build
@@ -4,20 +4,12 @@ libgnunetgnsrecord_src = ['gnsrecord.c',
                           'gnsrecord_misc.c']
 libgnunetgnsrecordjson_src = ['json_gnsrecord.c']
 
-if get_option('monolith')
-  foreach p : libgnunetgnsrecord_src + libgnunetgnsrecordjson_src
-    gnunet_src += 'gnsrecord/' + p
-  endforeach
-  subdir_done()
-endif
-
 libgnunetgnsrecord = library('gnunetgnsrecord',
         libgnunetgnsrecord_src,
         soversion: '0',
         version: '0.0.0',
         dependencies: [libgnunetutil_dep,
                        sodium_dep,
-                       libgnunetidentity_dep,
                        gcrypt_dep],
         include_directories: [incdir, configuration_inc],
         install: true,
@@ -36,10 +28,3 @@ libgnunetgnsrecordjson = library('gnunetgnsrecordjson',
         install: true,
         install_dir: get_option('libdir'))
 libgnunetgnsrecordjson_dep = declare_dependency(link_with : 
libgnunetgnsrecordjson)
-
-shared_module('gnunet_plugin_gnsrecord_dns',
-              ['plugin_gnsrecord_dns.c'],
-              dependencies: [libgnunetutil_dep, libgnunetgnsrecord_dep],
-              include_directories: [incdir, configuration_inc],
-              install: true,
-              install_dir: get_option('libdir')/'gnunet')
diff --git a/src/lib/hello/meson.build b/src/lib/hello/meson.build
index c0df8b76c..1986316ac 100644
--- a/src/lib/hello/meson.build
+++ b/src/lib/hello/meson.build
@@ -3,13 +3,6 @@ libgnunethello_src = [#'hello.c',
                       'hello-ng.c',
                       'hello-uri.c']
 
-if get_option('monolith')
-  foreach p : libgnunethello_src
-    gnunet_src += 'hello/' + p
-  endforeach
-  subdir_done()
-endif
-
 libgnunethello = library('gnunethello',
         libgnunethello_src,
         soversion: '0',
diff --git a/src/lib/json/meson.build b/src/lib/json/meson.build
index 98385163e..804b2516f 100644
--- a/src/lib/json/meson.build
+++ b/src/lib/json/meson.build
@@ -4,13 +4,6 @@ libgnunetjson_src = ['json.c',
                     'json_mhd.c',
                     'json_pack.c']
 
-if get_option('monolith')
-  foreach p : libgnunetjson_src
-    gnunet_src += 'json/' + p
-  endforeach
-  subdir_done()
-endif
-
 libgnunetjson = library('gnunetjson',
         libgnunetjson_src,
         soversion: '0',
diff --git a/src/lib/meson.build b/src/lib/meson.build
new file mode 100644
index 000000000..41c662a4f
--- /dev/null
+++ b/src/lib/meson.build
@@ -0,0 +1,8 @@
+subdir('util')
+subdir('hello')
+subdir('block')
+subdir('json', if_found : json_dep)
+subdir('curl', if_found : [curl_dep])
+subdir('sq', if_found : [sqlite_dep])
+subdir('pq', if_found : [pq_dep])
+subdir('gnsrecord')
diff --git a/src/lib/pq/meson.build b/src/lib/pq/meson.build
index b9b20d93c..5b4372b70 100644
--- a/src/lib/pq/meson.build
+++ b/src/lib/pq/meson.build
@@ -7,13 +7,6 @@ libgnunetpq_src = ['pq.c',
                    'pq_query_helper.c',
                    'pq_result_helper.c']
 
-if get_option('monolith')
-  foreach p : libgnunetpq_src
-    gnunet_src += 'pq/' + p
-  endforeach
-  subdir_done()
-endif
-
 libgnunetpq = library('gnunetpq',
         libgnunetpq_src,
         soversion: '4',
diff --git a/src/lib/sq/meson.build b/src/lib/sq/meson.build
index 482d1c40a..dffda7872 100644
--- a/src/lib/sq/meson.build
+++ b/src/lib/sq/meson.build
@@ -4,13 +4,6 @@ libgnunetsq_src = ['sq.c',
                    'sq_query_helper.c',
                    'sq_result_helper.c']
 
-if get_option('monolith')
-  foreach p : libgnunetsq_src
-    gnunet_src += 'sq/' + p
-  endforeach
-  subdir_done()
-endif
-
 libgnunetsq = library('gnunetsq',
         libgnunetsq_src,
         soversion: '0',
diff --git a/src/lib/util/Makefile.am b/src/lib/util/Makefile.am
index 5d92dfdd6..d1b6f8287 100644
--- a/src/lib/util/Makefile.am
+++ b/src/lib/util/Makefile.am
@@ -10,8 +10,6 @@ pkgcfgdir= $(pkgdatadir)/config.d/
 dist_pkgcfg_DATA = \
   util.conf
 
-pkgcfg_DATA = \
-  resolver.conf
 
 TEST_CLIENT_UNIX_NC = test_client_unix.nc
 
diff --git a/src/lib/util/meson.build b/src/lib/util/meson.build
index 48a70cf0c..70ff201bc 100644
--- a/src/lib/util/meson.build
+++ b/src/lib/util/meson.build
@@ -32,6 +32,7 @@ libgnunetutil_src = ['bandwidth.c',
        'crypto_kdf.c',
        'crypto_mpi.c',
        'crypto_paillier.c',
+       'crypto_pkey.c',
        'crypto_pow.c',
        'crypto_random.c',
        'crypto_rsa.c',
@@ -70,26 +71,11 @@ libgnunetutil_src = ['bandwidth.c',
        'proc_compat.c',
             'gnunet_error_codes.c']
 
-gnunetserviceresolver_src = ['gnunet-service-resolver.c']
-
 configure_file(input : 'util.conf',
                output : 'util.conf',
                configuration : cdata,
                install: true,
                install_dir: pkgcfgdir)
-configure_file(input : 'resolver.conf.in',
-               output : 'resolver.conf',
-               configuration : cdata,
-               install: true,
-               install_dir: pkgcfgdir)
-
-
-if get_option('monolith')
-  foreach p : libgnunetutil_src + gnunetserviceresolver_src
-    gnunet_src += 'util/' + p
-  endforeach
-  subdir_done()
-endif
 
 libgnunetutil = library('gnunetutil',
         libgnunetutil_src,
@@ -103,87 +89,11 @@ libgnunetutil_dep = declare_dependency(link_with : 
libgnunetutil)
 pkg.generate(libgnunetutil, url: 'https://www.gnunet.org',
              description : 'Provides miscellaneous utility functions and API 
for GNUnet')
 
-shared_module('gnunet_plugin_utiltest',
-              ['test_plugin_plug.c'],
-              dependencies: [libgnunetutil_dep],
-              include_directories: [incdir, configuration_inc],
-              install: true,
-              install_dir: get_option('libdir')/'gnunet')
-
-executable ('gnunet-base32',
-            ['gnunet-base32.c'],
-            dependencies: [libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-config',
-            ['gnunet-config.c'],
-            dependencies: [libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-resolver',
-            ['gnunet-resolver.c'],
-            dependencies: [libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-ecc',
-            ['gnunet-ecc.c'],
-            dependencies: [libgnunetutil_dep, gcrypt_dep, m_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-scrypt',
-            ['gnunet-scrypt.c'],
-            dependencies: [libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-uri',
-            ['gnunet-uri.c'],
-            dependencies: [libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-if zbar_dep.found()
-  executable ('gnunet-qr',
-              ['gnunet-qr.c'],
-              dependencies: [zbar_dep, libgnunetutil_dep],
-              include_directories: [incdir, configuration_inc],
-              install: true,
-              install_dir: get_option('bindir'))
-endif
-executable ('gnunet-config-diff',
-            ['gnunet-config-diff.c'],
-            dependencies: [libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: false)
-
-executable ('gnunet-service-resolver',
-            gnunetserviceresolver_src,
-            dependencies: [libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('libdir') / 'gnunet' / 'libexec')
-executable ('gnunet-timeout',
-            ['gnunet-timeout.c'],
-            dependencies: [libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('libdir') / 'gnunet' / 'libexec')
-
-
 executable ('test_common_logging_dummy',
             ['test_common_logging_dummy.c'],
             dependencies: [libgnunetutil_dep],
             include_directories: [incdir, configuration_inc],
             install: false)
-executable ('gnunet-crypto-tvg',
-            ['gnunet-crypto-tvg.c'],
-            dependencies: [libgnunetutil_dep, json_dep],
-            include_directories: [incdir, configuration_inc],
-            install: false)
 
 test_bio = executable ('test_bio',
             ['test_bio.c'],
diff --git a/src/meson.build b/src/meson.build
index 251e135f4..5efd7e97a 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -3,70 +3,9 @@ if get_option('monolith') == true
 endif
 
 subdir('include')
-subdir('util')
-subdir('hello')
-subdir('block')
-if get_option('monolith') == false
-  subdir('arm')
-endif
-subdir('statistics')
-subdir('testing')
-subdir('json', if_found : json_dep)
-subdir('curl', if_found : [curl_dep])
-if get_option('monolith') == false
-  subdir('rest')
-endif
-subdir('sq', if_found : [sqlite_dep])
-subdir('pq', if_found : [pq_dep])
-subdir('datacache')
-subdir('datastore')
-subdir('template')
-subdir('peerstore')
-subdir('nat')
-subdir('nat-auto')
-subdir('transport')
-subdir('core')
-subdir('nse')
-subdir('dhtu')
-subdir('dht')
-subdir('hostlist')
-subdir('regex')
-subdir('dns')
-subdir('identity')
-subdir('gnsrecord')
-subdir('namecache')
-subdir('namestore')
-subdir('cadet')
-subdir('set')
-subdir('seti')
-subdir('setu')
-subdir('consensus')
-subdir('scalarproduct')
-subdir('revocation')
-subdir('vpn')
-subdir('gns')
-subdir('zonemaster')
-if conversation_backend != 'none'
-  subdir('conversation')
-endif
-subdir('fs')
-subdir('exit')
-subdir('pt')
-subdir('secretsharing')
-subdir('reclaim')
-subdir('messenger')
-##subdir('$(EXP_DIR)')
-
-if not get_option('monolith')
-  subdir_done()
-endif
-libgnunet = library('gnunet',
-                    gnunet_src,
-                    dependencies: gnunetdeps,
-                    include_directories: [incdir, configuration_inc, exitdir])
-libgnunet_dep = declare_dependency(link_with : libgnunet)
-
-# FIXME here we need to re-enter all that need to link against libgnunet
-# For example: dload plugins
-# We also need a logic that handles this
-# subdir('block')
+subdir('lib')
+subdir('service')
+subdir('plugin')
+subdir('rest-plugin')
+subdir('cli')
+subdir('contrib')
diff --git a/src/plugin/block/meson.build b/src/plugin/block/meson.build
new file mode 100644
index 000000000..480a9f4ca
--- /dev/null
+++ b/src/plugin/block/meson.build
@@ -0,0 +1,15 @@
+plugin_dep = [libgnunetutil_dep, libgnunetblock_dep, libgnunetblockgroup_dep]
+shared_module('gnunet_plugin_block_test',
+      ['plugin_block_test.c'],
+      dependencies: plugin_dep,
+      include_directories: [incdir, configuration_inc],
+      install: true,
+      install_dir: get_option('libdir')/'gnunet')
+
+shared_module('gnunet_plugin_block_template',
+      ['plugin_block_template.c'],
+      dependencies: plugin_dep,
+      include_directories: [incdir, configuration_inc],
+      install: false,
+      install_dir: get_option('libdir')/'gnunet')
+
diff --git a/src/plugin/fs/meson.build b/src/plugin/fs/meson.build
new file mode 100644
index 000000000..7978070f9
--- /dev/null
+++ b/src/plugin/fs/meson.build
@@ -0,0 +1,8 @@
+shared_module('gnunet_plugin_block_fs',
+              ['plugin_block_fs.c'],
+              dependencies: [libgnunetutil_dep,
+                             libgnunetblockgroup_dep],
+              include_directories: [incdir, configuration_inc],
+              install:true,
+              install_dir: get_option('libdir')/'gnunet')
+
diff --git a/src/plugin/gns/meson.build b/src/plugin/gns/meson.build
new file mode 100644
index 000000000..0e551b22e
--- /dev/null
+++ b/src/plugin/gns/meson.build
@@ -0,0 +1,17 @@
+shared_module('gnunet_plugin_gnsrecord_gns',
+        ['plugin_gnsrecord_gns.c'],
+        dependencies: [libgnunetutil_dep,
+                       libgnunetgnsrecord_dep,
+                       libgnunetidentity_dep],
+        include_directories: [incdir, configuration_inc],
+        install: true,
+        install_dir: get_option('libdir')/'gnunet')
+shared_module('gnunet_plugin_block_gns',
+              ['plugin_block_gns.c'],
+              dependencies: [libgnunetutil_dep,
+                             libgnunetgnsrecord_dep,
+                             libgnunetblockgroup_dep],
+              include_directories: [incdir, configuration_inc],
+              install:true,
+              install_dir: get_option('libdir')/'gnunet')
+
diff --git a/src/plugin/gnsrecord/meson.build b/src/plugin/gnsrecord/meson.build
new file mode 100644
index 000000000..0778fb233
--- /dev/null
+++ b/src/plugin/gnsrecord/meson.build
@@ -0,0 +1,6 @@
+shared_module('gnunet_plugin_gnsrecord_dns',
+              ['plugin_gnsrecord_dns.c'],
+              dependencies: [libgnunetutil_dep, libgnunetgnsrecord_dep],
+              include_directories: [incdir, configuration_inc],
+              install: true,
+              install_dir: get_option('libdir')/'gnunet')
diff --git a/src/plugin/meson.build b/src/plugin/meson.build
new file mode 100644
index 000000000..6ebae59d7
--- /dev/null
+++ b/src/plugin/meson.build
@@ -0,0 +1,9 @@
+subdir('block')
+subdir('dhtu')
+subdir('gnsrecord')
+subdir('namecache')
+subdir('namestore')
+subdir('revocation')
+subdir('gns')
+subdir('fs')
+subdir('reclaim')
diff --git a/src/plugin/namecache/meson.build b/src/plugin/namecache/meson.build
new file mode 100644
index 000000000..51504314d
--- /dev/null
+++ b/src/plugin/namecache/meson.build
@@ -0,0 +1,22 @@
+shared_module('gnunet_plugin_namecache_sqlite',
+        ['plugin_namecache_sqlite.c'],
+        dependencies: [libgnunetutil_dep,
+                       libgnunetgnsrecord_dep,
+                       sqlite_dep,
+                       libgnunetsq_dep],
+        include_directories: [incdir, configuration_inc],
+        install: true,
+        install_dir: get_option('libdir')/'gnunet')
+
+if pq_dep.found()
+  shared_module('gnunet_plugin_namecache_postgres',
+          ['plugin_namecache_postgres.c'],
+          dependencies: [libgnunetutil_dep,
+                         libgnunetgnsrecord_dep,
+                         pq_dep,
+                         libgnunetpq_dep],
+          include_directories: [incdir, configuration_inc],
+          install: true,
+          install_dir: get_option('libdir')/'gnunet')
+endif
+
diff --git a/src/plugin/namestore/meson.build b/src/plugin/namestore/meson.build
new file mode 100644
index 000000000..32db8c104
--- /dev/null
+++ b/src/plugin/namestore/meson.build
@@ -0,0 +1,42 @@
+shared_module('gnunet_plugin_rest_namestore',
+              ['plugin_rest_namestore.c'],
+              dependencies: [libgnunetrest_dep,
+                             libgnunetidentity_dep,
+                             libgnunetgnsrecordjson_dep,
+                             libgnunetgnsrecord_dep,
+                             libgnunetnamestore_dep,
+                             libgnunetjson_dep,
+                             libgnunetutil_dep,
+                             json_dep,
+                             mhd_dep],
+              include_directories: [incdir, configuration_inc],
+              install: true,
+              install_dir: get_option('libdir') / 'gnunet')
+
+
+shared_module('gnunet_plugin_namestore_sqlite',
+        libgnunetpluginnamestore_sqlite_src,
+        dependencies: [libgnunetutil_dep,
+                       libgnunetgnsrecord_dep,
+                       libgnunetidentity_dep,
+                       libgnunetsq_dep,
+                       libgnunetstatistics_dep,
+                       sqlite_dep],
+        include_directories: [incdir, configuration_inc],
+        install: true,
+        install_dir: get_option('libdir')/'gnunet')
+
+if pq_dep.found()
+  shared_module('gnunet_plugin_namestore_postgres',
+          ['plugin_namestore_postgres.c'],
+          dependencies: [libgnunetutil_dep,
+                         libgnunetgnsrecord_dep,
+                         libgnunetidentity_dep,
+                         libgnunetpq_dep,
+                         libgnunetstatistics_dep,
+                         pq_dep],
+          include_directories: [incdir, configuration_inc],
+          install: true,
+          install_dir: get_option('libdir')/'gnunet')
+endif
+
diff --git a/src/plugin/reclaim/meson.build b/src/plugin/reclaim/meson.build
new file mode 100644
index 000000000..51346b108
--- /dev/null
+++ b/src/plugin/reclaim/meson.build
@@ -0,0 +1,30 @@
+shared_module('gnunet_plugin_gnsrecord_reclaim',
+              ['plugin_gnsrecord_reclaim.c'],
+              dependencies: [libgnunetutil_dep, libgnunetgnsrecord_dep],
+              include_directories: [incdir, configuration_inc],
+              install: true,
+              install_dir: get_option('libdir')/'gnunet')
+
+shared_module('gnunet_plugin_reclaim_attribute_basic',
+              ['plugin_reclaim_attribute_basic.c'],
+              dependencies: [libgnunetrest_dep,
+                             libgnunetidentity_dep,
+                             libgnunetreclaim_dep,
+                             libgnunetjson_dep,
+                             libgnunetutil_dep,
+                             json_dep],
+              include_directories: [incdir, configuration_inc],
+              install: true,
+              install_dir: get_option('libdir') / 'gnunet')
+shared_module('gnunet_plugin_reclaim_credential_jwt',
+              ['plugin_reclaim_credential_jwt.c'],
+              dependencies: [libgnunetrest_dep,
+                             libgnunetidentity_dep,
+                             libgnunetreclaim_dep,
+                             libgnunetjson_dep,
+                             libgnunetutil_dep,
+                             json_dep],
+              include_directories: [incdir, configuration_inc],
+              install: true,
+              install_dir: get_option('libdir') / 'gnunet')
+
diff --git a/src/plugin/revocation/meson.build 
b/src/plugin/revocation/meson.build
new file mode 100644
index 000000000..7f8c8ec5e
--- /dev/null
+++ b/src/plugin/revocation/meson.build
@@ -0,0 +1,10 @@
+shared_module('gnunet_plugin_block_revocation',
+              ['plugin_block_revocation.c'],
+              dependencies: [libgnunetutil_dep,
+                             libgnunetidentity_dep,
+                             libgnunetrevocation_dep,
+                             libgnunetblock_dep],
+              include_directories: [incdir, configuration_inc],
+              install: true,
+              install_dir: get_option('libdir')/'gnunet')
+
diff --git a/src/rest-plugin/gns/meson.build b/src/rest-plugin/gns/meson.build
new file mode 100644
index 000000000..7a4deffed
--- /dev/null
+++ b/src/rest-plugin/gns/meson.build
@@ -0,0 +1,13 @@
+shared_module('gnunet_plugin_rest_gns',
+              ['plugin_rest_gns.c'],
+              dependencies: [libgnunetrest_dep,
+                             libgnunetgnsrecord_dep,
+                             libgnunetgnsrecordjson_dep,
+                             libgnunetgns_dep,
+                             libgnunetutil_dep,
+                             json_dep,
+                             mhd_dep],
+              include_directories: [incdir, configuration_inc],
+              install: true,
+              install_dir: get_option('libdir') / 'gnunet')
+
diff --git a/src/rest-plugin/identity/meson.build 
b/src/rest-plugin/identity/meson.build
new file mode 100644
index 000000000..f459918db
--- /dev/null
+++ b/src/rest-plugin/identity/meson.build
@@ -0,0 +1,11 @@
+shared_module('gnunet_plugin_rest_identity',
+              ['plugin_rest_identity.c'],
+              dependencies: [libgnunetrest_dep,
+                             libgnunetidentity_dep,
+                             libgnunetutil_dep,
+                             json_dep,
+                             mhd_dep],
+              include_directories: [incdir, configuration_inc],
+              install: true,
+              install_dir: get_option('libdir') / 'gnunet')
+
diff --git a/src/rest-plugin/meson.build b/src/rest-plugin/meson.build
new file mode 100644
index 000000000..31d49864e
--- /dev/null
+++ b/src/rest-plugin/meson.build
@@ -0,0 +1,6 @@
+if get_option('monolith') == false
+  subdir('rest')
+endif
+subdir('identity')
+subdir('gns')
+subdir('reclaim')
diff --git a/src/rest-plugin/reclaim/meson.build 
b/src/rest-plugin/reclaim/meson.build
new file mode 100644
index 000000000..da4406850
--- /dev/null
+++ b/src/rest-plugin/reclaim/meson.build
@@ -0,0 +1,29 @@
+shared_module('gnunet_plugin_rest_reclaim',
+              ['plugin_rest_reclaim.c', 'json_reclaim.c'],
+              dependencies: [libgnunetrest_dep,
+                             libgnunetidentity_dep,
+                             libgnunetreclaim_dep,
+                             libgnunetjson_dep,
+                             libgnunetutil_dep,
+                             json_dep,
+                             mhd_dep],
+              include_directories: [incdir, configuration_inc],
+              install: true,
+              install_dir: get_option('libdir') / 'gnunet')
+
+shared_module('gnunet_plugin_rest_openid_connect',
+              ['plugin_rest_openid_connect.c', 'oidc_helper.c'],
+              dependencies: [libgnunetrest_dep,
+                             libgnunetreclaim_dep,
+                             libgnunetidentity_dep,
+                             libgnunetgns_dep,
+                             libgnunetutil_dep,
+                             jose_dep,
+                             gcrypt_dep,
+                             json_dep,
+                             mhd_dep],
+              include_directories: [incdir, configuration_inc],
+              install: true,
+              install_dir: get_option('libdir') / 'gnunet')
+
+
diff --git a/src/rest-plugin/rest/meson.build b/src/rest-plugin/rest/meson.build
new file mode 100644
index 000000000..0c7219327
--- /dev/null
+++ b/src/rest-plugin/rest/meson.build
@@ -0,0 +1,18 @@
+shared_module('gnunet_plugin_rest_config',
+              ['plugin_rest_config.c'],
+              dependencies: [libgnunetrest_dep,
+                             libgnunetutil_dep,
+                             json_dep,
+                             mhd_dep],
+              include_directories: [incdir, configuration_inc],
+              install: true,
+              install_dir: get_option('libdir') / 'gnunet')
+shared_module('gnunet_plugin_rest_copying',
+              ['plugin_rest_copying.c'],
+              dependencies: [libgnunetrest_dep,
+                             libgnunetutil_dep,
+                             json_dep,
+                             mhd_dep],
+              include_directories: [incdir, configuration_inc],
+              install: true,
+              install_dir: get_option('libdir') / 'gnunet')
diff --git a/src/service/arm/meson.build b/src/service/arm/meson.build
index bfeb0b31f..db37c7424 100644
--- a/src/service/arm/meson.build
+++ b/src/service/arm/meson.build
@@ -3,8 +3,6 @@ libgnunetarm_src = ['arm_api.c',
 
 gnunetservicearm_src = ['gnunet-service-arm.c']
 
-gnunetarm_src = ['gnunet-arm.c']
-
 testarmapi_src = ['test_arm_api.c']
 testexpbo_src = ['test_exponential_backoff.c']
 testgnunetservice_src = ['test_gnunet_service_arm.c']
@@ -15,13 +13,6 @@ configure_file(input : 'arm.conf.in',
                install: true,
                install_dir: pkgcfgdir)
 
-if get_option('monolith')
-  foreach p : libgnunetarm_src + gnunetservicearm_src
-    gnunet_src += 'arm/' + p
-  endforeach
-  subdir_done()
-endif
-
 libgnunetarm = library('gnunetarm',
         libgnunetarm_src,
         dependencies: libgnunetutil_dep,
@@ -33,12 +24,6 @@ libgnunetarm = library('gnunetarm',
 pkg.generate(libgnunetarm, url: 'https://www.gnunet.org',
              description : 'Provides API for accessing the Automated Restart 
Manager service')
 libgnunetarm_dep = declare_dependency(link_with : libgnunetarm)
-executable ('gnunet-arm',
-            gnunetarm_src,
-            dependencies: [libgnunetarm_dep, libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
 
 executable ('gnunet-service-arm',
             gnunetservicearm_src,
diff --git a/src/service/cadet/meson.build b/src/service/cadet/meson.build
index a961c8e76..0f465e0e2 100644
--- a/src/service/cadet/meson.build
+++ b/src/service/cadet/meson.build
@@ -27,7 +27,6 @@ if get_option('monolith')
   foreach p : libgnunetcadet_src + gnunetservicecadet_src
     gnunet_src += 'cadet/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetcadet = library('gnunetcadet',
@@ -42,20 +41,6 @@ libgnunetcadet_dep = declare_dependency(link_with : 
libgnunetcadet)
 pkg.generate(libgnunetcadet, url: 'https://www.gnunet.org',
              description : 'API for multicast and multi-hop routing between 
GNUnet peers')
 
-executable ('gnunet-cadet',
-            gnunetservicecadet_src,
-            dependencies: [libgnunetcadet_dep,
-                           libgnunetutil_dep,
-                           libgnunetcore_dep,
-                           libgnunetdht_dep,
-                           m_dep,
-                           libgnunetstatistics_dep,
-                           libgnunetpeerstore_dep,
-                           libgnunettransportapplication_dep,
-                           libgnunethello_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
 executable ('gnunet-service-cadet',
             gnunetservicecadet_src,
             dependencies: [libgnunetcadet_dep,
diff --git a/src/service/core/meson.build b/src/service/core/meson.build
index 2e3e958af..6de15cd6d 100644
--- a/src/service/core/meson.build
+++ b/src/service/core/meson.build
@@ -17,7 +17,6 @@ if get_option('monolith')
   foreach p : libgnunetcore_src + gnunetservicecore_src
     gnunet_src += 'core/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetcore = library('gnunetcore',
@@ -64,13 +63,6 @@ shared_module('gnunet_test_core_plugin_cmd_just_run',
         install: true,
         install_dir: get_option('libdir')/'gnunet')
 
-executable ('gnunet-core',
-            ['gnunet-core.c'],
-            dependencies: [libgnunetcore_dep, libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-
 executable ('gnunet-service-core',
             gnunetservicecore_src,
             dependencies: [libgnunetcore_dep, libgnunetutil_dep,
diff --git a/src/service/datacache/meson.build 
b/src/service/datacache/meson.build
index 91bf1a02d..528885c0d 100644
--- a/src/service/datacache/meson.build
+++ b/src/service/datacache/meson.build
@@ -13,7 +13,6 @@ if get_option('monolith')
   foreach p : libgnunetdatacache_src
     gnunet_src += 'datacache/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetdatacache = library('gnunetdatacache',
diff --git a/src/service/datastore/meson.build 
b/src/service/datastore/meson.build
index c49bfe449..9dde488a0 100644
--- a/src/service/datastore/meson.build
+++ b/src/service/datastore/meson.build
@@ -16,7 +16,6 @@ if get_option('monolith')
   foreach p : libgnunetdatastore_src + gnunetservicedatastore_src
     gnunet_src += 'datastore/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetdatastore = library('gnunetdatastore',
@@ -63,15 +62,6 @@ if pq_dep.found()
           install_dir: get_option('libdir')/'gnunet')
 endif
 
-executable ('gnunet-datastore',
-            ['gnunet-datastore.c'],
-            dependencies: [libgnunetdatastore_dep,
-                           libgnunetutil_dep,
-                           libgnunetstatistics_dep,
-                           libgnunetdatacache_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
 executable ('gnunet-service-datastore',
             gnunetservicedatastore_src,
             dependencies: [libgnunetdatastore_dep,
diff --git a/src/service/dht/meson.build b/src/service/dht/meson.build
index ad5b183fa..49ace7e0b 100644
--- a/src/service/dht/meson.build
+++ b/src/service/dht/meson.build
@@ -15,7 +15,6 @@ if get_option('monolith')
   foreach p : libgnunetdht_src + gnunetservicedht_src
     gnunet_src += 'dht/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetdht = library('gnunetdht',
@@ -40,42 +39,6 @@ shared_module('gnunet_plugin_block_dht',
               install:true,
               install_dir: get_option('libdir')/'gnunet')
 
-executable ('gnunet-dht',
-            gnunetservicedht_src,
-            dependencies: [libgnunetdht_dep, libgnunetutil_dep,
-                           libgnunetblock_dep,
-                           m_dep,
-                           libgnunetdatacache_dep,
-                           libgnunetstatistics_dep,
-                           libgnunetblockgroup_dep,
-                           libgnunethello_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-dht-put',
-            ['gnunet-dht-put.c'],
-            dependencies: [libgnunetdht_dep, libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-dht-get',
-            ['gnunet-dht-get.c'],
-            dependencies: [libgnunetdht_dep, libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-dht-monitor',
-            ['gnunet-dht-monitor.c'],
-            dependencies: [libgnunetdht_dep, libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-dht-hello',
-            ['gnunet-dht-hello.c'],
-            dependencies: [libgnunetdht_dep, libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
 executable ('gnunet-service-dht',
             gnunetservicedht_src,
             dependencies: [libgnunetdht_dep, libgnunetutil_dep,
diff --git a/src/service/dns/meson.build b/src/service/dns/meson.build
index e1ac0bf29..fe0f6e954 100644
--- a/src/service/dns/meson.build
+++ b/src/service/dns/meson.build
@@ -15,7 +15,6 @@ if get_option('monolith')
   foreach p : libgnunetdns_src + gnunetservicedns_src + 
libgnunetpluginblockdns_src
     gnunet_src += 'dns/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetdns = library('gnunetdns',
diff --git a/src/service/fs/meson.build b/src/service/fs/meson.build
index 4246e4fcf..9e3e05cf7 100644
--- a/src/service/fs/meson.build
+++ b/src/service/fs/meson.build
@@ -38,7 +38,6 @@ if get_option('monolith')
   foreach p : libgnunetfs_src + gnunetservicefs_src
     gnunet_src += 'fs/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetfs = library('gnunetfs',
@@ -56,64 +55,6 @@ libgnunetfs_dep = declare_dependency(link_with : libgnunetfs)
 pkg.generate(libgnunetfs, url: 'https://www.gnunet.org',
              description : 'Provides API for GNUnet File-Sharing service')
 
-shared_module('gnunet_plugin_block_fs',
-              ['plugin_block_fs.c'],
-              dependencies: [libgnunetutil_dep,
-                             libgnunetblockgroup_dep],
-              include_directories: [incdir, configuration_inc],
-              install:true,
-              install_dir: get_option('libdir')/'gnunet')
-
-executable ('gnunet-search',
-            'gnunet-search.c',
-            dependencies: [libgnunetfs_dep,
-                           libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-unindex',
-            'gnunet-unindex.c',
-            dependencies: [libgnunetfs_dep,
-                           libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-auto-share',
-            'gnunet-auto-share.c',
-            dependencies: [libgnunetfs_dep,
-                           libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-directory',
-            'gnunet-directory.c',
-            dependencies: [libgnunetfs_dep,
-                           libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-download',
-            'gnunet-download.c',
-            dependencies: [libgnunetfs_dep,
-                           libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-fs',
-            'gnunet-fs.c',
-            dependencies: [libgnunetfs_dep,
-                           libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-publish',
-            'gnunet-publish.c',
-            dependencies: [libgnunetfs_dep,
-                           libgnunetidentity_dep,
-                           libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
 executable ('gnunet-service-fs',
             gnunetservicefs_src,
             dependencies: [libgnunetfs_dep,
diff --git a/src/service/gns/meson.build b/src/service/gns/meson.build
index b82694026..fb70a72b0 100644
--- a/src/service/gns/meson.build
+++ b/src/service/gns/meson.build
@@ -17,20 +17,10 @@ configure_file(input : 'tlds.conf',
                install: true,
                install_dir: pkgcfgdir)
 
-configure_file(input : 'gnunet-gns-proxy-setup-ca.in',
-               output : 'gnunet-gns-proxy-setup-ca',
-               configuration : cdata,
-               install: true,
-               install_dir: get_option('bindir'))
-
-install_data('gnunet-gns-proxy-ca.template',
-             install_dir: get_option('datadir')/'gnunet')
-
 if get_option('monolith')
   foreach p : libgnunetgns_src + gnunetservicegns_src
     gnunet_src += 'gns/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetgns = library('gnunetgns',
@@ -47,45 +37,6 @@ libgnunetgns_dep = declare_dependency(link_with : 
libgnunetgns)
 pkg.generate(libgnunetgns, url: 'https://www.gnunet.org',
              description : 'Provides API to access the GNU Name System')
 
-shared_module('gnunet_plugin_gnsrecord_gns',
-        ['plugin_gnsrecord_gns.c'],
-        dependencies: [libgnunetutil_dep,
-                       libgnunetgnsrecord_dep,
-                       libgnunetidentity_dep],
-        include_directories: [incdir, configuration_inc],
-        install: true,
-        install_dir: get_option('libdir')/'gnunet')
-shared_module('gnunet_plugin_block_gns',
-              ['plugin_block_gns.c'],
-              dependencies: [libgnunetutil_dep,
-                             libgnunetgnsrecord_dep,
-                             libgnunetblockgroup_dep],
-              include_directories: [incdir, configuration_inc],
-              install:true,
-              install_dir: get_option('libdir')/'gnunet')
-shared_module('gnunet_plugin_rest_gns',
-              ['plugin_rest_gns.c'],
-              dependencies: [libgnunetrest_dep,
-                             libgnunetgnsrecord_dep,
-                             libgnunetgnsrecordjson_dep,
-                             libgnunetgns_dep,
-                             libgnunetutil_dep,
-                             json_dep,
-                             mhd_dep],
-              include_directories: [incdir, configuration_inc],
-              install: true,
-              install_dir: get_option('libdir') / 'gnunet')
-
-
-executable ('gnunet-gns',
-            'gnunet-gns.c',
-            dependencies: [libgnunetgns_dep,
-                           libgnunetgnsrecord_dep,
-                           idn_dep,
-                           libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
 executable ('gnunet-gns-proxy',
             gnunetgnsproxy_src,
             dependencies: [libgnunetgns_dep,
@@ -160,51 +111,3 @@ executable ('gnunet-dns2gns',
 if have_nss
   subdir('nss')
 endif
-
-testgns = [
-  'test_dns2gns',
-  'test_gns_at_lookup',
-  'test_gns_caa_lookup',
-  'test_gns_config_lookup',
-  'test_gns_delegated_lookup',
-  'test_gns_dht_lookup',
-  'test_gns_gns2dns_cname_lookup',
-  'test_gns_gns2dns_lookup',
-  'test_gns_gns2dns_zkey_lookup',
-  'test_gns_ipv6_lookup',
-  'test_gns_lookup',
-  'test_gns_multiple_record_lookup',
-  'test_gns_mx_lookup',
-  'test_gns_quickupdate',
-  'test_gns_redirect_lookup',
-  'test_gns_rel_expiration',
-  'test_gns_revocation',
-  'test_gns_soa_lookup',
-  'test_gns_txt_lookup',
-  'test_gns_zkey_lookup',
-  'test_plugin_rest_gns',
-]
-
-testconfigs = [
-  'test_dns2gns.conf',
-  'test_gns_defaults.conf',
-  'test_gns_lookup.conf',
-  'test_gns_lookup_peer1.conf',
-  'test_gns_lookup_peer2.conf',
-  'test_gns_proxy.conf',
-  'test_gns_simple_lookup.conf'
-]
-
-foreach f : testconfigs
-  configure_file(input: f, output: f, copy: true)
-endforeach
-
-foreach t : testgns
-
-  test_filename = t + '.sh'
-  test_file = configure_file(input : test_filename,
-               output : test_filename,
-               copy: true)
-
-  test(t, test_file, suite: 'gns', workdir: meson.current_build_dir(), 
is_parallel: false)
-endforeach
diff --git a/src/service/identity/meson.build b/src/service/identity/meson.build
index c9e4f9bb4..961badbbc 100644
--- a/src/service/identity/meson.build
+++ b/src/service/identity/meson.build
@@ -15,7 +15,6 @@ if get_option('monolith')
   foreach p : libgnunetidentity_src + gnunetserviceidentity_src
     gnunet_src += 'identity/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetidentity = library('gnunetidentity',
@@ -29,26 +28,7 @@ libgnunetidentity = library('gnunetidentity',
 libgnunetidentity_dep = declare_dependency(link_with : libgnunetidentity)
 pkg.generate(libgnunetidentity, url: 'https://www.gnunet.org',
              description : 'API to access and organize private keys of the 
user egos')
-shared_module('gnunet_plugin_rest_identity',
-              ['plugin_rest_identity.c'],
-              dependencies: [libgnunetrest_dep,
-                             libgnunetidentity_dep,
-                             libgnunetutil_dep,
-                             json_dep,
-                             mhd_dep],
-              include_directories: [incdir, configuration_inc],
-              install: true,
-              install_dir: get_option('libdir') / 'gnunet')
 
-
-executable ('gnunet-identity',
-            ['gnunet-identity.c'],
-            dependencies: [libgnunetidentity_dep,
-                           libgnunetutil_dep,
-                           libgnunetstatistics_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
 executable ('gnunet-service-identity',
             gnunetserviceidentity_src,
             dependencies: [libgnunetidentity_dep,
diff --git a/src/service/meson.build b/src/service/meson.build
new file mode 100644
index 000000000..6acbc3b10
--- /dev/null
+++ b/src/service/meson.build
@@ -0,0 +1,49 @@
+subdir('util')
+subdir('arm')
+subdir('statistics')
+subdir('testing')
+subdir('rest')
+subdir('datacache')
+subdir('datastore')
+subdir('peerstore')
+subdir('nat')
+subdir('nat-auto')
+subdir('transport')
+subdir('core')
+subdir('nse')
+subdir('dht')
+subdir('hostlist')
+subdir('regex')
+subdir('dns')
+subdir('identity')
+subdir('namecache')
+subdir('namestore')
+subdir('cadet')
+subdir('seti')
+subdir('setu')
+subdir('revocation')
+subdir('vpn')
+subdir('gns')
+subdir('zonemaster')
+subdir('fs')
+subdir('exit')
+subdir('pt')
+subdir('reclaim')
+subdir('messenger')
+
+if not get_option('monolith')
+  subdir_done()
+endif
+libgnunet = library('gnunet',
+                    gnunet_src,
+                    dependencies: [gnunetdeps,
+                                   libgnunetutil_dep,
+                                   libgnunethello_dep,
+                                   libgnunetjson_dep,
+                                   libgnunetblock_dep,
+                                   libgnunetblockgroup_dep,
+                                   libgnunetgnsrecord_dep,
+                                   libgnunetcurl_dep],
+                    c_args: ['-DHAVE_GNUNET_MONOLITH=1'],
+                    include_directories: [incdir, configuration_inc, exitdir])
+libgnunet_dep = declare_dependency(link_with : libgnunet)
diff --git a/src/service/messenger/meson.build 
b/src/service/messenger/meson.build
index c855b45e4..a6de2f516 100644
--- a/src/service/messenger/meson.build
+++ b/src/service/messenger/meson.build
@@ -39,7 +39,6 @@ if get_option('monolith')
   foreach p : libgnunetmessenger_src + gnunetservicemessenger_src
     gnunet_src += 'messenger/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetmessenger = library('gnunetmessenger',
@@ -64,13 +63,6 @@ shared_module('gnunet_plugin_gnsrecord_messenger',
               install: true,
               install_dir: get_option('libdir')/'gnunet')
 
-executable ('gnunet-messenger',
-            'gnunet-messenger.c',
-            dependencies: [libgnunetmessenger_dep,
-                           libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
 executable ('gnunet-service-messenger',
             gnunetservicemessenger_src,
             dependencies: [libgnunetmessenger_dep,
diff --git a/src/service/namecache/meson.build 
b/src/service/namecache/meson.build
index ee6988a99..72dafcd9d 100644
--- a/src/service/namecache/meson.build
+++ b/src/service/namecache/meson.build
@@ -14,7 +14,6 @@ if get_option('monolith')
   foreach p : libgnunetnamecache_src + gnunetservicenamecache_src
     gnunet_src += 'namecache/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetnamecache = library('gnunetnamecache',
@@ -30,37 +29,6 @@ libgnunetnamecache_dep = declare_dependency(link_with : 
libgnunetnamecache)
 pkg.generate(libgnunetnamecache, url: 'https://www.gnunet.org',
              description : 'Provides API for storing GNS records to a cache')
 
-shared_module('gnunet_plugin_namecache_sqlite',
-        ['plugin_namecache_sqlite.c'],
-        dependencies: [libgnunetutil_dep,
-                       libgnunetgnsrecord_dep,
-                       sqlite_dep,
-                       libgnunetsq_dep],
-        include_directories: [incdir, configuration_inc],
-        install: true,
-        install_dir: get_option('libdir')/'gnunet')
-
-if pq_dep.found()
-  shared_module('gnunet_plugin_namecache_postgres',
-          ['plugin_namecache_postgres.c'],
-          dependencies: [libgnunetutil_dep,
-                         libgnunetgnsrecord_dep,
-                         pq_dep,
-                         libgnunetpq_dep],
-          include_directories: [incdir, configuration_inc],
-          install: true,
-          install_dir: get_option('libdir')/'gnunet')
-endif
-
-executable ('gnunet-namecache',
-            gnunetnamecache_src,
-            dependencies: [libgnunetnamecache_dep,
-                           libgnunetutil_dep,
-                           libgnunetgnsrecord_dep,
-                           libgnunetidentity_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
 executable ('gnunet-service-namecache',
             gnunetservicenamecache_src,
             dependencies: [libgnunetnamecache_dep,
diff --git a/src/service/namestore/meson.build 
b/src/service/namestore/meson.build
index fd7cfe553..879eaef09 100644
--- a/src/service/namestore/meson.build
+++ b/src/service/namestore/meson.build
@@ -12,10 +12,9 @@ configure_file(input : 'namestore.conf.in',
 
 
 if get_option('monolith')
-  foreach p : libgnunetnamestore_src + libgnunetpluginnamestore_sqlite_src + 
gnunetservicenamestore_src
+  foreach p : libgnunetnamestore_src + gnunetservicenamestore_src
     gnunet_src += 'namestore/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetnamestore = library('gnunetnamestore',
@@ -32,85 +31,6 @@ libgnunetnamestore_dep = declare_dependency(link_with : 
libgnunetnamestore)
 pkg.generate(libgnunetnamestore, url: 'https://www.gnunet.org',
              description : 'Provides API for storing GNS records to a 
database')
 
-shared_module('gnunet_plugin_rest_namestore',
-              ['plugin_rest_namestore.c'],
-              dependencies: [libgnunetrest_dep,
-                             libgnunetidentity_dep,
-                             libgnunetgnsrecordjson_dep,
-                             libgnunetgnsrecord_dep,
-                             libgnunetnamestore_dep,
-                             libgnunetjson_dep,
-                             libgnunetutil_dep,
-                             json_dep,
-                             mhd_dep],
-              include_directories: [incdir, configuration_inc],
-              install: true,
-              install_dir: get_option('libdir') / 'gnunet')
-
-
-shared_module('gnunet_plugin_namestore_sqlite',
-        libgnunetpluginnamestore_sqlite_src,
-        dependencies: [libgnunetutil_dep,
-                       libgnunetgnsrecord_dep,
-                       libgnunetidentity_dep,
-                       libgnunetsq_dep,
-                       libgnunetstatistics_dep,
-                       sqlite_dep],
-        include_directories: [incdir, configuration_inc],
-        install: true,
-        install_dir: get_option('libdir')/'gnunet')
-
-if pq_dep.found()
-  shared_module('gnunet_plugin_namestore_postgres',
-          ['plugin_namestore_postgres.c'],
-          dependencies: [libgnunetutil_dep,
-                         libgnunetgnsrecord_dep,
-                         libgnunetidentity_dep,
-                         libgnunetpq_dep,
-                         libgnunetstatistics_dep,
-                         pq_dep],
-          include_directories: [incdir, configuration_inc],
-          install: true,
-          install_dir: get_option('libdir')/'gnunet')
-endif
-
-executable ('gnunet-namestore',
-          gnunetnamestore_src,
-          dependencies: [libgnunetnamestore_dep,
-                         libgnunetutil_dep,
-                         libgnunetgnsrecord_dep,
-                         libgnunetidentity_dep],
-          include_directories: [incdir, configuration_inc],
-        install: true,
-        install_dir: get_option('bindir'))
-executable ('gnunet-namestore-dbtool',
-            ['gnunet-namestore-dbtool.c'],
-            dependencies: [libgnunetnamestore_dep,
-                           libgnunetutil_dep,
-                           libgnunetgnsrecord_dep,
-                           libgnunetidentity_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-namestore-zonefile',
-            ['gnunet-namestore-zonefile.c'],
-            dependencies: [libgnunetnamestore_dep,
-                           libgnunetutil_dep,
-                           libgnunetgnsrecord_dep,
-                           libgnunetidentity_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-zoneimport',
-            ['gnunet-zoneimport.c'],
-            dependencies: [libgnunetnamestore_dep,
-                           libgnunetutil_dep,
-                           libgnunetstatistics_dep,
-                           libgnunetgnsrecord_dep,
-                           libgnunetidentity_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
 executable ('gnunet-service-namestore',
             gnunetservicenamestore_src,
             dependencies: [libgnunetnamestore_dep,
diff --git a/src/service/nat-auto/meson.build b/src/service/nat-auto/meson.build
index 9b5ff4cdf..f0e780254 100644
--- a/src/service/nat-auto/meson.build
+++ b/src/service/nat-auto/meson.build
@@ -1,7 +1,6 @@
 libgnunetnatauto_src = ['nat_auto_api.c',
                         'nat_auto_api_test.c']
 
-gnunetservernat_src = ['gnunet-nat-server.c']
 gnunetservicenatauto_src = ['gnunet-service-nat-auto.c']
 
 configure_file(input : 'nat-auto.conf.in',
@@ -11,10 +10,9 @@ configure_file(input : 'nat-auto.conf.in',
                install_dir: pkgcfgdir)
 
 if get_option('monolith')
-  foreach p : libgnunetnatauto_src + gnunetservernat_src + 
gnunetservicenatauto_src
+  foreach p : libgnunetnatauto_src + gnunetservicenatauto_src
     gnunet_src += 'nat-auto/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetnatauto = library('gnunetnatauto',
@@ -27,19 +25,6 @@ libgnunetnatauto = library('gnunetnatauto',
         install_dir: get_option('libdir'))
 libgnunetnatauto_dep = declare_dependency(link_with : libgnunetnatauto)
 
-executable ('gnunet-nat-auto',
-            ['gnunet-nat-auto.c'],
-            dependencies: [libgnunetnatauto_dep, libgnunetutil_dep,
-                           libgnunetnat_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-nat-server',
-            gnunetservernat_src,
-            dependencies: [libgnunetnatauto_dep, libgnunetutil_dep, 
libgnunetnat_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
 executable ('gnunet-service-nat-auto',
             gnunetservicenatauto_src,
             dependencies: [libgnunetnatauto_dep, libgnunetutil_dep,
diff --git a/src/service/nat/meson.build b/src/service/nat/meson.build
index e629f6411..6cf204d34 100644
--- a/src/service/nat/meson.build
+++ b/src/service/nat/meson.build
@@ -19,7 +19,6 @@ if get_option('monolith')
   foreach p : libgnunetnat_src + gnunetservicenat_src
     gnunet_src += 'nat/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetnat = library('gnunetnat',
@@ -44,13 +43,6 @@ libgnunetnat = library('gnunetnatnew',
         install_dir: get_option('libdir'))
 libgnunetnat_dep = declare_dependency(link_with : libgnunetnat)
 
-executable ('gnunet-nat',
-            ['gnunet-nat.c'],
-            dependencies: [libgnunetnat_dep, libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-
 executable ('gnunet-service-nat',
             gnunetservicenat_src,
             dependencies: [libgnunetnat_dep, libgnunetutil_dep,
diff --git a/src/service/nse/meson.build b/src/service/nse/meson.build
index 7490214a3..146cedcf9 100644
--- a/src/service/nse/meson.build
+++ b/src/service/nse/meson.build
@@ -13,7 +13,6 @@ if get_option('monolith')
   foreach p : libgnunetnse_src + gnunetservicense_src
     gnunet_src += 'nse/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetnse = library('gnunetnse',
@@ -28,13 +27,6 @@ libgnunetnse_dep = declare_dependency(link_with : 
libgnunetnse)
 pkg.generate(libgnunetnse, url: 'https://www.gnunet.org',
              description : 'Provides API for accessing the NSE service')
 
-executable ('gnunet-nse',
-            ['gnunet-nse.c'],
-            dependencies: [libgnunetnse_dep, m_dep, libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-
 executable ('gnunet-service-nse',
             gnunetservicense_src,
             dependencies: [libgnunetnse_dep, libgnunetutil_dep,
diff --git a/src/service/peerstore/meson.build 
b/src/service/peerstore/meson.build
index 6c9853852..7d8710c4b 100644
--- a/src/service/peerstore/meson.build
+++ b/src/service/peerstore/meson.build
@@ -14,7 +14,6 @@ if get_option('monolith')
   foreach p : libgnunetpeerstore_src + gnunetservicepeerstore_src
     gnunet_src += 'peerstore/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetpeerstore = library('gnunetpeerstore',
diff --git a/src/service/reclaim/meson.build b/src/service/reclaim/meson.build
index fafc68a92..17f83f204 100644
--- a/src/service/reclaim/meson.build
+++ b/src/service/reclaim/meson.build
@@ -18,7 +18,6 @@ if get_option('monolith')
   foreach p : libgnunetreclaim_src + gnunetservicereclaim_src
     gnunet_src += 'reclaim/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetreclaim = library('gnunetreclaim',
@@ -34,13 +33,6 @@ libgnunetreclaim_dep = declare_dependency(link_with : 
libgnunetreclaim)
 pkg.generate(libgnunetreclaim, url: 'https://www.gnunet.org',
              description : 'Provides API to access reclaimID')
 
-shared_module('gnunet_plugin_gnsrecord_reclaim',
-              ['plugin_gnsrecord_reclaim.c'],
-              dependencies: [libgnunetutil_dep, libgnunetgnsrecord_dep],
-              include_directories: [incdir, configuration_inc],
-              install: true,
-              install_dir: get_option('libdir')/'gnunet')
-
 libgnunetdid = library('gnunetdid',
         libgnunetdid_src,
         soversion: '0',
@@ -58,77 +50,6 @@ libgnunetdid_dep = declare_dependency(link_with : 
libgnunetdid)
 pkg.generate(libgnunetdid, url: 'https://www.gnunet.org',
              description : 'Provides API to manipulate DID')
 
-shared_module('gnunet_plugin_rest_reclaim',
-              ['plugin_rest_reclaim.c', 'json_reclaim.c'],
-              dependencies: [libgnunetrest_dep,
-                             libgnunetidentity_dep,
-                             libgnunetreclaim_dep,
-                             libgnunetjson_dep,
-                             libgnunetutil_dep,
-                             json_dep,
-                             mhd_dep],
-              include_directories: [incdir, configuration_inc],
-              install: true,
-              install_dir: get_option('libdir') / 'gnunet')
-shared_module('gnunet_plugin_reclaim_attribute_basic',
-              ['plugin_reclaim_attribute_basic.c'],
-              dependencies: [libgnunetrest_dep,
-                             libgnunetidentity_dep,
-                             libgnunetreclaim_dep,
-                             libgnunetjson_dep,
-                             libgnunetutil_dep,
-                             json_dep],
-              include_directories: [incdir, configuration_inc],
-              install: true,
-              install_dir: get_option('libdir') / 'gnunet')
-shared_module('gnunet_plugin_reclaim_credential_jwt',
-              ['plugin_reclaim_credential_jwt.c'],
-              dependencies: [libgnunetrest_dep,
-                             libgnunetidentity_dep,
-                             libgnunetreclaim_dep,
-                             libgnunetjson_dep,
-                             libgnunetutil_dep,
-                             json_dep],
-              include_directories: [incdir, configuration_inc],
-              install: true,
-              install_dir: get_option('libdir') / 'gnunet')
-
-
-shared_module('gnunet_plugin_rest_openid_connect',
-              ['plugin_rest_openid_connect.c', 'oidc_helper.c'],
-              dependencies: [libgnunetrest_dep,
-                             libgnunetreclaim_dep,
-                             libgnunetidentity_dep,
-                             libgnunetgns_dep,
-                             libgnunetutil_dep,
-                             jose_dep,
-                             gcrypt_dep,
-                             json_dep,
-                             mhd_dep],
-              include_directories: [incdir, configuration_inc],
-              install: true,
-              install_dir: get_option('libdir') / 'gnunet')
-
-
-executable ('gnunet-reclaim',
-            'gnunet-reclaim.c',
-            dependencies: [libgnunetreclaim_dep,
-                           libgnunetidentity_dep,
-                           libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-executable ('gnunet-did',
-            'gnunet-did.c',
-            dependencies: [libgnunetreclaim_dep,
-                           libgnunetdid_dep,
-                           libgnunetgns_dep,
-                           libgnunetnamestore_dep,
-                           libgnunetidentity_dep,
-                           libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
 executable ('gnunet-service-reclaim',
             gnunetservicereclaim_src,
             dependencies: [libgnunetreclaim_dep,
diff --git a/src/service/regex/meson.build b/src/service/regex/meson.build
index 24bc8e31e..da607ca47 100644
--- a/src/service/regex/meson.build
+++ b/src/service/regex/meson.build
@@ -17,7 +17,6 @@ if get_option('monolith')
   foreach p : libgnunetregex_src + libgnunetregexblock_src + 
gnunetserviceregex_src
     gnunet_src += 'regex/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetregex = library('gnunetregex',
diff --git a/src/service/rest/meson.build b/src/service/rest/meson.build
index 2dd3d8de4..316724fdb 100644
--- a/src/service/rest/meson.build
+++ b/src/service/rest/meson.build
@@ -13,7 +13,6 @@ if get_option('monolith')
   foreach p : libgnunetrest_src + gnunetservicerest_src
     gnunet_src += 'rest/' + p
   endforeach
-  subdir_done()
 endif
 
 
@@ -29,26 +28,6 @@ pkg.generate(libgnunetrest, url: 'https://www.gnunet.org',
              description : 'Provides API for accessing the REST service')
 libgnunetrest_dep = declare_dependency(link_with : libgnunetrest)
 
-shared_module('gnunet_plugin_rest_config',
-              ['plugin_rest_config.c'],
-              dependencies: [libgnunetrest_dep,
-                             libgnunetutil_dep,
-                             json_dep,
-                             mhd_dep],
-              include_directories: [incdir, configuration_inc],
-              install: true,
-              install_dir: get_option('libdir') / 'gnunet')
-shared_module('gnunet_plugin_rest_copying',
-              ['plugin_rest_copying.c'],
-              dependencies: [libgnunetrest_dep,
-                             libgnunetutil_dep,
-                             json_dep,
-                             mhd_dep],
-              include_directories: [incdir, configuration_inc],
-              install: true,
-              install_dir: get_option('libdir') / 'gnunet')
-
-
 executable ('gnunet-rest-server',
             gnunetservicerest_src,
             dependencies: [libgnunetrest_dep, libgnunetutil_dep, mhd_dep],
diff --git a/src/service/revocation/meson.build 
b/src/service/revocation/meson.build
index 9a526af36..14e352ffa 100644
--- a/src/service/revocation/meson.build
+++ b/src/service/revocation/meson.build
@@ -13,7 +13,6 @@ if get_option('monolith')
   foreach p : libgnunetrevocation_src + gnunetservicerevocation_src
     gnunet_src += 'revocation/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetrevocation = library('gnunetrevocation',
@@ -28,27 +27,6 @@ libgnunetrevocation_dep = declare_dependency(link_with : 
libgnunetrevocation)
 pkg.generate(libgnunetrevocation, url: 'https://www.gnunet.org',
              description : 'Provides API to perform key revocation in GNUnet')
 
-shared_module('gnunet_plugin_block_revocation',
-              ['plugin_block_revocation.c'],
-              dependencies: [libgnunetutil_dep,
-                             libgnunetidentity_dep,
-                             libgnunetrevocation_dep,
-                             libgnunetblock_dep],
-              include_directories: [incdir, configuration_inc],
-              install: true,
-              install_dir: get_option('libdir')/'gnunet')
-
-executable ('gnunet-revocation',
-            ['gnunet-revocation.c'],
-            dependencies: [libgnunetrevocation_dep,
-                           libgnunetutil_dep,
-                           libgnunetstatistics_dep,
-                           libgnunetcore_dep,
-                           libgnunetsetu_dep,
-                           libgnunetidentity_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
 executable ('gnunet-service-revocation',
             gnunetservicerevocation_src,
             dependencies: [libgnunetrevocation_dep,
diff --git a/src/service/seti/meson.build b/src/service/seti/meson.build
index e5d3812ce..8538917d8 100644
--- a/src/service/seti/meson.build
+++ b/src/service/seti/meson.build
@@ -13,7 +13,6 @@ if get_option('monolith')
   foreach p : libgnunetseti_src + gnunetserviceseti_src
     gnunet_src += 'seti/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetseti = library('gnunetseti',
diff --git a/src/service/setu/meson.build b/src/service/setu/meson.build
index fe5611fd2..974f16274 100644
--- a/src/service/setu/meson.build
+++ b/src/service/setu/meson.build
@@ -15,7 +15,6 @@ if get_option('monolith')
   foreach p : libgnunetsetu_src + gnunetservicesetu_src
     gnunet_src += 'setu/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetsetu = library('gnunetsetu',
diff --git a/src/service/statistics/meson.build 
b/src/service/statistics/meson.build
index 14cdb0ac3..9c4d8c649 100644
--- a/src/service/statistics/meson.build
+++ b/src/service/statistics/meson.build
@@ -13,7 +13,6 @@ if get_option('monolith')
   foreach p : libgnunetstatistics_src + gnunetservicestatistics_src
     gnunet_src += 'statistics/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetstatistics = library('gnunetstatistics',
@@ -34,11 +33,3 @@ executable ('gnunet-service-statistics',
             include_directories: [incdir, configuration_inc],
             install: true,
             install_dir: get_option('libdir') / 'gnunet' / 'libexec')
-executable ('gnunet-statistics',
-            ['gnunet-statistics.c'],
-            dependencies: [libgnunetstatistics_dep, libgnunetutil_dep],
-            include_directories: [incdir, configuration_inc],
-            install: true,
-            install_dir: get_option('bindir'))
-
-
diff --git a/src/service/testing/meson.build b/src/service/testing/meson.build
index 68b5f5149..7e2069fb0 100644
--- a/src/service/testing/meson.build
+++ b/src/service/testing/meson.build
@@ -27,13 +27,6 @@ configure_file(input : 'testing.conf',
                install_dir: pkgcfgdir)
 
 
-if get_option('monolith')
-  #  foreach p : libgnunettesting_src
-  #    gnunet_src += 'testing/' + p
-  #  endforeach
-  subdir_done()
-endif
-
 libgnunettesting = library('gnunettesting',
         libgnunettesting_src,
         soversion: '1',
diff --git a/src/service/transport/meson.build 
b/src/service/transport/meson.build
index 65a2beeb3..4f8b592fd 100644
--- a/src/service/transport/meson.build
+++ b/src/service/transport/meson.build
@@ -24,7 +24,6 @@ if get_option('monolith')
   foreach p : libgnunettransportapplication_src + libgnunettransportcore_src + 
libgnunettransportcommunicator_src + libgnunettransportmonitor_src + 
gnunetservicetransport_src
     gnunet_src += 'transport/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunettransportapplication = library('gnunettransportapplication',
diff --git a/src/service/util/Makefile.am b/src/service/util/Makefile.am
index ecd1f5e1b..990c2b41d 100644
--- a/src/service/util/Makefile.am
+++ b/src/service/util/Makefile.am
@@ -7,6 +7,9 @@ libexecdir= $(pkglibdir)/libexec/
 
 pkgcfgdir= $(pkgdatadir)/config.d/
 
+pkgcfg_DATA = \
+  resolver.conf
+
 if USE_COVERAGE
   AM_CFLAGS = --coverage -O0
   XLIB = -lgcov
diff --git a/src/service/util/meson.build b/src/service/util/meson.build
new file mode 100644
index 000000000..a7199fa4b
--- /dev/null
+++ b/src/service/util/meson.build
@@ -0,0 +1,21 @@
+gnunetserviceresolver_src = ['gnunet-service-resolver.c']
+
+configure_file(input : 'resolver.conf.in',
+               output : 'resolver.conf',
+               configuration : cdata,
+               install: true,
+               install_dir: pkgcfgdir)
+
+
+if get_option('monolith')
+  foreach p : gnunetserviceresolver_src
+    gnunet_src += 'util/' + p
+  endforeach
+endif
+
+executable ('gnunet-service-resolver',
+            gnunetserviceresolver_src,
+            dependencies: [libgnunetutil_dep],
+            include_directories: [incdir, configuration_inc],
+            install: true,
+            install_dir: get_option('libdir') / 'gnunet' / 'libexec')
diff --git a/src/lib/util/resolver.conf.in b/src/service/util/resolver.conf.in
similarity index 100%
rename from src/lib/util/resolver.conf.in
rename to src/service/util/resolver.conf.in
diff --git a/src/service/vpn/meson.build b/src/service/vpn/meson.build
index e77b88432..ededbc68e 100644
--- a/src/service/vpn/meson.build
+++ b/src/service/vpn/meson.build
@@ -15,7 +15,6 @@ if get_option('monolith')
   foreach p : libgnunetvpn_src + gnunetservicevpn_src
     gnunet_src += 'vpn/' + p
   endforeach
-  subdir_done()
 endif
 
 libgnunetvpn = library('gnunetvpn',
@@ -30,19 +29,6 @@ pkg.generate(libgnunetvpn, url: 'https://www.gnunet.org',
              description : 'Provides API for accessing the VPN service')
 libgnunetvpn_dep = declare_dependency(link_with : libgnunetvpn)
 
-executable ('gnunet-vpn',
-            ['gnunet-vpn.c'],
-            dependencies: [libgnunetvpn_dep,
-                           libgnunetutil_dep,
-                           libgnunetstatistics_dep,
-                           libgnunetregex_dep,
-                           libgnunetcore_dep,
-                           libgnunetcadet_dep,
-                           libgnunetblock_dep],
-            include_directories: [incdir, configuration_inc, exitdir],
-            install: true,
-            install_dir: get_option('bindir'))
-
 executable ('gnunet-service-vpn',
             gnunetservicevpn_src,
             dependencies: [libgnunetvpn_dep,

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]