First step in porting MacPython modules to OSX/unix: break all references between modules except for the obj_New() and obj_Convert() routines, the PyArg_Parse and Py_BuildValue helpers.

And these can now be vectored through glue routines (by defining USE_TOOLBOX_OBJECT_GLUE) which will do the necessary imports, whereupon the module's init routine will tell the glue routine about the real conversion routine address and everything is fine again.
diff --git a/Mac/Modules/drag/Dragmodule.c b/Mac/Modules/drag/Dragmodule.c
index fa6c2d9..3ce19b7 100644
--- a/Mac/Modules/drag/Dragmodule.c
+++ b/Mac/Modules/drag/Dragmodule.c
@@ -19,6 +19,14 @@
 DragDrawingUPP dragglue_DrawingUPP;
 #endif
 
+#ifdef USE_TOOLBOX_OBJECT_GLUE
+extern PyObject *_DragObj_New(DragRef);
+extern int _DragObj_Convert(PyObject *, DragRef *);
+
+#define DragObj_New _DragObj_New
+#define DragObj_Convert _DragObj_Convert
+#endif
+
 static PyObject *Drag_Error;
 
 /* ---------------------- Object type DragObj ----------------------- */
@@ -1040,6 +1048,9 @@
 
 
 
+		PyMac_INIT_TOOLBOX_OBJECT_NEW(DragObj_New);
+		PyMac_INIT_TOOLBOX_OBJECT_CONVERT(DragObj_Convert);
+
 
 	m = Py_InitModule("Drag", Drag_methods);
 	d = PyModule_GetDict(m);