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 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-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 | Content-Type | Size |
---|---|---|
install_build.patch | text/plain | 52.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2004-07-16 14:44:12 | Re: [pgsql-hackers-win32] Weird new time zone |
Previous Message | Bruce Momjian | 2004-07-16 14:27:43 | Re: Point in Time Recovery |
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2004-07-16 14:49:57 | Re: plperl win32 |
Previous Message | Tom Lane | 2004-07-16 14:10:58 | Re: [subxact] Proof-of-concept: report nest level to client |