xref: /OK3568_Linux_fs/buildroot/fs/oci/oci.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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