]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/basic/meson.build
Merge pull request #15251 from keszybz/coverity-fixes
[thirdparty/systemd.git] / src / basic / meson.build
1 # SPDX-License-Identifier: LGPL-2.1+
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 blockdev-util.c
19 blockdev-util.h
20 btrfs-util.c
21 btrfs-util.h
22 build.h
23 bus-label.c
24 bus-label.h
25 cap-list.c
26 cap-list.h
27 capability-util.c
28 capability-util.h
29 cgroup-util.c
30 cgroup-util.h
31 chattr-util.c
32 chattr-util.h
33 conf-files.c
34 conf-files.h
35 copy.c
36 copy.h
37 def.h
38 device-nodes.c
39 device-nodes.h
40 dirent-util.c
41 dirent-util.h
42 efivars.c
43 efivars.h
44 env-file.c
45 env-file.h
46 env-util.c
47 env-util.h
48 errno-list.c
49 errno-list.h
50 errno-util.h
51 escape.c
52 escape.h
53 ether-addr-util.c
54 ether-addr-util.h
55 extract-word.c
56 extract-word.h
57 fd-util.c
58 fd-util.h
59 fileio.c
60 fileio.h
61 format-util.c
62 format-util.h
63 fs-util.c
64 fs-util.h
65 glob-util.c
66 glob-util.h
67 gunicode.c
68 gunicode.h
69 hash-funcs.c
70 hash-funcs.h
71 hashmap.c
72 hashmap.h
73 hexdecoct.c
74 hexdecoct.h
75 hostname-util.c
76 hostname-util.h
77 in-addr-util.c
78 in-addr-util.h
79 io-util.c
80 io-util.h
81 ioprio.h
82 kbd-util.c
83 kbd-util.h
84 khash.c
85 khash.h
86 label.c
87 label.h
88 limits-util.c
89 limits-util.h
90 linux/btrfs.h
91 linux/btrfs_tree.h
92 linux/can/vxcan.h
93 linux/fib_rules.h
94 linux/fou.h
95 linux/if.h
96 linux/if_addr.h
97 linux/if_arp.h
98 linux/if_bonding.h
99 linux/if_bridge.h
100 linux/if_ether.h
101 linux/if_link.h
102 linux/if_macsec.h
103 linux/if_tun.h
104 linux/if_tunnel.h
105 linux/in.h
106 linux/in6.h
107 linux/l2tp.h
108 linux/libc-compat.h
109 linux/netdevice.h
110 linux/netlink.h
111 linux/rtnetlink.h
112 linux/wireguard.h
113 list.h
114 locale-util.c
115 locale-util.h
116 log.c
117 log.h
118 login-util.c
119 login-util.h
120 macro.h
121 memfd-util.c
122 memfd-util.h
123 memory-util.c
124 memory-util.h
125 mempool.c
126 mempool.h
127 missing_audit.h
128 missing_capability.h
129 missing_drm.h
130 missing_fcntl.h
131 missing_fs.h
132 missing_input.h
133 missing_keyctl.h
134 missing_magic.h
135 missing_mman.h
136 missing_network.h
137 missing_prctl.h
138 missing_random.h
139 missing_resource.h
140 missing_sched.h
141 missing_securebits.h
142 missing_socket.h
143 missing_stat.h
144 missing_stdlib.h
145 missing_syscall.h
146 missing_timerfd.h
147 missing_type.h
148 mkdir-label.c
149 mkdir.c
150 mkdir.h
151 mountpoint-util.c
152 mountpoint-util.h
153 namespace-util.c
154 namespace-util.h
155 nss-util.h
156 nulstr-util.c
157 nulstr-util.h
158 ordered-set.c
159 ordered-set.h
160 parse-util.c
161 parse-util.h
162 path-lookup.c
163 path-lookup.h
164 path-util.c
165 path-util.h
166 prioq.c
167 prioq.h
168 proc-cmdline.c
169 proc-cmdline.h
170 process-util.c
171 process-util.h
172 procfs-util.c
173 procfs-util.h
174 pthread-util.h
175 quota-util.c
176 quota-util.h
177 random-util.c
178 random-util.h
179 ratelimit.c
180 ratelimit.h
181 raw-clone.h
182 raw-reboot.h
183 replace-var.c
184 replace-var.h
185 rlimit-util.c
186 rlimit-util.h
187 rm-rf.c
188 rm-rf.h
189 selinux-util.c
190 selinux-util.h
191 set.h
192 sigbus.c
193 sigbus.h
194 signal-util.c
195 signal-util.h
196 siphash24.c
197 siphash24.h
198 smack-util.c
199 smack-util.h
200 socket-label.c
201 socket-util.c
202 socket-util.h
203 sort-util.c
204 sort-util.h
205 sparse-endian.h
206 special.h
207 stat-util.c
208 stat-util.h
209 static-destruct.h
210 stdio-util.h
211 strbuf.c
212 strbuf.h
213 string-table.c
214 string-table.h
215 string-util.c
216 string-util.h
217 strv.c
218 strv.h
219 strxcpyx.c
220 strxcpyx.h
221 syslog-util.c
222 syslog-util.h
223 terminal-util.c
224 terminal-util.h
225 time-util.c
226 time-util.h
227 tmpfile-util.c
228 tmpfile-util.h
229 umask-util.h
230 unaligned.h
231 unit-def.c
232 unit-def.h
233 unit-name.c
234 unit-name.h
235 user-util.c
236 user-util.h
237 utf8.c
238 utf8.h
239 util.c
240 util.h
241 virt.c
242 virt.h
243 xattr-util.c
244 xattr-util.h
245 '''.split())
246
247 missing_audit_h = files('missing_audit.h')
248 missing_capability_h = files('missing_capability.h')
249 missing_socket_h = files('missing_socket.h')
250
251 generate_af_list = find_program('generate-af-list.sh')
252 af_list_txt = custom_target(
253 'af-list.txt',
254 output : 'af-list.txt',
255 command : [generate_af_list, cpp, config_h, missing_socket_h],
256 capture : true)
257
258 generate_arphrd_list = find_program('generate-arphrd-list.sh')
259 arphrd_list_txt = custom_target(
260 'arphrd-list.txt',
261 output : 'arphrd-list.txt',
262 command : [generate_arphrd_list, cpp, config_h],
263 capture : true)
264
265 generate_cap_list = find_program('generate-cap-list.sh')
266 cap_list_txt = custom_target(
267 'cap-list.txt',
268 output : 'cap-list.txt',
269 command : [generate_cap_list, cpp, config_h, missing_capability_h],
270 capture : true)
271
272 generate_errno_list = find_program('generate-errno-list.sh')
273 errno_list_txt = custom_target(
274 'errno-list.txt',
275 output : 'errno-list.txt',
276 command : [generate_errno_list, cpp],
277 capture : true)
278
279 generated_gperf_headers = []
280 foreach item : [['af', af_list_txt, 'af', ''],
281 ['arphrd', arphrd_list_txt, 'arphrd', 'ARPHRD_'],
282 ['cap', cap_list_txt, 'capability', ''],
283 ['errno', errno_list_txt, 'errno', '']]
284
285 fname = '@0@-from-name.gperf'.format(item[0])
286 gperf_file = custom_target(
287 fname,
288 input : item[1],
289 output : fname,
290 command : [generate_gperfs, item[2], item[3], '@INPUT@'],
291 capture : true)
292
293 fname = '@0@-from-name.h'.format(item[0])
294 target1 = custom_target(
295 fname,
296 input : gperf_file,
297 output : fname,
298 command : [gperf,
299 '-L', 'ANSI-C', '-t', '--ignore-case',
300 '-N', 'lookup_@0@'.format(item[2]),
301 '-H', 'hash_@0@_name'.format(item[2]),
302 '-p', '-C',
303 '@INPUT@'],
304 capture : true)
305
306 fname = '@0@-to-name.h'.format(item[0])
307 awkscript = '@0@-to-name.awk'.format(item[0])
308 target2 = custom_target(
309 fname,
310 input : [awkscript, item[1]],
311 output : fname,
312 command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
313 capture : true)
314
315 generated_gperf_headers += [target1, target2]
316 endforeach
317
318 basic_sources += generated_gperf_headers
319 basic_gcrypt_sources = files(
320 'gcrypt-util.c',
321 'gcrypt-util.h')
322
323 libbasic = static_library(
324 'basic',
325 basic_sources,
326 include_directories : includes,
327 dependencies : [versiondep,
328 threads,
329 libcap,
330 libselinux,
331 libm],
332 c_args : ['-fvisibility=default'],
333 install : false)
334
335 # A convenience library that is separate from libbasic to avoid
336 # unnecessary linking to libgcrypt.
337 libbasic_gcrypt = static_library(
338 'basic-gcrypt',
339 basic_gcrypt_sources,
340 include_directories : includes,
341 dependencies : [libgcrypt],
342 c_args : ['-fvisibility=default'])