From 4969dd6e7b656e92bf1bc921f0cd1af00707e17f Mon Sep 17 00:00:00 2001 From: Hiroshi Miura Date: Wed, 7 Feb 2018 10:47:53 +0900 Subject: [PATCH 2/2] Add CFLAGS for CRT selection and warning supression Signed-off-by: Hiroshi Miura --- makefile.vc | 2 +- nmake.opt | 42 +++++++++++++++++++++++++++++++++++++++--- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/makefile.vc b/makefile.vc index 33f1f34..64fb9f3 100644 --- a/makefile.vc +++ b/makefile.vc @@ -20,7 +20,7 @@ EPSILON_EXE = epsilon.exe -CFLAGS = /nologo -IC:\OSGeo4W\include -I.\lib -I.\lib\msvc \ +CFLAGS = /nologo -I$(INSTALLED_ROOT)\include -I.\lib -I.\lib\msvc \ -I.\src -I..\popt\include \ - $(OPTFLAGS) + $(OPTFLAGS) $(WARNFLAGS) default: all diff --git a/nmake.opt b/nmake.opt index d5a51e2..d8088df 100644 --- a/nmake.opt +++ b/nmake.opt @@ -1,9 +1,45 @@ # Directory tree where EPSILON will be installed. +!IFNDEF INSTDIR INSTDIR=C:\OSGeo4W +!ENDIF + +# Flags to choose CRT variant to link against (e.g. static: /MT, /MTd, dynamic: /MD, /MDd) +!IFNDEF CRT_FLAGS +!IFNDEF DEBUG +CRT_FLAGS=/MD +!ELSE +CRT_FLAGS=/MDd +!ENDIF +!ENDIF + +# Flags for enforcing PDB use +!IFNDEF PDB_FLAGS +PDB_FLAGS=/Fdepsilon.pdb +!ENDIF + +# Set flags controlling warnings level, and suppression of some warnings. +!IFNDEF WARNFLAGS +# 4127: conditional expression is constant +# 4251: 'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2' +# 4275: non – DLL-interface classkey 'identifier' used as base for DLL-interface classkey 'identifier' +# 4786: ?????????? +# 4100: 'identifier' : unreferenced formal parameter +# 4245: 'conversion' : conversion from 'type1' to 'type2', signed/unsigned mismatch +# 4206: nonstandard extension used : translation unit is empty (only applies to C source code) +# 4351: new behavior: elements of array 'array' will be default initialized (needed for https://trac.osgeo.org/gdal/changeset/35593) +# 4611: interaction between '_setjmp' and C++ object destruction is non-portable +# +WARNFLAGS = /W3 /wd4127 /wd4251 /wd4275 /wd4786 /wd4100 /wd4245 /wd4206 /wd4351 /wd4611 +!ENDIF + +!IFNDEF OPTFLAGS +!IFNDEF DEBUG +OPTFLAGS= $(PDB_FLAGS) /nologo $(CRT_FLAGS) /D_CRT_SECURE_NO_WARNINGS /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DNDEBUG +!ELSE +OPTFLAGS= $(PDB_FLAGS) /nologo $(CRT_FLAGS) /EHsc /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /DDEBUG +!ENDIF +!ENDIF -# Uncomment the first for an optimized build, or the second for debug. -OPTFLAGS= /nologo /Ox /fp:precise /W3 /MD /D_CRT_SECURE_NO_WARNINGS -#OPTFLAGS= /nologo /Zi /MD /Fdepsilon.pdb # Set the version number for the DLL. Normally we leave this blank since # we want software that is dynamically loading the DLL to have no problem -- 2.16.1