util/docker: Use common .ccache for local builds

Bind a volume for .ccache to the `docker-run-local` targets. By default
the current user's $(HOME)/.ccache will be used, it can be overridden
via the DOCKER_CCACHE variable.

Also rearrange some docker parameters to keep the target readable.

Change-Id: I7d0bdb3861ac56361cacfa74aaf8b45c4f135e5c
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/29457
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
Nico Huber 2018-11-04 17:44:14 +01:00 committed by Patrick Georgi
parent 3693294112
commit 9b731b5c08
1 changed files with 13 additions and 4 deletions

View File

@ -31,6 +31,9 @@ export COREBOOT_CONTAINER_VERSION?=$(crossgcc_version)
# Commit id to build from # Commit id to build from
export DOCKER_COMMIT?=$(shell git log -n 1 --pretty=%h) export DOCKER_COMMIT?=$(shell git log -n 1 --pretty=%h)
# .ccache dir to use
export DOCKER_CCACHE?=$(HOME)/.ccache
# SDK architecture # SDK architecture
export COREBOOT_CROSSGCC_PARAM?=all_without_gdb export COREBOOT_CROSSGCC_PARAM?=all_without_gdb
@ -95,11 +98,17 @@ docker-cleanall:
$(DOCKER) rmi $$($(DOCKER) images | grep -v "REPOSITORY" | tr -s ' ' | cut -f3 -d ' '); \ $(DOCKER) rmi $$($(DOCKER) images | grep -v "REPOSITORY" | tr -s ' ' | cut -f3 -d ' '); \
fi fi
docker-run-local: test-docker $(DOCKER_CCACHE):
$(DOCKER) run -u root -it -v $(top):/home/coreboot/coreboot \ @mkdir -p $@
docker-run-local: test-docker $(DOCKER_CCACHE)
$(DOCKER) run -it --rm \
--volume $(DOCKER_CCACHE):/home/coreboot/.ccache \
--volume $(top):/home/coreboot/coreboot \
--env HOME=/home/coreboot \
--user $(UID):$(GID) \ --user $(UID):$(GID) \
--rm coreboot/coreboot-sdk:$(COREBOOT_CONTAINER_VERSION) \ coreboot/coreboot-sdk:$(COREBOOT_CONTAINER_VERSION) \
/bin/bash -c "cd /home/coreboot/coreboot && $(DOCKER_RUN_LOCAL)" /bin/bash -c 'cd $${HOME}/coreboot && $(DOCKER_RUN_LOCAL)'
docker-build-coreboot: docker-run-local docker-build-coreboot: docker-run-local
docker-build-coreboot: override DOCKER_RUN_LOCAL := \ docker-build-coreboot: override DOCKER_RUN_LOCAL := \