diff -crN oommf11b2/config/cache/wintel.tcl oommf11b2-patched/config/cache/wintel.tcl
*** oommf11b2/config/cache/wintel.tcl Thu Jan 15 15:22:46 2004
--- oommf11b2-patched/config/cache/wintel.tcl Tue Dec 12 17:49:23 2006
***************
*** 60,69 ****
#
# Microsoft Visual C++
#
! # $config SetValue program_compiler_c++ {cl /nologo /c /GX /GR}
#
# Intel C++
! $config SetValue program_compiler_c++ {icl /nologo /c /GX /GR}
#
# Borland C++ 5.5 Win32 command line tools.
#
--- 60,69 ----
#
# Microsoft Visual C++
#
! $config SetValue program_compiler_c++ {cl /nologo /c /GR}
#
# Intel C++
! # $config SetValue program_compiler_c++ {icl /nologo /c /GX /GR}
#
# Borland C++ 5.5 Win32 command line tools.
#
***************
*** 102,107 ****
--- 102,122 ----
# $config SetValue path_directory_temporary {C:\temp}
# $config SetValue path_directory_temporary {C:\}
+
+ ########################################################################
+ # SUPPORT PROCEDURES
+ #
+ # Routine to guess the cl version
+ proc GuessClVersion { cl } {
+ set guess {}
+ catch {exec $cl} usage_str
+ if {[regexp -- {Version ([0-9]+)[.][0-9]+[.][0-9]+} \
+ $usage_str dummy version]} {
+ set guess [expr {$version - 6}]
+ }
+ return $guess
+ }
+
########################################################################
# ADVANCED CONFIGURATION
***************
*** 113,118 ****
--- 128,148 ----
}
if {[string match cl $ccbasename]} {
# ... for Microsoft Visual C++
+ if {![info exists mvcpp_version]} {
+ set compilestr [$config GetValue program_compiler_c++]
+ set mvcpp_version [GuessClVersion [lindex $compilestr 0]]
+ unset compilestr
+ }
+ set opts {}
+ # Exception handling
+ if {![string match {} $mvcpp_version] && $mvcpp_version>7} {
+ # The exception handling specification switch "/GX"
+ # is deprecated in version 8.
+ # lappend opts /EHsc
+ lappend opts /EHac
+ } else {
+ lappend opts /GX
+ }
#
# Usually you'll want maximum optimzation for greater simulation
# performance, so that is the default choice. However, you may
***************
*** 122,136 ****
# option, MSVC 5 was unable to compile the demag.cc file at all,
# and other errors caused problems with auto-sizing of the display
# in mmDisp.
! # Options:
# Maximum optimization: /Ox
# Enable runtime debug checks: /GZ
# Optimize for Pentium processor: /G5
# Optimize for Pentium Pro: /G6
! # No optimization: /Od
! #$config SetValue program_compiler_c++_option_opt {format "/Od"}
! #$config SetValue program_compiler_c++_option_opt {format "/GZ"}
! $config SetValue program_compiler_c++_option_opt {format "/Ox"}
# NOTE: If you want good performance, be sure to edit ../options.tcl
# or ../local/options.tcl to include the line
# Oc_Option Add * Platform cflags {-def NDEBUG}
--- 152,188 ----
# option, MSVC 5 was unable to compile the demag.cc file at all,
# and other errors caused problems with auto-sizing of the display
# in mmDisp.
! #
! # Options for VC++ 7 and earlier:
! # Disable optimizations: /Od
# Maximum optimization: /Ox
# Enable runtime debug checks: /GZ
# Optimize for Pentium processor: /G5
# Optimize for Pentium Pro: /G6
! #
! # Options for VC++ 8:
! # Disable optimizations: /Od
! # Maximum optimization: /Ox
! # Enable stack checks: /GZ
! # Require SSE2 support: /arch:SSE2
! # Fast (less predictable) floating point: /fp:fast
! # Use portable but insecure lib fcns: /D_CRT_SECURE_NO_DEPRECATE
! #
! if {![string match {} $mvcpp_version] && $mvcpp_version<=7} {
! #lappend opts /GZ
! if {$mvcpp_version<6} {
! lappend opts /Od /G6
! } else {
! lappend opts /Ox /G6
! }
! } else {
! #lappend opts /GZ /fp:strict /D_CRT_SECURE_NO_DEPRECATE
! lappend opts /Ox /fp:fast /D_CRT_SECURE_NO_DEPRECATE
! lappend opts /wd4996
! # /wd4996 disables warnings about deprecated function calls
! }
! $config SetValue program_compiler_c++_option_opt "format \"$opts\""
!
# NOTE: If you want good performance, be sure to edit ../options.tcl
# or ../local/options.tcl to include the line
# Oc_Option Add * Platform cflags {-def NDEBUG}
***************
*** 149,160 ****
# The program to run on this platform to create a single library file out
# of many object files.
# Microsoft Visual C++'s library maker
! $config SetValue program_libmaker {lib}
# The program to run on this platform to link together object files and
# library files to create an executable binary.
# Microsoft Visual C++'s linker
! $config SetValue program_linker {link /DEBUG}
} elseif {[string match icl $ccbasename]} {
# ... for Intel C++
--- 201,215 ----
# The program to run on this platform to create a single library file out
# of many object files.
# Microsoft Visual C++'s library maker
! $config SetValue program_libmaker {link /lib}
! # If your link doesn't accept the /lib option, try this instead:
! # $config SetValue program_libmaker {lib}
# The program to run on this platform to link together object files and
# library files to create an executable binary.
# Microsoft Visual C++'s linker
! $config SetValue program_linker {link}
! # $config SetValue program_linker {link /DEBUG} ;# For debugging
} elseif {[string match icl $ccbasename]} {
# ... for Intel C++
***************
*** 273,279 ****
} else {
set libbasename [file tail [lindex $libbasename 0]]
}
! if {[string match lib $libbasename]} {
# ...for Microsoft VC++ lib
$config SetValue program_libmaker_option_obj {format \"%s\"}
$config SetValue program_libmaker_option_out {format "\"/OUT:%s\""}
--- 328,334 ----
} else {
set libbasename [file tail [lindex $libbasename 0]]
}
! if {[string match lib $libbasename] || [string match link $libbasename] } {
# ...for Microsoft VC++ lib
$config SetValue program_libmaker_option_obj {format \"%s\"}
$config SetValue program_libmaker_option_out {format "\"/OUT:%s\""}