Tom Lane wrote:
If you can set it up in such a way that the default behavior doesn't
change, this would be workable. I don't think we want people to
suddenly find their stuff installing in the wrong place.
It probably wouldn't be that hard, something along the lines of
ifndef MODULEDIR
MODULEDIR=contrib
endif
ought to do it no?
Yeah, that was pretty much along the lines of what I was thinking.
Please find the revised v2 patch attached for comment. The one thing I
have done is separated out the moduledir variable into datamoduledir and
docmoduledir so there is a little bit of wiggle room if someone needs to
install DATA items and DOCS items in different locations.
I did have a brief look at seeing whether it would be possible to use
this instead of DATA_TSEARCH, however this won't work because the DATA
and DATA_TSEARCH targets need their files installed in two separate
locations.
ATB,
Mark.
--
Mark Cave-Ayland - Senior Technical Architect
PostgreSQL - PostGIS
Sirius Corporation plc - control through freedom
http://www.siriusit.co.uk
t: +44 870 608 0063
Sirius Labs: http://www.siriusit.co.uk/labs
diff --git a/src/makefiles/pgxs.mk b/src/makefiles/pgxs.mk
index a83dad3..feb7fc2 100644
--- a/src/makefiles/pgxs.mk
+++ b/src/makefiles/pgxs.mk
@@ -19,8 +19,11 @@
#
# MODULES -- list of shared objects to be build from source file with
# same stem (do not include suffix in this list)
-# DATA -- random files to install into $PREFIX/share/contrib
-# DATA_built -- random files to install into $PREFIX/share/contrib,
+# MODULEDIR -- subdirectory under contrib into which DATA and DOCS are
+# installed (if not set, DATA and DOCS files are installed directly
+# into the contrib/ directory)
+# DATA -- random files to install into $PREFIX/share/$MODULEDIR
+# DATA_built -- random files to install into $PREFIX/share/$MODULEDIR,
# which need to be built first
# DATA_TSEARCH -- random files to install into $PREFIX/share/tsearch_data
# DOCS -- random files to install under $PREFIX/doc/contrib
@@ -86,12 +89,20 @@ include $(top_srcdir)/src/Makefile.shlib
all: all-lib
endif # MODULE_big
+ifndef MODULEDIR
+datamoduledir = contrib
+docmoduledir = contrib
+else
+datamoduledir = $(MODULEDIR)
+docmoduledir = $(MODULEDIR)
+endif
+
install: all installdirs
ifneq (,$(DATA)$(DATA_built))
@for file in $(addprefix $(srcdir)/, $(DATA)) $(DATA_built); do \
- echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/contrib'"; \
- $(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/contrib'; \
+ echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/$(datamoduledir)'"; \
+ $(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/$(datamoduledir)'; \
done
endif # DATA
ifneq (,$(DATA_TSEARCH))
@@ -109,8 +120,8 @@ endif # MODULES
ifdef DOCS
ifdef docdir
@for file in $(addprefix $(srcdir)/, $(DOCS)); do \
- echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(docdir)/contrib'"; \
- $(INSTALL_DATA) $$file '$(DESTDIR)$(docdir)/contrib'; \
+ echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(docdir)/$(docmoduledir)'"; \
+ $(INSTALL_DATA) $$file '$(DESTDIR)$(docdir)/$(docmoduledir)'; \
done
endif # docdir
endif # DOCS
@@ -137,7 +148,7 @@ endif # MODULE_big
installdirs:
ifneq (,$(DATA)$(DATA_built))
- $(MKDIR_P) '$(DESTDIR)$(datadir)/contrib'
+ $(MKDIR_P) '$(DESTDIR)$(datadir)/$(datamoduledir)'
endif
ifneq (,$(DATA_TSEARCH))
$(MKDIR_P) '$(DESTDIR)$(datadir)/tsearch_data'
@@ -147,7 +158,7 @@ ifneq (,$(MODULES))
endif
ifdef DOCS
ifdef docdir
- $(MKDIR_P) '$(DESTDIR)$(docdir)/contrib'
+ $(MKDIR_P) '$(DESTDIR)$(docdir)/$(docmoduledir)'
endif # docdir
endif # DOCS
ifneq (,$(PROGRAM)$(SCRIPTS)$(SCRIPTS_built))
@@ -161,7 +172,7 @@ endif # MODULE_big
uninstall:
ifneq (,$(DATA)$(DATA_built))
- rm -f $(addprefix '$(DESTDIR)$(datadir)'/contrib/, $(notdir $(DATA) $(DATA_built)))
+ rm -f $(addprefix '$(DESTDIR)$(datadir)'/$(datamoduledir)/, $(notdir $(DATA) $(DATA_built)))
endif
ifneq (,$(DATA_TSEARCH))
rm -f $(addprefix '$(DESTDIR)$(datadir)'/tsearch_data/, $(notdir $(DATA_TSEARCH)))
@@ -170,7 +181,7 @@ ifdef MODULES
rm -f $(addprefix '$(DESTDIR)$(pkglibdir)'/, $(addsuffix $(DLSUFFIX), $(MODULES)))
endif
ifdef DOCS
- rm -f $(addprefix '$(DESTDIR)$(docdir)'/contrib/, $(DOCS))
+ rm -f $(addprefix '$(DESTDIR)$(docdir)'/$(docmoduledir)/, $(DOCS))
endif
ifdef PROGRAM
rm -f '$(DESTDIR)$(bindir)/$(PROGRAM)$(X)'
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers