catch up to default fix
authorRichard Taylor <richard.i.taylor@nokia.com>
Wed, 17 Feb 2010 16:53:22 +0000
branchfix
changeset 232 4b2787756a35
parent 230 3d05ccc51d1a (diff)
parent 231 0f26bc078e36 (current diff)
child 234 5350032783e4
child 236 a2dc04c8e649
child 245 cbc11ebd788f
child 248 760086c28ab8
catch up to default
sbsv2/raptor/RELEASE-NOTES.txt
--- a/sbsv2/raptor/RELEASE-NOTES.txt	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/RELEASE-NOTES.txt	Wed Feb 17 16:53:22 2010 +0000
@@ -1,5 +1,13 @@
 Release Notes for Symbian Build System v2
 
+next version
+
+Defect Fixes:
+- DPDEF142718 Incremental rebuild fails if dependent files deleted
+  --no-depend-generate added to suppress the generation and processing of dependency files
+  .DEFAULT target introduced for all non --no-depend-generate and/or --no-depend-include builds
+
+
 version 2.12.2
 
 Defect Fixes:
--- a/sbsv2/raptor/lib/flm/e32abiv2.flm	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2.flm	Wed Feb 17 16:53:22 2010 +0000
@@ -773,20 +773,23 @@
 			$(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(USERINCLUDE)))      \
 			$(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(SYSTEMINCLUDE)))  \
 			$(if $(NOHIDEALL),--no_hide_all,) \
-			$(DEPEND_OPTION) $(call dblquote,$(1).d) \
-                        $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACK_OPTION)$(call dblquote,$(FEEDBACKFILE))) \
+			$(if $(NO_DEPEND_GENERATE),,$(DEPEND_OPTION) $(call dblquote,$(1).d)) \
+			$(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACK_OPTION)$(call dblquote,$(FEEDBACKFILE))) \
 			$(if $(MULTIFILE_ENABLED),--multifile $(OUTPUT_OPTION) $(MULTIFILEOBJECT) \
 			--via $$(call dblquote, $(MULTIFILE_VIAFILE)),$(OUTPUT_OPTION) $$@ $$(call dblquote, $$<))  \
 	$(call endrule,compile)
 
-CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
-ifneq "$(DEPENDFILE)" ""
-ifeq ($(NO_DEPEND_INCLUDE),)
-  ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" ""
-    -include $(DEPENDFILE)
+ifeq ($(NO_DEPEND_GENERATE),)
+  CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
+endif
+
+ifneq ($(DEPENDFILE),)
+  ifeq ($(NO_DEPEND_INCLUDE),)
+    ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),)
+      -include $(DEPENDFILE)
+    endif
   endif
 endif
-endif
 
 # individual source file compilation
 SOURCETARGET_$(call sanitise,$(2)): $(1)
@@ -866,20 +869,23 @@
 			$(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(USERINCLUDE)))      \
 			$(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(SYSTEMINCLUDE)))  \
 			$(if $(NOHIDEALL),--no_hide_all,) \
-			$(DEPEND_OPTION) $(call dblquote,$(DEPENDFILENAME)) \
+			$(if $(NO_DEPEND_GENERATE),,$(DEPEND_OPTION) $(call dblquote,$(DEPENDFILENAME))) \
 			$$(call dblquote, $$<) $(OUTPUT_OPTION) $$(@) \
 	$(call endrule,e32listing)
 
 CLEANTARGETS:=$$(CLEANTARGETS) $(LISTINGTARGET)
 
-CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
-ifneq "$(DEPENDFILE)" ""
-ifeq ($(NO_DEPEND_INCLUDE),)
-  ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" ""
-    -include $(DEPENDFILE)
+ifeq ($(NO_DEPEND_GENERATE),))
+  CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
+endif
+
+ifneq ($(DEPENDFILE),)
+  ifeq ($(NO_DEPEND_INCLUDE),)
+    ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),)
+      -include $(DEPENDFILE)
+    endif
   endif
 endif
-endif
 
 endef
 
@@ -985,19 +991,21 @@
 $(e32abiv2_PREFILE): $1 $(PROJECT_META) $(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT)
 	$(call startrule,cia2cpp,,$1) \
 	$(if $(PERTURBSTARTTIME),$(RANSLEEP) $(PERTURBMSECS) ;,) \
-	$(CC) $(e32abiv2_PREFILE_OPTIONS) $(OUTPUT_OPTION) $$@ $$(call dblquote,$1) && \
-	$(CC) -M $(e32abiv2_PREFILE_OPTIONS) --depend_format=unix \
-	  $(OUTPUT_OPTION) $$@ $$(call dblquote,$1) > $(call dblquote,$(e32abiv2_PREFILE).d) \
+	$(CC) $(e32abiv2_PREFILE_OPTIONS) $(OUTPUT_OPTION) $$@ $$(call dblquote,$1) \
+	$(if $(NO_DEPEND_GENERATE),,&& $(CC) -M $(e32abiv2_PREFILE_OPTIONS) --depend_format=unix $(OUTPUT_OPTION) $$@ $$(call dblquote,$1) > $(call dblquote,$(e32abiv2_PREFILE).d)) \
 	$(call endrule,cia2cpp)
 
-CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
-ifneq "$(DEPENDFILE)" ""
-ifeq ($(NO_DEPEND_INCLUDE),)
-  ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" ""
-    -include $(DEPENDFILE)
+ifeq ($(NO_DEPEND_GENERATE),)
+  CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
+endif
+
+ifneq ($(DEPENDFILE),)
+  ifeq ($(NO_DEPEND_INCLUDE),)
+    ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),)
+      -include $(DEPENDFILE)
+    endif
   endif
 endif
-endif
 
 endef
 
@@ -1027,22 +1035,27 @@
 	$(call startrule,asmcompile,,$(2)) \
 		$(if $(PERTURBSTARTTIME),$(RANSLEEP) $(PERTURBMSECS) ;,) \
 		$(CC) $(e32abiv2_asm_OPTIONS) \
-		$(DEPEND_OPTION) $(call dblquote,$(DEPENDFILENAME)) \
+		$(if $(NO_DEPEND_GENERATE),,$(DEPEND_OPTION) $(call dblquote,$(DEPENDFILENAME))) \
 	 	$$(call dblquote, $$<) $(OUTPUT_OPTION) $$@ \
 	$(call endrule,asmcompile)
