diff --git a/como-tools.jam b/como-tools.jam index b40379c2d..88892fa56 100644 --- a/como-tools.jam +++ b/como-tools.jam @@ -18,13 +18,15 @@ if ! $(COMO_PATH_SETUP) # do this once COMO_STDLIB_PATH ?= $(COMO_BASE)$(SLASH)$(DOTDOT)$(SLASH)libcomo ; COMO_BACKEND_SETUP = $(COMO_BACKEND_SETUP) ; + newline = " +" ; if $(NT) { - COMO_BACKEND_INCLUDE_SETUP ?= "set \"COMO_MS_INCLUDE="$(MSVCDir)"/include\"" ; + COMO_BACKEND_INCLUDE_SETUP ?= "set \"COMO_MS_INCLUDE="$(VISUALC)"/include\"" ; COMO_BACKEND_LIB_SETUP ?= "set \"LIB="$(COMO_STDLIB_PATH)";%LIB%\"" ; COMO_PATH_SETUP ?= "set \"PATH="$(COMO_BIN_DIRECTORY)";%PATH%\"" ; - COMO_BACKEND_SETUP ?= "call "\"$(MSVCDir)$(SLASH)bin$(SLASH)vcvars32"\"" ; - COMO_BACKEND_SETUP ?= REM set MSVCDir or COMO_BACKEND_SETUP to set up the back end ; + COMO_BACKEND_SETUP ?= "call "\"$(VISUALC)$(SLASH)bin$(SLASH)vcvars32"\"" ; + COMO_BACKEND_SETUP ?= REM set VISUALC or COMO_BACKEND_SETUP to set up the back end ; COMO_BASE_SETUP ?= "set \"COMO_BASE=$(COMO_BASE)\"" ; COMO_PATH_SETUP ?= REM set COMO_BASE to set up the path for Comeau ; } @@ -47,7 +49,7 @@ flags como STDHDRS ; flags como LINKFLAGS ; flags como STDHDRS : $(COMO_INCLUDE_PATH) ; -flags como STDLIBPATH : $(COMO_STDLIB_PATH)$(SLASH) ; +flags como STDLIB_PATH : $(COMO_STDLIB_PATH)$(SLASH) ; flags como LIBPATH ; flags como NEEDLIBS ; diff --git a/intel-win32-tools.jam b/intel-win32-tools.jam index 80783aec1..35e367e10 100644 --- a/intel-win32-tools.jam +++ b/intel-win32-tools.jam @@ -18,16 +18,29 @@ INTEL_TOOL_PATH ?= "" ; # Don't clobber adjoining text if INTELROOT isn't set extends-toolset msvc ; +flags intel-win32 STDHDRS : $(VISUALC)$(SLASH)include ; + #### Link #### rule Link-action { with-command-file intel-win32-Link-action $(<) : $(>) $(NEEDLIBS) ; + if $(<[2]) + { + # incremental linking a DLL causes no end of problems: if the + # actual exports don't change, the import .lib file is never + # updated. Therefore, the .lib is always out-of-date and gets + # rebuilt every time. I'm not sure that incremental linking is + # such a great idea in general, but in this case I'm sure we + # don't want it. + NOINCREMENTAL on $(<) = /INCREMENTAL:NO ; + } } actions intel-win32-Link-action bind NEEDLIBS { - $(INTEL_TOOL_PATH)xilink /nologo $(LINKFLAGS) /PDB:"$(<[1]:S=.pdb)" /out:"$(<[1])" $(UNDEFS) /LIBPATH:$(LIBPATH) /LIBPATH:$(STDLIBPATH) "$(FINDLIBS)" @"$(>)" + $(MSVC_SETUP) + $(INTEL_TOOL_PATH)xilink /nologo $(NOINCREMENTAL) $(LINKFLAGS) /PDB:"$(<[1]:S=.pdb)" /out:"$(<[1])" /IMPLIB:$(<[2]) /LIBPATH:$(LIBPATH) /LIBPATH:$(STDLIBPATH) "$(FINDLIBS)" @"$(>)" } #### Cc ##### diff --git a/v1/como-tools.jam b/v1/como-tools.jam index b40379c2d..88892fa56 100644 --- a/v1/como-tools.jam +++ b/v1/como-tools.jam @@ -18,13 +18,15 @@ if ! $(COMO_PATH_SETUP) # do this once COMO_STDLIB_PATH ?= $(COMO_BASE)$(SLASH)$(DOTDOT)$(SLASH)libcomo ; COMO_BACKEND_SETUP = $(COMO_BACKEND_SETUP) ; + newline = " +" ; if $(NT) { - COMO_BACKEND_INCLUDE_SETUP ?= "set \"COMO_MS_INCLUDE="$(MSVCDir)"/include\"" ; + COMO_BACKEND_INCLUDE_SETUP ?= "set \"COMO_MS_INCLUDE="$(VISUALC)"/include\"" ; COMO_BACKEND_LIB_SETUP ?= "set \"LIB="$(COMO_STDLIB_PATH)";%LIB%\"" ; COMO_PATH_SETUP ?= "set \"PATH="$(COMO_BIN_DIRECTORY)";%PATH%\"" ; - COMO_BACKEND_SETUP ?= "call "\"$(MSVCDir)$(SLASH)bin$(SLASH)vcvars32"\"" ; - COMO_BACKEND_SETUP ?= REM set MSVCDir or COMO_BACKEND_SETUP to set up the back end ; + COMO_BACKEND_SETUP ?= "call "\"$(VISUALC)$(SLASH)bin$(SLASH)vcvars32"\"" ; + COMO_BACKEND_SETUP ?= REM set VISUALC or COMO_BACKEND_SETUP to set up the back end ; COMO_BASE_SETUP ?= "set \"COMO_BASE=$(COMO_BASE)\"" ; COMO_PATH_SETUP ?= REM set COMO_BASE to set up the path for Comeau ; } @@ -47,7 +49,7 @@ flags como STDHDRS ; flags como LINKFLAGS ; flags como STDHDRS : $(COMO_INCLUDE_PATH) ; -flags como STDLIBPATH : $(COMO_STDLIB_PATH)$(SLASH) ; +flags como STDLIB_PATH : $(COMO_STDLIB_PATH)$(SLASH) ; flags como LIBPATH ; flags como NEEDLIBS ; diff --git a/v1/intel-win32-tools.jam b/v1/intel-win32-tools.jam index 80783aec1..35e367e10 100644 --- a/v1/intel-win32-tools.jam +++ b/v1/intel-win32-tools.jam @@ -18,16 +18,29 @@ INTEL_TOOL_PATH ?= "" ; # Don't clobber adjoining text if INTELROOT isn't set extends-toolset msvc ; +flags intel-win32 STDHDRS : $(VISUALC)$(SLASH)include ; + #### Link #### rule Link-action { with-command-file intel-win32-Link-action $(<) : $(>) $(NEEDLIBS) ; + if $(<[2]) + { + # incremental linking a DLL causes no end of problems: if the + # actual exports don't change, the import .lib file is never + # updated. Therefore, the .lib is always out-of-date and gets + # rebuilt every time. I'm not sure that incremental linking is + # such a great idea in general, but in this case I'm sure we + # don't want it. + NOINCREMENTAL on $(<) = /INCREMENTAL:NO ; + } } actions intel-win32-Link-action bind NEEDLIBS { - $(INTEL_TOOL_PATH)xilink /nologo $(LINKFLAGS) /PDB:"$(<[1]:S=.pdb)" /out:"$(<[1])" $(UNDEFS) /LIBPATH:$(LIBPATH) /LIBPATH:$(STDLIBPATH) "$(FINDLIBS)" @"$(>)" + $(MSVC_SETUP) + $(INTEL_TOOL_PATH)xilink /nologo $(NOINCREMENTAL) $(LINKFLAGS) /PDB:"$(<[1]:S=.pdb)" /out:"$(<[1])" /IMPLIB:$(<[2]) /LIBPATH:$(LIBPATH) /LIBPATH:$(STDLIBPATH) "$(FINDLIBS)" @"$(>)" } #### Cc #####