1################################################################################
2#
3# python-numpy
4#
5################################################################################
6
7PYTHON_NUMPY_VERSION = 1.25.0
8PYTHON_NUMPY_SOURCE = numpy-$(PYTHON_NUMPY_VERSION).tar.gz
9PYTHON_NUMPY_SITE = https://github.com/numpy/numpy/releases/download/v$(PYTHON_NUMPY_VERSION)
10PYTHON_NUMPY_LICENSE = BSD-3-Clause, MIT, Zlib
11PYTHON_NUMPY_LICENSE_FILES = \
12	LICENSE.txt \
13	numpy/core/src/multiarray/dragon4.c \
14	numpy/core/include/numpy/libdivide/LICENSE.txt \
15	numpy/linalg/lapack_lite/LICENSE.txt \
16	tools/npy_tempita/license.txt
17PYTHON_NUMPY_CPE_ID_VENDOR = numpy
18PYTHON_NUMPY_CPE_ID_PRODUCT = numpy
19
20PYTHON_NUMPY_DEPENDENCIES = host-python-cython python3
21HOST_PYTHON_NUMPY_DEPENDENCIES = host-python-cython
22
23PYTHON_NUMPY_CONF_ENV += \
24	_PYTHON_SYSCONFIGDATA_NAME=$(PKG_PYTHON_SYSCONFIGDATA_NAME) \
25	PYTHONPATH=$(PYTHON3_PATH)
26
27ifeq ($(BR2_PACKAGE_LAPACK),y)
28PYTHON_NUMPY_DEPENDENCIES += lapack
29PYTHON_NUMPY_CONF_OPTS += -Dlapack=lapack
30else
31PYTHON_NUMPY_CONF_OPTS += -Dlapack=""
32endif
33
34ifeq ($(BR2_PACKAGE_OPENBLAS),y)
35PYTHON_NUMPY_DEPENDENCIES += openblas
36PYTHON_NUMPY_CONF_OPTS += -Dblas=openblas
37else
38PYTHON_NUMPY_CONF_OPTS += -Dblas=""
39endif
40
41# Rather than add a host-blas or host-lapack dependencies, just use unoptimized,
42# in-tree code.
43HOST_PYTHON_NUMPY_CONF_OPTS = -Dblas="" -Dlapack=""
44
45# Fixup the npymath.ini prefix path with actual target staging area where
46# numpy core was built. Without this, target builds using numpy distutils
47# extensions like python-scipy, python-numba cannot find -lnpymath since
48# it uses host libraries (like libnpymath.a).
49# So, the numpy distutils extension packages would explicitly link this
50# config path for their package environment.
51define PYTHON_NUMPY_FIXUP_NPY_PKG_CONFIG_FILES
52	$(SED) '/^pkgdir=/d;/^prefix=/i pkgdir=$(PYTHON3_PATH)/site-packages/numpy/core' \
53		$(PYTHON3_PATH)/site-packages/numpy/core/lib/npy-pkg-config/npymath.ini
54endef
55PYTHON_NUMPY_POST_INSTALL_STAGING_HOOKS += PYTHON_NUMPY_FIXUP_NPY_PKG_CONFIG_FILES
56
57# Some package may include few headers from NumPy, so let's install it
58# in the staging area.
59PYTHON_NUMPY_INSTALL_STAGING = YES
60
61$(eval $(meson-package))
62$(eval $(host-meson-package))
63