+ifeq ($(NO_DEPEND_GENERATE),)
 	$(call startrule,asmdependencies) \
 		$(CC) -M $(subst --no_rtti,,$(e32abiv2_asm_OPTIONS)) --depend_format=unix \
 	  	$(OUTPUT_OPTION) $$@ $$(call dblquote,$2) > $(call dblquote,$(DEPENDFILENAME)) \
 	$(call endrule,asmdependencies)
+endif
 
-CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
-ifneq "$(DEPENDFILE)" ""
-ifeq ($(NO_DEPEND_INCLUDE),)
-  ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" ""
-    -include $(DEPENDFILE)
+ifeq ($(NO_DEPEND_GENERATE),)
+  CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
+endif
+
+ifneq ($(DEPENDFILE),)
+  ifeq ($(NO_DEPEND_INCLUDE),)
+    ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),)
+      -include $(DEPENDFILE)
+    endif
   endif
 endif
-endif
 
 CREATABLEPATHS:=$$(CREATABLEPATHS) $(INTERMEDIATEPATH)
 
--- a/sbsv2/raptor/lib/flm/e32abiv2ani.flm	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2ani.flm	Wed Feb 17 16:53:22 2010 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -39,6 +39,15 @@
 STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB)
 CANIGNORENONCALLABLE:=1
 
+# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
+ifneq ($(DEFFILEKEYWORD),)
+POSTLINKDEFFILE:=$(DEFFILE)
+SUPPORT_FREEZE:=1
+ifeq ($(NOEXPORTLIBRARY),)
+IMPORTLIBRARYREQUIRED:=1
+endif
+endif
+
 UID2:=10003b22
 
 
--- a/sbsv2/raptor/lib/flm/e32abiv2fsy.flm	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2fsy.flm	Wed Feb 17 16:53:22 2010 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -36,6 +36,15 @@
 
 LINKER_STUB_LIBRARY:=$(STATIC_RUNTIME_DIR)/edllstub.lib
 
+# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
+ifneq ($(DEFFILEKEYWORD),)
+POSTLINKDEFFILE:=$(DEFFILE)
+SUPPORT_FREEZE:=1
+ifeq ($(NOEXPORTLIBRARY),)
+IMPORTLIBRARYREQUIRED:=1
+endif
+endif
+
 UID2:=100039df
 STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB)
 CANIGNORENONCALLABLE:=1
--- a/sbsv2/raptor/lib/flm/e32abiv2ldd.flm	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2ldd.flm	Wed Feb 17 16:53:22 2010 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -46,6 +46,15 @@
 # No dedicated library for operator new/delete functions.
 HAS_DEDICATED_OP_NEWDEL_LIB:=
 
+# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
+ifneq ($(DEFFILEKEYWORD),)
+POSTLINKDEFFILE:=$(DEFFILE)
+SUPPORT_FREEZE:=1
+ifeq ($(NOEXPORTLIBRARY),)
+IMPORTLIBRARYREQUIRED:=1
+endif
+endif
+
 BASELIBS:=edev
 UID2:=100000af
 
--- a/sbsv2/raptor/lib/flm/e32abiv2pdd.flm	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2pdd.flm	Wed Feb 17 16:53:22 2010 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -45,6 +45,14 @@
 # No dedicated library for operator new/delete functions.
 HAS_DEDICATED_OP_NEWDEL_LIB:=
 
+# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
+ifneq ($(DEFFILEKEYWORD),)
+POSTLINKDEFFILE:=$(DEFFILE)
+SUPPORT_FREEZE:=1
+ifeq ($(NOEXPORTLIBRARY),)
+IMPORTLIBRARYREQUIRED:=1
+endif
+endif
 
 BASELIBS:=edev
 UID2:=100039d0
--- a/sbsv2/raptor/lib/flm/e32abiv2pdl.flm	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2pdl.flm	Wed Feb 17 16:53:22 2010 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -38,6 +38,15 @@
 STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB)
 CANIGNORENONCALLABLE:=1
 
+# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
+ifneq ($(DEFFILEKEYWORD),)
+POSTLINKDEFFILE:=$(DEFFILE)
+SUPPORT_FREEZE:=1
+ifeq ($(NOEXPORTLIBRARY),)
+IMPORTLIBRARYREQUIRED:=1
+endif
+endif
+
 BASELIBS:=
 UID2:=10003b1c
 RESOURCEPATH:=Resource\Printers
--- a/sbsv2/raptor/lib/flm/e32abiv2plugin.flm	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2plugin.flm	Wed Feb 17 16:53:22 2010 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -19,16 +19,6 @@
 ifeq ($(TARGETTYPE),plugin)
 include $(FLMHOME)/e32abiv2defaults.mk
 
-# This is basically a DLL with some tweaks
-# If DEFFILE keyword is specified in the MMP, set the POSTLINKDEFFILE
-# and guarantee the generation of import library; if not specified import library
-# won't be generated for plugin (default)
-ifneq ($(DEFFILEKEYWORD),)
-POSTLINKDEFFILE:=$(DEFFILE)
-SUPPORT_FREEZE:=1
-IMPORTLIBRARYREQUIRED:=1
-endif
-
 # Default Linker settings for this target type
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib
 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
@@ -48,6 +38,15 @@
 AUTOEXPORTS:=_Z24ImplementationGroupProxyRi,1;
 CANIGNORENONCALLABLE:=1
 
+# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
+ifneq ($(DEFFILEKEYWORD),)
+POSTLINKDEFFILE:=$(DEFFILE)
+SUPPORT_FREEZE:=1
+ifeq ($(NOEXPORTLIBRARY),)
+IMPORTLIBRARYREQUIRED:=1
+endif
+endif
+
 # We could check the UID rather than forcing it
 # but there seems to be no point in that.
 UID2:=10009D8D
--- a/sbsv2/raptor/lib/flm/e32abiv2textnotifier2.flm	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2textnotifier2.flm	Wed Feb 17 16:53:22 2010 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -38,6 +38,15 @@
 STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB)
 CANIGNORENONCALLABLE:=1
 
+# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
+ifneq ($(DEFFILEKEYWORD),)
+POSTLINKDEFFILE:=$(DEFFILE)
+SUPPORT_FREEZE:=1
+ifeq ($(NOEXPORTLIBRARY),)
+IMPORTLIBRARYREQUIRED:=1
+endif
+endif
+
 RESOURCEPATH:=System/Notifiers
 UID2:=101fe38b
 POSTLINKDEFFILE:=$(DEFFILE)
--- a/sbsv2/raptor/lib/flm/e32abiv2var.flm	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2var.flm	Wed Feb 17 16:53:22 2010 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -19,14 +19,6 @@
 ifeq ($(TARGETTYPE),var)
 include $(FLMHOME)/e32abiv2defaults.mk
 
-# What we need to build a DLL
-# May need a dso e.g. ecust.dll
-ifeq ($(NOEXPORTLIBRARY),)
-IMPORTLIBRARYREQUIRED:=1
-endif
-POSTLINKDEFFILE:=$(DEFFILE)
-SUPPORT_FREEZE:=1
-
 # Determine what kind of entrypoint option to set
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/evar.lib
 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/evar.lib$(LINKER_ENTRYPOINT_ADORNMENT))
@@ -55,7 +47,14 @@
 # No exception support for kernel code?
 EXCEPTIONS:=$(NO_EXCEPTIONS)
 
-
+# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
+ifneq ($(DEFFILEKEYWORD),)
+POSTLINKDEFFILE:=$(DEFFILE)
+SUPPORT_FREEZE:=1
+ifeq ($(NOEXPORTLIBRARY),)
+IMPORTLIBRARYREQUIRED:=1
+endif
+endif
 
 # We are appending to CDEFS but we don't want this to affect
 # other invocations so we are going to save it on a stack
--- a/sbsv2/raptor/lib/flm/e32abiv2var2.flm	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2var2.flm	Wed Feb 17 16:53:22 2010 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -19,14 +19,6 @@
 ifeq ($(TARGETTYPE),var2)
 include $(FLMHOME)/e32abiv2defaults.mk
 
-# What we need to build a DLL
-# May need a dso e.g. ecust.dll
-ifeq ($(NOEXPORTLIBRARY),)
-IMPORTLIBRARYREQUIRED:=1
-endif
-POSTLINKDEFFILE:=$(DEFFILE)
-SUPPORT_FREEZE:=1
-
 # Determine what kind of entrypoint option to set
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/evar.lib
 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/evar.lib$(LINKER_ENTRYPOINT_ADORNMENT))
@@ -55,7 +47,14 @@
 # No exception support for kernel code?
 EXCEPTIONS:=$(NO_EXCEPTIONS)
 
-
+# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
+ifneq ($(DEFFILEKEYWORD),)
+POSTLINKDEFFILE:=$(DEFFILE)
+SUPPORT_FREEZE:=1
+ifeq ($(NOEXPORTLIBRARY),)
+IMPORTLIBRARYREQUIRED:=1
+endif
+endif
 
 # We are appending to CDEFS but we don't want this to affect
 # other invocations so we are going to save it on a stack
--- a/sbsv2/raptor/lib/flm/emulator.xml	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/lib/flm/emulator.xml	Wed Feb 17 16:53:22 2010 +0000
@@ -89,7 +89,6 @@
 		<param name='OPT.DEFINE'/>
 		<param name='OPT.DEFFILE'/>
 		<param name='OPT.DEPEND'/>
-		<param name='DEPEND_SKIP' default=''/>
 		<param name='OPT.EXPORT'/>
 		<param name='OPT.IMPORTLIB'/>
 		<param name='OPT.LISTING'/>
--- a/sbsv2/raptor/lib/flm/gccxml.flm	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/lib/flm/gccxml.flm	Wed Feb 17 16:53:22 2010 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -200,7 +200,7 @@
 define gccxmlprocesssource
 
   $(eval DEPENDFILENAME:=$(call mapsource2output,$(1),.xml.d))
-  $(eval DEPENDFILE:=$(DEPENDFILENAME))
+  $(eval DEPENDFILE:=$(wildcard $(DEPENDFILENAME)))
 
   $(call mapsource2output,$(1),.xml): $(1) $(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT)
 	$(call startrule,gccxmlprocesssource) \
@@ -214,13 +214,13 @@
 	$(call endrule,gccxmlprocesssource)
 
     CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
-    ifneq "$(DEPENDFILE)" ""
-    ifeq ($(NO_DEPEND_INCLUDE),)
-      ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" ""
-        -include $(DEPENDFILE)
+    ifneq ($(DEPENDFILE),)
+      ifeq ($(NO_DEPEND_INCLUDE),)
+        ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),)
+          -include $(DEPENDFILE)
+        endif
       endif
     endif
-    endif
 
 endef
 $(foreach SRCFILE,$(SOURCE),$(eval $(call gccxmlprocesssource,$(SRCFILE))))
--- a/sbsv2/raptor/lib/flm/standard.xml	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/lib/flm/standard.xml	Wed Feb 17 16:53:22 2010 +0000
@@ -106,7 +106,6 @@
 		<param name='DEBUG_FORMAT'/>
 		<param name='DEBUG_INFO'/>
 		<param name='DEPEND_OPTION'/>
-		<param name='DEPEND_SKIP' default=''/>
 		<param name='ELF2E32'/>
 		<param name='EFREEZE'/>
 		<param name='EFREEZE_REMOVE_OPTION' default=''/>
--- a/sbsv2/raptor/lib/flm/tools2common.flm	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/lib/flm/tools2common.flm	Wed Feb 17 16:53:22 2010 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -75,17 +75,22 @@
 $(compile2object_TARGET): $(1) $(if (DEPENDFILE),,EXPORT)
 	$(call startrule,compile2object,,$(1)) \
 	$(if $(COMPILER_PATH),COMPILER_PATH="$(COMPILER_PATH)",) \
