Re: Add subdirectory support for DATA/DOCS with PGXS

Поиск
Список
Период
Сортировка
От Mark Cave-Ayland
Тема Re: Add subdirectory support for DATA/DOCS with PGXS
Дата
Msg-id 4B3F58C9.1060508@siriusit.co.uk
обсуждение исходный текст
Ответ на Re: Add subdirectory support for DATA/DOCS with PGXS  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Add subdirectory support for DATA/DOCS with PGXS  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
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)'

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Dimitri Fontaine
Дата:
Сообщение: Re: problem with gist index amdb utility
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: Change to config.pl processing in the msvc build environment