rgeo 3.0.0.pre.rc.2 → 3.0.0.pre.rc.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/ext/geos_c_impl/analysis.c +26 -23
  4. data/ext/geos_c_impl/analysis.h +8 -5
  5. data/ext/geos_c_impl/coordinates.c +27 -21
  6. data/ext/geos_c_impl/coordinates.h +5 -2
  7. data/ext/geos_c_impl/errors.c +15 -8
  8. data/ext/geos_c_impl/errors.h +4 -1
  9. data/ext/geos_c_impl/extconf.rb +40 -30
  10. data/ext/geos_c_impl/factory.c +367 -387
  11. data/ext/geos_c_impl/factory.h +59 -48
  12. data/ext/geos_c_impl/geometry.c +368 -320
  13. data/ext/geos_c_impl/geometry.h +5 -5
  14. data/ext/geos_c_impl/geometry_collection.c +256 -183
  15. data/ext/geos_c_impl/geometry_collection.h +6 -7
  16. data/ext/geos_c_impl/globals.c +99 -21
  17. data/ext/geos_c_impl/globals.h +3 -2
  18. data/ext/geos_c_impl/line_string.c +229 -198
  19. data/ext/geos_c_impl/line_string.h +5 -6
  20. data/ext/geos_c_impl/main.c +8 -9
  21. data/ext/geos_c_impl/point.c +62 -63
  22. data/ext/geos_c_impl/point.h +4 -5
  23. data/ext/geos_c_impl/polygon.c +116 -84
  24. data/ext/geos_c_impl/polygon.h +10 -8
  25. data/ext/geos_c_impl/preface.h +4 -13
  26. data/ext/geos_c_impl/ruby_more.c +35 -40
  27. data/ext/geos_c_impl/ruby_more.h +3 -2
  28. data/lib/rgeo/cartesian/bounding_box.rb +1 -1
  29. data/lib/rgeo/cartesian/factory.rb +8 -43
  30. data/lib/rgeo/cartesian/feature_methods.rb +0 -5
  31. data/lib/rgeo/cartesian/interface.rb +6 -5
  32. data/lib/rgeo/coord_sys/cs/entities.rb +214 -0
  33. data/lib/rgeo/coord_sys/cs/wkt_parser.rb +15 -8
  34. data/lib/rgeo/coord_sys.rb +1 -9
  35. data/lib/rgeo/feature/curve.rb +0 -10
  36. data/lib/rgeo/feature/factory.rb +1 -9
  37. data/lib/rgeo/feature/factory_generator.rb +3 -7
  38. data/lib/rgeo/feature/geometry.rb +0 -10
  39. data/lib/rgeo/feature/multi_curve.rb +0 -5
  40. data/lib/rgeo/feature/types.rb +5 -5
  41. data/lib/rgeo/geographic/factory.rb +9 -42
  42. data/lib/rgeo/geographic/interface.rb +28 -99
  43. data/lib/rgeo/geographic/projected_feature_methods.rb +0 -10
  44. data/lib/rgeo/geographic/projected_window.rb +1 -1
  45. data/lib/rgeo/geographic/{proj4_projector.rb → projector.rb} +3 -3
  46. data/lib/rgeo/geographic/simple_mercator_projector.rb +1 -10
  47. data/lib/rgeo/geographic/spherical_feature_methods.rb +0 -5
  48. data/lib/rgeo/geographic.rb +1 -1
  49. data/lib/rgeo/geos/capi_factory.rb +37 -91
  50. data/lib/rgeo/geos/capi_feature_classes.rb +0 -29
  51. data/lib/rgeo/geos/ffi_factory.rb +52 -92
  52. data/lib/rgeo/geos/ffi_feature_methods.rb +1 -31
  53. data/lib/rgeo/geos/interface.rb +5 -20
  54. data/lib/rgeo/geos/zm_factory.rb +5 -36
  55. data/lib/rgeo/geos/zm_feature_methods.rb +1 -26
  56. data/lib/rgeo/geos.rb +2 -5
  57. data/lib/rgeo/impl_helper/basic_geometry_collection_methods.rb +1 -14
  58. data/lib/rgeo/impl_helper/basic_line_string_methods.rb +1 -19
  59. data/lib/rgeo/impl_helper/basic_point_methods.rb +0 -10
  60. data/lib/rgeo/impl_helper/basic_polygon_methods.rb +1 -9
  61. data/lib/rgeo/impl_helper/utils.rb +27 -0
  62. data/lib/rgeo/impl_helper/validity_check.rb +3 -3
  63. data/lib/rgeo/version.rb +1 -1
  64. data/lib/rgeo/wkrep/wkb_generator.rb +68 -53
  65. data/lib/rgeo/wkrep/wkb_parser.rb +19 -16
  66. data/lib/rgeo/wkrep/wkt_generator.rb +34 -34
  67. data/lib/rgeo/wkrep/wkt_parser.rb +26 -23
  68. data/lib/rgeo.rb +1 -3
  69. metadata +7 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 939fdbb8c9bbcb94342b99f952ad5524cb436683ea054bcab0aaa408f362ac2a
