diff options
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 81 |
1 files changed, 50 insertions, 31 deletions
diff --git a/meson.build b/meson.build index 2b719ec257..86a04a70ed 100644 --- a/meson.build +++ b/meson.build @@ -1046,6 +1046,46 @@ libsystemd = shared_library( ############################################################ +# binaries that have --help and are intended for use by humans, +# usually, but not always, installed in /bin. +public_programs = [] + +subdir('src/libudev') +subdir('src/shared') +subdir('src/core') +subdir('src/udev') +subdir('src/network') + +subdir('src/analyze') +subdir('src/journal-remote') +subdir('src/coredump') +subdir('src/hostname') +subdir('src/import') +subdir('src/kernel-install') +subdir('src/locale') +subdir('src/machine') +subdir('src/nspawn') +subdir('src/resolve') +subdir('src/timedate') +subdir('src/timesync') +subdir('src/vconsole') +subdir('src/sulogin-shell') +subdir('src/boot/efi') + +subdir('src/test') +subdir('test') + +############################################################ + +# only static linking apart from libdl, to make sure that the +# module is linked to all libraries that it uses. +test_dlopen = executable( + 'test-dlopen', + test_dlopen_c, + include_directories : includes, + link_with : [libbasic], + dependencies : [libdl]) + foreach tuple : [['myhostname', 'HAVE_MYHOSTNAME', []], ['systemd', '', []], ['mymachines', 'ENABLE_MACHINED', []], @@ -1059,7 +1099,7 @@ foreach tuple : [['myhostname', 'HAVE_MYHOSTNAME', []], sym = 'src/nss-@0@/nss-@0@.sym'.format(module) version_script_arg = join_paths(meson.current_source_dir(), sym) - shared_library( + nss = shared_library( 'nss_' + module, 'src/nss-@0@/nss-@0@.c'.format(module), version : '2', @@ -1080,40 +1120,15 @@ foreach tuple : [['myhostname', 'HAVE_MYHOSTNAME', []], meson.add_install_script('sh', '-c', 'rm $DESTDIR@0@/libnss_@1@.so' .format(rootlibdir, module)) + + test('dlopen-nss_' + module, + test_dlopen, + args : [nss.full_path()]) # path to dlopen must include a slash endif endforeach ############################################################ -# binaries that have --help and are intended for use by humans, -# usually, but not always, installed in /bin. -public_programs = [] - -subdir('src/libudev') -subdir('src/shared') -subdir('src/core') -subdir('src/udev') -subdir('src/network') - -subdir('src/analyze') -subdir('src/journal-remote') -subdir('src/coredump') -subdir('src/hostname') -subdir('src/import') -subdir('src/kernel-install') -subdir('src/locale') -subdir('src/machine') -subdir('src/nspawn') -subdir('src/resolve') -subdir('src/timedate') -subdir('src/timesync') -subdir('src/vconsole') -subdir('src/sulogin-shell') -subdir('src/boot/efi') - -subdir('src/test') -subdir('test') - executable('systemd', systemd_sources, include_directories : includes, @@ -1325,7 +1340,7 @@ if conf.get('ENABLE_LOGIND', 0) == 1 if conf.get('HAVE_PAM', 0) == 1 version_script_arg = join_paths(meson.current_source_dir(), pam_systemd_sym) - shared_library( + pam_systemd = shared_library( 'pam_systemd', pam_systemd_c, name_prefix : '', @@ -1340,6 +1355,10 @@ if conf.get('ENABLE_LOGIND', 0) == 1 link_depends : pam_systemd_sym, install : true, install_dir : pamlibdir) + + test('dlopen-pam_systemd', + test_dlopen, + args : [pam_systemd.full_path()]) # path to dlopen must include a slash endif endif |