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
possibleto 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
takencare 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
theonly 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 PGXSBE_DLLLIBS= -lpostgres
elseBE_DLLLIBS= -L$(top_builddir)/src/backend -lpostgres
endif
and everything build OK.
Regards,
Thomas Hallgren