diff -r d5ccdec632f8 -r b9e5cf94aac3 sbsv2/raptor/lib/flm/resource.flm
--- a/sbsv2/raptor/lib/flm/resource.flm Tue Apr 06 19:08:28 2010 +0100
+++ b/sbsv2/raptor/lib/flm/resource.flm Wed Apr 07 18:33:12 2010 +0100
@@ -59,7 +59,7 @@
# which produces the header.
HEADLANG:=$(lastword $(LANGUAGES:SC=sc))
else
- HEADLANG:=
+ HEADLANG:=
RESOURCEHEADER:=
endif
@@ -119,7 +119,7 @@
# We intend to generate the resource in an intermediate locationand copy to the final destination to
# ensure that when the "same" resource is built into separare locations it is
-RSCCOPYDIRS:=$(RESBASE)
+RSCCOPYDIRS:=$(RSCDIR)
# additional binary resource copies performed based on BINCOPYDIRS
ifneq ($(BINCOPYDIRS),)
RSCCOPYDIRS:=$(RSCCOPYDIRS) $(subst //,/,$(patsubst %,%/$(if $(TARGETPATH),/z/$(TARGETPATH),),$(BINCOPYDIRS)))
@@ -136,20 +136,22 @@
ifeq ($(TARGET_$(call sanitise,$1)),)
TARGET_$(call sanitise,$1):=1
- $(if $(FLMDEBUG),$(info preprocessresource: $(1) for $(2) LANG:$(3)))
+ $(if $(FLMDEBUG),$(info preprocessresource: $(1) for $(2) LANG:$(3)))
- # Correct dependency information when a header file can't be found:
- # assume its in epoc32\include
-
- ifneq ($(NO_DEPEND_GENERATE),)
- # This version minimises the size of dependency files, to contain only enough information
- # to allow the ordering to be correct.
- DEPENDENCY_CORRECTOR:={ $(GNUSED) -n -r '1 p;\# [^ \/]+\.((rsg)|(mbg))#I {s#([^ \/]+\.((rsg)|(mbg)))(.*[\\\\])?$$$$$$$$# $(EPOCROOT)\/epoc32\/include\/\1 [\\\\]#ig; p}' && echo "" ; }
- else
- # Generate full dependency information with correction only
- DEPENDENCY_CORRECTOR:=$(GNUSED) -r 's% ([^ \/]+\.((rsg)|(mbg)))% $(EPOCROOT)\/epoc32\/include\/\1%ig'
- endif
+ # Correct dependency information when a header file can't be found.
+ # If the c preprocessor can't find a dependency it appears as it did in the #include statement
+ # e.g. "filename.mbg" or "filename.rsg" in the dependency file.
+ # we can correct the dependencies by assuming that the file will be in epoc32\include as this is the default
+ ifneq ($(NO_DEPEND_GENERATE),)
+ # This version minimises the size of dependency files, to contain only .mbg and .rsg deps.
+ # It allows resources to be built in the right order but doesn't impose the weight of
+ # of full dependency information which can overwhelm make in large builds.
+ DEPENDENCY_CORRECTOR:={ $(GNUSED) -n -r '1 p;\% [^ \/]+\.((rsg)|(mbg))%I {s% ([^ \/]+\.((rsg)|(mbg)))% $(EPOCROOT)\/epoc32\/include\/\1%ig; p}' && echo "" ; }
+ else
+ # Generate full dependency information
+ DEPENDENCY_CORRECTOR:=$(GNUSED) -r 's% ([^ \/]+\.((rsg)|(mbg)))% $(EPOCROOT)\/epoc32\/include\/\1%ig'
+ endif
RESOURCE_DEPS:: $(1).d
@@ -176,7 +178,7 @@
ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" ""
ifeq "$(filter RESOURCE_DEPS,$(call uppercase,$(MAKECMDGOALS)))" ""
-include $(DEPENDFILE)
- endif
+ endif
endif
endif
@@ -234,6 +236,8 @@
# are any new copies to be made for this variant. e.g. winscw requires that we make
# some extra copies.
+ $(if $(FLMDEBUG),$(info resource copies of $(notdir $1) in: $(RSCCOPYDIRS)))
+ $(foreach F,$(sort $(patsubst %,%/$(notdir $(1)),$(RSCCOPYDIRS))),$(call copyresource,$(1),$(F)))
$(foreach F,$(sort $(patsubst %,%/$(notdir $(1)),$(RSCCOPYDIRS))),$(call copyresource,$(1),$(F)))
# individual source file compilation
@@ -252,7 +256,7 @@
ifeq ($(TARGET_$(call sanitise,$1)),)
TARGET_$(call sanitise,$1):=1
- $(if $(FLMDEBUG),$(info resourceheader: $(1) from $(2) LANG:$(3)))
+ $(if $(FLMDEBUG),$(info resourceheader: $(1) from $(2) LANG:$(3)))
RESOURCE:: $(1)