123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- ################################################################################
- #
- # systemd
- #
- ################################################################################
- SYSTEMD_VERSION = 230
- SYSTEMD_SITE = $(call github,systemd,systemd,v$(SYSTEMD_VERSION))
- SYSTEMD_LICENSE = LGPLv2.1+, GPLv2+ (udev), Public Domain (few source files, see README)
- SYSTEMD_LICENSE_FILES = LICENSE.GPL2 LICENSE.LGPL2.1 README
- 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= \
- --enable-static=no \
- --disable-manpages \
- --disable-selinux \
- --disable-pam \
- --disable-libcryptsetup \
- --disable-efi \
- --disable-gnuefi \
- --disable-ldconfig \
- --disable-tests \
- --with-default-dnssec=no \
- --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
- define SYSTEMD_RUN_INTLTOOLIZE
- cd $(@D) && $(HOST_DIR)/usr/bin/intltoolize --force --automake
- endef
- SYSTEMD_PRE_CONFIGURE_HOOKS += SYSTEMD_RUN_INTLTOOLIZE
- 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_LIBSECCOMP),y)
- SYSTEMD_CONF_OPTS += --enable-seccomp
- SYSTEMD_DEPENDENCIES += libseccomp
- else
- SYSTEMD_CONF_OPTS += --disable-seccomp
- endif
- ifeq ($(BR2_PACKAGE_SYSTEMD_KDBUS),y)
- SYSTEMD_CONF_OPTS += --enable-kdbus
- else
- SYSTEMD_CONF_OPTS += --disable-kdbus
- endif
- ifeq ($(BR2_PACKAGE_BZIP2),y)
- SYSTEMD_DEPENDENCIES += bzip2
- SYSTEMD_CONF_OPTS += --enable-bzip2
- else
- SYSTEMD_CONF_OPTS += --disable-bzip2
- endif
- ifeq ($(BR2_PACKAGE_LZ4),y)
- SYSTEMD_DEPENDENCIES += lz4
- SYSTEMD_CONF_OPTS += --enable-lz4
- else
- SYSTEMD_CONF_OPTS += --disable-lz4
- endif
- ifeq ($(BR2_PACKAGE_XZ),y)
- SYSTEMD_DEPENDENCIES += xz
- SYSTEMD_CONF_OPTS += --enable-xz
- else
- SYSTEMD_CONF_OPTS += --disable-xz
- endif
- ifeq ($(BR2_PACKAGE_ZLIB),y)
- SYSTEMD_DEPENDENCIES += zlib
- SYSTEMD_CONF_OPTS += --enable-zlib
- else
- SYSTEMD_CONF_OPTS += --disable-zlib
- endif
- ifeq ($(BR2_PACKAGE_LIBCURL),y)
- SYSTEMD_DEPENDENCIES += libcurl
- SYSTEMD_CONF_OPTS += --enable-libcurl
- else
- SYSTEMD_CONF_OPTS += --disable-libcurl
- endif
- ifeq ($(BR2_PACKAGE_LIBGCRYPT),y)
- SYSTEMD_DEPENDENCIES += libgcrypt
- SYSTEMD_CONF_OPTS += \
- --enable-gcrypt \
- --with-libgcrypt-prefix=$(STAGING_DIR)/usr \
- --with-libgpg-error-prefix=$(STAGING_DIR)/usr
- else
- SYSTEMD_CONF_OPTS += --disable-gcrypt
- endif
- ifeq ($(BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY),y)
- SYSTEMD_DEPENDENCIES += libmicrohttpd
- SYSTEMD_CONF_OPTS += --enable-microhttpd
- else
- SYSTEMD_CONF_OPTS += --disable-microhttpd
- endif
- ifeq ($(BR2_PACKAGE_SYSTEMD_HWDB),y)
- SYSTEMD_CONF_OPTS += --enable-hwdb
- else
- SYSTEMD_CONF_OPTS += --disable-hwdb
- endif
- ifeq ($(BR2_PACKAGE_SYSTEMD_BINFMT),y)
- SYSTEMD_CONF_OPTS += --enable-binfmt
- else
- SYSTEMD_CONF_OPTS += --disable-binfmt
- endif
- ifeq ($(BR2_PACKAGE_SYSTEMD_VCONSOLE),y)
- SYSTEMD_CONF_OPTS += --enable-vconsole
- else
- SYSTEMD_CONF_OPTS += --disable-vconsole
- endif
- ifeq ($(BR2_PACKAGE_SYSTEMD_BOOTCHART),y)
- SYSTEMD_CONF_OPTS += --enable-bootchart
- else
- SYSTEMD_CONF_OPTS += --disable-bootchart
- endif
- ifeq ($(BR2_PACKAGE_SYSTEMD_QUOTACHECK),y)
- SYSTEMD_CONF_OPTS += --enable-quotacheck
- else
- SYSTEMD_CONF_OPTS += --disable-quotacheck
- 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
- # 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
- SYSTEMD_POST_INSTALL_TARGET_HOOKS += \
- SYSTEMD_INSTALL_INIT_HOOK \
- SYSTEMD_INSTALL_MACHINEID_HOOK \
- SYSTEMD_INSTALL_RESOLVCONF_HOOK
- 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
- # also patch the file to use the correct baud-rate, the default baudrate is 115200 so look for that
- 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; \
- if [ $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE)) -gt 0 ] ; \
- then \
- $(SED) 's,115200,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),' $(TARGET_DIR)/lib/systemd/system/$${SERVICE}@.service; \
- fi
- 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))
|