numpy: Fix compilation when OpenBLAS support is not enabled
authorJeffery To <jeffery.to@gmail.com>
Fri, 17 Feb 2023 03:47:15 +0000 (11:47 +0800)
committerJeffery To <jeffery.to@gmail.com>
Wed, 10 May 2023 18:46:57 +0000 (02:46 +0800)
Currently, if OpenBLAS support is not enabled, a site.cfg file is not
written and numpy will use build host paths for libraries. If the build
host has any conflicting libraries, specifically libpython3.10.a, then
compilation will fail.

This ensures site.cfg is always written with buildroot paths.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
lang/python/numpy/Makefile

index aaf9408796b118cbb96670d2fe43286e2ddebbc8..10a954da955a3eaab8158e16eb8ec3463bcbb73a 100644 (file)
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=numpy
 PKG_VERSION:=1.23.3
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PYPI_NAME:=$(PKG_NAME)
 PKG_HASH:=51bf49c0cd1d52be0a240aa66f3458afc4b95d8993d2d04f0d91fa60c10af6cd
@@ -23,6 +23,10 @@ PKG_CONFIG_DEPENDS:= \
 
 PKG_BUILD_DEPENDS:=python-cython/host
 
+# Ensure numpy does not find openblas if openblas support is not enabled
+PYTHON3_PKG_BUILD_VARS:= \
+        $(if $(CONFIG_NUMPY_OPENBLAS_SUPPORT),,NPY_BLAS_ORDER= NPY_LAPACK_ORDER= )
+
 include ../pypi.mk
 include $(INCLUDE_DIR)/package.mk
 include ../python3-package.mk
@@ -50,17 +54,18 @@ config NUMPY_OPENBLAS_SUPPORT
 endmenu
 endef
 
-ifdef CONFIG_NUMPY_OPENBLAS_SUPPORT
 define Build/Prepare/numpy-sitecfg
        echo "[DEFAULT]"                                 >  $(PKG_BUILD_DIR)/site.cfg
        echo "library_dirs = $(STAGING_DIR)/usr/lib"     >> $(PKG_BUILD_DIR)/site.cfg
        echo "include_dirs = $(STAGING_DIR)/usr/include" >> $(PKG_BUILD_DIR)/site.cfg
+
+  ifdef CONFIG_NUMPY_OPENBLAS_SUPPORT
        echo                                             >> $(PKG_BUILD_DIR)/site.cfg
        echo "[openblas]"                                >> $(PKG_BUILD_DIR)/site.cfg
        echo "libraries = openblas"                      >> $(PKG_BUILD_DIR)/site.cfg
        echo "runtime_library_dirs = /usr/lib"           >> $(PKG_BUILD_DIR)/site.cfg
+  endif
 endef
-endif
 
 define Build/Prepare
        $(call Build/Prepare/Default)