[postgis-devel] pgxs

strk at refractions.net strk at refractions.net
Tue Apr 26 06:00:50 PDT 2005


On Tue, Apr 26, 2005 at 11:24:04AM +0100, Mark Cave-Ayland wrote:
> Hi guys,
> 
> Before you get too deep, I just thought I would remind you both about the
> pgxs feature (new in 8.0) which will allow you to build contrib/ modules
> outside of the PostgreSQL source tree. See the output of 'pg_config --pgxs'
> for a pointer to the Makefile required.
> 
> The advantage of this approach is that it is the official method of building
> modules outside of the source tree (and so has the support of the PGDG and
> is less likely to break); The disadvantage is that it's not available for
> older versions of PostgreSQL.
> 
> So far everyone building PostGIS will have required a source tree anyway, so
> I can't see that introducing it just for newer versions will affect existing
> users too much. What do people think? 

It it was introducing for newer *postgis* version I would agree.
In this case is introducing for builds against newer *postgresql*,
which is a similar case we have with the selectivity estimation
code.

You ironically asked me "Do you work for Microsoft" ?
I can bounce that question back to you ;)

Making PostgreSQL upgrade a prerequisite for PostGIS upgrade
sounds a bit unfriendly... would disturb me in a production
environment.

In the long run we can leverage this behaviour, but I think
it is too early now. Pgsql 8.0 would be required and I'm not
sure about pgxs status in terms of "features". Have you 
looked into it ? Does it give you enough abstraction to 
really easy multiplaform builds ?

What we can consider in our efforts is "miming" the behaviour
of pgxs in terms of installation layout, to be compatible when
time come for a switch.

Looking forward to hear other opinions on the subject.

--strk;

