Rework kernel Makefile

Do not delete build container on `make clean`, as it should be fine
to reuse cached layers.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
This commit is contained in:
Justin Cormack 2016-09-13 21:49:14 +01:00
parent 654e47ad1c
commit a0b1153d93

View File

@ -1,24 +1,17 @@
ARCH = x86_64
DEBUG ?= 0
all: $(ARCH)/vmlinuz64
all: x86_64/vmlinuz64
$(ARCH)/mobykernel-build: Dockerfile kernel_config
mkdir -p $(ARCH) && \
x86_64/vmlinuz64: Dockerfile kernel_config
mkdir -p $(ARCH) etc
docker build --build-arg DEBUG=$(DEBUG) -t mobykernel:build .
touch $@
$(ARCH)/bzImage: $(ARCH)/mobykernel-build
docker run --rm mobykernel:build cat /linux/arch/$(ARCH)/boot/$(notdir $@) > $@ || ! rm $@
docker run --rm --net=none mobykernel:build cat /kernel-modules.tar | tar xf -
docker run --rm mobykernel:build cat /aufs-utils.tar | tar xf -
docker run --rm mobykernel:build cat /kernel-source-info > etc/kernel-source-info
mkdir -p etc
docker run --rm --net=none mobykernel:build cat /aufs-utils.tar | tar xf -
docker run --rm --net=none mobykernel:build cat /kernel-source-info > etc/kernel-source-info
docker run --rm --net=none mobykernel:build cat /linux/arch/x86_64/boot/bzImage > $@
cp -a patches etc/kernel-patches
$(ARCH)/vmlinuz64: $(ARCH)/bzImage
cp $< $@
clean:
rm -rf $(ARCH) lib etc usr sbin
docker images -q mobykernel:build | xargs docker rmi -f || true
rm -rf x86_64 lib etc usr sbin
.DELETE_ON_ERROR: