# SPDX-License-Identifier: LGPL-2.1-or-later shared_sources = files(''' 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 bond-util.c bond-util.h boot-timestamps.c boot-timestamps.h bootspec.c bootspec.h bpf-program.c bpf-program.h bridge-util.c bridge-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 condition.c condition.h conf-parser.c conf-parser.h coredump-util.c coredump-util.h cpu-set-util.c cpu-set-util.h cryptsetup-util.c cryptsetup-util.h daemon-util.h dev-setup.c dev-setup.h dissect-image.c dissect-image.h dm-util.c dm-util.h dns-domain.c dns-domain.h dropin.c dropin.h efi-loader.c efi-loader.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 fdset.c fdset.h fileio-label.c fileio-label.h 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 id128-print.c id128-print.h idn-util.c idn-util.h ima-util.c ima-util.h import-util.c import-util.h initreq.h install-printf.c install-printf.h install.c install.h ipvlan-util.c ipvlan-util.h ip-protocol-list.c ip-protocol-list.h journal-importer.c journal-importer.h journal-util.c journal-util.h json-internal.h json.c json.h libcrypt-util.c libcrypt-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 lockfile-util.c lockfile-util.h log-link.h logs-show.c logs-show.h loop-util.c loop-util.h machine-image.c machine-image.h machine-pool.c machine-pool.h macvlan-util.c macvlan-util.h main-func.h mkfs-util.c mkfs-util.h module-util.h mount-util.c mount-util.h netif-naming-scheme.c netif-naming-scheme.h nscd-flush.c nscd-flush.h nsflags.c nsflags.h numa-util.c numa-util.h openssl-util.h os-util.c os-util.h output-mode.c output-mode.h pager.c pager.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 reboot-util.c reboot-util.h resize-fs.c resize-fs.h resolve-util.c resolve-util.h seccomp-util.h securebits-util.c securebits-util.h serialize.c serialize.h service-util.c service-util.h sleep-config.c sleep-config.h 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 sysctl-util.c sysctl-util.h tmpfile-util-label.c tmpfile-util-label.h tomoyo-util.c tomoyo-util.h udev-util.c udev-util.h uid-range.c uid-range.h unit-file.c unit-file.h user-record-nss.c user-record-nss.h user-record-show.c user-record-show.h user-record.c user-record.h userdb.c userdb.h utmp-wtmp.h varlink.c varlink.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 '''.split()) if get_option('tests') != 'false' shared_sources += files('tests.c', 'tests.h') endif test_tables_h = files('test-tables.h') shared_sources += test_tables_h generate_syscall_list = find_program('generate-syscall-list.py') fname = 'syscall-list.h' syscall_list_h = custom_target( fname, input : 'syscall-names.text', output : fname, command : [generate_syscall_list, '@INPUT@'], capture : true) if conf.get('HAVE_ACL') == 1 shared_sources += files('acl-util.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.c') 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 '''.split()) 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(meson.project_version()) libshared_deps = [threads, libacl, libblkid, libcap, libcrypt, 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']) libshared = shared_library( libshared_name, libudev_sources, include_directories : includes, link_args : ['-shared', '-Wl,--version-script=' + libshared_sym_path], link_whole : [libshared_static, libbasic, libbasic_gcrypt, libsystemd_static, libjournal_client], c_args : ['-fvisibility=default'], dependencies : libshared_deps, install : true, install_dir : rootlibexecdir) ############################################################ run_target( 'syscall-names-update', command : [syscall_names_update_sh, meson.current_source_dir()])