2013-06-06 01:53:30 +02:00
|
|
|
################################################################################
|
2012-03-23 16:49:52 +01:00
|
|
|
#
|
|
|
|
# systemd
|
|
|
|
#
|
2013-06-06 01:53:30 +02:00
|
|
|
################################################################################
|
2013-06-06 01:53:25 +02:00
|
|
|
|
2014-12-11 13:17:32 +01:00
|
|
|
SYSTEMD_VERSION = 218
|
2014-07-31 10:46:58 +02:00
|
|
|
SYSTEMD_SITE = http://www.freedesktop.org/software/systemd
|
2012-04-04 16:46:59 +02:00
|
|
|
SYSTEMD_SOURCE = systemd-$(SYSTEMD_VERSION).tar.xz
|
2014-03-27 10:51:57 +01:00
|
|
|
SYSTEMD_LICENSE = LGPLv2.1+; GPLv2+ for udev; MIT-like license for few source files listed in README
|
2014-03-02 20:20:56 +01:00
|
|
|
SYSTEMD_LICENSE_FILES = LICENSE.GPL2 LICENSE.LGPL2.1 LICENSE.MIT
|
2012-05-20 12:52:49 +02:00
|
|
|
SYSTEMD_INSTALL_STAGING = YES
|
2012-03-23 16:49:52 +01:00
|
|
|
SYSTEMD_DEPENDENCIES = \
|
|
|
|
host-intltool \
|
|
|
|
libcap \
|
2014-02-07 14:21:34 +01:00
|
|
|
util-linux \
|
2014-03-02 16:14:21 +01:00
|
|
|
kmod \
|
|
|
|
host-gperf
|
2012-03-23 16:49:52 +01:00
|
|
|
|
2014-05-15 19:37:05 +02:00
|
|
|
SYSTEMD_PROVIDES = udev
|
2014-06-04 23:40:49 +02:00
|
|
|
SYSTEMD_AUTORECONF = YES
|
2014-05-15 19:37:05 +02:00
|
|
|
|
2012-03-23 16:49:52 +01:00
|
|
|
# Make sure that systemd will always be built after busybox so that we have
|
|
|
|
# a consistent init setup between two builds
|
|
|
|
ifeq ($(BR2_PACKAGE_BUSYBOX),y)
|
2014-02-07 14:21:34 +01:00
|
|
|
SYSTEMD_DEPENDENCIES += busybox
|
2012-03-23 16:49:52 +01:00
|
|
|
endif
|
|
|
|
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += \
|
2014-02-07 14:21:34 +01:00
|
|
|
--with-rootprefix= \
|
|
|
|
--with-rootlibdir=/lib \
|
|
|
|
--enable-static=no \
|
|
|
|
--disable-manpages \
|
2012-03-23 16:49:52 +01:00
|
|
|
--disable-selinux \
|
|
|
|
--disable-pam \
|
|
|
|
--disable-libcryptsetup \
|
|
|
|
--with-dbuspolicydir=/etc/dbus-1/system.d \
|
|
|
|
--with-dbussessionservicedir=/usr/share/dbus-1/services \
|
|
|
|
--with-dbussystemservicedir=/usr/share/dbus-1/system-services \
|
|
|
|
--with-dbusinterfacedir=/usr/share/dbus-1/interfaces \
|
2014-02-07 14:21:34 +01:00
|
|
|
--enable-split-usr \
|
|
|
|
--enable-introspection=no \
|
|
|
|
--disable-efi \
|
|
|
|
--disable-tests \
|
2014-03-17 15:25:42 +01:00
|
|
|
--disable-dbus \
|
2014-02-07 14:21:34 +01:00
|
|
|
--without-python
|
2012-03-23 16:49:52 +01:00
|
|
|
|
2014-08-12 22:28:27 +02:00
|
|
|
SYSTEMD_CFLAGS = $(TARGET_CFLAGS) -fno-lto
|
|
|
|
|
2014-07-03 18:57:36 +02:00
|
|
|
# Override path to kmod, used in kmod-static-nodes.service
|
|
|
|
SYSTEMD_CONF_ENV = \
|
2014-08-12 22:28:27 +02:00
|
|
|
CFLAGS="$(SYSTEMD_CFLAGS)" \
|
2014-07-03 18:57:36 +02:00
|
|
|
ac_cv_path_KMOD=/usr/bin/kmod
|
|
|
|
|
2014-04-14 11:25:36 +02:00
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_COMPAT),y)
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += --enable-compat-libs
|
2014-04-14 11:25:36 +02:00
|
|
|
else
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += --disable-compat-libs
|
2014-04-14 11:25:36 +02:00
|
|
|
endif
|
|
|
|
|
2012-03-23 16:49:52 +01:00
|
|
|
ifeq ($(BR2_PACKAGE_ACL),y)
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += --enable-acl
|
2014-02-07 14:21:34 +01:00
|
|
|
SYSTEMD_DEPENDENCIES += acl
|
2012-03-23 16:49:52 +01:00
|
|
|
else
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += --disable-acl
|
2012-03-23 16:49:52 +01:00
|
|
|
endif
|
|
|
|
|
2014-02-07 14:21:34 +01:00
|
|
|
ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += --enable-gudev
|
2014-02-07 14:21:34 +01:00
|
|
|
SYSTEMD_DEPENDENCIES += libglib2
|
|
|
|
else
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += --disable-gudev
|
2014-02-07 14:21:34 +01:00
|
|
|
endif
|
|
|
|
|
2014-09-23 11:45:45 +02:00
|
|
|
ifeq ($(BR2_PACKAGE_LIBSECCOMP),y)
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += --enable-seccomp
|
2014-09-23 11:45:45 +02:00
|
|
|
SYSTEMD_DEPENDENCIES += libseccomp
|
|
|
|
else
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += --disable-seccomp
|
2014-09-23 11:45:45 +02:00
|
|
|
endif
|
|
|
|
|
2014-02-07 14:21:34 +01:00
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_ALL_EXTRAS),y)
|
|
|
|
SYSTEMD_DEPENDENCIES += \
|
|
|
|
xz \
|
|
|
|
libgcrypt
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += \
|
2014-02-07 14:21:34 +01:00
|
|
|
--enable-xz \
|
|
|
|
--enable-gcrypt \
|
|
|
|
--with-libgcrypt-prefix=$(STAGING_DIR)/usr
|
|
|
|
else
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += \
|
2014-02-07 14:21:34 +01:00
|
|
|
--disable-xz \
|
|
|
|
--disable-gcrypt
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY),y)
|
|
|
|
SYSTEMD_DEPENDENCIES += libmicrohttpd
|
|
|
|
else
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += --disable-microhttpd
|
2012-04-04 16:46:59 +02:00
|
|
|
endif
|
|
|
|
|
2014-03-17 15:25:42 +01:00
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_NETWORKD),y)
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += --enable-networkd
|
2014-07-18 15:02:00 +02:00
|
|
|
define SYSTEMD_INSTALL_RESOLVCONF_HOOK
|
|
|
|
ln -sf ../run/systemd/resolve/resolv.conf \
|
|
|
|
$(TARGET_DIR)/etc/resolv.conf
|
|
|
|
endef
|
2014-03-17 15:25:42 +01:00
|
|
|
else
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += --disable-networkd
|
2014-06-23 11:52:06 +02:00
|
|
|
define SYSTEMD_INSTALL_SERVICE_NETWORK
|
|
|
|
$(INSTALL) -D -m 644 package/systemd/network.service \
|
|
|
|
$(TARGET_DIR)/etc/systemd/system/network.service
|
|
|
|
mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
|
|
|
|
ln -fs ../network.service \
|
|
|
|
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/network.service
|
|
|
|
endef
|
2014-03-17 15:25:42 +01:00
|
|
|
endif
|
|
|
|
|
2014-06-04 23:40:49 +02:00
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_TIMESYNCD),y)
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += --enable-timesyncd
|
2014-07-18 15:02:01 +02:00
|
|
|
define SYSTEMD_INSTALL_SERVICE_TIMESYNC
|
|
|
|
mkdir -p $(TARGET_DIR)/etc/systemd/system/sysinit.target.wants
|
|
|
|
ln -sf ../../../../lib/systemd/system/systemd-timesyncd.service \
|
|
|
|
$(TARGET_DIR)/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service
|
|
|
|
endef
|
2014-06-04 23:40:49 +02:00
|
|
|
else
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += --disable-timesyncd
|
2014-06-04 23:40:49 +02:00
|
|
|
endif
|
|
|
|
|
2014-04-20 20:54:04 +02:00
|
|
|
ifeq ($(BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT),y)
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += --enable-smack
|
2014-04-20 20:54:04 +02:00
|
|
|
else
|
2014-09-27 21:32:44 +02:00
|
|
|
SYSTEMD_CONF_OPTS += --disable-smack
|
2014-04-20 20:54:04 +02:00
|
|
|
endif
|
|
|
|
|
2012-03-31 23:57:35 +02:00
|
|
|
# mq_getattr needs -lrt
|
2014-09-27 21:32:38 +02:00
|
|
|
SYSTEMD_MAKE_OPTS += LIBS=-lrt
|
|
|
|
SYSTEMD_MAKE_OPTS += LDFLAGS+=-ldl
|
2012-03-31 23:57:35 +02:00
|
|
|
|
2012-03-23 16:49:52 +01:00
|
|
|
define SYSTEMD_INSTALL_INIT_HOOK
|
2014-02-07 14:21:34 +01:00
|
|
|
ln -fs ../lib/systemd/systemd $(TARGET_DIR)/sbin/init
|
|
|
|
ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/halt
|
|
|
|
ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/poweroff
|
|
|
|
ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/reboot
|
2012-03-23 16:49:52 +01:00
|
|
|
|
2014-02-07 14:21:34 +01:00
|
|
|
ln -fs ../../../lib/systemd/system/multi-user.target $(TARGET_DIR)/etc/systemd/system/default.target
|
2012-03-23 16:49:52 +01:00
|
|
|
endef
|
|
|
|
|
2014-02-07 14:21:34 +01:00
|
|
|
define SYSTEMD_INSTALL_MACHINEID_HOOK
|
|
|
|
touch $(TARGET_DIR)/etc/machine-id
|
|
|
|
endef
|
|
|
|
|
|
|
|
define SYSTEMD_SANITIZE_PATH_IN_UNITS
|
|
|
|
find $(TARGET_DIR)/lib/systemd/system -name '*.service' \
|
2014-02-15 03:42:57 +01:00
|
|
|
-exec $(SED) 's,$(HOST_DIR),,g' {} \;
|
2012-03-23 16:49:52 +01:00
|
|
|
endef
|
|
|
|
|
2014-07-25 17:31:41 +02:00
|
|
|
# Disable ldconfig.service, as /sbin/ldconfig is not available when the
|
|
|
|
# target is built with a glibc-based toolchain.
|
|
|
|
define SYSTEMD_DISABLE_LDCONFIG_SERVICE_HOOK
|
|
|
|
rm -f $(TARGET_DIR)/lib/systemd/system/sysinit.target.wants/ldconfig.service
|
|
|
|
endef
|
|
|
|
|
2012-03-23 16:49:52 +01:00
|
|
|
SYSTEMD_POST_INSTALL_TARGET_HOOKS += \
|
2014-02-07 14:21:34 +01:00
|
|
|
SYSTEMD_INSTALL_INIT_HOOK \
|
|
|
|
SYSTEMD_INSTALL_MACHINEID_HOOK \
|
2014-07-18 15:02:00 +02:00
|
|
|
SYSTEMD_INSTALL_RESOLVCONF_HOOK \
|
2014-07-25 17:31:41 +02:00
|
|
|
SYSTEMD_DISABLE_LDCONFIG_SERVICE_HOOK \
|
2014-02-07 14:21:34 +01:00
|
|
|
SYSTEMD_SANITIZE_PATH_IN_UNITS
|
|
|
|
|
|
|
|
define SYSTEMD_USERS
|
|
|
|
systemd-journal -1 systemd-journal -1 * /var/log/journal - - Journal
|
|
|
|
systemd-journal-gateway -1 systemd-journal-gateway -1 * /var/log/journal - - Journal Gateway
|
2014-09-15 23:06:22 +02:00
|
|
|
systemd-journal-remote -1 systemd-journal-remote -1 * /var/log/journal/remote - - Journal Remote
|
|
|
|
systemd-journal-upload -1 systemd-journal-upload -1 * - - - Journal Upload
|
2014-07-18 15:02:00 +02:00
|
|
|
systemd-resolve -1 systemd-resolve -1 * - - - Network Name Resolution Manager
|
|
|
|
systemd-bus-proxy -1 systemd-bus-proxy -1 * - - - Proxy D-Bus messages to/from a bus
|
|
|
|
systemd-timesync -1 systemd-timesync -1 * - - - Network Time Synchronization
|
|
|
|
systemd-network -1 systemd-network -1 * - - - Network Manager
|
2014-10-21 16:26:39 +02:00
|
|
|
- - input -1 * - - - Input device group
|
2014-02-07 14:21:34 +01:00
|
|
|
endef
|
2012-03-23 16:49:52 +01:00
|
|
|
|
2014-10-09 15:58:02 +02:00
|
|
|
define SYSTEMD_DISABLE_SERVICE_TTY1
|
2014-06-23 11:52:06 +02:00
|
|
|
rm -f $(TARGET_DIR)/etc/systemd/system/getty.target.wants/getty@tty1.service
|
2014-10-09 15:58:02 +02:00
|
|
|
endef
|
|
|
|
|
2014-10-09 15:58:03 +02:00
|
|
|
ifneq ($(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)),)
|
2014-10-09 15:58:02 +02:00
|
|
|
# systemd needs getty.service for VTs and serial-getty.service for serial ttys
|
|
|
|
define SYSTEMD_INSTALL_SERVICE_TTY
|
|
|
|
if echo $(BR2_TARGET_GENERIC_GETTY_PORT) | egrep -q 'tty[0-9]*$$'; \
|
|
|
|
then \
|
|
|
|
SERVICE="getty"; \
|
|
|
|
else \
|
|
|
|
SERVICE="serial-getty"; \
|
|
|
|
fi; \
|
|
|
|
ln -fs ../../../../lib/systemd/system/$${SERVICE}@.service \
|
|
|
|
$(TARGET_DIR)/etc/systemd/system/getty.target.wants/$${SERVICE}@$(BR2_TARGET_GENERIC_GETTY_PORT).service
|
2014-06-23 11:52:06 +02:00
|
|
|
endef
|
2014-10-09 15:58:03 +02:00
|
|
|
endif
|
2014-06-23 11:52:06 +02:00
|
|
|
|
|
|
|
define SYSTEMD_INSTALL_INIT_SYSTEMD
|
2014-10-09 15:58:02 +02:00
|
|
|
$(SYSTEMD_DISABLE_SERVICE_TTY1)
|
2014-06-23 11:52:06 +02:00
|
|
|
$(SYSTEMD_INSTALL_SERVICE_TTY)
|
|
|
|
$(SYSTEMD_INSTALL_SERVICE_NETWORK)
|
2014-07-18 15:02:01 +02:00
|
|
|
$(SYSTEMD_INSTALL_SERVICE_TIMESYNC)
|
2014-06-23 11:52:06 +02:00
|
|
|
endef
|
|
|
|
|
2012-07-03 00:07:32 +02:00
|
|
|
$(eval $(autotools-package))
|