| # Maintainer: Alexey Pavlov <alexpux@gmail.com> |
| # Contributor: Ray Donnelly <mingw.android@gmail.com> |
| # Contributor: Duong Pham <dthpham@gmail.com> |
| |
| _realname=numpy |
| pkgbase=mingw-w64-python-${_realname} |
| pkgname=("${MINGW_PACKAGE_PREFIX}-python-${_realname}") |
| provides=("${MINGW_PACKAGE_PREFIX}-python3-${_realname}") |
| conflicts=("${MINGW_PACKAGE_PREFIX}-python3-${_realname}") |
| replaces=("${MINGW_PACKAGE_PREFIX}-python3-${_realname}") |
| pkgver=1.21.0 |
| pkgrel=1 |
| pkgdesc="Scientific tools for Python (mingw-w64)" |
| arch=('any') |
| mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64') |
| license=('BSD') |
| url="https://www.numpy.org/" |
| makedepends=("${MINGW_PACKAGE_PREFIX}-cython" |
| "${MINGW_PACKAGE_PREFIX}-openblas" |
| "${MINGW_PACKAGE_PREFIX}-python-setuptools" |
| "${MINGW_PACKAGE_PREFIX}-python-pytest" |
| "${MINGW_PACKAGE_PREFIX}-gcc-fortran") |
| depends=("${MINGW_PACKAGE_PREFIX}-openblas" |
| "${MINGW_PACKAGE_PREFIX}-python") |
| optdepends=("${MINGW_PACKAGE_PREFIX}-python-pytest: testsuite") |
| #options=('!strip' 'debug') |
| source=(https://github.com/numpy/numpy/releases/download/v${pkgver}/${_realname}-${pkgver}.tar.gz |
| 0001-detect-mingw-environment.patch |
| 0002-fix-finding-python2.patch |
| 0003-gfortran-better-version-check.patch |
| 0004-fix-testsuite.patch |
| 0005-mincoming-stack-boundary-32bit-optimized-64bit.patch |
| 0006-disable-visualcompaq-for-mingw.patch |
| 0007-disable-64bit-experimental-warning.patch |
| 0008-mingw-gcc-doesnt-support-visibility.patch |
| 0009-disable-old-mingw-stuff.patch |
| 0010-mingw-inline-stuff.patch) |
| sha256sums=('b662c841b29848c04d9134f31dbaa7d4c8e673f45bb3a5f28d02f49c424d558a' |
| '94f111ab238c4a82e8613ed14e4cbeb553eabff26523f576e5fcafdbfdc8ee29' |
| '3aacb1d92e7764c9f0f24afa1a97b136a069fcd81d63c9fa55565c40c5a29974' |
| '2679482ce9396b551e1e1e7674f373d139b3e8a2f9729026000dd3c581de41d7' |
| 'a9023ca3ba0d4b444ef490ca9fa145896d24f34bb271676adf538d5da7546725' |
| 'd2d7b83114e87f45656d9523f5536511bf16d5a54a4f3bfa852c5631651019f5' |
| 'fcacffaae853de592224bc51f1ecb3e617f2fc518d05373e1310aeabdf097254' |
| 'cafc924fd11d8653a49970d0cce5b31869cce0e8996a3ae57bcbccca96bc8eb3' |
| 'c7222c3cd85ff6af515514c5c3b8f3c02144c58c1373dec16683fa455504aa69' |
| '22ca44e7f5d01b2bcb805251f5964026e92c55400d4c17055e10268bdc93849e' |
| 'ffa3eb1b65ffeb1aece369e2e3e56092013c0a0b64c67e6166cece622e526ff3') |
| |
| prepare() { |
| cd ${_realname}-${pkgver} |
| patch -Np1 -i ${srcdir}/0001-detect-mingw-environment.patch |
| patch -Np1 -i ${srcdir}/0002-fix-finding-python2.patch |
| patch -Np1 -i ${srcdir}/0003-gfortran-better-version-check.patch |
| patch -Np1 -i ${srcdir}/0004-fix-testsuite.patch |
| # Note, -mincoming-stack-boundary (and the other flags set) doesn't get used except |
| # in a test compilation, AFAICT. |
| patch -Np1 -i ${srcdir}/0005-mincoming-stack-boundary-32bit-optimized-64bit.patch |
| patch -Np1 -i ${srcdir}/0006-disable-visualcompaq-for-mingw.patch |
| patch -Np1 -i ${srcdir}/0007-disable-64bit-experimental-warning.patch |
| patch -Np1 -i ${srcdir}/0008-mingw-gcc-doesnt-support-visibility.patch |
| patch -Np1 -i ${srcdir}/0009-disable-old-mingw-stuff.patch |
| patch -Np1 -i ${srcdir}/0010-mingw-inline-stuff.patch |
| cd .. |
| |
| cp -a ${_realname}-${pkgver} ${_realname}-py-${CARCH} |
| } |
| |
| build() { |
| export ATLAS=None |
| export LDFLAGS="$LDFLAGS -shared" |
| # See: https://sourceforge.net/p/mingw-w64/mailman/message/36287627/ |
| export CFLAGS="$CFLAGS -fno-asynchronous-unwind-tables" |
| |
| cd ${_realname}-py-${CARCH} |
| MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ |
| ${MINGW_PREFIX}/bin/python setup.py config_fc --fcompiler=gnu95 build |
| } |
| |
| package() { |
| _pyver=$(${MINGW_PREFIX}/bin/python -c "import sys;sys.stdout.write('.'.join(map(str, sys.version_info[:2])))") |
| _pyinc=${_pyver} |
| |
| export ATLAS=None |
| export LDFLAGS="$LDFLAGS -shared" |
| export CFLAGS="$CFLAGS -fno-asynchronous-unwind-tables" |
| |
| cd ${_realname}-py-${CARCH} |
| MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \ |
| ${MINGW_PREFIX}/bin/python setup.py config_fc --fcompiler=gnu95 install --prefix=${MINGW_PREFIX} --root="${pkgdir}" --optimize=1 |
| |
| install -Dm644 LICENSE.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/python-${_realname}/LICENSE.txt |
| |
| install -m755 -d "${pkgdir}${MINGW_PREFIX}/include/python${_pyinc}" |
| cp -rf ${pkgdir}${MINGW_PREFIX}/lib/python${_pyver}/site-packages/${_realname}/core/include/${_realname} "${pkgdir}${MINGW_PREFIX}/include/python${_pyinc}/" |
| |
| # fix python command in files |
| local _mingw_prefix=$(cygpath -am ${MINGW_PREFIX}) |
| for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do |
| sed -e "s|${_mingw_prefix}/bin/|/usr/bin/env |g" -i ${_f} |
| done |
| } |