Skip site navigation (1) Skip section navigation (2)

pgxs: build infrastructure for extensions v4

From: Fabien COELHO <coelho(at)cri(dot)ensmp(dot)fr>
To: PostgreSQL Patches <pgsql-patches(at)postgresql(dot)org>
Subject: pgxs: build infrastructure for extensions v4
Date: 2004-07-16 14:34:36
Message-ID: Pine.LNX.4.58.0407161625040.6161@sablons.cri.ensmp.fr (view raw or flat)
Thread:
Lists: pgsql-hackerspgsql-patches
Dear patchers,


Please find attached another new version of a patch which provides a
working infrastructure for pg extensions. I hope it addresses all of
Peter's comments. I'll be away for the next 3 weeks, so if minor changes
are required it would be best if you could proceed without me...

The infrastructure is a simple reworking of the already available internal
infrastructure for contrib, so that it can be used outside of the
postgresql source tree after installation, without gory details being in
sight of the user. The documentation is added as a new section in
"xfunc.sgml".

I updated all contrib makefiles so that they can be used either the
standard way after a configure, or the new way without needing a configure
but with an already installed postgreSQL. Just try them with

	"cd contrib/foo ; make USE_PGXS=1 install"

*AFTER* postgresql has been configure, compiled and installed.  It should
be compiled and installed wrt to the first "pg_config" which is found in
the path.


How it works:

 - necessary files (includes, scripts, makefiles...) are copied under
   $(pkglibdir)/pgxs on the initial "make install".

   due to gnu-make restriction on how its includes work, these files must
   be copied with the *same* directory structure as the pg source tree.
   The fact does not appear at all in the actual infrastructure from the
   user point of view, but it explains why subdirectories are necessary
   under pgxs, if you care to have a look.

 - the makefile of any extension is expected to set macro PGXS to
   "pg_config --pgxs", to include a special makefile, and to
   set some macros depending on what is to be built, just like in
   current contrib.

 - I've added two PGXS-triggered conditionnals in Makefile.global,
   so that includes and libraries are taken where needed.


Notes:

 - there is still a "light-install" target that matches the previous
   "install" behavior, as new "install" matches previous "server-install".

 - I'm not sure the sgml is ok. It looks ok, but is it enough.

 - It validates and works for me.


Have a nice day,

-- 
Fabien Coelho - coelho(at)cri(dot)ensmp(dot)fr

Attachment: install_build.patch
Description: text/plain (52.2 KB)

Responses

pgsql-hackers by date

Next:From: Tom LaneDate: 2004-07-16 14:44:12
Subject: Re: [pgsql-hackers-win32] Weird new time zone
Previous:From: Bruce MomjianDate: 2004-07-16 14:27:43
Subject: Re: Point in Time Recovery

pgsql-patches by date

Next:From: Bruce MomjianDate: 2004-07-16 14:49:57
Subject: Re: plperl win32
Previous:From: Tom LaneDate: 2004-07-16 14:10:58
Subject: Re: [subxact] Proof-of-concept: report nest level to client

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group