diff --git a/Makefile.pre.in b/Makefile.pre.in index c6a053ebe24..7fd60a118a3 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -138,6 +138,7 @@ MAINOBJ= @MAINOBJ@ LIBOBJS= @LIBOBJS@ DLINCLDIR= @DLINCLDIR@ DYNLOADFILE= @DYNLOADFILE@ +MACHDEP_OBJS= @MACHDEP_OBJS@ PYTHON= python$(EXE) @@ -222,6 +223,7 @@ PYTHON_OBJS= \ Python/traceback.o \ Python/getopt.o \ Python/$(DYNLOADFILE) \ + $(MACHDEP_OBJS) \ $(LIBOBJS) @@ -411,6 +413,8 @@ Objects/object.o: $(srcdir)/Objects/object.c $(srcdir)/Objects/obmalloc.c Objects/unicodectype.o: $(srcdir)/Objects/unicodectype.c \ $(srcdir)/Objects/unicodetype_db.h +Mac/Python/macglue.o: $(srcdir)/Mac/Python/macglue.c + $(CC) -c $(CFLAGS) $(CPPFLAGS) -I$(srcdir)/Mac/Include -I$(srcdir)/Python -o $@ $(srcdir)/Mac/Python/macglue.c ############################################################################ # Header files diff --git a/config.h.in b/config.h.in index 6753327247a..18c62117b4a 100644 --- a/config.h.in +++ b/config.h.in @@ -229,6 +229,9 @@ (shared library plus accessory files). */ #undef WITH_NEXT_FRAMEWORK +/* Define if you want to use MacPython modules on MacOSX in unix-Python */ +#undef USE_TOOLBOX_OBJECT_GLUE + /* Define if you want to use SGI (IRIX 4) dynamic linking. This requires the "dl" library by Jack Jansen, ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z. diff --git a/configure.in b/configure.in index 890aae2bd05..561c10493c8 100644 --- a/configure.in +++ b/configure.in @@ -677,7 +677,7 @@ then # crt1.o) gets erroneously defined as common, which breaks dynamic # loading of any modules which reference it in System.framework next/4*|next/5*) LINKFORSHARED="-u __dummy -framework System" ;; - Darwin/*) LINKFORSHARED="-u __dummy -framework System -framework Foundation" ;; + Darwin/*) LINKFORSHARED="-u __dummy -u _PyMac_Error -framework System -framework Foundation -framework Carbon" ;; UnixWare*) LINKFORSHARED="-dy -Bdynamic -Wl,-Bexport";; SCO_SV*) LINKFORSHARED="-Bdynamic -dy -Wl,-Bexport";; ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";; @@ -997,6 +997,22 @@ then AC_DEFINE(HAVE_DYNAMIC_LOADING) fi +# MACHDEP_OBJS can be set to platform-specific object files needed by Python + +AC_SUBST(MACHDEP_OBJS) +AC_MSG_CHECKING(MACHDEP_OBJS) +if test -z "$MACHDEP_OBJS" +then + case $ac_sys_system/$ac_sys_release in + Darwin/*) + MACHDEP_OBJS="Mac/Python/macglue.o" + AC_DEFINE(USE_TOOLBOX_OBJECT_GLUE) + ;; + *) MACHDEP_OBJS="";; + esac +fi +AC_MSG_RESULT($DYNLOADFILE) + # checks for library functions AC_CHECK_FUNCS(alarm chown clock confstr ctermid ctermid_r execv \ flock fork fsync fdatasync fpathconf ftime ftruncate \