[Buildroot] [PATCH v6 2/4] package/python-numpy: fixup numpy distutils for cross compilation
Esben Haabendal
esben at geanix.com
Wed Mar 18 09:31:12 UTC 2020
Jagan Teki <jagan at amarulasolutions.com> writes:
> From: Esben Haabendal <esben at geanix.com>
>
> Fix problems using the numpy distutils extension for cross compilation,
> so that linking with npymath library will use target library when building
> target packages.
>
> Signed-off-by: Esben Haabendal <esben at geanix.com>
> Signed-off-by: Jagan Teki <jagan at amarulasolutions.com>
> ---
> Changes for v6:
> - drop python2 staging directory
>
> package/python-numpy/python-numpy.mk | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/package/python-numpy/python-numpy.mk b/package/python-numpy/python-numpy.mk
> index 6d4cd22e62..18d9f40887 100644
> --- a/package/python-numpy/python-numpy.mk
> +++ b/package/python-numpy/python-numpy.mk
> @@ -32,6 +32,23 @@ define PYTHON_NUMPY_CONFIGURE_CMDS
> echo "include_dirs = $(STAGING_DIR)/usr/include" >> $(@D)/site.cfg
> endef
>
> +# The numpy distutils extensions are not very cross friendly. It comes with
> +# it's own pkg-config look-alike, which we are patching to allow overriding
Well, now that the patch is included in the numpy release we are using,
the above comment is not true anymore :) You need to rephrase the comment.
> +# where it locates the configuration files. This allows us to use fixed up
> +# target configuration files, which we make sure includes full path to the
> +# target staging area, so that when building for target, we actually use the
> +# target libraries. Without this, target builds using numpy distutils
> +# extensions (such as fx. python-scipy) will use the host libraries, which
> +# obviously will not work.
> +PYTHON_NUMPY_STAGING_DIR = $(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/numpy
> +PYTHON_NUMPY_NPY_PKG_CONFIG_PATH=$(PYTHON_NUMPY_STAGING_DIR)/core/lib/npy-pkg-config
> +define PYTHON_NUMPY_FIXUP_NPY_PKG_CONFIG_FILES
> + sed -e '/^pkgdir=/d' \
> + -e '/^prefix=/i pkgdir=$(PYTHON_NUMPY_STAGING_DIR)/core' \
> + -i $(PYTHON_NUMPY_NPY_PKG_CONFIG_PATH)/npymath.ini
> +endef
> +PYTHON_NUMPY_POST_INSTALL_STAGING_HOOKS += PYTHON_NUMPY_FIXUP_NPY_PKG_CONFIG_FILES
> +
> # Some package may include few headers from NumPy, so let's install it
> # in the staging area.
> PYTHON_NUMPY_INSTALL_STAGING = YES
More information about the buildroot
mailing list