-	$(COMPILER) $(CFLAGS) $(CDEFS.TOOLS2) -MD -MT"$$@" -MF"$(DEPENDFILENAME)" $(INCLUDES) $(OPT.O)"$$@" "$(1)" \
+	$(COMPILER) $(CFLAGS) $(CDEFS.TOOLS2) \
+	$(if $(NO_DEPEND_GENERATE),,-MD -MT"$$@" -MF"$(DEPENDFILENAME)") \
+	$(INCLUDES) $(OPT.O)"$$@" "$(1)" \
 	$(call endrule,compile2object)
 
-CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
-ifneq "$(DEPENDFILE)" ""
-ifeq ($(NO_DEPEND_INCLUDE),)
-  ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" ""
-    -include $(DEPENDFILE)
+ifeq ($(NO_DEPEND_GENERATE),)
+  CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
+endif
+
+ifneq ($(DEPENDFILE),)
+  ifeq ($(NO_DEPEND_INCLUDE),)
+    ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),)
+      -include $(DEPENDFILE)
+    endif
   endif
 endif
-endif
 
 endef
 
--- a/sbsv2/raptor/lib/flm/win32.flm	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/lib/flm/win32.flm	Wed Feb 17 16:53:22 2010 +0000
@@ -150,7 +150,7 @@
 endif
 
 # get the compiler to generate dependencies for us?
-ifeq ($(DEPEND_SKIP),)
+ifeq ($(NO_DEPEND_GENERATE),)
   CFLAGS:=$(CFLAGS) $(OPT.DEPEND)
 endif
 
@@ -379,20 +379,21 @@
 	  $(call startrule,win32compile2object,,$(1)) \
 	  $(CC) $$(if $$(filter %.C,$(1)),-lang c) $(CFLAGS) $(OPTION_CW) \
 	  $(if $(STDCPP_BUILD),$$(if $$(filter %.c %.C,$(1)),,$$(call makemacrodef,$(OPT.DEFINE),$(STDCPP_WCHAR_DEF))),) \
-	  $(DEFINES) $(INCLUDES) $(OPT.OUT)"$$@" "$(1)" && \
-	  $(GNUSED) 's#\\\\\(.\)#/\1#g;s#/ #\\\ #g;s#\([A-Za-z]:\)\\\\#\1/#g;1,1s#.*: .* \(.\)\?$$$$#$(call mapwin32file,$(1),.o): $1 \1#' $(call mapwin32file,$(1),.dep) > $(call mapwin32file,$(1),.o.d) \
+	  $(DEFINES) $(INCLUDES) $(OPT.OUT)"$$@" "$(1)" \
+	  $(if $(NO_DEPEND_GENERATE),,&& $(GNUSED) 's#\\\\\(.\)#/\1#g;s#/ #\\\ #g;s#\([A-Za-z]:\)\\\\#\1/#g;1,1s#.*: .* \(.\)\?$$$$#$(call mapwin32file,$(1),.o): $1 \1#' $(call mapwin32file,$(1),.dep) > $(call mapwin32file,$(1),.o.d)) \
 	  $(call endrule,win32compile2object)
 
-    CLEANTARGETS:=$$(CLEANTARGETS) $(call mapwin32file,$(1),.dep)
-
-    CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
-    ifneq "$(DEPENDFILE)" ""
-    ifeq ($(NO_DEPEND_INCLUDE),)
-      ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" ""
-        -include $(DEPENDFILE)
+    ifeq ($(NO_DEPEND_GENERATE),)
+      CLEANTARGETS:=$$(CLEANTARGETS) $(call mapwin32file,$(1),.dep) $(DEPENDFILENAME)
+    endif
+    
+    ifneq ($(DEPENDFILE),)
+      ifeq ($(NO_DEPEND_INCLUDE),)
+        ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),)
+          -include $(DEPENDFILE)
+        endif
       endif
     endif
-    endif
 
     # individual source file compilation
     SOURCETARGET_$(call sanitise,$(1)): $(call mapwin32file,$(1),.o)
@@ -419,28 +420,32 @@
   STDMWCINCLUDEPATHS:=$(if $(MWCSym2Includes),$(MWCSym2Includes),$(MWCSYM2INCLUDES))
 
   define win32resourcecompile
-    # Note that two calls are made to the resource compiler here.  There seems to be no means to override the
-    # default behaviour of dumping dependency files into the CWD when using -MD.  So - we compile once for real,
-    # and then pipe dependency output through SED afterwards to create the dependency file where we want it
+    # Note that, if dependency files are required, two calls are made to the resource compiler here.
+    # There seems to be no means to override the default behaviour of dumping dependency files into the CWD when using -MD.
+    # So - we compile once for real, and then pipe dependency output through SED afterwards to create the dependency file where we want it
 
     $(eval DEPENDFILENAME:=$(call mapwin32file,$(1),.res.d))
     $(eval DEPENDFILE:=$(wildcard $(DEPENDFILENAME)))
 
     $(call mapwin32file,$(1),.res): $(1) $(PROJECT_META) $(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT)
 	  $(call startrule,win32resourcecompile,,$(1)) \
-	  MWCIncludes='$(STDMWCINCLUDEPATHS)' $(RC) $(OPT.OUT)"$$@" "$(1)" && \
-	  MWCIncludes='$(STDMWCINCLUDEPATHS)' $(RC) -make $(OPT.OUT)"$$@" "$(1)" | \
-	  $(GNUSED) 's#\\\\\(.\)#/\1#g;s#/ #\\\ #g;s#\([A-Za-z]:\)\\\\#\1/#g;1,1s#.*: .* \(.\)\?$$$$#$(call mapwin32file,$(1),.res): $1 \1#' > $(call mapwin32file,$(1),.res.d) \
+	  MWCIncludes='$(STDMWCINCLUDEPATHS)' $(RC) $(OPT.OUT)"$$@" "$(1)" \
+	  $(if $(NO_DEPEND_GENERATE),,&& \
+	    MWCIncludes='$(STDMWCINCLUDEPATHS)' $(RC) -make $(OPT.OUT)"$$@" "$(1)" | \
+	    $(GNUSED) 's#\\\\\(.\)#/\1#g;s#/ #\\\ #g;s#\([A-Za-z]:\)\\\\#\1/#g;1,1s#.*: .* \(.\)\?$$$$#$(call mapwin32file,$(1),.res): $1 \1#' > $(call mapwin32file,$(1),.res.d)) \
 	  $(call endrule,win32resourcecompile)
 
