pgxs: build infrastructure for extensions v4
От | Fabien COELHO |
---|---|
Тема | pgxs: build infrastructure for extensions v4 |
Дата | |
Msg-id | Pine.LNX.4.58.0407161625040.6161@sablons.cri.ensmp.fr обсуждение исходный текст |
Ответы |
Re: pgxs: build infrastructure for extensions v4
Re: pgxs: build infrastructure for extensions v4 Re: pgxs: build infrastructure for extensions v4 Re: pgxs: build infrastructure for extensions v4 |
Список | 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@cri.ensmp.fr
Вложения
В списке pgsql-patches по дате отправления: