On 27-jan-2006, at 16:38, bear wrote:

Ronald Oussoren wrote:

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.
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.

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@ ;\
                ;; \
        esac

This 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

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

Reply via email to