Newer
Older
#-------------------------------------------------------------------------------
# MASTER MAKEFILE FOR PYZENKIT PACKAGE
#
# Copyright (C) since 2016 CESNET, z.s.p.o (http://www.ces.net/)
# Copyright (C) since 2015 Jan Mach <honza.mach.ml@gmail.com>
# Use of this package is governed by the MIT license, see LICENSE file.
#
# This project was initially written for personal use of the original author. Later
# it was developed much further and used for project of author`s employer.
#-------------------------------------------------------------------------------
DIR_LIB = pyzenkit
#
# Default make target.
#
all: docs archive bdist deploy
buildbot: bdist
check: pyflakes pylint test
#-------------------------------------------------------------------------------
help:
$(info List of possible make targets:)
$(info )
$(info * all: archive previous packages, build new distribution and deploy to PyPI [default])
$(info * build: archive previous packages and build new distribution)
$(info * buildbot: build new distribution using buildbot automated system)
$(info * docs: generate project documentation)
$(info * check: perform extensive code checking)
$(info = pyflakes: check source code with pyflakes)
$(info = pylint: check source code with pylint)
$(info = test: run unit tests with nosetest)
$(info * archive: archive previous packages)
$(info * bdist: build new distribution)
$(info * install: install distribution on local machine)
$(info * deploy: deploy to PyPI)
$(info )
#-------------------------------------------------------------------------------
docs: FORCE
echo "*** Generating project documentation ***"
#make clean
#make apidoc
make html
#-------------------------------------------------------------------------------
pyflakes: FORCE
echo "*** Checking code with pyflakes ***"
python3 -m pyflakes $(DIR_LIB)/*.py
pylint: FORCE
echo "*** Checking code with pylint ***"
python3 -m pylint $(DIR_LIB)/*.py --rcfile .pylintrc
echo "*** Checking code with nosetests ***"
#-------------------------------------------------------------------------------
# Move old distribution files to archive directory
archive: FORCE
$(info Checking if dist archivation is needed)
@if ! [ `ls dist/pyzenkit* | wc -l` = "0" ]; then\
echo "Moving old distribution files to archive";\
mv -f dist/pyzenkit* archive;\
fi
# Build various Python package distributions
bdist: FORCE
$(info Building distributions)
# Build and upload (insecure)
#python3 setup.py sdist bdist_wheel upload
# Build only
python3 setup.py sdist bdist_wheel
# Perform installation from local files for Python 3
sudo pip3 install dist/pyzenkit*.whl --upgrade
# Deploy latest packages to PyPI
deploy: FORCE
$(info PyPI deployment)
# Secure upload with Twine
twine upload dist/*
# Empty rule as dependency wil force make to always perform target
# Source: https://www.gnu.org/software/make/manual/html_node/Force-Targets.html
FORCE: