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 # spns #30153 : pymalloc on demand
25 CONFIGURE_ARGUMENTS="--enable-shared --with-threads --with-ensurepip=install --with-ssl --enable-loadable-sqlite-extensions"
26 if [ "${SAT_ENABLE_PYTHON_PYMALLOC}" == "1" ]; then
27 CONFIGURE_ARGUMENTS+=" --with-pymalloc"
29 CONFIGURE_ARGUMENTS+=" --without-pymalloc"
32 echo "*** Python version is older than version 3.6 ..."
33 CONFIGURE_ARGUMENTS="--enable-shared --with-threads --without-pymalloc --enable-unicode=ucs4"
37 echo "*** configure --prefix=$PRODUCT_INSTALL $CONFIGURE_ARGUMENTS"
38 $SOURCE_DIR/configure --prefix=$PRODUCT_INSTALL $CONFIGURE_ARGUMENTS
41 echo "ERROR on configure"
46 echo "*** make" $MAKE_OPTIONS
55 echo "*** make install"
59 echo "ERROR on make install"
63 if [ ${PYTHON_VERSION_MAJ} == 3 ]
65 # OP trick for Python 3.6.1
66 #cd ${PRODUCT_INSTALL}/lib/python${PYTHON_VERSION}/config-${PYTHON_VERSION}
67 cd ${PRODUCT_INSTALL}/lib/python${PYTHON_VERSION}/config-${PYTHON_VERSION}*
69 cd ${PRODUCT_INSTALL}/lib/python${PYTHON_VERSION}/config
72 if [ ! -e libpython${PYTHON_VERSION}.so ]
75 echo "*** create missing link"
76 ln -sf ../../libpython${PYTHON_VERSION}.so .
79 echo "ERROR when creating missing link"
83 if [ ${PYTHON_VERSION_MAJ} == 3 ]
85 cd ${PRODUCT_INSTALL}/bin
89 if [ "${SAT_ENABLE_PYTHON_PYMALLOC}" == "1" ]; then
90 cd ${PRODUCT_INSTALL}/include
91 if [ ! -d python3.6 ]; then
92 ln -s python3.6m python3.6
98 if version_ge $VERSION "3.6"; then
99 L="2to3 2to3-3.6 easy_install-3.6 idle3 idle3.6 pip3 pip3.6 pydoc3 pydoc3.6 pyvenv pyvenv-3.6"
100 cd ${PRODUCT_INSTALL}/bin
102 awk '$0 = NR==1 ? replace : $0' replace="#!/usr/bin/env python3" $f > $f.t && mv $f.t $f && chmod 755 $f
107 echo "########## END"