]> granicus.if.org Git - postgresql/commitdiff
Enable transforms modules to build and run with Mingw builds.
authorAndrew Dunstan <andrew@dunslane.net>
Sun, 3 May 2015 13:10:47 +0000 (09:10 -0400)
committerAndrew Dunstan <andrew@dunslane.net>
Sun, 3 May 2015 13:10:47 +0000 (09:10 -0400)
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.

contrib/hstore_plperl/Makefile
contrib/hstore_plpython/Makefile
contrib/ltree_plpython/Makefile

index e7fbf23871c25090d1d9d2f585a056aa3226b20c..19a8ab4493c6a2e2920f58b4b56d519836f66873 100644 (file)
@@ -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
index f5a6a882b5fb87896d2f5c640063afdb1315eff2..6125ea4d2cf22d61e8191080c5058c62206b8e99 100644 (file)
@@ -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
index c358cfa88b281a5dbf429e01d9a342e943471aeb..a0c107c2c3207f56ef7dd9af63dbeb54c460f2e0 100644 (file)
@@ -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