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