Difference between revisions of "Python"

From CBLFS
Jump to navigationJump to search
(64Bit)
Line 119: Line 119:
 
  mv -v /usr/include/python{{Python-Version}}/pyconfig{,-64}.h
 
  mv -v /usr/include/python{{Python-Version}}/pyconfig{,-64}.h
  
==== Creating a Stub Header ====
+
{{Stub-Header|pyconfig.h|/usr/include/python{{Python-Version}}}}
 
 
cat > /usr/include/python{{Python-Version}}/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/python{{Python-Version}}/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
 

Revision as of 17:29, 26 December 2006

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 (Multilib Only)

Creating a Generic Stub Header

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

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

#endif /* __STUB__PYCONFIG.H_H__ */
EOF

Creating a Stub Header For Mips

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

#include <sgidefs.h>

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

#endif /* __STUB__PYCONFIG.H_H__ */
EOF
Retrieved from "?title=Python&oldid=6395"