From eb915caf92a6805740e949c3233ee32bc9676484 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Thu, 8 May 2008 16:49:37 +0000
Subject: [PATCH] Fix contrib/xml2 makefile to not override CFLAGS, and in
 passing make it auto-configure properly for libxslt present or not.

---
 contrib/Makefile         |  4 +---
 contrib/xml2/Makefile    | 10 +++-------
 contrib/xml2/xslt_proc.c |  2 +-
 doc/src/sgml/xml2.sgml   |  6 ++----
 4 files changed, 7 insertions(+), 15 deletions(-)

diff --git a/contrib/Makefile b/contrib/Makefile
index c55c95ccf01..b9453dad7e7 100644
--- a/contrib/Makefile
+++ b/contrib/Makefile
@@ -1,4 +1,4 @@
-# $PostgreSQL: pgsql/contrib/Makefile,v 1.82 2007/11/13 21:04:45 tgl Exp $
+# $PostgreSQL: pgsql/contrib/Makefile,v 1.83 2008/05/08 16:49:36 tgl Exp $
 
 subdir = contrib
 top_builddir = ..
@@ -46,10 +46,8 @@ WANTED_DIRS += uuid-ossp
 endif
 
 ifeq ($(with_libxml),yes)
-ifeq ($(with_libxslt),yes)
 WANTED_DIRS += xml2
 endif
-endif
 
 # Missing:
 #		start-scripts	\ (does not have a makefile)
diff --git a/contrib/xml2/Makefile b/contrib/xml2/Makefile
index 0f9c51b116c..b96defa5d60 100644
--- a/contrib/xml2/Makefile
+++ b/contrib/xml2/Makefile
@@ -1,18 +1,14 @@
-# $PostgreSQL: pgsql/contrib/xml2/Makefile,v 1.11 2007/11/10 23:59:52 momjian Exp $
+# $PostgreSQL: pgsql/contrib/xml2/Makefile,v 1.12 2008/05/08 16:49:37 tgl Exp $
 
 MODULE_big = pgxml
 
-# Remove xslt_proc.o from the following line if you don't have libxslt
-OBJS = xpath.o xslt_proc.o
+OBJS = $(if $(filter -lxslt, $(LIBS)), xpath.o xslt_proc.o, xpath.o)
 
-# Remove -lxslt from the following line if you don't have libxslt.
-SHLIB_LINK = -lxslt -lxml2
+SHLIB_LINK += $(filter -lxslt, $(LIBS)) $(filter -lxml2, $(LIBS))
 
 DATA_built = pgxml.sql
 DATA = uninstall_pgxml.sql
 
-override CFLAGS += $(shell xml2-config --cflags)
-
 ifdef USE_PGXS
 PG_CONFIG = pg_config
 PGXS := $(shell $(PG_CONFIG) --pgxs)
diff --git a/contrib/xml2/xslt_proc.c b/contrib/xml2/xslt_proc.c
index f4981924260..b2349aaace7 100644
--- a/contrib/xml2/xslt_proc.c
+++ b/contrib/xml2/xslt_proc.c
@@ -119,7 +119,7 @@ xslt_process(PG_FUNCTION_ARGS)
 	if (resstat < 0)
 		PG_RETURN_NULL();
 
-	PG_RETURN_TEXT_P(cstring_to_text_with_len(resstr, reslen));
+	PG_RETURN_TEXT_P(cstring_to_text_with_len((char *) resstr, reslen));
 }
 
 
diff --git a/doc/src/sgml/xml2.sgml b/doc/src/sgml/xml2.sgml
index 96f8b18d876..b1caba0a554 100644
--- a/doc/src/sgml/xml2.sgml
+++ b/doc/src/sgml/xml2.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/xml2.sgml,v 1.4 2007/12/06 04:12:10 tgl Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/xml2.sgml,v 1.5 2008/05/08 16:49:37 tgl Exp $ -->
 
 <sect1 id="xml2">
  <title>xml2</title>
@@ -374,9 +374,7 @@ WHERE t.author_id = p.person_id;
   <title>XSLT functions</title>
 
   <para>
-   The following functions are available if libxslt is installed (this is
-   not currently detected automatically, so you will have to amend the
-   Makefile):
+   The following functions are available if libxslt is installed:
   </para>
 
   <sect3>
-- 
GitLab