msspec_python3/Makefile

47 lines
1.2 KiB
Makefile

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 venv doc clean
pybinding:
@+$(MAKE) -C src pybinding
install: venv
@+$(MAKE) -C src sdist
@+$(MAKE) -C src frontend
@. $(VENV_PATH)/bin/activate && pip install src/dist/msspec-$(VERSION).tar.gz
venv:
virtualenv --python=$(PYTHON_EXE) --prompt="(msspec-$(VERSION)) " $(VENV_PATH)
. $(VENV_PATH)/bin/activate && pip install --upgrade pip && pip install -r src/pip.freeze
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