-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
92 lines (74 loc) · 3.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# Simple makefile to quickly access handy build commands for Cython extension
# code generation. Note that the actual code to produce the extension lives in
# the setup.py file, this Makefile is just meant as a command
# convenience/reminder while doing development.
PYTHON ?= python
PKGDIR=dipy
DOCSRC_DIR=doc
DOCDIR=${PKGDIR}/${DOCSRC_DIR}
TESTDIR=${PKGDIR}/tests
help:
@echo "Numpy/Cython tasks. Available tasks:"
@echo "ext -> build the Cython extension module."
@echo "cython-html -> create annotated HTML from the .pyx sources"
@echo "test -> run a simple test demo."
@echo "all -> Call ext, html and finally test."
all: ext cython-html test
ext: recspeed.so propspeed.so vox2track.so \
distances.so streamlinespeed.so denspeed.so \
vec_val_sum.so quick_squash.so vector_fields.so \
crosscorr.so sumsqdiff.so expectmax.so bundlemin.so \
cythonutils.so featurespeed.so metricspeed.so \
clusteringspeed.so clustering_algorithms.so \
mrf.so
test: ext
pytest -s --verbose --doctest-modules .
cython-html: ${PKGDIR}/reconst/recspeed.html ${PKGDIR}/tracking/propspeed.html ${PKGDIR}/tracking/vox2track.html ${PKGDIR}/tracking/distances.html ${PKGDIR}/tracking/streamlinespeed.html ${PKGDIR}/segment/cythonutils.html ${PKGDIR}/segment/featurespeed.html ${PKGDIR}/segment/metricspeed.html ${PKGDIR}/segment/clusteringspeed.html ${PKGDIR}/segment/clustering_algorithms.html
recspeed.so: ${PKGDIR}/reconst/recspeed.pyx
cythonutils.so: ${PKGDIR}/segment/cythonutils.pyx
featurespeed.so: ${PKGDIR}/segment/featurespeed.pyx
metricspeed.so: ${PKGDIR}/segment/metricspeed.pyx
mrf.so: ${PKGDIR}/segment/mrf.pyx
clusteringspeed.so: ${PKGDIR}/segment/clusteringspeed.pyx
clustering_algorithms.so: ${PKGDIR}/segment/clustering_algorithms.pyx
propspeed.so: ${PKGDIR}/tracking/propspeed.pyx
vox2track.so: ${PKGDIR}/tracking/vox2track.pyx
distances.so: ${PKGDIR}/tracking/distances.pyx
streamlinespeed.so: ${PKGDIR}/tracking/streamlinespeed.pyx
denspeed.so: ${PKGDIR}/denoise/denspeed.pyx
vec_val_sum.so: ${PKGDIR}/reconst/vec_val_sum.pyx
quick_squash.so: ${PKGDIR}/reconst/quick_squash.pyx
vector_fields.so: ${PKGDIR}/align/vector_fields.pyx
crosscorr.so: ${PKGDIR}/align/crosscorr.pyx
sumsqdiff.so: ${PKGDIR}/align/sumsqdiff.pyx
expectmax.so: ${PKGDIR}/align/expectmax.pyx
bundlemin.so: ${PKGDIR}/align/bundlemin.pyx
$(PYTHON) setup.py build_ext --inplace
# Phony targets for cleanup and similar uses
.PHONY: clean
clean:
- find ${PKGDIR} -name "*.so" -print0 | xargs -0 rm
- find ${PKGDIR} -name "*.pyd" -print0 | xargs -0 rm
- find ${PKGDIR} -name "*.c" -print0 | xargs -0 rm
- find ${PKGDIR} -name "*.html" -print0 | xargs -0 rm
rm -rf build
rm -rf docs/_build
rm -rf docs/dist
rm -rf dipy/dipy.egg-info
distclean: clean
rm -rf dist
# Suffix rules
%.c : %.pyx
cython $<
%.html : %.pyx
cython -a $<
source-release: clean
$(PYTHON) -m compileall .
$(PYTHON) -m build --sdist --wheel .
binary-release: clean
$(PYTHON) setup_egg.py bdist_egg
build-stamp-source:
$(PYTHON) -c 'import cythexts; cythexts.build_stamp_source()'
# Checks to see if local files pass formatting rules
format:
python -m pycodestyle dipy