On Jul 29, 2008, at 12:56 PM, Lupusoru, Razvan A wrote:

Hello,

I am trying to get Python 2.5.2 working for an IA32 system. The compilation is done on an Ubuntu 8.04.1 dev system. I am using a custom gcc and ld specific to the IA32 system.

This is my makefile:
##############################
BUILD_DEST = /i686-custom-kernel
CC = $(BUILD_DEST)/bin/i686-linux-gcc
CPP = $(CC) –E
CXX = $(BUILD_DEST)/bin/i686-linux-g++
LD = $(BUILD_DEST)/bin/i686-linux-ld
PYTHONINSTALLPATH = $(BUILD_DEST)/usr
Export

all:
                tar xzfv Python-2.5.2.tgz
./Python-2.5.2/configure –prefix=$ {PYTHONINSTALLPATH} –host=i686-linux –enable-shared
                cd Python-2.5.2
                make
                make install
##############################

Everything compiles correctly. I then copy the contents of the $BUILD_DEST and put them on the hard drive for my IA32 system. I basically use the contents of $BUILD_DEST as the root directory on my IA32 system. Python seems to run correctly when I run it, but when I do things like “import pysqlite”, it cannot find it. Is there anything special I have to do to relocate my python (since on my IA32 system it runs from /usr/bin/python but it originally gets created in ${BUILD_DEST}/usr/bin/python)?

You'll want to pass configure the prefix where python will ultimately be installed, otherwise the paths used during make won't make sense on the destination system. That said, pysqlite is not part of the stdlib, so your actual problem may have more to do with how you've installed it then anything. When you run python once relocated, what does os.path contain?

What we do for packaging, is run 'configure' normally and then 'make', then override some make variables for 'make install' to temporarily install it in a different place for package staging. It looks something like this:

./configure && \
make && \
make BINDIR=$(shell pwd)/path/to/tmp/bin \
     CONFINCLUDEDIR=$(shell pwd)/path/to/tmp/include \
     INCLUDEDIR=$(shell pwd)/path/to/tmp/include \
     LIBDIR=$(shell pwd)/path/to/tmp/lib \
     MANDIR=$(shell pwd)/path/to/tmp/man \
     SCRIPTDIR=$(shell pwd)/path/to/tmp/lib \
     install

Then when the package is deployed, the files are actually installed under the standard 'configure' prefix (/usr/local I think).

hth,

-Casey
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to