4
- data.tar.gz: 4cd0c59ee3e08947c646c1b7e5c9a9755c44a0a87459437754867bbb5c2e304e
3
+ metadata.gz: 91ca209240d93482556f0aaf2b1dcb3beca7710af47a3cba6b12014a09a8b3be
4
+ data.tar.gz: b22b62247f1c4f3d07d4e7e4c1552999ae42d1d0d94808cc2fa7805e48914acd
5
5
  SHA512:
6
- metadata.gz: e6f02199e30b35334156d3a1107213b6dab9028572e423d2f0f6072a7a2032586e26dfa5a594a8132b33d4071f0d55f6bd75dcd60d1e5a60df4bde0c51b7a78f
7
- data.tar.gz: 20404c7de6aec61e04eae659253ddf16f518afce40c64274d261acc1a160f5420866c8188fed18425e1a55788e5041ff9b7a93c653f61cdde0a7ce15dccfa1a1
6
+ metadata.gz: 803a18e2ccb670da3db22c630bda86bb6ad80643c8a3e4e6bae448a1e3003632904bdf90b2d7642601857c01b92ffbf4a5e354fd292fb85033db7c0e19cd49b3
7
+ data.tar.gz: 142ada28031864f3a2960605b504aa3daf222db98d190fc208589b31841f328cefb5192391594a6237b48d1aab907eae2250e63c12824ef65d22f6ca01546057
data/README.md CHANGED
@@ -37,7 +37,7 @@ Use the core **rgeo** gem to:
37
37
 
38
38
  RGeo works with the following Ruby implementations:
39
39
 
40
- * MRI Ruby 2.3.0 or later.
40
+ * MRI Ruby 2.6.0 or later.
41
41
  * Partial support for JRuby 9.0 or later. The FFI implementation of GEOS
42
42
  is available (ffi-geos gem required) but CAPI is not.
43
43
  * See earlier versions for support for older ruby versions.
@@ -6,14 +6,13 @@
6
6
 
7
7
  #ifdef RGEO_GEOS_SUPPORTED
8
8
 
9
- #include <ruby.h>
10
9
  #include <geos_c.h>
11
-
12
- #include "globals.h"
10
+ #include <ruby.h>
13
11
 
14
12
  #include "analysis.h"
15
- #include "factory.h"
16
13
  #include "errors.h"
14
+ #include "factory.h"
15
+ #include "globals.h"
17
16
 
18
17
  RGEO_BEGIN_C
19
18
 
@@ -25,9 +24,9 @@ RGEO_BEGIN_C
25
24
  * otherwise.
26
25
  */
27
26
  #ifdef RGEO_GEOS_SUPPORTS_ISCCW
