[Buildroot] [PATCH v2 05/24] python-numpy: new package

Yann E. MORIN yann.morin.1998 at free.fr
Sat May 3 17:40:13 UTC 2014


Samuel, All,

On 2014-04-23 01:15 +0200, Samuel Martin spake thusly:
> This patch add NumPy package for python.
> 
> Since Fortran support has been deprecated in Buildroot since the 2013.11
> release, and because most of the external toolchains do not provide a
> Fortran compiler, it is necessary to explicity disable Fortran compiler
> to avoid catching the one from the host system if any.
> 
> We also need to fill a site.cfg file to tell NumPy build-system where
> it should looking for BLAS and LAPACK libraries.
> 
> Some packages may include headers provided by python-numpy package.
> Thus, python-numpy needs to be installed in the sysroot; so add and
> enable its install-staging command.
> 
> Signed-off-by: Samuel Martin <s.martin49 at gmail.com>

[--SNIP--]
> diff --git a/package/python-numpy/Config.in b/package/python-numpy/Config.in
> new file mode 100644
> index 0000000..c80e5c4
> --- /dev/null
> +++ b/package/python-numpy/Config.in
> @@ -0,0 +1,8 @@
> +config BR2_PACKAGE_PYTHON_NUMPY
> +	bool "python-numpy"
> +	help
> +	  NumPy is the fundamental package for scientific computing with Python.
> +
> +	  Note that NumPy needs fenv.h fully supported by the C-library.

So, maybe we should:
    depends on uClibc && x86 || glibc

uClibc only really supports fenv.h for x86.

> +	  http://www.numpy.org/
> diff --git a/package/python-numpy/python-numpy.mk b/package/python-numpy/python-numpy.mk
> new file mode 100644
> index 0000000..e7c91c4
> --- /dev/null
> +++ b/package/python-numpy/python-numpy.mk
> @@ -0,0 +1,41 @@
> +################################################################################
> +#
> +# python-numpy
> +#
> +################################################################################
> +
> +PYTHON_NUMPY_VERSION = 1.8.0

We've got 1.8.1 out now. Maybe use it?

> +PYTHON_NUMPY_SOURCE = numpy-$(PYTHON_NUMPY_VERSION).tar.gz
> +PYTHON_NUMPY_SITE = http://downloads.sourceforge.net/numpy
> +PYTHON_NUMPY_LICENSE = BSD-3c
> +PYTHON_NUMPY_LICENSE_FILES = LICENSE.txt
> +PYTHON_NUMPY_SETUP_TYPE = distutils
> +
> +PYTHON_NUMPY_BUILD_OPT = --fcompiler=None
> +
> +define PYTHON_NUMPY_CONFIGURE_CMDS
> +	-rm -f $(@D)/site.cfg
> +	echo "[DEFAULT]" >> $(@D)/site.cfg
> +	echo "library_dirs = $(STAGING_DIR)/usr/lib" >> $(@D)/site.cfg
> +	echo "include_dirs = $(STAGING_DIR)/usr/include" >> $(@D)/site.cfg
> +	echo "libraries =" >> $(@D)/site.cfg
> +endef
> +
> +# Some package may include few headers from NumPy, so let's install it in the
> +# staging area.
> +PYTHON_NUMPY_INSTALL_STAGING = YES
> +
> +# This install staging commands is an adjusted and simplified version of the
> +# install target commands vampirized from the python-package infrastructure.

Why not add it to the python-infra, then?

Regards,
Yann E. MORIN.

> +# Note that the append '--prefix=...' parameter overrides the one set by the
> +# python-package infrastructure in the PYTHON_NUMPY_INSTALL_OPT variable.
> +define PYTHON_NUMPY_INSTALL_STAGING_CMDS
> +	(cd $(PYTHON_NUMPY_BUILDDIR)/; \
> +		$(PYTHON_NUMPY_BASE_ENV) $(PYTHON_NUMPY_ENV) \
> +		$(HOST_DIR)/usr/bin/python setup.py install \
> +		$(PYTHON_NUMPY_BASE_INSTALL_OPT) \
> +		$(PYTHON_NUMPY_INSTALL_OPT) --prefix=$(STAGING_DIR)/usr)
> +endef
> +
> +$(eval $(python-package))
> -- 
> 1.9.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list