Re: [HACKERS] Problems using pgxs on Win32

2004-11-27 Thread Bruce Momjian

I assume all the pgxs changes have been applied by Tom.

---

Fabien COELHO wrote:
 
 Dear Thomas,
 
  I'm trying to change the Makefile system for PL/Java so that it uses PGXS
  instead of compiling using a complete PostgreSQL source tree. As it turns
  out, the directory include/port/win32 is not present in the PostgreSQL
  binary installation. Without it, it's not possible to compile on win32.
 
 Indeed, this directory is not installed by the install target.
 
 If it is really needed, it is no big deal. However if done so, it should
 be under include/server/port/win32/, not include/port/win32, but this
 should be taken care of by some macro, I guess.
 
  Do I need some special configuration in order to get the missing pieces?
 
 I guess you're the first one ever to test this under win32;-)
 
 You can try to copy by hand the directory into include/server/port/ of
 your installation, and check whether it is the only issue.
 
 Have a nice day,
 
 -- 
 Fabien Coelho - [EMAIL PROTECTED]
 
 ---(end of broadcast)---
 TIP 3: if posting/reading through Usenet, please send an appropriate
   subscribe-nomail command to [EMAIL PROTECTED] so that your
   message can get through to the mailing list cleanly
 

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (610) 359-1001
  +  If your life is a hard drive, |  13 Roberts Road
  +  Christ can be your backup.|  Newtown Square, Pennsylvania 19073

---(end of broadcast)---
TIP 3: if posting/reading through Usenet, please send an appropriate
  subscribe-nomail command to [EMAIL PROTECTED] so that your
  message can get through to the mailing list cleanly


Re: [HACKERS] Problems using pgxs on Win32

2004-11-01 Thread Fabien COELHO

Dear Thomas,

 I'm trying to change the Makefile system for PL/Java so that it uses PGXS
 instead of compiling using a complete PostgreSQL source tree. As it turns
 out, the directory include/port/win32 is not present in the PostgreSQL
 binary installation. Without it, it's not possible to compile on win32.

Indeed, this directory is not installed by the install target.

If it is really needed, it is no big deal. However if done so, it should
be under include/server/port/win32/, not include/port/win32, but this
should be taken care of by some macro, I guess.

 Do I need some special configuration in order to get the missing pieces?

I guess you're the first one ever to test this under win32;-)

You can try to copy by hand the directory into include/server/port/ of
your installation, and check whether it is the only issue.

Have a nice day,

-- 
Fabien Coelho - [EMAIL PROTECTED]

---(end of broadcast)---
TIP 3: if posting/reading through Usenet, please send an appropriate
  subscribe-nomail command to [EMAIL PROTECTED] so that your
  message can get through to the mailing list cleanly


Re: [HACKERS] Problems using pgxs on Win32

2004-11-01 Thread Thomas Hallgren
Fabien,
There's quite a few issues. Here's what I had to do in order to get my 
stuff working. I don't think it's any use for me to submit changes in 
form of a patch at this point since pgxs seems to be a bit on the 
drawing table still. I started another thread that was not win32 related
also with the subject Problems with pgxs that I relate to here as well.

... the directory include/port/win32 is not present in the PostgreSQL
binary installation. Without it, it's not possible to compile on win32.

 Indeed, this directory is not installed by the install target.

 If it is really needed, it is no big deal.
It's needed alright. It contains files included from c.h which in turn 
is included from postgres.h.

 However if done so, it should
 be under include/server/port/win32/, not include/port/win32, but this
 should be taken care of by some macro, I guess.

Yes, a special macro is needed for this, I made a change in 
Makefile.global (around line 176), like so:

ifdef PGXS
override CPPFLAGS := -I$(includedir_server) 
-I$(includedir_server)/port/win32 -I$(includedir_internal) $(CPPFLAGS)
else # not PGXS
...

 You can try to copy by hand the directory into include/server/port/ of
 your installation, and check whether it is the only issue.

Next problem is that the all-lib target is wrong (see other thread). I 
can get around that by changing my local makefile and instead of the 
recommended:

