-<!-- $PostgreSQL: pgsql/doc/src/sgml/xfunc.sgml,v 1.143 2009/12/10 06:32:28 petere Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/xfunc.sgml,v 1.144 2010/01/04 16:34:11 tgl Exp $ -->
<sect1 id="xfunc">
<title>User-Defined Functions</title>
</para>
<para>
- The following variables can be set:
+ Set one of these three variables to specify what is built:
<variablelist>
<varlistentry>
<term><varname>MODULES</varname></term>
<listitem>
<para>
- list of shared objects to be built from source file with same
+ list of shared objects to be built from source files with same
stem (do not include suffix in this list)
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><varname>DATA</varname></term>
+ <term><varname>MODULE_big</varname></term>
<listitem>
<para>
- random files to install into <literal><replaceable>prefix</replaceable>/share/contrib</literal>
+ a shared object to build from multiple source files
+ (list object files in <varname>OBJS</varname>)
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><varname>DATA_built</varname></term>
+ <term><varname>PROGRAM</varname></term>
<listitem>
<para>
- random files to install into
- <literal><replaceable>prefix</replaceable>/share/contrib</literal>,
- which need to be built first
+ a binary program to build
+ (list object files in <varname>OBJS</varname>)
</para>
</listitem>
</varlistentry>
+ </variablelist>
+ The following variables can also be set:
+
+ <variablelist>
<varlistentry>
- <term><varname>DOCS</varname></term>
+ <term><varname>MODULEDIR</varname></term>
<listitem>
<para>
- random files to install under
- <literal><replaceable>prefix</replaceable>/doc/contrib</literal>
+ subdirectory into which DATA and DOCS files should be
+ installed (if not set, default is <literal>contrib</literal>)
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><varname>SCRIPTS</varname></term>
+ <term><varname>DATA</varname></term>
<listitem>
<para>
- script files (not binaries) to install into
- <literal><replaceable>prefix</replaceable>/bin</literal>
+ random files to install into <literal><replaceable>prefix</replaceable>/share/$MODULEDIR</literal>
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><varname>SCRIPTS_built</varname></term>
+ <term><varname>DATA_built</varname></term>
<listitem>
<para>
- script files (not binaries) to install into
- <literal><replaceable>prefix</replaceable>/bin</literal>,
+ random files to install into
+ <literal><replaceable>prefix</replaceable>/share/$MODULEDIR</literal>,
which need to be built first
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><varname>REGRESS</varname></term>
+ <term><varname>DATA_TSEARCH</varname></term>
<listitem>
<para>
- list of regression test cases (without suffix), see below
+ random files to install under
+ <literal><replaceable>prefix</replaceable>/share/tsearch_data</literal>
</para>
</listitem>
</varlistentry>
- </variablelist>
- or at most one of these two:
-
- <variablelist>
<varlistentry>
- <term><varname>PROGRAM</varname></term>
+ <term><varname>DOCS</varname></term>
<listitem>
<para>
- a binary program to build (list objects files in <varname>OBJS</varname>)
+ random files to install under
+ <literal><replaceable>prefix</replaceable>/doc/$MODULEDIR</literal>
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><varname>MODULE_big</varname></term>
+ <term><varname>SCRIPTS</varname></term>
<listitem>
<para>
- a shared object to build (list object files in <varname>OBJS</varname>)
+ script files (not binaries) to install into
+ <literal><replaceable>prefix</replaceable>/bin</literal>
</para>
</listitem>
</varlistentry>
- </variablelist>
- The following can also be set:
+ <varlistentry>
+ <term><varname>SCRIPTS_built</varname></term>
+ <listitem>
+ <para>
+ script files (not binaries) to install into
+ <literal><replaceable>prefix</replaceable>/bin</literal>,
+ which need to be built first
+ </para>
+ </listitem>
+ </varlistentry>
- <variablelist>
+ <varlistentry>
+ <term><varname>REGRESS</varname></term>
+ <listitem>
+ <para>
+ list of regression test cases (without suffix), see below
+ </para>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term><varname>EXTRA_CLEAN</varname></term>
# PGXS: PostgreSQL extensions makefile
-# $PostgreSQL: pgsql/src/makefiles/pgxs.mk,v 1.17 2009/08/26 22:24:43 petere Exp $
+# $PostgreSQL: pgsql/src/makefiles/pgxs.mk,v 1.18 2010/01/04 16:34:11 tgl Exp $
# This file contains generic rules to build many kinds of simple
# extension modules. You only need to set a few variables and include
# PGXS := $(shell $(PG_CONFIG) --pgxs)
# include $(PGXS)
#
-# The following variables can be set:
+# Set one of these three variables to specify what is built:
#
-# MODULES -- list of shared objects to be build from source file with
+# MODULES -- list of shared objects to be built from source files 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,
+# MODULE_big -- a shared object to build from multiple source files
+# (list object files in OBJS)
+# PROGRAM -- a binary program to build (list object files in OBJS)
+#
+# The following variables can also be set:
+#
+# MODULEDIR -- subdirectory into which DATA and DOCS files should be
+# installed (if not set, default is "contrib")
+# 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
+# DOCS -- random files to install under $PREFIX/doc/$MODULEDIR
# SCRIPTS -- script files (not binaries) to install into $PREFIX/bin
# SCRIPTS_built -- script files (not binaries) to install into $PREFIX/bin,
# which need to be built first
# REGRESS -- list of regression test cases (without suffix)
-#
-# or at most one of these two:
-#
-# PROGRAM -- a binary program to build (list objects files in OBJS)
-# MODULE_big -- a shared object to build (list object files in OBJS)
-#
-# The following can also be set:
-#
# EXTRA_CLEAN -- extra files to remove in 'make clean'
# PG_CPPFLAGS -- will be added to CPPFLAGS
# PG_LIBS -- will be added to PROGRAM link line
SHLIB_LINK += $(BE_DLLLIBS)
endif
+ifdef MODULEDIR
+datamoduledir = $(MODULEDIR)
+docmoduledir = $(MODULEDIR)
+else
+datamoduledir = contrib
+docmoduledir = contrib
+endif
+
ifdef PG_CPPFLAGS
override CPPFLAGS := $(PG_CPPFLAGS) $(CPPFLAGS)
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))
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
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'
endif
ifdef DOCS
ifdef docdir
- $(MKDIR_P) '$(DESTDIR)$(docdir)/contrib'
+ $(MKDIR_P) '$(DESTDIR)$(docdir)/$(docmoduledir)'
endif # docdir
endif # DOCS
ifneq (,$(PROGRAM)$(SCRIPTS)$(SCRIPTS_built))
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)))
+ rm -f $(addprefix '$(DESTDIR)$(datadir)/tsearch_data'/, $(notdir $(DATA_TSEARCH)))
endif
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)'