28
- VALUE rgeo_geos_analysis_ccw_p(VALUE self, VALUE ring)
27
+ VALUE
28
+ rgeo_geos_analysis_ccw_p(VALUE self, VALUE ring)
29
29
  {
30
-
31
30
  const RGeo_GeometryData* ring_data;
32
31
  const GEOSCoordSequence* coord_seq;
33
32
  char is_ccw;
@@ -36,17 +35,18 @@ VALUE rgeo_geos_analysis_ccw_p(VALUE self, VALUE ring)
36
35
 
37
36
  ring_data = RGEO_GEOMETRY_DATA_PTR(ring);
38
37
 
39
- coord_seq = GEOSGeom_getCoordSeq_r(ring_data->geos_context, ring_data->geom);
40
- if (!coord_seq) { rb_raise(rb_eGeosError, "Could not retrieve CoordSeq from given ring."); }
41
- if (!GEOSCoordSeq_isCCW_r(ring_data->geos_context, coord_seq, &is_ccw)) {
38
+ coord_seq = GEOSGeom_getCoordSeq(ring_data->geom);
39
+ if (!coord_seq) {
40
+ rb_raise(rb_eGeosError, "Could not retrieve CoordSeq from given ring.");
41
+ }
42
+ if (!GEOSCoordSeq_isCCW(coord_seq, &is_ccw)) {
42
43
  rb_raise(rb_eGeosError, "Could not determine if the CoordSeq is CCW.");
43
44
  }
44
45
 
45
46
  return is_ccw ? Qtrue : Qfalse;
46
- };
47
+ }
47
48
  #endif // RGEO_GEOS_SUPPORTS_ISCCW
48
49
 
49
-
50
50
  /**
51
51
  * call-seq:
52
52
  * RGeo::Geos::Analysis.ccw_supported? -> true or false
@@ -54,25 +54,28 @@ VALUE rgeo_geos_analysis_ccw_p(VALUE self, VALUE ring)
54
54
  * Checks if the RGEO_GEOS_SUPPORTS_ISCCW macro is defined, returns +true+
55
55
  * if it is, +false+ otherwise
56
56
  */
57
- VALUE rgeo_geos_analysis_supports_ccw(VALUE self)
57
+ VALUE
58
+ rgeo_geos_analysis_supports_ccw(VALUE self)
58
59
  {
59
- #ifdef RGEO_GEOS_SUPPORTS_ISCCW
60
- return Qtrue;
61
- #else
62
- return Qfalse;
63
- #endif
60
+ #ifdef RGEO_GEOS_SUPPORTS_ISCCW
61
+ return Qtrue;
62
+ #else
63
+ return Qfalse;
64
+ #endif
64
65
  }
65
66
 
66
-
67
- void rgeo_init_geos_analysis()
67
+ void
68
+ rgeo_init_geos_analysis()
68
69
  {
69
70
  VALUE geos_analysis_module;
70
71
 
71
72
  geos_analysis_module = rb_define_module_under(rgeo_geos_module, "Analysis");
72
- rb_define_singleton_method(geos_analysis_module, "ccw_supported?", rgeo_geos_analysis_supports_ccw, 0);
73
- #ifdef RGEO_GEOS_SUPPORTS_ISCCW
74
- rb_define_singleton_method(geos_analysis_module, "ccw?", rgeo_geos_analysis_ccw_p, 1);
75
- #endif // RGEO_GEOS_SUPPORTS_ISCCW
73
+ rb_define_singleton_method(
74
+ geos_analysis_module, "ccw_supported?", rgeo_geos_analysis_supports_ccw, 0);
75
+ #ifdef RGEO_GEOS_SUPPORTS_ISCCW
76
+ rb_define_singleton_method(
77
+ geos_analysis_module, "ccw?", rgeo_geos_analysis_ccw_p, 1);
78
+ #endif // RGEO_GEOS_SUPPORTS_ISCCW
76
79
  }
77
80
 
78
81
  RGEO_END_C
@@ -19,19 +19,22 @@ RGEO_BEGIN_C
19
19
  * otherwise.
20
20
  */
21
21
  #ifdef RGEO_GEOS_SUPPORTS_CCW
22
- VALUE rgeo_geos_analysis_ccw_p(VALUE self, VALUE ring);
22
+ VALUE
23
+ rgeo_geos_analysis_ccw_p(VALUE self, VALUE ring);
23
24
  #endif // RGEO_GEOS_SUPPORTS_CCW
24
25
 
25
26
  /**
26
27
  * call-seq:
27
- * RGeo::Geos::Analysis.ccw_supported? -> true or false
28
- *
28
+ * RGeo::Geos::Analysis.ccw_supported? -> true or false
29
+ *
29
30
  * Checks if the RGEO_GEOS_SUPPORTS_ISCCW macro is defined, returns +true+
30
31
  * if it is, +false+ otherwise
31
32
  */
32
- VALUE rgeo_geos_analysis_supports_ccw(VALUE self);
33
+ VALUE
34
+ rgeo_geos_analysis_supports_ccw(VALUE self);
33
35
 