all: all-lib
use:
all: $(shlib)
Final issue is BE_DLLLIBS in Makefile.port. It's defined as:
BE_DLLLIBS= -L$(top_builddir)/src/backend -lpostgres
The src/backend is of course not present but what's worse, the 
libpostgres.a library is not included in the install. I copied it from 
src/backend into the prefix/lib directory and changed the 
Makefile.port to read:

ifdef PGXS
BE_DLLLIBS= -lpostgres
else
BE_DLLLIBS= -L$(top_builddir)/src/backend -lpostgres
endif
and everything build OK.
Regards,
Thomas Hallgren

---(end of broadcast)---
TIP 6: Have you searched our list archives?
  http://archives.postgresql.org


Re: [HACKERS] Problems using pgxs on Win32

2004-11-01 Thread Fabien COELHO

Dear Thomas,

 There's quite a few issues. Here's what I had to do in order to get my stuff
 working. I don't think it's any use for me to submit changes in form of a
 patch at this point since pgxs seems to be a bit on the drawing table still.

Well, it is supposed to work;-)

pgxs is just a reworking of the previous compilation infrastructure for
contribs so that it can be used outside of the main tree. So I don't feel
responsible for the actual dependency rules (say, whether all-lib make
sense), but I do feel responsible for the missing files, and the fixes
needed to adapt the infrastructure to the installation tree vs the source
tree.

 I started another thread that was not win32 related also with the
 subject Problems with pgxs that I relate to here as well.

Yep, I noticed.

 Yes, a special macro is needed for this, I made a change in Makefile.global
 (around line 176), like so:

ifdef PGXS
override CPPFLAGS := -I$(includedir_server)
 -I$(includedir_server)/port/win32 -I$(includedir_internal) $(CPPFLAGS)
else # not PGXS
...

Why can't you #include port/win32/some_file.h which would (I think)
avoid the issue without adding a win32 specific -I to all architectures??
I'm not sure I'm happy if I see a win32 path when compiling under some
unix.

 Final issue is BE_DLLLIBS in Makefile.port. It's defined as:

BE_DLLLIBS= -L$(top_builddir)/src/backend -lpostgres

Argh.

 The src/backend is of course not present but what's worse, the libpostgres.a
 library is not included in the install. I copied it from src/backend into the
 prefix/lib directory and changed the Makefile.port to read:

It looks like another missing file.

It could be also installed into lib/pgxs/src/backend so that the previous
definition works, but If it is possible to install it in lib (that is
maintainers agreee about it), then it looks better.

I'll try to submit a patch this week.

-- 
Fabien Coelho - [EMAIL PROTECTED]

---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [HACKERS] Problems using pgxs on Win32

2004-11-01 Thread Thomas Hallgren
Fabien,
  ifdef PGXS
  override CPPFLAGS := -I$(includedir_server)
-I$(includedir_server)/port/win32 -I$(includedir_internal) $(CPPFLAGS)
  else # not PGXS
  ...

Why can't you #include port/win32/some_file.h which would (I think)
avoid the issue without adding a win32 specific -I to all architectures??
I'm not sure I'm happy if I see a win32 path when compiling under some
unix.
I'm not sure I understand. I'm not the one including the missing files. 
They are included when I include postgres.h.

Regards,
Thomas Hallgren
---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
   (send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: [HACKERS] Problems using pgxs on Win32

2004-11-01 Thread Fabien COELHO
Dear Thomas,
  ifdef PGXS
  override CPPFLAGS := -I$(includedir_server)
-I$(includedir_server)/port/win32 -I$(includedir_internal) $(CPPFLAGS)
  else # not PGXS
Why can't you #include port/win32/some_file.h which would (I think)
avoid the issue without adding a win32 specific -I to all architectures??
I'm not sure I'm happy if I see a win32 path when compiling under some
unix.
I'm not sure I understand. I'm not the one including the missing files. They 
are included when I include postgres.h.
Ok.
It seems that this directory provides fake header files to replace unix 
system headers. Hence ISTM that no one wants this -I on any other 
platform, so the possible inclusion must be added under some condition, 
not just ifdef PGXS.

I'm wondering how it works within the source tree. I guess the 
Makefile.port must/should take care of this issue, and maybe it is broken 
under pgxs? I'll look into that, but I cannot test anything:-(

--
Fabien Coelho - [EMAIL PROTECTED]
---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
   (send unregister YourEmailAddressHere to [EMAIL PROTECTED])