On 27-jan-2006, at 16:38, bear wrote:
Ronald Oussoren wrote:Coolness - I was able to get a clean build of python for the i386 arch just now. I did have to apply a patch to Lib/plat-mac/ applesingle.py so that it would run without errors. I got the required patch from http://www.opensource.apple.com/darwinsource/ tarballs/other/python-16.tar.gz that Kevin mentioned in an earlier post to this thread.On 27-jan-2006, at 4:22, bear wrote:Ronald Oussoren wrote:That part is easy enough. If you want a framework build you'll have to patch Makefile.pre.in because it contains a hardcoded '- arch ppc' in the section that builds that actual framework. Otherwise it should just build (assuming you have an intel mac of course, cross-building from PPC to Intel will be hard because the build process assumes you'll do a native build).ok, I found the relevant part in configure (and cofigure.in) that was putting -arch_only ppc into the Makefile and I've re-run configure and it seems happy - heck, even the compiling ran error free.But when it got to the link part - I get the following error:You must replace the -arch ppc part by -arch i386. If you want to build a universal binary you'll have to replace the call to libtool by something more complex. I'll see if I can produce a patch later today.Now to build the rest of our app and see how it fairs ;)
From my Makefile.pre.in: RESSRCDIR=$(srcdir)/Mac/OSXResources/framework $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \ $(LIBRARY) \ $(RESSRCDIR)/Info.plist \ $(RESSRCDIR)/version.plist \ $(RESSRCDIR)/English.lproj/InfoPlist.strings$(INSTALL) -d -m $(DIRMODE) $(PYTHONFRAMEWORKDIR)/Versions/$ (VERSION)
case "${LDFLAGS}" in \ *"-arch i386"*"-arch ppc"*|*"-arch ppc"*"-arch i386"*) \libtool -o $(LDLIBRARY).i386 -dynamic $ (OTHER_LIBTOOL_OPT) $(LIBRARY) -arch_only i386 \
@LIBTOOL_CRUFT@ ;\libtool -o $(LDLIBRARY).ppc -dynamic $ (OTHER_LIBTOOL_OPT) $(LIBRARY) -arch_only ppc \
@LIBTOOL_CRUFT@ ;\lipo -create -output $(LDLIBRARY) -arch i386 $ (LDLIBRARY).i386 -arch ppc $(LDLIBRARY).ppc ;\
rm $(LDLIBRARY).i386 $(LDLIBRARY).ppc ;\ ;; \ *"-arch i386"*) \libtool -o $(LDLIBRARY).i386 -dynamic $ (OTHER_LIBTOOL_OPT) $(LIBRARY) -arch_only i386 \
@LIBTOOL_CRUFT@ ;\ ;; \ *"-arch ppc"*) \libtool -o $(LDLIBRARY).i386 -dynamic $ (OTHER_LIBTOOL_OPT) $(LIBRARY) -arch_only ppc \
@LIBTOOL_CRUFT@ ;\ ;; \ *) \libtool -o $(LDLIBRARY) -dynamic $ (OTHER_LIBTOOL_OPT) $(LIBRARY) -arch_only `machine` \
@LIBTOOL_CRUFT@ ;\ ;; \ esacThis is very ugly. As you have noted you can't just drop -arch ppc because libtool than assumes that you want to do a 3-way universal build. Probably because libSystem contains a ppc64 binary.
I hope to have a script for building a "batteries included" universal build of python by the end of this weekend.
Ronald
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@python.org http://mail.python.org/mailman/listinfo/pythonmac-sig