-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
46 lines (37 loc) · 1.02 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
SHELL := /usr/bin/env bash
PYTHON ?= python
VENV ?= .venv
GENERATED_FILES =
.SUFFIXES:
.SUFFIXES: .yaml .conf .jq .json .rdt
.PRECIOUS: .yaml .conf .jq
.PHONY: all
all: venv
# all: $(GENERATED_FILES)
ACTIVATE_SCRIPT = $(VENV)/bin/activate
.PHONY: venv
venv: $(ACTIVATE_SCRIPT)
$(ACTIVATE_SCRIPT): requirements.txt
@test -d $(VENV) || $(PYTHON) -m venv $(VENV) && \
source $(ACTIVATE_SCRIPT) && \
$(PYTHON) -m pip install --upgrade pip setuptools wheel && \
$(PYTHON) -m pip install --requirement $< && \
touch $(ACTIVATE_SCRIPT)
.PHONY: venv_upgrade
venv_upgrade:
@rm -rf $(VENV) && \
$(PYTHON) -m venv $(VENV) && \
source $(ACTIVATE_SCRIPT) && \
$(PYTHON) -m pip install --upgrade pip setuptools wheel && \
$(PYTHON) -m pip install --requirement requirements_bare.txt && \
$(PYTHON) -m pip freeze > requirements.txt && \
touch $(ACTIVATE_SCRIPT)
# moo: venv
# @source $(ACTIVATE_SCRIPT) && \
# ./moo.py > $@
.PHONY: clean
clean:
@rm -rf $(GENERATED_FILES)
.PHONY: reallyclean
reallyclean: clean
@rm -rf $(VENV)