From cdabaad7ef71850fd40495baf41014751393e102 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Sat, 22 Jul 2017 18:16:08 +0000 Subject: [PATCH] py-*.mk: Fill PYTHONPATH from build dependencies Signed-off-by: Jan Lindemann --- make/py-defs.mk | 34 +++++++++++++++++++--------------- make/py-mod.mk | 1 + make/py-run.mk | 3 +++ 3 files changed, 23 insertions(+), 15 deletions(-) diff --git a/make/py-defs.mk b/make/py-defs.mk index 95f84b47..4335a575 100644 --- a/make/py-defs.mk +++ b/make/py-defs.mk @@ -1,4 +1,4 @@ -include $(MODDIR)/make/defs.mk +ENV_PYTHONPATH := $(PYTHONPATH) ifneq ($(DEVELOPMENT),true) PY_SITE_PACKAGES_PATH = $(shell python -c "import site; print site.getsitepackages()[0]") @@ -6,30 +6,34 @@ else PY_SITE_PACKAGES_PATH = $(PREFIX)/python/site-packages endif -PY_PROJ_MODULES_DIR ?= $(wildcard $(TOPDIR)/tools/python $(TOPDIR)/src/python) -PY_MODULES_DIR ?= $(PY_PROJ_MODULES_DIR) -PY_PROJ_MODULES += $(dir $(wildcard $(PY_MODULES_DIR)/*/__init__.py)) -PY_MODULES ?= $(PY_PROJ_MODULES) -PY_INSTALL_MOD ?= $(shell pwd | sed 's%.*/python/%%; s%/.*%%') -PY_INSTALL_SUBMOD ?= $(shell pwd | sed "s%.*/$(PY_INSTALL_MOD)\(/\|$$\)%%") -PY_MOD ?= $(patsubst /,.,$(PY_INSTALL_MOD).$(PY_INSTALL_SUBMOD)) -PY_SRC_PY = $(sort $(wildcard *.py) __init__.py) -PY_PYC = $(patsubst %.py,%.pyc,$(PY_SRC_PY)) +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_MODULES_DIRS ?= $(wildcard $(foreach subdir,/tools/python /src/python,$(addsuffix $(subdir),$(PY_PREREQ_BUILD_DIRS)))) +PY_MODULES_DIRS ?= $(PY_PROJ_MODULES_DIRS) +PY_PROJ_MODULES += $(dir $(wildcard $(PY_MODULES_DIRS)/*/__init__.py)) +PY_MODULES ?= $(PY_PROJ_MODULES) +PY_INSTALL_MOD ?= $(shell pwd | sed 's%.*/python/%%; s%/.*%%') +PY_INSTALL_SUBMOD ?= $(shell pwd | sed "s%.*/$(PY_INSTALL_MOD)\(/\|$$\)%%") +PY_MOD ?= $(patsubst /,.,$(PY_INSTALL_MOD).$(PY_INSTALL_SUBMOD)) +PY_SRC_PY = $(sort $(wildcard *.py) __init__.py) +PY_PYC = $(patsubst %.py,%.pyc,$(PY_SRC_PY)) ifneq ($(PY_INSTALL_SUBMOD),) - PY_INSTALL_DIR = $(ENV_PREFIX)$(PY_SITE_PACKAGES_PATH)/$(PY_INSTALL_MOD)/$(PY_INSTALL_SUBMOD) + PY_INSTALL_DIR = $(ENV_PREFIX)$(PY_SITE_PACKAGES_PATH)/$(PY_INSTALL_MOD)/$(PY_INSTALL_SUBMOD) else - PY_INSTALL_DIR = $(ENV_PREFIX)$(PY_SITE_PACKAGES_PATH)/$(PY_INSTALL_MOD) + PY_INSTALL_DIR = $(ENV_PREFIX)$(PY_SITE_PACKAGES_PATH)/$(PY_INSTALL_MOD) endif -PY_INSTALLED_REG = $(addprefix $(PY_INSTALL_DIR)/,$(PY_SRC_PY) $(PY_PYC)) +PY_INSTALLED_REG = $(addprefix $(PY_INSTALL_DIR)/,$(PY_SRC_PY) $(PY_PYC)) -#PYTHONPATH := $(PYTHONPATH)$(foreach p,$(PY_MODULES),:$(p)) -PYTHONPATH := $(PYTHONPATH):$(PY_MODULES_DIR) +PYTHONPATH = $(ENV_PYTHONPATH)$(foreach d,$(PY_MODULES_DIRS),:$(d)) export PYTHONPATH all: echo-py: + @echo PROJECT = $(PROJECT) + @echo PY_PROJ_MODULES_DIRS = $(PY_PROJ_MODULES_DIRS) + @echo PY_MODULES_DIRS = $(PY_MODULES_DIRS) @echo PY_SITE_PACKAGES_PATH = $(PY_SITE_PACKAGES_PATH) @echo PY_MODULES = $(PY_MODULES) @echo PYTHONPATH = $(PYTHONPATH) diff --git a/make/py-mod.mk b/make/py-mod.mk index da25eeb6..073d9780 100644 --- a/make/py-mod.mk +++ b/make/py-mod.mk @@ -1,3 +1,4 @@ +include $(MODDIR)/make/defs.mk include $(MODDIR)/make/py-defs.mk include $(MODDIR)/make/dirs.mk diff --git a/make/py-run.mk b/make/py-run.mk index 0dc2c731..f01a9551 100644 --- a/make/py-run.mk +++ b/make/py-run.mk @@ -1,4 +1,7 @@ +include $(MODDIR)/make/defs.mk include $(MODDIR)/make/py-defs.mk +include $(MODDIR)/make/scripts-targets.mk +include $(MODDIR)/make/rules.mk EXE ?= $(firstword $(wildcard main.py runme.py *.py)) EXE_ARGS ?=