2 # Building on Win32 with Visual C++ 7.0, 7.1, 8.0 or 9.0
3 ###############################################################################
6 # geos.lib: static library for use of C or C++ API.
7 # geos.dll: DLL - only exports the C API
8 # geos_i.lib: stub library to link against for use of geos.dll.
10 # geos_d.lib: debug static library for use of C or C++ API.
11 # geos_d.dll: debug DLL - only exports the C API
12 # geos_i_d.lib: debug stub library to link against for use of geos.dll.
14 # This makefile mostly maintained by Frank Warmerdam <warmerdam@pobox.com>
15 # with support by Mateusz Loskot <mateusz@loskot.net>
16 ###############################################################################
18 !INCLUDE $(GEOS_ROOT)\nmake.opt
21 ###############################################################################
23 # TODO: not yet supported
24 #OUT_DIR = $(GEOS_ROOT)\bin\$(BUILD_DIR)
26 ###############################################################################
33 algorithm\Angle.$(EXT) \
34 algorithm\BoundaryNodeRule.$(EXT) \
35 algorithm\Centroid.$(EXT) \
36 algorithm\CentroidArea.$(EXT) \
37 algorithm\CentroidLine.$(EXT) \
38 algorithm\CentroidPoint.$(EXT) \
39 algorithm\CGAlgorithms.$(EXT) \
40 algorithm\ConvexHull.$(EXT) \
41 algorithm\HCoordinate.$(EXT) \
42 algorithm\InteriorPointArea.$(EXT) \
43 algorithm\InteriorPointLine.$(EXT) \
44 algorithm\InteriorPointPoint.$(EXT) \
45 algorithm\LineIntersector.$(EXT) \
46 algorithm\MCPointInRing.$(EXT) \
47 algorithm\MinimumDiameter.$(EXT) \
48 algorithm\NotRepresentableException.$(EXT) \
49 algorithm\PointLocator.$(EXT) \
50 algorithm\RayCrossingCounter.$(EXT) \
51 algorithm\RobustDeterminant.$(EXT) \
52 algorithm\SimplePointInRing.$(EXT) \
53 algorithm\SIRtreePointInRing.$(EXT) \
54 algorithm\distance\DiscreteHausdorffDistance.$(EXT) \
55 algorithm\distance\DistanceToPoint.$(EXT) \
56 algorithm\locate\IndexedPointInAreaLocator.$(EXT) \
57 algorithm\locate\PointOnGeometryLocator.$(EXT) \
58 algorithm\locate\SimplePointInAreaLocator.$(EXT) \
59 geom\Coordinate.$(EXT) \
60 geom\CoordinateArraySequence.$(EXT) \
61 geom\CoordinateArraySequenceFactory.$(EXT) \
62 geom\CoordinateSequence.$(EXT) \
63 geom\CoordinateSequenceFactory.$(EXT) \
64 geom\Dimension.$(EXT) \
65 geom\Envelope.$(EXT) \
66 geom\Geometry.$(EXT) \
67 geom\GeometryCollection.$(EXT) \
68 geom\GeometryComponentFilter.$(EXT) \
69 geom\GeometryFactory.$(EXT) \
70 geom\GeometryList.$(EXT) \
71 geom\IntersectionMatrix.$(EXT) \
72 geom\LinearRing.$(EXT) \
73 geom\LineSegment.$(EXT) \
74 geom\LineString.$(EXT) \
75 geom\Location.$(EXT) \
76 geom\MultiLineString.$(EXT) \
77 geom\MultiPoint.$(EXT) \
78 geom\MultiPolygon.$(EXT) \
81 geom\PrecisionModel.$(EXT) \
82 geom\Triangle.$(EXT) \
83 geom\util\ComponentCoordinateExtracter.$(EXT) \
84 geom\util\CoordinateOperation.$(EXT) \
85 geom\util\GeometryEditor.$(EXT) \
86 geom\util\GeometryTransformer.$(EXT) \
87 geom\util\GeometryCombiner.$(EXT) \
88 geom\util\ShortCircuitedGeometryVisitor.$(EXT) \
89 geom\util\SineStarFactory.$(EXT) \
90 geom\prep\AbstractPreparedPolygonContains.$(EXT) \
91 geom\prep\BasicPreparedGeometry.$(EXT) \
92 geom\prep\PreparedGeometry.$(EXT) \
93 geom\prep\PreparedGeometryFactory.$(EXT) \
94 geom\prep\PreparedLineString.$(EXT) \
95 geom\prep\PreparedLineStringIntersects.$(EXT) \
96 geom\prep\PreparedPoint.$(EXT) \
97 geom\prep\PreparedPolygon.$(EXT) \
98 geom\prep\PreparedPolygonContains.$(EXT) \
99 geom\prep\PreparedPolygonContainsProperly.$(EXT) \
100 geom\prep\PreparedPolygonCovers.$(EXT) \
101 geom\prep\PreparedPolygonIntersects.$(EXT) \
102 geom\prep\PreparedPolygonPredicate.$(EXT) \
103 geomgraph\Depth.$(EXT) \
104 geomgraph\DirectedEdge.$(EXT) \
105 geomgraph\DirectedEdgeStar.$(EXT) \
106 geomgraph\Edge.$(EXT) \
107 geomgraph\EdgeEnd.$(EXT) \
108 geomgraph\EdgeEndStar.$(EXT) \
109 geomgraph\EdgeIntersectionList.$(EXT) \
110 geomgraph\EdgeList.$(EXT) \
111 geomgraph\EdgeNodingValidator.$(EXT) \
112 geomgraph\EdgeRing.$(EXT) \
113 geomgraph\GeometryGraph.$(EXT) \
114 geomgraph\GraphComponent.$(EXT) \
115 geomgraph\Label.$(EXT) \
116 geomgraph\Node.$(EXT) \
117 geomgraph\NodeFactory.$(EXT) \
118 geomgraph\NodeMap.$(EXT) \
119 geomgraph\PlanarGraph.$(EXT) \
120 geomgraph\Position.$(EXT) \
121 geomgraph\Quadrant.$(EXT) \
122 geomgraph\TopologyLocation.$(EXT) \
123 geomgraph\index\MonotoneChainEdge.$(EXT) \
124 geomgraph\index\MonotoneChainIndexer.$(EXT) \
125 geomgraph\index\SegmentIntersector.$(EXT) \
126 geomgraph\index\SimpleEdgeSetIntersector.$(EXT) \
127 geomgraph\index\SimpleMCSweepLineIntersector.$(EXT) \
128 geomgraph\index\SimpleSweepLineIntersector.$(EXT) \
129 geomgraph\index\SweepLineEvent.$(EXT) \
130 geomgraph\index\SweepLineSegment.$(EXT) \
131 index\bintree\Bintree.$(EXT) \
132 index\bintree\Interval.$(EXT) \
133 index\bintree\Key.$(EXT) \
134 index\bintree\Node.$(EXT) \
135 index\bintree\NodeBase.$(EXT) \
136 index\bintree\Root.$(EXT) \
137 index\chain\MonotoneChain.$(EXT) \
138 index\chain\MonotoneChainBuilder.$(EXT) \
139 index\chain\MonotoneChainOverlapAction.$(EXT) \
140 index\chain\MonotoneChainSelectAction.$(EXT) \
141 index\intervalrtree\IntervalRTreeBranchNode.$(EXT) \
142 index\intervalrtree\IntervalRTreeLeafNode.$(EXT) \
143 index\intervalrtree\IntervalRTreeNode.$(EXT) \
144 index\intervalrtree\SortedPackedIntervalRTree.$(EXT) \
145 index\quadtree\DoubleBits.$(EXT) \
146 index\quadtree\IntervalSize.$(EXT) \
147 index\quadtree\Key.$(EXT) \
148 index\quadtree\Node.$(EXT) \
149 index\quadtree\NodeBase.$(EXT) \
150 index\quadtree\Root.$(EXT) \
151 index\quadtree\Quadtree.$(EXT) \
152 index\strtree\AbstractNode.$(EXT) \
153 index\strtree\AbstractSTRtree.$(EXT) \
154 index\strtree\Interval.$(EXT) \
155 index\strtree\ItemBoundable.$(EXT) \
156 index\strtree\SIRtree.$(EXT) \
157 index\strtree\STRtree.$(EXT) \
158 index\sweepline\SweepLineEvent.$(EXT) \
159 index\sweepline\SweepLineIndex.$(EXT) \
160 index\sweepline\SweepLineInterval.$(EXT) \
161 io\ByteOrderDataInStream.$(EXT) \
162 io\ByteOrderValues.$(EXT) \
163 io\CLocalizer.$(EXT) \
164 io\ParseException.$(EXT) \
165 io\StringTokenizer.$(EXT) \
167 io\WKBReader.$(EXT) \
168 io\WKBWriter.$(EXT) \
169 io\WKTReader.$(EXT) \
170 io\WKTWriter.$(EXT) \
172 noding\BasicSegmentString.$(EXT) \
173 noding\FastNodingValidator.$(EXT) \
174 noding\FastSegmentSetIntersectionFinder.$(EXT) \
175 noding\GeometryNoder.$(EXT) \
176 noding\IntersectionAdder.$(EXT) \
177 noding\IntersectionFinderAdder.$(EXT) \
178 noding\IteratedNoder.$(EXT) \
179 noding\MCIndexNoder.$(EXT) \
180 noding\MCIndexSegmentSetMutualIntersector.$(EXT) \
181 noding\NodedSegmentString.$(EXT) \
182 noding\NodingValidator.$(EXT) \
183 noding\Octant.$(EXT) \
184 noding\OrientedCoordinateArray.$(EXT) \
185 noding\ScaledNoder.$(EXT) \
186 noding\SegmentIntersectionDetector.$(EXT) \
187 noding\SegmentNode.$(EXT) \
188 noding\SegmentNodeList.$(EXT) \
189 noding\SegmentString.$(EXT) \
190 noding\SegmentStringUtil.$(EXT) \
191 noding\SimpleNoder.$(EXT) \
192 noding\SingleInteriorIntersectionFinder.$(EXT) \
193 noding\snapround\HotPixel.$(EXT) \
194 noding\snapround\MCIndexPointSnapper.$(EXT) \
195 noding\snapround\MCIndexSnapRounder.$(EXT) \
196 noding\snapround\SimpleSnapRounder.$(EXT) \
197 operation\GeometryGraphOperation.$(EXT) \
198 operation\IsSimpleOp.$(EXT) \
199 operation\buffer\BufferBuilder.$(EXT) \
200 operation\buffer\BufferInputLineSimplifier.$(EXT) \
201 operation\buffer\BufferParameters.$(EXT) \
202 operation\buffer\BufferOp.$(EXT) \
203 operation\buffer\BufferSubgraph.$(EXT) \
204 operation\buffer\OffsetCurveBuilder.$(EXT) \
205 operation\buffer\OffsetCurveSetBuilder.$(EXT) \
206 operation\buffer\OffsetSegmentGenerator.$(EXT) \
207 operation\buffer\RightmostEdgeFinder.$(EXT) \
208 operation\buffer\SubgraphDepthLocater.$(EXT) \
209 operation\distance\ConnectedElementLocationFilter.$(EXT) \
210 operation\distance\ConnectedElementPointFilter.$(EXT) \
211 operation\distance\DistanceOp.$(EXT) \
212 operation\distance\GeometryLocation.$(EXT) \
213 operation\linemerge\EdgeString.$(EXT) \
214 operation\linemerge\LineMergeDirectedEdge.$(EXT) \
215 operation\linemerge\LineMergeEdge.$(EXT) \
216 operation\linemerge\LineMergeGraph.$(EXT) \
217 operation\linemerge\LineMerger.$(EXT) \
218 operation\linemerge\LineSequencer.$(EXT) \
219 operation\overlay\EdgeSetNoder.$(EXT) \
220 operation\overlay\ElevationMatrix.$(EXT) \
221 operation\overlay\ElevationMatrixCell.$(EXT) \
222 operation\overlay\LineBuilder.$(EXT) \
223 operation\overlay\MaximalEdgeRing.$(EXT) \
224 operation\overlay\MinimalEdgeRing.$(EXT) \
225 operation\overlay\OverlayNodeFactory.$(EXT) \
226 operation\overlay\OverlayOp.$(EXT) \
227 operation\overlay\PointBuilder.$(EXT) \
228 operation\overlay\PolygonBuilder.$(EXT) \
229 operation\overlay\snap\GeometrySnapper.$(EXT) \
230 operation\overlay\snap\LineStringSnapper.$(EXT) \
231 operation\overlay\snap\SnapOverlayOp.$(EXT) \
232 operation\overlay\snap\SnapIfNeededOverlayOp.$(EXT) \
233 operation\overlay\validate\FuzzyPointLocator.$(EXT) \
234 operation\overlay\validate\OffsetPointGenerator.$(EXT) \
235 operation\overlay\validate\OverlayResultValidator.$(EXT) \
236 operation\polygonize\PolygonizeDirectedEdge.$(EXT) \
237 operation\polygonize\PolygonizeEdge.$(EXT) \
238 operation\polygonize\EdgeRing.$(EXT) \
239 operation\polygonize\PolygonizeGraph.$(EXT) \
240 operation\polygonize\Polygonizer.$(EXT) \
241 operation\predicate\RectangleContains.$(EXT) \
242 operation\predicate\RectangleIntersects.$(EXT) \
243 operation\predicate\SegmentIntersectionTester.$(EXT) \
244 operation\relate\EdgeEndBuilder.$(EXT) \
245 operation\relate\EdgeEndBundle.$(EXT) \
246 operation\relate\EdgeEndBundleStar.$(EXT) \
247 operation\relate\RelateComputer.$(EXT) \
248 operation\relate\RelateNode.$(EXT) \
249 operation\relate\RelateNodeFactory.$(EXT) \
250 operation\relate\RelateNodeGraph.$(EXT) \
251 operation\relate\RelateOp.$(EXT) \
252 operation\sharedpaths\SharedPathsOp.$(EXT) \
253 operation\union\CascadedPolygonUnion.$(EXT) \
254 operation\union\CascadedUnion.$(EXT) \
255 operation\union\PointGeometryUnion.$(EXT) \
256 operation\union\UnaryUnionOp.$(EXT) \
257 operation\valid\ConnectedInteriorTester.$(EXT) \
258 operation\valid\ConsistentAreaTester.$(EXT) \
259 operation\valid\IndexedNestedRingTester.$(EXT) \
260 operation\valid\IsValidOp.$(EXT) \
261 operation\valid\QuadtreeNestedRingTester.$(EXT) \
262 operation\valid\RepeatedPointTester.$(EXT) \
263 operation\valid\SimpleNestedRingTester.$(EXT) \
264 operation\valid\SweeplineNestedRingTester.$(EXT) \
265 operation\valid\TopologyValidationError.$(EXT) \
266 planargraph\DirectedEdge.$(EXT) \
267 planargraph\DirectedEdgeStar.$(EXT) \
268 planargraph\Edge.$(EXT) \
269 planargraph\Node.$(EXT) \
270 planargraph\NodeMap.$(EXT) \
271 planargraph\PlanarGraph.$(EXT) \
272 planargraph\Subgraph.$(EXT) \
273 planargraph\algorithm\ConnectedSubgraphFinder.$(EXT) \
274 precision\CommonBits.$(EXT) \
275 precision\CommonBitsOp.$(EXT) \
276 precision\CommonBitsRemover.$(EXT) \
277 precision\EnhancedPrecisionOp.$(EXT) \
278 precision\GeometryPrecisionReducer.$(EXT) \
279 precision\PrecisionReducerCoordinateOperation.$(EXT) \
280 precision\SimpleGeometryPrecisionReducer.$(EXT) \
281 simplify\DouglasPeuckerLineSimplifier.$(EXT) \
282 simplify\DouglasPeuckerSimplifier.$(EXT) \
283 simplify\LineSegmentIndex.$(EXT) \
284 simplify\TaggedLineSegment.$(EXT) \
285 simplify\TaggedLinesSimplifier.$(EXT) \
286 simplify\TaggedLineString.$(EXT) \
287 simplify\TaggedLineStringSimplifier.$(EXT) \
288 simplify\TopologyPreservingSimplifier.$(EXT) \
289 triangulate\DelaunayTriangulationBuilder.$(EXT) \
290 triangulate\IncrementalDelaunayTriangulator.$(EXT) \
291 triangulate\quadedge\LastFoundQuadEdgeLocator.$(EXT) \
292 triangulate\quadedge\LocateFailureException.$(EXT) \
293 triangulate\quadedge\QuadEdge.$(EXT) \
294 triangulate\quadedge\QuadEdgeLocator.$(EXT) \
295 triangulate\quadedge\QuadEdgeSubdivision.$(EXT) \
296 triangulate\quadedge\TrianglePredicate.$(EXT) \
297 triangulate\quadedge\TriangleVisitor.$(EXT) \
298 triangulate\quadedge\Vertex.$(EXT) \
300 util\GeometricShapeFactory.$(EXT) \
301 util\Interrupt.$(EXT) \
303 util\Profiler.$(EXT) \
304 linearref\ExtractLineByLocation.$(EXT) \
305 linearref\LengthIndexOfPoint.$(EXT) \
306 linearref\LengthIndexedLine.$(EXT) \
307 linearref\LengthLocationMap.$(EXT) \
308 linearref\LinearGeometryBuilder.$(EXT) \
309 linearref\LinearIterator.$(EXT) \
310 linearref\LinearLocation.$(EXT) \
311 linearref\LocationIndexOfLine.$(EXT) \
312 linearref\LocationIndexOfPoint.$(EXT) \
313 ..\capi\geos_c.$(EXT) \
314 ..\capi\geos_ts_c.$(EXT) \
317 TEST_EXE = TestSweepLineSpeed.exe
319 ###############################################################################
322 default: $(LIBNAME) $(DLLNAME) $(CDLLNAME)
324 all: $(LIBNAME) $(DLLNAME) $(CDLLNAME) TestSweepLineSpeed.exe geostest.exe
327 TestSweepLineSpeed.exe
330 $(LIBNAME): $(GEOS_ROOT)\include\geos\platform.h $(GEOS_ROOT)\include\geos\version.h ..\capi\geos_c.h $(OBJ)
331 if exist $(LIBNAME) del $(LIBNAME)
332 $(LINK) /lib /out:$(LIBNAME) $(OBJ)
335 $(LINK) /dll /debug $(LINKER_FLAGS) $(OBJ) /out:$(DLLNAME) /implib:$(SLIBNAME)
336 if exist $(DLLNAME).manifest mt -manifest $(DLLNAME).manifest -outputresource:$(DLLNAME);2
338 $(CDLLNAME): ..\capi\geos_c.obj ..\capi\geos_ts_c.obj $(DLLNAME)
339 $(LINK) /dll /debug $(LINKER_FLAGS) ..\capi\geos_c.obj ..\capi\geos_ts_c.obj $(LIBNAME) /out:$(CDLLNAME) /implib:$(CLIBNAME)
340 if exist $(CDLLNAME).manifest mt -manifest $(CDLLNAME).manifest -outputresource:$(CDLLNAME);2
342 $(GEOS_ROOT)\include\geos\platform.h: $(GEOS_ROOT)\include\geos\platform.h.vc
343 $(CP) $(GEOS_ROOT)\include\geos\platform.h.vc $(GEOS_ROOT)\include\geos\platform.h
345 $(GEOS_ROOT)\include\geos\version.h: $(GEOS_ROOT)\include\geos\version.h.vc
346 if not exist $(GEOS_ROOT)\include\geos\version.h $(CP) $(GEOS_ROOT)\include\geos\version.h.vc $(GEOS_ROOT)\include\geos\version.h
348 # geos_c.h should already be in distribution, if is not you'll
349 # have to run ./configure to recreate
350 ../capi/geos_c.h: ../capi/geos_c.h.in.
351 $(CP) ..\capi\geos_c.h.in ..\capi\geos_c.h
354 $(CC) $(CFLAGS) /c $*.cpp /Fo$@
357 $(CC) $(CFLAGS) /D "GEOS_DLL_EXPORT" /c $*.cpp /Fo$@
360 $(CC) $(CFLAGS) /c $*.c /Fo$@
363 @ECHO "*** Cleaning GEOS source tree"
364 @IF EXIST $(LIBNAME) $(RM) $(LIBNAME)
365 @IF EXIST $(SLIBNAME) $(RM) $(SLIBNAME)
366 @IF EXIST $(DLLNAME) $(RM) $(DLLNAME)
367 @IF EXIST $(SLIBNAME) $(RM) $(SLIBNAME)
368 @IF EXIST $(CLIBNAME) $(RM) $(CLIBNAME)
369 @IF EXIST $(CDLLNAME) $(RM) $(CDLLNAME)
377 -@FOR %d IN ( $(GEOS_DIRLIST) ) DO del %d\*.obj
379 TestSweepLineSpeed.exe: $(LIBNAME) \
380 ..\tests\bigtest\GeometryTestFactory.obj \
381 ..\tests\bigtest\TestSweepLineSpeed.obj
382 $(LINK) /debug /out:TestSweepLineSpeed.exe \
383 ..\tests\bigtest\TestSweepLineSpeed.obj \
384 ..\tests\bigtest\GeometryTestFactory.obj \
387 geostest.exe: $(CDLLNAME) ..\tests\unit\capi\geostest.obj
388 $(LINK) /debug ..\tests\unit\capi\geostest.obj $(CLIBNAME)