postgres.git / summary / log / commit / refs

commit    6ed3c5f7b2846be9e176ea1c99b2d45bba0d6972
Author:   Andrew Dunstan <andrew@dunslane.net>
Date:     Mon Oct 07 03:07:28 2013 +0000
First released in: 9.4.0, REL9_1_STABLE (reverted before release), REL9_2_STABLE (reverted before release), REL9_3_STABLE (reverted before release)
Reverted by: 4a72c60e4a4a (in 9.1.10), e2ccba06ac73 (in 9.2.5), 4e80950042ff (in 9.3.1)

    Document support for VPATH builds of extensions.
    
    Cédric Villemain and me.


doc/src/sgml/extend.sgml | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/doc/src/sgml/extend.sgml b/doc/src/sgml/extend.sgml index b571b5f66bf..7db906aebb6 100644 --- a/doc/src/sgml/extend.sgml +++ b/doc/src/sgml/extend.sgml @@ -928,7 +928,7 @@ include $(PGXS) To use the <acronym>PGXS</acronym> infrastructure for your extension, you must write a simple makefile. In the makefile, you need to set some variables - and finally include the global <acronym>PGXS</acronym> makefile. + and include the global <acronym>PGXS</acronym> makefile. Here is an example that builds an extension module named <literal>isbn_issn</literal>, consisting of a shared library containing some C code, an extension control file, a SQL script, and a documentation @@ -1164,6 +1164,33 @@ include $(PGXS) </para> </caution> + <para> + You can also run <literal>make</literal> in a directory outside the source + tree of your extension, if you want to keep the build directory separate. + This procedure is also called a + <indexterm><primary>VPATH</primary></indexterm><firstterm>VPATH</firstterm> + build. Here's how: + <screen> + <userinput>mkdir build_dir</userinput> + <userinput>cd build_dir</userinput> + <userinput>make -f /path/to/extension/source/tree/Makefile</userinput> + <userinput>make -f /path/to/extension/source/tree/Makefile install</userinput> + </screen> + </para> + + <para> + Alternatively, you can set up a directory for a VPATH build in a similar + way to how it is done for the core code. One way to to this is using the + core script <filename>config/prep_buildtree</>. Once this has been done + you can build by setting the <literal>make</literal> variable + <varname>USE_VPATH</varname> like this: + <screen> + <userinput>make USE_VPATH=/path/to/extension/source/tree</userinput> + <userinput>make USE_VPATH=/path/to/extension/source/tree install</userinput> + </screen> + This procedure can work with a greater variety of directory layouts. + </para> + <para> The scripts listed in the <varname>REGRESS</> variable are used for regression testing of your module, which can be invoked by <literal>make [parent: d648af0df403]