##
## This file is part of the coreboot project.
##
## Copyright (C) 2016 Google, Inc.
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; version 2 of the License.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
##
export top=$(abspath $(CURDIR)/../..)
export crossgcc_version=$(shell $(top)/util/crossgcc/buildgcc --version | grep 'cross toolchain' | sed 's/^.*\sv//' | sed 's/\s.*$$//')
export DOCKER:=$(shell $(SHELL) -c "command -v docker")

# Local port to forward to the jenkins image for the test server
export COREBOOT_JENKINS_PORT?=49151

# Local cache directory - for storing files shared with the docker image
export COREBOOT_JENKINS_CACHE_DIR?=/srv/docker/coreboot-builder/cache

# Name of the jenkins container
export COREBOOT_JENKINS_CONTAINER?=coreboot_jenkins

# Version of the jenkins / sdk container
export COREBOOT_IMAGE_TAG?=$(crossgcc_version)

# Commit id to build from
export DOCKER_COMMIT?=$(shell git log -n 1 --pretty=%h)

# .ccache dir to use
export DOCKER_CCACHE?=$(HOME)/.ccache

# SDK architecture
export COREBOOT_CROSSGCC_PARAM?=all_without_gdb

UID ?= $(shell id -u)
GID ?= $(shell id -g)

test-docker:
	$(if $(DOCKER),,\
		$(warning Docker command not found.  Please install docker) \
		$(warning https://docs.docker.com/engine/installation ) \
		$(error halting))

test-docker-login: test-docker
	$(if $(shell if [ ! -f ~/.docker/config.json ]; then \
		echo "docker authentication file not found"; fi), \
		$(error Docker authentication file not found.  Run 'docker login'))

coreboot-sdk: test-docker
	@echo "Building coreboot SDK $(crossgcc_version) from commit $(DOCKER_COMMIT)"
	cat coreboot-sdk/Dockerfile | \
		sed "s/{{DOCKER_COMMIT}}/$(DOCKER_COMMIT)/" | \
		sed "s/{{SDK_VERSION}}/$(COREBOOT_IMAGE_TAG)/" | \
		sed "s/{{CROSSGCC_PARAM}}/$(COREBOOT_CROSSGCC_PARAM)/" | \
		$(DOCKER) build -t coreboot/coreboot-sdk:$(COREBOOT_IMAGE_TAG) -

upload-coreboot-sdk: test-docker-login
	$(DOCKER) push coreboot/coreboot-sdk:$(COREBOOT_IMAGE_TAG)

coreboot-jenkins-node: test-docker
	cat coreboot-jenkins-node/Dockerfile | \
		sed "s/{{SDK_VERSION}}/$(COREBOOT_IMAGE_TAG)/" | \
		sed "s|{{SSH_KEY}}|$$(cat coreboot-jenkins-node/authorized_keys)|" | \
		$(DOCKER) build -t coreboot/coreboot-jenkins-node:$(COREBOOT_IMAGE_TAG) -

upload-coreboot-jenkins-node: test-docker-login
	$(DOCKER) push coreboot/coreboot-jenkins-node:$(COREBOOT_IMAGE_TAG)

doc.coreboot.org: test-docker
	$(DOCKER) build --force-rm -t doc.coreboot.org \
	$(top)/util/docker/doc.coreboot.org/

docker-killall: test-docker
	@if [ -n "$$($(DOCKER) ps | grep 'coreboot')" ]; then \
		$(DOCKER) kill $$($(DOCKER) ps | grep 'coreboot' | cut -f1 -d ' '); \
	fi

clean-coreboot-containers: docker-killall
	@if [ -n "$$($(DOCKER) ps -a | grep 'coreboot')" ]; then \
		$(DOCKER) rm $$($(DOCKER) ps -a | grep 'coreboot' | sed 's|\s.*$$||'); \
	fi

clean-coreboot-images: docker-killall
	@if [ -n "$$($(DOCKER) images | grep 'coreboot')" ]; then \
		$(DOCKER) rmi $$($(DOCKER) images | grep coreboot | sed 's|^\S\+\s\+\S\+\s\+||' | sed 's|\s.*$$||'); \
	fi

docker-clean: clean-coreboot-containers
	@$(MAKE) clean-coreboot-images

docker-cleanall:
	@if [ -n "$$($(DOCKER) ps -a | grep -v "CONTAINER")" ]; then \
		$(DOCKER) kill $$($(DOCKER) ps -a | grep -v "CONTAINER" | sed 's|\s.*$$||'); \
		$(DOCKER) rm $$($(DOCKER) ps -a | grep -v "CONTAINER" | sed 's|\s.*$$||'); \
	fi
	@if [ -n "$$($(DOCKER) images | grep -v "REPOSITORY")" ]; then \
		$(DOCKER) rmi $$($(DOCKER) images | grep -v "REPOSITORY" | tr -s ' ' | cut -f3 -d ' '); \
	fi

$(DOCKER_CCACHE):
	@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) \
		coreboot/coreboot-sdk:$(COREBOOT_IMAGE_TAG) \
		/bin/bash -c 'cd $${HOME}/coreboot && $(DOCKER_RUN_LOCAL)'

