11# PGXS: PostgreSQL extensions makefile
22
3- # $PostgreSQL: pgsql/src/makefiles/pgxs.mk,v 1.17 2009/08/26 22:24:43 petere Exp $
3+ # $PostgreSQL: pgsql/src/makefiles/pgxs.mk,v 1.18 2010/01/04 16:34:11 tgl Exp $
44
55# This file contains generic rules to build many kinds of simple
66# extension modules. You only need to set a few variables and include
1515# PGXS := $(shell $(PG_CONFIG) --pgxs)
1616# include $(PGXS)
1717#
18- # The following variablescan be set :
18+ # Set one of these three variablesto specify what is built :
1919#
20- # MODULES -- list of shared objects to bebuild from sourcefile with
20+ # MODULES -- list of shared objects to bebuilt from sourcefiles with
2121# same stem (do not include suffix in this list)
22- # DATA -- random files to install into $PREFIX/share/contrib
23- # DATA_built -- random files to install into $PREFIX/share/contrib,
22+ # MODULE_big -- a shared object to build from multiple source files
23+ # (list object files in OBJS)
24+ # PROGRAM -- a binary program to build (list object files in OBJS)
25+ #
26+ # The following variables can also be set:
27+ #
28+ # MODULEDIR -- subdirectory into which DATA and DOCS files should be
29+ # installed (if not set, default is "contrib")
30+ # DATA -- random files to install into $PREFIX/share/$MODULEDIR
31+ # DATA_built -- random files to install into $PREFIX/share/$MODULEDIR,
2432# which need to be built first
2533# DATA_TSEARCH -- random files to install into $PREFIX/share/tsearch_data
26- # DOCS -- random files to install under $PREFIX/doc/contrib
34+ # DOCS -- random files to install under $PREFIX/doc/$MODULEDIR
2735# SCRIPTS -- script files (not binaries) to install into $PREFIX/bin
2836# SCRIPTS_built -- script files (not binaries) to install into $PREFIX/bin,
2937# which need to be built first
3038# REGRESS -- list of regression test cases (without suffix)
31- #
32- # or at most one of these two:
33- #
34- # PROGRAM -- a binary program to build (list objects files in OBJS)
35- # MODULE_big -- a shared object to build (list object files in OBJS)
36- #
37- # The following can also be set:
38- #
3939# EXTRA_CLEAN -- extra files to remove in 'make clean'
4040# PG_CPPFLAGS -- will be added to CPPFLAGS
4141# PG_LIBS -- will be added to PROGRAM link line
@@ -71,6 +71,14 @@ override CFLAGS += $(CFLAGS_SL)
7171SHLIB_LINK +=$(BE_DLLLIBS )
7272endif
7373
74+ ifdef MODULEDIR
75+ datamoduledir =$(MODULEDIR )
76+ docmoduledir =$(MODULEDIR )
77+ else
78+ datamoduledir = contrib
79+ docmoduledir = contrib
80+ endif
81+
7482ifdef PG_CPPFLAGS
7583override CPPFLAGS :=$(PG_CPPFLAGS ) $(CPPFLAGS )
7684endif
@@ -90,8 +98,8 @@ endif # MODULE_big
9098install : all installdirs
9199ifneq (,$(DATA )$(DATA_built ) )
92100@for file in $(addprefix $(srcdir)/, $(DATA)) $(DATA_built); do \
93- echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/contrib '"; \
94- $(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/contrib '; \
101+ echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/$(datamoduledir) '"; \
102+ $(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/$(datamoduledir) '; \
95103done
96104endif # DATA
97105ifneq (,$(DATA_TSEARCH ) )
@@ -109,8 +117,8 @@ endif # MODULES
109117ifdef DOCS
110118ifdef docdir
111119@for file in $(addprefix $(srcdir)/, $(DOCS)); do \
112- echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(docdir)/contrib '"; \
113- $(INSTALL_DATA) $$file '$(DESTDIR)$(docdir)/contrib '; \
120+ echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(docdir)/$(docmoduledir) '"; \
121+ $(INSTALL_DATA) $$file '$(DESTDIR)$(docdir)/$(docmoduledir) '; \
114122done
115123endif # docdir
116124endif # DOCS
@@ -137,7 +145,7 @@ endif # MODULE_big
137145
138146installdirs :
139147ifneq (,$(DATA )$(DATA_built ) )
140- $(MKDIR_P) '$(DESTDIR)$(datadir)/contrib '
148+ $(MKDIR_P) '$(DESTDIR)$(datadir)/$(datamoduledir) '
141149endif
142150ifneq (,$(DATA_TSEARCH ) )
143151$(MKDIR_P) '$(DESTDIR)$(datadir)/tsearch_data'
@@ -147,7 +155,7 @@ ifneq (,$(MODULES))
147155endif
148156ifdef DOCS
149157ifdef docdir
150- $(MKDIR_P) '$(DESTDIR)$(docdir)/contrib '
158+ $(MKDIR_P) '$(DESTDIR)$(docdir)/$(docmoduledir) '
151159endif # docdir
152160endif # DOCS
153161ifneq (,$(PROGRAM )$(SCRIPTS )$(SCRIPTS_built ) )
@@ -161,16 +169,16 @@ endif # MODULE_big
161169
162170uninstall :
163171ifneq (,$(DATA )$(DATA_built ) )
164- rm -f $(addprefix '$(DESTDIR)$(datadir)'/contrib /, $(notdir $(DATA) $(DATA_built)))
172+ rm -f $(addprefix '$(DESTDIR)$(datadir)/$(datamoduledir)' /, $(notdir $(DATA) $(DATA_built)))
165173endif
166174ifneq (,$(DATA_TSEARCH ) )
167- rm -f $(addprefix '$(DESTDIR)$(datadir)' /tsearch_data/, $(notdir $(DATA_TSEARCH)))
175+ rm -f $(addprefix '$(DESTDIR)$(datadir)/tsearch_data' /, $(notdir $(DATA_TSEARCH)))
168176endif
169177ifdef MODULES
170178rm -f $(addprefix '$(DESTDIR)$(pkglibdir)'/, $(addsuffix $(DLSUFFIX), $(MODULES)))
171179endif
172180ifdef DOCS
173- rm -f $(addprefix '$(DESTDIR)$(docdir)'/contrib /, $(DOCS))
181+ rm -f $(addprefix '$(DESTDIR)$(docdir)/$(docmoduledir)' /, $(DOCS))
174182endif
175183ifdef PROGRAM
176184rm -f '$(DESTDIR)$(bindir)/$(PROGRAM)$(X)'