]>
Commit | Line | Data |
---|---|---|
db9ecf05 | 1 | # SPDX-License-Identifier: LGPL-2.1-or-later |
3a726fcd | 2 | |
f1b98127 ZJS |
3 | udevadm_sources = files( |
4 | 'udevadm.c', | |
f1b98127 ZJS |
5 | 'udevadm-control.c', |
6 | 'udevadm-hwdb.c', | |
7 | 'udevadm-info.c', | |
8b12a516 | 8 | 'udevadm-lock.c', |
f1b98127 ZJS |
9 | 'udevadm-monitor.c', |
10 | 'udevadm-settle.c', | |
11 | 'udevadm-test.c', | |
12 | 'udevadm-test-builtin.c', | |
13 | 'udevadm-trigger.c', | |
14 | 'udevadm-util.c', | |
aa2b0d8d | 15 | 'udevadm-wait.c', |
2f492a73 ZJS |
16 | 'udevd.c', |
17 | ) | |
5c23128d | 18 | |
b9acb507 | 19 | libudevd_core_sources = files( |
f1b98127 | 20 | 'udev-ctrl.c', |
f1b98127 | 21 | 'udev-event.c', |
f1b98127 | 22 | 'udev-node.c', |
f1b98127 | 23 | 'udev-rules.c', |
f1b98127 | 24 | 'udev-watch.c', |
f1b98127 | 25 | 'udev-builtin.c', |
f1b98127 ZJS |
26 | 'udev-builtin-btrfs.c', |
27 | 'udev-builtin-hwdb.c', | |
28 | 'udev-builtin-input_id.c', | |
29 | 'udev-builtin-keyboard.c', | |
30 | 'udev-builtin-net_id.c', | |
31 | 'udev-builtin-net_setup_link.c', | |
32 | 'udev-builtin-path_id.c', | |
33 | 'udev-builtin-usb_id.c', | |
f1b98127 | 34 | 'net/link-config.c', |
2f492a73 | 35 | ) |
5c23128d | 36 | |
349cc4a5 | 37 | if conf.get('HAVE_KMOD') == 1 |
b9acb507 | 38 | libudevd_core_sources += files('udev-builtin-kmod.c') |
5c23128d ZJS |
39 | endif |
40 | ||
349cc4a5 | 41 | if conf.get('HAVE_BLKID') == 1 |
b9acb507 | 42 | libudevd_core_sources += files('udev-builtin-blkid.c') |
5c23128d ZJS |
43 | endif |
44 | ||
349cc4a5 | 45 | if conf.get('HAVE_ACL') == 1 |
b9acb507 | 46 | libudevd_core_sources += files('udev-builtin-uaccess.c') |
5c23128d ZJS |
47 | endif |
48 | ||
49 | ############################################################ | |
50 | ||
51 | generate_keyboard_keys_list = find_program('generate-keyboard-keys-list.sh') | |
52 | keyboard_keys_list_txt = custom_target( | |
37efbbd8 ZJS |
53 | 'keyboard-keys-list.txt', |
54 | output : 'keyboard-keys-list.txt', | |
55 | command : [generate_keyboard_keys_list, cpp], | |
56 | capture : true) | |
5c23128d | 57 | |
1b833237 | 58 | generate_keyboard_keys_gperf = find_program('generate-keyboard-keys-gperf.sh') |
5c23128d ZJS |
59 | fname = 'keyboard-keys-from-name.gperf' |
60 | gperf_file = custom_target( | |
37efbbd8 ZJS |
61 | fname, |
62 | input : keyboard_keys_list_txt, | |
63 | output : fname, | |
1b833237 | 64 | command : [generate_keyboard_keys_gperf, '@INPUT@'], |
37efbbd8 | 65 | capture : true) |
5c23128d ZJS |
66 | |
67 | fname = 'keyboard-keys-from-name.h' | |
68 | keyboard_keys_from_name_h = custom_target( | |
37efbbd8 ZJS |
69 | fname, |
70 | input : gperf_file, | |
71 | output : fname, | |
72 | command : [gperf, | |
8ff213fd | 73 | '-L', 'ANSI-C', '-t', |
37efbbd8 ZJS |
74 | '-N', 'keyboard_lookup_key', |
75 | '-H', 'hash_key_name', | |
76 | '-p', '-C', | |
77 | '@INPUT@'], | |
78 | capture : true) | |
5c23128d ZJS |
79 | |
80 | ############################################################ | |
81 | ||
82 | link_config_gperf_c = custom_target( | |
37efbbd8 ZJS |
83 | 'link-config-gperf.c', |
84 | input : 'net/link-config-gperf.gperf', | |
85 | output : 'link-config-gperf.c', | |
86 | command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@']) | |
5c23128d ZJS |
87 | |
88 | ############################################################ | |
89 | ||
3a30f21f | 90 | if get_option('link-udev-shared') |
1aec3ed9 | 91 | udev_link_with = [libshared] |
5fb22561 | 92 | udev_rpath = rootpkglibdir |
3a30f21f | 93 | else |
1aec3ed9 | 94 | udev_link_with = [libshared_static, |
37e4d7a8 | 95 | libsystemd_static] |
1aec3ed9 | 96 | udev_rpath = '' |
3a30f21f ZJS |
97 | endif |
98 | ||
e4b127e2 YW |
99 | ############################################################ |
100 | ||
8d40961c | 101 | udev_includes = [includes, include_directories('net', '.')] |
e4b127e2 | 102 | libudevd_core = static_library( |
37efbbd8 | 103 | 'udev-core', |
e4b127e2 | 104 | libudevd_core_sources, |
37efbbd8 ZJS |
105 | link_config_gperf_c, |
106 | keyboard_keys_from_name_h, | |
8d40961c | 107 | include_directories : udev_includes, |
1aec3ed9 | 108 | link_with : udev_link_with, |
03f7ddf0 ZJS |
109 | dependencies : [libblkid, |
110 | libkmod], | |
111 | build_by_default : false) | |
3a30f21f | 112 | |
0b5f1bd4 ZJS |
113 | udev_progs = [['ata_id/ata_id.c'], |
114 | ['cdrom_id/cdrom_id.c'], | |
115 | ['fido_id/fido_id.c', | |
4a7ee0a5 | 116 | 'fido_id/fido_id_desc.c'], |
0b5f1bd4 | 117 | ['scsi_id/scsi_id.c', |
4a7ee0a5 | 118 | 'scsi_id/scsi_serial.c'], |
0b5f1bd4 ZJS |
119 | ['v4l_id/v4l_id.c'], |
120 | ['mtd_probe/mtd_probe.c', | |
0b5f1bd4 | 121 | 'mtd_probe/probe_smartmedia.c']] |
3a30f21f | 122 | |
ff6d2869 | 123 | dmi_arches = ['x86', 'x86_64', 'aarch64', 'arm', 'ia64', 'loongarch64', 'mips'] |
2bfb92a9 | 124 | if dmi_arches.contains(host_machine.cpu_family()) |
0b5f1bd4 | 125 | udev_progs += [['dmi_memory_id/dmi_memory_id.c']] |
2bfb92a9 BN |
126 | endif |
127 | ||
0b5f1bd4 ZJS |
128 | udev_prog_paths = {} |
129 | foreach prog : udev_progs | |
2b7b142e ZJS |
130 | name = prog[0].split('/')[0] |
131 | ||
132 | exe = executable( | |
133 | name, | |
134 | prog, | |
135 | include_directories : includes, | |
0b5f1bd4 | 136 | dependencies : versiondep, |
2b7b142e ZJS |
137 | link_with : udev_link_with, |
138 | install_rpath : udev_rpath, | |
139 | install : true, | |
140 | install_dir : udevlibexecdir) | |
141 | ||
e93ada98 | 142 | udev_prog_paths += {name : exe} |
3a30f21f | 143 | endforeach |
5c23128d | 144 | |
225d08b8 | 145 | if install_sysconfdir_samples |
d7aa78c3 | 146 | install_data('udev.conf', |
fce9abb2 | 147 | install_dir : sysconfdir / 'udev') |
d7aa78c3 | 148 | endif |
5c23128d | 149 | |
94e41ec0 ZJS |
150 | custom_target( |
151 | 'udev.pc', | |
37efbbd8 ZJS |
152 | input : 'udev.pc.in', |
153 | output : 'udev.pc', | |
8f04a1ca | 154 | command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'], |
94e41ec0 ZJS |
155 | install : pkgconfigdatadir != 'no', |
156 | install_dir : pkgconfigdatadir) | |
94e75a54 | 157 | |
d7aa78c3 JT |
158 | if install_sysconfdir |
159 | meson.add_install_script('sh', '-c', | |
fce9abb2 | 160 | mkdir_p.format(sysconfdir / 'udev/rules.d')) |
d7aa78c3 | 161 | endif |
a378400b YW |
162 | |
163 | fuzzers += [ | |
bbec46c8 | 164 | [files('net/fuzz-link-parser.c'), |
e4b127e2 | 165 | [libudevd_core, |
a378400b YW |
166 | libshared], |
167 | [threads, | |
8d40961c YW |
168 | libacl], |
169 | udev_includes], | |
9648956d | 170 | |
bbec46c8 | 171 | [files('fuzz-udev-rules.c'), |
e025c9df YW |
172 | [libudevd_core, |
173 | libshared], | |
174 | [threads, | |
175 | libacl]], | |
176 | ||
bbec46c8 | 177 | [files('fuzz-udev-rule-parse-value.c')], |
e025c9df | 178 | |
bbec46c8 JJ |
179 | [files('fido_id/fuzz-fido-id-desc.c', |
180 | 'fido_id/fido_id_desc.c')], | |
5acb3cab | 181 | ] |
9648956d | 182 | |
822cd3ff JJ |
183 | test_libudev_base = { |
184 | 'link_with' : [libudevd_core, libshared], | |
185 | 'dependencies' : [threads, libacl], | |
186 | } | |
ac714078 | 187 | |
822cd3ff JJ |
188 | tests += [ |
189 | { | |
190 | 'sources' : files( | |
191 | 'fido_id/test-fido-id-desc.c', | |
192 | 'fido_id/fido_id_desc.c', | |
193 | ), | |
194 | }, | |
195 | { | |
196 | 'sources' : files('test-udev-builtin.c'), | |
197 | 'base' : test_libudev_base, | |
198 | }, | |
199 | { | |
200 | 'sources' : files('test-udev-event.c'), | |
201 | 'base' : test_libudev_base, | |
202 | }, | |
203 | { | |
204 | 'sources' : files('test-udev-node.c'), | |
205 | 'base' : test_libudev_base, | |
206 | }, | |
5acb3cab | 207 | ] |