1
1
# PGXS: PostgreSQL extensions makefile
2
2
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 $
4
4
5
5
# This file contains generic rules to build many kinds of simple
6
6
# extension modules. You only need to set a few variables and include
15
15
# PGXS := $(shell $(PG_CONFIG) --pgxs)
16
16
# include $(PGXS)
17
17
#
18
- # The following variables can be set :
18
+ # Set one of these three variables to specify what is built :
19
19
#
20
- # MODULES -- list of shared objects to be build from source file with
20
+ # MODULES -- list of shared objects to be built from source files with
21
21
# 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,
24
32
# which need to be built first
25
33
# 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
27
35
# SCRIPTS -- script files (not binaries) to install into $PREFIX/bin
28
36
# SCRIPTS_built -- script files (not binaries) to install into $PREFIX/bin,
29
37
# which need to be built first
30
38
# 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
- #
39
39
# EXTRA_CLEAN -- extra files to remove in 'make clean'
40
40
# PG_CPPFLAGS -- will be added to CPPFLAGS
41
41
# PG_LIBS -- will be added to PROGRAM link line
@@ -71,6 +71,14 @@ override CFLAGS += $(CFLAGS_SL)
71
71
SHLIB_LINK += $(BE_DLLLIBS )
72
72
endif
73
73
74
+ ifdef MODULEDIR
75
+ datamoduledir = $(MODULEDIR )
76
+ docmoduledir = $(MODULEDIR )
77
+ else
78
+ datamoduledir = contrib
79
+ docmoduledir = contrib
80
+ endif
81
+
74
82
ifdef PG_CPPFLAGS
75
83
override CPPFLAGS := $(PG_CPPFLAGS ) $(CPPFLAGS )
76
84
endif
@@ -90,8 +98,8 @@ endif # MODULE_big
90
98
install : all installdirs
91
99
ifneq (,$(DATA )$(DATA_built ) )
92
100
@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) '; \
95
103
done
96
104
endif # DATA
97
105
ifneq (,$(DATA_TSEARCH ) )
@@ -109,8 +117,8 @@ endif # MODULES
109
117
ifdef DOCS
110
118
ifdef docdir
111
119
@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) '; \
114
122
done
115
123
endif # docdir
116
124
endif # DOCS
@@ -137,7 +145,7 @@ endif # MODULE_big
137
145
138
146
installdirs :
139
147
ifneq (,$(DATA )$(DATA_built ) )
140
- $(MKDIR_P) '$(DESTDIR)$(datadir)/contrib '
148
+ $(MKDIR_P) '$(DESTDIR)$(datadir)/$(datamoduledir) '
141
149
endif
142
150
ifneq (,$(DATA_TSEARCH ) )
143
151
$(MKDIR_P) '$(DESTDIR)$(datadir)/tsearch_data'
@@ -147,7 +155,7 @@ ifneq (,$(MODULES))
147
155
endif
148
156
ifdef DOCS
149
157
ifdef docdir
150
- $(MKDIR_P) '$(DESTDIR)$(docdir)/contrib '
158
+ $(MKDIR_P) '$(DESTDIR)$(docdir)/$(docmoduledir) '
151
159
endif # docdir
152
160
endif # DOCS
153
161
ifneq (,$(PROGRAM )$(SCRIPTS )$(SCRIPTS_built ) )
@@ -161,16 +169,16 @@ endif # MODULE_big
161
169
162
170
uninstall :
163
171
ifneq (,$(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)))
165
173
endif
166
174
ifneq (,$(DATA_TSEARCH ) )
167
- rm -f $(addprefix '$(DESTDIR)$(datadir)' /tsearch_data/, $(notdir $(DATA_TSEARCH)))
175
+ rm -f $(addprefix '$(DESTDIR)$(datadir)/tsearch_data' /, $(notdir $(DATA_TSEARCH)))
168
176
endif
169
177
ifdef MODULES
170
178
rm -f $(addprefix '$(DESTDIR)$(pkglibdir)'/, $(addsuffix $(DLSUFFIX), $(MODULES)))
171
179
endif
172
180
ifdef DOCS
173
- rm -f $(addprefix '$(DESTDIR)$(docdir)'/contrib /, $(DOCS))
181
+ rm -f $(addprefix '$(DESTDIR)$(docdir)/$(docmoduledir)' /, $(DOCS))
174
182
endif
175
183
ifdef PROGRAM
176
184
rm -f '$(DESTDIR)$(bindir)/$(PROGRAM)$(X)'
0 commit comments