Re: [PATCHES] pgxs: build infrastructure for extensions v2

2004-07-02 Thread Peter Eisentraut
Am Freitag, 25. Juni 2004 16:19 schrieb Fabien COELHO:
  - Incidentally, the above will fail if pg_config is not installed (yet),

 Yes.

  so it can't be used in the contrib/ directories.
  (The contrib directories are at least cleaned by the top-level makefile,
  this this is a must-fix failure.)

 Well, I think it can be used anyway:

 If you cannot compile extensions before postgresql is already installed,

That assumption is wrong.  The contrib modules can be built at the same time 
as the rest of the tree, before any installation takes place.  This is 
essential for packaging: When a package is built, the tree is never really 
installed.

  - In Makefile.global: -L$(pkglibdir) is not necessary.  There are not
  libraries to link at build time in there.

 It is done only ifdef PGXS, in which case it seems to me that
 this is really needed, as it is at extension-building time.

There are by definition never any build-time linkable files in $(pkglibdir).

  - maybe more files should be copied? if so which ones?

Actually you might copy less files.  You don't need to copy everything under 
src/makefiles/.  It is enough to copy Makefile.port, since you already know 
the platform.

---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faqs/FAQ.html


Re: [PATCHES] pgxs: build infrastructure for extensions v2

2004-07-02 Thread Fabien COELHO

Dear Peter,

  If you cannot compile extensions before postgresql is already installed,

 That assumption is wrong.  The contrib modules can be built at the same
 time as the rest of the tree, before any installation takes place.
 This is essential for packaging: When a package is built, the tree is
 never really installed.

The model I have in mind is the one of apache, where you use apxs -c -i
... mod_foo.c to install a new module AFTER apache has been compiled and
installed, and it's not a problem to anyone there.

So I must admit I'm not sure I understand the package building issue.

The whole point of PGXS is to enable the ability to install a contrib
or external module whenever one needs it, but not necessary at initial
build time.

As a side effect, because it relies on pg_contrib and other files being
installed, then it suggests that the make in contrib can only be made
after postgresql is installed, as it is with apache.


   - In Makefile.global: -L$(pkglibdir) is not necessary.  There are not
   libraries to link at build time in there.
 
  It is done only ifdef PGXS, in which case it seems to me that
  this is really needed, as it is at extension-building time.

 There are by definition never any build-time linkable files in $(pkglibdir).

PGXS is by definition to be used AFTER the postgresql installation.  Thus
the build-time when using is necessary AFTER postgresql has been
installed. So I think that the libraries are expected to be in
$(pkglibdir)? Or am I completly misunderstanding you?

   - maybe more files should be copied? if so which ones?

 Actually you might copy less files.  You don't need to copy everything under
 src/makefiles/.  It is enough to copy Makefile.port, since you already know
 the platform.

Ok. I can look at that. Makefile.port is a symbolic link, so it may
depends whether the install.sh copies the link as a file or as a link.

Thanks for your comments,

-- 
Fabien Coelho - [EMAIL PROTECTED]

---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faqs/FAQ.html