criu.mk 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. ################################################################################
  2. #
  3. # CRIU
  4. #
  5. ################################################################################
  6. CRIU_VERSION = 3.19
  7. CRIU_SITE = $(call github,checkpoint-restore,criu,v$(CRIU_VERSION))
  8. CRIU_LICENSE = GPL-2.0, LGPL-2.1 (for lib/), MIT (for images/)
  9. CRIU_LICENSE_FILES = COPYING images/LICENSE
  10. CRIU_DEPENDENCIES =\
  11. host-pkgconf \
  12. host-protobuf-c \
  13. host-python3 \
  14. host-python-pip \
  15. libaio \
  16. libbsd \
  17. libcap \
  18. libnet \
  19. libnl \
  20. protobuf \
  21. protobuf-c \
  22. python3
  23. CRIU_MAKE_ENV =\
  24. $(TARGET_MAKE_ENV) \
  25. $(TARGET_CONFIGURE_OPTS) \
  26. CROSS_COMPILE=$(TARGET_CROSS) \
  27. WERROR=0
  28. # Remap to match the used in criu.
  29. ifeq ($(BR2_NORMALIZED_ARCH),"x86_64")
  30. CRIU_MAKE_ENV += ARCH=x86
  31. else ifeq ($(BR2_NORMALIZED_ARCH),"powerpc")
  32. CRIU_MAKE_ENV += ARCH=ppc64
  33. else ifeq ($(BR2_NORMALIZED_ARCH),"arm64")
  34. CRIU_MAKE_ENV += ARCH=aarch64
  35. else
  36. CRIU_MAKE_ENV += ARCH=$(BR2_NORMALIZED_ARCH)
  37. endif
  38. ifeq ($(BR2_ARM_CPU_ARMV6),y)
  39. CRIU_MAKE_ENV += SUBARCH=armv6
  40. else ifeq ($(BR2_ARM_CPU_ARMV7A),y)
  41. CRIU_MAKE_ENV += SUBARCH=armv7
  42. else ifeq ($(BR2_ARM_CPU_ARMV7M),y)
  43. CRIU_MAKE_ENV += SUBARCH=armv7
  44. else ifeq ($(BR2_ARM_CPU_ARMV8A),y)
  45. CRIU_MAKE_ENV += SUBARCH=armv8
  46. endif
  47. # Criu needs Kernel Checkpoint/restore support which is not enabled
  48. # by default.
  49. define CRIU_LINUX_CONFIG_FIXUPS
  50. $(call KCONFIG_ENABLE_OPT,CONFIG_CHECKPOINT_RESTORE)
  51. endef
  52. define CRIU_BUILD_CMDS
  53. rm -rf $(@D)/images/google/protobuf/descriptor.proto
  54. cp -a $(STAGING_DIR)/usr/include/google/protobuf/descriptor.proto \
  55. $(@D)/images/google/protobuf/descriptor.proto
  56. $(CRIU_MAKE_ENV) $(MAKE) -C $(@D) \
  57. PREFIX=/usr
  58. endef
  59. define CRIU_INSTALL_TARGET_CMDS
  60. $(CRIU_MAKE_ENV) $(MAKE) -C $(@D) \
  61. PREFIX=/usr \
  62. DESTDIR=$(TARGET_DIR) \
  63. install-criu \
  64. install-lib \
  65. install-compel
  66. endef
  67. $(eval $(generic-package))