summaryrefslogtreecommitdiffstats
path: root/src/shared/meson.build
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/shared/meson.build492
1 files changed, 492 insertions, 0 deletions
diff --git a/src/shared/meson.build b/src/shared/meson.build
new file mode 100644
index 0000000..3e2f327
--- /dev/null
+++ b/src/shared/meson.build
@@ -0,0 +1,492 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+shared_sources = files(
+ 'acl-util.c',
+ 'acl-util.h',
+ 'acpi-fpdt.c',
+ 'acpi-fpdt.h',
+ 'apparmor-util.c',
+ 'apparmor-util.h',
+ 'ask-password-api.c',
+ 'ask-password-api.h',
+ 'barrier.c',
+ 'barrier.h',
+ 'base-filesystem.c',
+ 'base-filesystem.h',
+ 'binfmt-util.c',
+ 'binfmt-util.h',
+ 'bitmap.c',
+ 'bitmap.h',
+ 'blkid-util.h',
+ 'blockdev-util.c',
+ 'blockdev-util.h',
+ 'bond-util.c',
+ 'bond-util.h',
+ 'boot-timestamps.c',
+ 'boot-timestamps.h',
+ 'bootspec.c',
+ 'bootspec.h',
+ 'bpf-dlopen.c',
+ 'bpf-dlopen.h',
+ 'bpf-program.c',
+ 'bpf-program.h',
+ 'bridge-util.c',
+ 'bridge-util.h',
+ 'btrfs-util.c',
+ 'btrfs-util.h',
+ 'bus-get-properties.c',
+ 'bus-get-properties.h',
+ 'bus-locator.c',
+ 'bus-locator.h',
+ 'bus-log-control-api.c',
+ 'bus-log-control-api.h',
+ 'bus-map-properties.c',
+ 'bus-map-properties.h',
+ 'bus-message-util.c',
+ 'bus-message-util.h',
+ 'bus-object.c',
+ 'bus-object.h',
+ 'bus-polkit.c',
+ 'bus-polkit.h',
+ 'bus-print-properties.c',
+ 'bus-print-properties.h',
+ 'bus-unit-procs.c',
+ 'bus-unit-procs.h',
+ 'bus-unit-util.c',
+ 'bus-unit-util.h',
+ 'bus-util.c',
+ 'bus-util.h',
+ 'bus-wait-for-jobs.c',
+ 'bus-wait-for-jobs.h',
+ 'bus-wait-for-units.c',
+ 'bus-wait-for-units.h',
+ 'calendarspec.c',
+ 'calendarspec.h',
+ 'cgroup-setup.c',
+ 'cgroup-setup.h',
+ 'cgroup-show.c',
+ 'cgroup-show.h',
+ 'chown-recursive.c',
+ 'chown-recursive.h',
+ 'clean-ipc.c',
+ 'clean-ipc.h',
+ 'clock-util.c',
+ 'clock-util.h',
+ 'compare-operator.c',
+ 'compare-operator.h',
+ 'condition.c',
+ 'condition.h',
+ 'conf-parser.c',
+ 'conf-parser.h',
+ 'copy.c',
+ 'copy.h',
+ 'coredump-util.c',
+ 'coredump-util.h',
+ 'cpu-set-util.c',
+ 'cpu-set-util.h',
+ 'creds-util.c',
+ 'creds-util.h',
+ 'cryptsetup-util.c',
+ 'cryptsetup-util.h',
+ 'daemon-util.c',
+ 'daemon-util.h',
+ 'data-fd-util.c',
+ 'data-fd-util.h',
+ 'dev-setup.c',
+ 'dev-setup.h',
+ 'device-nodes.c',
+ 'device-nodes.h',
+ 'devnode-acl.h',
+ 'discover-image.c',
+ 'discover-image.h',
+ 'dissect-image.c',
+ 'dissect-image.h',
+ 'dlfcn-util.c',
+ 'dlfcn-util.h',
+ 'dm-util.c',
+ 'dm-util.h',
+ 'dns-domain.c',
+ 'dns-domain.h',
+ 'dropin.c',
+ 'dropin.h',
+ 'efi-api.c',
+ 'efi-api.h',
+ 'efi-loader.c',
+ 'efi-loader.h',
+ 'elf-util.c',
+ 'elf-util.h',
+ 'enable-mempool.c',
+ 'env-file-label.c',
+ 'env-file-label.h',
+ 'ethtool-util.c',
+ 'ethtool-util.h',
+ 'exec-util.c',
+ 'exec-util.h',
+ 'exit-status.c',
+ 'exit-status.h',
+ 'extension-release.c',
+ 'extension-release.h',
+ 'fdisk-util.h',
+ 'fdset.c',
+ 'fdset.h',
+ 'fileio-label.c',
+ 'fileio-label.h',
+ 'find-esp.c',
+ 'find-esp.h',
+ 'firewall-util-nft.c',
+ 'firewall-util-private.h',
+ 'firewall-util.c',
+ 'firewall-util.h',
+ 'format-table.c',
+ 'format-table.h',
+ 'fsck-util.h',
+ 'fstab-util.c',
+ 'fstab-util.h',
+ 'generator.c',
+ 'generator.h',
+ 'geneve-util.c',
+ 'geneve-util.h',
+ 'gpt.c',
+ 'gpt.h',
+ 'group-record.c',
+ 'group-record.h',
+ 'hostname-setup.c',
+ 'hostname-setup.h',
+ 'hwdb-util.c',
+ 'hwdb-util.h',
+ 'id128-print.c',
+ 'id128-print.h',
+ 'idn-util.c',
+ 'idn-util.h',
+ 'ima-util.c',
+ 'ima-util.h',
+ 'import-util.c',
+ 'import-util.h',
+ 'in-addr-prefix-util.c',
+ 'in-addr-prefix-util.h',
+ 'initreq.h',
+ 'install-file.c',
+ 'install-file.h',
+ 'install-printf.c',
+ 'install-printf.h',
+ 'install.c',
+ 'install.h',
+ 'ip-protocol-list.c',
+ 'ip-protocol-list.h',
+ 'ipvlan-util.c',
+ 'ipvlan-util.h',
+ 'journal-importer.c',
+ 'journal-importer.h',
+ 'journal-util.c',
+ 'journal-util.h',
+ 'json-internal.h',
+ 'json.c',
+ 'json.h',
+ 'kbd-util.c',
+ 'kbd-util.h',
+ 'keyring-util.c',
+ 'keyring-util.h',
+ 'killall.c',
+ 'killall.h',
+ 'label.c',
+ 'label.h',
+ 'libcrypt-util.c',
+ 'libcrypt-util.h',
+ 'libfido2-util.c',
+ 'libfido2-util.h',
+ 'libmount-util.h',
+ 'linux/auto_dev-ioctl.h',
+ 'linux/bpf.h',
+ 'linux/bpf_common.h',
+ 'linux/bpf_insn.h',
+ 'linux/dm-ioctl.h',
+ 'linux/ethtool.h',
+ 'local-addresses.c',
+ 'local-addresses.h',
+ 'locale-setup.c',
+ 'locale-setup.h',
+ 'lockfile-util.c',
+ 'lockfile-util.h',
+ 'log-link.h',
+ 'logs-show.c',
+ 'logs-show.h',
+ 'loop-util.c',
+ 'loop-util.h',
+ 'loopback-setup.c',
+ 'loopback-setup.h',
+ 'machine-id-setup.c',
+ 'machine-id-setup.h',
+ 'machine-pool.c',
+ 'machine-pool.h',
+ 'macvlan-util.c',
+ 'macvlan-util.h',
+ 'main-func.h',
+ 'mkdir-label.c',
+ 'mkdir-label.h',
+ 'mkfs-util.c',
+ 'mkfs-util.h',
+ 'module-util.h',
+ 'mount-setup.c',
+ 'mount-setup.h',
+ 'mount-util.c',
+ 'mount-util.h',
+ 'net-condition.c',
+ 'net-condition.h',
+ 'netif-naming-scheme.c',
+ 'netif-naming-scheme.h',
+ 'netif-sriov.c',
+ 'netif-sriov.h',
+ 'netif-util.c',
+ 'netif-util.h',
+ 'nscd-flush.h',
+ 'nsflags.c',
+ 'nsflags.h',
+ 'numa-util.c',
+ 'numa-util.h',
+ 'openssl-util.c',
+ 'openssl-util.h',
+ 'output-mode.c',
+ 'output-mode.h',
+ 'pager.c',
+ 'pager.h',
+ 'parse-argument.c',
+ 'parse-argument.h',
+ 'parse-helpers.c',
+ 'parse-helpers.h',
+ 'pcre2-util.c',
+ 'pcre2-util.h',
+ 'pe-header.h',
+ 'pkcs11-util.c',
+ 'pkcs11-util.h',
+ 'pretty-print.c',
+ 'pretty-print.h',
+ 'psi-util.c',
+ 'psi-util.h',
+ 'ptyfwd.c',
+ 'ptyfwd.h',
+ 'pwquality-util.c',
+ 'pwquality-util.h',
+ 'qrcode-util.c',
+ 'qrcode-util.h',
+ 'quota-util.c',
+ 'quota-util.h',
+ 'reboot-util.c',
+ 'reboot-util.h',
+ 'recovery-key.c',
+ 'recovery-key.h',
+ 'resize-fs.c',
+ 'resize-fs.h',
+ 'resolve-util.c',
+ 'resolve-util.h',
+ 'rm-rf.c',
+ 'rm-rf.h',
+ 'seccomp-util.h',
+ 'securebits-util.c',
+ 'securebits-util.h',
+ 'selinux-util.c',
+ 'selinux-util.h',
+ 'serialize.c',
+ 'serialize.h',
+ 'service-util.c',
+ 'service-util.h',
+ 'sleep-config.c',
+ 'sleep-config.h',
+ 'smack-util.c',
+ 'smack-util.h',
+ 'socket-label.c',
+ 'socket-netlink.c',
+ 'socket-netlink.h',
+ 'spawn-ask-password-agent.c',
+ 'spawn-ask-password-agent.h',
+ 'spawn-polkit-agent.c',
+ 'spawn-polkit-agent.h',
+ 'specifier.c',
+ 'specifier.h',
+ 'switch-root.c',
+ 'switch-root.h',
+ 'tmpfile-util-label.c',
+ 'tmpfile-util-label.h',
+ 'tomoyo-util.c',
+ 'tomoyo-util.h',
+ 'tpm2-util.c',
+ 'tpm2-util.h',
+ 'udev-util.c',
+ 'udev-util.h',
+ 'uid-alloc-range.c',
+ 'uid-alloc-range.h',
+ 'user-record-nss.c',
+ 'user-record-nss.h',
+ 'user-record-show.c',
+ 'user-record-show.h',
+ 'user-record.c',
+ 'user-record.h',
+ 'userdb-dropin.c',
+ 'userdb-dropin.h',
+ 'userdb.c',
+ 'userdb.h',
+ 'utmp-wtmp.h',
+ 'varlink.c',
+ 'varlink.h',
+ 'varlink-internal.h',
+ 'verb-log-control.c',
+ 'verb-log-control.h',
+ 'verbs.c',
+ 'verbs.h',
+ 'vlan-util.c',
+ 'vlan-util.h',
+ 'volatile-util.c',
+ 'volatile-util.h',
+ 'watchdog.c',
+ 'watchdog.h',
+ 'web-util.c',
+ 'web-util.h',
+ 'wifi-util.c',
+ 'wifi-util.h',
+ 'xml.c',
+ 'xml.h',
+)
+
+if get_option('tests') != 'false'
+ shared_sources += files(
+ 'test-tables.h',
+ 'tests.c',
+ 'tests.h',
+ )
+endif
+
+generate_syscall_list = find_program('generate-syscall-list.py')
+fname = 'syscall-list.h'
+syscall_list_h = custom_target(
+ fname,
+ input : syscall_list_txt,
+ output : fname,
+ command : [generate_syscall_list,
+ '@INPUT@'],
+ capture : true)
+
+if conf.get('HAVE_ACL') == 1
+ shared_sources += files(
+ 'devnode-acl.c',
+ )
+endif
+
+if conf.get('ENABLE_UTMP') == 1
+ shared_sources += files('utmp-wtmp.c')
+endif
+
+if conf.get('HAVE_SECCOMP') == 1
+ shared_sources += files('seccomp-util.c')
+ shared_sources += syscall_list_h
+endif
+
+if conf.get('HAVE_LIBIPTC') == 1
+ shared_sources += files('firewall-util-iptables.c')
+endif
+
+if conf.get('HAVE_LIBBPF') == 1
+ shared_sources += files(
+ 'bpf-link.c',
+ 'bpf-link.h',
+ )
+endif
+
+if conf.get('HAVE_KMOD') == 1
+ shared_sources += files('module-util.c')
+endif
+
+if conf.get('HAVE_PAM') == 1
+ shared_sources += files(
+ 'pam-util.c',
+ 'pam-util.h',
+ )
+endif
+
+if conf.get('ENABLE_NSCD') == 1
+ shared_sources += files('nscd-flush.c')
+endif
+
+generate_ip_protocol_list = find_program('generate-ip-protocol-list.sh')
+ip_protocol_list_txt = custom_target(
+ 'ip-protocol-list.txt',
+ output : 'ip-protocol-list.txt',
+ command : [generate_ip_protocol_list, cpp],
+ capture : true)
+
+fname = 'ip-protocol-from-name.gperf'
+gperf_file = custom_target(
+ fname,
+ input : ip_protocol_list_txt,
+ output : fname,
+ command : [generate_gperfs, 'ip_protocol', 'IPPROTO_', '@INPUT@'],
+ capture : true)
+
+fname = 'ip-protocol-from-name.h'
+target1 = custom_target(
+ fname,
+ input : gperf_file,
+ output : fname,
+ command : [gperf,
+ '-L', 'ANSI-C', '-t', '--ignore-case',
+ '-N', 'lookup_ip_protocol',
+ '-H', 'hash_ip_protocol_name',
+ '-p', '-C',
+ '@INPUT@'],
+ capture : true)
+
+fname = 'ip-protocol-to-name.h'
+awkscript = 'ip-protocol-to-name.awk'
+target2 = custom_target(
+ fname,
+ input : [awkscript, ip_protocol_list_txt],
+ output : fname,
+ command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
+ capture : true)
+
+shared_generated_gperf_headers = [target1, target2]
+shared_sources += shared_generated_gperf_headers
+
+libshared_name = 'systemd-shared-@0@'.format(shared_lib_tag)
+
+libshared_deps = [threads,
+ libacl,
+ libblkid,
+ libcap,
+ libcrypt,
+ libdl,
+ libgcrypt,
+ libiptc,
+ libkmod,
+ liblz4,
+ libmount,
+ libopenssl,
+ libp11kit,
+ libpam,
+ librt,
+ libseccomp,
+ libselinux,
+ libzstd,
+ libxz]
+
+libshared_sym_path = '@0@/libshared.sym'.format(meson.current_source_dir())
+
+libshared_static = static_library(
+ libshared_name,
+ shared_sources,
+ include_directories : includes,
+ dependencies : libshared_deps,
+ c_args : ['-fvisibility=default'],
+ build_by_default : false)
+
+libshared = shared_library(
+ libshared_name,
+ include_directories : includes,
+ c_args : ['-fvisibility=default'],
+ link_args : ['-shared',
+ '-Wl,--version-script=' + libshared_sym_path],
+ link_whole : [libshared_static,
+ libbasic,
+ libbasic_gcrypt,
+ libsystemd_static],
+ dependencies : libshared_deps,
+ install : true,
+ install_dir : rootpkglibdir)