1 # SPDX-License-Identifier: LGPL-2.1-or-later
3 shared_sources = files(
23 'bus-get-properties.c',
25 'bus-log-control-api.c',
26 'bus-map-properties.c',
30 'bus-print-properties.c',
34 'bus-wait-for-jobs.c',
35 'bus-wait-for-units.c',
74 'firewall-util-nft.c',
90 'in-addr-prefix-util.c',
96 'journal-file-util.c',
115 'machine-credential.c',
116 'machine-id-setup.c',
124 'netif-naming-scheme.c',
135 'password-quality-util-passwdqc.c',
136 'password-quality-util-pwquality.c',
159 'spawn-ask-password-agent.c',
160 'spawn-polkit-agent.c',
163 'tmpfile-util-label.c',
169 'user-record-show.c',
175 'varlink-io.systemd.c',
176 'varlink-io.systemd.BootControl.c',
177 'varlink-io.systemd.Credentials.c',
178 'varlink-io.systemd.Hostname.c',
179 'varlink-io.systemd.Journal.c',
180 'varlink-io.systemd.ManagedOOM.c',
181 'varlink-io.systemd.Network.c',
182 'varlink-io.systemd.PCRExtend.c',
183 'varlink-io.systemd.PCRLock.c',
184 'varlink-io.systemd.Resolve.c',
185 'varlink-io.systemd.Resolve.Monitor.c',
186 'varlink-io.systemd.UserDatabase.c',
187 'varlink-io.systemd.oom.c',
188 'varlink-io.systemd.service.c',
189 'varlink-io.systemd.sysext.c',
190 'varlink-org.varlink.service.c',
191 'verb-log-control.c',
203 if get_option('tests') != 'false'
204 shared_sources += files('tests.c')
207 generate_syscall_list = find_program('generate-syscall-list.py')
208 fname = 'syscall-list.h'
209 syscall_list_h = custom_target(
211 input : syscall_list_txt,
213 command : [generate_syscall_list,
217 if conf.get('HAVE_ACL') == 1
218 shared_sources += files('devnode-acl.c')
221 if conf.get('ENABLE_UTMP') == 1
222 shared_sources += files('utmp-wtmp.c')
225 if conf.get('HAVE_SECCOMP') == 1
226 shared_sources += files('seccomp-util.c')
227 shared_sources += syscall_list_h
230 if conf.get('HAVE_LIBIPTC') == 1
231 shared_sources += files('firewall-util-iptables.c')
234 if conf.get('HAVE_LIBBPF') == 1
235 shared_sources += files('bpf-link.c')
238 if conf.get('HAVE_KMOD') == 1
239 shared_sources += files('module-util.c')
242 if conf.get('HAVE_PAM') == 1
243 shared_sources += files('pam-util.c')
246 if conf.get('ENABLE_NSCD') == 1
247 shared_sources += files('nscd-flush.c')
250 if conf.get('HAVE_LIBFIDO2') == 1 and conf.get('HAVE_LIBCRYPTSETUP') == 1
251 shared_sources += files('cryptsetup-fido2.c')
254 if conf.get('HAVE_TPM2') == 1 and conf.get('HAVE_LIBCRYPTSETUP') == 1
255 shared_sources += files('cryptsetup-tpm2.c')
258 generate_ip_protocol_list = find_program('generate-ip-protocol-list.sh')
259 ip_protocol_list_txt = custom_target(
260 'ip-protocol-list.txt',
261 output : 'ip-protocol-list.txt',
262 command : [generate_ip_protocol_list, cpp],
265 fname = 'ip-protocol-from-name.gperf'
266 gperf_file = custom_target(
268 input : ip_protocol_list_txt,
270 command : [generate_gperfs, 'ip_protocol', 'IPPROTO_', '@INPUT@'],
273 fname = 'ip-protocol-from-name.h'
274 target1 = custom_target(
279 '-L', 'ANSI-C', '-t', '--ignore-case',
280 '-N', 'lookup_ip_protocol',
281 '-H', 'hash_ip_protocol_name',
286 fname = 'ip-protocol-to-name.h'
287 awkscript = 'ip-protocol-to-name.awk'
288 target2 = custom_target(
290 input : [awkscript, ip_protocol_list_txt],
292 command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
295 shared_generated_gperf_headers = [target1, target2]
296 shared_sources += shared_generated_gperf_headers
298 fname = 'ethtool-link-mode.h'
299 ethtool_link_mode_h = custom_target(
301 input : ['ethtool-link-mode.py', 'linux/ethtool.h'],
303 command : [python, '@INPUT0@', '--header', cpp, '@INPUT1@'],
305 shared_sources += ethtool_link_mode_h
307 fname = 'ethtool-link-mode.xml'
308 ethtool_link_mode_xml = custom_target(
310 input : ['ethtool-link-mode.py', 'linux/ethtool.h'],
312 command : [python, '@INPUT0@', '--xml', cpp, '@INPUT1@'],
314 man_page_depends += ethtool_link_mode_xml
316 libshared_name = 'systemd-shared-@0@'.format(shared_lib_tag)
318 libshared_deps = [threads,
339 libshared_sym_path = meson.current_source_dir() / 'libshared.sym'
340 libshared_build_dir = meson.current_build_dir()
342 libshared_static = static_library(
345 include_directories : includes,
346 dependencies : [libshared_deps,
348 c_args : ['-fvisibility=default'],
349 build_by_default : false)
351 libshared = shared_library(
353 include_directories : includes,
354 c_args : ['-fvisibility=default'],
355 link_args : ['-shared',
356 '-Wl,--version-script=' + libshared_sym_path],
357 link_depends : libshared_sym_path,
358 link_whole : [libshared_static,
362 dependencies : [libshared_deps,
365 install_dir : pkglibdir)
367 shared_fdisk_sources = files('fdisk-util.c')
369 libshared_fdisk = static_library(
371 shared_fdisk_sources,
372 include_directories : includes,
373 dependencies : [libfdisk,
375 c_args : ['-fvisibility=default'],
376 build_by_default : false)