DPDEF142718 Incremental rebuild fails if dependent files deleted (resurrection through merge). fix
authorJon Chatten
Mon, 15 Feb 2010 15:17:20 +0000
branchfix
changeset 229 b719d614d652
parent 209 604f2aceff59 (current diff)
parent 228 cfeb5b628048 (diff)
child 230 3d05ccc51d1a
DPDEF142718 Incremental rebuild fails if dependent files deleted (resurrection through merge).
sbsv2/raptor/test/smoke_suite/basic_dependency.py
--- a/sbsv2/raptor/RELEASE-NOTES.txt	Mon Feb 15 13:33:43 2010 +0000
+++ b/sbsv2/raptor/RELEASE-NOTES.txt	Mon Feb 15 15:17:20 2010 +0000
@@ -7,6 +7,9 @@
 - Better error messages for make-engine selection.  e.g. "sbs -e arm" will now produce a useful error message rather than a traceback. "arm" is a real variant but it's not a make engine.  In the past sbs would have tried to use it and would have failed with a complicated traceback. Also doesn't traceback for non-existent make engines.
 - sbs_filter chose wrong embedded default python version. Set to 2.6.4 now.
 - FilterCheck did not check files when run from sbs_filter
+- 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.1
 
--- a/sbsv2/raptor/lib/flm/e32abiv2.flm	Mon Feb 15 13:33:43 2010 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2.flm	Mon Feb 15 15:17:20 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/emulator.xml	Mon Feb 15 13:33:43 2010 +0000
+++ b/sbsv2/raptor/lib/flm/emulator.xml	Mon Feb 15 15:17:20 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	Mon Feb 15 13:33:43 2010 +0000
+++ b/sbsv2/raptor/lib/flm/gccxml.flm	Mon Feb 15 15:17:20 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	Mon Feb 15 13:33:43 2010 +0000
+++ b/sbsv2/raptor/lib/flm/standard.xml	Mon Feb 15 15:17:20 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	Mon Feb 15 13:33:43 2010 +0000
+++ b/sbsv2/raptor/lib/flm/tools2common.flm	Mon Feb 15 15:17:20 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	Mon Feb 15 13:33:43 2010 +0000
+++ b/sbsv2/raptor/lib/flm/win32.flm	Mon Feb 15 15:17:20 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	Mon Feb 15 13:33:43 2010 +0000
+++ b/sbsv2/raptor/python/raptor.py	Mon Feb 15 15:17:20 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	Mon Feb 15 13:33:43 2010 +0000
+++ b/sbsv2/raptor/python/raptor_cli.py	Mon Feb 15 15:17:20 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	Mon Feb 15 13:33:43 2010 +0000
+++ b/sbsv2/raptor/python/raptor_make.py	Mon Feb 15 15:17:20 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	Mon Feb 15 13:33:43 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	Mon Feb 15 15:17:20 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	Mon Feb 15 13:33:43 2010 +0000
+++ b/sbsv2/raptor/test/smoke_suite/make_engine_errors.py	Mon Feb 15 15:17:20 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	Mon Feb 15 15:17:20 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	Mon Feb 15 15:17:20 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	Mon Feb 15 15:17:20 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	Mon Feb 15 15:17:20 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	Mon Feb 15 15:17:20 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	Mon Feb 15 15:17:20 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	Mon Feb 15 15:17:20 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	Mon Feb 15 15:17:20 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	Mon Feb 15 15:17:20 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	Mon Feb 15 15:17:20 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	Mon Feb 15 13:33:43 2010 +0000
+++ b/sbsv2/raptor/test/unit_suite/raptor_cli_unit.py	Mon Feb 15 15:17:20 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