3 echo "##########################################################################"
5 echo "##########################################################################"
7 if [ ${#VERSION} -lt 5 ]
9 echo "ERROR : VERSION argument of Python compilation script has not the expected x.y.z format"
12 PYTHON_VERSION="${VERSION:0:3}"
13 PYTHON_VERSION_MAJ=${PYTHON_VERSION:0:1}
16 function version_ge() { test "$(echo "$@" | tr " " "\n" | sort -rV | head -n 1)" == "$1"; }
17 if version_ge $VERSION "3.6"; then
18 echo "*** Python version is newer than version 3.6 ..."
19 # --enable-shared : enable building shared python library
20 # --with-threads : enable thread support
21 # --without-pymalloc: disable specialized mallocs
22 # --with-ensurepip : installation using bundled pip
23 # --enable-optimizations: recommandé et utilisé par Nijni -> mais trop long!
24 CONFIGURE_ARGUMENTS="--enable-shared --with-threads --without-pymalloc --with-ensurepip=install"
26 echo "*** Python version is older than version 3.6 ..."
27 CONFIGURE_ARGUMENTS="--enable-shared --with-threads --without-pymalloc --enable-unicode=ucs4"
31 echo "*** configure --prefix=$PRODUCT_INSTALL $CONFIGURE_ARGUMENTS"
32 $SOURCE_DIR/configure --prefix=$PRODUCT_INSTALL $CONFIGURE_ARGUMENTS
35 echo "ERROR on configure"
40 echo "*** make" $MAKE_OPTIONS
49 echo "*** make install"
53 echo "ERROR on make install"
57 if [ ${PYTHON_VERSION_MAJ} == 3 ]
59 # OP trick for Python 3.6.1
60 #cd ${PRODUCT_INSTALL}/lib/python${PYTHON_VERSION}/config-${PYTHON_VERSION}
61 cd ${PRODUCT_INSTALL}/lib/python${PYTHON_VERSION}/config-${PYTHON_VERSION}*
63 cd ${PRODUCT_INSTALL}/lib/python${PYTHON_VERSION}/config
66 if [ ! -e libpython${PYTHON_VERSION}.so ]
69 echo "*** create missing link"
70 ln -sf ../../libpython${PYTHON_VERSION}.so .
73 echo "ERROR when creating missing link"
77 if [ ${PYTHON_VERSION_MAJ} == 3 ]
79 cd ${PRODUCT_INSTALL}/bin
84 if version_ge $VERSION "3.6"; then
85 L="2to3 2to3-3.6 easy_install-3.6 idle3 idle3.6 pip3 pip3.6 pydoc3 pydoc3.6 pyvenv pyvenv-3.6"
86 cd ${PRODUCT_INSTALL}/bin
88 awk '$0 = NR==1 ? replace : $0' replace="#!/usr/bin/env python3" $f > $f.t && mv $f.t $f && chmod 755 $f