Browse Source

o use MT if static build for RELEASEFLAGS
o optimize for P4 cpus and up (still backwards compatible)

Joseph Lee 19 years ago
parent
commit
39064a9262
1 changed files with 6 additions and 4 deletions
  1. 6 4
      dtool/pptempl/compilerSettings.pp

+ 6 - 4
dtool/pptempl/compilerSettings.pp

@@ -12,7 +12,7 @@
   // Note: Zi cannot be used on multiproc builds with precomp hdrs, Z7 must be used instead
   // Note: Zi cannot be used on multiproc builds with precomp hdrs, Z7 must be used instead
   #defer DEBUGPDBFLAGS /Zi /Fd"$[osfilename $[patsubst %.obj,%.pdb,$[target]]]"
   #defer DEBUGPDBFLAGS /Zi /Fd"$[osfilename $[patsubst %.obj,%.pdb,$[target]]]"
   #defer DEBUGFLAGS /MDd $[BROWSEINFO_FLAG] $[DEBUGINFOFLAGS] $[DEBUGPDBFLAGS]
   #defer DEBUGFLAGS /MDd $[BROWSEINFO_FLAG] $[DEBUGINFOFLAGS] $[DEBUGPDBFLAGS]
-  #define RELEASEFLAGS /MD
+  #defer RELEASEFLAGS $[if $[ne $[LINK_FORCE_STATIC_RELEASE_C_RUNTIME],],/MT, /MD]
   #define WARNING_LEVEL_FLAG /Wall
   #define WARNING_LEVEL_FLAG /Wall
 
 
   // NODEFAULTLIB ensures static libs linked in will connect to the correct msvcrt, so no debug/release mixing occurs
   // NODEFAULTLIB ensures static libs linked in will connect to the correct msvcrt, so no debug/release mixing occurs
@@ -76,13 +76,14 @@
   #define LDFLAGS_OPT2 /NODEFAULTLIB:MSVCRT.LIB
   #define LDFLAGS_OPT2 /NODEFAULTLIB:MSVCRT.LIB
   #define LDFLAGS_OPT3 /NODEFAULTLIB:MSVCRTD.LIB /NODEFAULTLIB:LIBCMT.LIB /OPT:REF
   #define LDFLAGS_OPT3 /NODEFAULTLIB:MSVCRTD.LIB /NODEFAULTLIB:LIBCMT.LIB /OPT:REF
   #define LDFLAGS_OPT4 /NODEFAULTLIB:MSVCRTD.LIB /NODEFAULTLIB:LIBCMT.LIB /OPT:REF $[LDFLAGS_OPT4]
   #define LDFLAGS_OPT4 /NODEFAULTLIB:MSVCRTD.LIB /NODEFAULTLIB:LIBCMT.LIB /OPT:REF $[LDFLAGS_OPT4]
+//  #define LDFLAGS_OPT4 /NODEFAULTLIB:MSVCRTD.LIB /OPT:REF $[LDFLAGS_OPT4]
 
 
   #define COMMONFLAGS /DHAVE_DINKUM /Zc:forScope
   #define COMMONFLAGS /DHAVE_DINKUM /Zc:forScope
 
 
   // use "unsafe" QIfist flt->int rounding only if FAST_FLT_TO_INT is defined
   // use "unsafe" QIfist flt->int rounding only if FAST_FLT_TO_INT is defined
-  #define REGULAR_OPTFLAGS /O2 /Ob2 /G6 $[if $[ne $[FAST_FLT_TO_INT],], /QIfist,]
+  #define REGULAR_OPTFLAGS /O2 /Ob2 /G7 $[if $[ne $[FAST_FLT_TO_INT],], /QIfist,]
 
 
-  #defer OPTFLAGS $[if $[OPT_MINSIZE],/Ox /Og /Ob1 /Oi /Os /Oy /GL /G6,$[REGULAR_OPTFLAGS]]
+  #defer OPTFLAGS $[if $[OPT_MINSIZE],/Ox /Og /Ob1 /Oi /Os /Oy /GL /G7,$[REGULAR_OPTFLAGS]]
 
 
   //  #define OPT1FLAGS /RTCsu /GS  removing /RTCu because it crashes in dxgsg with internal compiler bug
   //  #define OPT1FLAGS /RTCsu /GS  removing /RTCu because it crashes in dxgsg with internal compiler bug
   #define OPT1FLAGS /RTCs /GS
   #define OPT1FLAGS /RTCs /GS
@@ -117,6 +118,7 @@
 
 
   // Added to avoid old iostream reference problems
   // Added to avoid old iostream reference problems
   #define LINKER_FLAGS $[LINKER_FLAGS] /NODEFAULTLIB:LIBCI.LIB
   #define LINKER_FLAGS $[LINKER_FLAGS] /NODEFAULTLIB:LIBCI.LIB
+//  #define LINKER_FLAGS $[LINKER_FLAGS] /NODEFAULTLIB:LIBCI.LIB /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:msvcprt.lib
 
 
 // in case we have mixed intel/msvc build
 // in case we have mixed intel/msvc build
 //  #define EXTRA_LIBPATH /ia32/lib
 //  #define EXTRA_LIBPATH /ia32/lib
@@ -135,7 +137,7 @@
   #defer DEBUGPDBFLAGS /Zi /Qinline_debug_info /Fd"$[osfilename $[patsubst %.obj,%.pdb,$[target]]]"
   #defer DEBUGPDBFLAGS /Zi /Qinline_debug_info /Fd"$[osfilename $[patsubst %.obj,%.pdb,$[target]]]"
   // Oy- needed for MS debugger
   // Oy- needed for MS debugger
   #defer DEBUGFLAGS /Oy- /MDd $[BROWSEINFO_FLAG] $[DEBUGINFOFLAGS] $[DEBUGPDBFLAGS]
   #defer DEBUGFLAGS /Oy- /MDd $[BROWSEINFO_FLAG] $[DEBUGINFOFLAGS] $[DEBUGPDBFLAGS]
-  #define RELEASEFLAGS /MD
+  #defer RELEASEFLAGS /MD
   #define WARNING_LEVEL_FLAG /W3
   #define WARNING_LEVEL_FLAG /W3
 
 
   #if $[DO_CROSSOBJ_OPT]
   #if $[DO_CROSSOBJ_OPT]