--- tools/intel-win.jam_ 2011-04-16 15:45:11.000000000 +0200 +++ tools/intel-win.jam 2011-07-13 19:08:22.788023052 +0200 @@ -14,6 +14,7 @@ import toolset ; import generators ; import type ; +import path ; feature.extend-subfeature toolset intel : platform : win ; @@ -44,6 +45,9 @@ local condition = [ common.check-init-parameters intel-win : version $(version) : compatibility $(compatibility) ] ; + local m = [ MATCH ([0-9]+).* : $(version) ] ; + local major = $(m[1]) ; + command = [ common.get-invocation-command intel-win : icl.exe : $(command) ] ; @@ -53,6 +57,10 @@ if $(command) { root = [ common.get-absolute-tool-path $(command[-1]) ] ; + if $(major) >= 12 + { + root = [ path.parent $(root) ] ; + } root = $(root)/ ; } @@ -61,8 +69,23 @@ if ! $(setup) { setup = $(root)/iclvars.bat ; + setup = [ path.native $(setup) ] ; + } + local iclvars_addressmodel ; + local iclvars_vs_arg ; + if $(major) >= 12 + { + iclvars_addressmodel = ia32 ; + if $(compatibility) = vc10 + { + iclvars_vs_arg = vs2010 ; + } } - setup = "call \""$(setup)"\" > nul " ; + else + { + iclvars_vs_arg = $(compatibility) ; + } + setup = "call \""$(setup)"\" $(iclvars_addressmodel) $(iclvars_vs_arg) > nul " ; if [ os.name ] = NT { @@ -75,14 +98,13 @@ } toolset.flags intel-win.compile .CC $(condition) : $(setup)icl ; - toolset.flags intel-win.link .LD $(condition) : $(setup)xilink ; - toolset.flags intel-win.archive .LD $(condition) : $(setup)xilink /lib ; + toolset.flags intel-win.link .LD $(condition) : $(setup)xilink /nologo ; + toolset.flags intel-win.archive .LD $(condition) : $(setup)xilink /lib /nologo ; toolset.flags intel-win.link .MT $(condition) : $(setup)mt -nologo ; toolset.flags intel-win.compile .MC $(condition) : $(setup)mc ; toolset.flags intel-win.compile .RC $(condition) : $(setup)rc ; - local m = [ MATCH (.).* : $(version) ] ; - local major = $(m[1]) ; + local C++FLAGS ; @@ -96,7 +118,10 @@ # Disable Microsoft "secure" overloads in Dinkumware libraries since they # cause compile errors with Intel versions 9 and 10. + if $(major) < 12 + { C++FLAGS += -D_SECURE_SCL=0 ; + } if $(major) > 5 { @@ -135,7 +160,7 @@ if $(compatibility) && $(compatibility) != native { - C++FLAGS += /Q$(base-vc) ; + C++FLAGS += /Q$(compatibility) ; } else {