2016-12-05 13:12:19 -06:00
|
|
|
###############################################################################
|
|
|
|
## Wrapper for starting make inside sonic-slave container
|
|
|
|
###############################################################################
|
2016-08-04 12:39:33 -05:00
|
|
|
|
2016-12-05 13:12:19 -06:00
|
|
|
SHELL = /bin/bash
|
2016-08-04 12:39:33 -05:00
|
|
|
|
2016-12-05 13:12:19 -06:00
|
|
|
USER := $(shell id -un)
|
|
|
|
PWD := $(shell pwd)
|
2016-10-31 23:50:59 -05:00
|
|
|
|
2017-07-26 23:52:12 -05:00
|
|
|
# Remove lock file in case previous run was forcefully stopped
|
|
|
|
$(shell rm -f .screen)
|
|
|
|
|
2016-12-05 13:12:19 -06:00
|
|
|
MAKEFLAGS += -B
|
2016-08-04 12:39:33 -05:00
|
|
|
|
2017-08-08 02:21:54 -05:00
|
|
|
SLAVE_BASE_TAG = $(shell shasum sonic-slave/Dockerfile | awk '{print substr($$1,0,11);}')
|
2017-09-09 17:22:52 -05:00
|
|
|
SLAVE_TAG = $(shell cat sonic-slave/Dockerfile.user sonic-slave/Dockerfile | shasum | awk '{print substr($$1,0,11);}')
|
2017-08-08 02:21:54 -05:00
|
|
|
SLAVE_BASE_IMAGE = sonic-slave-base
|
2017-03-01 13:00:59 -06:00
|
|
|
SLAVE_IMAGE = sonic-slave-$(USER)
|
|
|
|
|
2016-12-05 13:12:19 -06:00
|
|
|
DOCKER_RUN := docker run --rm=true --privileged \
|
|
|
|
-v $(PWD):/sonic \
|
2017-07-24 04:29:36 -05:00
|
|
|
-w /sonic \
|
2017-07-24 02:52:51 -05:00
|
|
|
-i$(if $(TERM),t,)
|
2016-08-04 12:39:33 -05:00
|
|
|
|
2017-08-08 02:21:54 -05:00
|
|
|
DOCKER_BASE_BUILD = docker build --no-cache \
|
|
|
|
-t $(SLAVE_BASE_IMAGE) \
|
|
|
|
sonic-slave && \
|
|
|
|
docker tag $(SLAVE_BASE_IMAGE):latest $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG)
|
|
|
|
|
2017-03-01 16:25:44 -06:00
|
|
|
DOCKER_BUILD = docker build --no-cache \
|
2016-12-05 13:12:19 -06:00
|
|
|
--build-arg user=$(USER) \
|
|
|
|
--build-arg uid=$(shell id -u) \
|
|
|
|
--build-arg guid=$(shell id -g) \
|
2017-04-05 18:14:41 -05:00
|
|
|
--build-arg hostname=$(shell echo $$HOSTNAME) \
|
2017-03-01 13:00:59 -06:00
|
|
|
-t $(SLAVE_IMAGE) \
|
2017-08-08 02:21:54 -05:00
|
|
|
-f sonic-slave/Dockerfile.user \
|
2017-03-01 13:00:59 -06:00
|
|
|
sonic-slave && \
|
|
|
|
docker tag $(SLAVE_IMAGE):latest $(SLAVE_IMAGE):$(SLAVE_TAG)
|
2016-11-23 18:18:35 -06:00
|
|
|
|
2017-07-19 10:10:45 -05:00
|
|
|
.PHONY: sonic-slave-build sonic-slave-bash
|
2016-09-27 13:42:35 -05:00
|
|
|
|
2016-12-05 13:12:19 -06:00
|
|
|
.DEFAULT_GOAL := all
|
2016-10-31 23:50:59 -05:00
|
|
|
|
2016-12-05 13:12:19 -06:00
|
|
|
%::
|
2017-08-08 02:21:54 -05:00
|
|
|
@docker inspect --type image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) &> /dev/null || \
|
|
|
|
{ echo Image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) not found. Building... ; \
|
|
|
|
$(DOCKER_BASE_BUILD) ; }
|
2017-03-01 13:00:59 -06:00
|
|
|
@docker inspect --type image $(SLAVE_IMAGE):$(SLAVE_TAG) &> /dev/null || \
|
|
|
|
{ echo Image $(SLAVE_IMAGE):$(SLAVE_TAG) not found. Building... ; \
|
|
|
|
$(DOCKER_BUILD) ; }
|
|
|
|
@$(DOCKER_RUN) $(SLAVE_IMAGE):$(SLAVE_TAG) make \
|
2016-12-05 13:12:19 -06:00
|
|
|
-f slave.mk \
|
|
|
|
PLATFORM=$(PLATFORM) \
|
2017-04-05 18:14:41 -05:00
|
|
|
BUILD_NUMBER=$(BUILD_NUMBER) \
|
2017-02-22 19:21:03 -06:00
|
|
|
ENABLE_DHCP_GRAPH_SERVICE=$(ENABLE_DHCP_GRAPH_SERVICE) \
|
2017-06-12 13:05:22 -05:00
|
|
|
SHUTDOWN_BGP_ON_START=$(SHUTDOWN_BGP_ON_START) \
|
2017-05-30 18:17:03 -05:00
|
|
|
SONIC_ENABLE_SYNCD_RPC=$(ENABLE_SYNCD_RPC) \
|
2017-04-12 13:23:48 -05:00
|
|
|
PASSWORD=$(PASSWORD) \
|
|
|
|
USERNAME=$(USERNAME) \
|
2016-12-05 13:12:19 -06:00
|
|
|
$@
|
2016-08-04 12:39:33 -05:00
|
|
|
|
2016-12-05 13:12:19 -06:00
|
|
|
sonic-slave-build :
|
2017-08-08 02:21:54 -05:00
|
|
|
$(DOCKER_BASE_BUILD)
|
|
|
|
$(DOCKER_BUILD)
|
2016-10-31 23:50:59 -05:00
|
|
|
|
2016-12-05 13:12:19 -06:00
|
|
|
sonic-slave-bash :
|
2017-08-08 02:21:54 -05:00
|
|
|
@docker inspect --type image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) &> /dev/null || \
|
|
|
|
{ echo Image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) not found. Building... ; \
|
|
|
|
$(DOCKER_BASE_BUILD) ; }
|
2017-03-01 13:00:59 -06:00
|
|
|
@docker inspect --type image $(SLAVE_IMAGE):$(SLAVE_TAG) &> /dev/null || \
|
|
|
|
{ echo Image $(SLAVE_IMAGE):$(SLAVE_TAG) not found. Building... ; \
|
|
|
|
$(DOCKER_BUILD) ; }
|
|
|
|
@$(DOCKER_RUN) -t $(SLAVE_IMAGE):$(SLAVE_TAG) bash
|