diff --git a/package/pkg-python.mk b/package/pkg-python.mk index 8e8955f3c4..5f8ef14262 100644 --- a/package/pkg-python.mk +++ b/package/pkg-python.mk @@ -57,7 +57,8 @@ PKG_PYTHON_DISTUTILS_ENV = \ $(PKG_PYTHON_ENV) \ LDSHARED="$(TARGET_CROSS)gcc -shared" -PKG_PYTHON_DISTUTILS_BUILD_OPTS = \ +PKG_PYTHON_DISTUTILS_BUILD_CMD = \ + setup.py build \ --executable=/usr/bin/python PKG_PYTHON_DISTUTILS_INSTALL_OPTS = \ @@ -76,6 +77,9 @@ PKG_PYTHON_DISTUTILS_INSTALL_STAGING_OPTS = \ HOST_PKG_PYTHON_DISTUTILS_ENV = \ $(HOST_PKG_PYTHON_ENV) +HOST_PKG_PYTHON_DISTUTILS_BUILD_CMD = \ + setup.py build \ + HOST_PKG_PYTHON_DISTUTILS_INSTALL_OPTS = \ --prefix=$(HOST_DIR) @@ -86,6 +90,9 @@ PKG_PYTHON_SETUPTOOLS_ENV = \ PKG_PYTHON_SETUPTOOLS_CMD = \ $(if $(wildcard $($(PKG)_BUILDDIR)/setup.py),setup.py,-c 'from setuptools import setup;setup()') +PKG_PYTHON_SETUPTOOLS_BUILD_CMD = \ + $(PKG_PYTHON_SETUPTOOLS_CMD) build + PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS = \ --install-headers=/usr/include/python$(PYTHON3_VERSION_MAJOR) \ --prefix=/usr \ @@ -104,6 +111,9 @@ PKG_PYTHON_SETUPTOOLS_INSTALL_STAGING_OPTS = \ HOST_PKG_PYTHON_SETUPTOOLS_ENV = \ $(HOST_PKG_PYTHON_ENV) +HOST_PKG_PYTHON_SETUPTOOLS_BUILD_CMD = \ + $(PKG_PYTHON_SETUPTOOLS_CMD) build + HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS = \ --prefix=$(HOST_DIR) \ --root=/ \ @@ -115,16 +125,25 @@ PKG_PYTHON_SETUPTOOLS_RUST_ENV = \ $(PKG_CARGO_ENV) \ PYO3_CROSS_LIB_DIR="$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)" +PKG_PYTHON_SETUPTOOLS_RUST_BUILD_CMD = \ + $(PKG_PYTHON_SETUPTOOLS_BUILD_CMD) + # Host setuptools-rust-based packages HOST_PKG_PYTHON_SETUPTOOLS_RUST_ENV = \ $(HOST_PKG_PYTHON_SETUPTOOLS_ENV) \ $(HOST_PKG_CARGO_ENV) \ PYO3_CROSS_LIB_DIR="$(HOST_DIR)/lib/python$(PYTHON3_VERSION_MAJOR)" +HOST_PKG_PYTHON_SETUPTOOLS_RUST_BUILD_CMD = \ + $(HOST_PKG_PYTHON_SETUPTOOLS_BUILD_CMD) + # Target pep517-based packages PKG_PYTHON_PEP517_ENV = \ $(PKG_PYTHON_ENV) +PKG_PYTHON_PEP517_BUILD_CMD = \ + -m build -n -w + PKG_PYTHON_PEP517_INSTALL_OPTS = \ --interpreter=/usr/bin/python \ --script-kind=posix @@ -147,6 +166,9 @@ PKG_PYTHON_PEP517_INSTALL_STAGING_OPTS = \ HOST_PKG_PYTHON_PEP517_ENV = \ $(HOST_PKG_PYTHON_ENV) +HOST_PKG_PYTHON_PEP517_BUILD_CMD = \ + -m build -n -w + HOST_PKG_PYTHON_PEP517_INSTALL_OPTS = \ --interpreter=$(HOST_DIR)/bin/python \ --script-kind=posix \ @@ -162,26 +184,41 @@ HOST_PKG_PYTHON_PEP517_BOOTSTRAP_INSTALL_OPTS = \ PKG_PYTHON_FLIT_ENV = \ $(PKG_PYTHON_PEP517_ENV) +PKG_PYTHON_FLIT_BUILD_CMD = \ + $(PKG_PYTHON_PEP517_BUILD_CMD) + # Host flit packages HOST_PKG_PYTHON_FLIT_ENV = \ $(HOST_PKG_PYTHON_PEP517_ENV) +HOST_PKG_PYTHON_FLIT_BUILD_CMD = \ + $(HOST_PKG_PYTHON_PEP517_BUILD_CMD) + # Host flit-bootstrap packages HOST_PKG_PYTHON_FLIT_BOOTSTRAP_ENV = \ $(HOST_PKG_PYTHON_PEP517_ENV) +HOST_PKG_PYTHON_FLIT_BOOTSTRAP_BUILD_CMD = \ + -m flit_core.wheel + # Target maturin packages PKG_PYTHON_MATURIN_ENV = \ $(PKG_PYTHON_PEP517_ENV) \ $(PKG_CARGO_ENV) \ PYO3_CROSS_LIB_DIR="$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)" +PKG_PYTHON_MATURIN_BUILD_CMD = \ + $(PKG_PYTHON_PEP517_BUILD_CMD) + # Host maturin packages HOST_PKG_PYTHON_MATURIN_ENV = \ $(HOST_PKG_PYTHON_PEP517_ENV) \ $(HOST_PKG_CARGO_ENV) \ PYO3_CROSS_LIB_DIR="$(HOST_DIR)/lib/python$(PYTHON3_VERSION_MAJOR)" +HOST_PKG_PYTHON_MATURIN_BUILD_CMD = \ + $(HOST_PKG_PYTHON_PEP517_BUILD_CMD) + ################################################################################ # inner-python-package -- defines how the configuration, compilation # and installation of a Python package should be done, implements a @@ -211,37 +248,30 @@ $(2)_SETUP_TYPE_UPPER = $$(call UPPERCASE,$$($(2)_SETUP_TYPE)) # Distutils ifeq ($$($(2)_SETUP_TYPE),distutils) ifeq ($(4),target) -$(2)_BASE_BUILD_CMD = setup.py build $$(PKG_PYTHON_DISTUTILS_BUILD_OPTS) $(2)_BASE_INSTALL_TARGET_CMD = setup.py install --no-compile $$(PKG_PYTHON_DISTUTILS_INSTALL_TARGET_OPTS) $(2)_BASE_INSTALL_STAGING_CMD = setup.py install $$(PKG_PYTHON_DISTUTILS_INSTALL_STAGING_OPTS) else -$(2)_BASE_BUILD_CMD = setup.py build $(2)_BASE_INSTALL_CMD = setup.py install $$(HOST_PKG_PYTHON_DISTUTILS_INSTALL_OPTS) endif # Setuptools else ifneq ($$(filter setuptools setuptools-rust,$$($(2)_SETUP_TYPE)),) ifeq ($(4),target) -$(2)_BASE_BUILD_CMD = $$(PKG_PYTHON_SETUPTOOLS_CMD) build $(2)_BASE_INSTALL_TARGET_CMD = $$(PKG_PYTHON_SETUPTOOLS_CMD) install --no-compile $$(PKG_PYTHON_SETUPTOOLS_INSTALL_TARGET_OPTS) $(2)_BASE_INSTALL_STAGING_CMD = $$(PKG_PYTHON_SETUPTOOLS_CMD) install $$(PKG_PYTHON_SETUPTOOLS_INSTALL_STAGING_OPTS) else -$(2)_BASE_BUILD_CMD = $$(PKG_PYTHON_SETUPTOOLS_CMD) build $(2)_BASE_INSTALL_CMD = $$(PKG_PYTHON_SETUPTOOLS_CMD) install $$(HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS) endif else ifneq ($$(filter flit maturin pep517,$$($(2)_SETUP_TYPE)),) ifeq ($(4),target) -$(2)_BASE_BUILD_CMD = -m build -n -w $(2)_BASE_INSTALL_TARGET_CMD = $(TOPDIR)/support/scripts/pyinstaller.py dist/* $$(PKG_PYTHON_PEP517_INSTALL_TARGET_OPTS) $(2)_BASE_INSTALL_STAGING_CMD = $(TOPDIR)/support/scripts/pyinstaller.py dist/* $$(PKG_PYTHON_PEP517_INSTALL_STAGING_OPTS) else -$(2)_BASE_BUILD_CMD = -m build -n -w $(2)_BASE_INSTALL_CMD = $(TOPDIR)/support/scripts/pyinstaller.py dist/* $$(HOST_PKG_PYTHON_PEP517_INSTALL_OPTS) endif else ifeq ($$($(2)_SETUP_TYPE),flit-bootstrap) ifeq ($(4),target) $$(error flit-bootstrap setup type only supported for host packages) else -$(2)_BASE_BUILD_CMD = -m flit_core.wheel $(2)_BASE_INSTALL_CMD ?= $(TOPDIR)/support/scripts/pyinstaller.py dist/* $$(HOST_PKG_PYTHON_PEP517_INSTALL_OPTS) endif else @@ -326,7 +356,7 @@ define $(2)_BUILD_CMDS $$(PKG_PYTHON_$$($$(PKG)_SETUP_TYPE_UPPER)_ENV) \ $$($$(PKG)_ENV) \ $$(HOST_DIR)/bin/python3 \ - $$($$(PKG)_BASE_BUILD_CMD) \ + $$(PKG_PYTHON_$$($$(PKG)_SETUP_TYPE_UPPER)_BUILD_CMD) \ $$($$(PKG)_BUILD_OPTS)) endef endif @@ -373,7 +403,7 @@ define $(2)_BUILD_CMDS $$(HOST_PKG_PYTHON_$$($$(PKG)_SETUP_TYPE_UPPER)_ENV) \ $$($$(PKG)_ENV) \ $$(HOST_DIR)/bin/python3 \ - $$($$(PKG)_BASE_BUILD_CMD) \ + $$(HOST_PKG_PYTHON_$$($$(PKG)_SETUP_TYPE_UPPER)_BUILD_CMD) \ $$($$(PKG)_BUILD_OPTS)) endef endif