Index: config/python.m4
===================================================================
RCS file: /projects/cvsroot/pgsql-server/config/python.m4,v
retrieving revision 1.8
diff -c -r1.8 python.m4
*** config/python.m4	16 Sep 2004 23:30:30 -0000	1.8
--- config/python.m4	26 Sep 2004 14:28:56 -0000
***************
*** 34,48 ****
  python_prefix=`${PYTHON} -c "import sys; print sys.prefix"`
  python_execprefix=`${PYTHON} -c "import sys; print sys.exec_prefix"`
  python_configdir=`${PYTHON} -c "from distutils.sysconfig import get_python_lib as f; import os; print os.path.join(f(plat_specific=1,standard_lib=1),'config')"`
! python_includespec="-I${python_prefix}/include/python${python_version}"
! if test "$python_prefix" != "$python_execprefix"; then
!   python_includespec="-I${python_execprefix}/include/python${python_version} $python_includespec"
! fi
  
  AC_SUBST(python_prefix)[]dnl
  AC_SUBST(python_execprefix)[]dnl
  AC_SUBST(python_configdir)[]dnl
  AC_SUBST(python_includespec)[]dnl
  # This should be enough of a message.
  if test "$python_prefix" != "$python_execprefix"; then
    AC_MSG_RESULT([$python_prefix/lib/python${python_version} and $python_execprefix/lib/python${python_version}])
--- 34,46 ----
  python_prefix=`${PYTHON} -c "import sys; print sys.prefix"`
  python_execprefix=`${PYTHON} -c "import sys; print sys.exec_prefix"`
  python_configdir=`${PYTHON} -c "from distutils.sysconfig import get_python_lib as f; import os; print os.path.join(f(plat_specific=1,standard_lib=1),'config')"`
! python_includespec=`${PYTHON} -c "import distutils.sysconfig; print '-I'+distutils.sysconfig.get_python_inc()"`
  
  AC_SUBST(python_prefix)[]dnl
  AC_SUBST(python_execprefix)[]dnl
  AC_SUBST(python_configdir)[]dnl
  AC_SUBST(python_includespec)[]dnl
+ AC_SUBST(python_version)[]dnl
  # This should be enough of a message.
  if test "$python_prefix" != "$python_execprefix"; then
    AC_MSG_RESULT([$python_prefix/lib/python${python_version} and $python_execprefix/lib/python${python_version}])
***************
*** 54,77 ****

  # PGAC_CHECK_PYTHON_EMBED_SETUP
  # -----------------------------
- # Courtesy of the INN 2.3.1 package...
  AC_DEFUN([PGAC_CHECK_PYTHON_EMBED_SETUP],
  [AC_REQUIRE([_PGAC_CHECK_PYTHON_DIRS])
  AC_MSG_CHECKING([how to link an embedded Python application])

! if test ! -f "$python_configdir/Makefile"; then
!   AC_MSG_RESULT(no)
!   AC_MSG_ERROR([Python Makefile not found])
! fi
!
! _python_libs=`grep '^LIBS=' $python_configdir/Makefile | sed 's/^.*=//'`
! _python_libc=`grep '^LIBC=' $python_configdir/Makefile | sed 's/^.*=//'`
! _python_libm=`grep '^LIBM=' $python_configdir/Makefile | sed 's/^.*=//'`
! _python_liblocalmod=`grep '^LOCALMODLIBS=' $python_configdir/Makefile | sed 's/^.*=//'`
! _python_libbasemod=`grep '^BASEMODLIBS=' $python_configdir/Makefile | sed 's/^.*=//'`
!
! pgac_tab="	" # tab character
! python_libspec=`echo X"-L$python_configdir $_python_libs $_python_libc $_python_libm -lpython$python_version $_python_liblocalmod $_python_libbasemod" | sed -e 's/^X//' -e "s/[[ $pgac_tab]][[ $pgac_tab]]*/ /g"`

  AC_MSG_RESULT([${python_libspec}])

--- 52,62 ----

  # PGAC_CHECK_PYTHON_EMBED_SETUP
  # -----------------------------
  AC_DEFUN([PGAC_CHECK_PYTHON_EMBED_SETUP],
  [AC_REQUIRE([_PGAC_CHECK_PYTHON_DIRS])
  AC_MSG_CHECKING([how to link an embedded Python application])

! python_libspec=`${PYTHON} -c "import distutils.sysconfig,string;print string.join(filter(None,distutils.sysconfig.get_config_vars('LIBS','LIBC','LIBM','LOCALMODLIBS','BASEMODLIBS')))"`

  AC_MSG_RESULT([${python_libspec}])

Index: src/Makefile.global.in
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/Makefile.global.in,v
retrieving revision 1.195
diff -c -r1.195 Makefile.global.in
*** src/Makefile.global.in	18 Sep 2004 13:28:54 -0000	1.195
--- src/Makefile.global.in	26 Sep 2004 14:30:14 -0000
***************
*** 137,142 ****
--- 137,143 ----
  python_includespec	= @python_includespec@
  python_libspec		= @python_libspec@
  python_configdir	= @python_configdir@
+ python_version		= @python_version@

  krb_srvtab = @krb_srvtab@

Index: src/pl/plpython/Makefile
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/pl/plpython/Makefile,v
retrieving revision 1.14
diff -c -r1.14 Makefile
*** src/pl/plpython/Makefile	24 Sep 2004 20:08:42 -0000	1.14
--- src/pl/plpython/Makefile	26 Sep 2004 14:45:26 -0000
***************
*** 12,17 ****
--- 12,23 ----
  shared_libpython = yes
  endif

+ # Convert backslashed paths to normal slashes
+ ifeq ($(PORTNAME), win32)
+ shared_libpython = yes
+ python_includespec := $(subst \,/,$(python_includespec))
+ endif
+
  # Darwin (OS X) has its own ideas about how to do this.
  ifeq ($(PORTNAME), darwin)
  shared_libpython = yes
***************
*** 30,35 ****
--- 36,56 ----
  SO_MINOR_VERSION = 0
  OBJS = plpython.o

+
+ # Python on win32 ships with import libraries only for Microsoft Visual C++,
+ # which are not compatible with mingw gcc. Therefore we need to build a
+ # new import library to link with.
+ ifeq ($(PORTNAME), win32)
+ pytverstr=$(subst .,,${python_version})
+ OBJS += libpython${pytverstr}.a
+ libpython${pytverstr}.a: python${pytverstr}.def
+ 	dlltool --dllname python${pytverstr}.dll --def python${pytverstr}.def --output-lib  libpython${pytverstr}.a
+ WD=$(subst \,/,$(WINDIR))
+ python${pytverstr}.def: $(WD)/system32/python${pytverstr}.dll
+ 	pexports $(WD)/system32/python${pytverstr}.dll > python${pytverstr}.def
+ endif
+
+
  SHLIB_LINK = $(BE_DLLLIBS) $(python_libspec)

  include $(top_srcdir)/src/Makefile.shlib
***************
*** 55,60 ****
--- 76,84 ----
  clean distclean maintainer-clean: clean-lib
  	rm -f $(OBJS)
  	@rm -f error.diff feature.diff error.output feature.output test.log
+ ifeq ($(PORTNAME), win32)
+ 	rm -f python${pytverstr}.def
+ endif

  installcheck:
  	PATH=$(bindir):$$PATH $(SHELL) $(srcdir)/test.sh
