File size: 2,123 Bytes
079c32c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
.PHONY: docs test unittest build clean benchmark zip

NO_DEBUG     ?=
NO_DOCSTRING ?=
NO_DEBUG_CMD := $(if ${NO_DOCSTRING},-OO,$(if ${NO_DEBUG},-O,))
PYTHON       ?= $(shell which python) ${NO_DEBUG_CMD}

DOC_DIR        := ./docs
DIST_DIR       := ./dist
WHEELHOUSE_DIR := ./wheelhouse
BENCHMARK_DIR  := ./benchmark
SRC_DIR        := ./lzero
RUNS_DIR       := ./runs

RANGE_DIR       ?= .
RANGE_TEST_DIR  := ${SRC_DIR}/${RANGE_DIR}
RANGE_BENCH_DIR := ${BENCHMARK_DIR}/${RANGE_DIR}
RANGE_SRC_DIR   := ${SRC_DIR}/${RANGE_DIR}

CYTHON_FILES   := $(shell find ${SRC_DIR} -name '*.pyx')
CYTHON_RELATED := \
	$(addsuffix .c, $(basename ${CYTHON_FILES})) \
	$(addsuffix .cpp, $(basename ${CYTHON_FILES})) \
	$(addsuffix .h, $(basename ${CYTHON_FILES})) \

COV_TYPES        ?= xml term-missing
COMPILE_PLATFORM ?= manylinux_2_24_x86_64


build:
	$(PYTHON) setup.py build_ext --inplace \
					$(if ${LINETRACE},--define CYTHON_TRACE,)

zip:
	$(PYTHON) -m build --sdist --outdir ${DIST_DIR}

package:
	$(PYTHON) -m build --sdist --wheel --outdir ${DIST_DIR}
	for whl in `ls ${DIST_DIR}/*.whl`; do \
		auditwheel repair $$whl -w ${WHEELHOUSE_DIR} --plat ${COMPILE_PLATFORM} && \
		cp `ls ${WHEELHOUSE_DIR}/*.whl` ${DIST_DIR} && \
		rm -rf $$whl ${WHEELHOUSE_DIR}/* \
  	; done

clean:
	rm -rf $(shell find ${SRC_DIR} -name '*.so') \
			$(if ${CYTHON_RELATED},$(shell ls ${CYTHON_RELATED} 2> /dev/null),)
	rm -rf ${DIST_DIR} ${WHEELHOUSE_DIR}

test: unittest benchmark

unittest:
	$(PYTHON) -m pytest "${RANGE_TEST_DIR}" \
		-sv -m unittest \
		$(shell for type in ${COV_TYPES}; do echo "--cov-report=$$type"; done) \
		--cov="${RANGE_SRC_DIR}" \
		$(if ${MIN_COVERAGE},--cov-fail-under=${MIN_COVERAGE},) \
		$(if ${WORKERS},-n ${WORKERS},)

minitest:
	$(PYTHON) -m pytest "${SRC_DIR}/mcts/tests/test_game_block.py" \
		-sv -m unittest \
		$(shell for type in ${COV_TYPES}; do echo "--cov-report=$$type"; done) \
		--cov="${SRC_DIR}/mcts/tests/test_game_block.py" \
		$(if ${MIN_COVERAGE},--cov-fail-under=${MIN_COVERAGE},) \
		$(if ${WORKERS},-n ${WORKERS},)

docs:
	$(MAKE) -C "${DOC_DIR}" build
pdocs:
	$(MAKE) -C "${DOC_DIR}" prod