xref: /OK3568_Linux_fs/buildroot/package/python-numpy/python-numpy.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1################################################################################
2#
3# python-numpy
4#
5################################################################################
6
7PYTHON_NUMPY_VERSION = 1.21.2
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
17
18PYTHON_NUMPY_SETUP_TYPE = setuptools
19PYTHON_NUMPY_DEPENDENCIES = host-python-cython
20HOST_PYTHON_NUMPY_DEPENDENCIES = host-python-cython
21
22ifeq ($(BR2_PACKAGE_LAPACK),y)
23PYTHON_NUMPY_DEPENDENCIES += lapack
24else
25PYTHON_NUMPY_ENV += BLAS=None LAPACK=None
26endif
27
28ifeq ($(BR2_TOOLCHAIN_HAS_FORTRAN),y)
29PYTHON_NUMPY_BUILD_OPTS = --fcompiler=gnu95
30PYTHON_NUMPY_ENV += F90=$(TARGET_FC)
31else
32PYTHON_NUMPY_BUILD_OPTS = --fcompiler=None
33endif
34
35define PYTHON_NUMPY_CONFIGURE_CMDS
36	-rm -f $(@D)/site.cfg
37	echo "[DEFAULT]" >> $(@D)/site.cfg
38	echo "library_dirs = $(STAGING_DIR)/usr/lib" >> $(@D)/site.cfg
39	echo "include_dirs = $(STAGING_DIR)/usr/include" >> $(@D)/site.cfg
40endef
41
42# Fixup the npymath.ini prefix path with actual target staging area where
43# numpy core was built. Without this, target builds using numpy distutils
44# extensions like python-scipy, python-numba cannot find -lnpymath since
45# it uses host libraries (like libnpymath.a).
46# So, the numpy distutils extension packages would explicitly link this
47# config path for their package environment.
48define PYTHON_NUMPY_FIXUP_NPY_PKG_CONFIG_FILES
49	$(SED) '/^pkgdir=/d;/^prefix=/i pkgdir=$(PYTHON3_PATH)/site-packages/numpy/core' \
50		$(PYTHON3_PATH)/site-packages/numpy/core/lib/npy-pkg-config/npymath.ini
51endef
52PYTHON_NUMPY_POST_INSTALL_STAGING_HOOKS += PYTHON_NUMPY_FIXUP_NPY_PKG_CONFIG_FILES
53
54# Some package may include few headers from NumPy, so let's install it
55# in the staging area.
56PYTHON_NUMPY_INSTALL_STAGING = YES
57
58$(eval $(python-package))
59$(eval $(host-python-package))
60