void-packages

Void Source Packages
git clone git://ezup.dev/void-packages.git
Log | Files | Refs | README | LICENSE

python-module.sh (3070B)


      1#
      2# This helper is for templates installing python modules.
      3#
      4
      5do_build() {
      6	: ${python_versions:="2.7 $py3_ver"}
      7	local pyver= tmp_cflags="$CFLAGS" tmp_ldflags="$LDFLAGS"
      8
      9	for pyver in $python_versions; do
     10		if [ -n "$CROSS_BUILD" ]; then
     11			CFLAGS="$tmp_cflags"
     12			LDFLAGS="$tmp_ldflags"
     13			ADDENV=
     14
     15			PYPREFIX="$XBPS_CROSS_BASE"
     16			CFLAGS+=" -I${XBPS_CROSS_BASE}/include/python${pyver} -I${XBPS_CROSS_BASE}/usr/include"
     17			LDFLAGS+=" -L${XBPS_CROSS_BASE}/lib/python${pyver} -L${XBPS_CROSS_BASE}/usr/lib"
     18			CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
     19			LDSHARED="${CC} -shared $LDFLAGS"
     20			case $pyver in
     21			3.*)
     22				for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
     23					f=${f##*/}
     24					_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
     25				done
     26				ADDENV+=" PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib}"
     27				ADDENV+=" _PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME""
     28			esac
     29			env CC="$CC" LDSHARED="$LDSHARED" $ADDENV \
     30				PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
     31				LDFLAGS="$LDFLAGS" python${pyver} setup.py \
     32					build --build-base=build-${pyver} ${make_build_args}
     33		else
     34			python${pyver} setup.py build --build-base=build-${pyver} ${make_build_args}
     35		fi
     36	done
     37}
     38
     39do_check() {
     40	: ${python_versions:="2.7 $py3_ver"}
     41
     42	for pyver in $python_versions; do
     43		ln -s build-${pyver} build
     44		if [ -z "$make_check_target" ]; then
     45			if ! python${pyver} setup.py --help test >/dev/null 2>&1; then
     46				msg_warn "No command 'test' defined by setup.py for python${pyver}.\n"
     47				rm build
     48				return 0
     49			fi
     50		fi
     51
     52		python${pyver} setup.py ${make_check_target:-test} ${make_check_args}
     53		rm build
     54	done
     55}
     56
     57do_install() {
     58	: ${python_versions:="2.7 $py3_ver"}
     59	local pyver=
     60
     61	for pyver in $python_versions; do
     62		if [ -n "$CROSS_BUILD" ]; then
     63			ADDENV=
     64			PYPREFIX="$XBPS_CROSS_BASE"
     65			CFLAGS+=" -I${XBPS_CROSS_BASE}/include/python${pyver} -I${XBPS_CROSS_BASE}/usr/include"
     66			LDFLAGS+=" -L${XBPS_CROSS_BASE}/lib/python${pyver} -L${XBPS_CROSS_BASE}/usr/lib"
     67			CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
     68			LDSHARED="${CC} -shared $LDFLAGS"
     69			case $pyver in
     70			3.*)
     71				for f in ${XBPS_CROSS_BASE}/${py3_lib}/_sysconfigdata_*; do
     72					f=${f##*/}
     73					_PYTHON_SYSCONFIGDATA_NAME=${f%.py}
     74				done
     75				ADDENV+=" PYTHONPATH=${XBPS_CROSS_BASE}/${py3_lib}"
     76				ADDENV+=" _PYTHON_SYSCONFIGDATA_NAME="$_PYTHON_SYSCONFIGDATA_NAME""
     77			esac
     78			env CC="$CC" LDSHARED="$LDSHARED" $ADDENV \
     79				PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
     80				LDFLAGS="$LDFLAGS" python${pyver} setup.py \
     81					build --build-base=build-${pyver} \
     82					install --prefix=/usr --root=${DESTDIR} ${make_install_args}
     83		else
     84			python${pyver} setup.py build --build-base=build-${pyver} \
     85				install --prefix=/usr --root=${DESTDIR} ${make_install_args}
     86		fi
     87
     88		# Rename unversioned scripts to avoid name conflicts.
     89		if [ -d ${DESTDIR}/usr/bin ]; then
     90			find ${DESTDIR}/usr/bin -type f ! -name "*[[:digit:]]" | while IFS= read -r f _; do
     91				mv "${f}" "${f}${pyver%.*}"
     92				echo "[python-module] Unversioned script renamed to '${f#$DESTDIR}${pyver%.*}'"
     93			done
     94		fi
     95	done
     96}