~carstengrohmann/OOMAnalyser

ref: ecf9ba11fd9ed16d2b08cfd3ecba2c7af222778b OOMAnalyser/Makefile -rw-r--r-- 2.5 KiB
ecf9ba11 — Carsten Grohmann Add selenium based unit tests 3 months ago
                                                                                
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
70
71
72
73
74
75
76
77
78
79
# Makefile for OOMAnalyser
#
# Copyright (c) 2017-2021 Carsten Grohmann
# License: MIT (see LICENSE.txt)
# THIS PROGRAM COMES WITH NO WARRANTY

.PHONY: help clean distclean

# Makefile defaults
SHELL             = /bin/sh

BASE_DIR          = .
PYTHON3_BIN       = /usr/bin/python3.7
ROLLUP_BIN        = rollup
ROLLUP_OPTS       = --format=umd --name OOMAnalyser --file=OOMAnalyser.js
TRANSCRYPT_BIN    = transcrypt
TRANSCRYPT_OPTS   = --build --map --nomin --sform --esv 6
VIRTUAL_ENV_DIR   = env

export VIRTUAL_ENV := $(abspath ${VIRTUAL_ENV_DIR})
export PATH := ${VIRTUAL_ENV_DIR}/bin:${PATH}

HELP= @grep -B1 '^[a-zA-Z\-]*:' Makefile |\
         awk 'function p(h,t){printf"%-12s=%s\n",h,t;};\
         /\#+/{t=$$0;};\
         /:/{gsub(":.*","");h=$$0};\
         /^--/{p(h,t);t=h="";};\
         END{p(h,t)}' |\
         sed -n 's/=.*\#+/:/gp'

#+ Show this text
help:
	$(HELP)

#+ Clean python compiler files and automatically generated files
clean:
	@echo "Remove all automatically generated files ..."
	@find $(BASE_DIR) -depth -type f -name "*.pyc" -exec rm -f {} \;
	@find $(BASE_DIR) -depth -type f -name "*.pyo" -exec rm -f {} \;
	@find $(BASE_DIR) -depth -type f -name "*.orig" -exec rm -f {} \;
	@find $(BASE_DIR) -depth -type f -name "*~" -exec rm -f {} \;
	@$(RM) --force --recursive __target__

#+ Remove all automatically generated and Git repository data
distclean: clean venv-clean
	@echo "Remove Git repository data (.git*) ..."
	@(RM) --force .git .gitignore

$(VIRTUAL_ENV_DIR)/bin/activate: requirements.txt
	test -d $(VIRTUAL_ENV_DIR) || virtualenv -p $(PYTHON3_BIN) $(VIRTUAL_ENV_DIR)
	. $(VIRTUAL_ENV_DIR)/bin/activate
	$(VIRTUAL_ENV_DIR)/bin/pip install -Ur requirements.txt
	touch $(VIRTUAL_ENV_DIR)/bin/activate

#+ Setup the virtual environment from scratch
venv: $(VIRTUAL_ENV_DIR)/bin/activate

#+ Freeze the current virtual environment by update requirements.txt
venv-freeze:
	source $(VIRTUAL_ENV_DIR)/bin/activate && $(VIRTUAL_ENV_DIR)/bin/pip freeze > requirements.txt

#+ Remove the virtual environment
venv-clean:
	rm -rf $(VIRTUAL_ENV_DIR)

#+ Compile Python to JavaScript
build: venv
	. $(VIRTUAL_ENV_DIR)/bin/activate
	$(TRANSCRYPT_BIN) $(TRANSCRYPT_OPTS) OOMAnalyser.py
	$(ROLLUP_BIN) $(ROLLUP_OPTS) -- __target__/OOMAnalyser.js

#+ Serve the current directory on http://127.0.0.1:8080
websrv:
	$(PYTHON3_BIN) -m http.server 8080 --bind 127.0.0.1

#+ Run Selenium based web tests
test: build
	. $(VIRTUAL_ENV_DIR)/bin/activate
	DISPLAY=:1 xvfb-run python ./test.py