diff options
| author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2014-07-16 22:23:59 +0200 |
|---|---|---|
| committer | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2014-07-16 22:27:34 +0200 |
| commit | 643627fc43abf0f2dff248992219ad56e27a21c9 (patch) | |
| tree | fbc56207b61f930392c7b829c144c91d154c33a3 /package/pkg-python.mk | |
| parent | 17240db1432fd97f2d619cdec7e84e20c2ace7fa (diff) | |
| download | buildroot-643627fc43abf0f2dff248992219ad56e27a21c9.tar.gz buildroot-643627fc43abf0f2dff248992219ad56e27a21c9.zip | |
pkg-python: add staging installation support
python-numpy needs to be installed to the staging directory, since it
also installs some header files. Therefore, this commit extends the
Python package infrastructure to support staging installation.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'package/pkg-python.mk')
| -rw-r--r-- | package/pkg-python.mk | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/package/pkg-python.mk b/package/pkg-python.mk index 9e6160f233..fedfd69eea 100644 --- a/package/pkg-python.mk +++ b/package/pkg-python.mk @@ -35,9 +35,12 @@ PKG_PYTHON_DISTUTILS_ENV = \ PKG_PYTHON_DISTUTILS_BUILD_OPT = \ --executable=/usr/bin/python -PKG_PYTHON_DISTUTILS_INSTALL_OPT = \ +PKG_PYTHON_DISTUTILS_INSTALL_TARGET_OPT = \ --prefix=$(TARGET_DIR)/usr +PKG_PYTHON_DISTUTILS_INSTALL_STAGING_OPT = \ + --prefix=$(STAGING_DIR)/usr + # Host distutils-based packages HOST_PKG_PYTHON_DISTUTILS_ENV = \ PATH=$(BR_PATH) @@ -53,12 +56,18 @@ PKG_PYTHON_SETUPTOOLS_ENV = \ _python_prefix=/usr \ _python_exec_prefix=/usr -PKG_PYTHON_SETUPTOOLS_INSTALL_OPT = \ +PKG_PYTHON_SETUPTOOLS_INSTALL_TARGET_OPT = \ --prefix=$(TARGET_DIR)/usr \ --executable=/usr/bin/python \ --single-version-externally-managed \ --root=/ +PKG_PYTHON_SETUPTOOLS_INSTALL_STAGING_OPT = \ + --prefix=$(STAGING_DIR)/usr \ + --executable=/usr/bin/python \ + --single-version-externally-managed \ + --root=/ + # Host setuptools-based packages HOST_PKG_PYTHON_SETUPTOOLS_ENV = \ PATH=$(BR_PATH) @@ -103,7 +112,8 @@ ifeq ($(4),target) $(2)_BASE_ENV = $$(PKG_PYTHON_DISTUTILS_ENV) $(2)_BASE_BUILD_TGT = build $(2)_BASE_BUILD_OPT = $$(PKG_PYTHON_DISTUTILS_BUILD_OPT) -$(2)_BASE_INSTALL_OPT = $$(PKG_PYTHON_DISTUTILS_INSTALL_OPT) +$(2)_BASE_INSTALL_TARGET_OPT = $$(PKG_PYTHON_DISTUTILS_INSTALL_TARGET_OPT) +$(2)_BASE_INSTALL_STAGING_OPT = $$(PKG_PYTHON_DISTUTILS_INSTALL_STAGING_OPT) else $(2)_BASE_ENV = $$(HOST_PKG_PYTHON_DISTUTILS_ENV) $(2)_BASE_BUILD_TGT = build @@ -116,7 +126,8 @@ ifeq ($(4),target) $(2)_BASE_ENV = $$(PKG_PYTHON_SETUPTOOLS_ENV) $(2)_BASE_BUILD_TGT = build $(2)_BASE_BUILD_OPT = -$(2)_BASE_INSTALL_OPT = $$(PKG_PYTHON_SETUPTOOLS_INSTALL_OPT) +$(2)_BASE_INSTALL_TARGET_OPT = $$(PKG_PYTHON_SETUPTOOLS_INSTALL_TARGET_OPT) +$(2)_BASE_INSTALL_STAGING_OPT = $$(PKG_PYTHON_SETUPTOOLS_INSTALL_STAGING_OPT) else $(2)_BASE_ENV = $$(HOST_PKG_PYTHON_SETUPTOOLS_ENV) $(2)_BASE_BUILD_TGT = build @@ -243,7 +254,22 @@ define $(2)_INSTALL_TARGET_CMDS (cd $$($$(PKG)_BUILDDIR)/; \ $$($$(PKG)_BASE_ENV) $$($$(PKG)_ENV) \ $$($(2)_PYTHON_INTERPRETER) setup.py install \ - $$($$(PKG)_BASE_INSTALL_OPT) $$($$(PKG)_INSTALL_OPT)) + $$($$(PKG)_BASE_INSTALL_TARGET_OPT) \ + $$($$(PKG)_INSTALL_TARGET_OPT)) +endef +endif + +# +# Staging installation step. Only define it if not already defined by +# the package .mk file. +# +ifndef $(2)_INSTALL_STAGING_CMDS +define $(2)_INSTALL_STAGING_CMDS + (cd $$($$(PKG)_BUILDDIR)/; \ + $$($$(PKG)_BASE_ENV) $$($$(PKG)_ENV) \ + $$($(2)_PYTHON_INTERPRETER) setup.py install \ + $$($$(PKG)_BASE_INSTALL_STAGING_OPT) \ + $$($$(PKG)_INSTALL_STAGING_OPT)) endef endif |

