From 5508773eee4dc86963b1f62ba1a86420caa6baa4 Mon Sep 17 00:00:00 2001 From: cxgeorge <> Date: Thu, 7 Feb 2002 01:14:20 +0000 Subject: [PATCH] adjust link options 4 vc7 --- dtool/pptempl/Global.gmsvc.pp | 10 ++++----- dtool/pptempl/Global.msvc.pp | 11 +++++---- dtool/pptempl/compilerSettings.pp | 37 ++++++++++++++++++++++++++++--- 3 files changed, 44 insertions(+), 14 deletions(-) diff --git a/dtool/pptempl/Global.gmsvc.pp b/dtool/pptempl/Global.gmsvc.pp index 47ad85e3bc..5520fdb41e 100644 --- a/dtool/pptempl/Global.gmsvc.pp +++ b/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. diff --git a/dtool/pptempl/Global.msvc.pp b/dtool/pptempl/Global.msvc.pp index 3f930d29b2..37004cfddc 100644 --- a/dtool/pptempl/Global.msvc.pp +++ b/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. diff --git a/dtool/pptempl/compilerSettings.pp b/dtool/pptempl/compilerSettings.pp index 2b08237873..1c5ada0b3e 100644 --- a/dtool/pptempl/compilerSettings.pp +++ b/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