All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 4m17s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 4m22s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 4m11s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m57s
CI / Packaging test (push) Successful in 0s
The meaning of the many PY_XXX variables isn't easy to tell apart, so start renaming some of them. PY_ALL_PY and PY_PYC consistently are now named PY_LOCAL|INSTALL_PY and PY_LOCAL|INSTALL_PYC, depending on whether or not they are intended to be installed. The old PY_INSTALL_PY was renamed to PY_DO_INSTALLL_PY, a move that would be better applied to all boolean variables. I won't try with this commit, however, because a lot of downstream packages depend on PY_UPDATE_INIT_PY and PY_INSTALL_INIT_PY, i.e. without "_DO". Signed-off-by: Jan Lindemann <jan@janware.com>
102 lines
3.7 KiB
Makefile
102 lines
3.7 KiB
Makefile
include $(JWBDIR)/make/py-version.mk
|
|
|
|
PY_INSTALL_INIT_PY ?= true
|
|
PY_UPDATE_INIT_PY ?= true
|
|
PY_INSTALL ?= true
|
|
PY_DO_INSTALL_REG ?= true
|
|
|
|
ifneq ($(PY_INSTALL),true)
|
|
PY_DO_INSTALL_REG = false
|
|
endif
|
|
PY_DO_INSTALL_PYC ?= true
|
|
ifneq ($(PY_DO_INSTALL_REG),true)
|
|
PY_DO_INSTALL_PYC = false
|
|
endif
|
|
|
|
ifeq ($(DEVELOPMENT),true)
|
|
PY_SITE_PACKAGES_PATH := $(PREFIX)/python$(PYTHON_VERSION)/site-packages
|
|
else
|
|
PY_SITE_PACKAGES_PATH := $(shell $(PYTHON) -c "import site; print([d for d in site.getsitepackages() if d.find('/local/') == -1][0])")
|
|
endif
|
|
|
|
PY_SRC_PY ?= $(wildcard *.py)
|
|
PY_LOCAL_PY = $(PY_SRC_PY)
|
|
PY_INSTALL_PY = $(filter-out __init__.py,$(PY_SRC_PY))
|
|
|
|
ifneq ($(PYTHON_MAJOR),3)
|
|
PY_LOCAL_PYC = $(patsubst %.py,%.pyc,$(PY_LOCAL_PY))
|
|
PY_INSTALL_PYC = $(patsubst %.py,%.pyc,$(PY_INSTALL_PY))
|
|
else
|
|
PY_CPYTHON_PREFIX := $(shell $(PYTHON) -c "import sys; print('cpython-{}{}'.format(sys.version_info[0],sys.version_info[1]))")
|
|
PY_LOCAL_PYC = $(patsubst %.py,__pycache__/%.$(PY_CPYTHON_PREFIX).pyc,$(PY_LOCAL_PY))
|
|
PY_INSTALL_PYC = $(patsubst %.py,__pycache__/%.$(PY_CPYTHON_PREFIX).pyc,$(PY_INSTALL_PY))
|
|
endif
|
|
|
|
ifneq ($(PY_INSTALL_DIR),)
|
|
PY_INSTALL_DIR_PY ?= $(PY_INSTALL_DIR)
|
|
endif
|
|
|
|
# deduce PY_INSTALL_DIR_PY from working directory below .. python/
|
|
ifeq ($(PY_INSTALL_DIR_PY),)
|
|
ECHO ?= echo
|
|
SED ?= sed
|
|
PY_INSTALL_PKG_MOD ?= $(shell $(ECHO) $(CWD) | $(SED) 's%.*/python/%%; s%/.*%%')
|
|
PY_INSTALL_SUB_MOD ?= $(shell $(ECHO) $(CWD) | $(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))
|
|
ifeq ($(PY_INSTALL_INIT_PY),true)
|
|
PY_INSTALL_PY += __init__.py
|
|
PY_LOCAL_PY += __init__.py
|
|
else ifeq ($(PY_UPDATE_INIT_PY),true)
|
|
PY_LOCAL_PY += __init__.py
|
|
endif
|
|
PY_INSTALL_DIR_PY ?= $(ENV_PREFIX)$(PY_SITE_PACKAGES_PATH)/$(patsubst .,/,$(PY_INSTALL_MOD))
|
|
else
|
|
ifeq ($(PY_INSTALL_DIR_PY),)
|
|
$(error PY_INSTALL_DIR_PY is undefined)
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(PYTHON_MAJOR),3)
|
|
PY_INSTALL_DIR_PYC ?= $(PY_INSTALL_DIR_PY)/__pycache__
|
|
else
|
|
PY_INSTALL_DIR_PYC ?= $(PY_INSTALL_DIR_PY)
|
|
endif
|
|
|
|
PY_INSTALL_DIRS ?= $(sort $(PY_INSTALL_DIR_PY) $(PY_INSTALL_DIR_PYC))
|
|
PY_INSTALLED_PY = $(addprefix $(PY_INSTALL_DIR_PY)/,$(sort $(PY_INSTALL_PY)))
|
|
PY_INSTALLED_PY_TYPED = $(addprefix $(PY_INSTALL_DIR_PY)/,$(wildcard py.typed))
|
|
ifeq ($(PY_DO_INSTALL_PYC),true)
|
|
PY_INSTALLED_PYC = $(addprefix $(PY_INSTALL_DIR_PY)/,$(PY_INSTALL_PYC))
|
|
endif
|
|
ifeq ($(PY_DO_INSTALL_REG),true)
|
|
PY_INSTALLED_REG = $(PY_INSTALLED_PY) $(PY_INSTALLED_PYC) $(PY_INSTALLED_PY_TYPED)
|
|
endif
|
|
|
|
ifneq ($(PY_DEFS_MK_INCLUDED),true)
|
|
all:
|
|
|
|
echo-py:
|
|
@echo 'PYTHON = $(PYTHON)'
|
|
@echo 'PY_INSTALL_DIR_PY = $(PY_INSTALL_DIR_PY)'
|
|
@echo 'PROJECT = $(PROJECT)'
|
|
@echo 'PY_SITE_PACKAGES_PATH = $(PY_SITE_PACKAGES_PATH)'
|
|
@echo 'PY_MODULES = $(PY_MODULES)'
|
|
@echo 'PYTHONPATH = $(PYTHONPATH)'
|
|
@echo 'MYPYPATH = $(MYPYPATH)'
|
|
@echo 'PY_INSTALL_MOD = $(PY_INSTALL_MOD)'
|
|
@echo 'PY_INSTALL_SUB_MOD = $(PY_INSTALL_SUB_MOD)'
|
|
|
|
libpath: py-libpath
|
|
py-libpath:
|
|
@echo 'export PYTHONPATH = $(PYTHONPATH)'
|
|
@echo 'export MYPYPATH = $(MYPYPATH)'
|
|
endif
|
|
|
|
PY_DEFS_MK_INCLUDED := true
|
|
|
|
include $(JWBDIR)/make/py-path.mk
|