3 # Building on Win32 with Visual C++ 7.0, 7.1, 8.0 or 9.0
4 ###############################################################################
7 # geos.lib: static library for use of C or C++ API.
8 # geos.dll: DLL - only exports the C API
9 # geos_i.lib: stub library to link against for use of geos.dll.
11 # geos_d.lib: debug static library for use of C or C++ API.
12 # geos_d.dll: debug DLL - only exports the C API
13 # geos_i_d.lib: debug stub library to link against for use of geos.dll.
15 # This makefile mostly maintained by Frank Warmerdam <warmerdam@pobox.com>
16 # with support by Mateusz Loskot <mateusz@loskot.net>
17 ###############################################################################
19 !INCLUDE $(GEOS_ROOT)\nmake.opt
22 ###############################################################################
24 # TODO: not yet supported
25 #OUT_DIR = $(GEOS_ROOT)\bin\$(BUILD_DIR)
27 ###############################################################################
34 algorithm\Angle.$(EXT) \
35 algorithm\BoundaryNodeRule.$(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\IntersectionAdder.$(EXT) \
176 noding\IntersectionFinderAdder.$(EXT) \
177 noding\IteratedNoder.$(EXT) \
178 noding\MCIndexNoder.$(EXT) \
179 noding\MCIndexSegmentSetMutualIntersector.$(EXT) \
180 noding\NodedSegmentString.$(EXT) \
181 noding\NodingValidator.$(EXT) \
182 noding\Octant.$(EXT) \
183 noding\OrientedCoordinateArray.$(EXT) \
184 noding\ScaledNoder.$(EXT) \
185 noding\SegmentIntersectionDetector.$(EXT) \
186 noding\SegmentNode.$(EXT) \
187 noding\SegmentNodeList.$(EXT) \
188 noding\SegmentString.$(EXT) \
189 noding\SegmentStringUtil.$(EXT) \
190 noding\SimpleNoder.$(EXT) \
191 noding\SingleInteriorIntersectionFinder.$(EXT) \
192 noding\snapround\HotPixel.$(EXT) \
193 noding\snapround\MCIndexPointSnapper.$(EXT) \
194 noding\snapround\MCIndexSnapRounder.$(EXT) \
195 noding\snapround\SimpleSnapRounder.$(EXT) \
196 operation\GeometryGraphOperation.$(EXT) \
197 operation\IsSimpleOp.$(EXT) \
198 operation\buffer\BufferBuilder.$(EXT) \
199 operation\buffer\BufferInputLineSimplifier.$(EXT) \
200 operation\buffer\BufferParameters.$(EXT) \
201 operation\buffer\BufferOp.$(EXT) \
202 operation\buffer\BufferSubgraph.$(EXT) \
203 operation\buffer\OffsetCurveBuilder.$(EXT) \
204 operation\buffer\OffsetCurveSetBuilder.$(EXT) \
205 operation\buffer\OffsetSegmentGenerator.$(EXT) \
206 operation\buffer\RightmostEdgeFinder.$(EXT) \
207 operation\buffer\SubgraphDepthLocater.$(EXT) \
208 operation\distance\ConnectedElementLocationFilter.$(EXT) \
209 operation\distance\ConnectedElementPointFilter.$(EXT) \
210 operation\distance\DistanceOp.$(EXT) \
211 operation\distance\GeometryLocation.$(EXT) \
212 operation\linemerge\EdgeString.$(EXT) \
213 operation\linemerge\LineMergeDirectedEdge.$(EXT) \
214 operation\linemerge\LineMergeEdge.$(EXT) \
215 operation\linemerge\LineMergeGraph.$(EXT) \
216 operation\linemerge\LineMerger.$(EXT) \
217 operation\linemerge\LineSequencer.$(EXT) \
218 operation\overlay\EdgeSetNoder.$(EXT) \
219 operation\overlay\ElevationMatrix.$(EXT) \
220 operation\overlay\ElevationMatrixCell.$(EXT) \
221 operation\overlay\LineBuilder.$(EXT) \
222 operation\overlay\MaximalEdgeRing.$(EXT) \
223 operation\overlay\MinimalEdgeRing.$(EXT) \
224 operation\overlay\OverlayNodeFactory.$(EXT) \
225 operation\overlay\OverlayOp.$(EXT) \
226 operation\overlay\PointBuilder.$(EXT) \
227 operation\overlay\PolygonBuilder.$(EXT) \
228 operation\overlay\snap\GeometrySnapper.$(EXT) \
229 operation\overlay\snap\LineStringSnapper.$(EXT) \
230 operation\overlay\snap\SnapOverlayOp.$(EXT) \
231 operation\overlay\snap\SnapIfNeededOverlayOp.$(EXT) \
232 operation\overlay\validate\FuzzyPointLocator.$(EXT) \
233 operation\overlay\validate\OffsetPointGenerator.$(EXT) \
234 operation\overlay\validate\OverlayResultValidator.$(EXT) \
235 operation\polygonize\PolygonizeDirectedEdge.$(EXT) \
236 operation\polygonize\PolygonizeEdge.$(EXT) \
237 operation\polygonize\EdgeRing.$(EXT) \
238 operation\polygonize\PolygonizeGraph.$(EXT) \
239 operation\polygonize\Polygonizer.$(EXT) \
240 operation\predicate\RectangleContains.$(EXT) \
241 operation\predicate\RectangleIntersects.$(EXT) \
242 operation\predicate\SegmentIntersectionTester.$(EXT) \
243 operation\relate\EdgeEndBuilder.$(EXT) \
244 operation\relate\EdgeEndBundle.$(EXT) \
245 operation\relate\EdgeEndBundleStar.$(EXT) \
246 operation\relate\RelateComputer.$(EXT) \
247 operation\relate\RelateNode.$(EXT) \
248 operation\relate\RelateNodeFactory.$(EXT) \
249 operation\relate\RelateNodeGraph.$(EXT) \
250 operation\relate\RelateOp.$(EXT) \
251 operation\sharedpaths\SharedPathsOp.$(EXT) \
252 operation\union\CascadedPolygonUnion.$(EXT) \
253 operation\union\CascadedUnion.$(EXT) \
254 operation\union\PointGeometryUnion.$(EXT) \
255 operation\union\UnaryUnionOp.$(EXT) \
256 operation\valid\ConnectedInteriorTester.$(EXT) \
257 operation\valid\ConsistentAreaTester.$(EXT) \
258 operation\valid\IndexedNestedRingTester.$(EXT) \
259 operation\valid\IsValidOp.$(EXT) \
260 operation\valid\QuadtreeNestedRingTester.$(EXT) \
261 operation\valid\RepeatedPointTester.$(EXT) \
262 operation\valid\SimpleNestedRingTester.$(EXT) \
263 operation\valid\SweeplineNestedRingTester.$(EXT) \
264 operation\valid\TopologyValidationError.$(EXT) \
265 planargraph\DirectedEdge.$(EXT) \
266 planargraph\DirectedEdgeStar.$(EXT) \
267 planargraph\Edge.$(EXT) \
268 planargraph\Node.$(EXT) \
269 planargraph\NodeMap.$(EXT) \
270 planargraph\PlanarGraph.$(EXT) \
271 planargraph\Subgraph.$(EXT) \
272 planargraph\algorithm\ConnectedSubgraphFinder.$(EXT) \
273 precision\CommonBits.$(EXT) \
274 precision\CommonBitsOp.$(EXT) \
275 precision\CommonBitsRemover.$(EXT) \
276 precision\EnhancedPrecisionOp.$(EXT) \
277 precision\SimpleGeometryPrecisionReducer.$(EXT) \
278 simplify\DouglasPeuckerLineSimplifier.$(EXT) \
279 simplify\DouglasPeuckerSimplifier.$(EXT) \
280 simplify\LineSegmentIndex.$(EXT) \
281 simplify\TaggedLineSegment.$(EXT) \
282 simplify\TaggedLinesSimplifier.$(EXT) \
283 simplify\TaggedLineString.$(EXT) \
284 simplify\TaggedLineStringSimplifier.$(EXT) \
285 simplify\TopologyPreservingSimplifier.$(EXT) \
287 util\GeometricShapeFactory.$(EXT) \
289 util\Profiler.$(EXT) \
290 linearref\ExtractLineByLocation.$(EXT) \
291 linearref\LengthIndexOfPoint.$(EXT) \
292 linearref\LengthIndexedLine.$(EXT) \
293 linearref\LengthLocationMap.$(EXT) \
294 linearref\LinearGeometryBuilder.$(EXT) \
295 linearref\LinearIterator.$(EXT) \
296 linearref\LinearLocation.$(EXT) \
297 linearref\LocationIndexOfLine.$(EXT) \
298 linearref\LocationIndexOfPoint.$(EXT) \
299 ..\capi\geos_c.$(EXT) \
300 ..\capi\geos_ts_c.$(EXT) \
303 TEST_EXE = TestSweepLineSpeed.exe
305 ###############################################################################
308 default: $(LIBNAME) $(DLLNAME) $(CDLLNAME)
310 all: $(LIBNAME) $(DLLNAME) $(CDLLNAME) TestSweepLineSpeed.exe geostest.exe
313 TestSweepLineSpeed.exe
316 $(LIBNAME): $(GEOS_ROOT)\include\geos\platform.h $(GEOS_ROOT)\include\geos\version.h ..\capi\geos_c.h $(OBJ)
317 if exist $(LIBNAME) del $(LIBNAME)
318 $(LINK) /lib /out:$(LIBNAME) $(OBJ)
321 $(LINK) /dll /debug $(OBJ) /out:$(DLLNAME) /implib:$(SLIBNAME)
322 if exist $(DLLNAME).manifest mt -manifest $(DLLNAME).manifest -outputresource:$(DLLNAME);2
324 $(CDLLNAME): ..\capi\geos_c.obj ..\capi\geos_ts_c.obj $(DLLNAME)
325 $(LINK) /dll /debug ..\capi\geos_c.obj ..\capi\geos_ts_c.obj $(LIBNAME) /out:$(CDLLNAME) /implib:$(CLIBNAME)
326 if exist $(CDLLNAME).manifest mt -manifest $(CDLLNAME).manifest -outputresource:$(CDLLNAME);2
328 $(GEOS_ROOT)\include\geos\platform.h: $(GEOS_ROOT)\include\geos\platform.h.vc
329 $(CP) $(GEOS_ROOT)\include\geos\platform.h.vc $(GEOS_ROOT)\include\geos\platform.h
331 $(GEOS_ROOT)\include\geos\version.h: $(GEOS_ROOT)\include\geos\version.h.vc
332 if not exist $(GEOS_ROOT)\include\geos\version.h $(CP) $(GEOS_ROOT)\include\geos\version.h.vc $(GEOS_ROOT)\include\geos\version.h
334 # geos_c.h should already be in distribution, if is not you'll
335 # have to run ./configure to recreate
336 ../capi/geos_c.h: ../capi/geos_c.h.in.
337 $(CP) ..\capi\geos_c.h.in ..\capi\geos_c.h
340 $(CC) $(CFLAGS) /c $*.cpp /Fo$@
343 $(CC) $(CFLAGS) /D "GEOS_DLL_EXPORT" /c $*.cpp /Fo$@
346 $(CC) $(CFLAGS) /c $*.c /Fo$@
349 @ECHO "*** Cleaning GEOS source tree"
350 @IF EXIST $(LIBNAME) $(RM) $(LIBNAME)
351 @IF EXIST $(SLIBNAME) $(RM) $(SLIBNAME)
352 @IF EXIST $(DLLNAME) $(RM) $(DLLNAME)
353 @IF EXIST $(SLIBNAME) $(RM) $(SLIBNAME)
354 @IF EXIST $(CLIBNAME) $(RM) $(CLIBNAME)
355 @IF EXIST $(CDLLNAME) $(RM) $(CDLLNAME)
363 -@FOR %d IN ( $(GEOS_DIRLIST) ) DO del %d\*.obj
365 TestSweepLineSpeed.exe: $(LIBNAME) \
366 ..\tests\bigtest\GeometryTestFactory.obj \
367 ..\tests\bigtest\TestSweepLineSpeed.obj
368 $(LINK) /debug /out:TestSweepLineSpeed.exe \
369 ..\tests\bigtest\TestSweepLineSpeed.obj \
370 ..\tests\bigtest\GeometryTestFactory.obj \
373 geostest.exe: $(CDLLNAME) ..\tests\unit\capi\geostest.obj
374 $(LINK) /debug ..\tests\unit\capi\geostest.obj $(CLIBNAME)