]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/basic/meson.build
basic: split out glyph/emoji related calls from locale-util.[ch] into glyph-util...
[thirdparty/systemd.git] / src / basic / meson.build
1 # SPDX-License-Identifier: LGPL-2.1-or-later
2
3 basic_sources = files('''
4 MurmurHash2.c
5 MurmurHash2.h
6 af-list.c
7 af-list.h
8 alloc-util.c
9 alloc-util.h
10 architecture.c
11 architecture.h
12 arphrd-list.c
13 arphrd-list.h
14 async.c
15 async.h
16 audit-util.c
17 audit-util.h
18 build.c
19 build.h
20 bus-label.c
21 bus-label.h
22 cap-list.c
23 cap-list.h
24 capability-util.c
25 capability-util.h
26 cgroup-util.c
27 cgroup-util.h
28 chattr-util.c
29 chattr-util.h
30 conf-files.c
31 conf-files.h
32 def.h
33 dirent-util.c
34 dirent-util.h
35 dns-def.h
36 efivars.c
37 efivars.h
38 env-file.c
39 env-file.h
40 env-util.c
41 env-util.h
42 errno-list.c
43 errno-list.h
44 errno-util.h
45 escape.c
46 escape.h
47 ether-addr-util.c
48 ether-addr-util.h
49 extract-word.c
50 extract-word.h
51 fd-util.c
52 fd-util.h
53 fileio.c
54 fileio.h
55 format-util.c
56 format-util.h
57 fs-util.c
58 fs-util.h
59 glob-util.c
60 glob-util.h
61 glyph-util.c
62 glyph-util.h
63 gunicode.c
64 gunicode.h
65 hash-funcs.c
66 hash-funcs.h
67 hashmap.c
68 hashmap.h
69 hexdecoct.c
70 hexdecoct.h
71 hostname-util.c
72 hostname-util.h
73 in-addr-util.c
74 in-addr-util.h
75 io-util.c
76 io-util.h
77 khash.c
78 khash.h
79 limits-util.c
80 limits-util.h
81 linux/btrfs.h
82 linux/btrfs_tree.h
83 linux/can/netlink.h
84 linux/can/vxcan.h
85 linux/cfm_bridge.h
86 linux/fib_rules.h
87 linux/fou.h
88 linux/genetlink.h
89 linux/hdlc/ioctl.h
90 linux/if.h
91 linux/if_addr.h
92 linux/if_bonding.h
93 linux/if_bridge.h
94 linux/if_ether.h
95 linux/if_link.h
96 linux/if_macsec.h
97 linux/if_tun.h
98 linux/if_tunnel.h
99 linux/in.h
100 linux/in6.h
101 linux/ipv6_route.h
102 linux/l2tp.h
103 linux/libc-compat.h
104 linux/mrp_bridge.h
105 linux/netdevice.h
106 linux/netfilter/nf_tables.h
107 linux/netfilter/nfnetlink.h
108 linux/netlink.h
109 linux/nexthop.h
110 linux/nl80211.h
111 linux/pkt_sched.h
112 linux/rtnetlink.h
113 linux/wireguard.h
114 list.h
115 locale-util.c
116 locale-util.h
117 log.c
118 log.h
119 login-util.c
120 login-util.h
121 macro.h
122 memfd-util.c
123 memfd-util.h
124 memory-util.c
125 memory-util.h
126 mempool.c
127 mempool.h
128 missing_audit.h
129 missing_capability.h
130 missing_drm.h
131 missing_fcntl.h
132 missing_fs.h
133 missing_input.h
134 missing_ioprio.h
135 missing_keyctl.h
136 missing_magic.h
137 missing_mman.h
138 missing_mount.h
139 missing_network.h
140 missing_prctl.h
141 missing_random.h
142 missing_resource.h
143 missing_sched.h
144 missing_securebits.h
145 missing_socket.h
146 missing_stat.h
147 missing_stdlib.h
148 missing_syscall.h
149 missing_timerfd.h
150 missing_type.h
151 mkdir.c
152 mkdir.h
153 mountpoint-util.c
154 mountpoint-util.h
155 namespace-util.c
156 namespace-util.h
157 nss-util.h
158 nulstr-util.c
159 nulstr-util.h
160 ordered-set.c
161 ordered-set.h
162 os-util.c
163 os-util.h
164 parse-util.c
165 parse-util.h
166 path-lookup.c
167 path-lookup.h
168 path-util.c
169 path-util.h
170 percent-util.c
171 percent-util.h
172 prioq.c
173 prioq.h
174 proc-cmdline.c
175 proc-cmdline.h
176 process-util.c
177 process-util.h
178 procfs-util.c
179 procfs-util.h
180 pthread-util.h
181 random-util.c
182 random-util.h
183 ratelimit.c
184 ratelimit.h
185 raw-clone.h
186 raw-reboot.h
187 recovery-key.c
188 recovery-key.h
189 replace-var.c
190 replace-var.h
191 rlimit-util.c
192 rlimit-util.h
193 set.h
194 sigbus.c
195 sigbus.h
196 signal-util.c
197 signal-util.h
198 siphash24.c
199 siphash24.h
200 socket-util.c
201 socket-util.h
202 sort-util.c
203 sort-util.h
204 sparse-endian.h
205 special.h
206 stat-util.c
207 stat-util.h
208 static-destruct.h
209 stdio-util.h
210 strbuf.c
211 strbuf.h
212 string-table.c
213 string-table.h
214 string-util.c
215 string-util.h
216 strv.c
217 strv.h
218 strxcpyx.c
219 strxcpyx.h
220 sync-util.c
221 sync-util.h
222 sysctl-util.c
223 sysctl-util.h
224 syslog-util.c
225 syslog-util.h
226 terminal-util.c
227 terminal-util.h
228 time-util.c
229 time-util.h
230 tmpfile-util.c
231 tmpfile-util.h
232 umask-util.h
233 unaligned.h
234 unit-def.c
235 unit-def.h
236 unit-file.c
237 unit-file.h
238 unit-name.c
239 unit-name.h
240 user-util.c
241 user-util.h
242 utf8.c
243 utf8.h
244 util.c
245 util.h
246 virt.c
247 virt.h
248 xattr-util.c
249 xattr-util.h
250 '''.split())
251
252 missing_audit_h = files('missing_audit.h')
253 missing_capability_h = files('missing_capability.h')
254 missing_socket_h = files('missing_socket.h')
255
256 missing_syscall_def_h = files('missing_syscall_def.h')
257 basic_sources += missing_syscall_def_h
258
259 generate_af_list = find_program('generate-af-list.sh')
260 af_list_txt = custom_target(
261 'af-list.txt',
262 output : 'af-list.txt',
263 command : [generate_af_list, cpp, config_h, missing_socket_h],
264 capture : true)
265
266 generate_arphrd_list = find_program('generate-arphrd-list.sh')
267 arphrd_list_txt = custom_target(
268 'arphrd-list.txt',
269 output : 'arphrd-list.txt',
270 command : [generate_arphrd_list, cpp, config_h],
271 capture : true)
272
273 generate_cap_list = find_program('generate-cap-list.sh')
274 cap_list_txt = custom_target(
275 'cap-list.txt',
276 output : 'cap-list.txt',
277 command : [generate_cap_list, cpp, config_h, missing_capability_h],
278 capture : true)
279
280 generate_errno_list = find_program('generate-errno-list.sh')
281 errno_list_txt = custom_target(
282 'errno-list.txt',
283 output : 'errno-list.txt',
284 command : [generate_errno_list, cpp],
285 capture : true)
286
287 generated_gperf_headers = []
288 foreach item : [['af', af_list_txt, 'af', ''],
289 ['arphrd', arphrd_list_txt, 'arphrd', 'ARPHRD_'],
290 ['cap', cap_list_txt, 'capability', ''],
291 ['errno', errno_list_txt, 'errno', '']]
292
293 fname = '@0@-from-name.gperf'.format(item[0])
294 gperf_file = custom_target(
295 fname,
296 input : item[1],
297 output : fname,
298 command : [generate_gperfs, item[2], item[3], '@INPUT@'],
299 capture : true)
300
301 fname = '@0@-from-name.h'.format(item[0])
302 target1 = custom_target(
303 fname,
304 input : gperf_file,
305 output : fname,
306 command : [gperf,
307 '-L', 'ANSI-C', '-t', '--ignore-case',
308 '-N', 'lookup_@0@'.format(item[2]),
309 '-H', 'hash_@0@_name'.format(item[2]),
310 '-p', '-C',
311 '@INPUT@'],
312 capture : true)
313
314 fname = '@0@-to-name.h'.format(item[0])
315 awkscript = '@0@-to-name.awk'.format(item[0])
316 target2 = custom_target(
317 fname,
318 input : [awkscript, item[1]],
319 output : fname,
320 command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
321 capture : true)
322
323 generated_gperf_headers += [target1, target2]
324 endforeach
325
326 basic_sources += generated_gperf_headers
327
328 ############################################################
329
330 arch_list = [
331 'alpha',
332 'arc',
333 'arm',
334 'arm64',
335 'i386',
336 'ia64',
337 'm68k',
338 'mips64',
339 'mips64n32',
340 'mipso32',
341 'powerpc',
342 'powerpc64',
343 'riscv32',
344 'riscv64',
345 's390',
346 's390x',
347 'sparc',
348 'x86_64'
349 ]
350
351 run_target(
352 'update-syscall-tables',
353 command : [update_syscall_tables_sh, meson.current_source_dir()] + arch_list)
354
355 syscall_list_txt = files('syscall-list.txt')
356
357 syscall_lists = []
358 foreach arch: arch_list
359 syscall_lists += files('syscalls-@0@.txt'.format(arch))
360 endforeach
361
362 missing_syscalls_py = find_program('missing_syscalls.py')
363
364 run_target(
365 'update-syscall-header',
366 command : [missing_syscalls_py,
367 missing_syscall_def_h,
368 syscall_lists])
369
370 ############################################################
371
372 libbasic = static_library(
373 'basic',
374 basic_sources,
375 fundamental_sources,
376 include_directories : basic_includes,
377 dependencies : [versiondep,
378 threads,
379 libcap,
380 libm],
381 c_args : ['-fvisibility=default'],
382 install : false)
383
384 ############################################################
385
386 basic_gcrypt_sources = files(
387 'gcrypt-util.c',
388 'gcrypt-util.h')
389
390 # A convenience library that is separate from libbasic to avoid
391 # unnecessary linking to libgcrypt.
392 libbasic_gcrypt = static_library(
393 'basic-gcrypt',
394 basic_gcrypt_sources,
395 include_directories : basic_includes,
396 dependencies : [libgcrypt],
397 c_args : ['-fvisibility=default'])