sbsv2/raptor/lib/flm/romfile.mk
changeset 28 b8fa7dfeeaa1
parent 13 c327db0664bb
equal deleted inserted replaced
27:3a31ca4b29c4 28:b8fa7dfeeaa1
     1 # romfile.mk
     1 # Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     2 # All rights reserved.
       
     3 # This component and the accompanying materials are made available
       
     4 # under the terms of the License "Eclipse Public License v1.0"
       
     5 # which accompanies this distribution, and is available
       
     6 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
     2 #
     7 #
     3 # Copyright (c) 2008 : Symbian Software Limited. All rights reserved.
     8 # Initial Contributors:
       
     9 # Nokia Corporation - initial contribution.
     4 #
    10 #
     5 # define macros that are needed by romfile creation
    11 # Contributors:
       
    12 #
       
    13 # Description:
       
    14 #
     6 
    15 
     7 define DoRomSet
    16 EPOC_ROOT:=$(patsubst %/,%,$(EPOCROOT))
       
    17 TOBLDINF:=$(dir $(subst :,,$(subst $(EPOC_ROOT)/,,$(COMPONENT_META))))
     8 
    18 
     9 ifeq ($(call uppercase,$(TARGETTYPE)),LIB)
    19 ifeq ($(ROMFILE_$(call sanitise,$(TOBLDINF)$(TARGET).$(REQUESTEDTARGETEXT))),)
    10 BUILDROMTARGET:=
    20     ROMFILE_$(call sanitise,$(TOBLDINF)$(TARGET).$(REQUESTEDTARGETEXT)):=1
       
    21     ROMDIR:=$(EPOC_ROOT)/epoc32/rom/$(TOBLDINF)
       
    22 
       
    23     # Default values
       
    24     ROMFILETYPE:=file
       
    25     ROMFILE:=$(TARGET).$(REQUESTEDTARGETEXT)
       
    26     ROMPATH:=$(if $(TARGETPATH),$(TARGETPATH)/,sys/bin/)
       
    27     ROMDECORATIONS:=
       
    28     ROMFILETYPE_RAM:=data
       
    29     ROMFILE_RAM:=$(TARGET).$(REQUESTEDTARGETEXT)
       
    30     ROMPATH_RAM:=sys/bin/
       
    31     BUILDROMTARGET:=1
       
    32     ABIDIR:=MAIN
       
    33 
       
    34     define DoRomSet
       
    35     ifeq ($(call uppercase,$(TARGETTYPE)),LIB)
       
    36     BUILDROMTARGET:=
       
    37     endif
       
    38 
       
    39     ifeq ($(call uppercase,$(TARGETTYPE)),KEXT)
       
    40     ROMFILETYPE:=extension[MAGIC]
       
    41     ABIDIR:=KMAIN
       
    42     endif
       
    43     ifeq ($(call uppercase,$(TARGETTYPE)),LDD)
       
    44     ROMFILETYPE:=device[MAGIC]
       
    45     ABIDIR:=KMAIN
       
    46     endif
       
    47     ifeq ($(call uppercase,$(TARGETTYPE)),PDD)
       
    48     ROMFILETYPE:=device[MAGIC]
       
    49     ABIDIR:=KMAIN
       
    50     endif
       
    51     ifeq ($(call uppercase,$(TARGETTYPE)),VAR)
       
    52     ROMFILETYPE:=variant[MAGIC]
       
    53     ABIDIR:=KMAIN
       
    54     endif
       
    55     ifeq ($(call uppercase,$(TARGETTYPE)),KDLL)
       
    56     ABIDIR:=KMAIN
       
    57     endif
       
    58 
       
    59     ifneq ($(CALLDLLENTRYPOINTS),)
       
    60     ROMFILETYPE:=dll
       
    61     endif
       
    62     ifeq ($(ROMFILETYPE),primary)
       
    63     ABIDIR:=KMAIN
       
    64     endif
       
    65     endef
       
    66 
       
    67     $(eval $(call DoRomSet))
       
    68 
       
    69     ifneq ($(EPOCFIXEDPROCESS),)
       
    70         ROMDECORATIONS:=$(ROMDECORATIONS) fixed
       
    71     endif
       
    72     ifeq ($(PAGED),1)
       
    73         ROMDECORATIONS:=$(ROMDECORATIONS) paged
       
    74     endif
       
    75     ifeq ($(PAGED),0)
       
    76         ROMDECORATIONS:=$(ROMDECORATIONS) unpaged
       
    77     endif
       
    78 
       
    79 
       
    80     DATATEXT:=
       
    81     ifeq ($(TESTCODE),TRUE)
       
    82     	# Add 'TEST' to the .iby filename
       
    83     	ROMTEST:=test
       
    84         ifeq ($(TEST_OPTION),BOTH)
       
    85             DATATEXT:="data=/epoc32/data/z/test/$(MODULE)/$(VARIANTPLATFORM).auto.bat test/$(MODULE).auto.bat"\n"data=/epoc32/data/z/test/$(MODULE)/$(VARIANTPLATFORM).manual.bat test/$(MODULE).manual.bat"
       
    86         else
       
    87             ifneq ($(TEST_OPTION),NONE)
       
    88                 DATATEXT:="data=/epoc32/data/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TEST_OPTION).bat test/$(MODULE).$(TEST_OPTION).bat"
       
    89             endif
       
    90         endif
       
    91     endif
       
    92 
       
    93     # ROMTARGET
       
    94     ifneq ($(ROMTARGET),)
       
    95         ifneq ($(words $(ROMTARGET)),1)
       
    96             ROMTARGETALL:=$(ROMTARGET)
       
    97             ROMTARGET:=$(word 1,$(ROMTARGET))
       
    98         endif
       
    99 
       
   100         ifeq ($(ROMTARGET),<none>)
       
   101             BUILDROMTARGET:=
       
   102         else
       
   103             ifneq ($(ROMTARGET),+)
       
   104                 ifneq ($(notdir $(ROMTARGET)),)
       
   105                     ROMFILE:=$(notdir $(ROMTARGET))
       
   106                 endif
       
   107                 ifneq ($(dir $(ROMTARGET)),./)
       
   108                     ROMPATH:=$(dir $(ROMTARGET))
       
   109                 endif
       
   110             endif
       
   111         endif
       
   112     endif
    11 endif
   113 endif
    12 
   114 
    13 ifeq ($(call uppercase,$(TARGETTYPE)),KEXT)
   115 ROMFILENAME:=$(ROMDIR)$(PLATFORM)$(ROMTEST).iby
    14 ROMFILETYPE:=extension[MAGIC]
   116 
    15 ABIDIR:=KMAIN
   117 # RAMTARGET
    16 endif
   118 ifneq ($(RAMTARGET),)
    17 ifeq ($(call uppercase,$(TARGETTYPE)),LDD)
   119     ROMDECORATIONS_RAM:=" attrib=r"
    18 ROMFILETYPE:=device[MAGIC]
   120     ifneq ($(RAMTARGET),+)
    19 ABIDIR:=KMAIN
   121         ifneq ($(notdir $(RAMTARGET)),)
    20 endif
   122             ROMFILE_RAM:=$(notdir $(RAMTARGET))
    21 ifeq ($(call uppercase,$(TARGETTYPE)),PDD)
   123         endif
    22 ROMFILETYPE:=device[MAGIC]
   124         ifneq ($(dir $(RAMTARGET)),./)
    23 ABIDIR:=KMAIN
   125             ROMPATH_RAM:=$(dir $(RAMTARGET))
    24 endif
   126         endif
    25 ifeq ($(call uppercase,$(TARGETTYPE)),VAR)
   127     endif
    26 ROMFILETYPE:=variant[MAGIC]
       
    27 ABIDIR:=KMAIN
       
    28 endif
       
    29 ifeq ($(call uppercase,$(TARGETTYPE)),KDLL)
       
    30 ABIDIR:=KMAIN
       
    31 endif
   128 endif
    32 
   129 
    33 ifneq ($(CALLDLLENTRYPOINTS),)
   130 define BuildRomfileTarget
    34 ROMFILETYPE:=dll
   131 $(ALLTARGET)::ROMFILE
    35 endif
   132 ROMFILE::
    36 ifeq ($(ROMFILETYPE),primary)
   133 	$(call startrule,rombuild) \
    37 ABIDIR:=KMAIN
   134 	$(GNUMKDIR) -p $(ROMDIR) \
       
   135 	$(if $(ROMFILE_CREATED_$(TOBLDINF)),,&& echo -e "// $(subst $(EPOC_ROOT)/,,$(ROMFILENAME))\n//\n$(DATATEXT)" > $(ROMFILENAME)) \
       
   136 	$(if $(BUILDROMTARGET),&& echo "$(ROMFILETYPE)=/epoc32/release/##$(ABIDIR)##/##BUILD##/$(TARGET)$(if $(EXPLICITVERSION),{$(VERSIONHEX)},).$(REQUESTEDTARGETEXT)   $(1)$(ROMDECORATIONS)" >> $(ROMFILENAME)) \
       
   137 	$(if $(RAMTARGET),&& echo "$(ROMFILETYPE_RAM)=/epoc32/release/##$(ABIDIR)##/##BUILD##/$(TARGET)$(if $(EXPLICITVERSION),{$(VERSIONHEX)},).$(REQUESTEDTARGETEXT)   $(ROMPATH_RAM)$(ROMFILE_RAM)$(ROMDECORATIONS_RAM)" >> $(ROMFILENAME)) \
       
   138 	$(call endrule,buildromfiletarget)
       
   139 endef
       
   140 
       
   141 # When VARIANTTYPE changes, romfile is finished,
       
   142 # apart from if this is a new component......
       
   143 ifneq ($(PREVIOUSVARIANTTYPE),)
       
   144     ifneq ($(VARIANTTYPE),$(PREVIOUSVARIANTTYPE))
       
   145         ifneq ($(ROMFILE_CREATED_$(TOBLDINF)),)
       
   146             ROMFILEFINISHED:=1
       
   147         else
       
   148             ROMFILEFINISHED:=
       
   149         endif
       
   150     endif
    38 endif
   151 endif
    39 
   152 
    40 endef
   153 # When romfile is finished, don't continue to add to it
       
   154 ifeq ($(ROMFILEFINISHED),)
       
   155     $(eval $(call BuildRomfileTarget,$(ROMPATH)$(ROMFILE)))
       
   156 endif
       
   157 
       
   158 # Don't allow romfile to be recreated for every MMP
       
   159 ifeq ($(ROMFILE_CREATED_$(TOBLDINF)),)
       
   160     ROMFILE_CREATED_$(TOBLDINF):=1
       
   161 endif
       
   162 
       
   163 # Build other ROMTARGETs if there is more than one
       
   164 ifneq ($(ROMTARGETALL),)
       
   165     RAMTARGET:=
       
   166     $(foreach ROMTARGET,$(wordlist 2,$(words $(ROMTARGETALL)),$(ROMTARGETALL)),$(eval $(call BuildRomfileTarget,$(ROMTARGET))))
       
   167     ROMTARGETALL:=
       
   168 endif
       
   169 
       
   170 # Keep track of variant type while romfile is being created
       
   171 PREVIOUSVARIANTTYPE:=$(VARIANTTYPE)
       
   172 
       
   173 WHATRELEASE:=$(WHATRELEASE) $(ROMFILENAME)
    41 
   174 
    42 
   175