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