--- /dev/null
+################################################################################
+#
+# systemd
+#
+################################################################################
+
+SYSTEMD_VERSION = 219
+SYSTEMD_SITE = http://www.freedesktop.org/software/systemd
+SYSTEMD_SOURCE = systemd-$(SYSTEMD_VERSION).tar.xz
+SYSTEMD_LICENSE = LGPLv2.1+; GPLv2+ for udev; MIT-like license for few source files listed in README
+SYSTEMD_LICENSE_FILES = LICENSE.GPL2 LICENSE.LGPL2.1 LICENSE.MIT
+SYSTEMD_INSTALL_STAGING = YES
+SYSTEMD_DEPENDENCIES = \
+ host-intltool \
+ libcap \
+ util-linux \
+ kmod \
+ host-gperf
+
+SYSTEMD_PROVIDES = udev
+SYSTEMD_AUTORECONF = YES
+
+# 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)
+SYSTEMD_DEPENDENCIES += busybox
+endif
+
+SYSTEMD_CONF_OPTS += \
+ --with-rootprefix= \
+ --with-rootlibdir=/lib \
+ --enable-static=no \
+ --disable-manpages \
+ --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 \
+ --enable-split-usr \
+ --disable-efi \
+ --disable-tests \
+ --disable-dbus \
+ --without-python
+
+SYSTEMD_CFLAGS = $(TARGET_CFLAGS) -fno-lto
+
+# Override path to kmod, used in kmod-static-nodes.service
+SYSTEMD_CONF_ENV = \
+ CFLAGS="$(SYSTEMD_CFLAGS)" \
+ ac_cv_path_KMOD=/usr/bin/kmod
+
+ifeq ($(BR2_PACKAGE_SYSTEMD_COMPAT),y)
+SYSTEMD_CONF_OPTS += --enable-compat-libs
+else
+SYSTEMD_CONF_OPTS += --disable-compat-libs
+endif
+
+ifeq ($(BR2_PACKAGE_ACL),y)
+SYSTEMD_CONF_OPTS += --enable-acl
+SYSTEMD_DEPENDENCIES += acl
+else
+SYSTEMD_CONF_OPTS += --disable-acl
+endif
+
+ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
+SYSTEMD_CONF_OPTS += --enable-gudev
+SYSTEMD_DEPENDENCIES += libglib2
+else
+SYSTEMD_CONF_OPTS += --disable-gudev
+endif
+
+ifeq ($(BR2_PACKAGE_LIBSECCOMP),y)
+SYSTEMD_CONF_OPTS += --enable-seccomp
+SYSTEMD_DEPENDENCIES += libseccomp
+else
+SYSTEMD_CONF_OPTS += --disable-seccomp
+endif
+
+ifeq ($(BR2_PACKAGE_SYSTEMD_ALL_EXTRAS),y)
+SYSTEMD_DEPENDENCIES += \
+ xz \
+ libgcrypt
+SYSTEMD_CONF_OPTS += \
+ --enable-xz \
+ --enable-gcrypt \
+ --with-libgcrypt-prefix=$(STAGING_DIR)/usr
+else
+SYSTEMD_CONF_OPTS += \
+ --disable-xz \
+ --disable-gcrypt
+endif
+
+ifeq ($(BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY),y)
+SYSTEMD_DEPENDENCIES += libmicrohttpd
+else
+SYSTEMD_CONF_OPTS += --disable-microhttpd
+endif
+
+ifeq ($(BR2_PACKAGE_SYSTEMD_NETWORKD),y)
+SYSTEMD_CONF_OPTS += --enable-networkd
+define SYSTEMD_INSTALL_RESOLVCONF_HOOK
+ ln -sf ../run/systemd/resolve/resolv.conf \
+ $(TARGET_DIR)/etc/resolv.conf
+endef
+else
+SYSTEMD_CONF_OPTS += --disable-networkd
+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
+endif
+
+ifeq ($(BR2_PACKAGE_SYSTEMD_TIMESYNCD),y)
+SYSTEMD_CONF_OPTS += --enable-timesyncd
+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
+else
+SYSTEMD_CONF_OPTS += --disable-timesyncd
+endif
+
+ifeq ($(BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT),y)
+SYSTEMD_CONF_OPTS += --enable-smack
+else
+SYSTEMD_CONF_OPTS += --disable-smack
+endif
+
+ifeq ($(BR2_PACKAGE_BASH),)
+SYSTEMD_CONF_OPTS += --with-bashcompletiondir=
+endif
+
+ifeq ($(BR2_PACKAGE_ZSH),)
+SYSTEMD_CONF_OPTS += --with-zshcompletiondir=
+endif
+
+# mq_getattr needs -lrt
+SYSTEMD_MAKE_OPTS += LIBS=-lrt
+SYSTEMD_MAKE_OPTS += LDFLAGS+=-ldl
+
+define SYSTEMD_INSTALL_INIT_HOOK
+ 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
+
+ ln -fs ../../../lib/systemd/system/multi-user.target $(TARGET_DIR)/etc/systemd/system/default.target
+endef
+
+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' \
+ -exec $(SED) 's,$(HOST_DIR),,g' {} \;
+endef
+
+# 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
+
+SYSTEMD_POST_INSTALL_TARGET_HOOKS += \
+ SYSTEMD_INSTALL_INIT_HOOK \
+ SYSTEMD_INSTALL_MACHINEID_HOOK \
+ SYSTEMD_INSTALL_RESOLVCONF_HOOK \
+ SYSTEMD_DISABLE_LDCONFIG_SERVICE_HOOK \
+ 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
+ systemd-journal-remote -1 systemd-journal-remote -1 * /var/log/journal/remote - - Journal Remote
+ systemd-journal-upload -1 systemd-journal-upload -1 * - - - Journal Upload
+ 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
+ - - input -1 * - - - Input device group
+endef
+
+define SYSTEMD_DISABLE_SERVICE_TTY1
+ rm -f $(TARGET_DIR)/etc/systemd/system/getty.target.wants/getty@tty1.service
+endef
+
+ifneq ($(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)),)
+# 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
+endef
+endif
+
+define SYSTEMD_INSTALL_INIT_SYSTEMD
+ $(SYSTEMD_DISABLE_SERVICE_TTY1)
+ $(SYSTEMD_INSTALL_SERVICE_TTY)
+ $(SYSTEMD_INSTALL_SERVICE_NETWORK)
+ $(SYSTEMD_INSTALL_SERVICE_TIMESYNC)
+endef
+
+$(eval $(autotools-package))