1 diff -Naur geos-2.2.1.orig/swig/geos.i geos-2.2.1/swig/geos.i
2 --- geos-2.2.1.orig/swig/geos.i 2005-12-21 09:09:28.000000000 +0100
3 +++ geos-2.2.1/swig/geos.i 2005-12-21 09:15:35.000000000 +0100
5 /* =========================================================================
14 %include "std_string.i"
15 +%include "std_vector.i"
16 %include "exception.i"
19 #include "../../source/headers/geos.h"
20 +#include "../../source/headers/geos/opLinemerge.h"
21 +#include "../../source/headers/geos/opPolygonize.h"
24 // Following methods are prototypes but unimplemented and are to be ignored
25 %ignore geos::MultiPoint::isClosed;
27 +%apply SWIGTYPE *DISOWN { geos::CoordinateSequence * };
28 +%apply SWIGTYPE *DISOWN { geos::LinearRing * };
29 +%apply SWIGTYPE *DISOWN { std::vector<geos::Geometry * > * };
31 +// no transfer of ownership
32 +%ignore geos::GeometryFactory::createPoint(CoordinateSequence *) const;
33 +%rename(createLineStringP) geos::GeometryFactory::createLineString(CoordinateSequence *) const;
34 +%rename(createLinearRingP) geos::GeometryFactory::createLinearRing(CoordinateSequence *) const;
35 +%rename(createPolygonPP) geos::GeometryFactory::createPolygon(LinearRing *,vector<Geometry * > *) const;
36 +%ignore geos::GeometryFactory::createGeometryCollection(vector<Geometry * > *) const;
37 +%ignore geos::GeometryFactory::buildGeometry(vector<Geometry * > *) const;
38 +%ignore geos::GeometryFactory::createMultiPoint(vector<Geometry * > *) const;
39 +%ignore geos::GeometryFactory::createMultiLineString(vector<Geometry * > *) const;
40 +%ignore geos::GeometryFactory::createMultiLinearRing(vector<Geometry * > *) const;
41 +%ignore geos::GeometryFactory::createMultiPolygon(vector<Geometry * > *) const;
44 %rename(Coordinate_Coordinate) Coordinate::Coordinate;
47 %include "../../source/headers/geos/util.h"
48 %include "../../source/headers/geos/io.h"
51 +%ignore geos::LineMergeDirectedEdge;
52 +%ignore geos::PolygonizeEdge;
53 +%ignore geos::polygonizeEdgeRing;
54 +%ignore geos::PolygonizeDirectedEdge;
55 +%ignore geos::PolygonizeGraph;
57 +%include "../../source/headers/geos/opLinemerge.h"
58 +%include "../../source/headers/geos/opPolygonize.h"
60 +//~ template<class T>
65 + //~ void push_back(const T obj);
66 + //~ void reserve(size_t n);
69 +%template(vector_GeometryP) std::vector<geos::Geometry *>;
70 +%template(vector_LineStringP) std::vector<geos::LineString *>;
71 +%template(vector_PolygonP) std::vector<geos::Polygon *>;
72 diff -Naur geos-2.2.1.orig/swig/Makefile.in geos-2.2.1/swig/Makefile.in
73 --- geos-2.2.1.orig/swig/Makefile.in 2005-12-21 09:09:28.000000000 +0100
74 +++ geos-2.2.1/swig/Makefile.in 2005-12-21 09:15:35.000000000 +0100
76 -# Makefile.in generated by automake 1.9.2 from Makefile.am.
77 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
80 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
81 -# 2003, 2004 Free Software Foundation, Inc.
82 +# 2003, 2004, 2005 Free Software Foundation, Inc.
83 # This Makefile.in is free software; the Free Software Foundation
84 # gives unlimited permission to copy and/or distribute it,
85 # with or without modifications, as long as this notice is preserved.
87 # (which will cause the Makefiles to be regenerated when you run `make');
88 # (2) otherwise, pass the desired values on the `make' command line.
90 - @set fnord $$MAKEFLAGS; amf=$$2; \
91 + @failcom='exit 1'; \
92 + for f in x $$MAKEFLAGS; do \
95 + *k*) failcom='fail=yes';; \
99 target=`echo $@ | sed s/-recursive//`; \
100 list='$(SUBDIRS)'; for subdir in $$list; do \
102 local_target="$$target"; \
104 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
105 - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
106 + || eval $$failcom; \
108 if test "$$dot_seen" = "no"; then \
109 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
112 mostlyclean-recursive clean-recursive distclean-recursive \
113 maintainer-clean-recursive:
114 - @set fnord $$MAKEFLAGS; amf=$$2; \
115 + @failcom='exit 1'; \
116 + for f in x $$MAKEFLAGS; do \
119 + *k*) failcom='fail=yes';; \
124 distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
126 local_target="$$target"; \
128 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
129 - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
130 + || eval $$failcom; \
131 done && test -z "$$fail"
133 list='$(SUBDIRS)'; for subdir in $$list; do \
134 diff -Naur geos-2.2.1.orig/swig/python/example.py geos-2.2.1/swig/python/example.py
135 --- geos-2.2.1.orig/swig/python/example.py 1970-01-01 01:00:00.000000000 +0100
136 +++ geos-2.2.1/swig/python/example.py 2005-12-21 09:15:35.000000000 +0100
140 +import distutils.util
143 +# Put local build directory on head of python path
144 +platformdir = '-'.join((distutils.util.get_platform(),
145 + '.'.join(map(str, sys.version_info[0:2]))))
146 +sys.path.insert(0, os.path.join('build', 'lib.' + platformdir))
148 +# import geos from the local build directory
151 +pm = geos.PrecisionModel(2.0,0,0)
152 +global_factory = geos.GeometryFactory(pm,-1)
154 +def wkt_print_geoms(geoms):
155 + wkt = geos.WKTWriter()
157 + for i in range(size):
158 + tmp = wkt.write(geoms[i])
159 + print "[%d]" % i, tmp
161 +def create_point(x,y):
162 + c = geos.Coordinate(x,y)
163 + p = global_factory.createPoint(c)
167 +def create_ushaped_linestring(xoffset, yoffset, side):
168 + cl = geos.DefaultCoordinateSequence()
170 + cl.add(geos.Coordinate(xoffset, yoffset))
171 + cl.add(geos.Coordinate(xoffset, yoffset+side))
172 + cl.add(geos.Coordinate(xoffset+side, yoffset+side))
173 + cl.add(geos.Coordinate(xoffset+side, yoffset))
175 + ls = global_factory.createLineString(cl)
178 +def create_square_linearring(xoffset,yoffset,side):
179 + cl = geos.DefaultCoordinateSequence()
181 + cl.add(geos.Coordinate(xoffset,yoffset))
182 + cl.add(geos.Coordinate(xoffset,yoffset+side))
183 + cl.add(geos.Coordinate(xoffset+side,yoffset+side))
184 + cl.add(geos.Coordinate(xoffset+side,yoffset))
185 + cl.add(geos.Coordinate(xoffset,yoffset))
187 + lr = global_factory.createLinearRing(cl)
190 +def create_square_polygon(xoffset,yoffset,side):
191 + outer = create_square_linearring(xoffset,yoffset,side)
192 + inner = create_square_linearring(xoffset+(side/3.),yoffset+(side/3.),(side/3.))
194 + holes = geos.vector_GeometryP()
195 + holes.push_back(inner)
197 + poly = global_factory.createPolygonPP(outer,holes)
198 + assert outer.thisown == 0
199 + assert holes.thisown == 0
203 +def create_simple_collection(geoms):
204 + collect = geos.vector_GeometryP()
206 + collect.push_back(i)
207 + return global_factory.createGeometryCollection(collect)
209 +def create_circle(centerX,centerY,radius):
210 + shapefactory = geos.GeometricShapeFactory(global_factory)
211 + shapefactory.setCentre(geos.Coordinate(centerX, centerY))
212 + shapefactory.setSize(radius)
213 + return shapefactory.createCircle()
215 +def create_ellipse(centerX,centerY,width,height):
216 + shapefactory = geos.GeometricShapeFactory(global_factory)
217 + shapefactory.setCentre(geos.Coordinate(centerX, centerY))
218 + shapefactory.setHeight(height)
219 + shapefactory.setWidth(width)
220 + return shapefactory.createCircle()
222 +def create_rectangle(llX,llY,width,height):
223 + shapefactory = geos.GeometricShapeFactory(global_factory)
224 + shapefactory.setBase(geos.Coordinate(llX, llY))
225 + shapefactory.setHeight(height)
226 + shapefactory.setWidth(width)
227 + shapefactory.setNumPoints(4)
228 + return shapefactory.createRectangle()
230 +def create_arc(llX,llY,width,height,startang,endang):
231 + shapefactory = geos.GeometricShapeFactory(global_factory)
232 + shapefactory.setBase(geos.Coordinate(llX, llY))
233 + shapefactory.setHeight(height)
234 + shapefactory.setWidth(width)
235 + #shapefactory.setNumPoints(100) #the default (100 pts)
236 + return shapefactory.createArc(startang, endang)
241 + geoms.append(create_point(150, 350))
242 + geoms.append(create_ushaped_linestring(60,60,100))
243 + geoms.append(create_square_linearring(0,0,100))
244 + geoms.append(create_square_polygon(0,200,300))
245 + geoms.append(create_square_polygon(0,250,300))
246 + geoms.append(create_simple_collection(geoms))
248 + # These ones use a GeometricShapeFactory
249 + geoms.append(create_circle(0, 0, 10))
250 + geoms.append(create_ellipse(0, 0, 8, 12))
251 + geoms.append(create_rectangle(-5, -5, 10, 10)) # a square
252 + geoms.append(create_rectangle(-5, -5, 10, 20)) # a rectangle
254 + # The upper-right quarter of a vertical ellipse
255 + geoms.append(create_arc(0, 0, 10, 20, 0, math.pi/2))
257 + print "--------HERE ARE THE BASE GEOMS ----------"
258 + wkt_print_geoms(geoms)
261 +####################
262 +# UNARY OPERATIONS #
263 +####################
268 + # Find centroid of each base geometry
270 + for i in range(len(geoms)):
271 + newgeoms.append(geoms[i].getCentroid())
273 + print "\n","------- AND HERE ARE THEIR CENTROIDS -----"
274 + wkt_print_geoms(newgeoms)
280 + for i in range(len(geoms)):
282 + newgeoms.append(geoms[i].buffer(10))
283 + except geos.GEOSException():
284 + exc = geos.GEOSException()
285 + print "GEOS Exception: geometry ",geoms[i],"->buffer(10): ",exc.toString()
287 + print "\n","--------HERE COMES THE BUFFERED GEOMS ----------"
288 + wkt_print_geoms(newgeoms)
294 + for i in range(len(geoms)):
295 + newgeoms.append(geoms[i].convexHull())
297 + print "\n","--------HERE COMES THE HULLS----------"
298 + wkt_print_geoms(newgeoms)
300 +####################
301 +# RELATIONAL OPERATORS #
302 +####################
304 + print "-------------------------------------------------------------------------------"
305 + print "RELATIONAL OPERATORS"
306 + print "-------------------------------------------------------------------------------"
314 + print "\t".join([" DISJOINT "]+["[%d]" % i for i in range(size)])
316 + for i in range(size):
317 + print " [%d]\t" % i,
318 + for j in range(size):
320 + if geoms[i].disjoint(geoms[j]):
324 + except geos.GEOSException():
325 + exc = geos.GEOSException()
326 + print exc.toString()
336 + print "\t".join([" TOUCHES "]+["[%d]" % i for i in range(size)])
338 + for i in range(size):
339 + print " [%d]\t" % i,
340 + for j in range(size):
342 + if geoms[i].touches(geoms[j]):
346 + except geos.GEOSException():
347 + exc = geos.GEOSException()
348 + print exc.toString()
358 + print "\t".join([" INTERSECTS "]+["[%d]" % i for i in range(size)])
360 + for i in range(size):
361 + print " [%d]\t" % i,
362 + for j in range(size):
364 + if geoms[i].intersects(geoms[j]):
368 + except geos.GEOSException():
369 + exc = geos.GEOSException()
370 + print exc.toString()
380 + print "\t".join([" CROSSES "]+["[%d]" % i for i in range(size)])
382 + for i in range(size):
383 + print " [%d]\t" % i,
384 + for j in range(size):
386 + if geoms[i].crosses(geoms[j]):
390 + except geos.GEOSException():
391 + exc = geos.GEOSException()
392 + print exc.toString()
402 + print "\t".join([" WITHIN "]+["[%d]" % i for i in range(size)])
404 + for i in range(size):
405 + print " [%d]\t" % i,
406 + for j in range(size):
408 + if geoms[i].within(geoms[j]):
412 + except geos.GEOSException():
413 + exc = geos.GEOSException()
414 + print exc.toString()
424 + print "\t".join([" CONTAINS "]+["[%d]" % i for i in range(size)])
426 + for i in range(size):
427 + print " [%d]\t" % i,
428 + for j in range(size):
430 + if geoms[i].contains(geoms[j]):
434 + except geos.GEOSException():
435 + exc = geos.GEOSException()
436 + print exc.toString()
446 + print "\t".join([" OVERLAPS "]+["[%d]" % i for i in range(size)])
448 + for i in range(size):
449 + print " [%d]\t" % i,
450 + for j in range(size):
452 + if geoms[i].overlaps(geoms[j]):
456 + except geos.GEOSException():
457 + exc = geos.GEOSException()
458 + print exc.toString()
468 + print "\t".join([" RELATE "]+["[%d]" % i for i in range(size)])
470 + for i in range(size):
471 + print " [%d]\t" % i,
472 + for j in range(size):
473 + im = geos.IntersectionMatrix('')
475 + if geoms[i].relate(geoms[j],"212101212"):
479 + im=geoms[i].relate(geoms[j])
480 + except geos.GEOSException():
481 + exc = geos.GEOSException()
482 + print exc.toString()
492 + print "\t".join([" EQUALS "]+["[%d]" % i for i in range(size)])
494 + for i in range(size):
495 + print " [%d]\t" % i,
496 + for j in range(size):
498 + if geoms[i].equals(geoms[j]):
502 + except geos.GEOSException():
503 + exc = geos.GEOSException()
504 + print exc.toString()
514 + print "\t".join(["EQUALS_EXACT "]+["[%d]" % i for i in range(size)])
516 + for i in range(size):
517 + print " [%d]\t" % i,
518 + for j in range(size):
520 + if geoms[i].equalsExact(geoms[j],0.5):
524 + except geos.GEOSException():
525 + exc = geos.GEOSException()
526 + print exc.toString()
532 + # IS_WITHIN_DISTANCE #
536 + print "\t".join(["IS_WITHIN_DIST"]+["[%d]" % i for i in range(size)])
538 + for i in range(size):
539 + print " [%d]\t" % i,
540 + for j in range(size):
542 + if geoms[i].isWithinDistance(geoms[j],2):
546 + except geos.GEOSException():
547 + exc = geos.GEOSException()
548 + print exc.toString()
553 +####################
555 +####################
558 + print "-------------------------------------------------------------------------------"
559 + print "COMBINATIONS"
560 + print "-------------------------------------------------------------------------------"
567 + for i in range(size-1):
568 + for j in range(i+1,size):
570 + newgeoms.append(geoms[i].Union(geoms[j]))
571 + except geos.GEOSException():
572 + exc = geos.GEOSException()
573 + print exc.toString()
577 + print "\n", "----- AND HERE ARE SOME UNION COMBINATIONS ------"
578 + wkt_print_geoms(newgeoms)
585 + for i in range(size-1):
586 + for j in range(i+1,size):
588 + newgeoms.append(geoms[i].intersection(geoms[j]))
589 + except geos.GEOSException():
590 + exc = geos.GEOSException()
591 + print exc.toString()
595 + print "\n", "----- HERE ARE SOME INTERSECTIONS COMBINATIONS ------"
596 + wkt_print_geoms(newgeoms)
603 + for i in range(size-1):
604 + for j in range(i+1,size):
606 + newgeoms.append(geoms[i].difference(geoms[j]))
607 + except geos.GEOSException():
608 + exc = geos.GEOSException()
609 + print exc.toString()
613 + print "\n", "----- HERE ARE SOME DIFFERENCE COMBINATIONS ------"
614 + wkt_print_geoms(newgeoms)
617 + # SYMMETRIC DIFFERENCE
621 + for i in range(size-1):
622 + for j in range(i+1,size):
624 + newgeoms.append(geoms[i].symDifference(geoms[j]))
625 + except geos.GEOSException():
626 + exc = geos.GEOSException()
627 + print exc.toString()
631 + print "\n", "----- HERE ARE SYMMETRIC DIFFERENCES ------"
632 + wkt_print_geoms(newgeoms)
637 + temp = geos.vector_GeometryP()
640 + lm = geos.LineMerger()
642 + mls = lm.getMergedLineStrings()
644 + for i in range(mls.size()):
645 + newgeoms.append(mls[i])
648 + print "\n", "----- HERE IS THE LINEMERGE OUTPUT ------"
649 + wkt_print_geoms(newgeoms)
654 + temp = geos.vector_GeometryP()
657 + plgnzr = geos.Polygonizer()
659 + polys = plgnzr.getPolygons()
661 + for i in range(polys.size()):
662 + newgeoms.append(polys[i])
665 + print "\n", "----- HERE IS POLYGONIZE OUTPUT ------"
666 + wkt_print_geoms(newgeoms)
668 +print "GEOS", geos.geosversion(), "ported from JTS", geos.jtsport()
670 diff -Naur geos-2.2.1.orig/swig/python/Makefile.in geos-2.2.1/swig/python/Makefile.in
671 --- geos-2.2.1.orig/swig/python/Makefile.in 2005-12-21 09:09:28.000000000 +0100
672 +++ geos-2.2.1/swig/python/Makefile.in 2005-12-21 09:15:35.000000000 +0100
674 -# Makefile.in generated by automake 1.9.2 from Makefile.am.
675 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
678 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
679 -# 2003, 2004 Free Software Foundation, Inc.
680 +# 2003, 2004, 2005 Free Software Foundation, Inc.
681 # This Makefile.in is free software; the Free Software Foundation
682 # gives unlimited permission to copy and/or distribute it,
683 # with or without modifications, as long as this notice is preserved.
685 # (which will cause the Makefiles to be regenerated when you run `make');
686 # (2) otherwise, pass the desired values on the `make' command line.
687 $(RECURSIVE_TARGETS):
688 - @set fnord $$MAKEFLAGS; amf=$$2; \
689 + @failcom='exit 1'; \
690 + for f in x $$MAKEFLAGS; do \
693 + *k*) failcom='fail=yes';; \
697 target=`echo $@ | sed s/-recursive//`; \
698 list='$(SUBDIRS)'; for subdir in $$list; do \
700 local_target="$$target"; \
702 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
703 - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
704 + || eval $$failcom; \
706 if test "$$dot_seen" = "no"; then \
707 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
710 mostlyclean-recursive clean-recursive distclean-recursive \
711 maintainer-clean-recursive:
712 - @set fnord $$MAKEFLAGS; amf=$$2; \
713 + @failcom='exit 1'; \
714 + for f in x $$MAKEFLAGS; do \
717 + *k*) failcom='fail=yes';; \
722 distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
724 local_target="$$target"; \
726 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
727 - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
728 + || eval $$failcom; \
729 done && test -z "$$fail"
731 list='$(SUBDIRS)'; for subdir in $$list; do \
732 diff -Naur geos-2.2.1.orig/swig/python/setup.py geos-2.2.1/swig/python/setup.py
733 --- geos-2.2.1.orig/swig/python/setup.py 2005-12-21 09:09:28.000000000 +0100
734 +++ geos-2.2.1/swig/python/setup.py 2005-12-21 09:15:35.000000000 +0100
739 # PyGEOS distutils setup script
742 # ===========================================================================
744 from distutils.core import setup, Extension
746 -# We're skipping the metadata for now
749 # the extension module, source was generated by SWIG from geos.i
751 # Note that until geos is ready to be installed, we're linking against
752 # the pre-installed library in source/geom/.libs.
753 -extmod = Extension("_geos", ["geos_wrap.cxx"],
754 - include_dirs = ["../../source/headers",
755 - "../../source/headers/geos"],
756 - libraries = ["stdc++"],
757 - extra_objects = ["../../source/geom/.libs/libgeos.a"])
759 +if sys.platform=='win32':
760 + extmod = Extension('_geos', ['geos_wrap.cxx'],
761 + include_dirs = ['../../source/headers',
762 + '../../source/headers/geos'],
763 + libraries = ['geos'],
764 + library_dirs=['../../source'],)
767 + extmod = Extension('_geos', ['geos_wrap.cxx'],
768 + include_dirs = ['../../source/headers',
769 + '../../source/headers/geos'],
770 + libraries = ['stdc++'],
771 + extra_objects = ['../../source/geom/.libs/libgeos.a'])
773 # the python module, generated by SWIG from geos.i
778 -setup(name = "PyGEOS", ext_modules = [extmod], py_modules = [pymod])
779 +setup(name = 'PyGEOS',
781 + description = 'Python SWIG interface for GEOS',
782 + url='http://geos.refractions.net',
783 + ext_modules = [extmod],
784 + py_modules = [pymod])
786 diff -Naur geos-2.2.1.orig/swig/python/tests/cases/Makefile.in geos-2.2.1/swig/python/tests/cases/Makefile.in
787 --- geos-2.2.1.orig/swig/python/tests/cases/Makefile.in 2005-12-21 09:09:28.000000000 +0100
788 +++ geos-2.2.1/swig/python/tests/cases/Makefile.in 2005-12-21 09:15:35.000000000 +0100
790 -# Makefile.in generated by automake 1.9.2 from Makefile.am.
791 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
794 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
795 -# 2003, 2004 Free Software Foundation, Inc.
796 +# 2003, 2004, 2005 Free Software Foundation, Inc.
797 # This Makefile.in is free software; the Free Software Foundation
798 # gives unlimited permission to copy and/or distribute it,
799 # with or without modifications, as long as this notice is preserved.
800 diff -Naur geos-2.2.1.orig/swig/python/tests/Makefile.in geos-2.2.1/swig/python/tests/Makefile.in
801 --- geos-2.2.1.orig/swig/python/tests/Makefile.in 2005-12-21 09:09:28.000000000 +0100
802 +++ geos-2.2.1/swig/python/tests/Makefile.in 2005-12-21 09:15:35.000000000 +0100
804 -# Makefile.in generated by automake 1.9.2 from Makefile.am.
805 +# Makefile.in generated by automake 1.9.6 from Makefile.am.
808 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
809 -# 2003, 2004 Free Software Foundation, Inc.
810 +# 2003, 2004, 2005 Free Software Foundation, Inc.
811 # This Makefile.in is free software; the Free Software Foundation
812 # gives unlimited permission to copy and/or distribute it,
813 # with or without modifications, as long as this notice is preserved.
815 # (which will cause the Makefiles to be regenerated when you run `make');
816 # (2) otherwise, pass the desired values on the `make' command line.
817 $(RECURSIVE_TARGETS):
818 - @set fnord $$MAKEFLAGS; amf=$$2; \
819 + @failcom='exit 1'; \
820 + for f in x $$MAKEFLAGS; do \
823 + *k*) failcom='fail=yes';; \
827 target=`echo $@ | sed s/-recursive//`; \
828 list='$(SUBDIRS)'; for subdir in $$list; do \
830 local_target="$$target"; \
832 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
833 - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
834 + || eval $$failcom; \
836 if test "$$dot_seen" = "no"; then \
837 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
840 mostlyclean-recursive clean-recursive distclean-recursive \
841 maintainer-clean-recursive:
842 - @set fnord $$MAKEFLAGS; amf=$$2; \
843 + @failcom='exit 1'; \
844 + for f in x $$MAKEFLAGS; do \
847 + *k*) failcom='fail=yes';; \
852 distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
854 local_target="$$target"; \
856 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
857 - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
858 + || eval $$failcom; \
859 done && test -z "$$fail"
861 list='$(SUBDIRS)'; for subdir in $$list; do \