summaryrefslogtreecommitdiffstats
path: root/Makefile
blob: e674732c2ad1c5c710bd70cad44a7e66dc730869 (plain)
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
#
# Makefile for Pygments
# ~~~~~~~~~~~~~~~~~~~~~
#
# Combines scripts for common tasks.
#
# :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
# :license: BSD, see LICENSE for details.
#

PYTHON ?= python3

export PYTHONPATH = $(shell echo "$$PYTHONPATH"):$(shell python -c 'import os; print ":".join(os.path.abspath(line.strip()) for line in file("PYTHONPATH"))' 2>/dev/null)

.PHONY: all check clean clean-pyc docs mapfiles \
	pylint reindent test test-coverage \
	tox-test tox-test-coverage regexlint

all: clean-pyc check test

check:
	@$(PYTHON) scripts/check_crlf.py pygments build external
	@$(PYTHON) scripts/detect_missing_analyse_text.py --skip-no-aliases
	@pyflakes pygments | grep -v 'but unused' || true
	@$(PYTHON) scripts/check_sources.py -i build -i dist -i pygments/lexers/_mapping.py \
		   -i docs/build -i pygments/formatters/_mapping.py -i pygments/unistring.py \
		   -i tests/support/empty.py
	@$(PYTHON) scripts/count_token_references.py --minfiles=1 --maxfiles=1 \
		   --minlines=1 --maxlines=3 --subtoken

clean: clean-pyc
	-rm -rf doc/_build build Pygments.egg-info
	-rm -f codetags.html

clean-pyc:
	find . -name '__pycache__' -exec rm -rf {} +

docs:
	make -C doc html

mapfiles:
	$(PYTHON) scripts/gen_mapfiles.py

pylint:
	@pylint --rcfile scripts/pylintrc pygments

reindent:
	@$(PYTHON) scripts/reindent.py -r -B .

TEST = tests

test:
	@$(PYTHON) -m pytest $(TEST)

test-coverage:
	@$(PYTHON) -m pytest --cov --cov-report=html --cov-report=term $(TEST)

tox-test:
	@tox -- $(TEST)

tox-test-coverage:
	@tox -- --with-coverage --cover-package=pygments --cover-erase $(TEST)

RLMODULES = pygments.lexers

regexlint:
	@if [ -z "$(REGEXLINT)" ]; then echo "Please set REGEXLINT=checkout path"; exit 1; fi
	PYTHONPATH=`pwd`:$(REGEXLINT) $(PYTHON) $(REGEXLINT)/regexlint/cmdline.py $(RLMODULES)