34
- void rgeo_init_geos_analysis();
36
+ void
37
+ rgeo_init_geos_analysis();
35
38
 
36
39
  RGEO_END_C
37
40
 
@@ -1,8 +1,9 @@
1
- #include <ruby.h>
2
1
  #include <geos_c.h>
2
+ #include <ruby.h>
3
3
 
4
-
5
- VALUE extract_points_from_coordinate_sequence(GEOSContextHandle_t context, const GEOSCoordSequence* coord_sequence, int zCoordinate)
4
+ VALUE
5
+ extract_points_from_coordinate_sequence(const GEOSCoordSequence* coord_sequence,
6
+ int zCoordinate)
6
7
  {
7
8
  VALUE result = Qnil;
8
9
  VALUE point;
@@ -10,20 +11,20 @@ VALUE extract_points_from_coordinate_sequence(GEOSContextHandle_t context, const
10
11
  unsigned int i;
11
12
  double val;
12
13
 
13
- if(GEOSCoordSeq_getSize_r(context, coord_sequence, &count)) {
14
+ if (GEOSCoordSeq_getSize(coord_sequence, &count)) {
14
15
  result = rb_ary_new2(count);
15
- for(i = 0; i < count; ++i) {
16
- if(zCoordinate) {
16
+ for (i = 0; i < count; ++i) {
17
+ if (zCoordinate) {
17
18
  point = rb_ary_new2(3);
18
19
  } else {
19
20
  point = rb_ary_new2(2);
20
21
  }
21
- GEOSCoordSeq_getX_r(context, coord_sequence, i, &val);
22
+ GEOSCoordSeq_getX(coord_sequence, i, &val);
22
23
  rb_ary_push(point, rb_float_new(val));
23
- GEOSCoordSeq_getY_r(context, coord_sequence, i, &val);
24
+ GEOSCoordSeq_getY(coord_sequence, i, &val);
24
25
  rb_ary_push(point, rb_float_new(val));
25
- if(zCoordinate) {
26
- GEOSCoordSeq_getZ_r(context, coord_sequence, i, &val);
26
+ if (zCoordinate) {
27
+ GEOSCoordSeq_getZ(coord_sequence, i, &val);
27
28
  rb_ary_push(point, rb_float_new(val));
28
29
  }
29
30
  rb_ary_push(result, point);
@@ -33,7 +34,8 @@ VALUE extract_points_from_coordinate_sequence(GEOSContextHandle_t context, const
33
34
  return result;
34
35
  }
35
36
 
36
- VALUE extract_points_from_polygon(GEOSContextHandle_t context, const GEOSGeometry* polygon, int zCoordinate)
37
+ VALUE
38
+ extract_points_from_polygon(const GEOSGeometry* polygon, int zCoordinate)
37
39
  {
38
40
  VALUE result = Qnil;
39
41
 
@@ -43,20 +45,24 @@ VALUE extract_points_from_polygon(GEOSContextHandle_t context, const GEOSGeometr
43
45
  unsigned int i;
44
46
 
45
47
  if (polygon) {
46
- ring = GEOSGetExteriorRing_r(context, polygon);
47
- coord_sequence = GEOSGeom_getCoordSeq_r(context, ring);
48
+ ring = GEOSGetExteriorRing(polygon);
49
+ coord_sequence = GEOSGeom_getCoordSeq(ring);
48
50
 
49
- if(coord_sequence) {
50
- interior_ring_count = GEOSGetNumInteriorRings_r(context, polygon);
51
+ if (coord_sequence) {
52
+ interior_ring_count = GEOSGetNumInteriorRings(polygon);
51
53
  result = rb_ary_new2(interior_ring_count + 1); // exterior + inner rings
52
54
 
53
- rb_ary_push(result, extract_points_from_coordinate_sequence(context, coord_sequence, zCoordinate));
55
+ rb_ary_push(
56
+ result,
57
+ extract_points_from_coordinate_sequence(coord_sequence, zCoordinate));
54
58
 
55
- for(i = 0; i < interior_ring_count; ++i) {
56
- ring = GEOSGetInteriorRingN_r(context, polygon, i);
57
- coord_sequence = GEOSGeom_getCoordSeq_r(context, ring);
58
- if(coord_sequence) {
59
- rb_ary_push(result, extract_points_from_coordinate_sequence(context, coord_sequence, zCoordinate));
59
+ for (i = 0; i < interior_ring_count; ++i) {
60
+ ring = GEOSGetInteriorRingN(polygon, i);
61
+ coord_sequence = GEOSGeom_getCoordSeq(ring);
62
+ if (coord_sequence) {
63
+ rb_ary_push(result,
64
+ extract_points_from_coordinate_sequence(coord_sequence,
65
+ zCoordinate));
60
66
  }
61
67
  }
62
68
  }
@@ -1,2 +1,5 @@
1
- VALUE extract_points_from_coordinate_sequence(GEOSContextHandle_t context, const GEOSCoordSequence* coord_sequence, int zCoordinate);
2
- VALUE extract_points_from_polygon(GEOSContextHandle_t context, const GEOSGeometry* polygon, int zCoordinate);
1
+ VALUE
2
+ extract_points_from_coordinate_sequence(const GEOSCoordSequence* coord_sequence,
3
+ int zCoordinate);
4
+ VALUE
5
+ extract_points_from_polygon(const GEOSGeometry* polygon, int zCoordinate);
@@ -8,26 +8,33 @@
8
8
 
9
9
  #ifdef RGEO_GEOS_SUPPORTED
10
10
 
11
- #include "globals.h"
12
-
13
11
  #include "errors.h"
12
+ #include "globals.h"
14
13
 
15
14
  RGEO_BEGIN_C
16
15
 
17
16
  VALUE rb_eRGeoError;
18
17
  VALUE rb_eRGeoInvalidGeometry;
18
+ VALUE rb_eRGeoParseError;
19
19
  VALUE rb_eRGeoUnsupportedOperation;
20
20
  VALUE rb_eGeosError;
21
21
 
22
-
23
- void rgeo_init_geos_errors() {
22
+ void
23
+ rgeo_init_geos_errors()
24
+ {
24
25
  VALUE error_module;
25
26
 
26
27
  error_module = rb_define_module_under(rgeo_module, "Error");
27
- rb_eRGeoError = rb_define_class_under(error_module, "RGeoError", rb_eRuntimeError);
28
- rb_eRGeoInvalidGeometry = rb_define_class_under(error_module, "InvalidGeometry", rb_eRGeoError);
29
- rb_eRGeoUnsupportedOperation = rb_define_class_under(error_module, "UnsupportedOperation", rb_eRGeoError);
30
- rb_eGeosError = rb_define_class_under(error_module, "GeosError", rb_eRGeoError);
28
+ rb_eRGeoError =
29
+ rb_define_class_under(error_module, "RGeoError", rb_eRuntimeError);
30
+ rb_eRGeoInvalidGeometry =
31
+ rb_define_class_under(error_module, "InvalidGeometry", rb_eRGeoError);
32
+ rb_eRGeoUnsupportedOperation =
33
+ rb_define_class_under(error_module, "UnsupportedOperation", rb_eRGeoError);
34
+ rb_eRGeoParseError =
35
+ rb_define_class_under(error_module, "ParseError", rb_eRGeoError);
36
+ rb_eGeosError =
37
+ rb_define_class_under(error_module, "GeosError", rb_eRGeoError);
31
38
  }
32
39
 
33
40
  RGEO_END_C
@@ -12,12 +12,15 @@ RGEO_BEGIN_C
12
12
  extern VALUE rb_eRGeoError;
13
13
  // RGeo::Error::InvalidGeometry
14
14
  extern VALUE rb_eRGeoInvalidGeometry;
15
+ // RGeo::Error::ParseError
16
+ extern VALUE rb_eRGeoParseError;
15
17
  // RGeo::Error::UnsupportedOperation
16
18
  extern VALUE rb_eRGeoUnsupportedOperation;
17
19
  // RGeo error specific to the GEOS implementation.
18
20
  extern VALUE rb_eGeosError;
19
21
 
20
- void rgeo_init_geos_errors();
22
+ void
23
+ rgeo_init_geos_errors();
21
24
 
22
25
  RGEO_END_C
23
26
 
@@ -6,45 +6,55 @@
6
6
  #
7
7
  # -----------------------------------------------------------------------------
8
8
  def create_dummy_makefile
9
- File.open("Makefile", "w") { |f_| f_.write(".PHONY: install\ninstall:\n") }
9
+ File.write("Makefile", ".PHONY: install\ninstall:\n")
10
10
  end
11
11
 
12
12
  if RUBY_DESCRIPTION =~ /^jruby\s/
13
13
  create_dummy_makefile
14
- else
15
- require "mkmf"
14
+ exit
15
+ end
16
16
 
17
- $CFLAGS << " -DRGEO_GEOS_DEBUG" if ENV.key?("DEBUG") || ENV.key?("RGEO_GEOS_DEBUG")
17
+ require "mkmf"
18
18
 
19
- geosconfig = with_config("geos-config") || find_executable("geos-config")
19
+ if ENV.key?("DEBUG") || ENV.key?("MAINTAINER_MODE")
20
+ $CFLAGS << " -DDEBUG" \
21
+ " -Wall" \
22
+ " -ggdb" \
23
+ " -pedantic" \
24
+ " -std=c17"
20
25
 
21
- if geosconfig
22
- puts "Using GEOS compile configuration from #{geosconfig}"
23
- $INCFLAGS << " " << `#{geosconfig} --cflags`.strip
24
- geos_libs = `#{geosconfig} --clibs`.tr("\n", " ")
25
- geos_libs.split(/\s+/).each do |flag|
26
- $libs << " " + flag unless $libs.include?(flag)
27
- end
28
- end
26
+ extra_flags = ENV.fetch("MAINTAINER_MODE", ENV.fetch("DEBUG", ""))
27
+ $CFLAGS << " " << extra_flags if extra_flags.strip.start_with?("-")
28
+ end
29
+
30
+ geosconfig = with_config("geos-config") || find_executable("geos-config")
29
31
 
30
- found_geos_ = false
31
- if have_header("geos_c.h")
32
- found_geos_ = true if have_func("GEOSSetSRID_r", "geos_c.h")
33
- have_func("GEOSPreparedContains_r", "geos_c.h")
34
- have_func("GEOSPreparedDisjoint_r", "geos_c.h")
35
- have_func("GEOSUnaryUnion_r", "geos_c.h")
36
- have_func("GEOSCoordSeq_isCCW_r", "geos_c.h")
37
- have_func("rb_memhash", "ruby.h")
38
- have_func("rb_gc_mark_movable", "ruby.h")
32
+ if geosconfig
33
+ puts "Using GEOS compile configuration from #{geosconfig}"
34
+ $INCFLAGS << " " << IO.popen([geosconfig, "--cflags"], &:read).strip
35
+ geos_libs = IO.popen([geosconfig, "--clibs"], &:read)
36
+ geos_libs.split.each do |flag|
37
+ $libs << " " << flag unless $libs.include?(flag)
39
38
  end
39
+ end
40
40
 
41
- if found_geos_
42
- create_makefile("rgeo/geos/geos_c_impl")
43
- else
44
- puts "**** WARNING: Unable to find GEOS headers or libraries."
45
- puts "**** Ensure that 'geos-config' is in your PATH or provide that full path via --with-geos-config"
46
- puts "**** Compiling without GEOS support."
41
+ found_geos = false
42
+ if have_header("geos_c.h")
43
+ found_geos = true if have_func("GEOSSetSRID_r", "geos_c.h")
44
+ have_func("GEOSPreparedContains_r", "geos_c.h")
45
+ have_func("GEOSPreparedDisjoint_r", "geos_c.h")
46
+ have_func("GEOSUnaryUnion_r", "geos_c.h")
47
+ have_func("GEOSCoordSeq_isCCW_r", "geos_c.h")
48
+ have_func("rb_memhash", "ruby.h")
49
+ have_func("rb_gc_mark_movable", "ruby.h")
50
+ end
47
51
 
48
- create_dummy_makefile
49
- end
52
+ if found_geos
53
+ create_makefile("rgeo/geos/geos_c_impl")
54
+ else
55
+ puts "**** WARNING: Unable to find GEOS headers or libraries."
56
+ puts "**** Ensure that 'geos-config' is in your PATH or provide that full path via --with-geos-config"
57
+ puts "**** Compiling without GEOS support."
58
+
59
+ create_dummy_makefile
50
60
  end