blob: 3b72a1131efb88087902ef1c9590b65b4d843805 [file] [log] [blame]
################################################################################
#
# CRIU
#
################################################################################
CRIU_VERSION = 3.19
CRIU_SITE = $(call github,checkpoint-restore,criu,v$(CRIU_VERSION))
CRIU_LICENSE = GPL-2.0, LGPL-2.1 (for lib/), MIT (for images/)
CRIU_LICENSE_FILES = COPYING images/LICENSE
CRIU_DEPENDENCIES =\
host-pkgconf \
host-protobuf-c \
host-python3 \
host-python-pip \
libaio \
libbsd \
libcap \
libnet \
libnl \
protobuf \
protobuf-c \
python3
CRIU_MAKE_ENV =\
$(TARGET_MAKE_ENV) \
$(TARGET_CONFIGURE_OPTS) \
CROSS_COMPILE=$(TARGET_CROSS) \
WERROR=0
# Remap to match the used in criu.
ifeq ($(BR2_NORMALIZED_ARCH),"x86_64")
CRIU_MAKE_ENV += ARCH=x86
else ifeq ($(BR2_NORMALIZED_ARCH),"powerpc")
CRIU_MAKE_ENV += ARCH=ppc64
else ifeq ($(BR2_NORMALIZED_ARCH),"arm64")
CRIU_MAKE_ENV += ARCH=aarch64
else
CRIU_MAKE_ENV += ARCH=$(BR2_NORMALIZED_ARCH)
endif
ifeq ($(BR2_ARM_CPU_ARMV6),y)
CRIU_MAKE_ENV += SUBARCH=armv6
else ifeq ($(BR2_ARM_CPU_ARMV7A),y)
CRIU_MAKE_ENV += SUBARCH=armv7
else ifeq ($(BR2_ARM_CPU_ARMV7M),y)
CRIU_MAKE_ENV += SUBARCH=armv7
else ifeq ($(BR2_ARM_CPU_ARMV8A),y)
CRIU_MAKE_ENV += SUBARCH=armv8
endif
# Criu needs Kernel Checkpoint/restore support which is not enabled
# by default.
define CRIU_LINUX_CONFIG_FIXUPS
$(call KCONFIG_ENABLE_OPT,CONFIG_CHECKPOINT_RESTORE)
endef
define CRIU_BUILD_CMDS
rm -rf $(@D)/images/google/protobuf/descriptor.proto
cp -a $(STAGING_DIR)/usr/include/google/protobuf/descriptor.proto \
$(@D)/images/google/protobuf/descriptor.proto
$(CRIU_MAKE_ENV) $(MAKE) -C $(@D) \
PREFIX=/usr
endef
define CRIU_INSTALL_TARGET_CMDS
$(CRIU_MAKE_ENV) $(MAKE) -C $(@D) \
PREFIX=/usr \
DESTDIR=$(TARGET_DIR) \
install-criu \
install-lib \
install-compel
endef
$(eval $(generic-package))