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