# # nmake.opt - MapServer 4.x configuration for MSVC++ # # This VC++ configuration is used in building MAPSERVER.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 Options (you may want to edit) # Section II: Support Libraries (you must edit) # Section III: Debug Flags (no need to edit) # Section IV: Variable Setup (should not need to edit) # Section V: UMN GIS System Setup (should not need to edit) # Section VI: Collect compiler flags # ######################################################################## # Section I: Mapserver Options ######################################################################## # Uncomment the following to link mapserv.exe withh dll DLLBUILD=1 # Set the following to point to the current directory. MS_BASE = C:\projects\mapserver # Optmization and related compile flags. # Optimized, with using MSVCRT. OPTFLAGS = /nologo /MD $(WARNING_LEVEL) $(DEBUG) #LDFLAGS = /NODEFAULTLIB:msvcrt /NODEFAULTLIB:libcd /DEBUG # Debug with MSVCRT #OPTFLAGS = /nologo /Zi /MD $(WARNING_LEVEL) $(DEBUG) # Optimized, with LIBC. #OPTFLAGS = /nologo $(WARNING_LEVEL) $(DEBUG) # Input raster format options: # # 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=c:\projects\gdal-1.2.5 # # Input vector format options # # The lite version of Mapserver 4.x only suports ESRI shapefiles for input. # # 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=c:\projects\gdal-1.2.5 # 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=c:/projects/libjpeg # Output format options: # 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 # that is not necessary. OUTPUT_JPEG=-DUSE_GD_JPEG #JPEG_DIR=c:/projects/libjpeg # 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 that is 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 #PNG_DIR=c:/projects/libpng-1.2.7 #ZLIB_DIR=c:/projects/zlib-1.2.1 # If you wish to allow Windows BMP output maps, uncomment the following flag. OUTPUT_WBMP=-DUSE_GD_WBMP # If you wish to have FLASH output, uncomment the following flag and provide # the full path to the MING support library project directory. # See http://ming.sourceforge.net/ for support library. #MING=-DUSE_MING_FLASH #MING_DIR=c:/projects/ming-0.3beta1 # 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/ for support library. #PDF=-DUSE_PDF #PDF_DIR=c:/projects/pdflib-6.0.0 # Annotation fonts. # # 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 #FT_DIR=c:/projects/freetype-2.1.3 # 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 =c:/projects/libpq #Orcale #ORACLE_DIR = c:\Oracle\Ora81 #ORACLE=-DUSE_ORACLESPATIAL # Direct connectivity to ArcSDE. # # To turn on direct connectivity to ArcSDE uncomment the following # flag and set the full path name to the project directory for ArcSDE. # Since ESRI includes the version number in the name of their libraries # you may need to change that number in Section III of this configuration # file. # See http://www.esri.com/software/arcgis/arcinfo/arcsde/index.html for # support library # # To include experimental SDE_RASTER support, include "-DUSE_SDERASTER" in the # SDE_OPT. # #SDE_OPT=-DUSE_SDE -DWIN32 #SDE_DIR=c:/my_path_to/arcsde # 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 # 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 # 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= #NEED_NONBLOCKING_STDERR=-DNEED_NONBLOCKING_STDERR ENABLE_STDERR_DEBUG=-DENABLE_STDERR_DEBUG # If you want antialiasing (note that It requires gd2) USE_GD_ANTIALIAS=-DUSE_GD_ANTIALIAS # Enable if you want thread safe locking, not needed for simple CGI. #THREADS=-DUSE_THREAD # Use this flag to compile with WMS Server support. # To find out more about the OpenGIS Web Map Server Specification go to # http://www.opengis.org/ #WMS=-DUSE_WMS_SVR # 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_DIR=c:/projects/curl-7.10.2 #CURL_DIR=c:/projects/curl-7.10.7 #WINSOCK_LIB = "WSOCK32.LIB" #WINSOCK_LIB = "C:\Program Files\Microsoft Visual Studio\VC98\Lib\WSOCK32.LIB" # Use -DUSE_WFS_SVR to compile with WFS server support, requires OGR and PROJ4 #WFS=-DUSE_WFS_SVR # Use -DUSE_WFS_LYR to compile with WFS client support, requires libcurl #WFSCLIENT= -DUSE_WFS_LYR # Use -DUSE_WCS_SVR to compile with WCS server support, requires GDAL. #WCS=-DUSE_WCS_SVR #libiconv support is used for to support double bytes (see bug 911). #uncomment the following to build with libiconv support. #ICONV=-DUSE_ICONV # # Reprojecting. # 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). # # For PROJ_DIR use full path to Proj.4 distribution #PROJ=-DUSE_PROJ -DUSE_PROJ_API_H #PROJ_DIR=c:\projects\proj-4.4.9 # PHP Mapscript. # If you plan to build PHP mapscript uncomment the following flag and # set the full path to the PHP project directory #PHP=1 #PHP_DIR=c:\projects\php-4.3.4 # 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 ######################################################################## # Section II: External Support Libraries ######################################################################## # You will need to set the paths to various support library projects # that you have compiled. ######################################################################## # GD Library. # # Mapserver 4.x only supports GD 2.x and greater. # Sorry no more GIF support. If you need GIF support you will # need to run Mapserver 3.6.x with GD 1.2. # GD is a required support library for MapServer 4.x. # Enter the full path to your GD 2.x project directory # Note : A patched version of GD that supports GIF, JPEG, PNG and WBMP can be # downloaded from http://www.rime.com.au/gd/. If you are using this library, #you should uncomment the following line OUTPUT_GIF=-DUSE_GD_GIF -DGD_HAS_GDIMAGEGIFPTR GD_DIR=c:/projects/gdwin32 GD_LIB=$(GD_DIR)/bgd.lib #if the GD version you are using is above GD 2.0.22, uncomment the following flag to #have a proper support for bitmap fonts (see Bug 969 for more details) GD_HAS_GETBITMAPFONT=-DGD_HAS_GETBITMAPFONT # 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_DIR=c:\projects\regex-0.12 !ENDIF # FastCGI Support # # Uncomment, and update accordingly. #FCGIDIR=C:\projects\fcgi-2.4.0 #FCGILIB=$(FCGIDIR)\libfcgi\Debug\libfcgi.lib #FCGIINC=-I$(FCGIDIR)\include #FCGIDEF=-DUSE_FASTCGI ######################################################################## # Section III: Debug flags ######################################################################## # Should not need to be updated. ######################################################################## # DEBUG Build flags # Set the DEBUG flag if you wish to make a debug build DEBUG=/DDEBUG # Set the Warning level for the compiler (defaults to W1) WARNING_LEVEL=/W3 # Set the linker debug option LDEBUG=/debug ######################################################################## # Section IV: 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.lib !ENDIF # Set the jpeg library !IFDEF JPEG_DIR JPEG_LIB=$(JPEG_DIR)/libjpeg.lib !ENDIF # Set the png support libaries !IFDEF PNG_DIR PNG_LIB=$(PNG_DIR)/libpng.lib $(ZLIB_DIR)/zlib.lib !ENDIF # Set the FreeType library !IFDEF FT_DIR #FT_LIB=$(FT_DIR)/objs/freetype211.lib FT_LIB=$(FT_DIR)/objs/freetype211ST_D.lib !ENDIF # GD include and library GD_INC= -I$(GD_DIR) GD_LIBS= $(GD_DIR)/bgd.lib $(JPEG_LIB) $(PNG_LIB) $(FT_LIB) GD= $(OUTPUT_PNG) $(OUTPUT_JPEG) $(OUTPUT_WBMP) $(OUTPUT_GIF) $(ANNOTATION_FT) $(GD_HAS_GETBITMAPFONT) # 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 SDE_LIB=$(SDE_DIR)/lib/sde80.lib $(SDE_DIR)/lib/sg80.lib $(SDE_DIR)/lib/pe80.lib !ENDIF # Setup REGEX object and includes !IFNDEF PHP REGEX_OBJ=$(REGEX_DIR)\regex.obj REGEX_INC=-I$(REGEX_DIR) !ELSE REGEX_OBJ=$(PHP_DIR)\regex\regcomp.obj $(PHP_DIR)\regex\regerror.obj \ $(PHP_DIR)\regex\regexec.obj $(PHP_DIR)\regex\regfree.obj REGEX_INC=-I$(PHP_DIR)/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 # Note that the Postgresql includes are not used in the compilation of # PHP/MapScript. The reason is that there is a name conflict between the # regex/regex.h files used in PHP and Postgresql. This is not a real issue # since they are two completely different interfaces. The issue arrises when # the php_regex.h trys to include regex/regex.h and gets the wrong one from # postgresql. Therefore we do not give it that opertunity by not providing the # include path. !IFDEF POSTGIS !IFNDEF PHP_BUILD_CALL #POSTGIS_INC=-I$(POSTGIS_DIR)/src/interfaces/libpq -I$(POSTGIS_DIR)/src/include POSTGIS_INC=-I$(POSTGIS_DIR)/interfaces/libpq -I$(POSTGIS_DIR)/include !ENDIF #POSTGIS_LIB=$(POSTGIS_DIR)/src/interfaces/libpq/release/libpqdll.lib POSTGIS_LIB=$(POSTGIS_DIR)/interfaces/libpq/libpqdll.lib POSTGIS_OBJ=mappostgis.obj !ENDIF # Setup FLASH includes and libs !IFDEF MING MING_INC=-I$(MING_DIR)/src -I$(MING_DIR) MING_LIB= $(MING_DIR)/src/libming.lib #MING_VERSION=-DMING_VERSION_03 !ENDIF # Setup PDF includes and libs !IFDEF PDF PDF_LIB=$(PDF_DIR)/pdflib/pdflib.lib PDF_INC=-I$(PDF_DIR)/pdflib !ENDIF #Oracle support !IFDEF ORACLE ORACLE_INC=-I$(ORACLE_DIR)/oci/include ORACLE_LIB=$(ORACLE_DIR)/oci/lib/msvc/oci.lib !ENDIF #libiconv support !IFDEF ICONV ICONV_LIB=c:\usr\lib\iconv.lib ICONV_INC= -Ic:\usr\include !ENDIF ######################################################################## # Section V: 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 VI: Collect compiler flags ######################################################################## # Should not need to be updated. ######################################################################## EXTERNAL_LIBS=$(GD_LIBS) $(TIFF_LIB) $(JPEG_LIB) \ $(PROJ_LIB) $(OGR_LIB) $(GDAL_LIB)\ $(CURL_LIB) $(MING_LIB) $(PDF_LIB) \ $(WINSOCK_LIB) $(POSTGIS_LIB) $(IMGGEN_LIB) $(ERR_LIB) \ $(ORACLE_LIB) $(SDE_LIB) $(ICONV_LIB) $(FCGILIB) LIBS=$(MS_LIB) $(EXTERNAL_LIBS) LIBS_DLL=$(MS_LIB_DLL) $(EXTERNAL_LIBS) INCLUDES=$(GD_INC) $(TIFF_INC) $(JPEG_INC) \ $(PROJ_INC) $(REGEX_INC) $(GDAL_INC) $(OGR_INC) \ $(CURL_INC) $(MING_INC) $(PDF_INC) $(POSTGIS_INC) \ $(IMGGEN_INC) $(ERR_INC) $(ORACLE_INC) $(SDE_INC)\ $(ICONV_INC) $(FCGIINC) MS_DEFS = $(REGEX_OPT) $(STRINGS) $(POSTGIS) -DWIN32 -D_WIN32 \ $(EPPL) $(PROJ) $(TIFF) $(JPEG) $(GD) $(OGR) $(WMS) $(THREADS) \ $(WMSCLIENT) $(MING) $(IGNORE_MISSING_DATA) $(NEED_NONBLOCKING_STDERR) $(ENABLE_STDERR_DEBUG) \ $(USE_POINT_Z_M) $(GDAL) $(FCGIDEF) \ $(WFS) $(WFSCLIENT) $(WCS) $(PDF) $(EGIS) \ $(USE_GD_ANTIALIAS) $(ORACLE) $(MING_VERSION) $(SDE_OPT) $(ICONV) MS_CFLAGS=$(INCLUDES) $(MS_DEFS)