Skip to content
Commits on Source (36)
......@@ -6,12 +6,12 @@
#
# This is free software; you can redistribute and/or modify it under
# the terms of the GNU Lesser General Public Licence as published
# by the Free Software Foundation.
# by the Free Software Foundation.
# See the COPYING file for more information.
#
#################################################################################
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.
#
# This file is part of project GEOS (http://trac.osgeo.org/geos/)
# 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
......@@ -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)
......@@ -32,14 +61,14 @@ Changes in 3.4.2
2013-08-25
- Bug fixes / improvements
- Use a double for PrecisionModel scale, avoiding overflows
- Use a double for PrecisionModel scale, avoiding overflows
should fix 32-bit regression failures (#652)
- isnan workaround OS detection missing NetBSD, DragonFly, Sun nuance (#650)
- Do not distribute platform.h and version.h, but install both (#601)
- Non-standard ChangeLog file in 3.4.0 and 3.4.1 releases (#654)
- Non-standard ChangeLog file in 3.4.0 and 3.4.1 releases (#654)
- new travis bot (#657)
- accept multiple Nan representations (#656)
Changes in 3.4.1
2013-08-17
......@@ -66,7 +95,7 @@ Changes in 3.4.0
- C++ API changes:
- New noding::GeometryNoder class
- Added BufferOp::setSingleSided
- Added BufferOp::setSingleSided
- Signature of most functions taking a Label changed to take it
by reference rather than pointer.
- Signature of most functions taking an IntersectionMatrix changed
......@@ -74,13 +103,13 @@ Changes in 3.4.0
- GraphComponent::label is now a Label value (from a pointer)
- NodedSegmentString takes ownership of CoordinateSenuence now
- io::Writer's toString() returns by const ref, write() takes a const ref
- Unify prototypes of WKTReader and WKBReader constructor (#310)
- GeometryCollection::computeEnvelopInternal and
- Unify prototypes of WKTReader and WKBReader constructor (#310)
- GeometryCollection::computeEnvelopInternal and
GeometryCollection::compareToSameClass are marked virtual (#478)
- Bug fixes / improvements
- A point interpolated from a line does not always intersect
the same line (#323)
- A point interpolated from a line does not always intersect
the same line (#323)
- Port ConvexHull robustness fix from JTS-1.13 (#457)
- Improve Overlay robustness by reducing input precision on topology
exception and by refusing to accept unnoded output (#459)
......@@ -94,7 +123,7 @@ Changes in 3.4.0
- Fix EMPTY return from single-point lines and zero-length polygons (#612)
- CMakeLists.txt, tools/geos_svn_revision_cmake.h.in: Add
geos_svn_revision.h generator to CMake config (#643)
- Makefile.vc 'clean' step leaks obj files (#607)
- Makefile.vc 'clean' step leaks obj files (#607)
Changes in 3.3.9
2013-09-04
......@@ -111,7 +140,7 @@ Changes in 3.3.9
- Fix bug in HotPixel constructor (#635)
- Fix install location of linearref headers (#624)
- Fix multi-geometry constructor to drop SRID from components (#583)
Changes in 3.3.8
2013-02-28
......@@ -122,7 +151,7 @@ Changes in 3.3.8
- Fix centroid computation for collections with empty components (#582)
Changes in 3.3.7
2013-01-22
2013-01-22
- Bug fixes / improvements
- Fix abort in RightmostEdgeFinder (#605)
......@@ -221,10 +250,10 @@ Changes in 3.3.0
the polygonizer
- CAPI: GEOSOrientationIndex
- CAPI: GEOSSharedPaths to find shared paths and their orientation
- CAPI: GEOSSnap
- CAPI: GEOSRelatePatternMatch
- CAPI: GEOSCovers, GEOSCoveredBy (#396)
- CAPI: GEOSRelateBoundaryNodeRule (#399)
- CAPI: GEOSSnap
- CAPI: GEOSRelatePatternMatch
- CAPI: GEOSCovers, GEOSCoveredBy (#396)
- CAPI: GEOSRelateBoundaryNodeRule (#399)
- CAPI: GEOSGeom_getCoordinateDimension() (#311)
- CAPI: GEOSWKTWriter_setOutputDimension, GEOSWKTWriter_setOld3D (#292)
- PHP: new PHP5 bindings based on CAPI
......@@ -247,13 +276,13 @@ Changes in 3.3.0
- Fix NodedSegmentString to handle zero-length line segments correctly
(via safeOctant)
- Fixed buffer OffsetCurveSetBuilder to handle "flat" rings correctly
- Added illegal state check in LineSegment::pointAlongOffset()
- Added illegal state check in LineSegment::pointAlongOffset()
- Improved performance of RectangleIntersects by always using
segment-scanning and refining SegmentIntersectionTester
- Reduce memory use in PreparedGeometry predicates (#342)
- Fix infinite loop in RobustDeterminant with nan/inf input (#357)
Changes in 3.2.0
Changes in 3.2.0
2009-12-14
- Add Single-sided buffer operation
......@@ -275,7 +304,7 @@ Changes in 3.1.0
- PreparedGeometry operations for very fast predicate testing.
- Intersects()
- Covers()
- Covers()
- CoveredBy()
- ContainsProperly()
- Easier builds under MSVC and OpenSolaris
......@@ -302,7 +331,7 @@ Changes in 3.0.0
- Added GEOSSimplify() and GEOSTopologyPreserveSimplify()
to the C API
- Added closed ring checks in IsValidOp
- Multi-input support in XMLTester
- Multi-input support in XMLTester
- HEXWKB I/O
- Envelope(string) ctor
- Ruby interface
......@@ -351,7 +380,7 @@ Changes in 3.0.0
contains() ops
- Inlined all planarGraphComponent class
- More iterators returning methods and inlining in planargraph.
- Obsoleted toInternalGeometry/fromInternalGeometry
- Obsoleted toInternalGeometry/fromInternalGeometry
- Improved buffering speed and robustness by using Snap Rounding
- Semantic changes
......@@ -397,7 +426,7 @@ Changes in 3.0.0
result of overlaying polygons containing touching holes (#13)
- Fixed integer conversion bug
- Fixed PointLocator handling of LinearRings
- Added missing ::clone() methods for Multi* geoms
- Added missing ::clone() methods for Multi* geoms
- (Partial) Detailed list of changes:
- Changed SegmentNode to contain a *real* Coordinate (not a pointer)
......@@ -421,7 +450,7 @@ Changes in 3.0.0
- CoordinateSequence API changes:
- point index and size related functions
use unsigned int rather then int
- Changed EdgeEndStar to maintain a single container for EdgeEnds
- Changed EdgeEndStar to maintain a single container for EdgeEnds
- Changed PlanarGraph::addEdges to take a const vector by ref
rathern then a non-const vector by pointer
- Changed EdgeList::addAll to take a const vector by ref
......@@ -446,17 +475,17 @@ Changes in 2.2.1
- Support for MingW builds
- Bugfix in Polygonizer chocking on invalid LineString inputs
- CAPI: small leak removed in GEOSHasZ()
- CAPI: small leak removed in GEOSHasZ()
Changes in 2.2.0
- Performance improvement in OverlayOp::insertUniqueEdge()
- CoordinateSequence copy removal in EdgeRing
- Minor memory allocation improvements
- Minor memory allocation improvements
- Higher dimensions interface for CoordinateSequence
- Added getCoordinatesRO for Point class
- NEW WKB IO
- NEW Simplified and stabler C API
- NEW Simplified and stabler C API
Changes in 2.1.4
......@@ -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
${srcdir}/configure # in build dir
./autogen.sh # in ${srcdir}, if obtained from SVN or GIT
${srcdir}/configure # in build dir
Using CMake:
cmake ${srcdir} # in build dir
cmake ${srcdir} # in build dir
Now, all versions:
make
make check
make install # as root
ldconfig # as root
Win32
-----
make
make check
make install # as root
ldconfig # as root
### 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.
If you use Microsoft Visual C++ (7.1 or later) compiler, you can build
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
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).
where 1400 is version number of Visual C++ compiler, here Visual C++ 8.0
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
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):
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos_c
#include <geos_c.h>
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos_c
#include <geos_c.h>
Example usage:
capi/geostest.c contains basic usage examples.
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:
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos
#include <geos.h>
CFLAGS += `geos-config --cflags`
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
./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:
https://git.osgeo.org/gogs/geos/php-geos
./configure ... --enable-php
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,
......
......@@ -25,7 +25,7 @@
* all returned char * (unless const).
*
* - Functions ending with _r are thread safe; see details in RFC 3
* http://trac.osgeo.org/geos/wiki/RFC3.
* http://trac.osgeo.org/geos/wiki/RFC3.
* To avoid using by accident non _r functions,
* define GEOS_USE_ONLY_R_API before including geos_c.h
*
......@@ -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);
......@@ -667,7 +693,7 @@ extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation_r(
/*
* Returns the Voronoi polygons of a set of Vertices given as input
*
*
* @param g the input geometry whose vertex will be used as sites.
* @param tolerance snapping tolerance to use for improved robustness
* @param onlyEdges whether to return only edges of the voronoi cells
......@@ -675,12 +701,12 @@ extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation_r(
* determined if NULL.
* The diagram will be clipped to the larger
* of this envelope or an envelope surrounding the sites.
*
*
* @return a newly allocated geometry, or NULL on exception.
*/
extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram_r(
GEOSContextHandle_t extHandle,
const GEOSGeometry *g,
GEOSContextHandle_t extHandle,
const GEOSGeometry *g,
const GEOSGeometry *env,
double tolerance,
int onlyEdges);
......@@ -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);
......@@ -1510,7 +1635,7 @@ extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation(
/*
* Returns the Voronoi polygons of a set of Vertices given as input
*
*
* @param g the input geometry whose vertex will be used as sites.
* @param tolerance snapping tolerance to use for improved robustness
* @param onlyEdges whether to return only edges of the voronoi cells
......@@ -1518,7 +1643,7 @@ extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation(
* determined if NULL.
* The diagram will be clipped to the larger
* of this envelope or an envelope surrounding the sites.
*
*
* @return a newly allocated geometry, or NULL on exception.
*/
extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram(
......@@ -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);
......
......@@ -25,7 +25,7 @@
* all returned char * (unless const).
*
* - Functions ending with _r are thread safe; see details in RFC 3
* http://trac.osgeo.org/geos/wiki/RFC3.
* http://trac.osgeo.org/geos/wiki/RFC3.
* To avoid using by accident non _r functions,
* define GEOS_USE_ONLY_R_API before including geos_c.h
*
......@@ -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);
......@@ -667,7 +693,7 @@ extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation_r(
/*
* Returns the Voronoi polygons of a set of Vertices given as input
*
*
* @param g the input geometry whose vertex will be used as sites.
* @param tolerance snapping tolerance to use for improved robustness
* @param onlyEdges whether to return only edges of the voronoi cells
......@@ -675,12 +701,12 @@ extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation_r(
* determined if NULL.
* The diagram will be clipped to the larger
* of this envelope or an envelope surrounding the sites.
*
*
* @return a newly allocated geometry, or NULL on exception.
*/
extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram_r(
GEOSContextHandle_t extHandle,
const GEOSGeometry *g,
GEOSContextHandle_t extHandle,
const GEOSGeometry *g,
const GEOSGeometry *env,
double tolerance,
int onlyEdges);
......@@ -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);
......@@ -1510,7 +1635,7 @@ extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation(
/*
* Returns the Voronoi polygons of a set of Vertices given as input
*
*
* @param g the input geometry whose vertex will be used as sites.
* @param tolerance snapping tolerance to use for improved robustness
* @param onlyEdges whether to return only edges of the voronoi cells
......@@ -1518,7 +1643,7 @@ extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation(
* determined if NULL.
* The diagram will be clipped to the larger
* of this envelope or an envelope surrounding the sites.
*
*
* @return a newly allocated geometry, or NULL on exception.
*/
extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram(
......@@ -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);
......
This diff is collapsed.
#! /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,26 +1260,16 @@ 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) | \
grep IS_64BIT_ARCH >/dev/null
then
case $UNAME_PROCESSOR in
i386) UNAME_PROCESSOR=x86_64 ;;
powerpc) UNAME_PROCESSOR=powerpc64 ;;
esac
fi
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) | \
grep IS_64BIT_ARCH >/dev/null
then
case $UNAME_PROCESSOR in
i386) UNAME_PROCESSOR=x86_64 ;;
powerpc) UNAME_PROCESSOR=powerpc64 ;;
esac
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 ;;
......@@ -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
;;
......
This diff is collapsed.
......@@ -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))
......@@ -130,7 +130,7 @@ else
fi
dnl --------------------------------------------------------------------
dnl - Append default C++ and C flags
dnl - Append default C++ and C flags
dnl --------------------------------------------------------------------
dnl In order for AC_LIBTOOL_COMPILER_OPTION to use
......@@ -138,10 +138,10 @@ dnl the C compiler we need the hack below.
dnl It is likely a bug in the libtool macro file to
dnl require AC_LIBTOOL_LANG_CXX_CONFIG in *addition*
dnl to AC_LANG(CXX) or AC_LANG_PUSH(CXX)/AC_LANG_POP()
dnl
dnl
AC_LIBTOOL_LANG_CXX_CONFIG
# Set default AM_CXXFLAGS and AM_CFLAGS
# Set default AM_CXXFLAGS and AM_CFLAGS
# -pedantic: ISO does not support long long
# we add -Wno-long-long to avoid those messages
WARNFLAGS=""
......@@ -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
......@@ -278,9 +264,9 @@ if test x"$use_python" = xtrue ||
test x"$use_ruby" = xtrue; then
AC_PROG_SWIG(1.3.28)
if test x"$SWIG" != "x"; then
SWIG_ENABLE_CXX
AC_SUBST(SWIG)
use_swig=true
SWIG_ENABLE_CXX
AC_SUBST(SWIG)
use_swig=true
else
use_python=false
use_ruby=false
......@@ -294,14 +280,14 @@ dnl - check for python if enabled
dnl --------------------------------------------------------------------
if test x"$use_python" = xtrue; then
dnl Check for Python
AM_PATH_PYTHON
dnl Check for Python
AM_PATH_PYTHON
SWIG_PYTHON
if test x"$PYTHON" = "x"; then
use_python=false
fi
AC_SUBST(PYTHON)
AC_SUBST(SWIG_PYTHON_CPPFLAGS)
AC_SUBST(SWIG_PYTHON_OPT)
......@@ -314,7 +300,7 @@ dnl - check for ruby if enabled
dnl --------------------------------------------------------------------
if test x"$use_ruby" = xtrue; then
dnl Check for Ruby
dnl Check for Ruby
AC_RUBY_DEVEL
if test x"$RUBY" = x; then
......@@ -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 --------------------------------------------------------------------
......@@ -383,7 +343,7 @@ dnl AM_CXXFLAGS="$AM_CXXFLAGS -Wnon-virtual-dtor -Woverloaded-virtual"
esac
dnl --------------------------------------------------------------------
dnl - check for boost
dnl - check for boost
dnl --------------------------------------------------------------------
dnl -- AX_BOOST(1.32)
......@@ -414,13 +374,13 @@ AC_SUBST(CAPI_INTERFACE_AGE)
dnl output stuff ----------------------------------------------------------
AC_OUTPUT([
Makefile
Makefile
capi/Makefile
capi/geos_c.h
doc/Doxyfile
doc/Makefile
macros/Makefile
src/Makefile
src/Makefile
src/algorithm/Makefile
src/algorithm/locate/Makefile
src/algorithm/distance/Makefile
......@@ -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},
......