# SPDX-License-Identifier: LGPL-2.1-or-later libcore_sources = ''' apparmor-setup.c apparmor-setup.h audit-fd.c audit-fd.h automount.c automount.h bpf-devices.c bpf-devices.h bpf-firewall.c bpf-firewall.h bpf-foreign.c bpf-foreign.h bpf-lsm.c bpf-lsm.h bpf-socket-bind.c bpf-socket-bind.h cgroup.c cgroup.h core-varlink.c core-varlink.h dbus-automount.c dbus-automount.h dbus-cgroup.c dbus-cgroup.h dbus-device.c dbus-device.h dbus-execute.c dbus-execute.h dbus-job.c dbus-job.h dbus-kill.c dbus-kill.h dbus-manager.c dbus-manager.h dbus-mount.c dbus-mount.h dbus-path.c dbus-path.h dbus-scope.c dbus-scope.h dbus-service.c dbus-service.h dbus-slice.c dbus-slice.h dbus-socket.c dbus-socket.h dbus-swap.c dbus-swap.h dbus-target.c dbus-target.h dbus-timer.c dbus-timer.h dbus-unit.c dbus-unit.h dbus-util.c dbus-util.h dbus.c dbus.h device.c device.h dynamic-user.c dynamic-user.h efi-random.c efi-random.h emergency-action.c emergency-action.h execute.c execute.h generator-setup.c generator-setup.h ima-setup.c ima-setup.h job.c job.h kill.c kill.h kmod-setup.c kmod-setup.h load-dropin.c load-dropin.h load-fragment.c load-fragment.h locale-setup.c locale-setup.h manager-dump.c manager-dump.h manager-serialize.c manager-serialize.h manager.c manager.h mount.c mount.h namespace.c namespace.h path.c path.h restrict-ifaces.c restrict-ifaces.h scope.c scope.h selinux-access.c selinux-access.h selinux-setup.c selinux-setup.h service.c service.h show-status.c show-status.h slice.c slice.h smack-setup.c smack-setup.h socket.c socket.h swap.c swap.h target.c target.h timer.c timer.h transaction.c transaction.h unit-dependency-atom.c unit-dependency-atom.h unit-printf.c unit-printf.h unit-serialize.c unit-serialize.h unit.c unit.h '''.split() 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 : [meson_render_jinja2, config_h, '@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 : rootlibexecdir) core_includes = [includes, include_directories('.')] systemd_sources = files( 'main.c', 'main.h', 'crash-handler.c', 'crash-handler.h', ) 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 : [meson_render_jinja2, config_h, '@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]], ]