systemd: add option to enable compatibility libs
[buildroot-gz.git] / package / systemd / systemd.mk
blobf7661abb8c10a665e3ec79c7f23717e292ba19d7
1 ################################################################################
3 # systemd
5 ################################################################################
7 SYSTEMD_VERSION = 212
8 SYSTEMD_SITE = http://www.freedesktop.org/software/systemd/
9 SYSTEMD_SOURCE = systemd-$(SYSTEMD_VERSION).tar.xz
10 SYSTEMD_LICENSE = LGPLv2.1+; GPLv2+ for udev; MIT-like license for few source files listed in README
11 SYSTEMD_LICENSE_FILES = LICENSE.GPL2 LICENSE.LGPL2.1 LICENSE.MIT
12 SYSTEMD_INSTALL_STAGING = YES
13 SYSTEMD_DEPENDENCIES = \
14 host-intltool \
15 libcap \
16 util-linux \
17 kmod \
18 host-gperf
20 # Make sure that systemd will always be built after busybox so that we have
21 # a consistent init setup between two builds
22 ifeq ($(BR2_PACKAGE_BUSYBOX),y)
23 SYSTEMD_DEPENDENCIES += busybox
24 endif
26 SYSTEMD_CONF_OPT += \
27 --with-rootprefix= \
28 --with-rootlibdir=/lib \
29 --localstatedir=/var \
30 --enable-static=no \
31 --disable-manpages \
32 --disable-selinux \
33 --disable-pam \
34 --disable-libcryptsetup \
35 --with-dbuspolicydir=/etc/dbus-1/system.d \
36 --with-dbussessionservicedir=/usr/share/dbus-1/services \
37 --with-dbussystemservicedir=/usr/share/dbus-1/system-services \
38 --with-dbusinterfacedir=/usr/share/dbus-1/interfaces \
39 --with-firmware-path=/lib/firmware \
40 --enable-split-usr \
41 --enable-introspection=no \
42 --disable-efi \
43 --disable-myhostname \
44 --disable-tcpwrap \
45 --disable-tests \
46 --disable-dbus \
47 --without-python
49 ifeq ($(BR2_PACKAGE_SYSTEMD_COMPAT),y)
50 SYSTEMD_CONF_OPT += --enable-compat-libs
51 else
52 SYSTEMD_CONF_OPT += --disable-compat-libs
53 endif
55 ifeq ($(BR2_PACKAGE_ACL),y)
56 SYSTEMD_CONF_OPT += --enable-acl
57 SYSTEMD_DEPENDENCIES += acl
58 else
59 SYSTEMD_CONF_OPT += --disable-acl
60 endif
62 ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
63 SYSTEMD_CONF_OPT += --enable-gudev
64 SYSTEMD_DEPENDENCIES += libglib2
65 else
66 SYSTEMD_CONF_OPT += --disable-gudev
67 endif
69 ifeq ($(BR2_PACKAGE_SYSTEMD_ALL_EXTRAS),y)
70 SYSTEMD_DEPENDENCIES += \
71 xz \
72 libgcrypt
73 SYSTEMD_CONF_OPT += \
74 --enable-xz \
75 --enable-gcrypt \
76 --with-libgcrypt-prefix=$(STAGING_DIR)/usr
77 else
78 SYSTEMD_CONF_OPT += \
79 --disable-xz \
80 --disable-gcrypt
81 endif
83 ifeq ($(BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY),y)
84 SYSTEMD_DEPENDENCIES += libmicrohttpd
85 else
86 SYSTEMD_CONF_OPT += --disable-microhttpd
87 endif
89 ifeq ($(BR2_PACKAGE_SYSTEMD_NETWORKD),y)
90 SYSTEMD_CONF_OPT += --enable-networkd
91 else
92 SYSTEMD_CONF_OPT += --disable-networkd
93 endif
95 # mq_getattr needs -lrt
96 SYSTEMD_MAKE_OPT += LIBS=-lrt
97 SYSTEMD_MAKE_OPT += LDFLAGS+=-ldl
99 define SYSTEMD_INSTALL_INIT_HOOK
100 ln -fs ../lib/systemd/systemd $(TARGET_DIR)/sbin/init
101 ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/halt
102 ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/poweroff
103 ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/reboot
105 ln -fs ../../../lib/systemd/system/multi-user.target $(TARGET_DIR)/etc/systemd/system/default.target
106 endef
108 define SYSTEMD_INSTALL_TTY_HOOK
109 rm -f $(TARGET_DIR)/etc/systemd/system/getty.target.wants/getty@tty1.service
110 ln -fs ../../../../lib/systemd/system/serial-getty@.service $(TARGET_DIR)/etc/systemd/system/getty.target.wants/serial-getty@$(BR2_TARGET_GENERIC_GETTY_PORT).service
111 endef
113 define SYSTEMD_INSTALL_MACHINEID_HOOK
114 touch $(TARGET_DIR)/etc/machine-id
115 endef
117 define SYSTEMD_SANITIZE_PATH_IN_UNITS
118 find $(TARGET_DIR)/lib/systemd/system -name '*.service' \
119 -exec $(SED) 's,$(HOST_DIR),,g' {} \;
120 endef
122 SYSTEMD_POST_INSTALL_TARGET_HOOKS += \
123 SYSTEMD_INSTALL_INIT_HOOK \
124 SYSTEMD_INSTALL_TTY_HOOK \
125 SYSTEMD_INSTALL_MACHINEID_HOOK \
126 SYSTEMD_SANITIZE_PATH_IN_UNITS
128 define SYSTEMD_USERS
129 systemd-journal -1 systemd-journal -1 * /var/log/journal - - Journal
130 systemd-journal-gateway -1 systemd-journal-gateway -1 * /var/log/journal - - Journal Gateway
131 endef
133 $(eval $(autotools-package))