Created
August 2, 2016 13:07
-
-
Save thijstriemstra/c21631ca12d2e60f0cace5509663e3cb to your computer and use it in GitHub Desktop.
Compile static C-extension with multiple source files for PyQt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -e | |
set -o pipefail | |
source ../../settings.sh | |
export PATH=$PATH:$COMPILER_ROOT | |
export CC="${PLAT}gcc -pthread" | |
export AR="${PLAT}ar rcsv" | |
echo `${PLAT}gcc --version` | |
export CFLAGS="-I${PYTHON_ARM_DIR_HOST}/include/python3.5m -I${SYSROOT}/usr/include" | |
export LDFLAGS="-L${PYTHON_ARM_DIR_HOST}/lib/python3.5 -L${SYSROOT}/lib -L${SYSROOT}/usr/lib" | |
export HOSTPYTHON=${PYTHON_ARM_DIR_HOST}/bin/hostpython | |
export SRC_DIR=build/temp.linux-x86_64-3.5/source | |
# clean | |
rm -rf build | |
echo "Cross-compiling extension..." | |
$HOSTPYTHON setup.py build_ext | |
# build static library | |
echo "Creating static library..." | |
${AR} librpigpio.a ${SRC_DIR}/py_gpio.o ${SRC_DIR}/c_gpio.o ${SRC_DIR}/cpuinfo.o ${SRC_DIR}/event_gpio.o ${SRC_DIR}/soft_pwm.o ${SRC_DIR}/py_pwm.o ${SRC_DIR}/common.o ${SRC_DIR}/constants.o | |
ranlib librpigpio.a | |
echo "Ready." | |
echo |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -e | |
set -o pipefail | |
source ../../settings.sh | |
# compile host python | |
./configure | |
make -j4 | |
cp python hostpython | |
cp Parser/pgen Parser/hostpgen | |
make distclean | |
# compile ARM python | |
export PATH=$PATH:$COMPILER_ROOT | |
# work around: configure: error: set ac_cv_file__dev_ptmx to yes/no in your CONFIG_SITE file when cross compiling | |
rm -f config.site | |
echo ac_cv_file__dev_ptmx=no > config.site | |
echo ac_cv_file__dev_ptc=no >> config.site | |
export CONFIG_SITE=config.site | |
# patch Makefile for 3.5.1 (hopefully fixed in 3.5.2, see https://bugs.python.org/issue27229) | |
cp --verbose ../../python/Makefile.pre.in . | |
# configure | |
CC=${PLAT}gcc CXX=${PLAT}g++ AR=${PLAT}ar RANLIB=${PLAT}ranlib LD=${PLAT}ld READELF=${PLAT}readelf ./configure --host=arm-linux-gnueabihf --build=x86_64-linux-gnu --prefix=${PYTHON_ARM_DIR_HOST} --disable-ipv6 | |
# build | |
make -j4 | |
# install | |
make install | |
cp hostpython ${PYTHON_ARM_DIR_HOST}/bin/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment