# $Id$ # # nmake.opt - main configuration file for NMAKE makefiles. # ############################################################################### # For convenience, user may put custom settings to private mynmake.opt # and use EXT_NMAKE_OPT option while calling nmake.exe, as follows: # # nmake -f makefile.vc EXT_NMAKE_OPT=mynmake.opt !IFDEF EXT_NMAKE_OPT !INCLUDE $(EXT_NMAKE_OPT) !ENDIF ############################################################################### # Check version of Visual C++ compiler: # nmake -f makefile.vc MSVC_VER=xxxx # where xxxx is one of following: # 1500 = 9.0 (2008) # 1400 = 8.0 (2005) - specific compilation flags, different from older VC++ # 1310 = 7.1 (2003) # 1300 = 7.0 (2002) # 1200 = 6.0 # !IFNDEF MSVC_VER #assume msvc 7.1 MSVC_VER=1310 !ENDIF ############################################################################### # Optional use of Visual Leak Detector (VLD) by Dan Moulding, available at # http://dmoulding.googlepages.com/vld # Uncomment this line to use VLD in debug configuration only: #MSVC_VLD_DIR="C:\Program Files\Visual Leak Detector" ############################################################################### # Location to install .exe, .dll and python stuff # Edit as required. GDAL_HOME is used for convenience here, # but this particular relative organization is not mandatory. # But the paths *should* be absolute (relative paths mess up in submakefiles). !IFNDEF GDAL_HOME GDAL_HOME = "C:\warmerda\bld" !ENDIF BINDIR = $(GDAL_HOME)\bin PLUGINDIR = $(BINDIR)\gdalplugins LIBDIR = $(GDAL_HOME)\lib INCDIR = $(GDAL_HOME)\include DATADIR = $(GDAL_HOME)\data HTMLDIR = $(GDAL_HOME)\html # Set this to the installed directory containing python. If you don't # have python just let it point to a directory that does not exist (as now). !IFNDEF PYDIR PYDIR = "C:\Software\Python24" !ENDIF # Set the location of your SWIG installation !IFNDEF SWIG SWIG = swig.exe !ENDIF # SWIG Java settings !IFNDEF JAVA_HOME JAVA_HOME = c:\j2sdk1.4.2_12 !ENDIF !IFNDEF ANT_HOME ANT_HOME=c:\programmi\apache-ant-1.7.0 !ENDIF JAVADOC=$(JAVA_HOME)\bin\javadoc JAVAC=$(JAVA_HOME)\bin\javac JAVA=$(JAVA_HOME)\bin\java JAR=$(JAVA_HOME)\bin\jar JAVA_INCLUDE=-I$(JAVA_HOME)\include -I$(JAVA_HOME)\include\win32 # Compilation flags !IFNDEF OPTFLAGS !IF $(MSVC_VER) >= 1400 !IFNDEF DEBUG OPTFLAGS= /nologo /MD /EHsc /Ox /W3 /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DNDEBUG !ELSE OPTFLAGS= /nologo /MD /EHsc /Zi /W4 /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /Fd$(GDAL_ROOT)\gdal$(VERSION).pdb !ENDIF !ELSE !IFNDEF DEBUG OPTFLAGS= /nologo /MD /EHsc /GR /Ox /W3 /DNDEBUG !ELSE OPTFLAGS= /nologo /MD /EHsc /GR /Zi /W4 /Fd$(GDAL_ROOT)\gdal$(VERSION).pdb !ENDIF !ENDIF #MSVC_VER !ENDIF # OPTFLAGS # Linker debug options !IFDEF DEBUG LDEBUG= /debug !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 # If you don't want some entry points to have STDCALL conventions, # comment out the following and add -DCPL_DISABLE_STDCALL in OPTFLAGS. # This option has no effect on 64-bit windows. STDCALL=YES # Version number embedded in DLL name. VERSION = 17 # Comment the following out if you want PAM supported disabled # by default. PAM_SETTING=-DPAM_ENABLED # Uncomment the following to link OGR utilities against main GDAL DLL # instead of statically linking against OGR libraries. DLLBUILD=1 # Enable all OGR formats, or only raster formats? Comment out to disable # vector formats. INCLUDE_OGR_FRMTS = YES # Location of Visual C++ directory (only required for following SETARGV stuff) VCDIR = "D:\Software\VStudio\VC98" # Enable the following if VCDIR set properly, and you want the utility # programs to be able to expand wildcards. #SETARGV = $(VCDIR)\lib\setargv.obj # Comment out the following to disable BSB support. BSB_SUPPORTED = 1 # Comment out the following to disable ODBC support. ODBC_SUPPORTED = 1 # Comment out the following to disable JPEG support. JPEG_SUPPORTED = 1 # This will enable 12bit libjpeg - use only with internal jpeg builds. JPEG12_SUPPORTED = 1 #if using an external jpeg library uncomment the follwing lines #JPEG_EXTERNAL_LIB = 1 #JPEGDIR = c:/projects/jpeg-6b #JPEG_LIB = $(JPEGDIR)/libjpeg.lib #if using an external png library uncomment the follwing lines #PNG_EXTERNAL_LIB = 1 #PNGDIR = c:/projects/libpng-1.0.8 #PNG_LIB = $(PNGDIR)/libpng.lib # if using an external libtiff library #TIFF_INC = -Ic:/warmerda/libtiff/libtiff #TIFF_LIB = c:/warmerda/libtiff/libtiff/libtiff_i.lib # uncomment following line, if you have libtiff version >= 4.0 to # enable BigTIFF support #TIFF_OPTS= -DBIGTIFF_SUPPORT # if using an external libgeotiff library #GEOTIFF_INC = -Ic:/warmerda/libgeotiff -Ic:/warmerda/libgeotiff/libxtiff #GEOTIFF_LIB = C:/warmerda/libgeotiff/geotiff_i.lib # Uncomment the following and update to enable ECW support. #ECW_PLUGIN = NO #ECWDIR = C:\warmerda\libecwj2-3.3 #ECWLIB = $(ECWDIR)\Source\NCSBuildQmake\Debug\libecwj2.lib # DWG/DXF support via DWGdirect from Open Design Alliance #DWGDIRECT=C:\warmerda\DWGdirect #DWG_LIB_DIR=$(DWGDIRECT)\lib\VC6MD #DWG_LIB=$(DWG_LIB_DIR)\DD_AcisBuilder_dll.lib $(DWG_LIB_DIR)\DD_AcisRenderer_dll.lib $(DWG_LIB_DIR)\DD_Alloc_dll.lib $(DWG_LIB_DIR)\DD_BmpExport_dll.lib $(DWG_LIB_DIR)\DD_Br_dll.lib $(DWG_LIB_DIR)\DD_Db_dll.lib $(DWG_LIB_DIR)\DD_DwfExport_dll.lib $(DWG_LIB_DIR)\DD_DwfImport_dll.lib $(DWG_LIB_DIR)\DD_Ge_dll.lib $(DWG_LIB_DIR)\DD_Gi_dll.lib $(DWG_LIB_DIR)\DD_Gs_dll.lib $(DWG_LIB_DIR)\DD_ModelerGeometry_dll.lib $(DWG_LIB_DIR)\DD_Root_dll.lib $(DWG_LIB_DIR)\DD_Sm_dll.lib $(DWG_LIB_DIR)\DD_SpatialIndex_dll.lib $(DWG_LIB_DIR)\DD_VC6MD_OleDataAccess_dll.lib # Uncomment the following and update to enable OGDI support. #OGDIDIR = D:\warmerda\iii\devdir #OGDIVER = 31 #OGDILIB = $(OGDIDIR)\lib\$(TARGET)\ogdi$(OGDIVER).lib \ # $(OGDIDIR)\lib\$(TARGET)\zlib_ogdi$(OGDIVER).lib # Uncomment for Expat support (required for KML, GPX and GeoRSS read support). #EXPAT_DIR = "C:\Program Files\Expat 2.0.1" #EXPAT_INCLUDE = -I$(EXPAT_DIR)/source/lib #EXPAT_LIB = $(EXPAT_DIR)/bin/libexpat.lib # Uncomment for Xerces based GML and ILI support. #XERCES_DIR = c:\warmerda\supportlibs\xerces-c_2_6_0 #XERCES_INCLUDE = -I$(XERCES_DIR)/include -I$(XERCES_DIR)/include/xercesc #XERCES_LIB = $(XERCES_DIR)/lib/xerces-c_2.lib # Uncomment if the NAS source is available, and Xerces is available. #NAS_ENABLED = YES # Uncomment the following for Interlis support. Note that a Xercex 2.x # is also required (see above). Also, Interlis support only works with # Visual Studio.NET or newer, not VC6. #ILI_ENABLED = YES # Uncomment for JasPer based JPEG2000 support #JASPER_DIR = d:\projects\jasper-1.700.2.uuid #JASPER_INCLUDE = -I$(JASPER_DIR)\src\libjasper\include -DJAS_WIN_MSVC_BUILD #JASPER_LIB = $(JASPER_DIR)\src\msvc\Win32_Release\libjasper.lib # Uncomment the following line if you have patched UUID-enabled version # of JasPer from ftp://ftp.remotesensing.org/gdal/ #JASPER_INCLUDE = $(JASPER_INCLUDE) -DHAVE_JASPER_UUID # Uncommment and adjust paths if you have Kakadu 6.0 or newer #KAKDIR = \warmerda\pkg\kakadu-6.2.1 #KAKLIB = $(KAKDIR)\lib_x86\kdu_v62R.lib #KAKSRC = $(KAKDIR)\vt_2_1-00256N # Uncomment the following and update to enable NCSA HDF Release 4 support. #HDF4_PLUGIN = NO #HDF4_DIR = D:\warmerda\HDF41r5 #HDF4_LIB = /LIBPATH:$(HDF4_DIR)\lib Ws2_32.lib # Uncomment the following and update to enable NCSA HDF Release 5 support. #HDF5_PLUGIN = NO #HDF5_DIR = c:\warmerda\supportlibs\hdf5\5-164-win #HDF5_LIB = $(HDF5_DIR)\dll\hdf5dll.lib # Uncomment the following for MrSID support. # You will likely require /MD and /EHsc in OPTFLAGS. #MRSID_DIR = d:\projects\mrsid #MRSID_INCLUDE = -I$(MRSID_DIR)\include\base -I$(MRSID_DIR)\include\support \ # -I$(MRSID_DIR)\include\metadata \ # -I$(MRSID_DIR)\include\mrsid_readers \ # -I$(MRSID_DIR)\include\j2k_readers #MRSID_LIB = $(MRSID_DIR)\lib\Release_md\lti_dsdk_dll.lib advapi32.lib user32.lib # Comment out the following to supress JP2MRSID driver. #MRSID_FLAGS = -DMRSID_J2K # Enable these, if you have the MrSID Encoding SDK and want # to create MrSID files #MRSID_FLAGS = -DMRSID_ESDK $(MRSID_FLAGS) #MRSID_INCLUDE = -I$(MRSID_DIR)\include\mrsid_writers \ # -I$(MRSID_DIR)\include\j2k_writers $(MRSID_INCLUDE) #MRSID_LIB = $(MRSID_DIR)\lib\Release_md\lti_esdk_dll.lib $(MRSID_LIB) # Enable the following if you prefer to build MrSID support as a plugin. #MRSID_PLUGIN = YES # PCIDSK Libraries - default configuration uses internal implementation PCIDSK_SETTING=INTERNAL # Replace with these to use an external build. #PCIDSK_SETTING=EXTERNAL #PCIDSK_INCLUDE=-I\warmerda\pcidsk\src #PCIDSK_LIB=\warmerda\pcidsk\src\pcidsk.lib # Use the following alternative to use the old PCIDSK implementation #PCIDSK_SETTING=OLD # PostGIS Libraries #PG_INC_DIR = n:\pkg\libpq_win32\include #PG_LIB = n:\pkg\libpq_win32\lib\libpqdll.lib wsock32.lib # MySQL Libraries # NOTE: Need /MT instead of /MD, also enable /EHsc switch. #MYSQL_INC_DIR = D:\Software\MySQLServer4.1\include #MYSQL_LIB = D:\Software\MySQLServer4.1\lib\opt\libmysql.lib advapi32.lib # SQLite Libraries #SQLITE_INC=-IN:\pkg\sqlite-win32 #SQLITE_LIB=N:\pkg\sqlite-win32\sqlite3_i.lib # For spatialite support, try this instead (assuming you grab the libspatialite-amalgamation-2.3.1 and installed it in osgeo4w): #SQLITE_INC=-IC:\osgeo4w\include -DHAVE_SPATIALITE #SQLITE_LIB=C:\osgeo4w\lib\spatialite_i.lib # Informix Data Blade #INFORMIXDIR="C:\Program Files\IBM\Informix\Client-SDK" #IDB_INC=-I$(INFORMIXDIR)\incl\cpp -I$(INFORMIXDIR)\incl\dmi \ # -I$(INFORMIXDIR)\incl\esql #IDB_LIB=$(INFORMIXDIR)\lib\cpp\libthc++.lib \ # $(INFORMIXDIR)\lib\dmi\libthdmi.lib $(INFORMIXDIR)\lib\isqlt09a.lib # Uncomment the following and update to enable FME support. #FME_DIR = d:\Software\fme # Uncomment the following to enable FITS format support #FITS_PLUGIN = NO #FITS_INC_DIR = c:\dev32\usr\include\cfitsio #FITS_LIB = c:\dev32\usr\lib\cfitsio.lib # Comment out to disable GRIB support. GRIB_SETTING=yes # Uncomment the following to enable NetCDF format. #NETCDF_PLUGIN = NO #NETCDF_SETTING=yes #NETCDF_LIB=C:\Software\netcdf\lib\netcdf.lib #NETCDF_INC_DIR=C:\Software\netcdf\include # PROJ.4 stuff # Uncomment the following lines to link PROJ.4 library statically. Otherwise # it will be linked dynamically during runtime. #PROJ_FLAGS = -DPROJ_STATIC #PROJ_INCLUDE = -Id:\projects\proj.4\src #PROJ_LIBRARY = d:\projects\proj.4\src\proj_i.lib # Add ORACLE support. # Uncomment the following line to enable OCI Oracle Spatial support. #ORACLE_HOME = C:/Software/Oracle/Product/10.1.0/db_1 # Uncomment the following if you prefer to build OCI support as a plugin. #OCI_PLUGIN = YES !IFDEF ORACLE_HOME OCI_LIB = $(ORACLE_HOME)\oci\lib\msvc\ociw32.lib \ $(ORACLE_HOME)\oci\lib\msvc\oci.lib OCI_INCLUDE = -I$(ORACLE_HOME)\oci\include !ENDIF #SDE_ENABLED = YES #SDE_VERSION=91 #SDE_PLUGIN = NO #SDE_SDK = C:\arcgis\arcsde #SDE_INC = $(SDE_SDK)\include #SDE_LIB = $(SDE_SDK)\lib\pe$(SDE_VERSION).lib \ # $(SDE_SDK)\lib\sde$(SDE_VERSION).lib $(SDE_SDK)\lib\sg$(SDE_VERSION).lib # Uncomment to use libcurl (DLL by default) # The cURL library is used for WCS, WMS, GeoJSON, SRS call importFromUrl(), etc. #CURL_DIR=C:\curl-7.15.0 #CURL_INC = -I$(CURL_DIR)/include # Uncoment following line to use libcurl as dynamic library #CURL_LIB = $(CURL_DIR)/libcurl_imp.lib wsock32.lib wldap32.lib winmm.lib # Uncoment following two lines to use libcurl as static library #CURL_LIB = $(CURL_DIR)/libcurl.lib wsock32.lib wldap32.lib winmm.lib #CURL_CFLAGS = -DCURL_STATICLIB # Uncomment for DODS / OPeNDAP support #DODS_DIR = C:\libdap3.6.2 #DODS_LIB = $(DODSDIR)\lib\libdapMD.lib # Uncomment for libdap >= 3.9 #DODS_FLAGS = -DLIBDAP_39 # Uncomment for GEOS support #GEOS_DIR=C:/warmerda/geos #GEOS_CFLAGS = -I$(GEOS_DIR)/capi -I$(GEOS_DIR)/source/headers -DHAVE_GEOS #GEOS_LIB = $(GEOS_DIR)/source/geos_c_i.lib # Any extra libraries needed on this platform? ADD_LIBS = # Comment out the following if you want to build with Python support, but # you don't have Numeric Python installed (with include files). Numeric # integration may not work. This only appears to the old generation # bindings. #HAVE_NUMPY=1 ########### END OF STUFF THAT NORMALLY NEEDS TO BE UPDATED ################## # Location of MS Data Access SDK (not really needed anymore I think) #MSDASDK = D:\Software\MDAC_2.6 GDAL_DLL = gdal$(VERSION).dll INC = -I$(GDAL_ROOT)\port -I$(GDAL_ROOT)\ogr -I$(GDAL_ROOT)\gcore \ -I$(GDAL_ROOT)\alg -I$(GDAL_ROOT)\ogr\ogrsf_frmts !IFDEF MSVC_VLD_DIR MSVC_VLD_FLAGS=-DMSVC_USE_VLD=1 -I$(MSVC_VLD_DIR)\include MSVC_VLD_LIB=/LIBPATH:$(MSVC_VLD_DIR)/lib !ENDIF !IFDEF INCLUDE_OGR_FRMTS OGR_FLAG = -DOGR_ENABLED !ENDIF #LINKER_FLAGS = /NODEFAULTLIB:LIBC LINKER_FLAGS = $(MSVC_VLD_LIB) $(LDEBUG) CFLAGS = $(OPTFLAGS) $(INC) $(EXTRAFLAGS) $(OGR_FLAG) $(MSVC_VLD_FLAGS) MAKE = nmake /nologo CC = cl INSTALL = xcopy /y /r /d /f CPLLIB = $(GDAL_ROOT)/port/cpl.lib !IFDEF DLLBUILD GDALLIB = $(GDAL_ROOT)/gdal_i.lib !ELSE GDALLIB = $(GDAL_ROOT)/gdal.lib !ENDIF !IFDEF ODBC_SUPPORTED ODBCLIB = odbc32.lib odbccp32.lib user32.lib !ENDIF !IFDEF MRSID_DIR !IF "$(MRSID_PLUGIN)" != "YES" MRSID_LIB_LINK = $(MRSID_LIB) !ELSE MRSID_LIB_LINK= !ENDIF !ENDIF !IFDEF ECWDIR !IF "$(ECW_PLUGIN)" != "YES" ECW_LIB_LINK= $(ECWLIB) !ELSE ECW_LIB_LINK= !ENDIF !ENDIF !IFDEF FITS_LIB !IF "$(FITS_PLUGIN)" != "YES" FITS_LIB_LINK = $(FITS_LIB) !ELSE FITS_LIB_LINK = !ENDIF !ENDIF !IFDEF NETCDF_LIB !IF "$(NETCDF_PLUGIN)" != "YES" NETCDF_LIB_LINK = $(NETCDF_LIB) !ELSE NETCDF_LIB_LINK = !ENDIF !ENDIF !IFDEF HDF4_LIB !IF "$(HDF4_PLUGIN)" != "YES" HDF4_LIB_LINK = $(HDF4_LIB) !ELSE HDF4_LIB_LINK = !ENDIF !ENDIF !IFDEF HDF5_LIB !IF "$(HDF5_PLUGIN)" != "YES" HDF5_LIB_LINK = $(HDF5_LIB) !ELSE HDF5_LIB_LINK = !ENDIF !ENDIF # Under win64, symbols for function names lack the underscore prefix # present on win32. Also the STDCALL calling convention is not used. !IFDEF WIN64 !UNDEF STDCALL !ELSE SYM_PREFIX=_ !ENDIF EXTERNAL_LIBS = $(OGDILIB) $(XERCES_LIB) $(EXPAT_LIB) $(OCI_LIB) $(PG_LIB) \ $(ECW_LIB_LINK) $(HDF4_LIB_LINK) $(FME_LIB) $(MRSID_LIB_LINK) \ $(FITS_LIB_LINK) $(JPEG_LIB) $(NETCDF_LIB_LINK) $(PROJ4_LIB) \ $(GEOTIFF_LIB) $(TIFF_LIB) $(PROJ_LIBRARY) $(SQLITE_LIB) \ $(MYSQL_LIB) $(GEOS_LIB) $(HDF5_LIB_LINK) $(SDE_LIB) $(DWG_LIB) \ $(IDB_LIB) $(CURL_LIB) $(DODS_LIB) $(KAKLIB) $(PCIDSK_LIB) \ $(ODBCLIB) $(JASPER_LIB) $(PNG_LIB) $(ADD_LIBS) .c.obj: $(CC) $(CFLAGS) /c $*.c .cpp.obj: $(CC) $(CFLAGS) /c $*.cpp