blob: 3c706807096f74414edd067e5fc8567a282c3f80 [file] [log] [blame]
#
# Copyright 2016 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
VENVDIR := venv
.PHONY:
default: build
help:
@echo "Usage: make [<target>]"
@echo "where available targets are:"
@echo
@echo "build : Build the Voltha docker image (default target)"
@echo "clean : Remove files created by the build and tests"
@echo "fetch : Pre-fetch artifacts for subsequent local builds"
@echo "help : Print this help"
@echo "rebuild-venv : Rebuild local Python virtualenv from scratch"
@echo "venv : Build local Python virtualenv if did not exist yet"
@echo "utest : Run all unit tests"
@echo
vagrant:
vagrant up
build: fetch utest
docker build -t cord/voltha -f Dockerfile .
clean:
find voltha -name '*.pyc' | xargs rm -f
fetch:
docker pull consul:latest
docker pull fluent/fluentd:latest
docker pull gliderlabs/registrator:latest
purge-venv:
rm -fr ${VENVDIR}
rebuild-venv: purge-venv venv
venv: ${VENVDIR}/.built
${VENVDIR}/.built:
@ virtualenv ${VENVDIR}
@ . ${VENVDIR}/bin/activate && \
if ! pip install -r requirements.txt; \
then \
echo "On MAC OS X, if the installation failed with an error \n'<openssl/opensslv.h>': file not found,"; \
echo "see the BUILD.md file for a workaround"; \
else \
touch ${VENVDIR}/.built; \
fi
utest: venv
@ echo "Executing all unit tests"
. ${VENVDIR}/bin/activate && \
nosetests tests