# $Id: Makefile.vc 3372 2011-05-19 19:32:06Z warmerdam $ # # Building on Win32 with Visual C++ 7.0, 7.1, 8.0 or 9.0 ############################################################################### # # Produces: # geos.lib: static library for use of C or C++ API. # geos.dll: DLL - only exports the C API # geos_i.lib: stub library to link against for use of geos.dll. # # geos_d.lib: debug static library for use of C or C++ API. # geos_d.dll: debug DLL - only exports the C API # geos_i_d.lib: debug stub library to link against for use of geos.dll. # # This makefile mostly maintained by Frank Warmerdam # with support by Mateusz Loskot ############################################################################### GEOS_ROOT=.. !INCLUDE $(GEOS_ROOT)\nmake.opt !INCLUDE dirlist.mk ############################################################################### # Output location # TODO: not yet supported #OUT_DIR = $(GEOS_ROOT)\bin\$(BUILD_DIR) ############################################################################### # List of objects OBJ_EXT = obj EXT = $(OBJ_EXT) OBJ = \ algorithm\Angle.$(EXT) \ algorithm\BoundaryNodeRule.$(EXT) \ algorithm\CentroidArea.$(EXT) \ algorithm\CentroidLine.$(EXT) \ algorithm\CentroidPoint.$(EXT) \ algorithm\CGAlgorithms.$(EXT) \ algorithm\ConvexHull.$(EXT) \ algorithm\HCoordinate.$(EXT) \ algorithm\InteriorPointArea.$(EXT) \ algorithm\InteriorPointLine.$(EXT) \ algorithm\InteriorPointPoint.$(EXT) \ algorithm\LineIntersector.$(EXT) \ algorithm\MCPointInRing.$(EXT) \ algorithm\MinimumDiameter.$(EXT) \ algorithm\NotRepresentableException.$(EXT) \ algorithm\PointLocator.$(EXT) \ algorithm\RayCrossingCounter.$(EXT) \ algorithm\RobustDeterminant.$(EXT) \ algorithm\SimplePointInRing.$(EXT) \ algorithm\SIRtreePointInRing.$(EXT) \ algorithm\distance\DiscreteHausdorffDistance.$(EXT) \ algorithm\distance\DistanceToPoint.$(EXT) \ algorithm\locate\IndexedPointInAreaLocator.$(EXT) \ algorithm\locate\PointOnGeometryLocator.$(EXT) \ algorithm\locate\SimplePointInAreaLocator.$(EXT) \ geom\Coordinate.$(EXT) \ geom\CoordinateArraySequence.$(EXT) \ geom\CoordinateArraySequenceFactory.$(EXT) \ geom\CoordinateSequence.$(EXT) \ geom\CoordinateSequenceFactory.$(EXT) \ geom\Dimension.$(EXT) \ geom\Envelope.$(EXT) \ geom\Geometry.$(EXT) \ geom\GeometryCollection.$(EXT) \ geom\GeometryComponentFilter.$(EXT) \ geom\GeometryFactory.$(EXT) \ geom\GeometryList.$(EXT) \ geom\IntersectionMatrix.$(EXT) \ geom\LinearRing.$(EXT) \ geom\LineSegment.$(EXT) \ geom\LineString.$(EXT) \ geom\Location.$(EXT) \ geom\MultiLineString.$(EXT) \ geom\MultiPoint.$(EXT) \ geom\MultiPolygon.$(EXT) \ geom\Point.$(EXT) \ geom\Polygon.$(EXT) \ geom\PrecisionModel.$(EXT) \ geom\Triangle.$(EXT) \ geom\util\ComponentCoordinateExtracter.$(EXT) \ geom\util\CoordinateOperation.$(EXT) \ geom\util\GeometryEditor.$(EXT) \ geom\util\GeometryTransformer.$(EXT) \ geom\util\GeometryCombiner.$(EXT) \ geom\util\ShortCircuitedGeometryVisitor.$(EXT) \ geom\util\SineStarFactory.$(EXT) \ geom\prep\AbstractPreparedPolygonContains.$(EXT) \ geom\prep\BasicPreparedGeometry.$(EXT) \ geom\prep\PreparedGeometry.$(EXT) \ geom\prep\PreparedGeometryFactory.$(EXT) \ geom\prep\PreparedLineString.$(EXT) \ geom\prep\PreparedLineStringIntersects.$(EXT) \ geom\prep\PreparedPoint.$(EXT) \ geom\prep\PreparedPolygon.$(EXT) \ geom\prep\PreparedPolygonContains.$(EXT) \ geom\prep\PreparedPolygonContainsProperly.$(EXT) \ geom\prep\PreparedPolygonCovers.$(EXT) \ geom\prep\PreparedPolygonIntersects.$(EXT) \ geom\prep\PreparedPolygonPredicate.$(EXT) \ geomgraph\Depth.$(EXT) \ geomgraph\DirectedEdge.$(EXT) \ geomgraph\DirectedEdgeStar.$(EXT) \ geomgraph\Edge.$(EXT) \ geomgraph\EdgeEnd.$(EXT) \ geomgraph\EdgeEndStar.$(EXT) \ geomgraph\EdgeIntersectionList.$(EXT) \ geomgraph\EdgeList.$(EXT) \ geomgraph\EdgeNodingValidator.$(EXT) \ geomgraph\EdgeRing.$(EXT) \ geomgraph\GeometryGraph.$(EXT) \ geomgraph\GraphComponent.$(EXT) \ geomgraph\Label.$(EXT) \ geomgraph\Node.$(EXT) \ geomgraph\NodeFactory.$(EXT) \ geomgraph\NodeMap.$(EXT) \ geomgraph\PlanarGraph.$(EXT) \ geomgraph\Position.$(EXT) \ geomgraph\Quadrant.$(EXT) \ geomgraph\TopologyLocation.$(EXT) \ geomgraph\index\MonotoneChainEdge.$(EXT) \ geomgraph\index\MonotoneChainIndexer.$(EXT) \ geomgraph\index\SegmentIntersector.$(EXT) \ geomgraph\index\SimpleEdgeSetIntersector.$(EXT) \ geomgraph\index\SimpleMCSweepLineIntersector.$(EXT) \ geomgraph\index\SimpleSweepLineIntersector.$(EXT) \ geomgraph\index\SweepLineEvent.$(EXT) \ geomgraph\index\SweepLineSegment.$(EXT) \ index\bintree\Bintree.$(EXT) \ index\bintree\Interval.$(EXT) \ index\bintree\Key.$(EXT) \ index\bintree\Node.$(EXT) \ index\bintree\NodeBase.$(EXT) \ index\bintree\Root.$(EXT) \ index\chain\MonotoneChain.$(EXT) \ index\chain\MonotoneChainBuilder.$(EXT) \ index\chain\MonotoneChainOverlapAction.$(EXT) \ index\chain\MonotoneChainSelectAction.$(EXT) \ index\intervalrtree\IntervalRTreeBranchNode.$(EXT) \ index\intervalrtree\IntervalRTreeLeafNode.$(EXT) \ index\intervalrtree\IntervalRTreeNode.$(EXT) \ index\intervalrtree\SortedPackedIntervalRTree.$(EXT) \ index\quadtree\DoubleBits.$(EXT) \ index\quadtree\IntervalSize.$(EXT) \ index\quadtree\Key.$(EXT) \ index\quadtree\Node.$(EXT) \ index\quadtree\NodeBase.$(EXT) \ index\quadtree\Root.$(EXT) \ index\quadtree\Quadtree.$(EXT) \ index\strtree\AbstractNode.$(EXT) \ index\strtree\AbstractSTRtree.$(EXT) \ index\strtree\Interval.$(EXT) \ index\strtree\ItemBoundable.$(EXT) \ index\strtree\SIRtree.$(EXT) \ index\strtree\STRtree.$(EXT) \ index\sweepline\SweepLineEvent.$(EXT) \ index\sweepline\SweepLineIndex.$(EXT) \ index\sweepline\SweepLineInterval.$(EXT) \ io\ByteOrderDataInStream.$(EXT) \ io\ByteOrderValues.$(EXT) \ io\CLocalizer.$(EXT) \ io\ParseException.$(EXT) \ io\StringTokenizer.$(EXT) \ io\Unload.$(EXT) \ io\WKBReader.$(EXT) \ io\WKBWriter.$(EXT) \ io\WKTReader.$(EXT) \ io\WKTWriter.$(EXT) \ io\Writer.$(EXT) \ noding\BasicSegmentString.$(EXT) \ noding\FastNodingValidator.$(EXT) \ noding\FastSegmentSetIntersectionFinder.$(EXT) \ noding\IntersectionAdder.$(EXT) \ noding\IntersectionFinderAdder.$(EXT) \ noding\IteratedNoder.$(EXT) \ noding\MCIndexNoder.$(EXT) \ noding\MCIndexSegmentSetMutualIntersector.$(EXT) \ noding\NodedSegmentString.$(EXT) \ noding\NodingValidator.$(EXT) \ noding\Octant.$(EXT) \ noding\OrientedCoordinateArray.$(EXT) \ noding\ScaledNoder.$(EXT) \ noding\SegmentIntersectionDetector.$(EXT) \ noding\SegmentNode.$(EXT) \ noding\SegmentNodeList.$(EXT) \ noding\SegmentString.$(EXT) \ noding\SegmentStringUtil.$(EXT) \ noding\SimpleNoder.$(EXT) \ noding\SingleInteriorIntersectionFinder.$(EXT) \ noding\snapround\HotPixel.$(EXT) \ noding\snapround\MCIndexPointSnapper.$(EXT) \ noding\snapround\MCIndexSnapRounder.$(EXT) \ noding\snapround\SimpleSnapRounder.$(EXT) \ operation\GeometryGraphOperation.$(EXT) \ operation\IsSimpleOp.$(EXT) \ operation\buffer\BufferBuilder.$(EXT) \ operation\buffer\BufferInputLineSimplifier.$(EXT) \ operation\buffer\BufferParameters.$(EXT) \ operation\buffer\BufferOp.$(EXT) \ operation\buffer\BufferSubgraph.$(EXT) \ operation\buffer\OffsetCurveBuilder.$(EXT) \ operation\buffer\OffsetCurveSetBuilder.$(EXT) \ operation\buffer\OffsetSegmentGenerator.$(EXT) \ operation\buffer\RightmostEdgeFinder.$(EXT) \ operation\buffer\SubgraphDepthLocater.$(EXT) \ operation\distance\ConnectedElementLocationFilter.$(EXT) \ operation\distance\ConnectedElementPointFilter.$(EXT) \ operation\distance\DistanceOp.$(EXT) \ operation\distance\GeometryLocation.$(EXT) \ operation\linemerge\EdgeString.$(EXT) \ operation\linemerge\LineMergeDirectedEdge.$(EXT) \ operation\linemerge\LineMergeEdge.$(EXT) \ operation\linemerge\LineMergeGraph.$(EXT) \ operation\linemerge\LineMerger.$(EXT) \ operation\linemerge\LineSequencer.$(EXT) \ operation\overlay\EdgeSetNoder.$(EXT) \ operation\overlay\ElevationMatrix.$(EXT) \ operation\overlay\ElevationMatrixCell.$(EXT) \ operation\overlay\LineBuilder.$(EXT) \ operation\overlay\MaximalEdgeRing.$(EXT) \ operation\overlay\MinimalEdgeRing.$(EXT) \ operation\overlay\OverlayNodeFactory.$(EXT) \ operation\overlay\OverlayOp.$(EXT) \ operation\overlay\PointBuilder.$(EXT) \ operation\overlay\PolygonBuilder.$(EXT) \ operation\overlay\snap\GeometrySnapper.$(EXT) \ operation\overlay\snap\LineStringSnapper.$(EXT) \ operation\overlay\snap\SnapOverlayOp.$(EXT) \ operation\overlay\snap\SnapIfNeededOverlayOp.$(EXT) \ operation\overlay\validate\FuzzyPointLocator.$(EXT) \ operation\overlay\validate\OffsetPointGenerator.$(EXT) \ operation\overlay\validate\OverlayResultValidator.$(EXT) \ operation\polygonize\PolygonizeDirectedEdge.$(EXT) \ operation\polygonize\PolygonizeEdge.$(EXT) \ operation\polygonize\EdgeRing.$(EXT) \ operation\polygonize\PolygonizeGraph.$(EXT) \ operation\polygonize\Polygonizer.$(EXT) \ operation\predicate\RectangleContains.$(EXT) \ operation\predicate\RectangleIntersects.$(EXT) \ operation\predicate\SegmentIntersectionTester.$(EXT) \ operation\relate\EdgeEndBuilder.$(EXT) \ operation\relate\EdgeEndBundle.$(EXT) \ operation\relate\EdgeEndBundleStar.$(EXT) \ operation\relate\RelateComputer.$(EXT) \ operation\relate\RelateNode.$(EXT) \ operation\relate\RelateNodeFactory.$(EXT) \ operation\relate\RelateNodeGraph.$(EXT) \ operation\relate\RelateOp.$(EXT) \ operation\sharedpaths\SharedPathsOp.$(EXT) \ operation\union\CascadedPolygonUnion.$(EXT) \ operation\union\CascadedUnion.$(EXT) \ operation\union\PointGeometryUnion.$(EXT) \ operation\union\UnaryUnionOp.$(EXT) \ operation\valid\ConnectedInteriorTester.$(EXT) \ operation\valid\ConsistentAreaTester.$(EXT) \ operation\valid\IndexedNestedRingTester.$(EXT) \ operation\valid\IsValidOp.$(EXT) \ operation\valid\QuadtreeNestedRingTester.$(EXT) \ operation\valid\RepeatedPointTester.$(EXT) \ operation\valid\SimpleNestedRingTester.$(EXT) \ operation\valid\SweeplineNestedRingTester.$(EXT) \ operation\valid\TopologyValidationError.$(EXT) \ planargraph\DirectedEdge.$(EXT) \ planargraph\DirectedEdgeStar.$(EXT) \ planargraph\Edge.$(EXT) \ planargraph\Node.$(EXT) \ planargraph\NodeMap.$(EXT) \ planargraph\PlanarGraph.$(EXT) \ planargraph\Subgraph.$(EXT) \ planargraph\algorithm\ConnectedSubgraphFinder.$(EXT) \ precision\CommonBits.$(EXT) \ precision\CommonBitsOp.$(EXT) \ precision\CommonBitsRemover.$(EXT) \ precision\EnhancedPrecisionOp.$(EXT) \ precision\SimpleGeometryPrecisionReducer.$(EXT) \ simplify\DouglasPeuckerLineSimplifier.$(EXT) \ simplify\DouglasPeuckerSimplifier.$(EXT) \ simplify\LineSegmentIndex.$(EXT) \ simplify\TaggedLineSegment.$(EXT) \ simplify\TaggedLinesSimplifier.$(EXT) \ simplify\TaggedLineString.$(EXT) \ simplify\TaggedLineStringSimplifier.$(EXT) \ simplify\TopologyPreservingSimplifier.$(EXT) \ util\Assert.$(EXT) \ util\GeometricShapeFactory.$(EXT) \ util\math.$(EXT) \ util\Profiler.$(EXT) \ linearref\ExtractLineByLocation.$(EXT) \ linearref\LengthIndexOfPoint.$(EXT) \ linearref\LengthIndexedLine.$(EXT) \ linearref\LengthLocationMap.$(EXT) \ linearref\LinearGeometryBuilder.$(EXT) \ linearref\LinearIterator.$(EXT) \ linearref\LinearLocation.$(EXT) \ linearref\LocationIndexOfLine.$(EXT) \ linearref\LocationIndexOfPoint.$(EXT) \ ..\capi\geos_c.$(EXT) \ ..\capi\geos_ts_c.$(EXT) \ inlines.$(EXT) TEST_EXE = TestSweepLineSpeed.exe ############################################################################### # Build targets GEOS_ROOT = c:\open\geos\geos-3.3.8\ default: $(LIBNAME) $(DLLNAME) $(CDLLNAME) platform: $(GEOS_ROOT)\include\geos\platform.h all: $(LIBNAME) $(DLLNAME) $(CDLLNAME) TestSweepLineSpeed.exe geostest.exe check: all TestSweepLineSpeed.exe $(LIBNAME): headers $(OBJ) if exist $(LIBNAME) del $(LIBNAME) $(LINK) /lib /out:$(LIBNAME) $(OBJ) $(DLLNAME): $(OBJ) $(LINK) /dll /debug $(OBJ) /out:$(DLLNAME) /implib:$(SLIBNAME) if exist $(DLLNAME).manifest mt -manifest $(DLLNAME).manifest -outputresource:$(DLLNAME);2 $(CDLLNAME): ..\capi\geos_c.obj ..\capi\geos_ts_c.obj $(DLLNAME) $(LINK) /dll /debug ..\capi\geos_c.obj ..\capi\geos_ts_c.obj $(LIBNAME) /out:$(CDLLNAME) /implib:$(CLIBNAME) if exist $(CDLLNAME).manifest mt -manifest $(CDLLNAME).manifest -outputresource:$(CDLLNAME);2 headers: $(CP) $(GEOS_ROOT)\include\geos\platform.h.vc $(GEOS_ROOT)\include\geos\platform.h $(CP) $(GEOS_ROOT)\include\geos\version.h.vc $(GEOS_ROOT)\include\geos\version.h $(CP) ..\capi\geos_c.h.in ..\capi\geos_c.h .cpp.obj: $(CC) $(CFLAGS) /c $*.cpp /Fo$@ {..\capi}.cpp.obj: $(CC) $(CFLAGS) /D "GEOS_DLL_EXPORT" /c $*.cpp /Fo$@ .c.obj: $(CC) $(CFLAGS) /c $*.c /Fo$@ clean: @ECHO "*** Cleaning GEOS source tree" @IF EXIST $(LIBNAME) $(RM) $(LIBNAME) @IF EXIST $(SLIBNAME) $(RM) $(SLIBNAME) @IF EXIST $(DLLNAME) $(RM) $(DLLNAME) @IF EXIST $(SLIBNAME) $(RM) $(SLIBNAME) @IF EXIST $(CLIBNAME) $(RM) $(CLIBNAME) @IF EXIST $(CDLLNAME) $(RM) $(CDLLNAME) -@del ..\capi\*.obj -@del *.exe -@del *.exp -@del *.ilk -@del *.manifest -@del *.obj -@del *.pdb -@FOR %d IN ( $(GEOS_DIRLIST) ) DO del %d\*.obj TestSweepLineSpeed.exe: $(LIBNAME) \ ..\tests\bigtest\GeometryTestFactory.obj \ ..\tests\bigtest\TestSweepLineSpeed.obj $(LINK) /debug /out:TestSweepLineSpeed.exe \ ..\tests\bigtest\TestSweepLineSpeed.obj \ ..\tests\bigtest\GeometryTestFactory.obj \ $(LIBNAME) geostest.exe: $(CDLLNAME) ..\tests\unit\capi\geostest.obj $(LINK) /debug ..\tests\unit\capi\geostest.obj $(CLIBNAME) # EOF