]> rtime.felk.cvut.cz Git - coffee/buildroot.git/blob - package/systemd/systemd.mk
Globally replace $(HOST_DIR)/usr/bin with $(HOST_DIR)/bin
[coffee/buildroot.git] / package / systemd / systemd.mk
1 ################################################################################
2 #
3 # systemd
4 #
5 ################################################################################
6
7 SYSTEMD_VERSION = 233
8 SYSTEMD_SITE = $(call github,systemd,systemd,v$(SYSTEMD_VERSION))
9 SYSTEMD_LICENSE = LGPL-2.1+, GPL-2.0+ (udev), Public Domain (few source files, see README)
10 SYSTEMD_LICENSE_FILES = LICENSE.GPL2 LICENSE.LGPL2.1 README
11 SYSTEMD_INSTALL_STAGING = YES
12 SYSTEMD_DEPENDENCIES = \
13         host-intltool \
14         libcap \
15         util-linux \
16         kmod \
17         host-gperf
18
19 SYSTEMD_PROVIDES = udev
20 SYSTEMD_AUTORECONF = YES
21
22 # Make sure that systemd will always be built after busybox so that we have
23 # a consistent init setup between two builds
24 ifeq ($(BR2_PACKAGE_BUSYBOX),y)
25 SYSTEMD_DEPENDENCIES += busybox
26 endif
27
28 SYSTEMD_CONF_OPTS += \
29         --with-rootprefix= \
30         --enable-blkid \
31         --enable-static=no \
32         --disable-manpages \
33         --disable-ima \
34         --disable-libcryptsetup \
35         --disable-efi \
36         --disable-gnuefi \
37         --disable-ldconfig \
38         --disable-tests \
39         --disable-coverage \
40         --with-default-dnssec=no \
41         --without-python
42
43 SYSTEMD_CFLAGS = $(TARGET_CFLAGS) -fno-lto
44
45 # Override paths to a few utilities needed at runtime, to
46 # avoid finding those we would install in $(HOST_DIR).
47 SYSTEMD_CONF_ENV = \
48         CFLAGS="$(SYSTEMD_CFLAGS)" \
49         ac_cv_path_KILL=/usr/bin/kill \
50         ac_cv_path_KMOD=/usr/bin/kmod \
51         ac_cv_path_KEXEC=/usr/sbin/kexec \
52         ac_cv_path_SULOGIN=/usr/sbin/sulogin \
53         ac_cv_path_MOUNT_PATH=/usr/bin/mount \
54         ac_cv_path_UMOUNT_PATH=/usr/bin/umount
55
56 define SYSTEMD_RUN_INTLTOOLIZE
57         cd $(@D) && $(HOST_DIR)/bin/intltoolize --force --automake
58 endef
59 SYSTEMD_PRE_CONFIGURE_HOOKS += SYSTEMD_RUN_INTLTOOLIZE
60
61 ifeq ($(BR2_PACKAGE_ACL),y)
62 SYSTEMD_CONF_OPTS += --enable-acl
63 SYSTEMD_DEPENDENCIES += acl
64 else
65 SYSTEMD_CONF_OPTS += --disable-acl
66 endif
67
68 ifeq ($(BR2_PACKAGE_AUDIT),y)
69 SYSTEMD_CONF_OPTS += --enable-audit
70 SYSTEMD_DEPENDENCIES += audit
71 else
72 SYSTEMD_CONF_OPTS += --disable-audit
73 endif
74
75 ifeq ($(BR2_PACKAGE_LIBIDN),y)
76 SYSTEMD_CONF_OPTS += --enable-libidn
77 SYSTEMD_DEPENDENCIES += libidn
78 else
79 SYSTEMD_CONF_OPTS += --disable-libidn
80 endif
81
82 ifeq ($(BR2_PACKAGE_LIBSECCOMP),y)
83 SYSTEMD_CONF_OPTS += --enable-seccomp
84 SYSTEMD_DEPENDENCIES += libseccomp
85 else
86 SYSTEMD_CONF_OPTS += --disable-seccomp
87 endif
88
89 ifeq ($(BR2_PACKAGE_LIBXKBCOMMON),y)
90 SYSTEMD_CONF_OPTS += --enable-xkbcommon
91 SYSTEMD_DEPENDENCIES += libxkbcommon
92 else
93 SYSTEMD_CONF_OPTS += --disable-xkbcommon
94 endif
95
96 ifeq ($(BR2_PACKAGE_BZIP2),y)
97 SYSTEMD_DEPENDENCIES += bzip2
98 SYSTEMD_CONF_OPTS += --enable-bzip2
99 else
100 SYSTEMD_CONF_OPTS += --disable-bzip2
101 endif
102
103 ifeq ($(BR2_PACKAGE_LZ4),y)
104 SYSTEMD_DEPENDENCIES += lz4
105 SYSTEMD_CONF_OPTS += --enable-lz4
106 else
107 SYSTEMD_CONF_OPTS += --disable-lz4
108 endif
109
110 ifeq ($(BR2_PACKAGE_LINUX_PAM),y)
111 SYSTEMD_DEPENDENCIES += linux-pam
112 SYSTEMD_CONF_OPTS += --enable-pam
113 else
114 SYSTEMD_CONF_OPTS += --disable-pam
115 endif
116
117 ifeq ($(BR2_PACKAGE_XZ),y)
118 SYSTEMD_DEPENDENCIES += xz
119 SYSTEMD_CONF_OPTS += --enable-xz
120 else
121 SYSTEMD_CONF_OPTS += --disable-xz
122 endif
123
124 ifeq ($(BR2_PACKAGE_ZLIB),y)
125 SYSTEMD_DEPENDENCIES += zlib
126 SYSTEMD_CONF_OPTS += --enable-zlib
127 else
128 SYSTEMD_CONF_OPTS += --disable-zlib
129 endif
130
131 ifeq ($(BR2_PACKAGE_LIBCURL),y)
132 SYSTEMD_DEPENDENCIES += libcurl
133 SYSTEMD_CONF_OPTS += --enable-libcurl
134 else
135 SYSTEMD_CONF_OPTS += --disable-libcurl
136 endif
137
138 ifeq ($(BR2_PACKAGE_LIBGCRYPT),y)
139 SYSTEMD_DEPENDENCIES += libgcrypt
140 SYSTEMD_CONF_OPTS += \
141         --enable-gcrypt \
142         --with-libgcrypt-prefix=$(STAGING_DIR)/usr \
143         --with-libgpg-error-prefix=$(STAGING_DIR)/usr
144 else
145 SYSTEMD_CONF_OPTS += --disable-gcrypt
146 endif
147
148 ifeq ($(BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY),y)
149 SYSTEMD_DEPENDENCIES += libmicrohttpd
150 SYSTEMD_CONF_OPTS += --enable-microhttpd
151 ifeq ($(BR2_PACKAGE_LIBQRENCODE),y)
152 SYSTEMD_CONF_OPTS += --enable-qrencode
153 SYSTEMD_DEPENDENCIES += libqrencode
154 else
155 SYSTEMD_CONF_OPTS += --disable-qrencode
156 endif
157 else
158 SYSTEMD_CONF_OPTS += --disable-microhttpd --disable-qrencode
159 endif
160
161 ifeq ($(BR2_PACKAGE_LIBSELINUX),y)
162 SYSTEMD_DEPENDENCIES += libselinux
163 SYSTEMD_CONF_OPTS += --enable-selinux
164 else
165 SYSTEMD_CONF_OPTS += --disable-selinux
166 endif
167
168 ifeq ($(BR2_PACKAGE_SYSTEMD_HWDB),y)
169 SYSTEMD_CONF_OPTS += --enable-hwdb
170 else
171 SYSTEMD_CONF_OPTS += --disable-hwdb
172 endif
173
174 ifeq ($(BR2_PACKAGE_SYSTEMD_BINFMT),y)
175 SYSTEMD_CONF_OPTS += --enable-binfmt
176 else
177 SYSTEMD_CONF_OPTS += --disable-binfmt
178 endif
179
180 ifeq ($(BR2_PACKAGE_SYSTEMD_VCONSOLE),y)
181 SYSTEMD_CONF_OPTS += --enable-vconsole
182 else
183 SYSTEMD_CONF_OPTS += --disable-vconsole
184 endif
185
186 ifeq ($(BR2_PACKAGE_SYSTEMD_QUOTACHECK),y)
187 SYSTEMD_CONF_OPTS += --enable-quotacheck
188 SYSTEMD_CONF_ENV += \
189         ac_cv_path_QUOTAON=/usr/sbin/quotaon \
190         ac_cv_path_QUOTACHECK=/usr/sbin/quotacheck
191 else
192 SYSTEMD_CONF_OPTS += --disable-quotacheck
193 SYSTEMD_CONF_ENV += \
194         ac_cv_path_QUOTAON=/.missing \
195         ac_cv_path_QUOTACHECK=/.missing
196 endif
197
198 ifeq ($(BR2_PACKAGE_SYSTEMD_TMPFILES),y)
199 SYSTEMD_CONF_OPTS += --enable-tmpfiles
200 else
201 SYSTEMD_CONF_OPTS += --disable-tmpfiles
202 endif
203
204 ifeq ($(BR2_PACKAGE_SYSTEMD_SYSUSERS),y)
205 SYSTEMD_CONF_OPTS += --enable-sysusers
206 else
207 SYSTEMD_CONF_OPTS += --disable-sysusers
208 endif
209
210 ifeq ($(BR2_PACKAGE_SYSTEMD_FIRSTBOOT),y)
211 SYSTEMD_CONF_OPTS += --enable-firstboot
212 else
213 SYSTEMD_CONF_OPTS += --disable-firstboot
214 endif
215
216 ifeq ($(BR2_PACKAGE_SYSTEMD_RANDOMSEED),y)
217 SYSTEMD_CONF_OPTS += --enable-randomseed
218 else
219 SYSTEMD_CONF_OPTS += --disable-randomseed
220 endif
221
222 ifeq ($(BR2_PACKAGE_SYSTEMD_BACKLIGHT),y)
223 SYSTEMD_CONF_OPTS += --enable-backlight
224 else
225 SYSTEMD_CONF_OPTS += --disable-backlight
226 endif
227
228 ifeq ($(BR2_PACKAGE_SYSTEMD_RFKILL),y)
229 SYSTEMD_CONF_OPTS += --enable-rfkill
230 else
231 SYSTEMD_CONF_OPTS += --disable-rfkill
232 endif
233
234 ifeq ($(BR2_PACKAGE_SYSTEMD_LOGIND),y)
235 SYSTEMD_CONF_OPTS += --enable-logind
236 else
237 SYSTEMD_CONF_OPTS += --disable-logind
238 endif
239
240 ifeq ($(BR2_PACKAGE_SYSTEMD_MACHINED),y)
241 SYSTEMD_CONF_OPTS += --enable-machined
242 else
243 SYSTEMD_CONF_OPTS += --disable-machined
244 endif
245
246 ifeq ($(BR2_PACKAGE_SYSTEMD_IMPORTD),y)
247 SYSTEMD_CONF_OPTS += --enable-importd
248 else
249 SYSTEMD_CONF_OPTS += --disable-importd
250 endif
251
252 ifeq ($(BR2_PACKAGE_SYSTEMD_HOSTNAMED),y)
253 SYSTEMD_CONF_OPTS += --enable-hostnamed
254 else
255 SYSTEMD_CONF_OPTS += --disable-hostnamed
256 endif
257
258 ifeq ($(BR2_PACKAGE_SYSTEMD_MYHOSTNAME),y)
259 SYSTEMD_CONF_OPTS += --enable-myhostname
260 else
261 SYSTEMD_CONF_OPTS += --disable-myhostname
262 endif
263
264 ifeq ($(BR2_PACKAGE_SYSTEMD_TIMEDATED),y)
265 SYSTEMD_CONF_OPTS += --enable-timedated
266 else
267 SYSTEMD_CONF_OPTS += --disable-timedated
268 endif
269
270 ifeq ($(BR2_PACKAGE_SYSTEMD_LOCALED),y)
271 SYSTEMD_CONF_OPTS += --enable-localed
272 else
273 SYSTEMD_CONF_OPTS += --disable-localed
274 endif
275
276 ifeq ($(BR2_PACKAGE_SYSTEMD_COREDUMP),y)
277 SYSTEMD_CONF_OPTS += --enable-coredump
278 SYSTEMD_COREDUMP_USER = systemd-coredump -1 systemd-coredump -1 * /var/lib/systemd/coredump - - Core Dumper
279 else
280 SYSTEMD_CONF_OPTS += --disable-coredump
281 endif
282
283 ifeq ($(BR2_PACKAGE_SYSTEMD_POLKIT),y)
284 SYSTEMD_CONF_OPTS += --enable-polkit
285 else
286 SYSTEMD_CONF_OPTS += --disable-polkit
287 endif
288
289 ifeq ($(BR2_PACKAGE_SYSTEMD_NETWORKD),y)
290 SYSTEMD_CONF_OPTS += --enable-networkd
291 SYSTEMD_NETWORKD_USER = systemd-network -1 systemd-network -1 * - - - Network Manager
292 define SYSTEMD_INSTALL_RESOLVCONF_HOOK
293         ln -sf ../run/systemd/resolve/resolv.conf \
294                 $(TARGET_DIR)/etc/resolv.conf
295 endef
296 SYSTEMD_NETWORKD_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP))
297 ifneq ($(SYSTEMD_NETWORKD_DHCP_IFACE),)
298 define SYSTEMD_INSTALL_NETWORK_CONFS
299         sed s/SYSTEMD_NETWORKD_DHCP_IFACE/$(SYSTEMD_NETWORKD_DHCP_IFACE)/ \
300                 package/systemd/dhcp.network > \
301                 $(TARGET_DIR)/etc/systemd/network/dhcp.network
302 endef
303 endif
304 else
305 SYSTEMD_CONF_OPTS += --disable-networkd
306 endif
307
308 ifeq ($(BR2_PACKAGE_SYSTEMD_RESOLVED),y)
309 SYSTEMD_CONF_OPTS += --enable-resolved
310 SYSTEMD_RESOLVED_USER = systemd-resolve -1 systemd-resolve -1 * - - - Network Name Resolution Manager
311 else
312 SYSTEMD_CONF_OPTS += --disable-resolved
313 endif
314
315 ifeq ($(BR2_PACKAGE_SYSTEMD_TIMESYNCD),y)
316 SYSTEMD_CONF_OPTS += --enable-timesyncd
317 SYSTEMD_TIMESYNCD_USER = systemd-timesync -1 systemd-timesync -1 * - - - Network Time Synchronization
318 define SYSTEMD_INSTALL_SERVICE_TIMESYNC
319         mkdir -p $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants
320         ln -sf ../../../../lib/systemd/system/systemd-timesyncd.service \
321                 $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service
322 endef
323 else
324 SYSTEMD_CONF_OPTS += --disable-timesyncd
325 endif
326
327 ifeq ($(BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT),y)
328 SYSTEMD_CONF_OPTS += --enable-smack
329 else
330 SYSTEMD_CONF_OPTS += --disable-smack
331 endif
332
333 ifeq ($(BR2_PACKAGE_SYSTEMD_HIBERNATE),y)
334 SYSTEMD_CONF_OPTS += --enable-hibernate
335 else
336 SYSTEMD_CONF_OPTS += --disable-hibernate
337 endif
338
339 define SYSTEMD_INSTALL_INIT_HOOK
340         ln -fs ../lib/systemd/systemd $(TARGET_DIR)/sbin/init
341         ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/halt
342         ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/poweroff
343         ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/reboot
344
345         ln -fs ../../../lib/systemd/system/multi-user.target \
346                 $(TARGET_DIR)/etc/systemd/system/default.target
347 endef
348
349 define SYSTEMD_INSTALL_MACHINEID_HOOK
350         touch $(TARGET_DIR)/etc/machine-id
351 endef
352
353 SYSTEMD_POST_INSTALL_TARGET_HOOKS += \
354         SYSTEMD_INSTALL_INIT_HOOK \
355         SYSTEMD_INSTALL_MACHINEID_HOOK \
356         SYSTEMD_INSTALL_RESOLVCONF_HOOK
357
358 define SYSTEMD_USERS
359         - - input -1 * - - - Input device group
360         - - systemd-journal -1 * - - - Journal
361         systemd-bus-proxy -1 systemd-bus-proxy -1 * - - - Proxy D-Bus messages to/from a bus
362         systemd-journal-gateway -1 systemd-journal-gateway -1 * /var/log/journal - - Journal Gateway
363         systemd-journal-remote -1 systemd-journal-remote -1 * /var/log/journal/remote - - Journal Remote
364         systemd-journal-upload -1 systemd-journal-upload -1 * - - - Journal Upload
365         $(SYSTEMD_COREDUMP_USER)
366         $(SYSTEMD_NETWORKD_USER)
367         $(SYSTEMD_RESOLVED_USER)
368         $(SYSTEMD_TIMESYNCD_USER)
369 endef
370
371 define SYSTEMD_DISABLE_SERVICE_TTY1
372         rm -f $(TARGET_DIR)/etc/systemd/system/getty.target.wants/getty@tty1.service
373 endef
374
375 ifneq ($(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)),)
376 # systemd needs getty.service for VTs and serial-getty.service for serial ttys
377 # also patch the file to use the correct baud-rate, the default baudrate is 115200 so look for that
378 define SYSTEMD_INSTALL_SERVICE_TTY
379         if echo $(BR2_TARGET_GENERIC_GETTY_PORT) | egrep -q 'tty[0-9]*$$'; \
380         then \
381                 SERVICE="getty"; \
382         else \
383                 SERVICE="serial-getty"; \
384         fi; \
385         ln -fs ../../../../lib/systemd/system/$${SERVICE}@.service \
386                 $(TARGET_DIR)/etc/systemd/system/getty.target.wants/$${SERVICE}@$(BR2_TARGET_GENERIC_GETTY_PORT).service; \
387         if [ $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE)) -gt 0 ] ; \
388         then \
389                 $(SED) 's,115200,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),' $(TARGET_DIR)/lib/systemd/system/$${SERVICE}@.service; \
390         fi
391 endef
392 endif
393
394 define SYSTEMD_INSTALL_INIT_SYSTEMD
395         $(SYSTEMD_DISABLE_SERVICE_TTY1)
396         $(SYSTEMD_INSTALL_SERVICE_TTY)
397         $(SYSTEMD_INSTALL_SERVICE_TIMESYNC)
398         $(SYSTEMD_INSTALL_NETWORK_CONFS)
399 endef
400
401 $(eval $(autotools-package))