|
.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 |
|
|