docker-build-coreboot: docker-run-local
docker-build-coreboot: override DOCKER_RUN_LOCAL := \
	make clean && make $(BUILD_CMD); rm -f .xcompile

docker-abuild: docker-run-local
docker-abuild: override DOCKER_RUN_LOCAL := \
	make clean && util/abuild/abuild $(ABUILD_ARGS); rm -f .xcompile

docker-what-jenkins-does: docker-run-local
docker-what-jenkins-does: override DOCKER_RUN_LOCAL := \
	make clean && make what-jenkins-does CPUS=$(CPUS)

docker-jenkins-server: test-docker
	@if [ ! -d "$(COREBOOT_JENKINS_CACHE_DIR)" ]; then \
		printf "\nError: %s does not exist.\n" "$(COREBOOT_JENKINS_CACHE_DIR)"; \
		printf "Please run:\nsudo mkdir -p %s\n\n" "$(COREBOOT_JENKINS_CACHE_DIR)"; \
		false; \
	fi
	@if ! touch "$(COREBOOT_JENKINS_CACHE_DIR)/testfile" 2>/dev/null; then \
		printf "\nError: Cannot create file in %s." "$(COREBOOT_JENKINS_CACHE_DIR)"; \
		printf "Please run:\nsudo chown -R $(whoami):$(whoami) %s\n\n" "$(COREBOOT_JENKINS_CACHE_DIR)"; \
	else \
		 rm -f "$(COREBOOT_JENKINS_CACHE_DIR)/testfile"; \
	fi
	$(DOCKER) run -d --privileged --restart=always \
		-p $(COREBOOT_JENKINS_PORT):49151 \
		-v $(COREBOOT_JENKINS_CACHE_DIR):/data/cache \
		--name=$(COREBOOT_JENKINS_CONTAINER) \
		coreboot/coreboot-jenkins-node:$(COREBOOT_IMAGE_TAG)

docker-jenkins-shell: test-docker
	@if [ ! -d $(COREBOOT_JENKINS_CACHE_DIR) ]; then printf "\nError: %s does not exist.\nPlease run:\nsudo mkdir -p %s\n\n" "$(COREBOOT_JENKINS_CACHE_DIR)" "$(COREBOOT_JENKINS_CACHE_DIR)"; false; fi
	$(DOCKER) run -u root -it --privileged \
		--entrypoint="/bin/bash" \
		-p $(COREBOOT_JENKINS_PORT):49151 \
		-v $(top):/home/coreboot/coreboot \
		-v $(COREBOOT_JENKINS_CACHE_DIR):/data/cache \
		--name=$(COREBOOT_JENKINS_CONTAINER) \
		--rm coreboot/coreboot-jenkins-node:$(COREBOOT_IMAGE_TAG)

