summaryrefslogtreecommitdiffstats
path: root/package/pkg-python.mk
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2014-07-16 22:23:59 +0200
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2014-07-16 22:27:34 +0200
commit643627fc43abf0f2dff248992219ad56e27a21c9 (patch)
treefbc56207b61f930392c7b829c144c91d154c33a3 /package/pkg-python.mk
parent17240db1432fd97f2d619cdec7e84e20c2ace7fa (diff)
downloadbuildroot-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.mk36
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
OpenPOWER on IntegriCloud