Browse Source

adjust link options 4 vc7

cxgeorge 24 years ago
parent
commit
5508773eee
3 changed files with 44 additions and 14 deletions
  1. 5 5
      dtool/pptempl/Global.gmsvc.pp
  2. 5 6
      dtool/pptempl/Global.msvc.pp
  3. 34 3
      dtool/pptempl/compilerSettings.pp

+ 5 - 5
dtool/pptempl/Global.gmsvc.pp

@@ -119,7 +119,7 @@
 #defer CFLAGS_OPT1 $[CDEFINES_OPT1:%=/D%] $[COMMONFLAGS] $[DEBUGFLAGS] $[OPT1FLAGS] 
 #defer CFLAGS_OPT2 $[CDEFINES_OPT2:%=/D%] $[COMMONFLAGS] $[DEBUGFLAGS] $[OPTFLAGS] 
 #defer CFLAGS_OPT3 $[CDEFINES_OPT3:%=/D%] $[COMMONFLAGS] $[RELEASEFLAGS] $[OPTFLAGS] $[DEBUGPDBFLAGS]
-#defer CFLAGS_OPT4 $[CDEFINES_OPT4:%=/D%] $[COMMONFLAGS] $[RELEASEFLAGS] $[OPTFLAGS] $[DEBUGPDBFLAGS]
+#defer CFLAGS_OPT4 $[CDEFINES_OPT4:%=/D%] $[COMMONFLAGS] $[RELEASEFLAGS] $[OPTFLAGS] $[OPT4FLAGS] $[DEBUGPDBFLAGS]
 
 //#if $[FORCE_DEBUG_FLAGS]
 // make them all link with non-debug msvc runtime dlls for this case
@@ -130,10 +130,10 @@
 //#endif
 
 // NODEFAULTLIB ensures static libs linked in will connect to the correct msvcrt, so no debug/release mixing occurs
-#defer LDFLAGS_OPT1 $[LINKER_FLAGS] /NODEFAULTLIB:MSVCRT.LIB 
-#defer LDFLAGS_OPT2 $[LINKER_FLAGS] /NODEFAULTLIB:MSVCRT.LIB 
-#defer LDFLAGS_OPT3 $[LINKER_FLAGS] /NODEFAULTLIB:MSVCRTD.LIB /OPT:REF
-#defer LDFLAGS_OPT4 $[LINKER_FLAGS] /NODEFAULTLIB:MSVCRTD.LIB /OPT:REF
+#defer LDFLAGS_OPT1 $[LINKER_FLAGS] $[LDFLAGS_OPT1]
+#defer LDFLAGS_OPT2 $[LINKER_FLAGS] $[LDFLAGS_OPT2]
+#defer LDFLAGS_OPT3 $[LINKER_FLAGS] $[LDFLAGS_OPT3]
+#defer LDFLAGS_OPT4 $[LINKER_FLAGS] $[LDFLAGS_OPT4]
 
 // $[build_pdbs] will be nonempty (true) if we should expect to
 // generate a .pdb file when we build a DLL or EXE.

+ 5 - 6
dtool/pptempl/Global.msvc.pp

@@ -102,13 +102,12 @@
 #defer CFLAGS_OPT1 $[CDEFINES_OPT1:%=/D%] $[COMMONFLAGS] $[OPT1FLAGS] $[DEBUGFLAGS]
 #defer CFLAGS_OPT2 $[CDEFINES_OPT2:%=/D%] $[COMMONFLAGS] $[DEBUGFLAGS] $[OPTFLAGS]
 #defer CFLAGS_OPT3 $[CDEFINES_OPT3:%=/D%] $[COMMONFLAGS] $[RELEASEFLAGS] $[OPTFLAGS] $[DEBUGPDBFLAGS]
-#defer CFLAGS_OPT4 $[CDEFINES_OPT4:%=/D%] $[COMMONFLAGS] $[RELEASEFLAGS] $[OPTFLAGS] $[DEBUGPDBFLAGS]
+#defer CFLAGS_OPT4 $[CDEFINES_OPT4:%=/D%] $[COMMONFLAGS] $[RELEASEFLAGS] $[OPTFLAGS] $[OPT4FLAGS] $[DEBUGPDBFLAGS]
 
