1*4882a593Smuzhiyun################################################################################ 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# Build the oci image 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun################################################################################ 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunROOTFS_OCI_DEPENDENCIES = host-sloci-image 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun# architecture - take it from Go 10*4882a593SmuzhiyunOCI_SLOCI_IMAGE_OPTS = --arch $(GO_GOARCH) 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun# architecture variant (typically used only for arm) 13*4882a593SmuzhiyunOCI_SLOCI_IMAGE_OPTS += $(and $(GO_GOARM),--arch-variant v$(GO_GOARM)) 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun# entrypoint 16*4882a593SmuzhiyunOCI_ENTRYPOINT = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_ENTRYPOINT)) 17*4882a593Smuzhiyunifneq ($(OCI_ENTRYPOINT),) 18*4882a593SmuzhiyunOCI_SLOCI_IMAGE_OPTS += --entrypoint "$(OCI_ENTRYPOINT)" 19*4882a593Smuzhiyunendif 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun# entrypoint arguments 22*4882a593SmuzhiyunOCI_ENTRYPOINT_ARGS = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_ENTRYPOINT_ARGS)) 23*4882a593Smuzhiyunifneq ($(OCI_ENTRYPOINT_ARGS),) 24*4882a593SmuzhiyunOCI_SLOCI_IMAGE_OPTS += --cmd "$(OCI_ENTRYPOINT_ARGS)" 25*4882a593Smuzhiyunendif 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun# author 28*4882a593SmuzhiyunOCI_AUTHOR = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_AUTHOR)) 29*4882a593Smuzhiyunifneq ($(OCI_AUTHOR),) 30*4882a593SmuzhiyunOCI_SLOCI_IMAGE_OPTS += --author "$(OCI_AUTHOR)" 31*4882a593Smuzhiyunendif 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun# username or UID 34*4882a593SmuzhiyunOCI_UID = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_UID)) 35*4882a593Smuzhiyunifneq ($(OCI_UID),) 36*4882a593SmuzhiyunOCI_SLOCI_IMAGE_OPTS += --user "$(OCI_UID)" 37*4882a593Smuzhiyunendif 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun# labels 40*4882a593SmuzhiyunOCI_LABELS = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_LABELS)) 41*4882a593Smuzhiyunifneq ($(OCI_LABELS),) 42*4882a593SmuzhiyunOCI_SLOCI_IMAGE_OPTS += \ 43*4882a593Smuzhiyun $(foreach label,$(OCI_LABELS),--label "$(label)") 44*4882a593Smuzhiyunendif 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun# environment variables 47*4882a593SmuzhiyunOCI_ENV_VARS = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_ENV_VARS)) 48*4882a593Smuzhiyunifneq ($(OCI_ENV_VARS),) 49*4882a593SmuzhiyunOCI_SLOCI_IMAGE_OPTS += \ 50*4882a593Smuzhiyun $(foreach var,$(OCI_ENV_VARS),--env "$(var)") 51*4882a593Smuzhiyunendif 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun# working directory 54*4882a593SmuzhiyunOCI_WORKDIR = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_WORKDIR)) 55*4882a593Smuzhiyunifneq ($(OCI_WORKDIR),) 56*4882a593SmuzhiyunOCI_SLOCI_IMAGE_OPTS += --working-dir "$(OCI_WORKDIR)" 57*4882a593Smuzhiyunendif 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun# ports 60*4882a593SmuzhiyunOCI_PORTS = $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_PORTS)) 61*4882a593Smuzhiyunifneq ($(OCI_PORTS),) 62*4882a593SmuzhiyunOCI_SLOCI_IMAGE_OPTS += \ 63*4882a593Smuzhiyun $(foreach port,$(OCI_PORTS),--port "$(port)") 64*4882a593Smuzhiyunendif 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun# tag 67*4882a593SmuzhiyunOCI_TAG = $(or $(call qstrip,$(BR2_TARGET_ROOTFS_OCI_TAG)),latest) 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun# enable tar archive 70*4882a593Smuzhiyunifeq ($(BR2_TARGET_ROOTFS_OCI_ARCHIVE),y) 71*4882a593SmuzhiyunOCI_SLOCI_IMAGE_OPTS += --tar 72*4882a593Smuzhiyunendif 73*4882a593Smuzhiyun 74*4882a593Smuzhiyundefine ROOTFS_OCI_CMD 75*4882a593Smuzhiyun rm -rf $(BINARIES_DIR)/rootfs-oci 76*4882a593Smuzhiyun $(HOST_DIR)/bin/sloci-image $(OCI_SLOCI_IMAGE_OPTS) $(TARGET_DIR) \ 77*4882a593Smuzhiyun $(BINARIES_DIR)/rootfs-oci:$(OCI_TAG) 78*4882a593Smuzhiyunendef 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun$(eval $(rootfs)) 81