> 
> 
> Kind regards,
> 
> Mark.
> 
> ------------------------
> WebBased Ltd
> South West Technology Centre
> Tamar Science Park
> Plymouth
> PL6 8BT 
> 
> T: +44 (0)1752 791021
> F: +44 (0)1752 791023
> W: http://www.webbased.co.uk
>  
> 
> > -----Original Message-----
> > From: postgis-devel-bounces at postgis.refractions.net 
> > [mailto:postgis-devel-bounces at postgis.refractions.net] On 
> > Behalf Of Jean David TECHER
> > Sent: 26 April 2005 10:56
> > To: strk at refractions.net
> > Cc: postgis-devel at postgis.refractions.net
> > Subject: [postgis-devel] Re: [postgis-users] Building PostGIS 
> > from SundayCVS..without PostgreSQL Sources...OK ! ! !
> > 
> > 
> > QUESTION 1:
> > > Here you're adding more server headers in case of a build against 
> > > MINGW. Question is: who is requiring this ? Which source files are 
> > > trying to include things which are not in PGBEINCLUDES (PostgreSQL 
> > > Back-End
> > > includes) ? Is there a different server-headers layout for 
> > postgresql
> > > un unix and w32 systems ?
> > 
> > U need to tell PostGIS where to find file pwd.h, netdb.h  
> > which are locatd in include/server/port and 
> > include/server/port/win32..or else U will have a error
> > 
> > QUESTION 2:
> > > The value of DLSUFFIX sould be set by configure IMO, the 
> > "findstring" 
> > > call replaced by an invocation of uname probably. What does 
> > uname -s 
> > > returns there ?
> > uname -s returns
> > MINGW32_NT-5.1
> > Could do the invocation of uname..;Right :-)
> > 
> > QUESTION3:
> > > Am I missing something or the two blocks (MINGW or not) are exactly 
> > > the same in both of the blocks above ?
> > 
> > Right again...:-) ...But I was in a hurry last sunday...I 
> > did'nt read again my change
> > 
> > QUESTION 4:
> > > Why do you need to link statically against the libpq ?
> > 
> > 
> > Hum..Sorry But in Makefile.config.in when U do 
> > PGFELIBS=@PGFELIBS@ doesn't work on Windows..I hat a error on 
> > a caracter ("squared" caracter [] )
> > 
> > I had something like
> > PGFELIBS=-Lc:/PostgreSQL/lib [] -lpq
> > 
> > So that's the reason...I think U could change this...
> > 
> > 
> > ---------------------------------------------------------------
> > TECHER Jean David
> > 01MAP
> > e-mail: david at 01map.net
> > Tél: 04 67 45 60 27
> > Entreprise: http://www.01map.net
> > Perso: http://techer.pascal.free.fr/postgis/
> > ---------------------------------------------------------------
> > ----- Original Message -----
> > From: <strk at refractions.net>
> > To: "Jean David TECHER" <davidtecher at yahoo.fr>
> > Cc: <postgis-devel at postgis.refractions.net>
> > Sent: Tuesday, April 26, 2005 11:26 AM
> > Subject: Re: [postgis-users] Building PostGIS from Sunday 
> > CVS..without PostgreSQL Sources...OK ! ! !
> > 
> > 
> > > On Tue, Apr 26, 2005 at 11:03:34AM +0200, Jean David TECHER wrote:
> > >
> > > [...]
> > > > My patch is attached to this mail 
> > (postgis_cvs.patch)...In order to
> > applyng
> > > > it (thanks to Gerald for patching :-))
> > >
> > > [...]
> > > > The last thing to do -  for people who wants to compil postgis on
> > windows -
> > > > is to take care of Docbook, iconv.dll and xsltproc
> > > > Else 'make install' wil stop for "make -C doc"
> > >
> > > This is true for all systems. Detecting iconv presence will 
> > allow us 
> > > to build shp2pgsql with or without utf8 support w/out user (or 
> > > packager usually) intervantion. Detecting xsltproc absence 
> > should skip 
> > > attempt at generating docs. Note anyway that postgis packages come 
> > > with documentation already generated, thus a make in doc
> > > *should* tells you "nothing to be done here" or something similar. 
> > > Your mileage may vary of course... if this is not the case I'd drop 
> > > the default attempt at making docs in order to avoid a 
> > dependency on 
> > > xsltproc.
> > >
> > > Some comments and questions on the patch:
> > >
> > > > Here is the contense of the patch:
> > > >
> > > > --- postgis/Makefile.config.in Tue Apr 19 10:41:21 2005
> > > > +++ postgis/Makefile.config.in Mon Apr 25 12:43:59 2005
> > > > @@ -71,9 +71,13 @@
> > > >  #
> > > >  PGCONFIG=@PGCONFIG@
> > > >  PGFEINCLUDES=@PGFEINCLUDES@
> > > > +ifeq ($(findstring MINGW,$(MSYSTEM)),MINGW) 
> > > > +PGBEINCLUDES=@PGBEINCLUDES@ @PGBEINCLUDES@/port
> > @PGBEINCLUDES@/port/win32
> > > > @PGBEINCLUDES@/port/win32/arpa
> > > > +PGFELIBS=$(shell @PGCONFIG@ --libdir)
> > > > +else
> > > >  PGBEINCLUDES=@PGBEINCLUDES@
> > > >  PGFELIBS=@PGFELIBS@
> > > > -
> > > > +endif
> > >
> > > Here you're adding more server headers in case of a build against 
> > > MINGW. Question is: who is requiring this ? Which source files are 
> > > trying to include things which are not in PGBEINCLUDES (PostgreSQL 
> > > Back-End
> > > includes) ? Is there a different server-headers layout for 
> > postgresql
> > > un unix and w32 systems ?
> > >
> > > >  #
> > > >  # Docbook
> > > >  #
> > > > @@ -112,8 +116,13 @@
> > > >  #
> > > >  # DLL
> > > >  #
> > > > -DLSUFFIX=@DLSUFFIX@
> > > > -DLFLAGS=@DLFLAGS@
> > > > +ifeq ($(findstring MINGW,$(MSYSTEM)),MINGW)
> > > > + DLSUFFIX=.dll
> > > > + DLFLAGS=@DLFLAGS@
> > > > +else
> > > > + DLSUFFIX=@DLSUFFIX@
> > > > + DLFLAGS=@DLFLAGS@
> > > > +endif
> > >
> > > The value of DLSUFFIX sould be set by configure IMO, the 
> > "findstring" 
> > > call replaced by an invocation of uname probably. What does 
> > uname -s 
> > > returns there ?
> > >
> > > >  #---------------------------------------------------------------
> > > >  # END OF CONFIGURATION
> > > > --- postgis/loader/Makefile Mon Apr 18 14:46:48 2005
> > > > +++ postgis/loader/Makefile Mon Apr 25 12:40:44 2005
> > > > @@ -32,7 +32,13 @@
> > > >   $(CC) $(CFLAGS) $(PGFEINCLUDES) -c $<
> > > >
> > > >  pgsql2shp$(EXE): $(OBJS) pgsql2shp.o PQunescapeBytea.o
> > > > +
> > > > +ifeq ($(findstring MINGW,$(MSYSTEM)),MINGW)
> > > > + $(CC) $(CFLAGS) $(OBJS) PQunescapeBytea.o pgsql2shp.o $(LDFLAGS)
> > > > $(PGFELIBS)/libpq.a -o $@
> > > > +else
> > > >   $(CC) $(CFLAGS) $(PGFELIBS) $(OBJS) PQunescapeBytea.o 
> > pgsql2shp.o
> > > > $(LDFLAGS) -o $@
> > > > +endif
> > > > +
> > >
> > > Why do you need to link statically against the libpq ?
> > >
> > > >  shp2pgsql$(EXE): $(OBJS) shp2pgsql.o
> > > >   $(CC) $(CFLAGS) $(OBJS) shp2pgsql.o $(LDFLAGS) -o $@
> > > > --- postgis/lwgeom/Makefile Wed Apr 20 15:17:37 2005
> > > > +++ postgis/lwgeom/Makefile Mon Apr 25 12:09:17 2005
> > > > @@ -13,21 +13,32 @@
> > > >  # Shared library parameters.
> > > >  #
> > > >  NAME=lwgeom
> > > > +ifeq ($(findstring MINGW,$(MSYSTEM)),MINGW)
> > > > +SHLIB           =
> > > > lib$(NAME).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)$(DLSUFFIX)
> > > > +SHLIB_MAJOR     = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
> > > > +SHLIB_BARE      = lib$(NAME)$(DLSUFFIX)
> > > > +SHLIB_LINK  =
> > > > +else
> > > >  SHLIB           =
> > > > lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
> > > >  SHLIB_MAJOR     = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
> > > >  SHLIB_BARE      = lib$(NAME)$(DLSUFFIX)
> > > > -SHLIB_LINK  = $(DLFLAGS)
> > > > +SHLIB_LINK  = $(DLFLAGS)
> > > > +endif
> > > >  MODULE_FILENAME = $(LPATH)/$(SHLIB)
> > > >
> > > >  #---------------------------------------------------------------
> > > >  # Postgis version and build date
> > > >  #---------------------------------------------------------------
> > > > -
> > > > -POSTGIS_VERSION = $(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
> > > > USE_GEOS=$(USE_GEOS) USE_PROJ=$(USE_PROJ) USE_STATS=$(USE_STATS) 
> > > > -POSTGIS_LIB_VERSION =
> > > > $(SO_MAJOR_VERSION).$(SO_MINOR_VERSION).$(SO_MICRO_VERSION)
> > > > -POSTGIS_BUILD_DATE := $(shell date -u "+%Y-%m-%d %H:%M:%S")
> > > > -
> > > > +ifeq ($(findstring MINGW,$(MSYSTEM)),MINGW)  POSTGIS_VERSION = 
> > > > +$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
> > > > USE_GEOS=$(USE_GEOS) USE_PROJ=$(USE_PROJ) USE_STATS=$(USE_STATS)
> > > > + POSTGIS_LIB_VERSION =
> > > > $(SO_MAJOR_VERSION).$(SO_MINOR_VERSION).$(SO_MICRO_VERSION)
> > > > + POSTGIS_BUILD_DATE := $(shell date -u "+%Y-%m-%d %H:%M:%S") else
> > > > + POSTGIS_VERSION = $(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
> > > > USE_GEOS=$(USE_GEOS) USE_PROJ=$(USE_PROJ) USE_STATS=$(USE_STATS)
> > > > + POSTGIS_LIB_VERSION =
> > > > $(SO_MAJOR_VERSION).$(SO_MINOR_VERSION).$(SO_MICRO_VERSION)
> > > > + POSTGIS_BUILD_DATE := $(shell date -u "+%Y-%m-%d 
> > %H:%M:%S") endif
> > >
> > > Am I missing something or the two blocks (MINGW or not) are exactly 
> > > the same in both of the blocks above ?
> > >
> > > >
> > > >  #---------------------------------------------------------------
> > > >
> > > > @@ -87,8 +98,17 @@
> > > >
> > > >  all: $(GEOS_RULES) $(SHLIB) ../lwpostgis.sql
> > > >
> > > > +#------------ It's for Win32 -----------------------------------
> > > >  $(SHLIB): $(OBJS)
> > > > +
> > > > +ifeq ($(findstring MINGW,$(MSYSTEM)),MINGW)
> > > > + dlltool --export-all  --output-def lwgeom.def $(OBJS)  
> > dllwrap  -o 
> > > > +$@ --dllname $@ --def lwgeom.def $(OBJS)
> > > > $(SHLIB_LINK) -L$(shell pg_config --libdir) -lpostgres
> > > > + dlltool --dllname $@  --def lwgeom.def --output-lib liblwgeom.a 
> > > > +else
> > > >   $(CC) $(SHLIB_LINK) -o $(SHLIB) $(OBJS)
> > > > +endif
> > >
> > > This should be fine, except last dlltool call is for building the 
> > > liblwgeom.a, which is not needed.
> > >
> > > --strk;
> > >
> > > > +
> > > >
> > > >  wktparse.tab.c: wktparse.y
> > > >   $(YACC) -vd -p lwg_parse_yy wktparse.y
> > > >
> > > > ---------------------------------------------------------------
> > > > TECHER Jean David
> > > > 01MAP
> > > > e-mail: david at 01map.net
> > > > Tél: 04 67 45 60 27
> > > > Entreprise: http://www.01map.net
> > > > Perso: http://techer.pascal.free.fr/postgis/
> > > > ---------------------------------------------------------------
> > > > ----- Original Message -----
> > > > From: <strk at refractions.net>
> > > > To: "Jean David TECHER" <davidtecher at yahoo.fr>
> > > > Cc: "PostGIS Users Discussion" 
> > > > <postgis-users at postgis.refractions.net>
> > > > Sent: Monday, April 25, 2005 1:44 AM
> > > > Subject: Re: [postgis-users] Building PostGIS from Sunday 
> > CVS..without
> > > > PostgreSQL Sources...OK ! ! !
> > > >
> > > >
> > > > > On Sun, Apr 24, 2005 at 07:39:38PM +0200, Jean David 
> > TECHER wrote:
> > > > > > Hi Sandro and PostGIS'ers,
> > > > > >
> > > > > > Last Sunday, I decided to compil PostGIS from CVS 
> > (form sunday 
> > > > > > in
> > the
> > > > afternoon)...
> > > > > >
> > > > > > Since the goal is to build PostGIS WITHOUT PostgreSQL sources 
> > > > > > but
> > from
> > > > the binairies installed on the computer
> > > > > > the tests on Windows for me is OK...Successfull...I 
> > did it for 
> > > > > > PG
> > 8.0.2,
> > > > Geos 2.1.1 and Proj 4.4.9
> > > > >
> > > > > Good news!
> > > > > Weird I didn't change anything since your worried mails ;)
> > > > >
> > > > > > The only changes -I had to do - were to make few changes on:
> > > > > >
> > > > > > -1/ postgis/Makefile.config.in
> > > > > >
> > > > > > - 2/postgis/lwgeom/Makefile
> > > > > >
> > > > > > - 3/postgis/loader/Makefile
> > > > > >
> > > > > > For each file, I used
> > > > > >
> > > > > > ifeq ($(findstring MINGW,$(MSYSTEM)),MINGW)
> > > > > >      XXXXXXXXX
> > > > > > else
> > > > > >      XXXXXXXXXX
> > > > > > endif
> > > > >
> > > > > I'd put the XXXXXX all in Makefile.config.in.
> > > > >
> > > > > > The changes in files are at the end of this files (sorry, I 
> > > > > > didn't
> > at
> > > > enough times to make patch... :-[ ....)
> > > > > > Since i'm not at job on Monday but Tuesday, I will do 
> > a resume 
> > > > > > doc
> > next
> > > > Tuesday
> > > > > >
> > > > > > NOTICE: For creating postgis doc, I need to have
> > > > docbook-xslt-stylesheets, xlstproc and icon.dll installed on 
> > > > Windows..Nevermind
> > > > > > Just 3 downloading to do.
> > > > > >
> > > > > > cvs -d:pserver:cvs at postgis.refractions.net:/home/cvs/postgis 
> > > > > > login cvs 
> > > > > > -d:pserver:cvs at postgis.refractions.net:/home/cvs/postgis co
> > postgis
> > > > > > cd postgis
> > > > > > autoconf
> > > > > > configure --enable-autotconf --with-geos=`which geos-config`
> > > > >
> > > > > If geos-config is in your PATH, which is what you expect using 
> > > > > which,
> > > > there should be
> > > > > no need to be explicit. A simple --with-geos should work.
> > > > >
> > > > > > make
> > > > > > make install
> > > > > > cd regress
> > > > > > make
> > > > > >
> > > > > > Regression Tests, Loading some data with the laoder (...) work
> > fine...
> > > > >
> > > > > Thanks! See you on Tuesday with patches then :)
> > > > > --strk;
> > > > >
> > > > > >
> > > > > >
> > > > > >
> > > >
> > //////////////////////////////////////////////////////////////
> > //////////////
> > > >
> > //////////////////////////////////////////////////////////////
> > //////////////
> > > >
> > //////////////////////////////////////////////////////////////
> > //////////////
> > > > /////////////
> > > > > >
> > > >
> > ========================================[postgis/Makefile.conf
> > ig.in ]=======
> > > > =======================================================
> > > > > > 
> > #---------------------------------------------------------------
> > > > > > # Configuration Directives
> > > > > > 
> > #---------------------------------------------------------------
> > > > > >
> > > > > > #
> > > > > > # We recommend that you install the Proj4 and GEOS 
> > libraries # 
> > > > > > referenced below to get the most use out of your PostGIS # 
> > > > > > database.
> > > > > >
> > > > > > #
> > > > > > # Set USE_PROJ to 1 for Proj4 reprojection support 
> > (recommended) 
> > > > > > # # Reprojection allows you to transform coordinate systems
> > > > > > # in the database with the Transform() function.
> > > > > > #
> > > > > > # Download from: http://www.remotesensing.org/proj
> > > > > > #
> > > > > > USE_PROJ=@USE_PROJ@
> > > > > > PROJ_DIR=@PROJ_DIR@
> > > > > >
> > > > > > #
> > > > > > # Set USE_GEOS to 1 for GEOS spatial predicate and operator # 
> > > > > > support (recommended). # GEOS installation directory 
> > defaults to 
> > > > > > /usr/local, # set GEOS_DIR environment variable to change it.
> > > > > > #
> > > > > > # GEOS allows you to do exact topological tests, such as
> > > > > > # Intersects() and Touches(), as well as geometry operations,
> > > > > > # such as Buffer(), GeomUnion() and Difference().
> > > > > > #
> > > > > > # Download from: http://geos.refractions.net
> > > > > > #
> > > > > > USE_GEOS=@USE_GEOS@
> > > > > > GEOS_DIR=@GEOS_DIR@
> > > > > >
> > > > > > #
> > > > > > # Set USE_JTS to 1 if you have libjts installed.
> > > > > > #
> > > > > > USE_JTS=0
> > > > > > JTS_INCLUDES=@JTS_INCLUDES@
> > > > > > JTS_LIBDIR=@JTS_LIBDIR@
> > > > > >
> > > > > > #
> > > > > > # Set USE_STATS to 1 for new GiST statistics 
> > collection support 
> > > > > > # Note that this support requires additional columns in # 
> > > > > > GEOMETRY_COLUMNS, so see the list archives for info 
> > or # install 
> > > > > > a fresh database using postgis.sql. # This option is 
> > useless for 
> > > > > > builds against PGSQL>=80 (stats # are always gathered in that 
> > > > > > case, and you don't need additional # columns in 
> > > > > > geometry_columns). #
> > > > > > USE_STATS=1
> > > > > >
> > > > > > #
> > > > > > # Set AUTOCACHE_BBOX to 0 if you want finer control over # 
> > > > > > bounding box computation and caching for your 
> > geometries. # If 
> > > > > > you do, bbox computattion strategies are listed in # the file 
> > > > > > lwgeom/BBOXCACHE_BEHAVIOURS, but don't expect # them 
> > to be easy 
> > > > > > nor consistent. #
> > > > > > AUTOCACHE_BBOX=1
> > > > > >
> > > > > > #
> > > > > > # Set USE_ICONV to 1 if you want the loader (shp2pgsql) # to 
> > > > > > support UTF-8 output. #
> > > > > > USE_ICONV=0
> > > > > >
> > > > > > #
> > > > > > # PGSQL
> > > > > > #
> > > > > > PGCONFIG=@PGCONFIG@
> > > > > > PGFEINCLUDES=@PGFEINCLUDES@
> > > > > > ifeq ($(findstring MINGW,$(MSYSTEM)),MINGW) 
> > > > > > PGBEINCLUDES=@PGBEINCLUDES@ @PGBEINCLUDES@/port
> > > > @PGBEINCLUDES@/port/win32 @PGBEINCLUDES@/port/win32/arpa
> > > > > > else
> > > > > > PGFELIBS=@PGFELIBS@
> > > > > > endif
> > > > > > #
> > > > > > # Docbook
> > > > > > #
> > > > > > XSLBASE=@XSLBASE@
> > > > > >
> > > > > > #
> > > > > > # Compilers
> > > > > > #
> > > > > > CC=@CC@
> > > > > > CXX=@CXX@
> > > > > >
> > > > > > #
> > > > > > # Other programs
> > > > > > #
> > > > > > FLEX=@FLEX@
> > > > > > YACC=@YACC@
> > > > > > INSTALL=@INSTALL@ -c
> > > > > > INSTALL_DATA=$(INSTALL) -m 644
> > > > > > INSTALL_BIN=$(INSTALL) -m 755
> > > > > > INSTALL_LIB=$(INSTALL) -m 755
> > > > > >
> > > > > > #
> > > > > > # PATHS
> > > > > > #
> > > > > > prefix=@prefix@
> > > > > > exec_prefix=@exec_prefix@
> > > > > > bindir=@bindir@
> > > > > > datadir=@datadir@
> > > > > > mandir=@mandir@
> > > > > > docdir=@docdir@
> > > > > > libdir=@libdir@
> > > > > > libexecdir=@libexecdir@ MODULE_INSTALLDIR=@MODULE_INSTALLDIR@
> > > > > > LPATH=@LPATH@
> > > > > >
> > > > > > #
> > > > > > # DLL
> > > > > > #
> > > > > > ifeq ($(findstring MINGW,$(MSYSTEM)),MINGW)  DLSUFFIX=.dll
> > > > > >  DLFLAGS=@DLFLAGS@
> > > > > > else
> > > > > >  DLSUFFIX=@DLSUFFIX@
> > > > > >  DLFLAGS=@DLFLAGS@
> > > > > > endif
> > > > > >
> > > > > > 
> > #---------------------------------------------------------------
> > > > > > # END OF CONFIGURATION
> > > > > > 
> > #---------------------------------------------------------------
> > > > > >
> > > > > > # Use JTS instead of GEOS if available
> > > > > > ifeq ($(USE_JTS),1)
> > > > > >  USE_GEOS=0
> > > > > > endif
> > > > > >
> > > > > > 
> > #---------------------------------------------------------------
> > > > > > # Test the version string and set the USE_VERSION macro # 
> > > > > > appropriately. #
> > > > > > VERSION=$(shell $(PGCONFIG) --version)
> > > > > > ifneq ($(findstring 7.1,$(VERSION)),)
> > > > > >  USE_VERSION=71
> > > > > > else
> > > > > >  ifneq ($(findstring 7.2,$(VERSION)),)
> > > > > >   USE_VERSION=72
> > > > > >  else
> > > > > >   ifneq ($(findstring 7.3,$(VERSION)),)
> > > > > >    USE_VERSION=73
> > > > > >   else
> > > > > >    ifneq ($(findstring 7.4,$(VERSION)),)
> > > > > >     USE_VERSION=74
> > > > > >    else
> > > > > >     USE_VERSION=80
> > > > > >    endif
> > > > > >   endif
> > > > > >  endif
> > > > > > endif
> > > > > >
> > > > > >
> > > > > >
> > > >
> > ==============================================================
> > ==============
> > > > ==============================================
> > > > > > ========================================[
> > > >
> > postgis/lwgeom/Makefile 
> > ]===================================================
> > > > ===========
> > > > > > # Configuration Directives
> > > > > > include ../Makefile.config
> > > > > > include ../Version.config
> > > > > >
> > > > > > 
> > #---------------------------------------------------------------
> > > > > > # Default missing CXX variable to c++
> > > > > > #
> > > > > > ifeq ($(CXX),)
> > > > > >  CXX = c++
> > > > > > endif
> > > > > >
> > > > > > 
> > #---------------------------------------------------------------
> > > > > > # Shared library parameters.
> > > > > > #
> > > > > > NAME=lwgeom
> > > > > > ifeq ($(findstring MINGW,$(MSYSTEM)),MINGW)
> > > > > > SHLIB           =
> > > > lib$(NAME).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)$(DLSUFFIX)
> > > > > > SHLIB_MAJOR     = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
> > > > > > SHLIB_BARE      = lib$(NAME)$(DLSUFFIX)
> > > > > > SHLIB_LINK  =
> > > > > > else
> > > > > > SHLIB           =
> > > > lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
> > > > > > SHLIB_MAJOR     = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
> > > > > > SHLIB_BARE      = lib$(NAME)$(DLSUFFIX)
> > > > > > SHLIB_LINK  = $(DLFLAGS)
> > > > > > endif
> > > > > >
> > > > > > MODULE_FILENAME = $(LPATH)/$(SHLIB)
> > > > > >
> > > > > > 
> > #---------------------------------------------------------------
> > > > > > # Postgis version and build date
> > > > > > 
> > #---------------------------------------------------------------
> > > > > > ifeq ($(findstring MINGW,$(MSYSTEM)),MINGW)  
> > POSTGIS_VERSION = 
> > > > > > $(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
> > > > USE_GEOS=$(USE_GEOS) USE_PROJ=$(USE_PROJ) USE_STATS=$(USE_STATS)
> > > > > >  POSTGIS_LIB_VERSION =
> > > > $(SO_MAJOR_VERSION).$(SO_MINOR_VERSION).$(SO_MICRO_VERSION)
> > > > > >  POSTGIS_BUILD_DATE := $(shell date -u "+%Y-%m-%d %H:%M:%S") 
> > > > > > else  POSTGIS_VERSION = 
> > $(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
> > > > USE_GEOS=$(USE_GEOS) USE_PROJ=$(USE_PROJ) USE_STATS=$(USE_STATS)
> > > > > >  POSTGIS_LIB_VERSION =
> > > > $(SO_MAJOR_VERSION).$(SO_MINOR_VERSION).$(SO_MICRO_VERSION)
> > > > > >  POSTGIS_BUILD_DATE := $(shell date -u "+%Y-%m-%d %H:%M:%S") 
> > > > > > endif
> > > > > >
> > > > > > 
> > #---------------------------------------------------------------
> > > > > >
> > > > > > override CFLAGS += -g -O2 -fexceptions
> > > > > > override CFLAGS += -fPIC
> > > > > > #override CFLAGS
> > > > += -I$(srcdir) -DFRONTEND -DSYSCONFDIR='"$(sysconfdir)"'
> > > > > > override CFLAGS += -DUSE_VERSION=$(USE_VERSION) 
> > override CFLAGS 
> > > > > > += -DPOSTGIS_LIB_VERSION='"$(POSTGIS_LIB_VERSION)"'
> > > > > > override CFLAGS += 
> > > > > > -DPOSTGIS_SCRIPTS_VERSION='"$(SCRIPTS_VERSION)"'
> > > > > > override CFLAGS += 
> > -DPOSTGIS_BUILD_DATE='"$(POSTGIS_BUILD_DATE)"'
> > > > > >
> > > > > > JTS_OBJ=lwgeom_nojts.o
> > > > > > ifeq ($(USE_GEOS),1)
> > > > > >  override CFLAGS += -I$(GEOS_DIR)/include -DUSE_GEOS  
> > > > > > GEOS_RULES=detect_geos_version  
> > > > > > GEOS_WRAPPER=lwgeom_geos_wrapper.o
> > > > > >  JTS_OBJ=lwgeom_geos.o
> > > > > >  SHLIB_LINK += -lstdc++ -L$(GEOS_DIR)/lib -lgeos
> > > > > > endif
> > > > > >
> > > > > > ifeq ($(USE_JTS),1)
> > > > > >  override CFLAGS += -I$(JTS_INCLUDES) -DUSE_JTS  
> > > > > > JTS_WRAPPER=lwgeom_jts_wrapper.o  JTS_OBJ=lwgeom_jts.o
> > > > > >  SHLIB_LINK += -lgcj -ljts -lstdc++ -L$(JTS_LIBDIR)
> > > > > > endif
> > > > > >
> > > > > > ifeq ($(USE_PROJ),1)
> > > > > >  override CFLAGS += -I$(PROJ_DIR)/include -DUSE_PROJ  
> > SHLIB_LINK 
> > > > > > += -L$(PROJ_DIR)/lib -lproj endif
> > > > > >
> > > > > > override CFLAGS +=
> > $(PGBEINCLUDES) -DAUTOCACHE_BBOX=$(AUTOCACHE_BBOX)
> > > > > >
> > > > > > override CXXFLAGS := $(CFLAGS)
> > > > > > # memory debug for gcc 2.91, 2.95, 3.0 and 3.1
> > > > > > # for gcc >= 3.2.2 set GLIBCPP_FORCE_NEW at runtime instead 
> > > > > > #override CXXFLAGS += -D__USE_MALLOC
> > > > > >
> > > > > > 
> > #---------------------------------------------------------------
> > > > > > # Add index selectivity to C flags
> > > > > > #
> > > > > > ifeq ($(USE_STATS),1)
> > > > > >  override CFLAGS += -DUSE_STATS
> > > > > > endif
> > > > > >
> > > > > > SA_OBJS=measures.o box2d.o ptarray.o lwgeom_api.o lwgeom.o 
> > > > > > lwpoint.o
> > > > lwline.o lwpoly.o lwmpoint.o lwmline.o lwmpoly.o lwcollection.o
> > > > $(GEOS_WRAPPER) $(JTS_WRAPPER) wktunparse.o lwgparse.o 
> > > > wktparse.tab.o lex.yy.o vsprintf.o
> > > > > >
> > > > > > OBJS=$(SA_OBJS) liblwgeom.o lwgeom_pg.o lwgeom_debug.o
> > lwgeom_spheroid.o
> > > > lwgeom_ogc.o lwgeom_functions_analytic.o $(JTS_OBJ) 
> > lwgeom_inout.o 
> > > > lwgeom_estimate.o lwgeom_functions_basic.o lwgeom_gist.o 
> > > > lwgeom_btree.o lwgeom_transform.o stringBuffer.o lwgeom_box.o 
> > > > lwgeom_box3d.o lwgeom_box2dfloat4.o lwgeom_chip.o lwgeom_svg.o 
> > > > lwgeom_gml.o lwgeom_triggers.o lwgeom_dump.o
> > > > > >
> > > > > > #OTHERS=y.output lex.yy.c wktparse.tab.c wktparse.tab.h
> > lwpostgis.sql
> > > > > > OTHERS=y.output lwpostgis.sql ../lwpostgis.sql
> > postgis_geos_version.h
> > > > > >
> > > > > >
> > > > > > 
> > #---------------------------------------------------------------
> > > > > > # Makefile targets
> > > > > >
> > > > > > all: $(GEOS_RULES) $(SHLIB) ../lwpostgis.sql
> > > > > >
> > > > > > #------------ It's for Win32 
> > -----------------------------------
> > > > > > $(SHLIB): $(OBJS)
> > > > > >
> > > > > > ifeq ($(findstring MINGW,$(MSYSTEM)),MINGW)
> > > > > >  dlltool --export-all  --output-def lwgeom.def 
> > $(OBJS)  dllwrap  
> > > > > > -o $@ --dllname $@ --def lwgeom.def $(OBJS)
> > > > $(SHLIB_LINK) -L$(shell pg_config --libdir) -lpostgres
> > > > > >  dlltool --dllname $@  --def lwgeom.def --output-lib 
> > liblwgeom.a 
> > > > > > else
> > > > > >  $(CC) $(SHLIB_LINK) -o $(SHLIB) $(OBJS)
> > > > > > endif
> > > > > >
> > > > > >
> > > > > > wktparse.tab.c: wktparse.y
> > > > > >  $(YACC) -vd -p lwg_parse_yy wktparse.y
> > > > > >  mv -f y.tab.c wktparse.tab.c
> > > > > >  mv -f y.tab.h wktparse.tab.h
> > > > > >
> > > > > >
> > > > > > lex.yy.c: wktparse.lex wktparse.tab.c
> > > > > >  $(FLEX) -Plwg_parse_yy -i -f -o'lex.yy.c' wktparse.lex
> > > > > >
> > > > > > lwgeom_jts_wrapper.o: lwgeom_jts_wrapper.cpp
> > > > > >
> > > > > > lwgeom_geos_wrapper.o: lwgeom_geos_wrapper.cpp
> > > > > >
> > > > > > lwgeom_geos.o: lwgeom_geos.c profile.h
> > > > > >
> > > > > > lwgeom_jts.o: lwgeom_jts.c profile.h
> > > > > >
> > > > > > lwgeom_nojts.o: lwgeom_nojts.c
> > > > > >
> > > > > > lwgeom_functions_basic.o: lwgeom_functions_basic.c profile.h
> > > > > >
> > > > > > # Shared library stuff
> > > > > >
> > > > > > ../lwpostgis.sql: lwpostgis.sql
> > > > > >  cp lwpostgis.sql ..
> > > > > >
> > > > > > lwpostgis.sql: lwpostgis.sql.in
> > > > > >  cpp -P -traditional-cpp -DUSE_VERSION=$(USE_VERSION) 
> > $< | sed 
> > > > > > -e
> > > >
> > 's:@MODULE_FILENAME@:$(MODULE_FILENAME):g;s:@POSTGIS_VERSION@:
> > $(POSTGIS_VERS
> > > >
> > ION):g;s:@POSTGIS_SCRIPTS_VERSION@:$(SCRIPTS_VERSION):g;s/@POS
> > TGIS_BUILD_DAT
> > > > E@/$(POSTGIS_BUILD_DATE)/g' | grep -v '^#' > $@
> > > > > >
> > > > > > install: all install-lwgeom-lib install-lwgeom-scripts
> > > > > >
> > > > > > install-lwgeom-scripts:
> > > > > >  @mkdir -p $(datadir)
> > > > > >  $(INSTALL_DATA) lwpostgis.sql $(datadir)/lwpostgis.sql
> > > > > >  $(INSTALL_DATA) ../spatial_ref_sys.sql
> > $(datadir)/spatial_ref_sys.sql
> > > > > >
> > > > > > #- This has been copied from postgresql and adapted
> > > > > > install-lwgeom-lib: $(SHLIB)
> > > > > >  @mkdir -p $(MODULE_INSTALLDIR)
> > > > > >  $(INSTALL_LIB) $< $(MODULE_INSTALLDIR)/$(SHLIB)
> > > > > >
> > > > > > ifneq ($(PORTNAME), win)
> > > > > > ifneq ($(SHLIB), $(SHLIB_MAJOR))
> > > > > >  cd $(MODULE_INSTALLDIR) && \
> > > > > >  rm -f $(SHLIB_MAHOR) && \
> > > > > >  ln -sf $(SHLIB) $(SHLIB_MAJOR)
> > > > > > endif
> > > > > > ifneq ($(SHLIB), lib$(NAME)$(DLSUFFIX))
> > > > > >  cd $(MODULE_INSTALLDIR) && \
> > > > > >  rm -f $(SHLIB_BARE) && \
> > > > > >  ln -sf $(SHLIB) $(SHLIB_BARE)
> > > > > > endif
> > > > > > endif # not win
> > > > > >
> > > > > > uninstall-lib:
> > > > > >  rm -f $(MODULE_INSTALLDIR)/$(SHLIB)
> > > > > >  rm -f $(MODULE_INSTALLDIR)/$(SHLIB_MAJOR)
> > > > > >  rm -f $(MODULE_INSTALLDIR)/$(SHLIB_BARE)
> > > > > >
> > > > > > #----------------------------------------------------------
> > > > > >
> > > > > > detect_geos_version:
> > > > > >  sh ../geos_version.sh $(GEOS_DIR) > postgis_geos_version.h
> > > > > >
> > > > > > uninstall-lwgeom-scripts:
> > > > > >  rm -f $(datadir)/postgis/lwpostgis.sql
> > > > > >  rm -f $(datadir)/postgis/spatial_ref_sys.sql
> > > > > >
> > > > > > uninstall: uninstall-lib uninstall-lwgeom-scripts
> > > > > >
> > > > > > clean-lib:
> > > > > >  rm -f $(SHLIB) $(SHLIB_MAJOR) $(SHLIB_BARE)
> > > > > >
> > > > > > clean distclean: clean-lib
> > > > > >  rm -f *.o *.so *.a test $(OTHERS)
> > > > > >
> > > > > > maintainer-clean: clean
> > > > > >  rm  -f lex.yy.c wktparse.tab.c wktparse.tab.h
> > > > > >
> > > > > > liblwgeom_sa.o: liblwgeom.c
> > > > > >  $(CC) -DSTANDALONE -o $@ -c $<
> > > > > >
> > > > > > liblwgeom_sa.so: $(SA_OBJS) liblwgeom_sa.o
> > > > > >  $(CC) -shared -o $@ $^
> > > > > >
> > > > > > liblwgeom_sa.a: $(SA_OBJS) liblwgeom_sa.o
> > > > > >  $(AR) -rc $@ $^
> > > > > >
> > > > > >
> > > > > > test: liblwgeom_sa.so liblwgeom_sa.a test.c
> > > > > >  $(CC) -Wall -lm -g -o test test.c liblwgeom_sa.a
> > > > > >
> > > > > > tsort:
> > > > > >  lorder $(SA_OBJS) | tsort
> > > > > >
> > > > > >
> > > >
> > ==============================================================
> > ==============
> > > > ==============================================
> > > > > > ========================================[ 
> > > > > > postgis/loader/Makefile ]
> > > > ===============================================================
> > > > > > include ../Makefile.config
> > > > > >
> > > > > > #
> > > > > > # PostGIS Loader Makefile
> > > > > > #
> > > > > > SHELL = /bin/sh
> > > > > >
> > > > > > subdir = contrib/postgis/loader
> > > > > > EXE =
> > > > > >
> > > > > > UNAME = $(shell uname)
> > > > > > ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN)
> > > > > >  EXE = .exe
> > > > > > endif
> > > > > > ifeq ($(findstring MINGW,$(UNAME)),MINGW)
> > > > > >  EXE = .exe
> > > > > > endif
> > > > > >
> > > > > > OBJS = shpopen.o dbfopen.o getopt.o
> > > > > >
> > > > > > 
> > #---------------------------------------------------------------
> > > > > >
> > > > > > ifeq ($(USE_ICONV),1)
> > > > > >  override CFLAGS += -DUSE_ICONV
> > > > > > endif
> > > > > >
> > > > > > override CFLAGS := -g -Wall -I..
> > $(CFLAGS) -DUSE_VERSION=$(USE_VERSION)
> > > > > >
> > > > > > all: shp2pgsql$(EXE) pgsql2shp$(EXE)
> > > > > >
> > > > > > pgsql2shp.o: pgsql2shp.c
> > > > > >  $(CC) $(CFLAGS) $(PGFEINCLUDES) -c $<
> > > > > >
> > > > > > pgsql2shp$(EXE): $(OBJS) pgsql2shp.o PQunescapeBytea.o
> > > > > >
> > > > > > ifeq ($(findstring MINGW,$(MSYSTEM)),MINGW)
> > > > > >  $(CC) $(CFLAGS) $(OBJS) PQunescapeBytea.o pgsql2shp.o 
> > > > > > $(LDFLAGS)
> > > > $(shell pg_config --libdir)/libpq.a -o $@
> > > > > > else
> > > > > >  $(CC) $(CFLAGS) $(PGFELIBS) $(OBJS) PQunescapeBytea.o 
> > > > > > pgsql2shp.o
> > > > $(LDFLAGS) -o $@
> > > > > > endif
> > > > > >
> > > > > >
> > > > > > shp2pgsql$(EXE): $(OBJS) shp2pgsql.o
> > > > > >  $(CC) $(CFLAGS) $(OBJS) shp2pgsql.o $(LDFLAGS) -o $@
> > > > > >
> > > > > > install: all
> > > > > >  @mkdir -p $(bindir)
> > > > > >  $(INSTALL_BIN) pgsql2shp$(EXE) $(bindir)/pgsql2shp$(EXE)
> > > > > >  $(INSTALL_BIN) shp2pgsql$(EXE) $(bindir)/shp2pgsql$(EXE)
> > > > > >
> > > > > > uninstall:
> > > > > >  rm -f $(bindir)/pgsql2shp$(EXE)
> > > > > >  rm -f $(bindir)/shp2pgsql$(EXE)
> > > > > >
> > > > > > clean:
> > > > > >  rm -f $(OBJS) shp2pgsql.o pgsql2shp.o shp2pgsql$(EXE)
> > pgsql2shp$(EXE)
> > > > > >
> > > > > >
> > > > > >
> > > >
> > ==============================================================
> > ==============
> > > >
> > ==============================================----------------
> > --------------
> > > > ---------------------------------
> > > > > > TECHER Jean David
> > > > > > 01MAP
> > > > > > e-mail: david at 01map.net
> > > > > > Tél: 04 67 45 60 27
> > > > > > Entreprise: http://www.01map.net
> > > > > > Perso: http://techer.pascal.free.fr/postgis/
> > > > > > 
> > ---------------------------------------------------------------
> > > > > > _______________________________________________
> > > > > > postgis-users mailing list 
> > postgis-users at postgis.refractions.net
> > > > > > http://postgis.refractions.net/mailman/listinfo/postgis-users
> > > > >
> > >
> > >
> > 
> > 
> > 
> > _______________________________________________
> > postgis-devel mailing list postgis-devel at postgis.refractions.net
> > http://postgis.refractions.net/mailman/listinfo/postgis-devel
> > 
> 



More information about the postgis-devel mailing list