]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/network/meson.build
7d0e5d63457415bd8accf805de5e604a2ba43884
[thirdparty/systemd.git] / src / network / meson.build
1 # SPDX-License-Identifier: LGPL-2.1-or-later
2
3 sources = files(
4 'netdev/bareudp.c',
5 'netdev/batadv.c',
6 'netdev/bond.c',
7 'netdev/bridge.c',
8 'netdev/dummy.c',
9 'netdev/fou-tunnel.c',
10 'netdev/geneve.c',
11 'netdev/ifb.c',
12 'netdev/ipoib.c',
13 'netdev/ipvlan.c',
14 'netdev/l2tp-tunnel.c',
15 'netdev/macsec.c',
16 'netdev/macvlan.c',
17 'netdev/netdev-util.c',
18 'netdev/netdev.c',
19 'netdev/netdevsim.c',
20 'netdev/nlmon.c',
21 'netdev/tunnel.c',
22 'netdev/tuntap.c',
23 'netdev/vcan.c',
24 'netdev/veth.c',
25 'netdev/vlan.c',
26 'netdev/vrf.c',
27 'netdev/vxcan.c',
28 'netdev/vxlan.c',
29 'netdev/wireguard.c',
30 'netdev/wlan.c',
31 'netdev/xfrm.c',
32 'networkd-address-generation.c',
33 'networkd-address-label.c',
34 'networkd-address-pool.c',
35 'networkd-address.c',
36 'networkd-bridge-fdb.c',
37 'networkd-bridge-mdb.c',
38 'networkd-bridge-vlan.c',
39 'networkd-can.c',
40 'networkd-conf.c',
41 'networkd-dhcp-common.c',
42 'networkd-dhcp-prefix-delegation.c',
43 'networkd-dhcp-server-bus.c',
44 'networkd-dhcp-server-static-lease.c',
45 'networkd-dhcp-server.c',
46 'networkd-dhcp4.c',
47 'networkd-dhcp6.c',
48 'networkd-ipv4acd.c',
49 'networkd-ipv4ll.c',
50 'networkd-ipv6-proxy-ndp.c',
51 'networkd-ipv6ll.c',
52 'networkd-json.c',
53 'networkd-link-bus.c',
54 'networkd-link.c',
55 'networkd-lldp-rx.c',
56 'networkd-lldp-tx.c',
57 'networkd-manager-bus.c',
58 'networkd-manager.c',
59 'networkd-ndisc.c',
60 'networkd-neighbor.c',
61 'networkd-netlabel.c',
62 'networkd-network-bus.c',
63 'networkd-network.c',
64 'networkd-nexthop.c',
65 'networkd-queue.c',
66 'networkd-radv.c',
67 'networkd-route-util.c',
68 'networkd-route.c',
69 'networkd-routing-policy-rule.c',
70 'networkd-setlink.c',
71 'networkd-speed-meter.c',
72 'networkd-sriov.c',
73 'networkd-state-file.c',
74 'networkd-sysctl.c',
75 'networkd-util.c',
76 'networkd-wifi.c',
77 'networkd-wiphy.c',
78 'tc/cake.c',
79 'tc/codel.c',
80 'tc/drr.c',
81 'tc/ets.c',
82 'tc/fifo.c',
83 'tc/fq-codel.c',
84 'tc/fq-pie.c',
85 'tc/fq.c',
86 'tc/gred.c',
87 'tc/hhf.c',
88 'tc/htb.c',
89 'tc/netem.c',
90 'tc/pie.c',
91 'tc/qdisc.c',
92 'tc/qfq.c',
93 'tc/sfb.c',
94 'tc/sfq.c',
95 'tc/tbf.c',
96 'tc/tc-util.c',
97 'tc/tc.c',
98 'tc/tclass.c',
99 'tc/teql.c',
100 )
101
102 systemd_networkd_sources = files('networkd.c')
103
104 systemd_networkd_wait_online_sources = files(
105 'wait-online/link.c',
106 'wait-online/manager.c',
107 'wait-online/wait-online.c',
108 )
109
110 networkctl_sources = files('networkctl.c')
111
112 network_generator_sources = files(
113 'generator/main.c',
114 'generator/network-generator.c',
115 )
116
117 networkd_network_gperf_gperf = files('networkd-network-gperf.gperf')
118 networkd_netdev_gperf_gperf = files('netdev/netdev-gperf.gperf')
119
120 sources += custom_target(
121 'networkd-gperf.c',
122 input : 'networkd-gperf.gperf',
123 output : 'networkd-gperf.c',
124 command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
125
126 sources += custom_target(
127 'networkd-network-gperf.c',
128 input : networkd_network_gperf_gperf,
129 output : 'networkd-network-gperf.c',
130 command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
131
132 sources += custom_target(
133 'netdev-gperf.c',
134 input : networkd_netdev_gperf_gperf,
135 output : 'netdev-gperf.c',
136 command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
137
138 if get_option('link-networkd-shared')
139 networkd_link_with = [libshared]
140 else
141 networkd_link_with = [libsystemd_static,
142 libshared_static,
143 libbasic_gcrypt]
144 endif
145
146 network_includes = [libsystemd_network_includes, include_directories(['.', 'netdev', 'tc'])]
147
148 libnetworkd_core = static_library(
149 'networkd-core',
150 sources,
151 include_directories : network_includes,
152 dependencies : userspace,
153 link_with : networkd_link_with,
154 build_by_default : false)
155
156 network_test_template = test_template + {
157 'link_with' : [
158 libnetworkd_core,
159 libsystemd_network,
160 ],
161 'include_directories' : network_includes,
162 }
163
164 network_fuzz_template = fuzz_template + {
165 'link_with' : [
166 libnetworkd_core,
167 libsystemd_network,
168 ],
169 'dependencies' : threads,
170 'include_directories' : network_includes,
171 }
172
173 executables += [
174 libexec_template + {
175 'name' : 'systemd-networkd',
176 'dbus' : true,
177 'conditions' : ['ENABLE_NETWORKD'],
178 'sources' : systemd_networkd_sources,
179 'include_directories' : network_includes,
180 'link_with' : [
181 libnetworkd_core,
182 libsystemd_network,
183 networkd_link_with,
184 ],
185 'dependencies' : threads,
186 },
187 libexec_template + {
188 'name' : 'systemd-networkd-wait-online',
189 'public' : true,
190 'conditions' : ['ENABLE_NETWORKD'],
191 'sources' : systemd_networkd_wait_online_sources,
192 'link_with' : networkd_link_with,
193 },
194 executable_template + {
195 'name' : 'networkctl',
196 'public' : true,
197 'conditions' : ['ENABLE_NETWORKD'],
198 'sources' : networkctl_sources,
199 'include_directories' : libsystemd_network_includes,
200 'link_with' : [
201 libsystemd_network,
202 networkd_link_with,
203 ],
204 },
205 libexec_template + {
206 'name' : 'systemd-network-generator',
207 'sources' : network_generator_sources,
208 'link_with' : networkd_link_with,
209 },
210 test_template + {
211 'sources' : files(
212 'generator/test-network-generator.c',
213 'generator/network-generator.c',
214 ),
215 'suite' : 'network',
216 },
217 network_test_template + {
218 'sources' : files('test-network-tables.c'),
219 'dependencies' : threads,
220 },
221 network_test_template + {
222 'sources' : files('test-network.c'),
223 'dependencies' : threads,
224 },
225 network_test_template + {
226 'sources' : files('test-networkd-address.c'),
227 'dependencies' : libatomic,
228 },
229 network_test_template + {
230 'sources' : files('test-networkd-conf.c'),
231 'dependencies' : libatomic,
232 },
233 network_test_template + {
234 'sources' : files('test-networkd-util.c'),
235 },
236 network_fuzz_template + {
237 'sources' : files('fuzz-netdev-parser.c'),
238 },
239 network_fuzz_template + {
240 'sources' : files('fuzz-network-parser.c'),
241 },
242 ]
243
244 if conf.get('ENABLE_NETWORKD') == 1
245 install_data('org.freedesktop.network1.conf',
246 install_dir : dbuspolicydir)
247 install_data('org.freedesktop.network1.service',
248 install_dir : dbussystemservicedir)
249 install_data('org.freedesktop.network1.policy',
250 install_dir : polkitpolicydir)
251 if install_polkit
252 install_data('systemd-networkd.rules',
253 install_dir : polkitrulesdir)
254 endif
255 if install_polkit_pkla
256 install_data('systemd-networkd.pkla',
257 install_dir : polkitpkladir)
258 endif
259
260 if install_sysconfdir_samples
261 install_data('networkd.conf',
262 install_dir : pkgsysconfdir)
263 endif
264 endif