69 lines
1.9 KiB
Bash
69 lines
1.9 KiB
Bash
|
# Following indication from: http://randomsplat.com/id5-cross-compiling-python-for-embedded-linux.html
|
||
|
source $PKG_COMMON
|
||
|
|
||
|
requires=\
|
||
|
(
|
||
|
'python/cross'
|
||
|
'bzip2/default'
|
||
|
'zlib/default'
|
||
|
)
|
||
|
|
||
|
configure()
|
||
|
{
|
||
|
cd ../Python-$version
|
||
|
echo "Configure is in $(pwd)"
|
||
|
|
||
|
# We are patching the source as python needs python to compile python for our target:
|
||
|
patch -p1 < "${cfg_package_spec_dir}/patches/Python-${version}-xcompile.patch"
|
||
|
patch -p1 < "${cfg_package_spec_dir}/patches/001-Enable-zlib-bz2.patch"
|
||
|
|
||
|
export CC="$cfg_target_canonical-gcc"
|
||
|
export CXX="$cfg_target_canonical-g++"
|
||
|
export AR="$cfg_target_canonical-ar"
|
||
|
export RANLIB="$cfg_target_canonical-ranlib"
|
||
|
|
||
|
./configure \
|
||
|
--host="${cfg_target_canonical}" \
|
||
|
--build="${cfg_host_canonical}" \
|
||
|
--prefix="${cfg_dir_toolchain_sysroot}/usr"
|
||
|
}
|
||
|
|
||
|
build()
|
||
|
{
|
||
|
cd ../Python-$version
|
||
|
|
||
|
echo "Build is in $(pwd)"
|
||
|
|
||
|
$cmd_make \
|
||
|
HOSTPYTHON="../Python-$version/hostpython" \
|
||
|
HOSTPGEN="../Python-$version/Parser/hostpgen" \
|
||
|
BLDSHARED="$cmd_target_gcc -shared" \
|
||
|
CROSS_COMPILE="$cfg_target_canonical-" \
|
||
|
CROSS_COMPILE_TARGET="yes" \
|
||
|
HOSTARCH="${cfg_target_canonical}" \
|
||
|
BUILDARCH="${cfg_host_canonical}"
|
||
|
}
|
||
|
|
||
|
host_install()
|
||
|
{
|
||
|
cd ../Python-$version
|
||
|
|
||
|
echo "Target install is in $(pwd)"
|
||
|
$cmd_make install \
|
||
|
HOSTPYTHON=./hostpython \
|
||
|
BLDSHARED="$cmd_target_cc -shared" \
|
||
|
CROSS_COMPILE="$cfg_target_canonical-" \
|
||
|
CROSS_COMPILE_TARGET=yes
|
||
|
# prefix="${cfg_dir_toolchain_sysroot}/usr"
|
||
|
}
|
||
|
|
||
|
target_install()
|
||
|
{
|
||
|
$cmd_cp "${cfg_dir_toolchain_sysroot}/usr/lib/"python* "${cfg_dir_rootfs}/usr/lib"
|
||
|
$cmd_cp "${cfg_dir_toolchain_sysroot}/usr/bin/"python* "${cfg_dir_rootfs}/usr/bin"
|
||
|
# Python needs the include files because it parse it for knowing some data...
|
||
|
$cmd_mkdir "${cfg_dir_rootfs}/usr/include/"
|
||
|
$cmd_cp "${cfg_dir_toolchain_sysroot}/usr/include/"python* "${cfg_dir_rootfs}/usr/include/"
|
||
|
}
|
||
|
|