blob: 981b46fc0b2ada67cb313d826a578d5693173a54 [file] [log] [blame]
# SPDX-License-Identifier: LGPL-2.1-or-later
libcore_sources = files(
'apparmor-setup.c',
'audit-fd.c',
'automount.c',
'bpf-devices.c',
'bpf-firewall.c',
'bpf-foreign.c',
'bpf-lsm.c',
'bpf-socket-bind.c',
'cgroup.c',
'core-varlink.c',
'dbus-automount.c',
'dbus-cgroup.c',
'dbus-device.c',
'dbus-execute.c',
'dbus-job.c',
'dbus-kill.c',
'dbus-manager.c',
'dbus-mount.c',
'dbus-path.c',
'dbus-scope.c',
'dbus-service.c',
'dbus-slice.c',
'dbus-socket.c',
'dbus-swap.c',
'dbus-target.c',
'dbus-timer.c',
'dbus-unit.c',
'dbus-util.c',
'dbus.c',
'device.c',
'dynamic-user.c',
'efi-random.c',
'emergency-action.c',
'execute.c',
'generator-setup.c',
'ima-setup.c',
'import-creds.c',
'job.c',
'kill.c',
'kmod-setup.c',
'load-dropin.c',
'load-fragment.c',
'manager-dump.c',
'manager-serialize.c',
'manager.c',
'mount.c',
'namespace.c',
'path.c',
'restrict-ifaces.c',
'scope.c',
'selinux-access.c',
'selinux-setup.c',
'service.c',
'show-status.c',
'slice.c',
'smack-setup.c',
'socket.c',
'swap.c',
'target.c',
'timer.c',
'transaction.c',
'unit-dependency-atom.c',
'unit-printf.c',
'unit-serialize.c',
'unit.c',
)
if conf.get('BPF_FRAMEWORK') == 1
libcore_sources += files(
'bpf-util.c',
)
endif
subdir('bpf')
subdir('bpf/socket_bind')
if conf.get('BPF_FRAMEWORK') == 1
libcore_sources += [socket_bind_skel_h]
subdir('bpf/restrict_fs')
libcore_sources += [restrict_fs_skel_h]
endif
subdir('bpf/restrict_ifaces')
if conf.get('BPF_FRAMEWORK') == 1
libcore_sources += [restrict_ifaces_skel_h]
endif
load_fragment_gperf_gperf = custom_target(
'load-fragment-gperf.gperf',
input : 'load-fragment-gperf.gperf.in',
output: 'load-fragment-gperf.gperf',
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'])
load_fragment_gperf_c = custom_target(
'load-fragment-gperf.c',
input : load_fragment_gperf_gperf,
output : 'load-fragment-gperf.c',
command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
awkscript = 'load-fragment-gperf-nulstr.awk'
load_fragment_gperf_nulstr_c = custom_target(
'load-fragment-gperf-nulstr.c',
input : [awkscript, load_fragment_gperf_gperf],
output : 'load-fragment-gperf-nulstr.c',
command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
capture : true)
libcore_name = 'systemd-core-@0@'.format(shared_lib_tag)
libcore = shared_library(
libcore_name,
libcore_sources,
load_fragment_gperf_c,
load_fragment_gperf_nulstr_c,
include_directories : includes,
c_args : ['-fvisibility=default'],
link_args : ['-shared',
'-Wl,--version-script=' + libshared_sym_path],
link_with : libshared,
dependencies : [versiondep,
threads,
libdl,
librt,
libseccomp,
libpam,
libaudit,
libkmod,
libapparmor,
libselinux,
libmount,
libblkid,
libacl],
install : true,
install_dir : rootpkglibdir)
core_includes = [includes, include_directories('.')]
systemd_sources = files(
'main.c',
'crash-handler.c',
)
in_files = [['system.conf', pkgsysconfdir],
['user.conf', pkgsysconfdir],
['systemd.pc', pkgconfigdatadir],
['org.freedesktop.systemd1.policy', polkitpolicydir]]
foreach item : in_files
file = item[0]
dir = item[1]
custom_target(
file,
input : file + '.in',
output: file,
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
install : (dir == pkgsysconfdir) ? install_sysconfdir_samples : (dir != 'no'),
install_dir : dir)
endforeach
install_data('org.freedesktop.systemd1.conf',
install_dir : dbuspolicydir)
install_data('org.freedesktop.systemd1.service',
install_dir : dbussystemservicedir)
meson.add_install_script('sh', '-c', mkdir_p.format(systemshutdowndir))
meson.add_install_script('sh', '-c', mkdir_p.format(systemsleepdir))
meson.add_install_script('sh', '-c', mkdir_p.format(systemgeneratordir))
meson.add_install_script('sh', '-c', mkdir_p.format(usergeneratordir))
if install_sysconfdir
meson.add_install_script('sh', '-c', mkdir_p.format(pkgsysconfdir / 'system'))
meson.add_install_script('sh', '-c', mkdir_p.format(pkgsysconfdir / 'user'))
meson.add_install_script('sh', '-c', mkdir_p.format(sysconfdir / 'xdg/systemd'))
endif
############################################################
fuzzers += [
[files('fuzz-unit-file.c'),
[libcore,
libshared],
[libmount]],
]