include src/options.mk PYTHON = python # Checking Python version PYTHON_EXE := $(shell command -v $(PYTHON) 2> /dev/null) ifndef PYTHON_EXE $(error Unable to find the $(PYTHON) executable!) endif PYTHON_VERSION_MAJOR := $(shell $(PYTHON_EXE) --version 2>&1 | cut -d" " -f2 | cut -d. -f1) PYTHON_VERSION_MINOR := $(shell $(PYTHON_EXE) --version 2>&1 | cut -d" " -f2 | cut -d. -f2) ifneq ($(shell test $(PYTHON_VERSION_MAJOR) -ge 3 -a $(PYTHON_VERSION_MINOR) -ge 6; echo $$?),0) $(error Python version >= 3.6 is needed!) endif .PHONY: pybinding install devel venv doc clean pybinding: @+$(MAKE) -C src pybinding venv: virtualenv --python=$(PYTHON_EXE) --prompt="(msspec-$(VERSION)) " $(VENV_PATH) . $(VENV_PATH)/bin/activate && pip install --upgrade pip && pip install -r src/pip.freeze install: pybinding venv @+$(MAKE) -C src sdist @+$(MAKE) -C src frontend @. $(VENV_PATH)/bin/activate && pip install src/dist/msspec-$(VERSION).tar.gz devel: VENV_PATH = ./_venv devel: pybinding venv @. $(VENV_PATH)/bin/activate && pip install -e src/ doc: @echo "Building pdf and html documentation..." @mkdir -p package/ @+$(MAKE) -C doc/ latexpdf @rm -rf package/*.pdf @cp "doc/build/latex/MsSpec-python.pdf" "./package/MsSpec-$(VERSION).pdf" @+$(MAKE) -C doc/ html clean:: @+$(MAKE) -C src/ clean help: @echo "Top Makefile help message"