aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2021-01-14 16:56:55 +0000
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2021-01-14 16:56:55 +0000
commitd414cdb572499d5d0fce584707831693aba05cf2 (patch)
tree0995ab7f4848d9c015e2c93305326f7ae6eca8df
parentMinor code quality fixes (diff)
downloadSyncRNG-d414cdb572499d5d0fce584707831693aba05cf2.tar.gz
SyncRNG-d414cdb572499d5d0fce584707831693aba05cf2.zip
Expand makefile
-rw-r--r--Makefile83
1 files changed, 58 insertions, 25 deletions
diff --git a/Makefile b/Makefile
index b3e724d..64d2bbe 100644
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,12 @@
# http://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
#
+SHELL := bash
+.SHELLFLAGS := -eu -o pipefail -c
+MAKEFLAGS += --no-builtin-rules
+
PACKAGE=SyncRNG
+VENV_DIR=/tmp/sync_venv/
.PHONY: help
@@ -16,39 +21,67 @@ help:
awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-15s\033[0m\
%s\n", $$1, $$2}'
-install: ## Install for the current user using the default python command
- python setup.py build_ext --inplace
- python setup.py install --user
+################
+# Installation #
+################
-install2: ## Install for the current user using the python2 command
- python2 setup.py build_ext --inplace
- python2 setup.py install --user
+.PHONY: inplace install
-test: develop ## Run nosetests using the default nosetests command
- nosetests -v
+inplace:
+ python setup.py build_ext --inplace
-test2: develop2 ## Run nosetests using the nosetests2 command
- nosetests2 -v
+install: ## Install for the current user using the default python command
+ python setup.py build_ext --inplace && \
+ python setup.py install --user
-cover: ## Test unit test coverage using default nosetests
- nosetests --with-coverage --cover-package=$(PACKAGE) \
- --cover-erase --cover-inclusive --cover-branches
+################
+# Distribution #
+################
-clean: ## Clean build dist and egg directories left after install
- rm -rf ./dist ./build ./$(PACKAGE).egg-info
- rm -rf *.so
- rm -f MANIFEST
- rm -f .coverage
+.PHONY: release dist
-develop: ## Install a development version of the package needed for testing
- python setup.py develop --user
-
-develop2: ## Install a development version of the package needed for testing (python2)
- python2 setup.py develop --user
+release: ## Make a release
+ python make_release.py
dist: ## Make Python source distribution
python setup.py sdist
-dist2: ## Make Python 2 source distribution
- python2 setup.py sdist
+###########
+# Testing #
+###########
+
+.PHONY: test
+
+test: venv ## Run nosetests using the default nosetests command
+ source $(VENV_DIR)/bin/activate && green -a -vv ./tests
+
+#######################
+# Virtual environment #
+#######################
+
+.PHONY: venv
+
+venv: $(VENV_DIR)/bin/activate
+
+$(VENV_DIR)/bin/activate:
+ test -d $(VENV_DIR) || python -m venv $(VENV_DIR)
+ source $(VENV_DIR)/bin/activate && pip install -e .[dev]
+ touch $(VENV_DIR)/bin/activate
+
+
+############
+# Clean up #
+############
+
+.PHONY: clean
+
+clean: ## Clean build dist and egg directories left after install
+ rm -rf ./dist ./build ./$(PACKAGE).egg-info
+ rm -rf ./build
+ rm -rf ./$(PACKAGE).egg-info
+ rm -rf *.so
+ rm -f MANIFEST
+ rm -f .coverage
+ find . -type f -iname '*.pyc' -delete
+ find . -type d -name '__pycache__' -empty -delete