+# SPDX-License-Identifier: LGPL-2.1+
+
#if 0 /// elogind has a shorter list
-# basic_sources_plain = files('''
+# basic_sources = files('''
+# MurmurHash2.c
+# MurmurHash2.h
# af-list.c
# af-list.h
# alloc-util.c
# bitmap.c
# bitmap.h
# blkid-util.h
+# blockdev-util.c
+# blockdev-util.h
+# bpf-program.c
+# bpf-program.h
# btrfs-ctree.h
# btrfs-util.c
# btrfs-util.h
# bus-label.h
# calendarspec.c
# calendarspec.h
-# capability-util.c
-# capability-util.h
# cap-list.c
# cap-list.h
+# capability-util.c
+# capability-util.h
# cgroup-util.c
# cgroup-util.h
# chattr-util.c
# copy.h
# cpu-set-util.c
# cpu-set-util.h
+# crypt-util.c
+# crypt-util.h
# def.h
# device-nodes.c
# device-nodes.h
# extract-word.h
# fd-util.c
# fd-util.h
-# fileio.c
-# fileio.h
# fileio-label.c
# fileio-label.h
+# fileio.c
+# fileio.h
+# format-table.c
+# format-table.h
# format-util.h
# fs-util.c
# fs-util.h
# hostname-util.h
# in-addr-util.c
# in-addr-util.h
-# ioprio.h
# io-util.c
# io-util.h
+# ioprio.h
# journal-importer.c
# journal-importer.h
# khash.c
# mempool.c
# mempool.h
# missing_syscall.h
+# mkdir-label.c
# mkdir.c
# mkdir.h
-# mkdir-label.c
+# module-util.h
# mount-util.c
# mount-util.h
-# MurmurHash2.c
-# MurmurHash2.h
# nss-util.h
# ordered-set.c
# ordered-set.h
+# pager.c
+# pager.h
+# os-util.c
+# os-util.h
# parse-util.c
# parse-util.h
# path-util.c
# proc-cmdline.h
# process-util.c
# process-util.h
+# procfs-util.c
+# procfs-util.h
# random-util.c
# random-util.h
# ratelimit.c
# ratelimit.h
# raw-clone.h
+# raw-reboot.h
+# reboot-util.c
+# reboot-util.h
# refcnt.h
# replace-var.c
# replace-var.h
# rlimit-util.h
# rm-rf.c
# rm-rf.h
+# securebits-util.c
+# securebits-util.h
# securebits.h
# selinux-util.c
# selinux-util.h
# smack-util.c
# smack-util.h
# socket-label.c
+# socket-protocol-list.c
+# socket-protocol-list.h
# socket-util.c
# socket-util.h
# sparse-endian.h
# time-util.h
# umask-util.h
# unaligned.h
+# unit-def.c
+# unit-def.h
# unit-name.c
# unit-name.h
# user-util.c
# xml.h
# '''.split())
#else
-basic_sources_plain = files('''
+basic_sources = files('''
alloc-util.c
alloc-util.h
audit-util.c
capability-util.c
capability-util.h
cgroup-util.c
+ cap-list.c
+ cap-list.h
cgroup-util.h
conf-files.c
conf-files.h
mkdir-label.c
mount-util.c
mount-util.h
+ pager.c
+ pager.h
parse-printf-format.c
parse-printf-format.h
parse-util.c
prioq.h
proc-cmdline.c
proc-cmdline.h
+ procfs-util.c
+ procfs-util.h
process-util.c
process-util.h
random-util.c
selinux-util.c
selinux-util.h
set.h
+ sigbus.c
+ sigbus.h
signal-util.c
signal-util.h
siphash24.c
socket-util.c
socket-util.h
sparse-endian.h
+ special.h
stat-util.c
stat-util.h
stdio-util.h
time-util.h
umask-util.h
unaligned.h
+ unit-def.c
+ unit-def.h
unit-name.c
unit-name.h
user-util.c
generate_gperfs = find_program('generate-gperfs.py')
-#if 0 /// elogind has only the errno list.
+#if 0 /// elogind has only the cap and errno list.
# generate_af_list = find_program('generate-af-list.sh')
# af_list_txt = custom_target(
# 'af-list.txt',
# output : 'arphrd-list.txt',
# command : [generate_arphrd_list, cpp],
# capture : true)
-#
-# generate_cap_list = find_program('generate-cap-list.sh')
-# cap_list_txt = custom_target(
-# 'cap-list.txt',
-# output : 'cap-list.txt',
+#endif // 0
+
+generate_cap_list = find_program('generate-cap-list.sh')
+cap_list_txt = custom_target(
+ 'cap-list.txt',
+ output : 'cap-list.txt',
+#if 0 /// elogind needs musl_missing.h, so generate_cap_list must know the source root
# command : [generate_cap_list, cpp, config_h, missing_h],
-# capture : true)
+#else
+ command : [generate_cap_list, cpp, meson.source_root(), config_h, missing_h],
#endif // 0
+ capture : true)
+
generate_errno_list = find_program('generate-errno-list.sh')
errno_list_txt = custom_target(
'errno-list.txt',
command : [generate_errno_list, cpp],
capture : true)
+generate_socket_protocol_list = find_program('generate-socket-protocol-list.sh')
+socket_protocol_list_txt = custom_target(
+ 'socket-protocol-list.txt',
+ output : 'socket-protocol-list.txt',
+ command : [generate_socket_protocol_list, cpp],
+ capture : true)
+
generated_gperf_headers = []
-#if 0 /// elogind has only the errno list.
+#if 0 /// elogind has only the cap and errno list.
# foreach item : [['af', af_list_txt, 'af', ''],
# ['arphrd', arphrd_list_txt, 'arphrd', 'ARPHRD_'],
# ['cap', cap_list_txt, 'capability', ''],
-# ['errno', errno_list_txt, 'errno', '']]
+# ['errno', errno_list_txt, 'errno', ''],
+# ['socket-protocol', socket_protocol_list_txt, 'socket_protocol', 'IPPROTO_']]
#else
-foreach item : [['errno', errno_list_txt, 'errno', '']]
+foreach item : [['cap', cap_list_txt, 'capability', ''],
+ ['errno', errno_list_txt, 'errno', '']]
#endif // 0
fname = '@0@-from-name.gperf'.format(item[0])
generated_gperf_headers += [target1, target2]
endforeach
-basic_sources = basic_sources_plain + [missing_h] + generated_gperf_headers
+basic_sources += [missing_h] + generated_gperf_headers
+#if 0 /// elogind does not need gcrypt
+# basic_gcrypt_sources = files(
+# 'gcrypt-util.c',
+# 'gcrypt-util.h')
+#endif // 0
libbasic = static_library(
'basic',
include_directories : includes,
dependencies : [threads,
libcap,
-#if 0 /// no blkid in elogind
+#if 0 /// Neither blkid nor libmount in elogind
# libblkid,
+# libmount,
#endif // 0
- libselinux,
- ],
+ libselinux],
+ c_args : ['-fvisibility=default'],
install : false)
+
+#if 0 /// elogind does not need gcrypt
+# # A convenience library that is separate from libbasic to avoid
+# # unnecessary linking to libgcrypt.
+# libbasic_gcrypt = static_library(
+# 'basic-gcrypt',
+# basic_gcrypt_sources,
+# include_directories : includes,
+# dependencies : [libgcrypt],
+# c_args : ['-fvisibility=default'])
+#endif // 0