include build.env export TAG ?= dev define fetch_if_missing @if [ ! -f "$1" ]; then \ echo "Downloading $1"; \ curl -L -o "$1" "$2"; \ fi endef ALPINE_SERIES := $(word 1,$(subst ., ,${ALPINE_VER})).$(word 2,$(subst ., ,${ALPINE_VER})) download-packages: @mkdir -p packages $(call fetch_if_missing,packages/busybox-${BUSYBOX_VERSION}.tar.gz,https://github.com/mirror/busybox/archive/refs/tags/${BUSYBOX_VERSION}.tar.gz) $(call fetch_if_missing,packages/alpine-minirootfs-${ALPINE_VER}-${ALPINE_ARCH}.tar.gz,https://dl-cdn.alpinelinux.org/alpine/v$(ALPINE_SERIES)/releases/${ALPINE_ARCH}/alpine-minirootfs-${ALPINE_VER}-${ALPINE_ARCH}.tar.gz) $(call fetch_if_missing,packages/${NXP_VERSION}.tar.gz,https://github.com/nxp-qoriq/linux/archive/refs/tags/${NXP_VERSION}.tar.gz) $(call fetch_if_missing,packages/${CRIO_VERSION}.tar.gz,https://storage.googleapis.com/cri-o/artifacts/${CRIO_VERSION}.tar.gz) build-base: docker build \ -f docker/build-base.Dockerfile \ --build-arg TAG=$(TAG) \ -t $(DOCKER_IMAGE_ROOT)/build-base:$(TAG) . kernel-build: build-base docker build \ -f docker/kernel-build.Dockerfile \ --build-arg DOCKER_IMAGE_ROOT=$(DOCKER_IMAGE_ROOT) \ --build-arg TAG=$(TAG) \ --build-arg ARCH=$(ARCH) \ --build-arg CROSS_COMPILE=$(CROSS_COMPILE) \ --build-arg NXP_VERSION=$(NXP_VERSION) \ --build-arg DEVICE_TREE_TARGET=$(DEVICE_TREE_TARGET) \ -t $(DOCKER_IMAGE_ROOT)/kernel-build:$(TAG) . fit-build: kernel-build docker build \ -f docker/fit-build.Dockerfile \ --build-arg DOCKER_IMAGE_ROOT=$(DOCKER_IMAGE_ROOT) \ --build-arg TAG=$(TAG) \ --build-arg ARCH=$(ARCH) \ --build-arg CROSS_COMPILE=$(CROSS_COMPILE) \ --build-arg BUSYBOX_VERSION=$(BUSYBOX_VERSION) \ -t $(DOCKER_IMAGE_ROOT)/fit-build:$(TAG) . itb: fit-build docker build \ -f docker/itb.Dockerfile \ --build-arg DOCKER_IMAGE_ROOT=$(DOCKER_IMAGE_ROOT) \ --build-arg TAG=$(TAG) \ --build-arg ARCH=$(ARCH) \ --build-arg DEVICE_TREE_TARGET=$(DEVICE_TREE_TARGET) \ --output type=local,dest=./out \ -t $(DOCKER_IMAGE_ROOT)/itb:$(TAG) . buildenv-alpine: build-base docker build \ -f docker/alpine.Dockerfile \ --build-arg DOCKER_IMAGE_ROOT=$(DOCKER_IMAGE_ROOT) \ --build-arg TAG=$(TAG) \ --build-arg ALPINE_ARCH=$(ALPINE_ARCH) \ --build-arg ALPINE_VER=$(ALPINE_VER) \ --build-arg CRIO_VERSION=$(CRIO_VERSION) \ -t $(DOCKER_IMAGE_ROOT)/buildenv-alpine:$(TAG) . alpine-rootfs: buildenv-alpine kernel-build docker run --rm -it \ --privileged \ -v /cache/apk:/var/cache/apk \ -v /cache/artifacts:/artifacts \ -e ROOTFS=/out/rootfs \ -e ARTIFACT_DIR=/artifacts \ $(DOCKER_IMAGE_ROOT)/buildenv-alpine:$(TAG) \ bash -lc '/build-rootfs.sh'