1 # SPDX-License-Identifier: LGPL-2.1-or-later
25 'confidential-virt.c',
111 'uid-classification.c',
121 sources += basic_sources
123 generated_gperf_headers = []
125 # name, source, prefix, headers
126 ['af', af_sources, '', ['<sys/socket.h>'], ],
127 ['arphrd', arphrd_sources, 'ARPHRD_', ['<linux/if_arp.h>'], ],
128 ['capability', capability_sources, '', ['<linux/capability.h>'], ],
129 ['errno', [], '', ['<errno.h>'], ],
132 fname = '@0@-list.txt'.format(item[0])
133 generate_list = files('generate-@0@-list.sh'.format(item[0]))
134 list_txt = custom_target(
135 input : [generate_list, item[1]],
137 command : [env, 'bash', generate_list, cpp, system_include_args],
140 fname = '@0@-from-name.gperf'.format(item[0])
141 gperf_file = custom_target(
144 command : [generate_gperfs, item[0], item[2], '@INPUT@'] + item[3],
147 fname = '@0@-from-name.inc'.format(item[0])
148 target1 = custom_target(
152 '-L', 'ANSI-C', '-t', '--ignore-case',
153 '-N', 'lookup_@0@'.format(item[0]),
154 '-H', 'hash_@0@_name'.format(item[0]),
159 fname = '@0@-to-name.inc'.format(item[0])
160 awkscript = '@0@-to-name.awk'.format(item[0])
161 target2 = custom_target(
162 input : [awkscript, list_txt],
164 command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
167 generated_gperf_headers += [target1, target2]
170 generated_sources += generated_gperf_headers
171 basic_sources += generated_gperf_headers
173 ############################################################
175 check_filesystems = find_program('check-filesystems.sh')
178 'env', '--chdir', meson.project_build_root(),
179 check_filesystems, cpp, files('filesystems-gperf.gperf'),
184 if r.returncode() != 0
185 warning('Unknown filesystems defined in kernel headers:\n\n' + r.stdout())
188 filesystems_gperf_h = custom_target(
189 input : 'filesystems-gperf.gperf',
190 output : 'filesystems-gperf.h',
191 command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
193 generate_filesystem_list = find_program('generate-filesystem-list.py')
194 fname = 'filesystem-list.inc'
195 filesystem_list_inc = custom_target(
196 input : 'filesystems-gperf.gperf',
198 command : [generate_filesystem_list,
202 generate_filesystem_switch_case_inc = find_program('generate-filesystem-switch-case.py')
203 fname = 'filesystem-switch-case.inc'
204 filesystem_switch_case_inc = custom_target(
205 input : 'filesystems-gperf.gperf',
207 command : [generate_filesystem_switch_case_inc,
211 generated_sources += [filesystem_list_inc, filesystem_switch_case_inc, filesystems_gperf_h]
212 basic_sources += [filesystem_list_inc, filesystem_switch_case_inc, filesystems_gperf_h]
214 libbasic_static = static_library(
218 include_directories : basic_includes,
219 implicit_include_directories : false,
220 dependencies : [libcap,
230 c_args : ['-fvisibility=default'],
231 build_by_default : false)