# # 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 ############################################################################### # # Modifications: # 2012-07-30 by RMWChaos # Modified to support "NMake install-all \ uninstall" # # 2012-07-31 by RMWChaos # Modified install-all to rename geos_c_i.lib to geos_c.lib; libs are now # installed individually rather than by *.lib to allow for rename. # Modified uninstall to remove geos_c.lib instead of geos_c_i.lib. ############################################################################### # # Notes: # 1. Bear in mind first and foremost: I have no clue what I'm doing here! -RMW # # 2. Missing geos/src/triangulate directory in svn_trunk. If build fails with # "fatal error U1073: don't know how to make 'triangulate\ # DelaunayTriangulationBuilder.obj' ... ", then copy geos/src/triangulate # directory from a nightly snapshot to geos/src/. -RMW # # 3. Not 100% sure of all the files that should be installed during a windows # build; so I guessed based on a mingw build and replaced .a, .dll.a files # with .lib files. Hopefully, I haven't missed anything, but I know that I # probably got some extra things that aren't needed for install. - RMW ############################################################################### # # TO DO: # 1. OUT_DIR not yet supported (is this satisfied with these changes? -RMW) # # 2. NMake check not yet supported (need more info on how to run tests -RMW) # # 3. Create NMakeCache.txt file to store PREFIX during build for install-all # and uninstall steps (similar to CmakeCache.txt). Currently, PREFIX must # be passed to each step individually or it will default to GEOS_ROOT\build, # and uninstall PREFIX must mach install-all PREFIX to work. -RMW ############################################################################### # # Flags that can be set on the nmake command line: # MFLAGS={-ML|-MT|-MD} for defining the compilation model # MFLAGS=-ML (default) Single-threaded, statically linked - libc.lib # MFLAGS=-MT Multi-threaded, statically linked - libcmt.lib # MFLAGS=-MD Multi-threaded, dynamically linked - msvcrt.lib # DEBUG = 1 for compiling with debugging information ############################################################################### ############################################################################### # Directories used by NMake: # Default build directories may override plans for $(OUT_DIR). -RMW GEOS_ROOT = .. # Default build directory... !if !defined(PREFIX) PREFIX = $(GEOS_ROOT)\build !endif # Default executable build directory (same as default build dir)... !if !defined(EXEC_PREFIX) EXEC_PREFIX = $(PREFIX) !endif BINDIR = $(EXEC_PREFIX)\bin INCDIR = $(PREFIX)\include LIBDIR = $(PREFIX)\lib DATADIR = $(INCDIR)\geos INSDIR = $(BINDIR) $(INCDIR) $(LIBDIR) $(DATADIR) # Output location: #OUT_DIR = $(GEOS_ROOT)\bin ############################################################################### # Includes: (are either win32.make or ntwin32.mak required anymore?) -RMW #!INCLUDE !INCLUDE !INCLUDE $(GEOS_ROOT)\nmake.opt !INCLUDE dirlist.mk ############################################################################### # Programs used by "make install": # These can all probably be placed in ..\nmake.opt instead. -RMW TEST_EXE = TestSweepLineSpeed.exe GTEST_EXE = geotest.exe MAKE = nmake LN = link INSTALL = copy CP = copy CC = cl CXX = cl -TP RM = del RN = ren MK = mkdir RD = rmdir ############################################################################### # Set flags: # These can all probably be placed in nmake.opt instead. -RMW !if !defined(DEBUG) DEBUG = 0 !endif !if !defined(MFLAGS) MFLAGS = -ML !endif ############################################################################### # 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\GeometryNoder.$(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) \ triangulate\DelaunayTriangulationBuilder.$(EXT) \ triangulate\IncrementalDelaunayTriangulator.$(EXT) \ triangulate\quadedge\LastFoundQuadEdgeLocator.$(EXT) \ triangulate\quadedge\LocateFailureException.$(EXT) \ triangulate\quadedge\QuadEdge.$(EXT) \ triangulate\quadedge\QuadEdgeLocator.$(EXT) \ triangulate\quadedge\QuadEdgeSubdivision.$(EXT) \ triangulate\quadedge\TrianglePredicate.$(EXT) \ triangulate\quadedge\TriangleVisitor.$(EXT) \ triangulate\quadedge\Vertex.$(EXT) \ util\Assert.$(EXT) \ util\GeometricShapeFactory.$(EXT) \ util\Interrupt.$(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) \ $(GEOS_ROOT)\capi\geos_c.$(EXT) \ $(GEOS_ROOT)\capi\geos_ts_c.$(EXT) \ inlines.$(EXT) ############################################################################### # Build targets: default: all all: $(LIBNAME) $(DLLNAME) $(CDLLNAME) $(LIBNAME): $(GEOS_ROOT)\include\geos\platform.h \ $(GEOS_ROOT)\include\geos\version.h \ $(GEOS_ROOT)\capi\geos_c.h $(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): $(GEOS_ROOT)\capi\geos_c.obj \ $(GEOS_ROOT)\capi\geos_ts_c.obj $(DLLNAME) $(LINK) /dll /debug $(GEOS_ROOT)\capi\geos_c.obj \ $(GEOS_ROOT)\capi\geos_ts_c.obj \ $(LIBNAME) /out:$(CDLLNAME) /implib:$(CLIBNAME) if exist $(CDLLNAME).manifest mt -manifest \ $(CDLLNAME).manifest -outputresource:$(CDLLNAME);2 $(GEOS_ROOT)\include\geos\platform.h: $(GEOS_ROOT)\include\geos\platform.h.vc $(CP) $(GEOS_ROOT)\include\geos\platform.h.vc \ $(GEOS_ROOT)\include\geos\platform.h $(GEOS_ROOT)\include\geos\version.h: $(GEOS_ROOT)\include\geos\version.h.vc if not exist $(GEOS_ROOT)\include\geos\version.h \ $(CP) $(GEOS_ROOT)\include\geos\version.h.vc \ $(GEOS_ROOT)\include\geos\version.h # geos_c.h should already be in distribution; else run './configure' to create $(GEOS_ROOT)\capi\geos_c.h: $(GEOS_ROOT)\capi\geos_c.h.in $(CP) $(GEOS_ROOT)\capi\geos_c.h.in $(GEOS_ROOT)\capi\geos_c.h .cpp.obj: $(CC) $(CFLAGS) /c $*.cpp /Fo$@ {$(GEOS_ROOT)\capi}.cpp.obj: $(CC) $(CFLAGS) /D "GEOS_DLL_EXPORT" /c $*.cpp /Fo$@ .c.obj: $(CC) $(CFLAGS) /c $*.c /Fo$@ $(TEST_EXE): $(LIBNAME) \ $(GEOS_ROOT)\tests\bigtest\GeometryTestFactory.obj \ $(GEOS_ROOT)\tests\bigtest\TestSweepLineSpeed.obj $(LN) /debug /out:$(TEST_EXE) \ $(GEOS_ROOT)\tests\bigtest\TestSweepLineSpeed.obj \ $(GEOS_ROOT)\tests\bigtest\GeometryTestFactory.obj \ $(LIBNAME) # There's no $(GEOS_ROOT)\tests\unit\capi\geostest.obj; so this fails -RMW $(GTEST_EXE): $(CDLLNAME) \ $(GEOS_ROOT)\tests\unit\capi\geostest.obj $(LN) /debug $(GEOS_ROOT)\tests\unit\capi\geostest.obj $(CLIBNAME) 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) $(RM) $(GEOS_ROOT)\capi\*.obj $(RM) *.exe $(RM) *.exp $(RM) *.ilk $(RM) *.manifest $(RM) *.obj $(RM) *.pdb -@FOR %d IN ($(GEOS_DIRLIST)) DO $(RM) %d\*.obj @ECHO "*** GEOS source tree is now clean ***" install-all: all @ECHO "*** Installing all to $(PREFIX) ***" -@FOR %d IN ($(INSDIR)) DO $(MK) %d -@FOR %d IN ($(GEOS_DIRLIST)) DO $(MK) $(DATADIR)\%d -@FOR %d IN ($(GEOS_DIRLIST)) DO $(CP) $(GEOS_ROOT)\include\geos\%d\*.h $(DATADIR)\%d -@FOR %d IN ($(GEOS_DIRLIST)) DO $(CP) $(GEOS_ROOT)\include\geos\%d\*.inl $(DATADIR)\%d $(CP) $(GEOS_ROOT)\src\geos.lib $(LIBDIR) $(CP) $(GEOS_ROOT)\src\geos_i.lib $(LIBDIR) $(CP) $(GEOS_ROOT)\src\geos_c_i.lib $(LIBDIR)\geos_c.lib $(CP) $(GEOS_ROOT)\src\*.dll $(BINDIR) $(CP) $(GEOS_ROOT)\capi\*.h $(INCDIR) $(CP) $(GEOS_ROOT)\include\*.h $(INCDIR) $(CP) $(GEOS_ROOT)\include\geos\*.h $(DATADIR) @ECHO "*** GEOS is now installed to $(PREFIX) ***" uninstall: @ECHO "*** Uninstalling from $(PREFIX) ***" @IF NOT EXIST $(PREFIX) ECHO "****************************************" @IF NOT EXIST $(PREFIX) ECHO "*** Cannot find geos install path. ***" @IF NOT EXIST $(PREFIX) ECHO "*** Retry with 'PREFIX=' where ***" @IF NOT EXIST $(PREFIX) ECHO "*** is the geos install path. ***" @IF NOT EXIST $(PREFIX) ECHO "****************************************" $(RM) $(BINDIR)\geos.dll $(RM) $(BINDIR)\geos_c.dll $(RM) $(INCDIR)\geos.h $(RM) $(INCDIR)\geos_c.h $(RM) $(INCDIR)\acconfig.h $(RM) $(LIBDIR)\geos.lib $(RM) $(LIBDIR)\geos_i.lib $(RM) $(LIBDIR)\geos_c.lib $(RD) /s /q $(DATADIR) @ECHO "*** GEOS has been uninstalled from $(PREFIX) ***" #check: all $(TEST_EXE) $(GTEST_EXT) check: @ECHO "*** No tests for 'NMake check' yet ***' # EOF