mirror of
https://github.com/termux-pacman/termux-packages.git
synced 2025-12-26 13:40:22 +00:00
92 lines
2.7 KiB
Bash
92 lines
2.7 KiB
Bash
TERMUX_PKG_HOMEPAGE=https://numpy.org/
|
|
TERMUX_PKG_DESCRIPTION="The fundamental package for scientific computing with Python"
|
|
TERMUX_PKG_LICENSE="BSD 3-Clause"
|
|
TERMUX_PKG_MAINTAINER="@termux"
|
|
TERMUX_PKG_VERSION="1.23.3"
|
|
TERMUX_PKG_REVISION=2
|
|
TERMUX_PKG_SRCURL=https://github.com/numpy/numpy.git
|
|
TERMUX_PKG_DEPENDS="libc++, libopenblas, python"
|
|
TERMUX_PKG_BUILD_IN_SRC=true
|
|
TERMUX_PKG_AUTO_UPDATE=true
|
|
|
|
TERMUX_PKG_RM_AFTER_INSTALL="
|
|
bin/
|
|
"
|
|
|
|
termux_step_pre_configure() {
|
|
if $TERMUX_ON_DEVICE_BUILD; then
|
|
termux_error_exit "Package '$TERMUX_PKG_NAME' is not available for on-device builds."
|
|
fi
|
|
_PYTHON_VERSION=$(. $TERMUX_SCRIPTDIR/packages/python/build.sh; echo $_MAJOR_VERSION)
|
|
}
|
|
|
|
termux_step_configure() {
|
|
termux_setup_python_crossenv
|
|
pushd $TERMUX_PYTHON_CROSSENV_SRCDIR
|
|
_CROSSENV_PREFIX=$TERMUX_PKG_BUILDDIR/python-crossenv-prefix
|
|
python${_PYTHON_VERSION} -m crossenv \
|
|
$TERMUX_PREFIX/bin/python${_PYTHON_VERSION} \
|
|
${_CROSSENV_PREFIX}
|
|
popd
|
|
. ${_CROSSENV_PREFIX}/bin/activate
|
|
|
|
LDFLAGS+=" -lpython${_PYTHON_VERSION}"
|
|
}
|
|
|
|
termux_step_make() {
|
|
build-pip install pybind11 Cython pythran wheel
|
|
DEVICE_STIE=$TERMUX_PREFIX/lib/python${_PYTHON_VERSION}/site-packages
|
|
MATHLIB="m" python setup.py install --force
|
|
}
|
|
|
|
termux_step_make_install() {
|
|
export PYTHONPATH="$DEVICE_STIE"
|
|
MATHLIB="m" python setup.py install --force --prefix $TERMUX_PREFIX
|
|
|
|
pushd $DEVICE_STIE
|
|
_NUMPY_EGGDIR=
|
|
for f in numpy-${TERMUX_PKG_VERSION}-py${_PYTHON_VERSION}-linux-*.egg; do
|
|
if [ -d "$f" ]; then
|
|
_NUMPY_EGGDIR="$f"
|
|
break
|
|
fi
|
|
done
|
|
test -n "${_NUMPY_EGGDIR}"
|
|
|
|
# XXX: Fix the EXT_SUFFIX. More investigation is needed to find the underlying cause.
|
|
pushd "${_NUMPY_EGGDIR}"
|
|
local old_suffix=".cpython-310-$TERMUX_HOST_PLATFORM.so"
|
|
local new_suffix=".cpython-310.so"
|
|
|
|
find . \
|
|
-name '*'"$old_suffix" \
|
|
-exec sh -c '_f="{}"; mv -- "$_f" "${_f%'"$old_suffix"'}'"$new_suffix"'"' \;
|
|
popd
|
|
|
|
popd
|
|
}
|
|
|
|
termux_step_post_make_install() {
|
|
# Delete the easy-install related files, since we use postinst/prerm to handle it.
|
|
pushd $TERMUX_PREFIX
|
|
rm -rf lib/python${_PYTHON_VERSION}/site-packages/__pycache__
|
|
rm -rf lib/python${_PYTHON_VERSION}/site-packages/easy-install.pth
|
|
rm -rf lib/python${_PYTHON_VERSION}/site-packages/site.py
|
|
popd
|
|
}
|
|
|
|
termux_step_create_debscripts() {
|
|
cat <<- EOF > ./postinst
|
|
#!$TERMUX_PREFIX/bin/sh
|
|
echo "Installing numpy..."
|
|
echo "./${_NUMPY_EGGDIR}" >> $TERMUX_PREFIX/lib/python${_PYTHON_VERSION}/site-packages/easy-install.pth
|
|
EOF
|
|
|
|
cat <<- EOF > ./prerm
|
|
#!$TERMUX_PREFIX/bin/sh
|
|
echo "Removing numpy..."
|
|
find $TERMUX_PREFIX/lib/python${_PYTHON_VERSION}/site-packages/$_NUMPY_EGGDIR | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf
|
|
sed -i "/\.\/${_NUMPY_EGGDIR//./\\.}/d" $TERMUX_PREFIX/lib/python${_PYTHON_VERSION}/site-packages/easy-install.pth
|
|
EOF
|
|
}
|