Python

From CBLFS
Revision as of 05:13, 26 December 2006 by Kalessin (talk | contribs) (I added a note about the test suite.)
Jump to navigationJump to search
Download Source: http://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.bz2
Required Patch: http://svn.cross-lfs.org/svn/repos/patches/Python/Python-2.7.8-gdbm-1.patch
Required Patch (For Multilib): http://svn.cross-lfs.org/svn/repos/patches/Python/Python-2.7.8-multilib-1.patch

Introduction to Python

The Python package contains the Python development environment. This is useful for object-oriented programming, writing scripts, prototyping large programs or developing entire applications.

Dependencies

Optional

Non-Multilib

Note:
It appears that if you want to run the test suites (make test),
you need to install the package first, otherwise it is unable to
locate the appropriate python modules to run the tests.


Compile the package:

patch -Np1 -i ../Python-2.7.8-gdbm-1.patch &&
./configure --prefix=/usr --enable-shared &&
make

Install the package

make install

Multilib

32Bit

Compile the package:

patch -Np1 -i ../Python-2.7.8-gdbm-1.patch &&
CC="gcc ${BUILD32}" CXX="g++ ${BUILD32}" ./configure --prefix=/usr \
    --enable-shared &&
make

Install the package

make install &&
mv -v /usr/bin/python{,-32} &&
mv -v /usr/bin/python2.7.8{,-32} &&
mv -v /usr/include/python2.7.8/pyconfig{,-32}.h

N32

Change the libdir that Python is going to use to lib32:

patch -Np1 -i ../Python-2.7.8-multilib-1.patch
sed -i -e "s:@@MULTILIB_DIR@@:lib32:g" \
        Lib/distutils/command/install.py \
        Lib/distutils/sysconfig.py \
        Lib/site.py \
        Makefile.pre.in \
        Modules/Setup.dist \
        Modules/getpath.c \
        setup.py

Compile the package:

patch -Np1 -i ../Python-2.7.8-gdbm-1.patch &&
CC="gcc ${BUILDN32}" CXX="g++ ${BUILDN32}" ./configure --prefix=/usr \
    --libdir=/usr/lib32 --enable-shared &&
make

Install the package

make install &&
mv -v /usr/bin/python{,-n32} &&
mv -v /usr/bin/python2.7.8{,-n32} &&
mv -v /usr/include/python2.7.8/pyconfig{,-n32}.h

64Bit

Change the libdir that Python is going to use to lib64:

patch -Np1 -i ../Python-2.7.8-multilib-1.patch
sed -i -e "s:@@MULTILIB_DIR@@:lib64:g" \
        Lib/distutils/command/install.py \
        Lib/distutils/sysconfig.py \
        Lib/site.py \
        Makefile.pre.in \
        Modules/Setup.dist \
        Modules/getpath.c \
        setup.py

Compile the package:

patch -Np1 -i ../Python-2.7.8-gdbm-1.patch &&
CC="gcc ${BUILD64}" CXX="g++ ${BUILD64}" ./configure --prefix=/usr \
    --libdir=/usr/lib64 --enable-shared &&
make

Install the package

make install &&
mv -v /usr/bin/python{,-64} &&
mv -v /usr/bin/python2.7.8{,-64} &&
ln -sfv multiarch_wrapper /usr/bin/python &&
ln -sfv multiarch_wrapper /usr/bin/python2.4 &&
mv -v /usr/include/python2.7.8/pyconfig{,-64}.h

Creating a Stub Header

cat > /usr/include/python2.7.8/pyconfig.h << "EOF"
/* pyconfig.h.  Stub Header  */
#ifndef __STUB__PYCONFIG_H__
#define __STUB__PYCONFIG_H__

#if defined(__x86_64) || \
    defined(__sparc64__) || \
    defined(__arch64__) || \
    defined(__powerpc64__) || \
    defined (__s390x__)
# include "pyconfig-64.h"
#else
# include "pyconfig-32.h"
#endif

#endif /* __STUB__PYCONFIG_H__ */
EOF

Creating a Stub Header For Mips

cat > /usr/include/python2.7.8/pyconfig.h << "EOF"
/* pyconfig.h.  Stub Header  */
#ifndef __STUB__PYCONFIG_H__
#define __STUB__PYCONFIG_H__

#include <sgidefs.h>

#if (_MIPS_SIM == _ABIO32)
# include "pyconfig-32.h"
#elif (_MIPS_SIM == _ABIN32)
# include "pyconfig-n32.h"
#elif (_MIPS_SIM == _ABI64)
# include "pyconfig-64.h"
#endif

#endif /* __STUB__PYCONFIG_H__ */
EOF