python: cross build support.

This commit is contained in:
Juan RP 2013-02-07 04:29:14 +01:00
parent f2a10abe0b
commit 4f0b60fb52
2 changed files with 63 additions and 41 deletions

View File

@ -1,18 +1,14 @@
# Template file for 'python-devel'.
#
depends="libffi-devel zlib-devel readline-devel bzip2-devel gdbm-devel openssl-devel expat-devel db-devel ncurses-devel sqlite-devel python>=2.7.3"
depends="libffi-devel zlib-devel readline-devel bzip2-devel gdbm-devel
openssl-devel expat-devel db-devel ncurses-devel sqlite-devel
python>=${version}"
short_desc="Python development files"
long_desc="${long_desc}
This package contains files for development, headers, static libs, etc."
do_install() {
vmkdir usr/include/python2.7
vmove "usr/bin/python*-config" usr/bin
vmove usr/lib/pkgconfig usr/lib
mv ${SRCPKGDESTDIR}/usr/include/python2.7/* \
${DESTDIR}/usr/include/python2.7
vmove "usr/include/python2.7/*" usr/include/python2.7
mv ${DESTDIR}/usr/include/python2.7/pyconfig.h \
${SRCPKGDESTDIR}/usr/include/python2.7
}

View File

@ -1,51 +1,77 @@
# Template build file for 'python'.
pkgname=python
version=2.7.3
revision=2
wrksrc="Python-$version"
distfiles="http://www.python.org/ftp/python/$version/Python-$version.tar.xz"
makedepends="libffi-devel readline-devel gdbm-devel openssl-devel
expat-devel db-devel sqlite-devel"
revision=3
wrksrc="Python-${version}"
short_desc="Interpreted, interactive, object-oriented programming language"
maintainer="Juan RP <xtraeme@gmail.com>"
homepage="http://www.python.org"
license="PSF"
distfiles="http://www.python.org/ftp/python/$version/Python-$version.tar.xz"
checksum=61d36be58e9e9c733c49d7b76858d5c08e2c63a84f2066b29d35d3521057c985
long_desc="
Python is an interpreted, interactive, object-oriented programming language
that combines remarkable power with very clear syntax. For an introduction
to programming in Python you are referred to the Python Tutorial. The Python
Library Reference documents built-in and standard types, constants, functions
and modules. Finally, the Python Reference Manual describes the syntax and
and semantics of the core language in (perhaps too) much detail.
Python's basic power can be extended with your own modules written in C or
C++. On most systems such modules may be dynamically loaded. Python is also
adaptable as an extension language for existing applications."
pycompile_dirs="usr/lib/python2.7"
subpackages="$pkgname-devel"
subpackages="${pkgname}-devel"
do_configure() {
# Enable built-in SQLite3 module to load extensions (Arch fix FS#22122)
sed -i "/SQLITE_OMIT_LOAD_EXTENSION/d" setup.py
makedepends="libffi-devel readline-devel gdbm-devel openssl-devel
expat-devel db-devel sqlite-devel bzip2-devel"
crossmakedepends="${makedepends}"
# Force posix semaphores by default, sem_open requires /dev/shm and
# it's not mounted in chroot.
export OPT="${XBPS_CFLAGS}"
./configure ${CONFIGURE_SHARED_ARGS} --with-threads \
--enable-ipv6 --with-signal-module --enable-shared \
--with-system-ffi --enable-unicode=ucs4 --with-system-expat \
--with-wctype-functions ac_cv_posix_semaphores_enabled=yes
}
# Force posix semaphores by default; sem_open requires /dev/shm and
# it's not mounted in chroot.
_confargs="--with-threads --enable-ipv6 --with-signal-module --enable-shared
--with-system-ffi --enable-unicode=ucs4 --with-system-expat
--with-wctype-functions ac_cv_posix_semaphores_enabled=yes"
do_build() {
make ${makejobs}
}
if [ -n "$XBPS_CROSS_TRIPLET" ]; then
# Don't need host makedepends.
unset makedepends
do_install() {
make DESTDIR=${DESTDIR} install
# cross build; have to build it in 2 stages: native and host.
do_build() {
# Native build
env CC=gcc LD=ld AS=as RANLIB=ranlib CFLAGS= LDFLAGS= OPT="-Os" \
./configure && make ${makejobs} python Parser/pgen || return 1
mv python hostpython
mv Parser/pgen Parser/hostpgen
make distclean
# Cross build
patch -Np1 -i ${FILESDIR}/Python-2.7.3-xcompile.patch
sed -i "/SQLITE_OMIT_LOAD_EXTENSION/d" setup.py
CFLAGS="$CFLAGS -I/usr/$XBPS_CROSS_TRIPLET/include" \
LDFLAGS="$LDFLAGS -L/usr/$XBPS_CROSS_TRIPLET/lib" \
./configure ${CONFIGURE_SHARED_ARGS} \
${_confargs} ac_cv_buggy_getaddrinfo=no || return 1
make HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen \
BLDSHARED="${XBPS_CROSS_TRIPLET}-gcc -shared" \
CROSS_COMPILE=$XBPS_CROSS_TARGET CROSS_COMPILE_TARGET=yes \
HOSTARCH=$XBPS_CROSS_TRIPLET BUILDARCH=$XBPS_MACHINE-unknown-linux-gnu \
PYTHON_XCOMPILE_DEPENDENCIES_PREFIX="/usr/$XBPS_CROSS_TRIPLET" \
${makejobs} || return 1
}
do_install() {
# cross install
make DESTDIR=${DESTDIR} HOSTPYTHON=./hostpython \
CROSS_COMPILE=$XBPS_CROSS_TARGET \
CROSS_COMPILE_TARGET=yes install
}
else
# Native build
do_configure() {
# Enable built-in SQLite3 module to load extensions (Arch fix FS#22122)
sed -i "/SQLITE_OMIT_LOAD_EXTENSION/d" setup.py
./configure ${CONFIGURE_SHARED_ARGS} ${_confargs}
}
do_build() {
make ${makejobs}
}
do_install() {
make DESTDIR=${DESTDIR} install
}
fi
post_install() {
chmod 755 ${DESTDIR}/usr/lib/libpython*.so*
install -Dm644 LICENSE ${DESTDIR}/usr/share/licenses/python/LICENSE
}