-
-
Notifications
You must be signed in to change notification settings - Fork 205
/
Makefile
97 lines (73 loc) · 2.26 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# A GNU Makefile to run various tasks - compatibility for us old-timers.
# Note: This makefile include remake-style target comments.
# These comments before the targets start with #:
# remake --tasks to shows the targets and the comments
GIT2CL ?= admin-tools/git2cl
PYTHON ?= python3
PIP ?= pip3
RM ?= rm
.PHONY: all build \
check clean \
develop dist doctest doc-data djangotest \
gstest pytest \
rmChangeLog \
test
SANDBOX ?=
ifeq ($(OS),Windows_NT)
SANDBOX = t
else
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Darwin)
SANDBOX = t
endif
endif
#: Default target - same as "develop"
all: develop
#: build everything needed to install
build:
$(PYTHON) ./setup.py build
#: Set up to run from the source tree
develop:
$(PIP) install -e .
#: Set up to run from the source tree with full dependencies
develop-full:
$(PIP) install -e .[full]
#: Make distirbution: wheels, eggs, tarball
dist:
./admin-tools/make-dist.sh
#: Install Mathics
install:
$(PYTHON) setup.py install
check: pytest gstest doctest
#: Remove derived files
clean:
rm mathics/*/*.so; \
for dir in mathics/doc ; do \
($(MAKE) -C "$$dir" clean); \
done; \
rm -f factorials || true
#: Run py.test tests. Use environment variable "o" for pytest options
pytest:
py.test $(PYTEST_WORKERS) test $o
#: Run a more extensive pattern-matching test
gstest:
(cd examples/symbolic_logic/gries_schneider && $(PYTHON) test_gs.py)
#: Create data that is used to in Django docs and to build TeX PDF
doc-data: mathics/builtin/*.py mathics/doc/documentation/*.mdoc mathics/doc/documentation/images/*
$(PYTHON) mathics/docpipeline.py --output --keep-going
#: Run tests that appear in docstring in the code.
doctest-workaround:
SANDBOX=$(SANDBOX) $(PYTHON) mathics/docpipeline.py --exclude=NIntegrate,MaxRecursion
SANDBOX=$(SANDBOX) $(PYTHON) mathics/docpipeline.py --sections=NIntegrate,MaxRecursion
#: Run tests that appear in docstring in the code.
doctest:
SANDBOX=$(SANDBOX) $(PYTHON) mathics/docpipeline.py $o
#: Make Mathics PDF manual via Asymptote and LaTeX
texdoc doc:
(cd mathics/doc/tex && $(MAKE) doc)
#: Remove ChangeLog
rmChangeLog:
$(RM) ChangeLog || true
#: Create a ChangeLog from git via git log and git2cl
ChangeLog: rmChangeLog
git log --pretty --numstat --summary | $(GIT2CL) >$@