docker: add special rule for deboostrapped images
authorAlex Bennée <alex.bennee@linaro.org>
Fri, 29 Jun 2018 16:57:57 +0000 (17:57 +0100)
committerAlex Bennée <alex.bennee@linaro.org>
Thu, 5 Jul 2018 14:59:41 +0000 (15:59 +0100)
We might as well have a custom rule for this. For one thing the
dependencies are different. As the primary dependency for
docker-image-% could never be docker-image-debian-bootstrap we can
drop that test in the main rule as well.

Missing EXECUTABLE, DEB_ARCH and DEB_TYPE are treated as hard faults
now. We also error out if the EXECUTABLE file isn't there. We should
really do this with a dependency on any source rules but currently
subdir-FOO-linux-user isn't enough on a clean build.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
tests/docker/Makefile.include

index 942d05649f6bacdf7ab85476a21248938328407c..7b99df546433cd0e79991b3f8954db5d21a90896 100644 (file)
@@ -46,9 +46,6 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
                "CHECK", "$*")
 else
 docker-image-%: $(DOCKER_FILES_DIR)/%.docker
-       @if test "$@" = docker-image-debian-bootstrap -a -z "$(EXECUTABLE)"; then \
-               echo WARNING: EXECUTABLE is not set, debootstrap may fail. 2>&1 ; \
-       fi
        $(call quiet-command,\
                $(DOCKER_SCRIPT) build qemu:$* $< \
                $(if $V,,--quiet) $(if $(NOCACHE),--no-cache) \
@@ -56,6 +53,27 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
                $(if $(EXTRA_FILES),--extra-files $(EXTRA_FILES))\
                $(if $(EXECUTABLE),--include-executable=$(EXECUTABLE)),\
                "BUILD","$*")
+
+# Special rule for debootstraped binfmt linux-user images
+docker-binfmt-image-debian-%: $(DOCKER_FILES_DIR)/debian-bootstrap.docker
+       $(if $(EXECUTABLE),,\
+               $(error EXECUTABLE not set, debootstrap of debian-$* would fail))
+       $(if $(wildcard $(EXECUTABLE)),,\
+               $(error Please build $(EXECUTABLE) first))
+       $(if $(DEB_ARCH),,\
+               $(error DEB_ARCH not set, debootstrap of debian-$* would fail))
+       $(if $(DEB_TYPE),,\
+               $(error DEB_TYPE not set, debootstrap of debian-$* would fail))
+       $(call quiet-command,                                           \
+               DEB_ARCH=$(DEB_ARCH)                                    \
+               DEB_TYPE=$(DEB_TYPE)                                    \
+               $(DOCKER_SCRIPT) build qemu:debian-$* $<                \
+               $(if $V,,--quiet) $(if $(NOCACHE),--no-cache)           \
+               $(if $(NOUSER),,--add-current-user)                     \
+               $(if $(EXTRA_FILES),--extra-files $(EXTRA_FILES))       \
+               $(if $(EXECUTABLE),--include-executable=$(EXECUTABLE)), \
+               "BUILD","binfmt debian-$* (debootstrapped)")
+
 endif
 
 # Enforce dependencies for composite images