[Distutils] cross compiling using setuptools

Venkat Bommakanti venkatbo at yahoo.com
Sun Oct 8 03:57:12 CEST 2006


Hi folks,

I have a need to cross compile (i686 linux build system -> ppc linux target system) some py/C source pkgs:
    . RuleDispatch-0.5a0.dev-r2115.tar.gz
    . cElementTree-1.0.5-20051216.zip
    . PyProtocols-1.0a0dev_r2082.zip
    . Cheetah-2.0rc7.tar.gz
to generate target-specific eggs... Actually, all are a part of TurboGears (TG).

I was able to download all the comps to a local directory (i686 linux with python 2.4.2 compiled from sources, w/zlib enabled). Now,
   . while in the download dir (curr-dir - .),
   . with PYTHONPATH that includes "<my-i686-root>/usr/lib/python2.4/site-packages", and 
   . with a command like:
        "easy_install --prefix=<my-i686-root>/usr -s <my-i686-root>/usr/bin -f . TurboGears"
I'm able to build the native i686 target and deploy the i686 eggs to :
   <my-i686-root>/usr/lib/python2.4/site-packages
just fine... No problem there.

Assuming I can use setuptools as-is and "easy_install ..." invoke syntax like above - for the cross build (ppc target), how would I specify the options meant for:
   . setup.py (of each of the above comps):

       . -c (cross-gcc)
       . bdest_egg (setuptools):
          .  --dist-dir
          .  --plat-name
          .  exclude-source
in the "easy_install ..." command. I read:
  http://peak.telecommunity.com/DevCenter/setuptools#bdist-egg-create-a-python-egg-for-the-project
but its unclear how the above options are passed on to "easy_install ...".

I realize that I'd have to use a PYTHONPATH that includes something like:
   "<my-ppc-root>/usr/lib/python2.4/site-packages"
for the ppc-target, so it doesn't complain about the:
   "bad install directory or PYTHONPATH"
error... Also, 'am assuming its not a problem to include a path to ppc-eggs in the PYTHONPATH setting, before invoking the "easy_install ..." command for the cross compile.

As an aside, would also like to know how I could enable the creation of target-specific .pyc files, in such a cross-compile scenario. I was able to build python itself in a cross compile (i686 build system -> ppc target system) mode, but the .pyc it generates appear to be i686-specific ones and not ppc-ones... when deployed to the ppc-system, it complains about the "bad magic number" error...

Much appreciate any help. Thanks.
/venkat







More information about the Distutils-SIG mailing list