-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
69 lines (54 loc) · 2.09 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# Copyright 2015-2022 Chicharreros (https://launchpad.net/~chicharreros)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# For further info, check http://launchpad.net/magicicada-protocol
ENV = $(CURDIR)/.env
SRC_DIR = $(CURDIR)/magicicadaprotocol
PATH := $(ENV)/bin:$(PATH)
PYTHON = $(ENV)/bin/python
PYTHONPATH := $(SRC_DIR):$(PYTHONPATH)
# use protobuf cpp
PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp
PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION=2
export PATH
export PYTHONPATH
deps:
cat dependencies.txt | sudo xargs apt-get install -y --no-install-recommends
$(ENV): $(ENV)/bin/activate
# only runs when requirements.txt or requirements-devel.txt changes
$(ENV)/bin/activate: deps requirements.txt requirements-devel.txt
test -d $(ENV) || virtualenv -p python3 $(ENV)
$(ENV)/bin/pip install -U pip setuptools
$(ENV)/bin/pip install -Ur requirements.txt -Ur requirements-devel.txt
touch $(ENV)/bin/activate
bootstrap: build
build: $(ENV)
$(PYTHON) setup.py build
bdist: build
$(PYTHON) setup.py bdist_wheel
upload: bdist
$(ENV)/bin/twine upload dist/*.whl
test: lint
SSL_CERTIFICATES_DIR=$(SRC_DIR)/tests/certs PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python $(ENV)/bin/trial magicicadaprotocol
clean:
$(PYTHON) setup.py clean || true
find -name '*.pyc' -delete
rm -rf build dist sdist _trial_temp magicicadaprotocol.egg-info $(ENV)
black:
$(ENV)/bin/black .
lint:
$(ENV)/bin/black --check .
$(ENV)/bin/flake8 --exclude='*_pb2.py' magicicadaprotocol samples
.PHONY: build bdist upload test lint