From Bill Myers:

Not too much later in dog-years, Bill replies: here is my process  
(tested with snapshot 20030622). I'm using Mac OS X 10.2.6 with Dec  
2002 Developer Tools and Jack Jensen's framework version of Python  
2.3b1, which accounts for the QMAKE_LFLAGS patches below. Most of the  
other changes deal with Apple's distinction between dynamic libraries  
and bundles. Basically, I manually added a target to each Makefile that  
links and installs a bundle (with .so extension as expected by python)  
alongside the dynamic libraries (in site-packages). You might be about  
to do this with the facilities that you have in build.py; I'm not smart  
enough.

== Sip ==

(1) Add near the end of siplib/siplib.pro.in:

   macx:QMAKE_LFLAGS += -framework Python

(2) python build.py

(3) Edit generated siplib/Makefile, replacing 'all' target with:

BUNDLE = libsip.so
all: Makefile.in   
/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site- 
packages/$(TARGET) $(DESTDIR)$(BUNDLE)

$(DESTDIR)$(BUNDLE): $(UICDECLS) $(OBJECTS) $(OBJMOC) $(SUBLIBS)
	-$(DEL_FILE) $(BUNDLE)
	$(LINK) -bundle -framework Python -o $(BUNDLE) $(OBJECTS) $(OBJMOC)  
$(LIBS)
	-$(DEL_FILE) $(DESTDIR)$(BUNDLE)
	-$(MOVE) $(BUNDLE) $(DESTDIR)

(4) make

(5) make install

(6) ln -s  
/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site- 
packages/libsip.10.0.1.dylib /usr/local/lib/

== PyQt ==

(1) Copy pyqt-commerical.sip into sip/

(2) Add near the bottoms of sip/qtmod.sip, sip/qtcanvasmod.sip,  
sip/qtglmod.sip, sip/qtnetworkmod.sip, sip/qtsqlmod.sip,  
sip/qttablemod.sip, sip/qtuimod.sip, sip/qtxmlmod.sip, sip/qtextmod.sip:

macx:QMAKE_LFLAGS += -framework Python

(4) Modify build.py: at line 1490, adding "darwin" case:
     if qtLib == "qte":
         plattag = "WS_QWS"
     elif sys.platform == "win32":
         plattag = "WS_WIN"
     elif sys.platform == "darwin":
         pattag = "WS_MACX"
     else:
         plattag = "WS_X11"

(5) Insert following line 804 in sip/qnamespace.sip:
%If (WS_MACX)
   typedef void * HANDLE;
%End

(6) Create sip/qwindowdefs_macx.sip

(7) python build.py

(8) Edit each generated Makefile replacing 'all' target, similar to  
this for qt/Makefile:

BUNDLE = libqtcmodule.so
all: Makefile.in   
/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site- 
packages/$(TARGET) $(DESTDIR)$(BUNDLE)

$(DESTDIR)$(BUNDLE): $(UICDECLS) $(OBJECTS) $(OBJMOC) $(SUBLIBS)
	-$(DEL_FILE) $(BUNDLE)
	$(LINK) -bundle -framework Python -o $(BUNDLE) $(OBJECTS) $(OBJMOC)  
$(LIBS)
	-$(DEL_FILE) $(DESTDIR)$(BUNDLE)
	-$(MOVE) $(BUNDLE) $(DESTDIR)

(9) make

(10) make install
