Re: Add subdirectory support for DATA/DOCS with PGXS - Mailing list pgsql-hackers
From | Mark Cave-Ayland |
---|---|
Subject | Re: Add subdirectory support for DATA/DOCS with PGXS |
Date | |
Msg-id | 4B3F58C9.1060508@siriusit.co.uk Whole thread Raw |
In response to | Re: Add subdirectory support for DATA/DOCS with PGXS (Tom Lane <tgl@sss.pgh.pa.us>) |
Responses |
Re: Add subdirectory support for DATA/DOCS with PGXS
|
List | 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 by date: