diff --git a/meson.build b/meson.build index fbb4090f18c..4a679449ce2 100644 --- a/meson.build +++ b/meson.build @@ -85,6 +85,8 @@ if rootprefixdir == '' endif rootprefixdir_noslash = rootprefixdir == '/' ? '' : rootprefixdir +have_standalone_binaries = get_option('standalone-binaries') + sysvinit_path = get_option('sysvinit-path') sysvrcnd_path = get_option('sysvrcnd-path') conf.set10('HAVE_SYSV_COMPAT', sysvinit_path != '' and sysvrcnd_path != '', @@ -1635,6 +1637,7 @@ subdir('src/nspawn') subdir('src/resolve') subdir('src/timedate') subdir('src/timesync') +subdir('src/tmpfiles') subdir('src/vconsole') subdir('src/boot/efi') @@ -2931,14 +2934,26 @@ if conf.get('ENABLE_SYSUSERS') == 1 install_rpath : rootlibexecdir, install : true, install_dir : rootbindir) + + if have_standalone_binaries + public_programs += executable( + 'systemd-sysusers.standalone', + 'src/sysusers/sysusers.c', + include_directories : includes, + link_with : [libshared_static, + libbasic, + libbasic_gcrypt, + libsystemd_static, + libjournal_client], + install : true, + install_dir : rootbindir) + endif endif if conf.get('ENABLE_TMPFILES') == 1 exe = executable( 'systemd-tmpfiles', - 'src/tmpfiles/tmpfiles.c', - 'src/tmpfiles/offline-passwd.c', - 'src/tmpfiles/offline-passwd.h', + systemd_tmpfiles_sources, include_directories : includes, link_with : [libshared], dependencies : [libacl], @@ -2953,6 +2968,21 @@ if conf.get('ENABLE_TMPFILES') == 1 # https://github.com/mesonbuild/meson/issues/2681 args : exe.full_path()) endif + + if have_standalone_binaries + public_programs += executable( + 'systemd-tmpfiles.standalone', + systemd_tmpfiles_sources, + include_directories : includes, + link_with : [libshared_static, + libbasic, + libbasic_gcrypt, + libsystemd_static, + libjournal_client], + dependencies : [libacl], + install : true, + install_dir : rootbindir) + endif endif if conf.get('ENABLE_HWDB') == 1 diff --git a/meson_options.txt b/meson_options.txt index 5e6842f9d63..e13bfb0c4b9 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -26,6 +26,8 @@ option('static-libsystemd', type : 'combo', option('static-libudev', type : 'combo', choices : ['false', 'true', 'pic', 'no-pic'], description : '''install a static library for libudev''') +option('standalone-binaries', type : 'boolean', value : 'false', + description : '''also build standalone versions of supported binaries''') option('sysvinit-path', type : 'string', value : '/etc/init.d', description : 'the directory where the SysV init scripts are located') diff --git a/src/tmpfiles/meson.build b/src/tmpfiles/meson.build new file mode 100644 index 00000000000..2f8fb29bd94 --- /dev/null +++ b/src/tmpfiles/meson.build @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: LGPL-2.1+ + +systemd_tmpfiles_sources = [ + 'src/tmpfiles/tmpfiles.c', + 'src/tmpfiles/offline-passwd.c', + 'src/tmpfiles/offline-passwd.h', +]