which still supports shared extensions. It takes advantage the latest
Cygwin binutils (i.e.,
20030901-1) which can export symbols from
executables:
http://cygwin.com/ml/cygwin-announce/2003-09/msg00002.html
Additionally, it finally lays to rest the following mailing list
subthread:
http://mail.python.org/pipermail/python-list/2002-May/102500.html
I tested the patch under Red Hat Linux 8.0 too
# define HAVE_DECLSPEC_DLL
#endif
-#if defined(Py_ENABLE_SHARED) /* only get special linkage if built as shared */
+/* only get special linkage if built as shared or platform is Cygwin */
+#if defined(Py_ENABLE_SHARED) || defined(__CYGWIN__)
# if defined(HAVE_DECLSPEC_DLL)
# ifdef Py_BUILD_CORE
# define PyAPI_FUNC(RTYPE) __declspec(dllexport) RTYPE
$(LN) -fsn Versions/Current/Headers $(PYTHONFRAMEWORKDIR)/Headers
$(LN) -fsn Versions/Current/Resources $(PYTHONFRAMEWORKDIR)/Resources
-# This rule builds the Cygwin Python DLL
-libpython$(VERSION).dll.a: $(LIBRARY_OBJS)
- $(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \
- $(LIBS) $(MODLIBS) $(SYSLIBS)
+# This rule builds the Cygwin Python DLL and import library if configured
+# for a shared core library; otherwise, this rule is a noop.
+$(DLLLIBRARY) libpython$(VERSION).dll.a: $(LIBRARY_OBJS)
+ if test -n "$(DLLLIBRARY)"; then \
+ $(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \
+ $(LIBS) $(MODLIBS) $(SYSLIBS); \
+ else true; \
+ fi
oldsharedmods: $(SHAREDMODS)
#! /bin/sh
-# From configure.in Revision: 1.428 .
+# From configure.in Revision: 1.429 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.57 for python 2.4.
#
BASECFLAGS="$BASECFLAGS -pic"
;;
esac
+else # shared is disabled
+ case $ac_sys_system in
+ CYGWIN*)
+ BLDLIBRARY='$(LIBRARY)'
+ LDLIBRARY='libpython$(VERSION).dll.a'
+ ;;
+ esac
fi
echo "$as_me:$LINENO: result: $LDLIBRARY" >&5
LINKFORSHARED="-Xlinker --export-dynamic"
fi;;
esac;;
+ CYGWIN*)
+ if test $enable_shared = "no"
+ then
+ LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
+ fi;;
esac
fi
echo "$as_me:$LINENO: result: $LINKFORSHARED" >&5
BASECFLAGS="$BASECFLAGS -pic"
;;
esac
+else # shared is disabled
+ case $ac_sys_system in
+ CYGWIN*)
+ BLDLIBRARY='$(LIBRARY)'
+ LDLIBRARY='libpython$(VERSION).dll.a'
+ ;;
+ esac
fi
AC_MSG_RESULT($LDLIBRARY)
LINKFORSHARED="-Xlinker --export-dynamic"
fi;;
esac;;
+ CYGWIN*)
+ if test $enable_shared = "no"
+ then
+ LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
+ fi;;
esac
fi
AC_MSG_RESULT($LINKFORSHARED)