Files
linuxkit/alpine/kernel/Makefile
Justin Cormack 0b7ffbd135 Use exact build context for kernel build
Saves passing too much context, less error prone and should
mean builds are faster if not clean, consistent with elsewhere.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-12-15 11:27:41 -08:00

32 lines
1.8 KiB
Makefile

DEBUG ?= 0
all: x86_64/vmlinuz64
ifdef AUFS
x86_64/vmlinuz64: Dockerfile.aufs kernel_config kernel_config.debug kernel_config.aufs patches-aufs
mkdir -p x86_64 etc lib usr sbin
BUILD=$$( tar cf - $^ | docker build -f Dockerfile.aufs --build-arg DEBUG=$(DEBUG) -q - ) && [ -n "$$BUILD" ] && echo "Built $$BUILD" && \
docker run --rm --net=none --log-driver=none $$BUILD cat /kernel-modules.tar | tar xf - && \
docker run --rm --net=none --log-driver=none $$BUILD cat /aufs-utils.tar | tar xf - && \
docker run --rm --net=none --log-driver=none $$BUILD cat /kernel-source-info > etc/kernel-source-info && \
docker run --rm --net=none --log-driver=none $$BUILD cat /linux/vmlinux > x86_64/vmlinux && \
docker run --rm --net=none --log-driver=none $$BUILD cat /linux/arch/x86_64/boot/bzImage > $@ && \
docker run --rm --net=none --log-driver=none $$BUILD cat /kernel-headers.tar > x86_64/kernel-headers.tar && \
cp -a patches-aufs etc/kernel-patches
else
x86_64/vmlinuz64: Dockerfile kernel_config kernel_config.debug patches
mkdir -p x86_64 etc lib usr sbin
BUILD=$$( tar cf - $^ | docker build --build-arg DEBUG=$(DEBUG) -q - ) && [ -n "$$BUILD" ] && echo "Built $$BUILD" && \
docker run --rm --net=none --log-driver=none $$BUILD cat /kernel-modules.tar | tar xf - && \
docker run --rm --net=none --log-driver=none $$BUILD cat /kernel-source-info > etc/kernel-source-info && \
docker run --rm --net=none --log-driver=none $$BUILD cat /linux/vmlinux > x86_64/vmlinux && \
docker run --rm --net=none --log-driver=none $$BUILD cat /linux/arch/x86_64/boot/bzImage > $@ && \
docker run --rm --net=none --log-driver=none $$BUILD cat /kernel-headers.tar > x86_64/kernel-headers.tar && \
cp -a patches etc/kernel-patches
endif
clean:
rm -rf x86_64 lib etc usr sbin
.DELETE_ON_ERROR: