blob: cc5e34e5252196bf2fc71e347c8ad7fb800d7d55 [file] [log] [blame]
khenaidoocfee5f42018-07-19 22:47:38 -04001#
2# Copyright 2016 the original author or authors.
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17ifeq ($(TAG),)
18TAG := latest
19endif
20
21ifeq ($(TARGET_TAG),)
22TARGET_TAG := latest
23endif
24
25# If no DOCKER_HOST_IP is specified grab a v4 IP address associated with
26# the default gateway
27ifeq ($(DOCKER_HOST_IP),)
28DOCKER_HOST_IP := $(shell ifconfig $$(netstat -rn | grep -E '^(default|0.0.0.0)' | head -1 | awk '{print $$NF}') | grep inet | awk '{print $$2}' | sed -e 's/addr://g')
29endif
30
31
32ifneq ($(http_proxy)$(https_proxy),)
33# Include proxies from the environment
34DOCKER_PROXY_ARGS = \
35 --build-arg http_proxy=$(http_proxy) \
36 --build-arg https_proxy=$(https_proxy) \
37 --build-arg ftp_proxy=$(ftp_proxy) \
38 --build-arg no_proxy=$(no_proxy) \
39 --build-arg HTTP_PROXY=$(HTTP_PROXY) \
40 --build-arg HTTPS_PROXY=$(HTTPS_PROXY) \
41 --build-arg FTP_PROXY=$(FTP_PROXY) \
42 --build-arg NO_PROXY=$(NO_PROXY)
43endif
44
45DOCKER_BUILD_ARGS = \
46 --build-arg TAG=$(TAG) \
47 --build-arg REGISTRY=$(REGISTRY) \
48 --build-arg REPOSITORY=$(REPOSITORY) \
49 $(DOCKER_PROXY_ARGS) $(DOCKER_CACHE_ARG) \
50 --rm --force-rm \
51 $(DOCKER_BUILD_EXTRA_ARGS)
52
53DOCKER_IMAGE_LIST = \
54 rw_core
55
56
Stephane Barbariea75791c2019-01-24 10:58:06 -050057.PHONY: $(DIRS) $(DIRS_CLEAN) $(DIRS_FLAKE8) rw_core ro_core protos kafka db tests python simulators k8s afrouter arouterd base
khenaidoocfee5f42018-07-19 22:47:38 -040058
59# This should to be the first and default target in this Makefile
60help:
61 @echo "Usage: make [<target>]"
62 @echo "where available targets are:"
63 @echo
64 @echo "build : Build the docker images.\n\
65 If this is the first time you are building, choose \"make build\" option."
66 @echo "rw_core : Build the rw_core docker container"
Stephane Barbariea75791c2019-01-24 10:58:06 -050067 @echo "ro_core : Build the ro_core docker container"
khenaidoocfee5f42018-07-19 22:47:38 -040068 @echo
69
70
71# Parallel Build
72$(DIRS):
73 @echo " MK $@"
74 $(Q)$(MAKE) -C $@
75
76# Parallel Clean
77DIRS_CLEAN = $(addsuffix .clean,$(DIRS))
78$(DIRS_CLEAN):
79 @echo " CLEAN $(basename $@)"
80 $(Q)$(MAKE) -C $(basename $@) clean
81
khenaidoo9a468962018-09-19 15:33:13 -040082build: containers
khenaidoocfee5f42018-07-19 22:47:38 -040083
Stephane Barbariea75791c2019-01-24 10:58:06 -050084containers: base rw_core ro_core simulated_olt simulated_onu afrouter arouterd
sslobodr2fb98b82019-01-21 09:29:51 -050085
86base:
William Kurkiandaa6bb22019-03-07 12:26:28 -050087ifdef LOCAL_PROTOS
88 mkdir -p vendor/github.com/opencord/voltha-protos/go
William Kurkian86e18372019-04-18 15:09:06 -040089 cp -r ${GOPATH}/src/github.com/opencord/voltha-protos/go/* vendor/github.com/opencord/voltha-protos/go
William Kurkiandaa6bb22019-03-07 12:26:28 -050090endif
sslobodr2fb98b82019-01-21 09:29:51 -050091 docker build $(DOCKER_BUILD_ARGS) -t base:latest -f docker/Dockerfile.base .
khenaidoocfee5f42018-07-19 22:47:38 -040092
Matt Jeanneret85ab5082019-04-01 11:29:20 -040093afrouter: base
sslobodr38afd0d2019-01-21 12:31:46 -050094 docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}afrouter:${TAG} -f docker/Dockerfile.arouter .
sslobodra3ea7d42019-01-16 15:03:16 -050095
Matt Jeanneret85ab5082019-04-01 11:29:20 -040096afrouterTest: base
sslobodrd6e07e72019-01-31 16:07:20 -050097 docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}afroutertest:${TAG} -f docker/Dockerfile.arouterTest .
98
Matt Jeanneret85ab5082019-04-01 11:29:20 -040099arouterd: base
sslobodr38afd0d2019-01-21 12:31:46 -0500100 docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}afrouterd:${TAG} -f docker/Dockerfile.arouterd .
sslobodra3ea7d42019-01-16 15:03:16 -0500101
Matt Jeanneret85ab5082019-04-01 11:29:20 -0400102rw_core: base
khenaidoocfee5f42018-07-19 22:47:38 -0400103 docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}voltha-rw-core:${TAG} -f docker/Dockerfile.rw_core .
khenaidoocfee5f42018-07-19 22:47:38 -0400104
Matt Jeanneret85ab5082019-04-01 11:29:20 -0400105ro_core: base
Stephane Barbariea75791c2019-01-24 10:58:06 -0500106 docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}voltha-ro-core:${TAG} -f docker/Dockerfile.ro_core .
107
Matt Jeanneret85ab5082019-04-01 11:29:20 -0400108simulated_olt: base
khenaidood2b6df92018-12-13 16:37:20 -0500109 docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}voltha-adapter-simulated-olt:${TAG} -f docker/Dockerfile.simulated_olt .
khenaidood2b6df92018-12-13 16:37:20 -0500110
Matt Jeanneret85ab5082019-04-01 11:29:20 -0400111simulated_onu: base
khenaidood2b6df92018-12-13 16:37:20 -0500112 docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}voltha-adapter-simulated-onu:${TAG} -f docker/Dockerfile.simulated_onu .
khenaidood2b6df92018-12-13 16:37:20 -0500113
khenaidoocfee5f42018-07-19 22:47:38 -0400114# end file