82 lines
2.6 KiB
Makefile
82 lines
2.6 KiB
Makefile
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'
|