USE_GEOS=@USE_GEOS@
GEOS_DIR=@GEOS_DIR@
GEOS_LDFLAGS=@GEOS_LDFLAGS@
+GEOS_VERNUM=@GEOS_VERNUM@
#
# Set USE_JTS to 1 if you have libjts installed.
#---------------------------------------------------------------
# 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
- ifneq ($(findstring 8.0,$(VERSION)),)
- USE_VERSION=80
- else
- ifneq ($(findstring 8.1,$(VERSION)),)
- USE_VERSION=81
- else
- ifneq ($(findstring 8.2,$(VERSION)),)
- USE_VERSION=82
- else
- USE_VERSION=83
- endif
- endif
- endif
- endif
- endif
- endif
-endif
+# appropriately. eg:
+#
+# pg_config --version => PostgreSQL 8.3.1
+#
+PG_VERSION_MAJOR=$(shell $(PGCONFIG) --version | cut -f2 -d' ' | cut -f1 -d.)
+PG_VERSION_MINOR=$(shell $(PGCONFIG) --version | cut -f2 -d' ' | cut -f2 -d.)
+USE_VERSION=$(PG_VERSION_MAJOR)$(PG_VERSION_MINOR)
AC_SUBST(USE_GEOS)
AC_SUBST(GEOS_DIR)
AC_SUBST(GEOS_LDFLAGS)
+AC_SUBST(GEOS_VERNUM)
USE_GEOS=0
GEOS_DIR=
GEOS_LDFLAGS=
+GEOS_VERNUM=10
AC_PATH_PROG([GEOSCONFIG], [geos-config])
if test -n "$GEOSCONFIG"; then
)
if test $USE_GEOS -gt 0; then
- GEOS_DIR=`$GEOSCONFIG --prefix`
+ GEOS_DIR=`$GEOSCONFIG --prefix`
GEOS_LDFLAGS=`$GEOSCONFIG --ldflags 2> /dev/null`
+
if test x"$GEOS_LDFLAGS" = "x"; then
# older geos-config versions did not
# support the --ldflags switch, we'll
fi
GEOS_MAJOR=`$GEOSCONFIG --version | cut -d. -f1`
- if test "$GEOS_MAJOR" = "@GEOS_VERSION@"; then
- GEOS_MAJOR=1
- GEOS_MINOR=0
- else
- GEOS_MINOR=`$GEOSCONFIG --version | cut -d. -f2`
+ GEOS_MINOR=`$GEOSCONFIG --version | cut -d. -f2`
+ GEOS_VERNUM=`expr $GEOS_MAJOR "*" 10`
+ GEOS_VERNUM=`expr $GEOS_VERNUM "+" $GEOS_MINOR`
+
+ # GEOS >= 3.0.0 always has CAPI, however only GEOS >= 2.2.0 has CAPI support
+ # so abort if CAPI support is not available.
+ if test $GEOS_VERNUM -lt 22; then
+ AC_MSG_ERROR([PostGIS version >= 1.2.0 requires GEOS version >= 2.2.0])
fi
- # GEOS >= 3.0.0 always has CAPI, however only GEOS >= 2.2.0 has CAPI support
- # so abort if CAPI support is not available.
- if test $GEOS_MAJOR -lt 3; then
- if test $GEOS_MAJOR -eq 2 -a $GEOS_MINOR -lt 2; then
- AC_MSG_ERROR([PostGIS version >= 1.2.0 requires GEOS version >= 2.2.0])
- else
- # Make sure we abort for all other versions of GEOS
- if test $GEOS_MAJOR -lt 2; then
- AC_MSG_ERROR([PostGIS version >= 1.2.0 requires GEOS version >= 2.2.0])
- fi
- fi
- fi
fi
-AC_ARG_WITH(geos-libdir,
-[ --with-geos-libdir=PATH path to GEOS libdir
- [[taken from geos-config by default]]],
-[
-case "$with_geos_libdir" in
- no|yes)
- AC_MSG_ERROR([Invalid argument to --with-geos-libdir])
- ;;
- *)
- GEOS_LDFLAGS=-L${with_geos_libdir}
- ;;
-esac
-], with_geos_libdir=no)
-
-
AC_SUBST(USE_PROJ)
AC_SUBST(PROJ_DIR)
AC_SUBST(PROJ_LIBDIR)
---------------------------------------------------------------
-- Deprecation in 1.2.3
-CREATEFUNCTION simplify(geometry, float8)
+CREATEFUNCTION Simplify(geometry, float8)
RETURNS geometry
AS '@MODULE_FILENAME@', 'LWGEOM_simplify2d'
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
-- Availability: 1.2.2
-CREATEFUNCTION ST_simplify(geometry, float8)
+CREATEFUNCTION ST_Simplify(geometry, float8)
RETURNS geometry
AS '@MODULE_FILENAME@', 'LWGEOM_simplify2d'
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
-- Deprecation in 1.2.3
-CREATEFUNCTION segmentize(geometry, float8)
+CREATEFUNCTION Segmentize(geometry, float8)
RETURNS geometry
AS '@MODULE_FILENAME@', 'LWGEOM_segmentize2d'
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
-- Availability: 1.2.2
-CREATEFUNCTION ST_segmentize(geometry, float8)
+CREATEFUNCTION ST_Segmentize(geometry, float8)
RETURNS geometry
AS '@MODULE_FILENAME@', 'LWGEOM_segmentize2d'
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
AS '@MODULE_FILENAME@','convexhull'
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
+#if GEOS_VERNUM >= 30
+-- Requires GEOS >= 3.0.0
-- Availability: 1.3.3
CREATEFUNCTION ST_SimplifyPreserveTopology(geometry, float8)
RETURNS geometry
AS '@MODULE_FILENAME@','topologypreservesimplify'
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
+#endif
-- Deprecation in 1.2.3
CREATEFUNCTION difference(geometry,geometry)
LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable);
-- Deprecation in 1.2.3
-CREATEFUNCTION contains(geometry,geometry)
+CREATEFUNCTION Contains(geometry,geometry)
RETURNS boolean
AS '@MODULE_FILENAME@'
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
AS 'SELECT $1 && $2 AND _ST_Contains($1,$2)'
LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable);
+#if GEOS_VERNUM >= 30
-- Availability: 1.2.2
CREATEFUNCTION _ST_CoveredBy(geometry,geometry)
RETURNS boolean
RETURNS boolean
AS 'SELECT $1 && $2 AND _ST_Covers($1,$2)'
LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable);
+#endif
-- Deprecation in 1.2.3
CREATEFUNCTION overlaps(geometry,geometry)
-- requires GEOS 3.1.0-CAPI-1.5.0 or better
-----------------------------------------------------------------------
+#if GEOS_VERNUM >= 31
+
+-- Availability: 1.4.0
CREATEFUNCTION _ST_ContainsPrepared(geometry,geometry,integer)
RETURNS boolean
AS '@MODULE_FILENAME@','containsPrepared'
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
--- Availability: 1.3.3
+-- Availability: 1.4.0
-- Inlines index magic
CREATEFUNCTION ST_Contains(geometry,geometry,integer)
RETURNS boolean
AS 'SELECT $1 && $2 AND _ST_ContainsPrepared($1,$2,$3)'
LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable);
-
+-- Availability: 1.4.0
CREATEFUNCTION _ST_ContainsProperlyPrepared(geometry,geometry,integer)
RETURNS boolean
AS '@MODULE_FILENAME@','containsProperlyPrepared'
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
--- Availability: 1.3.3
+-- Availability: 1.4.0
-- Inlines index magic
CREATEFUNCTION ST_ContainsProperly(geometry,geometry,integer)
RETURNS boolean
AS 'SELECT $1 && $2 AND _ST_ContainsProperlyPrepared($1,$2,$3)'
LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable);
-
--- Availability: 1.3.3
+-- Availability: 1.4.0
-- Added for completeness, and to make testing ST_ContainsProperlyPrepared easier
CREATE OR REPLACE FUNCTION ST_ContainsProperly(geometry,geometry)
RETURNS boolean
AS 'SELECT $1 && $2 AND ST_relate($1,$2,''T**FF*FF*'')'
LANGUAGE 'SQL' IMMUTABLE;
-
+-- Availability: 1.4.0
CREATEFUNCTION _ST_CoversPrepared(geometry,geometry,integer)
RETURNS boolean
AS '@MODULE_FILENAME@','coversPrepared'
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
-
--- Availability: 1.3.3
+
+-- Availability: 1.4.0
-- Inlines index magic
CREATEFUNCTION ST_Covers(geometry,geometry,integer)
RETURNS boolean
AS 'SELECT $1 && $2 AND _ST_CoversPrepared($1,$2,$3)'
LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable);
-
+Availability: 1.4.0
CREATEFUNCTION _ST_IntersectsPrepared(geometry,geometry,integer)
RETURNS boolean
AS '@MODULE_FILENAME@','intersectsPrepared'
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
-
--- Availability: 1.3.3
+
+-- Availability: 1.4.0
-- Inlines index magic
CREATEFUNCTION ST_Intersects(geometry,geometry,integer)
RETURNS boolean
AS 'SELECT $1 && $2 AND _ST_IntersectsPrepared($1,$2,$3)'
LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable);
+#endif
+
-----------------------------------------------------------------------
-- SVG OUTPUT
-----------------------------------------------------------------------