include $(TOPDIR)/rules.mk
PKG_NAME:=numpy
-PKG_VERSION:=2.1.3
+PKG_VERSION:=2.2.1
PKG_RELEASE:=1
PYPI_NAME:=$(PKG_NAME)
-PKG_HASH:=aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761
+PKG_HASH:=45681fd7128c8ad1c379f0ca0776a8b0c6583d2f69889ddac01559dfe4390918
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
PYTHON3_PKG_BUILD_VARS:= \
$(if $(CONFIG_NUMPY_OPENBLAS_SUPPORT),,NPY_BLAS_ORDER= NPY_LAPACK_ORDER= )
+MESON_USE_STAGING_PYTHON:=1
+
include ../pypi.mk
include $(INCLUDE_DIR)/package.mk
include ../python3-package.mk
+include $(INCLUDE_DIR)/meson.mk
+
+MESON_ARGS+= \
+ -Ddisable-optimization=true \
+ -Dcpu-baseline=min
+
+# Override 'Meson', to use numpy's vendored meson
+define Meson
+ $(call Python3/Run,,$(PKG_BUILD_DIR)/vendored-meson/meson/meson.py $(1),$(2))
+endef
+
+define Meson/CreateCrossFile
+ $(STAGING_DIR_HOST)/bin/sed \
+ -e "s|@CC@|$(foreach BIN,$(TARGET_CC),'$(BIN)',)|" \
+ -e "s|@CXX@|$(foreach BIN,$(TARGET_CXX),'$(BIN)',)|" \
+ -e "s|@LD@|$(foreach FLAG,$(TARGET_LINKER),'$(FLAG)',)|" \
+ -e "s|@AR@|$(TARGET_AR)|" \
+ -e "s|@STRIP@|$(TARGET_CROSS)strip|" \
+ -e "s|@NM@|$(TARGET_NM)|" \
+ -e "s|@PKGCONFIG@|$(PKG_CONFIG)|" \
+ -e "s|@CMAKE@|$(STAGING_DIR_HOST)/bin/cmake|" \
+ -e "s|@PYTHON@|$(PYTHON_BIN)|" \
+ -e "s|@CFLAGS@|$(foreach FLAG,$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS),'$(FLAG)',)|" \
+ -e "s|@CXXFLAGS@|$(foreach FLAG,$(TARGET_CXXFLAGS) $(EXTRA_CXXFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS),'$(FLAG)',)|" \
+ -e "s|@LDFLAGS@|$(foreach FLAG,$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS),'$(FLAG)',)|" \
+ -e "s|@ARCH@|$(MESON_ARCH)|" \
+ -e "s|@CPU@|$(MESON_CPU)|" \
+ -e "s|@ENDIAN@|$(if $(CONFIG_BIG_ENDIAN),big,little)|" \
+ < files/openwrt-cross.txt.in \
+ > $(1)
+ echo "longdouble_format = '$(if $(CONFIG_BIG_ENDIAN),IEEE_DOUBLE_BE,IEEE_DOUBLE_LE)'" >> $(1)
+endef
define Package/python3-numpy
SUBMENU:=Python
endmenu
endef
-ifeq ($(ARCH),x86_64)
-# FIXME: temporary fix for x86_64 with GCC 13 + musl;
-# numpy does not detect this compiler extension, so we just enable it
-TARGET_CFLAGS += -mavx512f
-endif
-
define Build/Prepare/numpy-sitecfg
echo "[DEFAULT]" > $(PKG_BUILD_DIR)/site.cfg
echo "library_dirs = $(STAGING_DIR)/usr/lib" >> $(PKG_BUILD_DIR)/site.cfg
+++ /dev/null
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -1,7 +1,7 @@
- [build-system]
--build-backend = "mesonpy"
-+#build-backend = "mesonpy"
- requires = [
-- "meson-python>=0.15.0",
-+# "meson-python>=0.15.0",
- "Cython>=3.0.6", # keep in sync with version check in meson.build
- ]
-
-@@ -181,8 +181,8 @@ select = "*-win32"
- config-settings = "setup-args=--vsenv setup-args=-Dallow-noblas=true build-dir=build"
- repair-wheel-command = ""
-
--[tool.meson-python]
--meson = 'vendored-meson/meson/meson.py'
-+#[tool.meson-python]
-+#meson = 'vendored-meson/meson/meson.py'
-
- [tool.meson-python.args]
- install = ['--tags=runtime,python-runtime,tests,devel']
-@@ -190,8 +190,8 @@ install = ['--tags=runtime,python-runtim
- [tool.spin]
- package = 'numpy'
-
--[tool.spin.meson]
--cli = 'vendored-meson/meson/meson.py'
-+#[tool.spin.meson]
-+#cli = 'vendored-meson/meson/meson.py'
-
- [tool.spin.commands]
- "Build" = [