-    CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
-    ifneq "$(DEPENDFILE)" ""
-    ifeq ($(NO_DEPEND_INCLUDE),)
-      ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" ""
-        -include $(DEPENDFILE)
+    ifeq ($(NO_DEPEND_GENERATE),)
+      CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME)
+    endif
+    
+    ifneq ($(DEPENDFILE),)
+      ifeq ($(NO_DEPEND_INCLUDE),)
+        ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),)
+          -include $(DEPENDFILE)
+        endif
       endif
     endif
-    endif
 
   endef
 
--- a/sbsv2/raptor/python/raptor.py	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/python/raptor.py	Wed Feb 17 16:53:22 2010 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -329,6 +329,12 @@
 		if build.timing == True:
 			cli_options += " --timing"
 
+		if build.noDependInclude == True:
+			cli_options += " --no-depend-include"
+
+		if build.noDependGenerate == True:
+			cli_options += " --no-depend-generate"
+
 
 		nc = len(self.children)
 		number_blocks = build.jobs
@@ -501,6 +507,7 @@
 		self.doExport = True
 		self.noBuild = False
 		self.noDependInclude = False
+		self.noDependGenerate = False
 		self.projects = set()
 
 		self.cache = raptor_cache.Cache(self)
@@ -619,6 +626,10 @@
 		self.noDependInclude = TrueOrFalse
 		return True
 
+	def SetNoDependGenerate(self, TrueOrFalse):
+		self.noDependGenerate = TrueOrFalse
+		return True
+
 	def SetKeepGoing(self, TrueOrFalse):
 		self.keepGoing = TrueOrFalse
 		return True
--- a/sbsv2/raptor/python/raptor_cli.py	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/python/raptor_cli.py	Wed Feb 17 16:53:22 2010 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -47,7 +47,7 @@
 LIBRARY        Create import libraries from frozen .DEF files
 LISTING        Create assembler listing files for source files
 REALLYCLEAN    Same as CLEAN but also remove exported files
-RESOURCE       Create resource files and AIFs
+RESOURCE       Create resource files
 ROMFILE        Create an IBY file to be included in a ROM
 TARGET         Create main executables
 WHAT           List all releaseable targets
@@ -119,6 +119,9 @@
 
 parser.add_option("--no-depend-include",action="store_true",dest="noDependInclude",
 				help="Do not include generated dependency files. This is only useful for extremely large non-incremental builds.")
+
+parser.add_option("--no-depend-generate",action="store_true",dest="noDependGenerate",
+				help="Do not generate dependency files. This is only useful for extremely large non-incremental builds.  Implies --no-depend-include.")
 				
 parser.add_option("-o","--orderlayers",action="store_true",dest="sys_def_order_layers",
 				help="Build layers in the System Definition XML file in the order listed or, if given, in the order of -l options.")
@@ -274,6 +277,7 @@
 				 'make_engine': Raptor.SetMakeEngine,
 				 'make_option': Raptor.AddMakeOption,
 				 'noDependInclude': Raptor.SetNoDependInclude,
+				 'noDependGenerate': Raptor.SetNoDependGenerate,
 				 'number_of_jobs': Raptor.SetJobs,
 				 'project_name' :  Raptor.AddProject,
 				 'filter_list' : Raptor.FilterList,
@@ -285,8 +289,8 @@
 				 'timing' : Raptor.SetTiming,
 				 'source_target' : Raptor.AddSourceTarget,
 				 'command_file' : CommandFile,
-				'parallel_parsing' : Raptor.SetParallelParsing,
-			 	'version' : Raptor.PrintVersion
+				 'parallel_parsing' : Raptor.SetParallelParsing,
+			 	 'version' : Raptor.PrintVersion
 				}
 
 	# Check if Quiet mode has been specified (otherwise we will make noise)
--- a/sbsv2/raptor/python/raptor_make.py	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/python/raptor_make.py	Wed Feb 17 16:53:22 2010 +0000
@@ -178,6 +178,20 @@
 			 talon_settings,
 			 self.raptor.systemFLM.Append('globals.mk') )
 
+		# Unless dependency processing has been eschewed via the CLI, use a .DEFAULT target to
+		# trap missing dependencies (ignoring user config files that we know are usually absent)
+		if not (self.raptor.noDependGenerate or self.raptor.noDependInclude):
+			self.makefile_prologue += """
+
+$(FLMHOME)/user/final.mk:
+$(FLMHOME)/user/default.flm:
+$(FLMHOME)/user/globals.mk:
+
+.DEFAULT::
+	@echo "<warning>Missing dependency detected: $@</warning>"
+
+"""
+
 		# Only output timings if requested on CLI
 		if self.raptor.timing:
 			self.makefile_prologue += "\n# Print Start-time of Makefile parsing\n" \
@@ -427,9 +441,13 @@
 						command += "  " + o
 
 			# Switch off dependency file including?
-			if self.raptor.noDependInclude:
+			if self.raptor.noDependInclude or self.raptor.noDependGenerate:
 				command += " NO_DEPEND_INCLUDE=1"
 			
+			# Switch off dependency file generation (and, implicitly, inclusion)?
+			if self.raptor.noDependGenerate:
+				command += " NO_DEPEND_GENERATE=1"
+			
 			if self.usetalon:
 				# use the descrambler if we set it up
 				command += ' TALON_DESCRAMBLE=' 
