PWD=$(shell pwd)
PYTHON?=`pwd`/python-wrapper
PYTHON_VERSION?=`${PYTHON} --version 2>&1 | cut -d ' ' -f 2 | cut -d . -f 1,2`
PYTHON_PKGDIR=$(shell ${PYTHON} ../../mp.py)
PYTHON_INSTALL_DIR=${DESTDIR}/${PYTHON_PKGDIR}/r2pipe

PYTHON2=python
PYTHON3=python3

all:
	$(PYTHON) setup.py build sdist

install: uninstall
	$(PYTHON) setup.py install

clean:
	$(PYTHON) setup.py clean
	rm -rf dist

symstall: uninstall
	ln -fs $(PWD)/r2pipe "$(PYTHON_INSTALL_DIR)"

twine:
	sudo pip install -U twine

test: testpy2 test-examples

# TODO: fix all the failing tests one by one
test2: testpy3

testpy2:
	@echo "Testing $(PYTHON)"
	PYTHONPATH=$$PWD $(PYTHON) -m pytest --version >/dev/null 2>&1 && \
		PYTHONPATH=$$PWD $(PYTHON) -m coverage --version >/dev/null 2>&1 || \
		PYTHONPATH=$$PWD $(PYTHON) -m pip install --user coverage pytest pylint
	PYTHONPATH=$$PWD $(PYTHON) -m coverage run --omit="*.local*" -m pytest -k "test_" test
	PYTHONPATH=$$PWD $(PYTHON) -m coverage report

lint:
	-pylint r2pipe/*.py

test-examples:
	PYTHONPATH=$$PWD $(PYTHON) examples/test.py
	PYTHONPATH=$$PWD $(PYTHON) examples/test2.py

testpy3:
	@$(MAKE) testpy2 PYTHON=$(PYTHON3)

uninstall:
	rm -rf "$(PYTHON_INSTALL_DIR)"

.PHONY: twine

pub publish: all
	twine upload -u __token__ --repository-url https://upload.pypi.org/legacy/ --verbose dist/*
