Add subdirectory support for DATA/DOCS with PGXS

Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>

From: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
To: pgsql-hackers@postgreSQL.org
Date: 2009-12-29T12:59:26Z
Lists: pgsql-hackers

Attachments

Hi all,

Since moving PostGIS over to PGXS for the 1.4 release, we've been 
looking at how we can support multiple versions of PostGIS being 
installed in different databases within the same cluster.

We are able to version the .so file produced by PGXS without too much 
difficulty, however PGXS in its current form does not have the ability 
to install different versions of the DATA or DOCS files within the same 
installation.

The attached patch is a prototype which allows the user to specify a new 
MODULEDIR variable in a module makefile which, if specified, will 
install DATA and DOCS items in contrib/$(MODULEDIR) rather than just 
contrib. If MODULEDIR is left unspecified, the files will simply be 
stored directly in contrib/ as before.

In my current development setup here, the head of the new PostGIS PGXS 
Makefile now looks like this:


MODULE_big=postgis-1.5
MODULEDIR=$(MODULE_big)
...
...


With this patch in place, "make install" on the PGXS will correctly 
install the DATA and DOCS files in versioned directories and therefore 
allow multiple installations within the same database cluster.

The coding within the Makefile isn't too difficult in its current form, 
but I'd be interested to get some initial feedback as to whether the 
introduction of a new MODULEDIR variable is the best way to add this new 
piece of functionality.


Many thanks,

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