Skip to content
Commits on Source (36)
......@@ -11,7 +11,7 @@
#
#################################################################################
project(GEOS)
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.0.0)
if(NOT CMAKE_VERSION)
set(CMAKE_VERSION
......@@ -28,8 +28,8 @@ set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules")
# GEOS release version
# GEOS C++ library SONAME will use these encoding ABI break at every release
set(VERSION_MAJOR 3)
set(VERSION_MINOR 5)
set(VERSION_PATCH 1)
set(VERSION_MINOR 6)
set(VERSION_PATCH 2)
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
# JTS_PORT is the version of JTS this release is bound to
......@@ -37,9 +37,9 @@ set(JTS_PORT 1.13.0)
message(STATUS "Setting GEOS version ${VERSION} as port of JTS ${JTS_PORT}")
# GEOS C API version
set(CAPI_INTERFACE_CURRENT 10)
set(CAPI_INTERFACE_REVISION 1)
set(CAPI_INTERFACE_AGE 9)
set(CAPI_INTERFACE_CURRENT 11)
set(CAPI_INTERFACE_REVISION 2)
set(CAPI_INTERFACE_AGE 10)
math(EXPR CAPI_VERSION_MAJOR "${CAPI_INTERFACE_CURRENT} - ${CAPI_INTERFACE_AGE}")
set(CAPI_VERSION_MINOR ${CAPI_INTERFACE_AGE})
......@@ -66,6 +66,12 @@ if(NOT MSVC)
"Set to ON|OFF (default) to build GEOS with assert() macro enabled" OFF)
endif()
option(GEOS_BUILD_STATIC
"Set to OFF|ON (default) to build GEOS static libraries" ON)
option(GEOS_BUILD_SHARED
"Set to OFF|ON (default) to build GEOS shared libraries" ON)
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
option(GEOS_ENABLE_FLOATSTORE
"Set to OFF|ON (default) to control IEEE754 conformance and remove extra precision" ON)
......@@ -81,6 +87,8 @@ endif()
#################################################################################
# Setup C/C++ compiler options
#################################################################################
set(CMAKE_CXX_STANDARD 98)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(NOT MSVC_IDE)
if(NOT CMAKE_BUILD_TYPE)
......@@ -233,6 +241,11 @@ include_directories(${PROJECT_BINARY_DIR}/capi)
# for including build-specific version.h, platform.h and geos_c.h
include_directories(${PROJECT_BINARY_DIR}/include)
# for geos_ts.cpp which does #include "../geos_revision.h" whereas
# CMake generates geos_revision.h in build directory,
# to not to pollute source tree.
include_directories(${PROJECT_BINARY_DIR})
#################################################################################
# Setup checks and generate config headers
#################################################################################
......@@ -254,33 +267,40 @@ MACRO (GET_SVN_REVISION)
ENDMACRO(GET_SVN_REVISION)
# Determine SVN/Git revision
set(GEOS_BUILD_PACKAGED TRUE)
# Determine SVN/Git revision
if(EXISTS "${PROJECT_SOURCE_DIR}/.svn")
set(GEOS_BUILD_PACKAGED FALSE)
GET_SVN_REVISION()
elseif(EXISTS "${PROJECT_SOURCE_DIR}/.git")
set(GEOS_BUILD_PACKAGED FALSE)
endif()
if (NOT GEOS_BUILD_PACKAGED)
message(STATUS "Generating GEOS revision header in ${PROJECT_BINARY_DIR}/geos_svn_revision.h")
# geos_revision.h does not exists in source or binary directory, we generate it
if( NOT EXISTS "${PROJECT_SOURCE_DIR}/geos_revision.h" AND
NOT EXISTS "${PROJECT_BINARY_DIR}/geos_revision.h")
message(STATUS "Generating GEOS revision header in ${PROJECT_BINARY_DIR}/geos_revision.h")
# CI builds (Travis CI, AppVeyor, etc.) perform git clone, not svn checkout.
# So, CI environment needs a dummy revision to generate the required header.
if (DEFINED ENV{CI})
set(Project_WC_REVISION 999999)
endif()
if ( NOT ${Project_WC_REVISION} EQUAL 0 )
set( GEOS_SVN_REVISION ${Project_WC_REVISION} )
set( GEOS_REVISION ${Project_WC_REVISION} )
configure_file (
"${PROJECT_SOURCE_DIR}/tools/geos_svn_revision_cmake.h.in"
"${PROJECT_BINARY_DIR}/geos_svn_revision.h" )
"${PROJECT_SOURCE_DIR}/tools/geos_revision_cmake.h.in"
"${PROJECT_BINARY_DIR}/geos_revision.h" )
else()
find_program(SH sh)
if(SH)
execute_process(COMMAND ${SH} -c
"cd ${PROJECT_SOURCE_DIR} && ${PROJECT_SOURCE_DIR}/tools/svn_repo_revision.sh")
"cd ${PROJECT_SOURCE_DIR} && ${PROJECT_SOURCE_DIR}/tools/repo_revision.sh")
file(RENAME "${PROJECT_SOURCE_DIR}/geos_svn_revision.h"
"${PROJECT_BINARY_DIR}/geos_svn_revision.h")
file(RENAME "${PROJECT_SOURCE_DIR}/geos_revision.h"
"${PROJECT_BINARY_DIR}/geos_revision.h")
else()
message("*** sh-compatible command not found, cannot create geos_svn_revision.h")
message("*** sh-compatible command not found, cannot create geos_revision.h")
message("*** Check SVN revision and create revision header manually:")
message("*** echo '#define GEOS_SVN_REVISION XYZ' > ${PROJECT_SOURCE_DIR}/geos_svn_revision.h")
message("*** echo '#define GEOS_REVISION XYZ' > ${PROJECT_SOURCE_DIR}/geos_revision.h")
endif()
endif()
endif()
......
This diff is collapsed.
......@@ -7,6 +7,11 @@
# is not able to detect required build order but blindly
# relies on the order items in SUBDIRS appear.
#
# foreign is needed to avoid enforced ChangeLog in EXTRA_DIST
# (we'll still take care of adding it ourselves)
AUTOMAKE_OPTIONS = foreign
SUBDIRS = \
include \
src \
......@@ -14,21 +19,33 @@ SUBDIRS = \
doc \
macros \
swig \
php \
tests \
tools
BUILT_SOURCES = geos_svn_revision.h
BUILT_SOURCES = geos_revision.h
EXTRA_DIST = acsite.m4 makefile.vc nmake.opt autogen.bat CMakeLists.txt \
cmake/modules/CheckPrototypeExists.cmake \
cmake/modules/COPYING-CMAKE-SCRIPTS \
cmake/cmake_uninstall.cmake.in geos_svn_revision.h
cmake/cmake_uninstall.cmake.in geos_revision.h
ACLOCAL_AMFLAGS = -I macros
cl:
cd $(srcdir) && svn update && svn2cl --authors=authors.svn -i -o ChangeLog
dist-hook: gen-ChangeLog
gen-ChangeLog:
cd $(distdir) && owd=`pwd` && \
cd ../ && cd $(srcdir) && \
if test -d .git; then \
git2cl > $${owd}/ChangeLog; \
elif test -d .svn; then \
svn2cl --authors=authors.svn -i -o $${owd}/ChangeLog; \
elif test -f ChangeLog; then \
echo "NOTE: distributing ChangeLog found in source dir"; \
cp ChangeLog $${owd}/ChangeLog; \
else \
echo "WARNING: could not find a ChangeLog" >&2; \
fi
apidoc doxygen:
cd doc && make $@
......@@ -39,7 +56,12 @@ authors.git: authors.svn
svnrebase: authors.git
cd $(srcdir) && git svn rebase --authors-file authors.git
geos_svn_revision.h:
top_srcdir=$(srcdir) sh $(srcdir)/tools/svn_repo_revision.sh
geos_revision.h:
top_srcdir=$(srcdir) sh $(srcdir)/tools/repo_revision.sh
VALGRIND = $(LIBTOOL) --mode=execute valgrind --leak-check=full --error-exitcode=1
valgrindcheck:
$(VALGRIND) tests/unit/geos_unit
.PHONY: geos_svn_revision.h
.PHONY: geos_revision.h
......@@ -13,6 +13,16 @@
# PARTICULAR PURPOSE.
@SET_MAKE@
#
# This file is part of project GEOS (http://trac.osgeo.org/geos/)
#
# NOTE: Make sure that 'src' appears first.
# 'capi' and 'doc' surely rely on availability of libgeos
# which is built under 'src' and it seems that automake
# is not able to detect required build order but blindly
# relies on the order items in SUBDIRS appear.
#
VPATH = @srcdir@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
......@@ -166,9 +176,9 @@ ETAGS = etags
CTAGS = ctags
CSCOPE = cscope
DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(srcdir)/Makefile.in AUTHORS COPYING ChangeLog \
INSTALL NEWS README TODO compile config.guess config.sub \
install-sh ltmain.sh missing
am__DIST_COMMON = $(srcdir)/Makefile.in AUTHORS COPYING INSTALL NEWS \
README TODO compile config.guess config.sub install-sh \
ltmain.sh missing py-compile
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
......@@ -289,9 +299,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PHP = @PHP@
PHPUNIT = @PHPUNIT@
PHP_CONFIG = @PHP_CONFIG@
PYTHON = @PYTHON@
PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
......@@ -386,15 +393,9 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
#
# This file is part of project GEOS (http://trac.osgeo.org/geos/)
#
# NOTE: Make sure that 'src' appears first.
# 'capi' and 'doc' surely rely on availability of libgeos
# which is built under 'src' and it seems that automake
# is not able to detect required build order but blindly
# relies on the order items in SUBDIRS appear.
#
# foreign is needed to avoid enforced ChangeLog in EXTRA_DIST
# (we'll still take care of adding it ourselves)
AUTOMAKE_OPTIONS = foreign
SUBDIRS = \
include \
src \
......@@ -402,17 +403,17 @@ SUBDIRS = \
doc \
macros \
swig \
php \
tests \
tools
BUILT_SOURCES = geos_svn_revision.h
BUILT_SOURCES = geos_revision.h
EXTRA_DIST = acsite.m4 makefile.vc nmake.opt autogen.bat CMakeLists.txt \
cmake/modules/CheckPrototypeExists.cmake \
cmake/modules/COPYING-CMAKE-SCRIPTS \
cmake/cmake_uninstall.cmake.in geos_svn_revision.h
cmake/cmake_uninstall.cmake.in geos_revision.h
ACLOCAL_AMFLAGS = -I macros
VALGRIND = $(LIBTOOL) --mode=execute valgrind --leak-check=full --error-exitcode=1
all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-recursive
......@@ -423,15 +424,15 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
$(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
$(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile
$(AUTOMAKE) --foreign Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
......@@ -623,6 +624,9 @@ distdir: $(DISTFILES)
|| exit 1; \
fi; \
done
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$(top_distdir)" distdir="$(distdir)" \
dist-hook
-test -n "$(am__skip_mode_fix)" \
|| find "$(distdir)" -type d ! -perm -755 \
-exec chmod u+rwx,go+rx {} \; -o \
......@@ -868,24 +872,38 @@ uninstall-am:
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
am--refresh check check-am clean clean-cscope clean-generic \
clean-libtool cscope cscopelist-am ctags ctags-am dist \
dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
dist-xz dist-zip distcheck distclean distclean-generic \
distclean-libtool distclean-tags distcleancheck distdir \
distuninstallcheck dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
installdirs-am maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
ps ps-am tags tags-am uninstall uninstall-am
dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
dist-tarZ dist-xz dist-zip distcheck distclean \
distclean-generic distclean-libtool distclean-tags \
distcleancheck distdir distuninstallcheck dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-man install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs installdirs-am maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall-am
.PRECIOUS: Makefile
cl:
cd $(srcdir) && svn update && svn2cl --authors=authors.svn -i -o ChangeLog
dist-hook: gen-ChangeLog
gen-ChangeLog:
cd $(distdir) && owd=`pwd` && \
cd ../ && cd $(srcdir) && \
if test -d .git; then \
git2cl > $${owd}/ChangeLog; \
elif test -d .svn; then \
svn2cl --authors=authors.svn -i -o $${owd}/ChangeLog; \
elif test -f ChangeLog; then \
echo "NOTE: distributing ChangeLog found in source dir"; \
cp ChangeLog $${owd}/ChangeLog; \
else \
echo "WARNING: could not find a ChangeLog" >&2; \
fi
apidoc doxygen:
cd doc && make $@
......@@ -896,10 +914,13 @@ authors.git: authors.svn
svnrebase: authors.git
cd $(srcdir) && git svn rebase --authors-file authors.git
geos_svn_revision.h:
top_srcdir=$(srcdir) sh $(srcdir)/tools/svn_repo_revision.sh
geos_revision.h:
top_srcdir=$(srcdir) sh $(srcdir)/tools/repo_revision.sh
valgrindcheck:
$(VALGRIND) tests/unit/geos_unit
.PHONY: geos_svn_revision.h
.PHONY: geos_revision.h
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
......
Changes in 3.5.1
2015-10-25
Changes in 3.6.2
2017-07-25
- Bug fixes / improvements
- Fix CMake configuration to allow build from released sources package (#753)
- Fix memory leaks in single-sided buffers (#747), PlanarGraph and tests
- Fix GeometryEditor to correctly update factory of empty geometries (#749)
- Fix snapping of last segment of a closed linestring (#758)
- Fix memory exhaustion case in isvalid (#757)
- Fix Windows build with Visual Studio 2008 (#766)
- Fix incorrect return from prepared multipoint intersects (#764)
- Fix build against GCC 3.5.0+ (#784)
- Fix exception in UnaryUnion of collection of touching polygons (#837)
- Allow building against python 3 (#774)
- Fix build with android-ndk and other compilers (#799)
- Allows compiling with -Wpointer-bool-conversion (#638)
- Fix unhandled exception on invalid fp operation (#811)
- Fix overloaded virtual print in DirectedEdge* (#812)
- AppVeyor CI build added (#813)
- Clean up numerous MSVC warnings, notably C4275 and C4589 (#814)
- Bump CMake version to 3.0.0 (#817)
- Fix leaks in WKT parser (#830)
Changes in 3.6.1
2016-12-24
- Bug fixes / improvements
- Fix GEOSSTRtree_nearest_r signature and add implementation (#796)
- Fix --static-clibs and --static-cclibs returns from geos-config
- Fix WKB representation of empty polygon (#680).
- Fix empty GEOSSimplify return on inner ring collapse (#741)
Changes in 3.6.0
2016-10-25
- Important / Breaking Changes:
- The PHP binding moved to its own repository:
http://git.osgeo.org/gogs/geos/php-geos (#765)
- New things:
- CAPI: GEOSGeom_{get,set}UserData (Rashad Kanavath)
- CAPI: GEOSGeom_{set,get}Precision (#713)
- CAPI: GEOSMinimumRotatedRectangle and GEOSMinimumWidth
(#729, Nyall Dawson)
- CAPI: GEOSSTRtree_nearest (#768, Dan Baston)
- CAPI: GEOSMinimumClearance and GEOSMinimumClearanceLine
(#776, Dan Baston)
- C++ API changes:
- Automatic memory management for GeometryFactory objects
Changes in 3.5.0
2015-08-15
2015-08-16
- New things:
- Voronoi API (#627)
......@@ -553,3 +582,4 @@ Changes in 2.0.0
been dropped. You have to use GeometryFactory instead.
- WKTWriter default constructor has been dropped. You need
to initialize it with an explicit GeometryFactory
BUILDING, TESTING, INSTALLING
=============================
GEOS -- Geometry Engine, Open Source
====================================
Unix
----
Project homepage: http://geos.osgeo.org/
## Build status
| branch / CI | Debbie | Winnie | Dronie | Travis CI | GitLab CI | AppVeyor |
|:--- |:--- |:--- |:--- |:--- |:--- |:--- |
| svn-trunk | [![debbie](https://debbie.postgis.net/buildStatus/icon?job=GEOS_Trunk)](https://debbie.postgis.net/view/GEOS/job/GEOS_Trunk/) | [![winnie](https://debbie.postgis.net:444/view/GEOS/job/GEOS_matrix_trunk/badge/icon)](https://debbie.postgis.net:444/view/GEOS/job/GEOS_matrix_trunk/) | [![dronie](https://drone.osgeo.org/api/badges/geos/geos/status.svg?branch=svn-trunk)](https://drone.osgeo.org/geos/geos?branch=svn-trunk) | [![travis](https://travis-ci.org/OSGeo/geos.svg?branch=svn-trunk)](https://travis-ci.org/OSGeo/geos?branch=svn-trunk) | [![gitlab-ci](https://gitlab.com/geos/libgeos/badges/svn-trunk/build.svg)](https://gitlab.com/geos/libgeos/commits/svn-trunk) | [![appveyor](https://ci.appveyor.com/api/projects/status/ao909hwpsb1yu062/branch/svn-trunk?svg=true)](https://ci.appveyor.com/project/OSGeo/geos/branch/svn-trunk) |
| svn-3.6 | [![debbie](https://debbie.postgis.net/buildStatus/icon?job=GEOS_Branch_3.6)](https://debbie.postgis.net/view/GEOS/job/GEOS_Branch_3.6/) | [![winnie](https://debbie.postgis.net:444/view/GEOS/job/GEOS_matrix_branch_3.6/badge/icon)](https://debbie.postgis.net:444/view/GEOS/job/GEOS_matrix_branch_3.6/) | [![dronie](https://drone.osgeo.org/api/badges/geos/geos/status.svg?branch=svn-3.6)](https://drone.osgeo.org/geos/geos?branch=svn-3.6) | [![travis](https://travis-ci.org/OSGeo/geos.svg?branch=svn-3.6)](https://travis-ci.org/OSGeo/geos?branch=svn-3.6) | [![gitlab-ci](https://gitlab.com/geos/libgeos/badges/svn-3.6/build.svg)](https://gitlab.com/geos/libgeos/commits/svn-3.6) | [![appveyor](https://ci.appveyor.com/api/projects/status/ao909hwpsb1yu062/branch/svn-3.6?svg=true)](https://ci.appveyor.com/project/OSGeo/geos/branch/svn-3.6) |
More on: https://trac.osgeo.org/geos#BuildandInstall
## Building, testing, installing
### Unix
Using Autotools:
./autogen.sh # in ${srcdir}, if obtained from SVN
./autogen.sh # in ${srcdir}, if obtained from SVN or GIT
${srcdir}/configure # in build dir
Using CMake:
cmake ${srcdir} # in build dir
Now, all versions:
make
make check
make install # as root
ldconfig # as root
Win32
-----
### Microsoft Windows
If you use Microsoft Visual C++ (7.1 or later) compiler, you can build
GEOS using NMAKE program and provided makefile.vc files.
GEOS using NMAKE program and provided `makefile.vc` files.
If you are building from SVN checkout, first run: autogen.bat
If you are building from SVN or GIT checkout, first run: `autogen.bat`
Then:
nmake /f makefile.vc MSVC_VER=1400
where 1400 is version number of Visual C++ compiler, here Visual C++ 8.0
from Visual Studio 2005 (supported versions are 1300, 1310, 1400 and 1500).
from Visual Studio 2005 (supported versions are 1300, 1310, 1400, 1500,
1600, 1700, 1800 and 1900).
The bootstrap.bat step is required to generate a couple of header files.
In order to build debug configuration of GEOS, additional flag DEBUG=1
In order to build debug configuration of GEOS, additional flag `DEBUG=1`
is required:
nmake /f makefile.vc MSVC_VER=1400 DEBUG=1
CLIENT APPLICATIONS
===================
## Client applications
Using the C interface (recommended)
-----------------------------------
### Using the C interface (recommended)
To compile programs against the C lib (recommended):
......@@ -54,17 +68,16 @@ Example usage:
capi/geostest.c contains basic usage examples.
Using the C++ interface (discouraged)
-------------------------------------
### Using the C++ interface (discouraged)
NB: The C++ interface should not be used directly; the geos project
NB: The C++ interface should not be used directly; the GEOS project
views it as a bug for another program to use the C++ interface or even
to directly link against the C++ library. The C++ library name will
change on every minor release because it is too hard to know if there
have been ABI changes. (The C libary uses the C++ interface, but the
have been ABI changes. (The C library uses the C++ interface, but the
C library follows normal ABI-change-sensitive versioning, so programs
that link only against the C library should work without relinking
when geos is upgraded.)
when GEOS is upgraded.)
To compile programs against the C++ lib:
......@@ -72,34 +85,32 @@ To compile programs against the C++ lib:
LDFLAGS += `geos-config --ldflags` -lgeos
#include <geos.h>
Example usage:
Basic usage examples can be found in `doc/example.cpp`.
doc/example.cpp contains basic usage examples.
Scripting language bindings
---------------------------
### Scripting language bindings
Ruby bindings are fully supported. To build, use the --enable-ruby option
Ruby bindings are fully supported. To build, use the `--enable-ruby` option
when configuring:
./configure ... --enable-ruby
PHP bindings are fully supported. To build, use the --enable-php option
when configuring:
Since version 3.6.0 PHP bindings are not included in the core
library anymore but available as a separate project:
./configure ... --enable-php
https://git.osgeo.org/gogs/geos/php-geos
Since version 3.0, the Python bindings are unsupported. Recommended options:
1. Become or recruit a new maintainer.
2. Use Shapely (http://pypi.python.org/pypi/Shapely) with Python
2. Use [Shapely](http://pypi.python.org/pypi/Shapely) with Python
versions 2.4 or greater.
3. Simply call functions from libgeos_c via Python ctypes.
3. Simply call functions from `libgeos_c` via Python ctypes.
DOCUMENTATION
=============
## Documentation
cd doc; make doxygen-html
To build Doxygen documentation:
http://trac.osgeo.org/geos
cd doc
make doxygen-html
GEOS TODO:
- Port Triangulation API from JTS-1.11
- Feed PrecisionModel to OverlayResultValidator to set _TOLERANCE
- Test unit tests for snapround package
......
......@@ -14,3 +14,4 @@ set GEOS_HEADERS=include\geos
COPY %GEOS_HEADERS%\version.h.vc %GEOS_HEADERS%\version.h
COPY %GEOS_HEADERS%\platform.h.vc %GEOS_HEADERS%\platform.h
COPY capi\geos_c.h.in capi\geos_c.h
@ECHO #define GEOS_REVISION "0" > geos_revision.h
......@@ -291,9 +291,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PHP = @PHP@
PHPUNIT = @PHPUNIT@
PHP_CONFIG = @PHP_CONFIG@
PYTHON = @PYTHON@
PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
......
......@@ -436,6 +436,30 @@ GEOSConvexHull(const Geometry *g)
return GEOSConvexHull_r( handle, g );
}
Geometry *
GEOSMinimumRotatedRectangle(const Geometry *g)
{
return GEOSMinimumRotatedRectangle_r( handle, g );
}
Geometry *
GEOSMinimumWidth(const Geometry *g)
{
return GEOSMinimumWidth_r( handle, g );
}
Geometry *
GEOSMinimumClearanceLine(const Geometry *g)
{
return GEOSMinimumClearanceLine_r( handle, g );
}
int
GEOSMinimumClearance(const Geometry *g, double *d)
{
return GEOSMinimumClearance_r( handle, g, d);
}
Geometry *
GEOSDifference(const Geometry *g1, const Geometry *g2)
{
......@@ -693,6 +717,18 @@ GEOSSetSRID(Geometry *g, int srid)
return GEOSSetSRID_r( handle, g, srid );
}
void *
GEOSGeom_getUserData(const Geometry *g)
{
return GEOSGeom_getUserData_r( handle, g );
}
void
GEOSGeom_setUserData(Geometry *g, void* userData)
{
return GEOSGeom_setUserData_r( handle, g, userData );
}
char
GEOSHasZ(const Geometry *g)
{
......@@ -838,6 +874,18 @@ GEOSGeom_clone(const Geometry *g)
return GEOSGeom_clone_r( handle, g );
}
GEOSGeometry *
GEOSGeom_setPrecision(const GEOSGeometry *g, double gridSize, int flags)
{
return GEOSGeom_setPrecision_r(handle, g, gridSize, flags);
}
double
GEOSGeom_getPrecision(const GEOSGeometry *g)
{
return GEOSGeom_getPrecision_r(handle, g);
}
int
GEOSGeom_getDimensions(const Geometry *g)
{
......@@ -1122,6 +1170,22 @@ GEOSSTRtree_query (geos::index::strtree::STRtree *tree,
GEOSSTRtree_query_r( handle, tree, g, cb, userdata );
}
const GEOSGeometry *
GEOSSTRtree_nearest (geos::index::strtree::STRtree *tree,
const geos::geom::Geometry *g)
{
return GEOSSTRtree_nearest_r( handle, tree, g);
}
const void* GEOSSTRtree_nearest_generic(GEOSSTRtree *tree,
const void* item,
const GEOSGeometry* itemEnvelope,
GEOSDistanceCallback distancefn,
void* userdata)
{
return GEOSSTRtree_nearest_generic_r( handle, tree, item, itemEnvelope, distancefn, userdata);
}
void
GEOSSTRtree_iterate(geos::index::strtree::STRtree *tree,
GEOSQueryCallback callback,
......
......@@ -59,30 +59,30 @@ extern "C" {
#if defined(_MSC_VER)
#include <geos/version.h>
#define GEOS_CAPI_VERSION_MAJOR 1
#define GEOS_CAPI_VERSION_MINOR 9
#define GEOS_CAPI_VERSION_PATCH 1
#define GEOS_CAPI_VERSION "3.5.1-CAPI-1.9.1"
#define GEOS_CAPI_VERSION_MINOR 10
#define GEOS_CAPI_VERSION_PATCH 2
#define GEOS_CAPI_VERSION "3.6.2-CAPI-1.10.2"
#else
#ifndef GEOS_VERSION_MAJOR
#define GEOS_VERSION_MAJOR 3
#endif
#ifndef GEOS_VERSION_MINOR
#define GEOS_VERSION_MINOR 5
#define GEOS_VERSION_MINOR 6
#endif
#ifndef GEOS_VERSION_PATCH
#define GEOS_VERSION_PATCH 1
#define GEOS_VERSION_PATCH 2
#endif
#ifndef GEOS_VERSION
#define GEOS_VERSION "3.5.1"
#define GEOS_VERSION "3.6.2"
#endif
#ifndef GEOS_JTS_PORT
#define GEOS_JTS_PORT "1.13.0"
#endif
#define GEOS_CAPI_VERSION_MAJOR 1
#define GEOS_CAPI_VERSION_MINOR 9
#define GEOS_CAPI_VERSION_PATCH 1
#define GEOS_CAPI_VERSION "3.5.1-CAPI-1.9.1"
#define GEOS_CAPI_VERSION_MINOR 10
#define GEOS_CAPI_VERSION_PATCH 2
#define GEOS_CAPI_VERSION "3.6.2-CAPI-1.10.2"
#endif
#define GEOS_CAPI_FIRST_INTERFACE GEOS_CAPI_VERSION_MAJOR
......@@ -153,6 +153,7 @@ enum GEOSByteOrders {
};
typedef void (*GEOSQueryCallback)(void *item, void *userdata);
typedef int (*GEOSDistanceCallback)(const void *item1, const void* item2, double* distance, void* userdata);
/************************************************************************
*
......@@ -538,6 +539,31 @@ extern GEOSGeometry GEOS_DLL *GEOSIntersection_r(GEOSContextHandle_t handle,
const GEOSGeometry* g2);
extern GEOSGeometry GEOS_DLL *GEOSConvexHull_r(GEOSContextHandle_t handle,
const GEOSGeometry* g);
/* Returns the minimum rotated rectangular POLYGON which encloses the input geometry. The rectangle
* has width equal to the minimum diameter, and a longer length. If the convex hill of the input is
* degenerate (a line or point) a LINESTRING or POINT is returned. The minimum rotated rectangle can
* be used as an extremely generalized representation for the given geometry.
*/
extern GEOSGeometry GEOS_DLL *GEOSMinimumRotatedRectangle_r(GEOSContextHandle_t handle,
const GEOSGeometry* g);
/* Returns a LINESTRING geometry which represents the minimum diameter of the geometry.
* The minimum diameter is defined to be the width of the smallest band that
* contains the geometry, where a band is a strip of the plane defined
* by two parallel lines. This can be thought of as the smallest hole that the geometry
* can be moved through, with a single rotation.
*/
extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth_r(GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSMinimumClearanceLine_r(GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern int GEOS_DLL GEOSMinimumClearance_r(GEOSContextHandle_t handle,
const GEOSGeometry* g,
double* distance);
extern GEOSGeometry GEOS_DLL *GEOSDifference_r(GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
......@@ -796,6 +822,19 @@ extern void GEOS_DLL GEOSSTRtree_query_r(GEOSContextHandle_t handle,
const GEOSGeometry *g,
GEOSQueryCallback callback,
void *userdata);
extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest_r(GEOSContextHandle_t handle,
GEOSSTRtree *tree,
const GEOSGeometry* geom);
extern const void GEOS_DLL *GEOSSTRtree_nearest_generic_r(GEOSContextHandle_t handle,
GEOSSTRtree *tree,
const void* item,
const GEOSGeometry* itemEnvelope,
GEOSDistanceCallback distancefn,
void* userdata);
extern void GEOS_DLL GEOSSTRtree_iterate_r(GEOSContextHandle_t handle,
GEOSSTRtree *tree,
GEOSQueryCallback callback,
......@@ -916,6 +955,12 @@ extern int GEOS_DLL GEOSGetSRID_r(GEOSContextHandle_t handle,
extern void GEOS_DLL GEOSSetSRID_r(GEOSContextHandle_t handle,
GEOSGeometry* g, int SRID);
extern void GEOS_DLL *GEOSGeom_getUserData_r(GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern void GEOS_DLL GEOSGeom_setUserData_r(GEOSContextHandle_t handle,
GEOSGeometry* g, void* userData);
/* May be called on all geometries in GEOS 3.x, returns -1 on error and 1
* for non-multi geometries. Older GEOS versions only accept
* GeometryCollections or Multi* geometries here, and are likely to crash
......@@ -941,6 +986,44 @@ extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN_r(
extern int GEOS_DLL GEOSNormalize_r(GEOSContextHandle_t handle,
GEOSGeometry* g);
/** This option causes #GEOSGeom_setPrecision_r()
* to not attempt at preserving the topology */
#define GEOS_PREC_NO_TOPO (1<<0)
/** This option causes #GEOSGeom_setPrecision_r()
* to retain collapsed elements */
#define GEOS_PREC_KEEP_COLLAPSED (1<<1)
/**
* Set the geometry's precision, optionally rounding all its
* coordinates to the precision grid (if it changes).
*
* Note that operations will always be performed in the precision
* of the geometry with higher precision (smaller "gridSize").
* That same precision will be attached to the operation outputs.
*
* @param gridSize size of the precision grid, or 0 for FLOATING
* precision.
* @param flags The bitwise OR of one of more of the
* @ref GEOS_PREC_NO_TOPO "precision options"
* @retuns NULL on exception or a new GEOSGeometry object
*
*/
extern GEOSGeometry GEOS_DLL *GEOSGeom_setPrecision_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g,
double gridSize, int flags);
/**
* Get a geometry's precision
*
* @return the size of the geometry's precision grid, 0 for FLOATING
* precision or -1 on exception
*/
extern double GEOS_DLL GEOSGeom_getPrecision_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g);
/* Return -1 on exception */
extern int GEOS_DLL GEOSGetNumInteriorRings_r(GEOSContextHandle_t handle,
const GEOSGeometry* g);
......@@ -1410,6 +1493,48 @@ extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSEnvelope(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSIntersection(const GEOSGeometry* g1, const GEOSGeometry* g2);
extern GEOSGeometry GEOS_DLL *GEOSConvexHull(const GEOSGeometry* g);
/* Returns the minimum rotated rectangular POLYGON which encloses the input geometry. The rectangle
* has width equal to the minimum diameter, and a longer length. If the convex hill of the input is
* degenerate (a line or point) a LINESTRING or POINT is returned. The minimum rotated rectangle can
* be used as an extremely generalized representation for the given geometry.
*/
extern GEOSGeometry GEOS_DLL *GEOSMinimumRotatedRectangle(const GEOSGeometry* g);
/* Returns a LINESTRING geometry which represents the minimum diameter of the geometry.
* The minimum diameter is defined to be the width of the smallest band that
* contains the geometry, where a band is a strip of the plane defined
* by two parallel lines. This can be thought of as the smallest hole that the geometry
* can be moved through, with a single rotation.
*/
extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth(const GEOSGeometry* g);
/* Computes the minimum clearance of a geometry. The minimum clearance is the smallest amount by which
* a vertex could be move to produce an invalid polygon, a non-simple linestring, or a multipoint with
* repeated points. If a geometry has a minimum clearance of 'eps', it can be said that:
*
* - No two distinct vertices in the geometry are separated by less than 'eps'
* - No vertex is closer than 'eps' to a line segment of which it is not an endpoint.
*
* If the minimum clearance cannot be defined for a geometry (such as with a single point, or a multipoint
* whose points are identical, a value of Infinity will be calculated.
*
* @param g the input geometry
* @param d a double to which the result can be stored
*
* @return 0 if no exception occurred
* 2 if an exception occurred
*/
extern int GEOS_DLL GEOSMinimumClearance(const GEOSGeometry* g, double* d);
/* Returns a LineString whose endpoints define the minimum clearance of a geometry.
* If the geometry has no minimum clearance, an empty LineString will be returned.
*
* @param g the input geometry
* @return a LineString, or NULL if an exception occurred.
*/
extern GEOSGeometry GEOS_DLL *GEOSMinimumClearanceLine(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSDifference(const GEOSGeometry* g1, const GEOSGeometry* g2);
extern GEOSGeometry GEOS_DLL *GEOSSymDifference(const GEOSGeometry* g1, const GEOSGeometry* g2);
extern GEOSGeometry GEOS_DLL *GEOSBoundary(const GEOSGeometry* g);
......@@ -1579,17 +1704,94 @@ extern char GEOS_DLL GEOSPreparedWithin(const GEOSPreparedGeometry* pg1, const G
* GEOSGeometry ownership is retained by caller
*/
/*
* Create a new R-tree using the Sort-Tile-Recursive algorithm (STRtree) for two-dimensional
* spatial data.
*
* @param nodeCapacity the maximum number of child nodes that a node may have. The minimum
* recommended capacity value is 4. If unsure, use a default node capacity of 10.
* @return a pointer to the created tree
*/
extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create(size_t nodeCapacity);
/*
* Insert an item into an STRtree
*
* @param tree the STRtree in which the item should be inserted
* @param g a GEOSGeometry whose envelope corresponds to the extent of 'item'
* @param item the item to insert into the tree
*/
extern void GEOS_DLL GEOSSTRtree_insert(GEOSSTRtree *tree,
const GEOSGeometry *g,
void *item);
/*
* Query an STRtree for items intersecting a specified envelope
*
* @param tree the STRtree to search
* @param g a GEOSGeomety from which a query envelope will be extracted
* @param callback a function to be executed for each item in the tree whose envelope intersects
* the envelope of 'g'. The callback function should take two parameters: a void
* pointer representing the located item in the tree, and a void userdata pointer.
* @param userdata an optional pointer to pe passed to 'callback' as an argument
*/
extern void GEOS_DLL GEOSSTRtree_query(GEOSSTRtree *tree,
const GEOSGeometry *g,
GEOSQueryCallback callback,
void *userdata);
/*
* Returns the nearest item in the STRtree to the supplied GEOSGeometry.
* All items in the tree MUST be of type GEOSGeometry. If this is not the case, use
* GEOSSTRtree_nearest_generic instead.
*
* @param tree the STRtree to search
* @param geom the geometry with which the tree should be queried
* @return a const pointer to the nearest GEOSGeometry in the tree to 'geom', or NULL in
* case of exception
*/
extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest(GEOSSTRtree *tree, const GEOSGeometry* geom);
/*
* Returns the nearest item in the STRtree to the supplied item
*
* @param tree the STRtree to search
* @param item the item with which the tree should be queried
* @param itemEnvelope a GEOSGeometry having the bounding box of 'item'
* @param distancefn a function that can compute the distance between two items
* in the STRtree. The function should return zero in case of error,
* and should store the computed distance to the location pointed to by
* the 'distance' argument. The computed distance between two items
* must not exceed the Cartesian distance between their envelopes.
* @param userdata optional pointer to arbitrary data; will be passed to distancefn
* each time it is called.
* @return a const pointer to the nearest item in the tree to 'item', or NULL in
* case of exception
*/
extern const void GEOS_DLL *GEOSSTRtree_nearest_generic(GEOSSTRtree *tree,
const void* item,
const GEOSGeometry* itemEnvelope,
GEOSDistanceCallback distancefn,
void* userdata);
/*
* Iterates over all items in the STRtree
*
* @param tree the STRtree over which to iterate
* @param callback a function to be executed for each item in the tree.
*/
extern void GEOS_DLL GEOSSTRtree_iterate(GEOSSTRtree *tree,
GEOSQueryCallback callback,
void *userdata);
/*
* Removes an item from the STRtree
*
* @param tree the STRtree from which to remove an item
* @param g the envelope of the item to remove
* @param the item to remove
* @return 0 if the item was not removed;
* 1 if the item was removed;
* 2 if an exception occurred
*/
extern char GEOS_DLL GEOSSTRtree_remove(GEOSSTRtree *tree,
const GEOSGeometry *g,
void *item);
......@@ -1666,6 +1868,11 @@ extern int GEOS_DLL GEOSGetSRID(const GEOSGeometry* g);
extern void GEOS_DLL GEOSSetSRID(GEOSGeometry* g, int SRID);
extern void GEOS_DLL *GEOSGeom_getUserData(const GEOSGeometry* g);
extern void GEOS_DLL GEOSGeom_setUserData(GEOSGeometry* g, void* userData);
/* May be called on all geometries in GEOS 3.x, returns -1 on error and 1
* for non-multi geometries. Older GEOS versions only accept
* GeometryCollections or Multi* geometries here, and are likely to crash
......@@ -1687,6 +1894,13 @@ extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN(const GEOSGeometry* g, int
/* Return -1 on exception */
extern int GEOS_DLL GEOSNormalize(GEOSGeometry* g);
/* Return NULL on exception */
extern GEOSGeometry GEOS_DLL *GEOSGeom_setPrecision(
const GEOSGeometry *g, double gridSize, int flags);
/* Return -1 on exception */
extern double GEOS_DLL GEOSGeom_getPrecision(const GEOSGeometry *g);
/* Return -1 on exception */
extern int GEOS_DLL GEOSGetNumInteriorRings(const GEOSGeometry* g);
......
......@@ -59,9 +59,9 @@ extern "C" {
#if defined(_MSC_VER)
#include <geos/version.h>
#define GEOS_CAPI_VERSION_MAJOR 1
#define GEOS_CAPI_VERSION_MINOR 9
#define GEOS_CAPI_VERSION_PATCH 1
#define GEOS_CAPI_VERSION "3.5.1-CAPI-1.9.1"
#define GEOS_CAPI_VERSION_MINOR 10
#define GEOS_CAPI_VERSION_PATCH 2
#define GEOS_CAPI_VERSION "3.6.2-CAPI-1.10.2"
#else
#ifndef GEOS_VERSION_MAJOR
#define GEOS_VERSION_MAJOR @VERSION_MAJOR@
......@@ -153,6 +153,7 @@ enum GEOSByteOrders {
};
typedef void (*GEOSQueryCallback)(void *item, void *userdata);
typedef int (*GEOSDistanceCallback)(const void *item1, const void* item2, double* distance, void* userdata);
/************************************************************************
*
......@@ -538,6 +539,31 @@ extern GEOSGeometry GEOS_DLL *GEOSIntersection_r(GEOSContextHandle_t handle,
const GEOSGeometry* g2);
extern GEOSGeometry GEOS_DLL *GEOSConvexHull_r(GEOSContextHandle_t handle,
const GEOSGeometry* g);
/* Returns the minimum rotated rectangular POLYGON which encloses the input geometry. The rectangle
* has width equal to the minimum diameter, and a longer length. If the convex hill of the input is
* degenerate (a line or point) a LINESTRING or POINT is returned. The minimum rotated rectangle can
* be used as an extremely generalized representation for the given geometry.
*/
extern GEOSGeometry GEOS_DLL *GEOSMinimumRotatedRectangle_r(GEOSContextHandle_t handle,
const GEOSGeometry* g);
/* Returns a LINESTRING geometry which represents the minimum diameter of the geometry.
* The minimum diameter is defined to be the width of the smallest band that
* contains the geometry, where a band is a strip of the plane defined
* by two parallel lines. This can be thought of as the smallest hole that the geometry
* can be moved through, with a single rotation.
*/
extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth_r(GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSMinimumClearanceLine_r(GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern int GEOS_DLL GEOSMinimumClearance_r(GEOSContextHandle_t handle,
const GEOSGeometry* g,
double* distance);
extern GEOSGeometry GEOS_DLL *GEOSDifference_r(GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
......@@ -796,6 +822,19 @@ extern void GEOS_DLL GEOSSTRtree_query_r(GEOSContextHandle_t handle,
const GEOSGeometry *g,
GEOSQueryCallback callback,
void *userdata);
extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest_r(GEOSContextHandle_t handle,
GEOSSTRtree *tree,
const GEOSGeometry* geom);
extern const void GEOS_DLL *GEOSSTRtree_nearest_generic_r(GEOSContextHandle_t handle,
GEOSSTRtree *tree,
const void* item,
const GEOSGeometry* itemEnvelope,
GEOSDistanceCallback distancefn,
void* userdata);
extern void GEOS_DLL GEOSSTRtree_iterate_r(GEOSContextHandle_t handle,
GEOSSTRtree *tree,
GEOSQueryCallback callback,
......@@ -916,6 +955,12 @@ extern int GEOS_DLL GEOSGetSRID_r(GEOSContextHandle_t handle,
extern void GEOS_DLL GEOSSetSRID_r(GEOSContextHandle_t handle,
GEOSGeometry* g, int SRID);
extern void GEOS_DLL *GEOSGeom_getUserData_r(GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern void GEOS_DLL GEOSGeom_setUserData_r(GEOSContextHandle_t handle,
GEOSGeometry* g, void* userData);
/* May be called on all geometries in GEOS 3.x, returns -1 on error and 1
* for non-multi geometries. Older GEOS versions only accept
* GeometryCollections or Multi* geometries here, and are likely to crash
......@@ -941,6 +986,44 @@ extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN_r(
extern int GEOS_DLL GEOSNormalize_r(GEOSContextHandle_t handle,
GEOSGeometry* g);
/** This option causes #GEOSGeom_setPrecision_r()
* to not attempt at preserving the topology */
#define GEOS_PREC_NO_TOPO (1<<0)
/** This option causes #GEOSGeom_setPrecision_r()
* to retain collapsed elements */
#define GEOS_PREC_KEEP_COLLAPSED (1<<1)
/**
* Set the geometry's precision, optionally rounding all its
* coordinates to the precision grid (if it changes).
*
* Note that operations will always be performed in the precision
* of the geometry with higher precision (smaller "gridSize").
* That same precision will be attached to the operation outputs.
*
* @param gridSize size of the precision grid, or 0 for FLOATING
* precision.
* @param flags The bitwise OR of one of more of the
* @ref GEOS_PREC_NO_TOPO "precision options"
* @retuns NULL on exception or a new GEOSGeometry object
*
*/
extern GEOSGeometry GEOS_DLL *GEOSGeom_setPrecision_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g,
double gridSize, int flags);
/**
* Get a geometry's precision
*
* @return the size of the geometry's precision grid, 0 for FLOATING
* precision or -1 on exception
*/
extern double GEOS_DLL GEOSGeom_getPrecision_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g);
/* Return -1 on exception */
extern int GEOS_DLL GEOSGetNumInteriorRings_r(GEOSContextHandle_t handle,
const GEOSGeometry* g);
......@@ -1410,6 +1493,48 @@ extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSEnvelope(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSIntersection(const GEOSGeometry* g1, const GEOSGeometry* g2);
extern GEOSGeometry GEOS_DLL *GEOSConvexHull(const GEOSGeometry* g);
/* Returns the minimum rotated rectangular POLYGON which encloses the input geometry. The rectangle
* has width equal to the minimum diameter, and a longer length. If the convex hill of the input is
* degenerate (a line or point) a LINESTRING or POINT is returned. The minimum rotated rectangle can
* be used as an extremely generalized representation for the given geometry.
*/
extern GEOSGeometry GEOS_DLL *GEOSMinimumRotatedRectangle(const GEOSGeometry* g);
/* Returns a LINESTRING geometry which represents the minimum diameter of the geometry.
* The minimum diameter is defined to be the width of the smallest band that
* contains the geometry, where a band is a strip of the plane defined
* by two parallel lines. This can be thought of as the smallest hole that the geometry
* can be moved through, with a single rotation.
*/
extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth(const GEOSGeometry* g);
/* Computes the minimum clearance of a geometry. The minimum clearance is the smallest amount by which
* a vertex could be move to produce an invalid polygon, a non-simple linestring, or a multipoint with
* repeated points. If a geometry has a minimum clearance of 'eps', it can be said that:
*
* - No two distinct vertices in the geometry are separated by less than 'eps'
* - No vertex is closer than 'eps' to a line segment of which it is not an endpoint.
*
* If the minimum clearance cannot be defined for a geometry (such as with a single point, or a multipoint
* whose points are identical, a value of Infinity will be calculated.
*
* @param g the input geometry
* @param d a double to which the result can be stored
*
* @return 0 if no exception occurred
* 2 if an exception occurred
*/
extern int GEOS_DLL GEOSMinimumClearance(const GEOSGeometry* g, double* d);
/* Returns a LineString whose endpoints define the minimum clearance of a geometry.
* If the geometry has no minimum clearance, an empty LineString will be returned.
*
* @param g the input geometry
* @return a LineString, or NULL if an exception occurred.
*/
extern GEOSGeometry GEOS_DLL *GEOSMinimumClearanceLine(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSDifference(const GEOSGeometry* g1, const GEOSGeometry* g2);
extern GEOSGeometry GEOS_DLL *GEOSSymDifference(const GEOSGeometry* g1, const GEOSGeometry* g2);
extern GEOSGeometry GEOS_DLL *GEOSBoundary(const GEOSGeometry* g);
......@@ -1579,17 +1704,94 @@ extern char GEOS_DLL GEOSPreparedWithin(const GEOSPreparedGeometry* pg1, const G
* GEOSGeometry ownership is retained by caller
*/
/*
* Create a new R-tree using the Sort-Tile-Recursive algorithm (STRtree) for two-dimensional
* spatial data.
*
* @param nodeCapacity the maximum number of child nodes that a node may have. The minimum
* recommended capacity value is 4. If unsure, use a default node capacity of 10.
* @return a pointer to the created tree
*/
extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create(size_t nodeCapacity);
/*
* Insert an item into an STRtree
*
* @param tree the STRtree in which the item should be inserted
* @param g a GEOSGeometry whose envelope corresponds to the extent of 'item'
* @param item the item to insert into the tree
*/
extern void GEOS_DLL GEOSSTRtree_insert(GEOSSTRtree *tree,
const GEOSGeometry *g,
void *item);
/*
* Query an STRtree for items intersecting a specified envelope
*
* @param tree the STRtree to search
* @param g a GEOSGeomety from which a query envelope will be extracted
* @param callback a function to be executed for each item in the tree whose envelope intersects
* the envelope of 'g'. The callback function should take two parameters: a void
* pointer representing the located item in the tree, and a void userdata pointer.
* @param userdata an optional pointer to pe passed to 'callback' as an argument
*/
extern void GEOS_DLL GEOSSTRtree_query(GEOSSTRtree *tree,
const GEOSGeometry *g,
GEOSQueryCallback callback,
void *userdata);
/*
* Returns the nearest item in the STRtree to the supplied GEOSGeometry.
* All items in the tree MUST be of type GEOSGeometry. If this is not the case, use
* GEOSSTRtree_nearest_generic instead.
*
* @param tree the STRtree to search
* @param geom the geometry with which the tree should be queried
* @return a const pointer to the nearest GEOSGeometry in the tree to 'geom', or NULL in
* case of exception
*/
extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest(GEOSSTRtree *tree, const GEOSGeometry* geom);
/*
* Returns the nearest item in the STRtree to the supplied item
*
* @param tree the STRtree to search
* @param item the item with which the tree should be queried
* @param itemEnvelope a GEOSGeometry having the bounding box of 'item'
* @param distancefn a function that can compute the distance between two items
* in the STRtree. The function should return zero in case of error,
* and should store the computed distance to the location pointed to by
* the 'distance' argument. The computed distance between two items
* must not exceed the Cartesian distance between their envelopes.
* @param userdata optional pointer to arbitrary data; will be passed to distancefn
* each time it is called.
* @return a const pointer to the nearest item in the tree to 'item', or NULL in
* case of exception
*/
extern const void GEOS_DLL *GEOSSTRtree_nearest_generic(GEOSSTRtree *tree,
const void* item,
const GEOSGeometry* itemEnvelope,
GEOSDistanceCallback distancefn,
void* userdata);
/*
* Iterates over all items in the STRtree
*
* @param tree the STRtree over which to iterate
* @param callback a function to be executed for each item in the tree.
*/
extern void GEOS_DLL GEOSSTRtree_iterate(GEOSSTRtree *tree,
GEOSQueryCallback callback,
void *userdata);
/*
* Removes an item from the STRtree
*
* @param tree the STRtree from which to remove an item
* @param g the envelope of the item to remove
* @param the item to remove
* @return 0 if the item was not removed;
* 1 if the item was removed;
* 2 if an exception occurred
*/
extern char GEOS_DLL GEOSSTRtree_remove(GEOSSTRtree *tree,
const GEOSGeometry *g,
void *item);
......@@ -1666,6 +1868,11 @@ extern int GEOS_DLL GEOSGetSRID(const GEOSGeometry* g);
extern void GEOS_DLL GEOSSetSRID(GEOSGeometry* g, int SRID);
extern void GEOS_DLL *GEOSGeom_getUserData(const GEOSGeometry* g);
extern void GEOS_DLL GEOSGeom_setUserData(GEOSGeometry* g, void* userData);
/* May be called on all geometries in GEOS 3.x, returns -1 on error and 1
* for non-multi geometries. Older GEOS versions only accept
* GeometryCollections or Multi* geometries here, and are likely to crash
......@@ -1687,6 +1894,13 @@ extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN(const GEOSGeometry* g, int
/* Return -1 on exception */
extern int GEOS_DLL GEOSNormalize(GEOSGeometry* g);
/* Return NULL on exception */
extern GEOSGeometry GEOS_DLL *GEOSGeom_setPrecision(
const GEOSGeometry *g, double gridSize, int flags);
/* Return -1 on exception */
extern double GEOS_DLL GEOSGeom_getPrecision(const GEOSGeometry *g);
/* Return -1 on exception */
extern int GEOS_DLL GEOSGetNumInteriorRings(const GEOSGeometry* g);
......
......@@ -35,6 +35,7 @@
#include <geos/geom/IntersectionMatrix.h>
#include <geos/geom/Envelope.h>
#include <geos/index/strtree/STRtree.h>
#include <geos/index/strtree/GeometryItemDistance.h>
#include <geos/index/ItemVisitor.h>
#include <geos/io/WKTReader.h>
#include <geos/io/WKBReader.h>
......@@ -43,6 +44,7 @@
#include <geos/algorithm/distance/DiscreteHausdorffDistance.h>
#include <geos/algorithm/CGAlgorithms.h>
#include <geos/algorithm/BoundaryNodeRule.h>
#include <geos/algorithm/MinimumDiameter.h>
#include <geos/simplify/DouglasPeuckerSimplifier.h>
#include <geos/simplify/TopologyPreservingSimplifier.h>
#include <geos/noding/GeometryNoder.h>
......@@ -61,6 +63,7 @@
#include <geos/operation/sharedpaths/SharedPathsOp.h>
#include <geos/operation/union/CascadedPolygonUnion.h>
#include <geos/operation/valid/IsValidOp.h>
#include <geos/precision/GeometryPrecisionReducer.h>
#include <geos/linearref/LengthIndexedLine.h>
#include <geos/triangulate/DelaunayTriangulationBuilder.h>
#include <geos/triangulate/VoronoiDiagramBuilder.h>
......@@ -100,7 +103,7 @@
#define GEOSWKBWriter_t geos::io::WKBWriter
#include "geos_c.h"
#include "../geos_svn_revision.h"
#include "../geos_revision.h"
// Intentional, to allow non-standard C elements like C99 functions to be
// imported through C++ headers of C library, like <cmath>.
......@@ -113,6 +116,7 @@ using namespace std;
#undef VERBOSE_EXCEPTIONS
#include <geos/export.h>
#include <geos/precision/MinimumClearance.h>
// import the most frequently used definitions globally
......@@ -132,6 +136,7 @@ using geos::operation::overlay::overlayOp;
using geos::operation::geounion::CascadedPolygonUnion;
using geos::operation::buffer::BufferParameters;
using geos::operation::buffer::BufferBuilder;
using geos::precision::GeometryPrecisionReducer;
using geos::util::IllegalArgumentException;
using geos::algorithm::distance::DiscreteHausdorffDistance;
......@@ -2005,6 +2010,142 @@ GEOSConvexHull_r(GEOSContextHandle_t extHandle, const Geometry *g1)
return NULL;
}
Geometry *
GEOSMinimumRotatedRectangle_r(GEOSContextHandle_t extHandle, const Geometry *g)
{
if ( 0 == extHandle )
{
return NULL;
}
GEOSContextHandleInternal_t *handle = 0;
handle = reinterpret_cast<GEOSContextHandleInternal_t*>(extHandle);
if ( 0 == handle->initialized )
{
return NULL;
}
try
{
geos::algorithm::MinimumDiameter m(g);
Geometry *g3 = m.getMinimumRectangle();
return g3;
}
catch (const std::exception &e)
{
handle->ERROR_MESSAGE("%s", e.what());
}
catch (...)
{
handle->ERROR_MESSAGE("Unknown exception thrown");
}
return NULL;
}
Geometry *
GEOSMinimumWidth_r(GEOSContextHandle_t extHandle, const Geometry *g)
{
if ( 0 == extHandle )
{
return NULL;
}
GEOSContextHandleInternal_t *handle = 0;
handle = reinterpret_cast<GEOSContextHandleInternal_t*>(extHandle);
if ( 0 == handle->initialized )
{
return NULL;
}
try
{
geos::algorithm::MinimumDiameter m(g);
Geometry *g3 = m.getDiameter();
return g3;
}
catch (const std::exception &e)
{
handle->ERROR_MESSAGE("%s", e.what());
}
catch (...)
{
handle->ERROR_MESSAGE("Unknown exception thrown");
}
return NULL;
}
Geometry *
GEOSMinimumClearanceLine_r(GEOSContextHandle_t extHandle, const Geometry *g)
{
if ( 0 == extHandle )
{
return NULL;
}
GEOSContextHandleInternal_t *handle = 0;
handle = reinterpret_cast<GEOSContextHandleInternal_t*>(extHandle);
if ( 0 == handle->initialized )
{
return NULL;
}
try
{
geos::precision::MinimumClearance mc(g);
return mc.getLine().release();
}
catch (const std::exception &e)
{
handle->ERROR_MESSAGE("%s", e.what());
}
catch (...)
{
handle->ERROR_MESSAGE("Unknown exception thrown");
}
return NULL;
}
int
GEOSMinimumClearance_r(GEOSContextHandle_t extHandle, const Geometry *g, double *d)
{
if ( 0 == extHandle )
{
return 2;
}
GEOSContextHandleInternal_t *handle = 0;
handle = reinterpret_cast<GEOSContextHandleInternal_t*>(extHandle);
if ( 0 == handle->initialized )
{
return 2;
}
try
{
geos::precision::MinimumClearance mc(g);
double res = mc.getDistance();
*d = res;
return 0;
}
catch (const std::exception &e)
{
handle->ERROR_MESSAGE("%s", e.what());
}
catch (...)
{
handle->ERROR_MESSAGE("Unknown exception thrown");
}
return 2;
}
Geometry *
GEOSDifference_r(GEOSContextHandle_t extHandle, const Geometry *g1, const Geometry *g2)
{
......@@ -2384,6 +2525,26 @@ GEOSGeom_destroy_r(GEOSContextHandle_t extHandle, Geometry *a)
}
}
void
GEOSGeom_setUserData_r(GEOSContextHandle_t extHandle, Geometry *g, void* userData)
{
assert(0 != g);
if ( 0 == extHandle )
{
return;
}
GEOSContextHandleInternal_t *handle = 0;
handle = reinterpret_cast<GEOSContextHandleInternal_t*>(extHandle);
if ( 0 == handle->initialized )
{
return;
}
g->setUserData(userData);
}
void
GEOSSetSRID_r(GEOSContextHandle_t extHandle, Geometry *g, int srid)
{
......@@ -3061,8 +3222,7 @@ GEOSGeom_createEmptyCollection_r(GEOSContextHandle_t extHandle, int type)
#ifdef GEOS_DEBUG
char buf[256];
sprintf(buf, "createCollection: requested type %d, ngeoms: %d",
type, ngeoms);
sprintf(buf, "createCollection: requested type %d", type);
handle->NOTICE_MESSAGE("%s", buf);// TODO: Can handle->NOTICE_MESSAGE format that directly?
#endif
......@@ -3149,6 +3309,7 @@ GEOSGeom_createCollection_r(GEOSContextHandle_t extHandle, int type, Geometry **
break;
default:
handle->ERROR_MESSAGE("Unsupported type request for PostGIS2GEOS_collection");
delete vgeoms;
g = 0;
}
......@@ -3460,6 +3621,39 @@ GEOSLineMerge_r(GEOSContextHandle_t extHandle, const Geometry *g)
return out;
}
void*
GEOSGeom_getUserData_r(GEOSContextHandle_t extHandle, const Geometry *g)
{
assert(0 != g);
if ( 0 == extHandle )
{
return 0;
}
GEOSContextHandleInternal_t *handle = 0;
handle = reinterpret_cast<GEOSContextHandleInternal_t*>(extHandle);
if ( 0 == handle->initialized )
{
return 0;
}
try
{
return g->getUserData();
}
catch (const std::exception &e)
{
handle->ERROR_MESSAGE("%s", e.what());
}
catch (...)
{
handle->ERROR_MESSAGE("Unknown exception thrown");
}
return NULL;
}
int
GEOSGetSRID_r(GEOSContextHandle_t extHandle, const Geometry *g)
{
......@@ -3496,7 +3690,7 @@ GEOSGetSRID_r(GEOSContextHandle_t extHandle, const Geometry *g)
const char* GEOSversion()
{
static char version[256];
sprintf(version, "%s r%d", GEOS_CAPI_VERSION, GEOS_SVN_REVISION);
sprintf(version, "%s " GEOS_REVISION, GEOS_CAPI_VERSION);
return version;
}
......@@ -4175,6 +4369,7 @@ GEOSGeom_createPolygon_r(GEOSContextHandle_t extHandle, Geometry *shell, Geometr
if ( ! nshell )
{
handle->ERROR_MESSAGE("Shell is not a LinearRing");
delete vholes;
return NULL;
}
const GeometryFactory *gf = handle->geomFactory;
......@@ -4226,6 +4421,100 @@ GEOSGeom_clone_r(GEOSContextHandle_t extHandle, const Geometry *g)
return NULL;
}
GEOSGeometry *
GEOSGeom_setPrecision_r(GEOSContextHandle_t extHandle, const GEOSGeometry *g,
double gridSize, int flags)
{
using namespace geos::geom;
assert(0 != g);
if ( 0 == extHandle )
{
return NULL;
}
GEOSContextHandleInternal_t *handle = 0;
handle = reinterpret_cast<GEOSContextHandleInternal_t*>(extHandle);
if ( 0 == handle->initialized )
{
return NULL;
}
try
{
const PrecisionModel *pm = g->getPrecisionModel();
double cursize = pm->isFloating() ? 0 : 1.0/pm->getScale();
std::auto_ptr<PrecisionModel> newpm;
if ( gridSize ) newpm.reset( new PrecisionModel(1.0/gridSize) );
else newpm.reset( new PrecisionModel() );
GeometryFactory::unique_ptr gf =
GeometryFactory::create( newpm.get(), g->getSRID() );
Geometry *ret;
if ( gridSize && cursize != gridSize )
{
// We need to snap the geometry
GeometryPrecisionReducer reducer( *gf );
reducer.setPointwise( flags & GEOS_PREC_NO_TOPO );
reducer.setRemoveCollapsedComponents( ! (flags & GEOS_PREC_KEEP_COLLAPSED) );
ret = reducer.reduce( *g ).release();
}
else
{
// No need or willing to snap, just change the factory
ret = gf->createGeometry(g);
}
return ret;
}
catch (const std::exception &e)
{
handle->ERROR_MESSAGE("%s", e.what());
}
catch (...)
{
handle->ERROR_MESSAGE("Unknown exception thrown");
}
return NULL;
}
double
GEOSGeom_getPrecision_r(GEOSContextHandle_t extHandle, const GEOSGeometry *g)
{
using namespace geos::geom;
assert(0 != g);
if ( 0 == extHandle )
{
return -1;
}
GEOSContextHandleInternal_t *handle = 0;
handle = reinterpret_cast<GEOSContextHandleInternal_t*>(extHandle);
if ( 0 == handle->initialized )
{
return -1;
}
try
{
const PrecisionModel *pm = g->getPrecisionModel();
double cursize = pm->isFloating() ? 0 : 1.0/pm->getScale();
return cursize;
}
catch (const std::exception &e)
{
handle->ERROR_MESSAGE("%s", e.what());
}
catch (...)
{
handle->ERROR_MESSAGE("Unknown exception thrown");
}
return -1;
}
int
GEOSGeom_getDimensions_r(GEOSContextHandle_t extHandle, const Geometry *g)
{
......@@ -5777,6 +6066,89 @@ GEOSSTRtree_query_r(GEOSContextHandle_t extHandle,
}
}
const GEOSGeometry *
GEOSSTRtree_nearest_r(GEOSContextHandle_t extHandle,
geos::index::strtree::STRtree *tree,
const geos::geom::Geometry* geom)
{
return (const GEOSGeometry*) GEOSSTRtree_nearest_generic_r( extHandle, tree, geom, geom->getEnvelope(), NULL, NULL);
}
const void *
GEOSSTRtree_nearest_generic_r(GEOSContextHandle_t extHandle,
geos::index::strtree::STRtree *tree,
const void* item,
const geos::geom::Geometry* itemEnvelope,
GEOSDistanceCallback distancefn,
void* userdata)
{
GEOSContextHandleInternal_t *handle = 0;
struct CustomItemDistance : public ItemDistance {
CustomItemDistance(GEOSDistanceCallback p_distancefn, void* p_userdata)
: m_distancefn(p_distancefn), m_userdata(p_userdata) {}
GEOSDistanceCallback m_distancefn;
void* m_userdata;
double distance(const ItemBoundable* item1, const ItemBoundable* item2) {
const void* a = item1->getItem();
const void* b = item2->getItem();
double d;
if (!m_distancefn(a, b, &d, m_userdata)) {
throw std::runtime_error(std::string("Failed to compute distance."));
}
return d;
}
};
try
{
if (distancefn) {
CustomItemDistance itemDistance(distancefn, userdata);
return tree->nearestNeighbour(itemEnvelope->getEnvelopeInternal(), item, &itemDistance);
} else {
GeometryItemDistance itemDistance = GeometryItemDistance();
return tree->nearestNeighbour(itemEnvelope->getEnvelopeInternal(), item, &itemDistance);
}
}
catch (const std::exception &e)
{
if ( 0 == extHandle )
{
return NULL;
}
handle = reinterpret_cast<GEOSContextHandleInternal_t*>(extHandle);
if ( 0 == handle->initialized )
{
return NULL;
}
handle->ERROR_MESSAGE("%s", e.what());
}
catch (...)
{
if ( 0 == extHandle )
{
return NULL;
}
handle = reinterpret_cast<GEOSContextHandleInternal_t*>(extHandle);
if ( 0 == handle->initialized )
{
return NULL;
}
handle->ERROR_MESSAGE("Unknown exception thrown");
}
return NULL;
}
void
GEOSSTRtree_iterate_r(GEOSContextHandle_t extHandle,
geos::index::strtree::STRtree *tree,
......
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright 1992-2015 Free Software Foundation, Inc.
# Copyright 1992-2013 Free Software Foundation, Inc.
timestamp='2015-08-20'
timestamp='2013-06-10'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
......@@ -24,12 +24,12 @@ timestamp='2015-08-20'
# program. This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
#
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
# Originally written by Per Bothner.
#
# You can get the latest version of this script from:
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
#
# Please send patches to <config-patches@gnu.org>.
# Please send patches with a ChangeLog entry to config-patches@gnu.org.
me=`echo "$0" | sed -e 's,.*/,,'`
......@@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
Copyright 1992-2015 Free Software Foundation, Inc.
Copyright 1992-2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
......@@ -149,7 +149,7 @@ Linux|GNU|GNU/*)
LIBC=gnu
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
;;
esac
......@@ -168,27 +168,20 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
/sbin/$sysctl 2>/dev/null || \
/usr/sbin/$sysctl 2>/dev/null || \
echo unknown)`
UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
/usr/sbin/$sysctl 2>/dev/null || echo unknown)`
case "${UNAME_MACHINE_ARCH}" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
earmv*)
arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
machine=${arch}${endian}-unknown
;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently, or will in the future.
case "${UNAME_MACHINE_ARCH}" in
arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax)
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
......@@ -204,13 +197,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
os=netbsd
;;
esac
# Determine ABI tags.
case "${UNAME_MACHINE_ARCH}" in
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
;;
esac
# The OS release
# Debian GNU/NetBSD machines have a different userland, and
# thus, need a distinct triplet. However, they do not need
......@@ -221,13 +207,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
release='-gnu'
;;
*)
release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}${abi}"
echo "${machine}-${os}${release}"
exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
......@@ -249,9 +235,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:MirBSD:*:*)
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
exit ;;
*:Sortix:*:*)
echo ${UNAME_MACHINE}-unknown-sortix
exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
......@@ -596,9 +579,8 @@ EOF
else
IBM_ARCH=powerpc
fi
if [ -x /usr/bin/lslpp ] ; then
IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
......@@ -844,7 +826,7 @@ EOF
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
*:MSYS*:*)
i*:MSYS*:*)
echo ${UNAME_MACHINE}-pc-msys
exit ;;
i*:windows32*:*)
......@@ -950,9 +932,6 @@ EOF
crisv32:Linux:*:*)
echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
e2k:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
frv:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
......@@ -990,10 +969,10 @@ EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;;
openrisc*:Linux:*:*)
echo or1k-unknown-linux-${LIBC}
or1k:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
or32:Linux:*:* | or1k*:Linux:*:*)
or32:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
padre:Linux:*:*)
......@@ -1041,7 +1020,7 @@ EOF
echo ${UNAME_MACHINE}-dec-linux-${LIBC}
exit ;;
x86_64:Linux:*:*)
echo ${UNAME_MACHINE}-pc-linux-${LIBC}
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
xtensa*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
......@@ -1281,7 +1260,6 @@ EOF
if test "$UNAME_PROCESSOR" = unknown ; then
UNAME_PROCESSOR=powerpc
fi
if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
......@@ -1293,15 +1271,6 @@ EOF
esac
fi
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
# Avoid executing cc on OS X 10.9, as it ships with a stub
# that puts up a graphical alert prompting to install
# developer tools. Any system running Mac OS X 10.7 or
# later (Darwin 11 and later) is required to have a 64-bit
# processor. This is not true of the ARM version of Darwin
# that Apple uses in portable devices.
UNAME_PROCESSOR=x86_64
fi
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
......@@ -1392,6 +1361,154 @@ EOF
exit ;;
esac
eval $set_cc_for_build
cat >$dummy.c <<EOF
#ifdef _SEQUENT_
# include <sys/types.h>
# include <sys/utsname.h>
#endif
main ()
{
#if defined (sony)
#if defined (MIPSEB)
/* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
I don't know.... */
printf ("mips-sony-bsd\n"); exit (0);
#else
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
"4"
#else
""
#endif
); exit (0);
#endif
#endif
#if defined (__arm) && defined (__acorn) && defined (__unix)
printf ("arm-acorn-riscix\n"); exit (0);
#endif
#if defined (hp300) && !defined (hpux)
printf ("m68k-hp-bsd\n"); exit (0);
#endif
#if defined (NeXT)
#if !defined (__ARCHITECTURE__)
#define __ARCHITECTURE__ "m68k"
#endif
int version;
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
if (version < 4)
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
else
printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
exit (0);
#endif
#if defined (MULTIMAX) || defined (n16)
#if defined (UMAXV)
printf ("ns32k-encore-sysv\n"); exit (0);
#else
#if defined (CMU)
printf ("ns32k-encore-mach\n"); exit (0);
#else
printf ("ns32k-encore-bsd\n"); exit (0);
#endif
#endif
#endif
#if defined (__386BSD__)
printf ("i386-pc-bsd\n"); exit (0);
#endif
#if defined (sequent)
#if defined (i386)
printf ("i386-sequent-dynix\n"); exit (0);
#endif
#if defined (ns32000)
printf ("ns32k-sequent-dynix\n"); exit (0);
#endif
#endif
#if defined (_SEQUENT_)
struct utsname un;
uname(&un);
if (strncmp(un.version, "V2", 2) == 0) {
printf ("i386-sequent-ptx2\n"); exit (0);
}
if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
printf ("i386-sequent-ptx1\n"); exit (0);
}
printf ("i386-sequent-ptx\n"); exit (0);
#endif
#if defined (vax)
# if !defined (ultrix)
# include <sys/param.h>
# if defined (BSD)
# if BSD == 43
printf ("vax-dec-bsd4.3\n"); exit (0);
# else
# if BSD == 199006
printf ("vax-dec-bsd4.3reno\n"); exit (0);
# else
printf ("vax-dec-bsd\n"); exit (0);
# endif
# endif
# else
printf ("vax-dec-bsd\n"); exit (0);
# endif
# else
printf ("vax-dec-ultrix\n"); exit (0);
# endif
#endif
#if defined (alliant) && defined (i860)
printf ("i860-alliant-bsd\n"); exit (0);
#endif
exit (1);
}
EOF
$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
{ echo "$SYSTEM_NAME"; exit; }
# Apollos put the system type in the environment.
test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
# Convex versions that predate uname can use getsysinfo(1)
if [ -x /usr/convex/getsysinfo ]
then
case `getsysinfo -f cpu_type` in
c1*)
echo c1-convex-bsd
exit ;;
c2*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit ;;
c34*)
echo c34-convex-bsd
exit ;;
c38*)
echo c38-convex-bsd
exit ;;
c4*)
echo c4-convex-bsd
exit ;;
esac
fi
cat >&2 <<EOF
$0: unable to guess system type
......
#! /bin/sh
# Configuration validation subroutine script.
# Copyright 1992-2015 Free Software Foundation, Inc.
# Copyright 1992-2013 Free Software Foundation, Inc.
timestamp='2015-08-20'
timestamp='2013-08-10'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
......@@ -25,7 +25,7 @@ timestamp='2015-08-20'
# of the GNU General Public License, version 3 ("GPLv3").
# Please send patches to <config-patches@gnu.org>.
# Please send patches with a ChangeLog entry to config-patches@gnu.org.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
......@@ -68,7 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
Copyright 1992-2015 Free Software Foundation, Inc.
Copyright 1992-2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
......@@ -117,7 +117,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
knetbsd*-gnu* | netbsd*-gnu* | \
kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
......@@ -255,18 +255,16 @@ case $basic_machine in
| arc | arceb \
| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
| avr | avr32 \
| ba \
| be32 | be64 \
| bfin \
| c4x | c8051 | clipper \
| d10v | d30v | dlx | dsp16xx \
| e2k | epiphany \
| fido | fr30 | frv | ft32 \
| epiphany \
| fido | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
| k1om \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
......@@ -284,10 +282,8 @@ case $basic_machine in
| mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
| mipsisa32r6 | mipsisa32r6el \
| mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \
| mipsisa64r6 | mipsisa64r6el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
| mipsr5900 | mipsr5900el \
......@@ -299,14 +295,14 @@ case $basic_machine in
| nds32 | nds32le | nds32be \
| nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
| open8 | or1k | or1knd | or32 \
| open8 \
| or1k | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
| riscv32 | riscv64 \
| rl78 | rx \
| score \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
......@@ -314,7 +310,6 @@ case $basic_machine in
| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
| ubicom32 \
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
| visium \
| we32k \
| x86 | xc16x | xstormy16 | xtensa \
| z8k | z80)
......@@ -329,10 +324,7 @@ case $basic_machine in
c6x)
basic_machine=tic6x-unknown
;;
leon|leon[3-9])
basic_machine=sparc-$basic_machine
;;
m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
......@@ -377,20 +369,18 @@ case $basic_machine in
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
| ba-* \
| be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
| c8051-* | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| e2k-* | elxsi-* \
| elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
| k1om-* \
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
......@@ -410,10 +400,8 @@ case $basic_machine in
| mips64vr5900-* | mips64vr5900el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
| mipsisa32r6-* | mipsisa32r6el-* \
| mipsisa64-* | mipsisa64el-* \
| mipsisa64r2-* | mipsisa64r2el-* \
| mipsisa64r6-* | mipsisa64r6el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipsr5900-* | mipsr5900el-* \
......@@ -425,18 +413,16 @@ case $basic_machine in
| nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \
| or1k*-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
| pyramid-* \
| riscv32-* | riscv64-* \
| rl78-* | romp-* | rs6000-* | rx-* \
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
| tahoe-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tile*-* \
......@@ -444,7 +430,6 @@ case $basic_machine in
| ubicom32-* \
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
| vax-* \
| visium-* \
| we32k-* \
| x86-* | x86_64-* | xc16x-* | xps100-* \
| xstormy16-* | xtensa*-* \
......@@ -521,9 +506,6 @@ case $basic_machine in
basic_machine=i386-pc
os=-aros
;;
asmjs)
basic_machine=asmjs-unknown
;;
aux)
basic_machine=m68k-apple
os=-aux
......@@ -785,9 +767,6 @@ case $basic_machine in
basic_machine=m68k-isi
os=-sysv
;;
leon-*|leon[3-9]-*)
basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
;;
m68knommu)
basic_machine=m68k-unknown
os=-linux
......@@ -843,10 +822,6 @@ case $basic_machine in
basic_machine=powerpc-unknown
os=-morphos
;;
moxiebox)
basic_machine=moxie-unknown
os=-moxiebox
;;
msdos)
basic_machine=i386-pc
os=-msdos
......@@ -1379,7 +1354,7 @@ case $os in
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
| -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* | -cloudabi* | -sortix* \
| -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
......@@ -1392,14 +1367,14 @@ case $os in
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
| -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
......@@ -1617,6 +1592,9 @@ case $basic_machine in
mips*-*)
os=-elf
;;
or1k-*)
os=-elf
;;
or32-*)
os=-coff
;;
......
......@@ -646,15 +646,6 @@ INTERFACE_CURRENT
VERSION_PATCH
VERSION_MINOR
VERSION_MAJOR
HAVE_PHP_UNIT_FALSE
HAVE_PHP_UNIT_TRUE
HAVE_PHP_FALSE
HAVE_PHP_TRUE
ENABLE_PHP_FALSE
ENABLE_PHP_TRUE
PHPUNIT
PHP
PHP_CONFIG
ENABLE_RUBY_FALSE
ENABLE_RUBY_TRUE
RUBY_SHARED_LIB
......@@ -840,7 +831,6 @@ enable_cassert
enable_glibcxx_debug
enable_python
enable_ruby
enable_php
'
ac_precious_vars='build_alias
host_alias
......@@ -855,7 +845,8 @@ CPP
CXX
CXXFLAGS
CCC
CXXCPP'
CXXCPP
PYTHON'
 
 
# Initialize some variables set by options.
......@@ -1503,7 +1494,6 @@ Optional Features:
--enable-glibcxx-debug Enable libstdc++ debug mode
--enable-python Enable build of python module
--enable-ruby Enable build of ruby module
--enable-php Enable build of php module
 
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
......@@ -1531,6 +1521,7 @@ Some influential environment variables:
CXX C++ compiler command
CXXFLAGS C++ compiler flags
CXXCPP C++ preprocessor
PYTHON the Python interpreter
 
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
......@@ -2631,13 +2622,13 @@ test -n "$target_alias" &&
 
JTS_PORT=1.13.0
 
CAPI_INTERFACE_CURRENT=10
CAPI_INTERFACE_REVISION=1
CAPI_INTERFACE_AGE=9
CAPI_INTERFACE_CURRENT=11
CAPI_INTERFACE_REVISION=2
CAPI_INTERFACE_AGE=10
 
VERSION_MAJOR=3
VERSION_MINOR=5
VERSION_PATCH=1
VERSION_MINOR=6
VERSION_PATCH=2
VERSION="$VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH"
 
CAPI_VERSION_MAJOR=`expr $CAPI_INTERFACE_CURRENT - $CAPI_INTERFACE_AGE`
......@@ -18158,21 +18149,6 @@ fi
 
 
 
# Check whether --enable-php was given.
if test "${enable_php+set}" = set; then :
enableval=$enable_php; case "${enableval}" in
yes) use_php=true ;;
no) use_php=false ;;
*) as_fn_error $? "bad value ${enableval} for --enable-php" "$LINENO" 5 ;;
esac
else
use_php=false
fi
use_swig=false
if test x"$use_python" = xtrue ||
test x"$use_ruby" = xtrue; then
......@@ -18310,9 +18286,11 @@ if test x"$use_python" = xtrue; then
 
 
 
# Find any Python interpreter.
if test -z "$PYTHON"; then
for ac_prog in python python2 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5
for ac_prog in python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
......@@ -18372,7 +18350,7 @@ $as_echo_n "checking for $am_display_PYTHON version... " >&6; }
if ${am_cv_python_version+:} false; then :
$as_echo_n "(cached) " >&6
else
am_cv_python_version=`$PYTHON -c "import sys; print sys.version[:3]"`
am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
$as_echo "$am_cv_python_version" >&6; }
......@@ -18391,13 +18369,32 @@ $as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
if ${am_cv_python_platform+:} false; then :
$as_echo_n "(cached) " >&6
else
am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"`
am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
$as_echo "$am_cv_python_platform" >&6; }
PYTHON_PLATFORM=$am_cv_python_platform
 
 
# Just factor out some code duplication.
am_python_setup_sysconfig="\
import sys
# Prefer sysconfig over distutils.sysconfig, for better compatibility
# with python 3.x. See automake bug#10227.
try:
import sysconfig
except ImportError:
can_use_sysconfig = 0
else:
can_use_sysconfig = 1
# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
# <https://github.com/pypa/virtualenv/issues/118>
try:
from platform import python_implementation
if python_implementation() == 'CPython' and sys.version[:3] == '2.7':
can_use_sysconfig = 0
except ImportError:
pass"
 
 
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
......@@ -18405,8 +18402,35 @@ $as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
if ${am_cv_python_pythondir+:} false; then :
$as_echo_n "(cached) " >&6
else
am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null ||
echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
if test "x$prefix" = xNONE
then
am_py_prefix=$ac_default_prefix
else
am_py_prefix=$prefix
fi
am_cv_python_pythondir=`$PYTHON -c "
$am_python_setup_sysconfig
if can_use_sysconfig:
sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
else:
from distutils import sysconfig
sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
sys.stdout.write(sitedir)"`
case $am_cv_python_pythondir in
$am_py_prefix*)
am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
;;
*)
case $am_py_prefix in
/usr|/System*) ;;
*)
am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
;;
esac
;;
esac
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
$as_echo "$am_cv_python_pythondir" >&6; }
......@@ -18422,8 +18446,35 @@ $as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6;
if ${am_cv_python_pyexecdir+:} false; then :
$as_echo_n "(cached) " >&6
else
am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null ||
echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"`
if test "x$exec_prefix" = xNONE
then
am_py_exec_prefix=$am_py_prefix
else
am_py_exec_prefix=$exec_prefix
fi
am_cv_python_pyexecdir=`$PYTHON -c "
$am_python_setup_sysconfig
if can_use_sysconfig:
sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
else:
from distutils import sysconfig
sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
sys.stdout.write(sitedir)"`
case $am_cv_python_pyexecdir in
$am_py_exec_prefix*)
am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
;;
*)
case $am_py_exec_prefix in
/usr|/System*) ;;
*)
am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
;;
esac
;;
esac
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
$as_echo "$am_cv_python_pyexecdir" >&6; }
......@@ -18659,164 +18710,6 @@ fi
 
 
 
if test x"$use_php" = xtrue; then
# Extract the first word of "php-config", so it can be a program name with args.
set dummy php-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_PHP_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $PHP_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PHP_CONFIG="$PHP_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PHP_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PHP_CONFIG=$ac_cv_path_PHP_CONFIG
if test -n "$PHP_CONFIG"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PHP_CONFIG" >&5
$as_echo "$PHP_CONFIG" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test x"$PHP_CONFIG" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: php-config not found, php support disabled" >&5
$as_echo "$as_me: WARNING: php-config not found, php support disabled" >&2;}
use_php=false
else
# Extract the first word of "php", so it can be a program name with args.
set dummy php; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_PHP+:} false; then :
$as_echo_n "(cached) " >&6
else
case $PHP in
[\\/]* | ?:[\\/]*)
ac_cv_path_PHP="$PHP" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PHP="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PHP=$ac_cv_path_PHP
if test -n "$PHP"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PHP" >&5
$as_echo "$PHP" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
# Extract the first word of "phpunit", so it can be a program name with args.
set dummy phpunit; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_PHPUNIT+:} false; then :
$as_echo_n "(cached) " >&6
else
case $PHPUNIT in
[\\/]* | ?:[\\/]*)
ac_cv_path_PHPUNIT="$PHPUNIT" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PHPUNIT="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PHPUNIT=$ac_cv_path_PHPUNIT
if test -n "$PHPUNIT"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PHPUNIT" >&5
$as_echo "$PHPUNIT" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
fi
if test x"$use_php" = xtrue ; then
ENABLE_PHP_TRUE=
ENABLE_PHP_FALSE='#'
else
ENABLE_PHP_TRUE='#'
ENABLE_PHP_FALSE=
fi
if test x"$PHP" != x ; then
HAVE_PHP_TRUE=
HAVE_PHP_FALSE='#'
else
HAVE_PHP_TRUE='#'
HAVE_PHP_FALSE=
fi
if test x"$PHPUNIT" != x ; then
HAVE_PHP_UNIT_TRUE=
HAVE_PHP_UNIT_FALSE='#'
else
HAVE_PHP_UNIT_TRUE='#'
HAVE_PHP_UNIT_FALSE=
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking OS-specific settings" >&5
$as_echo_n "checking OS-specific settings... " >&6; }
 
......@@ -18870,7 +18763,7 @@ esac
 
 
 
ac_config_files="$ac_config_files Makefile capi/Makefile capi/geos_c.h doc/Doxyfile doc/Makefile macros/Makefile src/Makefile src/algorithm/Makefile src/algorithm/locate/Makefile src/algorithm/distance/Makefile src/geom/Makefile src/geom/prep/Makefile src/geom/util/Makefile src/geomgraph/Makefile src/geomgraph/index/Makefile include/Makefile include/geos/Makefile include/geos/algorithm/Makefile include/geos/algorithm/locate/Makefile include/geos/algorithm/distance/Makefile include/geos/geom/Makefile include/geos/geom/prep/Makefile include/geos/geom/util/Makefile include/geos/geomgraph/Makefile include/geos/geomgraph/index/Makefile include/geos/index/Makefile include/geos/index/bintree/Makefile include/geos/index/chain/Makefile include/geos/index/intervalrtree/Makefile include/geos/index/quadtree/Makefile include/geos/index/strtree/Makefile include/geos/index/sweepline/Makefile include/geos/io/Makefile include/geos/linearref/Makefile include/geos/noding/Makefile include/geos/noding/snapround/Makefile include/geos/operation/Makefile include/geos/operation/buffer/Makefile include/geos/operation/distance/Makefile include/geos/operation/intersection/Makefile include/geos/operation/linemerge/Makefile include/geos/operation/overlay/Makefile include/geos/operation/overlay/snap/Makefile include/geos/operation/polygonize/Makefile include/geos/operation/predicate/Makefile include/geos/operation/relate/Makefile include/geos/operation/sharedpaths/Makefile include/geos/operation/union/Makefile include/geos/operation/valid/Makefile include/geos/planargraph/Makefile include/geos/planargraph/algorithm/Makefile include/geos/precision/Makefile include/geos/simplify/Makefile include/geos/triangulate/Makefile include/geos/triangulate/quadedge/Makefile include/geos/util/Makefile include/geos/version.h src/index/Makefile src/index/bintree/Makefile src/index/chain/Makefile src/index/intervalrtree/Makefile src/index/quadtree/Makefile src/index/strtree/Makefile src/index/sweepline/Makefile src/io/Makefile src/linearref/Makefile src/noding/Makefile src/noding/snapround/Makefile src/operation/Makefile src/operation/buffer/Makefile src/operation/distance/Makefile src/operation/intersection/Makefile src/operation/linemerge/Makefile src/operation/overlay/Makefile src/operation/polygonize/Makefile src/operation/predicate/Makefile src/operation/relate/Makefile src/operation/sharedpaths/Makefile src/operation/union/Makefile src/operation/valid/Makefile src/planargraph/Makefile src/precision/Makefile src/simplify/Makefile src/triangulate/Makefile src/triangulate/quadedge/Makefile src/util/Makefile swig/geos.i swig/Makefile swig/python/Makefile swig/python/tests/Makefile swig/ruby/Makefile swig/ruby/test/Makefile php/Makefile php/test/Makefile tests/Makefile tests/bigtest/Makefile tests/unit/Makefile tests/perf/Makefile tests/perf/operation/Makefile tests/perf/operation/buffer/Makefile tests/perf/operation/predicate/Makefile tests/perf/capi/Makefile tests/xmltester/Makefile tests/geostest/Makefile tests/thread/Makefile tools/Makefile tools/geos-config"
ac_config_files="$ac_config_files Makefile capi/Makefile capi/geos_c.h doc/Doxyfile doc/Makefile macros/Makefile src/Makefile src/algorithm/Makefile src/algorithm/locate/Makefile src/algorithm/distance/Makefile src/geom/Makefile src/geom/prep/Makefile src/geom/util/Makefile src/geomgraph/Makefile src/geomgraph/index/Makefile include/Makefile include/geos/Makefile include/geos/algorithm/Makefile include/geos/algorithm/locate/Makefile include/geos/algorithm/distance/Makefile include/geos/geom/Makefile include/geos/geom/prep/Makefile include/geos/geom/util/Makefile include/geos/geomgraph/Makefile include/geos/geomgraph/index/Makefile include/geos/index/Makefile include/geos/index/bintree/Makefile include/geos/index/chain/Makefile include/geos/index/intervalrtree/Makefile include/geos/index/quadtree/Makefile include/geos/index/strtree/Makefile include/geos/index/sweepline/Makefile include/geos/io/Makefile include/geos/linearref/Makefile include/geos/noding/Makefile include/geos/noding/snapround/Makefile include/geos/operation/Makefile include/geos/operation/buffer/Makefile include/geos/operation/distance/Makefile include/geos/operation/intersection/Makefile include/geos/operation/linemerge/Makefile include/geos/operation/overlay/Makefile include/geos/operation/overlay/snap/Makefile include/geos/operation/polygonize/Makefile include/geos/operation/predicate/Makefile include/geos/operation/relate/Makefile include/geos/operation/sharedpaths/Makefile include/geos/operation/union/Makefile include/geos/operation/valid/Makefile include/geos/planargraph/Makefile include/geos/planargraph/algorithm/Makefile include/geos/precision/Makefile include/geos/simplify/Makefile include/geos/triangulate/Makefile include/geos/triangulate/quadedge/Makefile include/geos/util/Makefile include/geos/version.h src/index/Makefile src/index/bintree/Makefile src/index/chain/Makefile src/index/intervalrtree/Makefile src/index/quadtree/Makefile src/index/strtree/Makefile src/index/sweepline/Makefile src/io/Makefile src/linearref/Makefile src/noding/Makefile src/noding/snapround/Makefile src/operation/Makefile src/operation/buffer/Makefile src/operation/distance/Makefile src/operation/intersection/Makefile src/operation/linemerge/Makefile src/operation/overlay/Makefile src/operation/polygonize/Makefile src/operation/predicate/Makefile src/operation/relate/Makefile src/operation/sharedpaths/Makefile src/operation/union/Makefile src/operation/valid/Makefile src/planargraph/Makefile src/precision/Makefile src/simplify/Makefile src/triangulate/Makefile src/triangulate/quadedge/Makefile src/util/Makefile swig/geos.i swig/Makefile swig/python/Makefile swig/python/tests/Makefile swig/ruby/Makefile swig/ruby/test/Makefile tests/Makefile tests/bigtest/Makefile tests/unit/Makefile tests/perf/Makefile tests/perf/operation/Makefile tests/perf/operation/buffer/Makefile tests/perf/operation/predicate/Makefile tests/perf/capi/Makefile tests/xmltester/Makefile tests/geostest/Makefile tests/thread/Makefile tools/Makefile tools/geos-config"
 
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
......@@ -19025,18 +18918,6 @@ if test -z "${ENABLE_RUBY_TRUE}" && test -z "${ENABLE_RUBY_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_RUBY\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${ENABLE_PHP_TRUE}" && test -z "${ENABLE_PHP_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_PHP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_PHP_TRUE}" && test -z "${HAVE_PHP_FALSE}"; then
as_fn_error $? "conditional \"HAVE_PHP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_PHP_UNIT_TRUE}" && test -z "${HAVE_PHP_UNIT_FALSE}"; then
as_fn_error $? "conditional \"HAVE_PHP_UNIT\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
 
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
......@@ -20108,8 +19989,6 @@ do
"swig/python/tests/Makefile") CONFIG_FILES="$CONFIG_FILES swig/python/tests/Makefile" ;;
"swig/ruby/Makefile") CONFIG_FILES="$CONFIG_FILES swig/ruby/Makefile" ;;
"swig/ruby/test/Makefile") CONFIG_FILES="$CONFIG_FILES swig/ruby/test/Makefile" ;;
"php/Makefile") CONFIG_FILES="$CONFIG_FILES php/Makefile" ;;
"php/test/Makefile") CONFIG_FILES="$CONFIG_FILES php/test/Makefile" ;;
"tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
"tests/bigtest/Makefile") CONFIG_FILES="$CONFIG_FILES tests/bigtest/Makefile" ;;
"tests/unit/Makefile") CONFIG_FILES="$CONFIG_FILES tests/unit/Makefile" ;;
......@@ -20826,7 +20705,6 @@ $as_echo X"$file" |
cat <<_LT_EOF >> "$cfgfile"
#! $SHELL
# Generated automatically by $as_me ($PACKAGE) $VERSION
# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
 
# Provide generalized library-building support services.
......@@ -21567,13 +21445,3 @@ echo "Swig: $use_swig"
echo "Python bindings: $use_python"
echo "Ruby bindings: $use_ruby"
 
echo "PHP bindings: $use_php"
if test x"$use_php" = xtrue; then
echo " PHP: $PHP"
echo " PHPUNIT: $PHPUNIT"
if test x"$PHP" = x -o x"$PHPUNIT" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PHP Unit testing disabled (missing PHP or PHPUNIT)" >&5
$as_echo "$as_me: WARNING: PHP Unit testing disabled (missing PHP or PHPUNIT)" >&2;}
fi
fi
......@@ -14,17 +14,17 @@ dnl -- JTS_PORT: the version of JTS this release is bound to
JTS_PORT=1.13.0
dnl -- Version info for the CAPI
CAPI_INTERFACE_CURRENT=10
CAPI_INTERFACE_REVISION=1
CAPI_INTERFACE_AGE=9
CAPI_INTERFACE_CURRENT=11
CAPI_INTERFACE_REVISION=2
CAPI_INTERFACE_AGE=10
dnl
dnl -- Release versions / C++ library SONAME will use these
dnl -- encoding ABI break at every release
dnl
VERSION_MAJOR=3
VERSION_MINOR=5
VERSION_PATCH=1
VERSION_MINOR=6
VERSION_PATCH=2
VERSION="$VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH"
dnl CAPI_VERSION_MAJOR=$(($CAPI_INTERFACE_CURRENT-$CAPI_INTERFACE_AGE))
......@@ -256,21 +256,7 @@ AC_ARG_ENABLE([ruby], [ --enable-ruby Enable build of ruby module],
)
dnl --------------------------------------------------------------------
dnl - check whether php is required for the build
dnl --------------------------------------------------------------------
AC_ARG_ENABLE([php], [ --enable-php Enable build of php module],
[case "${enableval}" in
yes) use_php=true ;;
no) use_php=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-php) ;;
esac],
[use_php=false]
)
dnl --------------------------------------------------------------------
dnl - check for swig if python, ruby or php are enabled
dnl - check for swig if python or ruby are enabled
dnl --------------------------------------------------------------------
use_swig=false
......@@ -324,32 +310,6 @@ if test x"$use_ruby" = xtrue; then
fi
AM_CONDITIONAL(ENABLE_RUBY, [ test x"$use_ruby" = xtrue ])
dnl --------------------------------------------------------------------
dnl - check for php if enabled
dnl --------------------------------------------------------------------
if test x"$use_php" = xtrue; then
dnl Check for PHP
AC_PATH_PROG(PHP_CONFIG, php-config)
if test x"$PHP_CONFIG" = x; then
AC_MSG_WARN([php-config not found, php support disabled])
use_php=false
else
dnl TODO: check for version, we want PHP5 dev files
AC_PATH_PROG(PHP, php) dnl for unit testing
AC_PATH_PROG(PHPUNIT, phpunit) dnl for unit testing
fi
fi
AM_CONDITIONAL(ENABLE_PHP, [ test x"$use_php" = xtrue ])
AM_CONDITIONAL(HAVE_PHP, [ test x"$PHP" != x ])
AM_CONDITIONAL(HAVE_PHP_UNIT, [ test x"$PHPUNIT" != x ])
dnl --------------------------------------------------------------------
dnl - do operating-system specific things
dnl --------------------------------------------------------------------
......@@ -506,8 +466,6 @@ AC_OUTPUT([
swig/python/tests/Makefile
swig/ruby/Makefile
swig/ruby/test/Makefile
php/Makefile
php/test/Makefile
tests/Makefile
tests/bigtest/Makefile
tests/unit/Makefile
......@@ -529,13 +487,4 @@ echo "Swig: $use_swig"
echo "Python bindings: $use_python"
echo "Ruby bindings: $use_ruby"
echo "PHP bindings: $use_php"
if test x"$use_php" = xtrue; then
echo " PHP: $PHP"
echo " PHPUNIT: $PHPUNIT"
if test x"$PHP" = x -o x"$PHPUNIT" = x; then
AC_MSG_WARN([PHP Unit testing disabled (missing PHP or PHPUNIT)])
fi
fi
dnl -- echo "---------------------------------------"
geos (3.6.2-1) unstable; urgency=medium
* Update symbols for other architectures.
* Add some Multi-Arch fields suggested by Multiarch hinter.
(LP: #1731706)
* Move from experimental to unstable.
-- Bas Couwenberg <sebastic@debian.org> Thu, 28 Dec 2017 09:54:46 +0100
geos (3.6.2-1~exp1) experimental; urgency=medium
* New upstream release.
* Merge changes from 3.5.1.
* Refresh patches.
* Update symbols for amd64.
* Bump Standards-Version to 4.1.2, no changes.
-- Bas Couwenberg <sebastic@debian.org> Sun, 17 Dec 2017 17:42:33 +0100
geos (3.6.0-1~exp1) experimental; urgency=medium
* New upstream release.
* Remove disabled PHP support, has split off into separate upstream project.
* Drop ruby build dependency, pulled in via ruby-all-dev.
* Update copyright file, changes:
- Add Daniel Baston & Nyall Dawson to copyright holders
* Drop isnan patches, applied upstream. Refresh remaining patches.
* Update symbols for amd64.
-- Bas Couwenberg <sebastic@debian.org> Tue, 25 Oct 2016 19:32:54 +0200
geos (3.5.1-4) unstable; urgency=medium
* Ignore test failures on problematic architectures only.
......
......@@ -10,7 +10,7 @@ Build-Depends: debhelper (>= 9.20160114),
pkg-kde-tools,
ruby-all-dev,
swig
Standards-Version: 4.1.1
Standards-Version: 4.1.2
Vcs-Browser: https://anonscm.debian.org/cgit/pkg-grass/geos.git
Vcs-Git: https://anonscm.debian.org/git/pkg-grass/geos.git
Homepage: https://trac.osgeo.org/geos/
......@@ -32,7 +32,7 @@ Description: Geometry engine for GIS - Development files
Package: libgeos++-dev
Architecture: any
Section: libdevel
Depends: libgeos-3.5.1 (= ${binary:Version}),
Depends: libgeos-3.6.2 (= ${binary:Version}),
libgeos-dev,
${misc:Depends}
Suggests: libgdal-doc
......@@ -49,6 +49,7 @@ Description: Geometry engine for GIS - C++ development files
Package: libgeos-c1v5
Architecture: any
Multi-Arch: same
Section: libs
Depends: ${shlibs:Depends},
${misc:Depends}
......@@ -71,8 +72,9 @@ Description: Geometry engine for Geographic Information Systems - C Library
This package contains the C library. A C++ library is provided
by the libgeos-* package.
Package: libgeos-3.5.1
Package: libgeos-3.6.2
Architecture: any
Multi-Arch: same
Section: libs
Depends: ${shlibs:Depends},
${misc:Depends}
......@@ -96,6 +98,7 @@ Description: Geometry engine for Geographic Information Systems - C++ Library
Package: libgeos-doc
Architecture: all
Multi-Arch: foreign
Section: doc
Depends: libjs-jquery,
${misc:Depends}
......@@ -109,6 +112,7 @@ Description: Documentation for the GEOS GIS geometry engine library
Package: ruby-geos
Architecture: any
Multi-Arch: same
Section: ruby
Pre-Depends: ${misc:Pre-Depends}
Depends: ${shlibs:Depends},
......
......@@ -10,7 +10,7 @@ Build-Depends: debhelper (>= 9.20160114),
pkg-kde-tools,
ruby-all-dev,
swig
Standards-Version: 4.1.1
Standards-Version: 4.1.2
Vcs-Browser: https://anonscm.debian.org/cgit/pkg-grass/geos.git
Vcs-Git: https://anonscm.debian.org/git/pkg-grass/geos.git
Homepage: https://trac.osgeo.org/geos/
......@@ -49,6 +49,7 @@ Description: Geometry engine for GIS - C++ development files
Package: libgeos-c1v5
Architecture: any
Multi-Arch: same
Section: libs
Depends: ${shlibs:Depends},
${misc:Depends}
......@@ -73,6 +74,7 @@ Description: Geometry engine for Geographic Information Systems - C Library
Package: libgeos-@VERSION@
Architecture: any
Multi-Arch: same
Section: libs
Depends: ${shlibs:Depends},
${misc:Depends}
......@@ -96,6 +98,7 @@ Description: Geometry engine for Geographic Information Systems - C++ Library
Package: libgeos-doc
Architecture: all
Multi-Arch: foreign
Section: doc
Depends: libjs-jquery,
${misc:Depends}
......@@ -109,6 +112,7 @@ Description: Documentation for the GEOS GIS geometry engine library
Package: ruby-geos
Architecture: any
Multi-Arch: same
Section: ruby
Pre-Depends: ${misc:Pre-Depends}
Depends: ${shlibs:Depends},
......