Edit

IABSD.fr/ports/math/py-numpy/Makefile

Branch :

  • Show log

    Commit

  • Author : sthen
    Date : 2026-05-19 09:42:33
    Hash : cdb936f8
    Message : update to py3-numpy-2.4.6

  • math/py-numpy/Makefile
  • COMMENT=	fast array and numeric programming library for Python
    
    MODPY_DISTV=	2.4.6
    DISTNAME=	numpy-${MODPY_DISTV}
    PKGNAME=	py-${DISTNAME}
    
    CATEGORIES=	math devel
    
    HOMEPAGE=	https://numpy.org/
    
    # BSD
    PERMIT_PACKAGE=	Yes
    
    COMPILER=	base-clang ports-gcc
    
    WANTLIB += ${COMPILER_LIBCXX} ${MODPY_WANTLIB} ${MODFORTRAN_WANTLIB} blas
    WANTLIB += cblas lapack m
    
    DEBUG_PACKAGES=	${BUILD_PACKAGES}
    
    MODULES=	lang/python \
    		fortran
    MODPY_PYBUILD=	mesonpy
    MODPY_PI=	Yes
    
    BUILD_DEPENDS=	devel/gas \
    		lang/cython
    
    # detected at runtime in crackfortran.py; checked at the start of run
    # but not used until later. force the dep to ensure consistent results
    # and avoid dpb junking issues.
    RUN_DEPENDS=	textproc/py-charset-normalizer
    
    TEST_DEPENDS=	${FULLPKGNAME}:${FULLPKGPATH} \
    		devel/py-hypothesis \
    		devel/py-test \
    		devel/py-test-cov \
    		devel/py-typing-extensions \
    		devel/py-tz \
    		devel/py-wheel
    
    BUILD_DEPENDS+=	${MODFORTRAN_BUILD_DEPENDS}
    LIB_DEPENDS+=	${MODFORTRAN_LIB_DEPENDS} \
    		math/lapack
    
    # Cython up to 0.28.4 used the discouraged __attribute__((optimize("Os")))
    # which caused runtime breakage on at least macppc.
    # -- see: https://marc.info/?l=openbsd-ports&m=153312266209561&w=2
    #
    # Some related Cython issues:
    #   https://github.com/cython/cython/issues/2102
    #   https://github.com/cython/cython/issues/2235
    #   https://github.com/cython/cython/issues/2494
    #
    # Cython 0.28.5 and newer switched to __attribute__((cold)).
    # Leave this disabled on macppc unless someone retests on that
    # platform.
    #
    .if ${MACHINE_ARCH} == powerpc
    CFLAGS +=	-D CYTHON_SMALL_CODE=
    .endif
    
    pre-build:
    	cp -f ${WRKSRC}/numpy/distutils/site.cfg ${WRKSRC}/site.cfg
    	ln -sf ${LOCALBASE}/bin/gas ${WRKDIR}/bin/as
    
    # numpy has both compiled-in cpu optimizations ("baseline") used on all
    # code, and also runtime-selected optimizations ("dispatch") which use
    # runtime detection (however these are not used in all codepaths).
    # the lowest level of optimization supported by numpy is what it calls
    # X86_V2 (which requires at least SSE4.2 support; 2008+ for intel, 2011+
    # for amd), so disable that completely for baseline to allow running
    # on more machines.
    
    .if ${MACHINE_ARCH} == amd64
    MODPY_PYBUILD_ARGS += -Csetup-args=-Dcpu-baseline="none"
    .endif
    
    .if ${MACHINE_ARCH} == i386
    # https://github.com/numpy/numpy/issues/20799
    # any optimisations are causing segfaults in regression tests on i386
    MODPY_PYBUILD_ARGS += -Csetup-args=-Dcpu-baseline="none"
    MODPY_PYBUILD_ARGS += -Csetup-args=-Dcpu-dispatch="none"
    .endif
    
    do-test:
    	cd ${WRKDIR} && ${MAKE_ENV} ${MODPY_BIN} -c \
    	    'import numpy ; numpy.test(verbose=2)'
    
    .include <bsd.port.mk>