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 |