######################################################################## # nmake.opt - MapServer 4.x configuration for MSVC++ ######################################################################## # This VC++ configuration is used in building MAPSERVER.LIB, # MAPSERVER_I.LIB MAPSERV.EXE, and the other # MapServer command-line programs. # # To use the makefile: # - Open a DOS prompt window # - Run the VCVARS32.BAT script to initialize the VC++ environment variables # - Start the build with: nmake /f makefile.vc # # $Id$ # # Contents: # Section I: Mapserver Compilation Options # Section II: MapServer Rendering Options # Section III: MapServer Data Input Options # Section IV: MapServer OGC Options # Section V: MapScript Configuration Options # Section VI: Support Libraries # Section VII: Variable Setup # Section VIII: UMN GIS System Support # Section IX: Collect compiler flags # # The easiest way to get going is to use MSVC 2003 and the MapServer # buildkit that is available at # http://mapserver.gis.umn.edu/docs/howto/buildkit # This will provide a full set of libraries to build MapServer will almost # all of its options enabled. If you are building everything from # scratch, start by commenting out most of the options and adding them # in incrementally. ######################################################################## # Section I: Mapserver Compilation Options ######################################################################## #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Check for external options file to include # nmake -f makefile.vc EXT_NMAKE_OPT=mynmake.opt #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !IFDEF EXT_NMAKE_OPT !INCLUDE $(EXT_NMAKE_OPT) !ENDIF #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Uncomment the following if you are building for 64-bit windows # (x64). You'll need to have PATH, INCLUDE and LIB set up for 64-bit # compiles. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #WIN64=YES #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Check compiler version given in command line # nmake -f makefile.vc MSVC_VER=xxxx # 1310 = 7.1 (2003) 1400 = 8.0 (2005) 1500 = 9.0 (2008) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !IFNDEF MSVC_VER #assume msvc 9.0 MSVC_VER=1500 !ENDIF #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # File locations and where to install things # ---------------------------------------------------------------------- # If you are using the MapServer Build Kit, almost everything should be # relative to this directory throughout this option file. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Set the following to point to the directory adjacent to the dependent libs. !IFNDEF MS_BASE MS_BASE = f:\projects\mapserver-buildkit-2008\mapserver !ENDIF # Set the following to point to the current (mapserver) directory. !IFNDEF MS_CURRENT MS_CURRENT = $(MS_BASE) !ENDIF !IFNDEF BINDIR BINDIR = $(MS_BASE)\..\bin !ENDIF #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Optmization, debug, and related compile flags. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !IF $(MSVC_VER) >= 1400 !IFNDEF MS_DEBUG # Optimized, with using MSVCRT. OPTFLAGS = /nologo /Ox /MD $(WARNING_LEVEL) $(DEBUG) /EHsc /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE !ELSE # Debug with MSVCRT OPTFLAGS = /nologo /Zi /MD $(WARNING_LEVEL) $(DEBUG) /EHsc /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE #LDFLAGS = /NODEFAULTLIB:msvcrt /NODEFAULTLIB:libcd /DEBUG !ENDIF !ELSE !IFNDEF MS_DEBUG # Optimized, with using MSVCRT. OPTFLAGS = /nologo /Ox /MD $(WARNING_LEVEL) $(DEBUG) /EHsc !ELSE # Debug with MSVCRT OPTFLAGS = /nologo /Zi /MDd $(WARNING_LEVEL) $(DEBUG) /EHsc #LDFLAGS = /NODEFAULTLIB:msvcrt /NODEFAULTLIB:libcd /DEBUG !ENDIF !ENDIF # Uncomment the following to link mapserv.exe with a dll. In almost # all cases you will want to do this. DLLBUILD = 1 # Set the Warning level for the compiler (defaults to W1) WARNING_LEVEL=/W4 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Debugging Options # ---------------------------------------------------------------------- !IFDEF MS_DEBUG #NEED_NONBLOCKING_STDERR=-DNEED_NONBLOCKING_STDERR ENABLE_STDERR_DEBUG=-DENABLE_STDERR_DEBUG # Set the linker debug option LDEBUG=/debug # DEBUG Build flags # Set the DEBUG flag if you wish to make a debug build DEBUG=/DDEBUG !ENDIF #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # String methods # ---------------------------------------------------------------------- # Apparently these aren't as commonplace. Edit the # following line to reflect the missing functions on your platform. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #STRINGS=-DNEED_STRCASECMP -DNEED_STRNCASECMP -DNEED_STRDUP STRINGS=-DNEED_STRCASECMP -DNEED_STRNCASECMP -DNEED_STRLCAT -DNEED_STRRSTR -DNEED_STRCASESTR -DNEED_STRLCPY #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Threading # ---------------------------------------------------------------------- # Enable if you want thread safe locking, not needed for simple CGI. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ THREADS=-DUSE_THREAD #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Ignoring Missing Data # ---------------------------------------------------------------------- # If you want to ignore missing datafile errors uncomment the following # line. This is especially useful with large tiled datasets that may not # have complete data for each tile. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ IGNORE_MISSING_DATA=-DIGNORE_MISSING_DATA #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Measures and Z values # ---------------------------------------------------------------------- # If you want to use shape Z and M parameter this option must be set. # It's OFF by default. #USE_POINT_Z_M=-DUSE_POINT_Z_M USE_POINT_Z_M= ######################################################################## # Section II: Mapserver Rendering Configuration ######################################################################## #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # GD Library # ---------------------------------------------------------------------- # Mapserver 4.x only supports GD 2.x and greater. # GD is a required support library for MapServer 4.x. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !IFNDEF GD_DIR GD_DIR=$(MS_BASE)\..\gd-2.0.35 GD_LIB=$(GD_DIR)/gd.lib !ENDIF #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # GD JPEG support # ---------------------------------------------------------------------- # If you wish to allow JPEG output maps, uncomment the following flag. # If not using a GD build with an internal copy of libjpeg, you will # also need to uncomment JPEG_DIR and point to it; however, with BGD.DLL # this is normally not necessary. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ OUTPUT_JPEG=-DUSE_GD_JPEG JPEG_DIR=$(MS_BASE)\..\jpeg-6b #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # GD PNG support # ---------------------------------------------------------------------- # If you wish to allow PNG output maps, uncomment the following flag. # If not using a GD build with an internal copy of libpng, you will # also need to uncomment PNG_DIR and ZLIB_DIR and point to it; # however, with BGD.DLL this is normally not necessary. # See http://www.libpng.org/pub/png/libpng.html for support library. # See http://www.gzip.org/zlib/ for support library. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ OUTPUT_PNG=-DUSE_GD_PNG !IFNDEF PNG_DIR PNG_DIR=$(MS_BASE)\..\libpng-1.2.35 !ENDIF ZLIB_DIR=$(MS_BASE)\..\zlib-1.2.3 ZLIB_INC=-I$(ZLIB_DIR) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # GD GIF support # ---------------------------------------------------------------------- # Historical defines to use GIF as a result of the old Unisys patent #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ OUTPUT_GIF=-DUSE_GD_GIF -DGD_HAS_GDIMAGEGIFPTR #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # GD BMP support # ---------------------------------------------------------------------- # If you wish to allow Windows BMP output maps, # uncomment the following flag. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ OUTPUT_WBMP=-DUSE_GD_WBMP #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # GD Bitmap Font support # ---------------------------------------------------------------------- # Bitmap font support (GD 2.0.22 and greater, # see Bug 969 for more details) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GD_HAS_GETBITMAPFONT=-DGD_HAS_GETBITMAPFONT # ---------------------------------------------------------------------- # used for curved text (keyword FOLLOW for angle in label object) # GD version 2.0.29 or higher # ---------------------------------------------------------------------- GD_HAS_FTEX_XSHOW=-DGD_HAS_FTEX_XSHOW #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # GD Antialiasing support # ---------------------------------------------------------------------- # If you want antialiasing (note that It requires gd2) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ USE_GD_ANTIALIAS=-DUSE_GD_ANTIALIAS #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # GD TrueType Font support # ---------------------------------------------------------------------- # If you wish to annotate your maps with true type fonts unccomment the # following flag. Provide the full path to the FreeType 2.x external # support library, unless it is provided within your GD build as is the # case with BGD.DLL. # See http://www.freetype.org for support library. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ANNOTATION_FT=-DUSE_GD_FT !IFNDEF FT_DIR FT_DIR=$(MS_BASE)\..\freetype-2.3.9 !ENDIF #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Optional RGBA palette png output # ---------------------------------------------------------------------- # Enable support for quantization of rgba pngs #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !IFDEF PNG_DIR RGBA_PNG_ENABLED=-DUSE_RGBA_PNG !ENDIF # If you wish to use AGG # The AGG (Ant-Grain Geometry) libraray http://www.antigrain.com/ #is used in Mapserver to putput high class rendering # AGG=-DUSE_AGG EXPAT_DIR = $(MS_BASE)\..\expat-2.0.1 # If you wish to use OpenGl # #OGL=-DUSE_OGL #FTGL_DIR=$(MS_BASE)\..\ftgl-2.1.3~rc5 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Cairo renderer support # ---------------------------------------------------------------------- # Uncomment the following to build with cairo renderer support #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #CAIRO=-DUSE_CAIRO #CAIRO_DIR=$(MS_BASE)\..\cairo-thamas #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # PDF (Acrobat PDF support) # ---------------------------------------------------------------------- # If you wish to have PDF output, uncomment the following flag and # provide the full path to the PDF support library project directory. # See http://www.pdflib.com/products/pdflib/download-source.html to # download the support library. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #PDF=-DUSE_PDF #PDF_DIR=$(MS_BASE)\..\PDFlib-Lite-7.0.4p1 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # GEOS # ---------------------------------------------------------------------- # GEOS provides support for spatial predicates and overlay/buffer # operations. It can only be compiled on Windows with MSVC 7.0 or # greater (or the cygwin/mingw stack). #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #GEOS=-DUSE_GEOS #GEOS_DIR=$(MS_BASE)\..\geos-06232009 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ZLIB # ---------------------------------------------------------------------- # ZLIB is required for PNG and for SVG support to allow the output of # compressed files. If -DUSE_ZLIB is defined, you essentially have all # you need for SVG output support #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ZLIB=-DUSE_ZLIB ZLIB_DIR=$(MS_BASE)\..\zlib-1.2.3 ZLIB_INC=-I$(ZLIB_DIR) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ICONV # ---------------------------------------------------------------------- #libiconv support is used for to support double bytes (see bug 911). #uncomment the following to build with libiconv support. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #ICONV=-DUSE_ICONV #ICONV_DIR=$(MS_BASE)\..\libiconv-1.9.1 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # GIFLIB # ---------------------------------------------------------------------- # Uncomment the following to build with giflib support #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #GIF=-DUSE_GIF #GIFLIB_DIR=$(MS_BASE)\..\giflib-4.1.4 #GIFLIB_INC=-I$(GIFLIB_DIR)\include ######################################################################## # Section III: Mapserver Data Input Configuration ######################################################################## #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # GDAL # ---------------------------------------------------------------------- # The lite version of mapserver 4.x supports only GIF, PNG and JPEG data # for input. If you wish to support many geospatial raster formats # for input you will need the GDAL support library from # http://www.gdal.org/. Once built, enable the GDAL flag, and point # GDAL_DIR to the directory where GDAL was built. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #GDAL=-DUSE_GDAL #GDAL_DIR=$(MS_BASE)\..\gdal_1_7_0 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # OGR # ---------------------------------------------------------------------- # The OGR library (part of GDAL) supports a variety of geospatial vector # formats including mapinfo, Arc/Info binary coverages, S-57, SDTS, # Microstation DGN (pre-v7), TIGER, UK .NTF. It also include support # for treating non-spatial tablular data from ODBC, CSV, MySQL, # Oracle Spatial, and PostgreSQL as spatial table with use of the # VRT (virtual) driver. # # NOTE: Both -DUSE_OGR and -DUSE_GDAL need to be defined if you # want to use GDAL/OGR for both raster and vector support, but GDAL_DIR # needs only be defined once. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #OGR=-DUSE_OGR #GDAL_DIR=$(MS_BASE)\..\gdal_1_7_0 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # JPEG Input # ---------------------------------------------------------------------- # JPEG input for raster layers is also available through GDAL, If you wish # to build support for JPEG without GDAL, uncomment the following flag # and provide the full path to the jpeg support library project directory. # See http://www.ijg.org/ for support library. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ JPEG=-DUSE_JPEG JPEG_DIR=$(MS_BASE)\..\jpeg-6b JPEG_INC = -I$(JPEG_DIR) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Direct connectivity to Postgresql PostGIS. # ---------------------------------------------------------------------- # To turn on direct connectivity to Postgresql PostGIS uncomment the following # flag and set the full path name to the project directory for the # Postgresql native Win32 client library. # See http://www.postgresql.org for support library. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #POSTGIS =-DUSE_POSTGIS #POSTGIS_DIR =$(MS_BASE)\..\postgresql-8.3.7 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Direct connectivity to Oracle Spatial. # ---------------------------------------------------------------------- # Point this to where your ORACLE_HOME directory lives. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #ORACLE_DIR = $(MS_BASE)\..\oracle-11.1.0.7.0 #ORACLE=-DUSE_ORACLESPATIAL #ORACLE=-DUSE_ORACLE_PLUGIN #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Direct connectivity to ESRI ArcSDE. # ---------------------------------------------------------------------- # To turn on direct connectivity to ArcSDE uncomment the following # flags and set the full path name to the project directory for ArcSDE. # The support library for ArcSDE (the ArcSDE C API/SDK) is typically # only available for those with a full license of ArcSDE. It is not # available for download. # Either set USE_SDE or USE_SDE_PLUGIN, not both. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #SDE_OPT=-DUSE_SDE #SDE_OPT= -DUSE_SDE_PLUGIN #SDE_VERSION = 91 #SDE_DIR = f:\projects\sde9.1 #SDE_INC = -I$(SDE_SDK)\include #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Direct connectivity to SQL Server # ---------------------------------------------------------------------- # To turn on direct connectivity to SQL Server uncomment the following # flag. You then need to set the ODBC_INC path later as well to the # Windows SDK include path. The SQL Server 2008 driver can only be # built and used as a plugin. See RFC 38 for more details. The ODBC # libs and includes must be set to be able to build the plugin. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #MSSQL2008 = YES #ODBC_DIR="C:\progra~1\micros~1.net\vc7\platformsdk" #ODBC_DIR="C:\Program Files\Microsoft SDKs\Windows\v6.0A" #ODBC_LIBS=$(ODBC_DIR)\lib\odbc32.lib $(ODBC_DIR)\lib\odbccp32.lib $(ODBC_DIR)\lib\user32.lib #ODBC_INC=-I$(ODBC_DIR)\include #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # EPPL7 Support # ---------------------------------------------------------------------- # This activates ERDAS as well. It is included in the distribution. # Probably the best raster alternative if you've got EPPL7 laying # around. See http://www.lmic.state.mn.us/ for more information. # Uncomment out the following flag and set the full path name to the # epplib.obj file. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #EPPL=-DUSE_EPPL #EPPL_OBJ=c:/my_path/epplib.obj # ---------------------------------------------------------------------- # Use of fribidi # GNU FriBidi is an implementation of the Unicode Bidirectional Algorithm (bidi). # http://fribidi.freedesktop.org/wiki/ # Unncomment out the following flags to build with fribidi #--------------------------------------------------------------------- #FRIBIDI=-DUSE_FRIBIDI #FRIBIDI_DIR=$(MS_BASE)\..\fribidi-0.19.1 # ---------------------------------------------------------------------- # Enable KML support #---------------------------------------------------------------------- #KML=-DUSE_KML ######################################################################## # Section IV: Mapserver OGC Configuration ######################################################################## #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # WMS Server # ---------------------------------------------------------------------- #WMS=-DUSE_WMS_SVR #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # WMS Client # ---------------------------------------------------------------------- # Use this flag to compile with WMS Client support. WMS Client support # allows you to pull layers from other OGIS WMS servers on the interent and # incorporate them into your map. # To find out more about the OpenGIS Web Map Server Specification go to # http://www.opengis.org/ # you need the libcurl library from http://curl.haxx.se/library/c/ # Set the full path to the curl project directory. # You may also need to the full path to the windows socket library. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #WMSCLIENT= -DUSE_WMS_LYR #CURL=-DUSE_CURL #CURL_DIR=$(MS_BASE)\..\curl-7.19.4 #WINSOCK_LIB ="C:\Program Files\Microsoft SDKs\Windows\v6.1\Lib\WS2_32.Lib" #WINSOCK_LIB ="C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\WS2_32.Lib" #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # WFS Client # ---------------------------------------------------------------------- # Use -DUSE_WFS_LYR to compile with WFS client support, requires libcurl #WFSCLIENT= -DUSE_WFS_LYR #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # WFS Server # ---------------------------------------------------------------------- # Use -DUSE_WFS_SVR to compile with WFS server # support, requires OGR and PROJ4 #WFS=-DUSE_WFS_SVR -DWFS_USE_LIBXML2 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # WCS Server # ---------------------------------------------------------------------- # Use -DUSE_WCS_SVR to compile with WCS server support, requires GDAL. #WCS=-DUSE_WCS_SVR #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # OGC SOS # ---------------------------------------------------------------------- # Use -DUSE_OGC_SOS to compile with SOS, needs USE_WMS_SVR or #USE_WFS_SVR enabled so the the gml functions to be enabled #It also needs ICONV support since the libxml windows binaries #are built with it #http://xmlsoft.org/index.html #SOS=-DUSE_SOS_SVR #XML2_ENABLED=-DUSE_LIBXML2 #LIBXML_DIR=$(MS_BASE)\..\libxml2-2.7.3.win32 ######################################################################## # Section V: MapScript Configuration Options. ######################################################################## #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # SWIG location # ---------------------------------------------------------------------- # SWIG is required to *generate* the C/C++ code that creates the # bindings to various languages. You can download a pre-built binary # for SWIG at http://www.swig.org. NOTE: The PHP bindings are *not* # generated with SWIG at this time. If you use this makefile to # make any MapScript bindings, eg. "nmake /f makefile.vc python", you # will need to have SWIG installed. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #SWIG = $(MS_BASE)\..\SWIG-1.3.39\swig #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Java MapScript # ---------------------------------------------------------------------- # Java MapScript very likely requires USE_THREAD to be defined. It is # known to work with both JDK 1.5 and JDK 1.4 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #JAVA_HOME = "C:\Progra~1\Java\jdk1.5.0" #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Python MapScript # ---------------------------------------------------------------------- # Python MapScript very likely requires USE_THREAD to be defined. # Python 2.2 and above are supported. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #PYTHON_HOME = "$(MS_BASE)\..\Python-2.6.2" #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # PHP MapScript # ---------------------------------------------------------------------- # The PHP_REGEX hack allows you to use PHP's regex system rather than # the normal GNU regex library. This should normally not be needed. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #PHP_HOME = $(MS_BASE)\..\php-5.3.1 #PHP_REGEX=1 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # .NET/C# MapScript # ---------------------------------------------------------------------- # .NET will of course only work with MSVC 7.0 and 7.1. Also note that # you will definitely want USE_THREAD defined. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #DOT_NET = YES ######################################################################## # Section VI: Support Libraries. ######################################################################## #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Proj.4 # ---------------------------------------------------------------------- # If you would like mapserver to be able to reproject data from one # geographic projection to another, uncomment the following flag # Proj.4 distribution (cartographic projection routines). PROJ.4 is # also required for all OGC services (WMS, WFS, and WCS). #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #PROJ=-DUSE_PROJ -DUSE_PROJ_API_H #PROJ_DIR=$(MS_BASE)\..\proj-svn-04222009 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # REGEX Libary # ---------------------------------------------------------------------- # VC++ does not include the REGEX library... so we must provide our one. # The following definitions will try to build GNU regex-0.12 located in the # regex-0.12 sub-directory. # If it was not included in the source distribution, then you can get it from: # ftp://ftp.gnu.org/pub/gnu/regex/regex-0.12.tar.gz # Provide the full path to the REGEX project directory # You do not need this library if you are compiling for PHP mapscript. # In that case the PHP regex library will be used instead #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !IFNDEF PHP_REGEX !IFNDEF REGEX_DIR REGEX_DIR=$(MS_BASE)\..\regex-0.12 !ENDIF !ENDIF #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # FastCGI Support # ---------------------------------------------------------------------- # Uncomment, and update accordingly. #FCGIDEF=-DUSE_FASTCGI #FCGIDIR=$(MS_BASE)\..\fcgi-2.4.0 ######################################################################## # Section VII: Variable Setup ######################################################################## # Should not need to be updated. ######################################################################## MS_LIB = mapserver.lib MS_LIB_DLL = mapserver_i.lib # Proj.4 include and library !IFDEF PROJ_DIR PROJ_INC=-I$(PROJ_DIR)/src PROJ_LIB=$(PROJ_DIR)/src/proj_i.lib !ENDIF # CURL include and library !IFDEF WMSCLIENT CURL_INC = -I$(CURL_DIR)/include CURL_LIB = $(CURL_DIR)/lib/libcurl_imp.lib !ENDIF # LIBXML include and library !IFDEF SOS LIBXML_INC = -I$(LIBXML_DIR)/include LIBXML_LIB = $(LIBXML_DIR)/lib/libxml2.lib !ENDIF # Set the jpeg library !IFDEF JPEG_DIR JPEG_LIB=$(JPEG_DIR)/libjpeg.lib !ENDIF # Set the png support libaries !IFDEF PNG_DIR !IFNDEF PNG_LIB PNG_LIB=$(PNG_DIR)\projects\visualc71\Win32_LIB_Release\libpng.lib $(ZLIB_DIR)/zlib1.lib !ENDIF PNG_INC=-I$(PNG_DIR) !ENDIF !IFDEF GEOS_DIR GEOS_LIB=$(GEOS_DIR)/source/geos_c_i.lib GEOS_INC=-I$(GEOS_DIR)/source/headers -I$(GEOS_DIR)/capi -I$(GEOS_DIR)/source/capi !ENDIF # Set the FreeType library !IFDEF FT_DIR !IFNDEF FT_LIB FT_LIB=$(FT_DIR)/objs/win32/vc2008/freetype239.lib !ENDIF !ENDIF # GD include and library GD_INC= -I$(GD_DIR) GD_LIBS= $(GD_LIB) $(JPEG_LIB) $(PNG_LIB) $(FT_LIB) GD= $(OUTPUT_PNG) $(OUTPUT_JPEG) $(OUTPUT_WBMP) $(OUTPUT_GIF) $(ANNOTATION_FT) $(GD_HAS_GETBITMAPFONT) $(GD_HAS_FTEX_XSHOW) # Tiff library on input !IFDEF TIFF TIFF_INC=-I$(TIFF_DIR)/libtiff TIFF_LIB=$(TIFF_DIR)/libtiff/libtiff.lib !ENDIF # JPEG library on input !IFDEF JPEG_DIR JPEG_LIB=$(JPEG_DIR)/libjpeg.lib !ENDIF # Setup GDAL includes and libraries !IFDEF GDAL GDAL_INC = -I$(GDAL_DIR)/gcore -I$(GDAL_DIR)/alg -I$(GDAL_DIR)/ogr -I$(GDAL_DIR)/port GDAL_LIB = $(GDAL_DIR)/gdal_i.lib !ENDIF # Setup OGR includes and libraries !IFDEF OGR OGR_INC = -I$(GDAL_DIR)/ogr/ogrsf_frmts -I$(GDAL_DIR)/ogr -I$(GDAL_DIR)/port OGR_LIB = $(GDAL_DIR)/gdal_i.lib !ENDIF # Setup ESRI SDE support. !IFDEF SDE_OPT SDE_INC=-I$(SDE_DIR)/include !IF "$(SDE_OPT)" != "-DUSE_SDE_PLUGIN" SDE_LIB = $(SDE_DIR)\lib\pe$(SDE_VERSION).lib \ $(SDE_DIR)\lib\sde$(SDE_VERSION).lib \ $(SDE_DIR)\lib\sg$(SDE_VERSION).lib !ELSE SDE_LIB = !ENDIF !ENDIF # Setup REGEX object and includes !IFNDEF PHP_REGEX REGEX_OBJ=$(REGEX_DIR)\regex.obj REGEX_INC=-I$(REGEX_DIR) !ELSE REGEX_OBJ=$(PHP_HOME)\ext\ereg\regex\regcomp.obj $(PHP_HOME)\ext\ereg\regex\regerror.obj \ $(PHP_HOME)\ext\ereg\regex\regexec.obj $(PHP_HOME)\ext\ereg\regex\regfree.obj REGEX_INC=-I$(PHP_HOME)/ext/ereg/regex -DPHP_NO_ALIASES !ENDIF # REGEX needs some special flags... here they are for VC++ 6.0 REGEX_OPT=-DHAVE_STRING_H -DREGEX_MALLOC # Setup Postgesql PostGIS includes and libs !IFDEF POSTGIS !IFNDEF PHP_BUILD_CALL # If we're building PHP MapScript, there is a macro conflict POSTGIS_INC=-I$(POSTGIS_DIR)/src/interfaces/libpq -I$(POSTGIS_DIR)/src/include !ENDIF POSTGIS_LIB=$(POSTGIS_DIR)/src/interfaces/libpq/release/libpqdll.lib !ENDIF # Setup OGL !IFDEF OGL OGL_INC= -I$(FTGL_DIR)\src OGL_LIB= $(FTGL_DIR)\msvc\build\ftgl_static.lib opengl32.lib glu32.lib user32.lib gdi32.lib !ENDIF # Setup CAIRO !IFDEF CAIRO CAIRO_INC= -I$(CAIRO_DIR)\src CAIRO_LIB= $(CAIRO_DIR)\src\cairo.lib !ENDIF # Setup EXPAT !IFDEF EXPAT_DIR EXPAT_INC = -I$(EXPAT_DIR)\source\lib EXPAT_LIB = $(EXPAT_DIR)\bin\libexpat.lib !ENDIF # Set the GIFLIB library !IFDEF GIFLIB_DIR GIFLIB_LIB=$(GIFLIB_DIR)\lib\giflib.lib !ENDIF # Setup AGG !IFDEF AGG AGG_INC=-I$(FT_DIR)\include -Irenderers\agg\include AGG_OBJ=renderers\agg\src\agg_arc.obj renderers\agg\src\agg_curves.obj renderers\agg\src\agg_vcgen_contour.obj \ renderers\agg\src\agg_vcgen_dash.obj renderers\agg\src\agg_vcgen_stroke.obj renderers\agg\src\agg_image_filters.obj \ renderers\agg\src\agg_line_aa_basics.obj renderers\agg\src\agg_line_profile_aa.obj \ renderers\agg\src\agg_sqrt_tables.obj renderers\agg\src\agg_embedded_raster_fonts.obj \ renderers\agg\src\agg_trans_affine.obj renderers\agg\src\agg_vpgen_clip_polygon.obj \ renderers\agg\src\agg_vpgen_clip_polyline.obj renderers\agg\src\agg_font_freetype.obj \ renderers\agg\src\agg_svg_parser.obj renderers\agg\src\agg_svg_path_renderer.obj \ renderers\agg\src\agg_svg_path_tokenizer.obj renderers\agg\src\clipper.obj !ENDIF # Setup PDF includes and libs !IFDEF PDF PDF_LIB=$(PDF_DIR)/libs/pdflib/Release_DLL/pdflib.lib PDF_INC=-I$(PDF_DIR)/libs/pdflib !ENDIF # Oracle support. !IFDEF ORACLE ORACLE_INC=-I$(ORACLE_DIR)/include !IF "$(ORACLE)" != "-DUSE_ORACLE_PLUGIN" ORACLE_LIB=$(ORACLE_DIR)\lib\msvc\ociw32.lib $(ORACLE_DIR)/lib/msvc/oci.lib !ELSE ORACLE_LIB = !ENDIF !ENDIF #libiconv support !IFDEF ICONV ICONV_LIB=$(ICONV_DIR)\lib\iconv.lib ICONV_INC= -I$(ICONV_DIR)\include !ENDIF #fcgi support !IFDEF FCGIDEF FCGILIB=$(FCGIDIR)\libfcgi\Release\libfcgi.lib FCGIINC=-I$(FCGIDIR)\include !ENDIF #fribidi support !IFDEF FRIBIDI FRIBIDI_INC=-I$(FRIBIDI_DIR)\lib -I$(FRIBIDI_DIR)\charset FRIBIDI_LIB=$(FRIBIDI_DIR)\fribidi.lib !ENDIF ######################################################################## # Section VIII: UMN GIS System Support ######################################################################## # Should not need to be updated. ######################################################################## # # UofMN GIS/Image Processing Extension (very experimental) # #EGIS=-DUSE_EGIS !IFDEF EGIS ERR_DIR=c:/my_path_to/errLog ERR_OBJ=$(ERR_DIR)/errLog.o ERR_INC=-I$(ERR_DIR) ERR_LIB=-L$(ERR_DIR) -lerrLog IMGGEN_DIR=c:/my_path_to/imgSrc IMGGEN_OBJ=$(IMGGEN_DIR)/imgLib.o IMGGEN_INC=-I$(IMGGEN_DIR) IMGGEN_LIB=-L$(IMGGEN_DIR) -limgGEN !ENDIF ######################################################################## # Section IX: Collect compiler flags ######################################################################## # Should not need to be updated. ######################################################################## !IFNDEF EXTERNAL_LIBS EXTERNAL_LIBS=$(GD_LIBS) $(TIFF_LIB) $(JPEG_LIB) \ $(PROJ_LIB) $(OGR_LIB) $(GDAL_LIB)\ $(CURL_LIB) $(PDF_LIB) \ $(WINSOCK_LIB) $(POSTGIS_LIB) $(IMGGEN_LIB) $(ERR_LIB) \ $(ORACLE_LIB) $(SDE_LIB) $(ICONV_LIB) $(FCGILIB) $(GEOS_LIB) \ $(LIBXML_LIB) $(EXPAT_LIB) $(OGL_LIB) $(CAIRO_LIB) $(FRIBIDI_LIB) $(GIFLIB_LIB) !ENDIF LIBS=$(MS_LIB) $(EXTERNAL_LIBS) LIBS_DLL=$(MS_LIB_DLL) $(EXTERNAL_LIBS) !IFNDEF INCLUDES INCLUDES=$(GD_INC) $(TIFF_INC) $(JPEG_INC) \ $(PROJ_INC) $(REGEX_INC) $(GDAL_INC) $(OGR_INC) \ $(CURL_INC) $(PDF_INC) $(POSTGIS_INC) \ $(IMGGEN_INC) $(ERR_INC) $(ORACLE_INC) $(SDE_INC)\ $(ICONV_INC) $(FCGIINC) $(GEOS_INC) $(ZLIB_INC) $(LIBXML_INC) \ $(AGG_INC) $(EXPAT_INC) $(OGL_INC) $(CAIRO_INC) $(PNG_INC) $(FRIBIDI_INC) $(GIFLIB_INC) !ENDIF MS_DEFS = $(REGEX_OPT) $(STRINGS) $(POSTGIS) \ $(EPPL) $(PROJ) $(TIFF) $(JPEG) $(GD) $(OGR) $(WMS) $(THREADS) \ $(WMSCLIENT) $(IGNORE_MISSING_DATA) \ $(NEED_NONBLOCKING_STDERR) $(ENABLE_STDERR_DEBUG) \ $(USE_POINT_Z_M) $(GDAL) $(FCGIDEF) \ $(WFS) $(WFSCLIENT) $(WCS) $(PDF) $(EGIS) \ $(USE_GD_ANTIALIAS) $(ORACLE) \ $(SDE_OPT) $(ICONV) $(GEOS) $(ZLIB) $(SOS) $(XML2_ENABLED) $(AGG) \ $(OGL) $(CAIRO) $(RGBA_PNG_ENABLED) $(FRIBIDI) $(KML) $(GIF) $(CURL) !IFDEF WIN64 MS_CFLAGS=$(INCLUDES) $(MS_DEFS) -DWIN32 -D_WIN32 -DUSE_GENERIC_MS_NINT !ELSE MS_CFLAGS=$(INCLUDES) $(MS_DEFS) -DWIN32 -D_WIN32 !ENDIF