docker-shell: USER=coreboot
docker-shell: test-docker
	$(DOCKER) run -u $(USER) -it \
		-e COLUMNS=$(shell tput cols) -e LINES=$(shell tput lines) -e TERM=$(TERM) \
		-w /home/coreboot/coreboot \
		-v $(top):/home/coreboot/coreboot \
		--rm coreboot/coreboot-sdk:$(COREBOOT_IMAGE_TAG) \
		/bin/bash -l

docker-jenkins-attach: USER=root
docker-jenkins-attach:
	docker exec --user $(USER) \
		-e COLUMNS=$(shell tput cols) -e LINES=$(shell tput lines) -e TERM=$(TERM) \
		-it "$$(docker ps | grep coreboot-jenkins-node | cut -f1 -d' ')" \
		/bin/bash -l

docker-build-docs: test-docker
docker-build-docs:
	$(DOCKER) run -it --rm \
           --user $(UID):$(GID) \
           -v "$(top)/:/data-in/:ro" \
           -v "$(top)/Documentation/_build/:/data-out/" \
           doc.coreboot.org

docker-livehtml-docs: test-docker
docker-livehtml-docs:
	$(DOCKER) run -it --rm \
           --net=host -v "$(top)/:/data-in/:ro" \
           doc.coreboot.org livehtml

help:
	@echo "Commands for working with docker images:"
	@echo "  coreboot-sdk                 - Build coreboot-sdk container"
	@echo "  upload-coreboot-sdk          - Upload coreboot-sdk to hub.docker.com"
	@echo "  coreboot-jenkins-node        - Build coreboot-jenkins-node container"
	@echo "  upload-coreboot-jenkins-node - Upload coreboot-jenkins-node to hub.docker.com"
	@echo "  doc.coreboot.org             - Build doc.coreboot.org container"
	@echo "  clean-coreboot-containers    - Remove all docker coreboot containers"
	@echo "  clean-coreboot-images        - Remove all docker coreboot images"
	@echo "  docker-clean                 - Remove docker coreboot containers & images"
	@echo
	@echo "Commands for using docker images"
	@echo "  docker-build-coreboot        - Build coreboot under coreboot-sdk"
	@echo "      <BUILD_CMD=target> "
	@echo "  docker-abuild                - Run abuild under coreboot-sdk"
	@echo "      <ABUILD_ARGS='-a -B'>"
	@echo "  docker-what-jenkins-does     - Run 'what-jenkins-does' target"
	@echo "  docker-shell                 - Bash prompt in coreboot-jenkins-node"
	@echo "      <USER=root or USER=coreboot>"
	@echo "  docker-jenkins-server        - Run coreboot-jenkins-node image (for server)"
	@echo "  docker-jenkins-attach        - Open shell in running jenkins server"
	@echo "  docker-build-docs            - Build the documentation"
	@echo "  docker-livehtml-docs         - Run sphinx-autobuild"
	@echo
	@echo "Variables:"
	@echo "  COREBOOT_JENKINS_PORT=$(COREBOOT_JENKINS_PORT)"
	@echo "  COREBOOT_JENKINS_CACHE_DIR=$(COREBOOT_JENKINS_CACHE_DIR)"
	@echo "  COREBOOT_JENKINS_CONTAINER=$(COREBOOT_JENKINS_CONTAINER)"
	@echo "  COREBOOT_IMAGE_TAG=$(COREBOOT_IMAGE_TAG)"
	@echo "  DOCKER_COMMIT=$(DOCKER_COMMIT)"

.PHONY: test-docker test-docker-login
.PHONY: coreboot-jenkins-node upload-coreboot-jenkins-node
.PHONY: coreboot-sdk upload-coreboot-sdk
.PHONY: doc.coreboot.org
.PHONY: clean-coreboot-containers clean-coreboot-images
.PHONY: docker-abuild
.PHONY: docker-what-jenkins-does docker-shell docker-jenkins-server docker-jenkins-attach
.PHONY: docker-build-docs docker-livehtml-docs
.PHONY: help