--- a/sbsv2/raptor/test/smoke_suite/basic_dependency.py	Wed Feb 17 16:37:10 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: 
-#
-
-from raptor_tests import SmokeTest
-from raptor_meta import BldInfFile
-
-def run():
-	result = SmokeTest.PASS
-	
-	t = SmokeTest()
-	t.id = "0098a"
-	t.name = "Build a component to begin with"
-	t.description = "Build a simple component"
-	t.usebash = True
-	t.command = "sbs -b smoke_suite/test_resources/simple/bld.inf"
-			
-	t.targets = [
-		"$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe",
-		"$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe.map",
-		"$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
-		"$(EPOCROOT)/epoc32/release/armv5/urel/test.exe.map",
-		"$(EPOCROOT)/epoc32/release/winscw/urel/test.exe",
-		"$(EPOCROOT)/epoc32/release/winscw/udeb/test.exe"
-		]
-	t.run()
-	if t.result == SmokeTest.FAIL:
-		result = SmokeTest.FAIL
-
-	# Ensure we don't clean up from the previous build in any subsequent runs
-	t = SmokeTest()
-	t.addbuildtargets('smoke_suite/test_resources/simple/bld.inf', [])
-	t.targets = []
-	t.usebash = True
-
-	t.id = "0098b"
-	t.name ="Touch a source file dependency and make sure thats the only one rebuilt"
-	t.description = "Touches one source file's dependency to check if its rebuilt"
-	t.command = """
-		sleep 1
-		touch smoke_suite/test_resources/simple/test.h
-		sbs -f - -b smoke_suite/test_resources/simple/bld.inf """
-	# We should only recompile 1 source file, twice for armv5 and twice for winscw
-	t.countmatch = [
-		[".*recipe name='compile'.*", 2],
-		[".*recipe name='win32compile2object'.*", 2]
-	]
-
-	t.run()
-	if t.result == SmokeTest.FAIL:
-		result = SmokeTest.FAIL
-	
-	# Invalidate the dependency file to make sure its not regenerated
-	t = SmokeTest()
-	# Ensure we don't clean up from the previous build in any subsequent runs
-	t.addbuildtargets('smoke_suite/test_resources/simple/bld.inf', [])
-	t.targets = []
-	t.usebash = True
-
-	t.id = "0098c"
-	t.name ="Invalidate the dependency file to make sure its not regenerated"
-	t.description = "Invalidate the dependency file to make sure its not regenerated"
-	fragment = BldInfFile.outputPathFragment('smoke_suite/test_resources/simple/Bld.inf')
-	t.command = """
-		sleep 1
-		touch smoke_suite/test_resources/simple/test.cpp
-		echo INVALIDATE_ARMV5_DEPENDENCY_FILE >> $(EPOCROOT)/epoc32/build/"""+ fragment + """/test_/armv5/urel/test.o.d
-		echo INVALIDATE_WINSCW_DEPENDENCY_FILE >> $(EPOCROOT)/epoc32/build/"""+ fragment + """/test_/winscw/urel/test.o.d
-		sbs -b smoke_suite/test_resources/simple/bld.inf -c armv5_urel -c winscw_urel
-		rm -rf $(EPOCROOT)/epoc32/build/"""+ fragment + """/test_/armv5/urel/test.o.d
-		rm -rf $(EPOCROOT)/epoc32/build/"""+ fragment + """/test_/winscw/urel/test.o.d"""
-	t.errors = 1 # We expect the build to fail since we messed up the dependency file
-	t.run()
-	if t.result == SmokeTest.FAIL:
-		result = SmokeTest.FAIL
-	
-	t.id = "98"
-	t.name = "basic_dependency"
-	t.result = result
-	t.print_result()
-	return t
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/dependencies.py	Wed Feb 17 16:53:22 2010 +0000
@@ -0,0 +1,194 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+
+from raptor_tests import AntiTargetSmokeTest
+from raptor_meta import BldInfFile
+import os
+
+def run():
+	t = AntiTargetSmokeTest()
+	t.usebash = True
+	
+	genericTargets = [
+		"$(EPOCROOT)/epoc32/release/armv5/udeb/dependency.exe",
+		"$(EPOCROOT)/epoc32/release/armv5/udeb/dependency.exe.map",
+		"$(EPOCROOT)/epoc32/release/armv5/urel/dependency.exe",
+		"$(EPOCROOT)/epoc32/release/armv5/urel/dependency.exe.map",
+		"$(EPOCROOT)/epoc32/release/winscw/urel/dependency.exe",
+		"$(EPOCROOT)/epoc32/release/winscw/urel/dependency.exe.map",
+		"$(EPOCROOT)/epoc32/release/winscw/udeb/dependency.exe",
+		"$(EPOCROOT)/epoc32/include/dependency.rsg",
+		"$(EPOCROOT)/epoc32/data/z/resource/apps/dependency.rsc",
+		"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/dependency.rsc",
+		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/dependency.rsc",
+		"$(EPOCROOT)/epoc32/include/main.rsg",
+		"$(EPOCROOT)/epoc32/data/z/resource/apps/main.rsc",
+		"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/main.rsc",
+		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/main.rsc"
+		]
+	windowsTargets = [
+		"$(EPOCROOT)/epoc32/release/tools2/rel/dependency.exe",
+		"$(EPOCROOT)/epoc32/tools/dependency.exe"
+	]
+	linuxTargets = [
+		"$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM_DIR)/rel/dependency",
+		"$(EPOCROOT)/epoc32/tools/dependency"
+	]
+
+	# Set general host platform specifics from first test run, but assume Windows initially
+	hostPlatform = "windows"
+	hostPlatformTargets = genericTargets + windowsTargets
+	hostPlatformOffset = ""
+
+	t.id = "0098a"
+	t.name = "baseline_build"
+	t.description = "Build a component with source and resource files that are dependent on header files exported in the build"
+	t.command = """
+		cp smoke_suite/test_resources/dependencies/src/dependency1.cpp smoke_suite/test_resources/dependencies/dependency.cpp
+		cp smoke_suite/test_resources/dependencies/src/dependency1.rss smoke_suite/test_resources/dependencies/dependency.rss
+		sbs -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel"""		
+	t.mustnotmatch = [
+		"<warning>Missing dependency detected: .*</warning>"
+	]
+	t.targets = hostPlatformTargets
+	t.run(hostPlatform)
+	if t.result == AntiTargetSmokeTest.SKIP:
+		hostPlatform = "linux"
+		hostPlatformTargets = genericTargets + linuxTargets
+		hostPlatformOffset = "$(HOSTPLATFORM_DIR)/"
+		t.targets = hostPlatformTargets
+		t.run(hostPlatform)
+	
+	# Ensure we don't clean up from the previous build in the following two tests
+	t.targets = []
+	
+	# Core expected outcome for the following two tests
+	t.mustmatch = [
+		".*recipe name='compile' target='.*dependency\.o'",
+		".*recipe name='win32compile2object' target='.*dependency\.o'",
+		".*recipe name='compile2object' target='.*dependency\.o'",
+		".*recipe name='resourcecompile' target='.*dependency\.rsc'"
+	]
+	t.countmatch = [
+		[".*recipe name='compile'", 2],
+		[".*recipe name='win32compile2object'", 2],
+		[".*recipe name='compile2object'", 1],
+		[".*recipe name='resourcecompile'", 1]
+	]
+
+	
+	t.id = "0098b"
+	t.name ="touched_header_dependencies"
+	t.description = "Touch the exported header files and check that only the related source and resource files are re-built"
+	t.command = """
+		sleep 1
+		touch $(EPOCROOT)/epoc32/include/dependency.h
+		touch $(EPOCROOT)/epoc32/include/dependency.rh
+		sbs -f- -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel"""
+	t.run()
+
+	
+	t.id = "0098c"
+	t.name ="redundant_header_dependencies"
+	t.description = """
+		Build the component again, but manipulate it so that (a) it no longer has a dependency on the exported header files and
+		(b) the header files have been removed and (c) the header files are no longer exported.  Check that only the related source
+		and resource files are re-built"""
+	t.command = """
+		cp smoke_suite/test_resources/dependencies/src/dependency2.cpp smoke_suite/test_resources/dependencies/dependency.cpp
+		cp smoke_suite/test_resources/dependencies/src/dependency2.rss smoke_suite/test_resources/dependencies/dependency.rss
+		rm -rf $(EPOCROOT)/epoc32/include/dependency.h
+		rm -rf $(EPOCROOT)/epoc32/include/dependency.rh
+		sbs -f- --noexport -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel"""
+	t.mustnotmatch = []
+	# Note that the resource build does not exhibit a missing dependency as its dependency files are generated in a separate stage where
+	# the target file isn't actually a target of that stage
+	t.mustmatch.extend([
+		"<warning>Missing dependency detected: .*/epoc32/include/dependency.h</warning>"
+		])
+	t.warnings = 1
+	t.run()
+	
+
+	t.id = "0098d"
+	t.name ="invalid_dependency_files"
+	t.description = "Invalidate dependency files, then make sure we can clean and re-build successfully"
+	buildLocation = "$(EPOCROOT)/epoc32/build/" + BldInfFile.outputPathFragment('smoke_suite/test_resources/dependencies/bld.inf') + "/dependency_"
+	t.command = """
+		sleep 1
+		touch smoke_suite/test_resources/dependencies/dependency.cpp
+		echo INVALIDATE_ARMV5_DEPENDENCY_FILE >> """+buildLocation+"""/armv5/urel/dependency.o.d
+		echo INVALIDATE_WINSCW_DEPENDENCY_FILE >> """+buildLocation+"""/winscw/urel/dependency.o.d
+		echo INVALIDATE_TOOLS2_DEPENDENCY_FILE >> """+buildLocation+"""/dependency_exe/tools2/rel/"""+hostPlatformOffset+"""dependency.o.d
+		echo INVALIDATE_RESOURCE_DEPENDENCY_FILE >> """+buildLocation+"""/dependency__resource_apps_sc.rpp.d
+		sbs -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel
+		sbs -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel clean
+		sbs -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel"""
+	t.mustmatch = []
+	t.countmatch = []
+	t.warnings = 0
+	t.errors = 1 # We expect an error from the first build due to the deliberate dependency file corruption
+	t.targets = hostPlatformTargets
+	t.run(hostPlatform)
+
+
+	t.id = "0098e"
+	t.name ="no_depend_include"
+	t.description = "Invalidate dependency files in order to confirm they aren't processed when --no-depend-include is used"
+	buildLocation = "$(EPOCROOT)/epoc32/build/" + BldInfFile.outputPathFragment('smoke_suite/test_resources/dependencies/bld.inf') + "/dependency_"
+	t.command = """
+		sleep 1
+		touch smoke_suite/test_resources/dependencies/dependency.cpp
+		echo INVALIDATE_ARMV5_DEPENDENCY_FILE >> """+buildLocation+"""/armv5/urel/dependency.o.d
+		echo INVALIDATE_WINSCW_DEPENDENCY_FILE >> """+buildLocation+"""/winscw/urel/dependency.o.d
+		echo INVALIDATE_TOOLS2_DEPENDENCY_FILE >> """+buildLocation+"""/dependency_exe/tools2/rel/"""+hostPlatformOffset+"""dependency.o.d
+		sbs --no-depend-include -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel"""
+	t.errors = 0		
+	t.targets = hostPlatformTargets
+	t.run(hostPlatform)
+
+
+	t.id = "0098f"
+	t.name ="no_depend_generate"
+	t.description = "Invalidate and remove dependency files in order to confirm they are neither included nor re-generated when --no-depend-generate is used"
+	buildLocation = "$(EPOCROOT)/epoc32/build/" + BldInfFile.outputPathFragment('smoke_suite/test_resources/dependencies/bld.inf') + "/dependency_"
+	t.command = """
+		sleep 1
+		touch smoke_suite/test_resources/dependencies/dependency.cpp
+		touch smoke_suite/test_resources/dependencies/main.cpp
+		echo INVALIDATE_ARMV5_DEPENDENCY_FILE >> """+buildLocation+"""/armv5/urel/dependency.o.d
+		echo INVALIDATE_WINSCW_DEPENDENCY_FILE >> """+buildLocation+"""/winscw/urel/dependency.o.d
+		echo INVALIDATE_TOOLS2_DEPENDENCY_FILE >> """+buildLocation+"""/dependency_exe/tools2/rel/"""+hostPlatformOffset+"""dependency.o.d
+		sbs --no-depend-generate -b smoke_suite/test_resources/dependencies/bld.inf -c default -c tools2_rel"""
+	t.antitargets = [
+		buildLocation+"/armv5/urel/main.o.d",
+		buildLocation+"/armv5/udeb/main.o.d",
+		buildLocation+"/winscw/urel/main.o.d",
+		buildLocation+"/winscw/udeb/main.o.d",
+		buildLocation+"/dependency_exe/tools2/rel/"+hostPlatformOffset+"main.o.d"
+		]
+	t.targets = hostPlatformTargets
+	t.run(hostPlatform)
+	
+	# clean-up
+	os.remove("smoke_suite/test_resources/dependencies/dependency.cpp")
+	os.remove("smoke_suite/test_resources/dependencies/dependency.rss")
+
+	t.id = "98"
+	t.name = "dependencies"
+	t.print_result()
+	return t
+
--- a/sbsv2/raptor/test/smoke_suite/make_engine_errors.py	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/make_engine_errors.py	Wed Feb 17 16:53:22 2010 +0000
@@ -31,7 +31,7 @@
 	t.usebash = True
 	t.errors = 1
 	t.returncode = 1
