Re: Problems using pgxs on Win32 - Mailing list pgsql-hackers

From Thomas Hallgren
Subject Re: Problems using pgxs on Win32
Date
Msg-id thhal-0mrFhAknk3kA5aAHi9b3giY/sUqmDo5@mailblocks.com
Whole thread Raw
In response to Re: Problems using pgxs on Win32  (Fabien COELHO <coelho@cri.ensmp.fr>)
List pgsql-hackers
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




pgsql-hackers by date:

Previous
From: Fabien COELHO
Date:
Subject: Re: Problems using pgxs on Win32
Next
From: Fabien COELHO
Date:
Subject: Re: Problems using pgxs on Win32