-// NODEFAULTLIB ensures static libs linked in will connect to the correct msvcrt, so no debug/release mixing occurs
-#defer LDFLAGS_OPT1 $[LINKER_FLAGS] /NODEFAULTLIB:MSVCRT.LIB 
-#defer LDFLAGS_OPT2 $[LINKER_FLAGS] /NODEFAULTLIB:MSVCRT.LIB 
-#defer LDFLAGS_OPT3 $[LINKER_FLAGS] /NODEFAULTLIB:MSVCRTD.LIB /OPT:REF
-#defer LDFLAGS_OPT4 $[LINKER_FLAGS] /NODEFAULTLIB:MSVCRTD.LIB /OPT:REF
+#defer LDFLAGS_OPT1 $[LINKER_FLAGS] $[LDFLAGS_OPT1]
+#defer LDFLAGS_OPT2 $[LINKER_FLAGS] $[LDFLAGS_OPT2]
+#defer LDFLAGS_OPT3 $[LINKER_FLAGS] $[LDFLAGS_OPT3]
+#defer LDFLAGS_OPT4 $[LINKER_FLAGS] $[LDFLAGS_OPT4]
 
 // $[build_pdbs] will be nonempty (true) if we should expect to
 // generate a .pdb file when we build a DLL or EXE.

+ 34 - 3
dtool/pptempl/compilerSettings.pp

@@ -14,6 +14,12 @@
   #define WARNING_LEVEL_FLAG /W3  
   
   #define CDEFINES_OPT4 UNKNOWN_ALLOCATOR
+
+  // NODEFAULTLIB ensures static libs linked in will connect to the correct msvcrt, so no debug/release mixing occurs    
+  #define LDFLAGS_OPT1 /NODEFAULTLIB:MSVCRT.LIB 
+  #define LDFLAGS_OPT2 /NODEFAULTLIB:MSVCRT.LIB 
+  #define LDFLAGS_OPT3 /NODEFAULTLIB:MSVCRTD.LIB /OPT:REF
+  #define LDFLAGS_OPT4 /NODEFAULTLIB:MSVCRTD.LIB /OPT:REF $[LDFLAGS_OPT4]
   
   #define MAPINFOFLAGS /MAPINFO:EXPORTS /MAPINFO:FIXUPS /MAPINFO:LINES
   
@@ -40,15 +46,29 @@
   #define COMPILER cl
   #define LINKER link
   #define LIBBER lib
-
-  // currently wont build pvector stuff, so need this
+  
+  #define DO_CROSSOBJ_OPT 1
+  
+  #if $[DO_CROSSOBJ_OPT]
+     #define OPT4FLAGS /GL
+     #define LDFLAGS_OPT4 /LTCG
+  #endif 
+  
+  // remove 1-3 when allocator stuff is rewritten to build with VC7 STL
   #define CDEFINES_OPT1 UNKNOWN_ALLOCATOR
   #define CDEFINES_OPT2 UNKNOWN_ALLOCATOR
   #define CDEFINES_OPT3 UNKNOWN_ALLOCATOR
   #define CDEFINES_OPT4 UNKNOWN_ALLOCATOR      
 
+  // NODEFAULTLIB ensures static libs linked in will connect to the correct msvcrt, so no debug/release mixing occurs  
+  #define LDFLAGS_OPT1 /NODEFAULTLIB:MSVCRT.LIB 
+  #define LDFLAGS_OPT2 /NODEFAULTLIB:MSVCRT.LIB 
+  #define LDFLAGS_OPT3 /NODEFAULTLIB:MSVCRTD.LIB /OPT:REF
+  #define LDFLAGS_OPT4 /NODEFAULTLIB:MSVCRTD.LIB /OPT:REF $[LDFLAGS_OPT4]
+
   #define COMMONFLAGS /DHAVE_DINKUM 
-  #define OPTFLAGS /O2 /Ob1 /G6 /QIfist
+  
+  #define OPTFLAGS /O2 /Ob2 /G6 /QIfist
   #define OPT1FLAGS /GZ /GS
   
 //  #define WARNING_LEVEL_FLAG /Wall  //this is scary
@@ -91,7 +111,18 @@
   #define RELEASEFLAGS /MD
   #define WARNING_LEVEL_FLAG /W3    
   
+  #if $[DO_CROSSOBJ_OPT]
+     #define OPT4FLAGS /Qipo
+     #define LDFLAGS_OPT4 /Qipo
+  #endif   
+  
   #define CDEFINES_OPT4 UNKNOWN_ALLOCATOR  
+
+  // NODEFAULTLIB ensures static libs linked in will connect to the correct msvcrt, so no debug/release mixing occurs
+  #define LDFLAGS_OPT1 /NODEFAULTLIB:MSVCRT.LIB 
+  #define LDFLAGS_OPT2 /NODEFAULTLIB:MSVCRT.LIB 
+  #define LDFLAGS_OPT3 /NODEFAULTLIB:MSVCRTD.LIB /OPT:REF
+  #define LDFLAGS_OPT4 /NODEFAULTLIB:MSVCRTD.LIB /OPT:REF $[LDFLAGS_OPT4]
   
 //  #define OPTFLAGS /O3 /G6 /Qvc6 /Qipo /QaxW /Qvec_report1 
   #define OPTFLAGS /O3 /G6 /Qvc6 /Qip /QIfist