aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dunstan <andrew@dunslane.net>2015-05-03 09:10:47 -0400
committerAndrew Dunstan <andrew@dunslane.net>2015-05-03 09:10:47 -0400
commitf802c6ddba143bd88512b5fc34e84ae0b4883284 (patch)
treeb2ddb0a842ce440911aebf7047bad98eb8b5879b
parentb6b2149e48aa61981ae0199c963d5145a37c258c (diff)
downloadpostgresql-f802c6ddba143bd88512b5fc34e84ae0b4883284.tar.gz
postgresql-f802c6ddba143bd88512b5fc34e84ae0b4883284.zip
Enable transforms modules to build and run with Mingw builds.
These modules were all missing essential Windows scaffolding, including resources files and descriptions, and links to the relevant library import files. This latter item means that the modules can't be built with pgxs on Windows, as we don't install the import files. If we ever decide to install them this restriction could probably be removed. Also, as with plperl we need to make sure that perl's CORE directory is last on the include list, as on Windows it appears to contain some headers with names that clash with names of some headers we include.
-rw-r--r--contrib/hstore_plperl/Makefile15
-rw-r--r--contrib/hstore_plpython/Makefile8
-rw-r--r--contrib/ltree_plpython/Makefile8
3 files changed, 26 insertions, 5 deletions
diff --git a/contrib/hstore_plperl/Makefile b/contrib/hstore_plperl/Makefile
index e7fbf23871c..19a8ab4493c 100644
--- a/contrib/hstore_plperl/Makefile
+++ b/contrib/hstore_plperl/Makefile
@@ -1,9 +1,10 @@
# contrib/hstore_plperl/Makefile
MODULE_big = hstore_plperl
-OBJS = hstore_plperl.o
+OBJS = hstore_plperl.o $(WIN32RES)
+PGFILEDESC = "hstore_plperl - hstore transform for plperl"
-PG_CPPFLAGS = -I$(top_srcdir)/src/pl/plperl -I$(top_srcdir)/contrib/hstore -I$(perl_archlibexp)/CORE
+PG_CPPFLAGS = -I$(top_srcdir)/src/pl/plperl -I$(top_srcdir)/contrib/hstore
EXTENSION = hstore_plperl hstore_plperlu
DATA = hstore_plperl--1.0.sql hstore_plperlu--1.0.sql
@@ -22,7 +23,15 @@ include $(top_builddir)/src/Makefile.global
include $(top_srcdir)/contrib/contrib-global.mk
endif
-# see plperl
ifeq ($(PORTNAME), win32)
+# these settings are the same as for plperl
override CPPFLAGS += -DPLPERL_HAVE_UID_GID -Wno-comment
+# This means we need an in-tree build on Windows, not a pgxs build
+SHLIB_LINK += ../hstore/libhstore.a $(wildcard ../../src/pl/plperl/libperl*.a)
endif
+
+# As with plperl we need to make sure that the CORE directory is included
+# last, probably because it sometimes contains some header files with names
+# that clash with some of ours, or with some that we include, notably on
+# Windows.
+override CPPFLAGS := $(CPPFLAGS) -I$(perl_archlibexp)/CORE
diff --git a/contrib/hstore_plpython/Makefile b/contrib/hstore_plpython/Makefile
index f5a6a882b5f..6125ea4d2cf 100644
--- a/contrib/hstore_plpython/Makefile
+++ b/contrib/hstore_plpython/Makefile
@@ -1,7 +1,8 @@
# contrib/hstore_plpython/Makefile
MODULE_big = hstore_plpython$(python_majorversion)
-OBJS = hstore_plpython.o
+OBJS = hstore_plpython.o $(WIN32RES)
+PGFILEDESC = "hstore_plpython - hstore transform for plpython"
PG_CPPFLAGS = -I$(top_srcdir)/src/pl/plpython $(python_includespec) -I$(top_srcdir)/contrib/hstore
@@ -22,6 +23,11 @@ include $(top_builddir)/src/Makefile.global
include $(top_srcdir)/contrib/contrib-global.mk
endif
+ifeq ($(PORTNAME), win32)
+# This means we need an in-tree build on Windows, not a pgxs build
+SHLIB_LINK += ../hstore/libhstore.a $(wildcard ../../src/pl/plpython/libpython*.a) $(wildcard ../../src/pl/plpython/libplpython*.a)
+endif
+
REGRESS_OPTS = --load-extension=hstore
ifeq ($(python_majorversion),2)
REGRESS_OPTS += --load-extension=plpythonu --load-extension=hstore_plpythonu
diff --git a/contrib/ltree_plpython/Makefile b/contrib/ltree_plpython/Makefile
index c358cfa88b2..a0c107c2c32 100644
--- a/contrib/ltree_plpython/Makefile
+++ b/contrib/ltree_plpython/Makefile
@@ -1,7 +1,8 @@
# contrib/ltree_plpython/Makefile
MODULE_big = ltree_plpython$(python_majorversion)
-OBJS = ltree_plpython.o
+OBJS = ltree_plpython.o $(WIN32RES)
+PGFILEDESC = "ltree_plpython - ltree transform for plpython"
PG_CPPFLAGS = -I$(top_srcdir)/src/pl/plpython $(python_includespec) -I$(top_srcdir)/contrib/ltree
@@ -22,6 +23,11 @@ include $(top_builddir)/src/Makefile.global
include $(top_srcdir)/contrib/contrib-global.mk
endif
+ifeq ($(PORTNAME), win32)
+# This means we need an in-tree build on Windows, not a pgxs build
+SHLIB_LINK += $(wildcard ../../src/pl/plpython/libpython*.a)
+endif
+
REGRESS_OPTS = --load-extension=ltree
ifeq ($(python_majorversion),2)
REGRESS_OPTS += --load-extension=plpythonu --load-extension=ltree_plpythonu