1 # SPDX-License-Identifier: LGPL-2.1-or-later
21 'confidential-virt.c',
101 'uid-classification.c',
112 missing_audit_h = files('missing_audit.h')
113 missing_capability_h = files('missing_capability.h')
114 missing_socket_h = files('missing_socket.h')
116 missing_syscall_def_h = files('missing_syscall_def.h')
117 basic_sources += missing_syscall_def_h
119 generate_af_list = find_program('generate-af-list.sh')
120 af_list_txt = custom_target(
122 output : 'af-list.txt',
123 command : [generate_af_list, cpp, config_h, missing_socket_h],
126 generate_arphrd_list = find_program('generate-arphrd-list.sh')
127 arphrd_list_txt = custom_target(
129 output : 'arphrd-list.txt',
130 command : [generate_arphrd_list, cpp, config_h],
133 generate_cap_list = find_program('generate-cap-list.sh')
134 cap_list_txt = custom_target(
136 output : 'cap-list.txt',
137 command : [generate_cap_list, cpp, config_h, missing_capability_h],
140 generate_errno_list = find_program('generate-errno-list.sh')
141 errno_list_txt = custom_target(
143 output : 'errno-list.txt',
144 command : [generate_errno_list, cpp],
147 generated_gperf_headers = []
148 foreach item : [['af', af_list_txt, 'af', ''],
149 ['arphrd', arphrd_list_txt, 'arphrd', 'ARPHRD_'],
150 ['cap', cap_list_txt, 'capability', ''],
151 ['errno', errno_list_txt, 'errno', '']]
153 fname = '@0@-from-name.gperf'.format(item[0])
154 gperf_file = custom_target(
158 command : [generate_gperfs, item[2], item[3], '@INPUT@'],
161 fname = '@0@-from-name.h'.format(item[0])
162 target1 = custom_target(
167 '-L', 'ANSI-C', '-t', '--ignore-case',
168 '-N', 'lookup_@0@'.format(item[2]),
169 '-H', 'hash_@0@_name'.format(item[2]),
174 fname = '@0@-to-name.h'.format(item[0])
175 awkscript = '@0@-to-name.awk'.format(item[0])
176 target2 = custom_target(
178 input : [awkscript, item[1]],
180 command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
183 generated_gperf_headers += [target1, target2]
186 basic_sources += generated_gperf_headers
188 ############################################################
214 'update-syscall-tables',
215 command : [update_syscall_tables_sh, meson.current_source_dir()] + arch_list)
217 syscall_list_txt = files('syscall-list.txt')
220 foreach arch: arch_list
221 syscall_lists += files('syscalls-@0@.txt'.format(arch))
224 missing_syscalls_py = find_program('missing_syscalls.py')
227 'update-syscall-header',
228 command : [missing_syscalls_py,
229 missing_syscall_def_h,
232 ############################################################
234 filesystem_includes = ['linux/magic.h',
235 'linux/gfs2_ondisk.h']
237 check_filesystems = find_program('check-filesystems.sh')
238 r = run_command([check_filesystems, cpp, files('filesystems-gperf.gperf')] + filesystem_includes, check: false)
239 if r.returncode() != 0
240 error('Unknown filesystems defined in kernel headers:\n\n' + r.stdout())
243 filesystems_gperf_h = custom_target(
244 'filesystems-gperf.h',
245 input : 'filesystems-gperf.gperf',
246 output : 'filesystems-gperf.h',
247 command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
249 generate_filesystem_list = find_program('generate-filesystem-list.py')
250 fname = 'filesystem-list.h'
251 filesystem_list_h = custom_target(
253 input : 'filesystems-gperf.gperf',
255 command : [generate_filesystem_list,
259 generate_filesystem_switch_case_h = find_program('generate-filesystem-switch-case.py')
260 fname = 'filesystem-switch-case.h'
261 filesystem_switch_case_h = custom_target(
263 input : 'filesystems-gperf.gperf',
264 output : 'filesystem-switch-case.h',
265 command : [generate_filesystem_switch_case_h,
269 basic_sources += [filesystem_list_h, filesystem_switch_case_h, filesystems_gperf_h]
271 libbasic = static_library(
275 include_directories : basic_includes,
276 dependencies : [libcap,
281 c_args : ['-fvisibility=default'],
282 build_by_default : false)
284 ############################################################
286 basic_gcrypt_sources = files(
290 # A convenience library that is separate from libbasic to avoid
291 # unnecessary linking to libgcrypt.
292 libbasic_gcrypt = static_library(
294 basic_gcrypt_sources,
295 include_directories : basic_includes,
296 dependencies : [libgcrypt,
298 c_args : ['-fvisibility=default'],
299 build_by_default : false)
301 ############################################################
303 basic_compress_sources = files(
307 # A convenience library that is separate from libbasic to avoid unnecessary
308 # linking to the compression libraries.
309 libbasic_compress = static_library(
311 basic_compress_sources,
312 include_directories : basic_includes,
313 dependencies : [liblz4,
317 c_args : ['-fvisibility=default'],
318 build_by_default : false)