--- 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