ENV_PYTHONPATH := $(PYTHONPATH) PYTHON ?= python2 #PYTHON = python3 ifneq ($(DEVELOPMENT),true) PY_SITE_PACKAGES_PATH := $(shell $(PYTHON) -c "import site; print(site.getsitepackages()[0])") else PY_SITE_PACKAGES_PATH := $(PREFIX)/python2/site-packages endif PY_PREREQ_BUILD ?= $(shell $(proj_query_cmd) pkg-requires --subsections jw -d ' ' -p --no-version build $(PROJECT)) PY_PREREQ_BUILD_DIRS ?= $(shell $(proj_query_cmd) proj-dir $(PY_PREREQ_BUILD)) PY_PROJ_MODULE_DIRS ?= $(wildcard $(foreach subdir,/tools/python /src/python,$(addsuffix $(subdir),$(TOPDIR) $(PY_PREREQ_BUILD_DIRS)))) PY_MODULE_DIRS ?= $(PY_PROJ_MODULE_DIRS) PY_PROJ_MODULES += $(dir $(wildcard $(PY_MODULE_DIRS)/*/__init__.py)) PY_MODULES ?= $(PY_PROJ_MODULES) PY_SRC_PY ?= $(wildcard *.py) PY_ALL_PY = $(sort $(PY_SRC_PY) __init__.py) ifneq ($(PYTHON),python3) PY_PYC = $(patsubst %.py,%.pyc,$(PY_ALL_PY)) else PY_PYC = $(patsubst %.py,__pycache__/%.cpython-37.pyc,$(PY_ALL_PY)) endif PY_INSTALL_PKG_MOD ?= $(shell $(PWD) | sed 's%.*/python/%%; s%/.*%%') PY_INSTALL_SUB_MOD ?= $(shell $(PWD) | sed "s%.*/$(PY_INSTALL_PKG_MOD)\(/\|$$\)%%") ifneq ($(PY_INSTALL_SUB_MOD),) PY_INSTALL_MOD ?= $(PY_INSTALL_PKG_MOD)/$(PY_INSTALL_SUB_MOD) else PY_INSTALL_MOD ?= $(PY_INSTALL_PKG_MOD) endif PY_MOD ?= $(subst /,.,$(PY_INSTALL_MOD)) PY_INSTALL_DIR_PY ?= $(ENV_PREFIX)$(PY_SITE_PACKAGES_PATH)/$(patsubst .,/,$(PY_INSTALL_MOD)) ifeq ($(PYTHON),python3) PY_INSTALL_DIR_PYC ?= $(PY_INSTALL_DIR_PY)/__pycache__ endif PY_INSTALL_DIRS ?= $(PY_INSTALL_DIR_PY) $(PY_INSTALL_DIR_PYC) PY_INSTALLED_PY = $(addprefix $(PY_INSTALL_DIR_PY)/,$(PY_ALL_PY)) PY_INSTALLED_PYC = $(addprefix $(PY_INSTALL_DIR_PY)/,$(PY_PYC)) PY_INSTALLED_REG = $(PY_INSTALLED_PY) $(PY_INSTALLED_PYC) empty := space := $(empty) $(empty) PYTHONPATH ?= $(call proj_query, pythonpath $(PROJECT)) #PYTHONPATH = $(subst $(space),,$(ENV_PYTHONPATH)$(foreach d,$(PY_MODULE_DIRS),:$(d))) export PYTHONPATH PY_DEFS_MK_INCLUDED := true ifneq ($(PY_DEFS_MK_INCLUDED),true) all: clean: pyc.clean echo-py: @echo PROJECT = $(PROJECT) @echo PY_PROJ_MODULE_DIRS = $(PY_PROJ_MODULE_DIRS) @echo PY_MODULE_DIRS = $(PY_MODULE_DIRS) @echo PY_SITE_PACKAGES_PATH = $(PY_SITE_PACKAGES_PATH) @echo PY_MODULES = $(PY_MODULES) @echo PYTHONPATH = $(PYTHONPATH) @echo PY_INSTALL_MOD = $(PY_INSTALL_MOD) @echo PY_INSTALL_SUB_MOD = $(PY_INSTALL_SUB_MOD) pyc.clean: $(RM) -f $(wildcard *.pyc) __pycache__ libpath: py-libpath py-libpath: @echo export PYTHONPATH=$(PYTHONPATH) endif include $(MODDIR)/make/ldlibpath.mk