blob: fa2c0bd8831c136e1fc22f757094c7d3435d3127 [file] [log] [blame]
Zsolt Haraszti8fa9da02016-09-10 17:34:03 -07001#
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
17VENVDIR := venv
18
Zsolt Haraszti51af3392016-09-10 22:18:45 -070019.PHONY:
Zsolt Haraszti8fa9da02016-09-10 17:34:03 -070020
21default: build
22
23help:
24 @echo "Usage: make [<target>]"
25 @echo "where available targets are:"
26 @echo
27 @echo "build : Build the Voltha docker image (default target)"
Zsolt Harasztib71c2a02016-09-12 13:12:07 -070028 @echo "clean : Remove files created by the build and tests"
Zsolt Haraszti8fa9da02016-09-10 17:34:03 -070029 @echo "fetch : Pre-fetch artifacts for subsequent local builds"
30 @echo "help : Print this help"
Zsolt Haraszti51af3392016-09-10 22:18:45 -070031 @echo "rebuild-venv : Rebuild local Python virtualenv from scratch"
32 @echo "venv : Build local Python virtualenv if did not exist yet"
33 @echo "utest : Run all unit tests"
Zsolt Haraszti8fa9da02016-09-10 17:34:03 -070034 @echo
35
Zsolt Haraszti51af3392016-09-10 22:18:45 -070036build: fetch utest
37 docker build -t cord/voltha -f Dockerfile .
38
Zsolt Harasztib71c2a02016-09-12 13:12:07 -070039clean:
40 find voltha -name '*.pyc' | xargs rm -f
41
Zsolt Haraszti51af3392016-09-10 22:18:45 -070042fetch:
Zsolt Harasztib71c2a02016-09-12 13:12:07 -070043 docker pull consul
44 docker pull fluent/fluentd
Zsolt Haraszti51af3392016-09-10 22:18:45 -070045
46purge-venv:
Zsolt Haraszti8fa9da02016-09-10 17:34:03 -070047 rm -fr ${VENVDIR}
Zsolt Haraszti51af3392016-09-10 22:18:45 -070048
49rebuild-venv: purge-venv venv
50
51venv: ${VENVDIR}/.built
52
53${VENVDIR}/.built:
54 @ virtualenv ${VENVDIR}
55 @ . ${VENVDIR}/bin/activate && \
Zsolt Haraszti8fa9da02016-09-10 17:34:03 -070056 if ! pip install -r requirements.txt; \
57 then \
58 echo "On MAC OS X, if the installation failed with an error \n'<openssl/opensslv.h>': file not found,"; \
59 echo "see the BUILD.md file for a workaround"; \
Zsolt Haraszti51af3392016-09-10 22:18:45 -070060 else \
61 touch ${VENVDIR}/.built; \
Zsolt Haraszti8fa9da02016-09-10 17:34:03 -070062 fi
63
Zsolt Haraszti51af3392016-09-10 22:18:45 -070064utest: venv
65 @ echo "Executing all unit tests"
66 . ${VENVDIR}/bin/activate && \
67 nosetests tests