include options.mk

.PHONY: sdist frontend pybinding results clean


sdist: dist/msspec-$(VERSION).tar.gz


frontend: $(INSTALL_PREFIX)/bin/msspec


dist/msspec-$(VERSION).tar.gz: VERSION
	@echo "Creating Python source distribution..."
	@$(PYTHON_EXE) setup.py sdist


$(INSTALL_PREFIX)/bin/msspec: msspec.sh.template VERSION
	@echo "Installing frontend command..."
	@mkdir -p $(dir $@)
	@cat $< | sed -e 's/__VERSION__/$(VERSION)/' -e 's#__VENV_PATH__#$(VENV_PATH)#' > $@
	#@cat $< | sed 's/__VERSION__/$(VERSION)/' > $@
	@chmod 755 $@


pybinding:
	@echo "Building Python binding for phagen and spec..."
	@+$(MAKE) -C msspec/phagen/fortran all
	@+$(MAKE) -C msspec/spec/fortran all
	@echo "$(VERSION)" > VERSION


results: msspec/results.txt


msspec/results.txt: pybinding
	@echo "Generating results for unittests"
	@coverage run --source=./ --omit=msspec/es/*,msspec/msspecgui/* msspec/create_tests_results.py
#	create the html coverage report
	@coverage html -d ../doc/source/htmlcov
	@rm .coverage


tests: pybinding
	@echo "Runing unittests"
	@python -m msspec.tests 1>/dev/null


clean::
	@echo "Cleaning all..."
	@find ./ -type f -name '*.pyc' -exec rm -f {} +
	@find ./ -type d -name '__pycache__' -exec rm -rf {} +
	@+$(MAKE) -C msspec/spec/fortran clean
	@+$(MAKE) -C msspec/phagen/fortran clean
#	remove previous sdist
	@rm -rf dist
	@rm -rf *.egg*
	@rm -f VERSION


help:
	@echo "SRC Makefile help message"