-	base_command = "sbs -b smoke_suite/test_resources/make_engine_errors/bld.inf -f-"
+	base_command = "sbs --no-depend-generate -b smoke_suite/test_resources/make_engine_errors/bld.inf -f-"
 	
 	t.id = "113a"
 	t.name = "gmake_engine_errors"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/dependencies/bld.inf	Wed Feb 17 16:53:22 2010 +0000
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+PRJ_EXPORTS
+inc/dependency.h
+inc/dependency.rh
+
+PRJ_PLATFORMS
+ARMV5 WINSCW TOOLS2
+
+PRJ_MMPFILES
+dependencies.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/dependencies/dependencies.mmp	Wed Feb 17 16:53:22 2010 +0000
@@ -0,0 +1,41 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+* Test component that can build as a basic EXE for both OS and tools platforms
+*
+*/
+
+TARGET			dependency
+TARGETTYPE		exe
+UID				0x100039ce 0x00000001
+SYSTEMINCLUDE	/epoc32/include
+SOURCE			main.cpp
+SOURCE			dependency.cpp
+
+#ifndef TOOLS2
+SYSTEMINCLUDE	/epoc32/include/techview
+
+START RESOURCE	main.rss
+HEADER
+TARGETPATH		/resource/apps
+END
+
+START RESOURCE	dependency.rss
+HEADER
+TARGETPATH		/resource/apps
+END
+
+LIBRARY			euser.lib
+#endif 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/dependencies/inc/dependency.h	Wed Feb 17 16:53:22 2010 +0000
@@ -0,0 +1,18 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+#define DEPENDENCY_VALUE 1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/dependencies/inc/dependency.rh	Wed Feb 17 16:53:22 2010 +0000
@@ -0,0 +1,18 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+#define DEPENDENCY_TEXT SomeText
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/dependencies/main.cpp	Wed Feb 17 16:53:22 2010 +0000
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+#ifndef __TOOLS2__
+#include <e32def.h>
+TInt E32Main()
+#else
+int main(void)
+#endif
+	{
+	return 0;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/dependencies/main.rss	Wed Feb 17 16:53:22 2010 +0000
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+NAME MAIN
+
+#include <eikon.rh>
+#include <eikcore.rsg>
+#include <appinfo.rh>
+
+RESOURCE TBUF { buf=""; }
+RESOURCE TBUF r_somestaticresource { buf="text"; }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/dependencies/src/dependency1.cpp	Wed Feb 17 16:53:22 2010 +0000
@@ -0,0 +1,20 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+#include <dependency.h>
+
+int SomeVariable = DEPENDENCY_VALUE;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/dependencies/src/dependency1.rss	Wed Feb 17 16:53:22 2010 +0000
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+NAME DEPE
+
+#include <eikon.rh>
+#include <eikcore.rsg>
+#include <appinfo.rh>
+#include <dependency.rh>
+
+RESOURCE TBUF { buf=""; }
+RESOURCE TBUF r_someresource { buf="DEPENDENCY_TEXT"; }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/dependencies/src/dependency2.cpp	Wed Feb 17 16:53:22 2010 +0000
@@ -0,0 +1,18 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+int SomeVariable = 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/dependencies/src/dependency2.rss	Wed Feb 17 16:53:22 2010 +0000
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+NAME DEPE
+
+#include <eikon.rh>
+#include <eikcore.rsg>
+#include <appinfo.rh>
+
+RESOURCE TBUF { buf=""; }
+RESOURCE TBUF r_someresource { buf="SomeText"; }
--- a/sbsv2/raptor/test/unit_suite/raptor_cli_unit.py	Wed Feb 17 16:37:10 2010 +0000
+++ b/sbsv2/raptor/test/unit_suite/raptor_cli_unit.py	Wed Feb 17 16:53:22 2010 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -14,7 +14,7 @@
 # Description: 
 #
 
-1# Unit Test for the Raptor_cli (command line interface) module
+# Unit Test for the Raptor_cli (command line interface) module
 
 import raptor_cli
 import sys
@@ -42,6 +42,8 @@
 		self.allowCommandLineOverrides = True
 		self.ignoreOsDetection = False
 		self.filterList = "filter_terminal,filter_logfile"
+		self.noDependInclude = False
+		self.noDependGenerate = False
 		
 	def AddConfigName(self,configname):
 		self.listconfig.append(configname)
@@ -128,6 +130,11 @@
 		return True
 	
 	def SetNoDependInclude(self, yesOrNo):
+		self.noDependInclude = yesOrNo
+		return True
+
+	def SetNoDependGenerate(self, yesOrNo):
+		self.noDependGenerate = yesOrNo
 		return True
 		
 	def SetJobs(self, N):
@@ -187,7 +194,9 @@
 				'--export-only',
 				'--source-target', 'some_source_file.cpp',
 				'--source-target', 'some_resource_file.rss',
-				'--pp', 'on']
+				'--pp', 'on',
+				'--no-depend-include',
+				'--no-depend-generate']
 		
 		raptor_cli.GetArgs(self,args)
 		self.assertEqual(self.RunningQuiet,False)
@@ -206,6 +215,8 @@
 		self.assertEqual(self.targets[0], 'some_source_file.cpp')
 		self.assertEqual(self.targets[1], 'some_resource_file.rss')
 		self.assertEqual(self.pp, 'on')
+		self.assertEqual(self.noDependInclude, True)
+		self.assertEqual(self.noDependGenerate, True)
 
 # run all the tests