blob: f3b50e4307f026a38e62f31cc93cd4015f9f8a98 [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)"
28 @echo "fetch : Pre-fetch artifacts for subsequent local builds"
29 @echo "help : Print this help"
Zsolt Haraszti51af3392016-09-10 22:18:45 -070030 @echo "rebuild-venv : Rebuild local Python virtualenv from scratch"
31 @echo "venv : Build local Python virtualenv if did not exist yet"
32 @echo "utest : Run all unit tests"
Zsolt Haraszti8fa9da02016-09-10 17:34:03 -070033 @echo
34
Zsolt Haraszti51af3392016-09-10 22:18:45 -070035build: fetch utest
36 docker build -t cord/voltha -f Dockerfile .
37
38fetch:
39 # noop
40
41purge-venv:
Zsolt Haraszti8fa9da02016-09-10 17:34:03 -070042 rm -fr ${VENVDIR}
Zsolt Haraszti51af3392016-09-10 22:18:45 -070043
44rebuild-venv: purge-venv venv
45
46venv: ${VENVDIR}/.built
47
48${VENVDIR}/.built:
49 @ virtualenv ${VENVDIR}
50 @ . ${VENVDIR}/bin/activate && \
Zsolt Haraszti8fa9da02016-09-10 17:34:03 -070051 if ! pip install -r requirements.txt; \
52 then \
53 echo "On MAC OS X, if the installation failed with an error \n'<openssl/opensslv.h>': file not found,"; \
54 echo "see the BUILD.md file for a workaround"; \
Zsolt Haraszti51af3392016-09-10 22:18:45 -070055 else \
56 touch ${VENVDIR}/.built; \
Zsolt Haraszti8fa9da02016-09-10 17:34:03 -070057 fi
58
Zsolt Haraszti51af3392016-09-10 22:18:45 -070059utest: venv
60 @ echo "Executing all unit tests"
61 . ${VENVDIR}/bin/activate && \
62 nosetests tests