23 # @param values - The possible values for the item, only for variables |
23 # @param values - The possible values for the item, only for variables |
24 # @param desc - Descrition of the item |
24 # @param desc - Descrition of the item |
25 |
25 |
26 add_help =\ |
26 add_help =\ |
27 $(if $(filter help%,$(MAKECMDGOALS)),\ |
27 $(if $(filter help%,$(MAKECMDGOALS)),\ |
28 $(eval __i_type := $(call select,$(call substr,1,1,$(strip $2)),t,t,v))\ |
28 $(eval __i_type := $(if $(filter t% T%,$2),t,v))\ |
29 $(eval __i_isvar := $(call equal,$(__i_type),v))\ |
29 $(eval __i_isvar := $(filter v,$(__i_type)))\ |
30 $(foreach name,$1,\ |
30 $(foreach name,$1,\ |
31 $(eval HELP.$(name).TYPE := $(__i_type))\ |
31 $(eval HELP.$(name).TYPE := $(__i_type))\ |
32 $(if $(__i_isvar),$(eval HELP.$(name).VALUES = $3))\ |
32 $(if $(__i_isvar),$(eval HELP.$(name).VALUES = $3))\ |
33 $(eval HELP.$(name).DESC = $(strip $(eval __i_desc := $(if $(__i_isvar),$4,$3))\ |
33 $(eval HELP.$(name).DESC = $(strip $(eval __i_desc = $(if $(__i_isvar),$$4,$$3))\ |
34 $(foreach p,$(if $(__i_isvar),,4) 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20,\ |
34 $(foreach p,$(if $(__i_isvar),,4) 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20,\ |
35 $(if $(call defined,$p),$(eval __i_desc := $(__i_desc)$(,)$($p)))))$(__i_desc)))) |
35 $(if $(call defined,$p),$(eval __i_desc = $(value __i_desc)$(,)$$($p))))\ |
|
36 $(subst $$1,$(name),$(subst $$2,$(__i_type),$(__i_desc))))))) |
36 |
37 |
37 get_helpitems =\ |
38 get_helpitems =\ |
38 $(strip $(eval __i_list := $(filter HELP.%.TYPE,$(.VARIABLES)))\ |
39 $(strip $(eval __i_list := $(filter HELP.%.TYPE,$(.VARIABLES)))\ |
39 $(foreach var,$(__i_list),$(call select,$($(var)),$1,$(patsubst HELP.%.TYPE,%,$(var))))) |
40 $(foreach var,$(__i_list),$(call select,$($(var)),$1,$(patsubst HELP.%.TYPE,%,$(var))))) |
40 |
41 |
41 #============================================================================== |
42 #============================================================================== |
42 |
43 |
43 .PHONY: help help-config help-target help-variable |
44 .PHONY: help help-config |
44 |
45 |
45 .DEFAULT_GOAL := help |
46 help:: ;@$(call IMAKER,HELPUSAGE) |
46 |
47 |
47 help:: ;@$(call IMAKER,HELPUSAGE:b) |
48 help-config: ;@$(call IMAKER,HELPCFG) |
48 |
49 |
49 help-config: ;@$(call IMAKER,HELPCFG:b) |
50 help-%: ;@$(call IMAKER,HELP) |
50 |
|
51 help-target help-variable: $$@-* ; |
|
52 |
|
53 help-target-%-list help-target-%-wiki help-target-% \ |
|
54 help-variable-%-list help-variable-%-value help-variable-%-all help-variable-%-wiki help-variable-% \ |
|
55 help-%-list help-%:\ |
|
56 ;@$(call IMAKER) |
|
57 |
51 |
58 # Help usage info |
52 # Help usage info |
59 define HELP_USAGE |
53 define HELP_USAGE |
60 |
54 |
61 Print help data on documented iMaker API items; targets and variables. |
55 Print help data on documented iMaker API items; targets and variables. |
62 Wildcards *, ? and [] can be used with % patterns. |
56 Wildcards *, ? and [..] can be used with % patterns. |
63 |
57 |
64 help : Print this message. |
58 help : Print this message. |
65 help-% : $(HELP.help-%.DESC) |
59 help-% : $(HELP.help-%.DESC) |
66 help-%-list : $(HELP.help-%-list.DESC) |
60 help-%-list : $(HELP.help-%-list.DESC) |
67 |
61 |
105 $(eval __i_desc := $(filter-out %-$(__i_var)-list %-$(__i_var)-value,$(__i_helpgoal)))\ |
94 $(eval __i_desc := $(filter-out %-$(__i_var)-list %-$(__i_var)-value,$(__i_helpgoal)))\ |
106 $(eval __i_wiki := $(if $(filter %-$(__i_var)-wiki,$(__i_helpgoal)),\ * ))\ |
95 $(eval __i_wiki := $(if $(filter %-$(__i_var)-wiki,$(__i_helpgoal)),\ * ))\ |
107 $(call peval,\ |
96 $(call peval,\ |
108 my @var = ($(foreach var,$(foreach var2,$(subst $(,), ,$(__i_var)),$(call filterwcard,$(var2),$(__i_list))),{\ |
97 my @var = ($(foreach var,$(foreach var2,$(subst $(,), ,$(__i_var)),$(call filterwcard,$(var2),$(__i_list))),{\ |
109 n=>$(call pquote,$(var))\ |
98 n=>$(call pquote,$(var))\ |
110 $(eval __i_isvar := $(call equal,$(HELP.$(var).TYPE),v))\ |
99 $(eval __i_isvar := $(filter v,$(HELP.$(var).TYPE)))\ |
111 $(if $(__i_value),$(if $(__i_isvar),$(,)v=>$(call pquote,$(call def2str,$($(var))))))\ |
100 $(if $(__i_value),$(if $(__i_isvar),$(,)v=>$(call pquote,$(call def2str,$($(var))))))\ |
112 $(,)t=>q($(HELP.$(var).TYPE))\ |
101 $(,)t=>q($(HELP.$(var).TYPE))\ |
113 $(if $(__i_desc),\ |
102 $(if $(__i_desc),\ |
114 $(,)d=>$(call pquote,$(HELP.$(var).DESC))\ |
103 $(,)d=>$(call pquote,$(HELP.$(var).DESC))\ |
115 $(if $(__i_isvar),$(,)V=>$(call pquote,$(HELP.$(var).VALUES)))) }$(,)));\ |
104 $(if $(__i_isvar),$(,)V=>$(call pquote,$(HELP.$(var).VALUES)))) }$(,)));\ |
116 imaker:DPrint(1, map($(if $(__i_desc),$(if $(__i_wiki),,q(-) x 40 . qq(\n) .))\ |
105 DPrint(1, map($(if $(__i_desc),$(if $(__i_wiki),,q(-) x 40 . qq(\n) .))\ |
117 qq($(if $(__i_wiki),== $$_->{n} ==,$$_->{n}))\ |
106 qq($(if $(__i_wiki),== $$_->{n} ==,$$_->{n}))\ |
118 $(if $(__i_value),. ($$_->{t} eq q(v) ? qq( = `$$_->{v}$') : q())) . qq(\n)\ |
107 $(if $(__i_value),. ($$_->{t} eq q(v) ? qq( = `$$_->{v}') : q())) . qq(\n)\ |
119 $(if $(__i_desc),.\ |
108 $(if $(__i_desc),.\ |
120 qq($(__i_wiki)Type : ) . ($$_->{t} eq q(t) ? qq(Target\n) : qq(Variable\n)) .\ |
109 qq($(__i_wiki)Type : ) . ($$_->{t} eq q(t) ? qq(Target\n) : qq(Variable\n)) .\ |
121 qq($(__i_wiki)Description: $$_->{d}\n) .\ |
110 qq($(__i_wiki)Description: $$_->{d}\n) .\ |
122 ($$_->{t} eq q(v) ? qq($(__i_wiki)Values : $$_->{V}\n) : q())), @var));\ |
111 ($$_->{t} eq q(v) ? qq($(__i_wiki)Values : $$_->{V}\n) : q())), @var));\ |
123 return(q())) |
112 return(q())) |
124 |
113 |
125 BUILD_HELPCFG =\ |
114 BUILD_HELPCFG =\ |
126 echo | Finding available configuration file(s):\n\ |
115 echo | Finding available configuration file(s):\n\ |
127 $(call get_cfglist,$(CONFIGROOT),image_conf_.*\.mk,2)\n |
116 $(call peval,return(join(q(), map(Quote(qq($$_\n)), GetConfmkList(1))))) |
128 |
117 |
129 get_cfglist =\ |
118 |
130 $(call peval,\ |
119 ############################################################################### |
131 use File::Find;\ |
120 # print-% |
132 my ($$dir, @conf) = (GetAbsDirname($(call pquote,$1)), ());\ |
121 |
133 find(sub {\ |
122 BUILD_PRINTVAR = $(call peval,DPrint(1,\ |
134 push(@conf, $$File::Find::name) if\ |
123 $(foreach var1,$(subst $(,), ,$(subst print-,,$(filter print-%,$(MAKECMDGOALS)))),\ |
135 /$2$$/s && (($$File::Find::name =~ tr/\///) > (($$dir =~ tr/\///) + $3));\ |
124 $(foreach var2,$(call filterwcard,$(var1),$(filter-out BUILD_PRINTVAR,$(filter $(word 1,$(call substm,* ? [, ,$(var1)))%,$(.VARIABLES)))),\ |
136 }, $$dir);\ |
125 $(call pquote,$(var2) = `$(call def2str,$($(var2)))').qq(\n),))); return(q())) |
137 return(join(q(\n), map(Quote($$_), sort({lc($$a) cmp lc($$b)} @conf))))) |
126 |
|
127 print-%: ;@$(call IMAKER,PRINTVAR) |
|
128 |
|
129 $(call add_help,print-%,t,Print the value(s) of the given variable(s). Wildcards *, ? and [..] can be used in variable names.) |
138 |
130 |
139 |
131 |
140 ############################################################################### |
132 ############################################################################### |
141 # Helps |
133 # Helps |
142 |
134 |
143 $(call add_help,CONFIGROOT,v,(string),Define the default configuration root directory.) |
135 $(call add_help,CONFIGROOT,v,(string),Define the default configuration root directory.) |
144 $(call add_help,USE_OVERRIDE,v,([0|1]),Define whether the override.pm Buildrom.pl plugin is used.) |
|
145 $(call add_help,USE_PAGING,v,((0|rom|code[:[(1|2|3)]+]?)),Define the usage of On Demand Pagin (ODP). (E.g. 0,rom,code).) |
136 $(call add_help,USE_PAGING,v,((0|rom|code[:[(1|2|3)]+]?)),Define the usage of On Demand Pagin (ODP). (E.g. 0,rom,code).) |
146 $(call add_help,USE_ROFS,v,([[dummy|]0..6][,[dummy|]0..6]*),Define the rofs sections in use. A comma separated list can be given of possible values. (E.g. 1,2,3).) |
137 $(call add_help,USE_ROFS,v,([[dummy|]0..6][,[dummy|]0..6]*),Define the rofs sections in use. A comma separated list can be given of possible values. (E.g. 1,2,3).) |
147 $(call add_help,USE_ROMFILE,v,([0|1]),Define whether the \epoc32\rombuild\romfiles.txt is used. Files in romfiles are automatically moved to ROM, everything else in core is moved to ROFS1.) |
138 $(call add_help,USE_ROMFILE,v,([0|1]),Define whether the \epoc32\rombuild\romfiles.txt is used. Files in romfiles are automatically moved to ROM, everything else in core is moved to ROFS1.) |
148 $(call add_help,USE_SYMGEN,v,([0|1]),Generate the rom symbol file. 0=Do not generate, 1=Generate) |
139 $(call add_help,USE_SYMGEN,v,([0|1]),Generate the rom symbol file. 0=Do not generate, 1=Generate) |
149 $(call add_help,USE_UDEB,v,([0|1|full]),Include the usage of the debug binary *.txt to define the list of binaries that are taken from udeb folder instead of the urel.) |
140 $(call add_help,USE_UDEB,v,([0|1|full]),Include the usage of the debug binary *.txt to define the list of binaries that are taken from udeb folder instead of the urel.) |
150 $(call add_help,USE_VERGEN,v,([0|1]),Use iMaker version info generation) |
141 $(call add_help,KEEPTEMP,v,([0|1]),Keep the buildrom.pl temp files (copied to the OUTDIR). E.g. tmp1.oby tmp2.oby..tmp9.oby) |
151 $(call add_help,KEEPTEMP,v,([0|1]),Keep the buildrom.pl temp files (copied to the WORKDIR). E.g. tmp1.oby tmp2.oby..tmp9.oby) |
|
152 $(call add_help,LABEL,v,(string),A label to the NAME of the image) |
142 $(call add_help,LABEL,v,(string),A label to the NAME of the image) |
153 $(call add_help,NAME,v,(string),The name of the image) |
143 $(call add_help,NAME,v,(string),The name of the image) |
154 $(call add_help,TYPE,v,(rnd|prd|subcon),Defines the image type.) |
144 $(call add_help,TYPE,v,(rnd|prd|subcon),Defines the image type.) |
155 $(call add_help,WORKDIR,v,(string),The working directory for the image creation) |
145 $(call add_help,OUTDIR,v,(string),The output directory for the image creation.) |
|
146 $(call add_help,WORKDIR,v,(string),The working directory for the image creation. Deprecated, please use OUTDIR.) |
156 $(call add_help,PRODUCT_NAME,v,(string),Name of the product) |
147 $(call add_help,PRODUCT_NAME,v,(string),Name of the product) |
157 $(call add_help,PRODUCT_MODEL,v,(string),The model of the product) |
148 $(call add_help,PRODUCT_MODEL,v,(string),The model of the product) |
158 $(call add_help,PRODUCT_REVISION,v,(string),The revision of the product.) |
149 $(call add_help,PRODUCT_REVISION,v,(string),The revision of the product.) |
159 $(call add_help,BLDROM_OPT,v,(string),The default buildrom.pl options) |
150 $(call add_help,BLDROM_OPT,v,(string),The default buildrom.pl options) |
160 $(call add_help,BLDROPT,v,(string),For passing extra parameters (from command line) to the buildrom.pl) |
151 $(call add_help,BLDROPT,v,(string),For passing extra parameters (from command line) to the buildrom.pl) |
161 $(call add_help,BLDROBY,v,(string),For passing extra oby files (from command line) to the buildrom.pl) |
152 $(call add_help,BLDROBY,v,(string),For passing extra oby files (from command line) to the buildrom.pl) |
162 $(call add_help,SOS_VERSION,v,([0-9]+.[0-9]+),Symbian OS version number. The value is used in the version info generation (platform.txt).(see USE_VERGEN)) |
153 $(call add_help,SOS_VERSION,v,([0-9]+.[0-9]+),Symbian OS version number. The value is used in the version info generation (platform.txt).) |
163 $(call add_help,COREPLAT_NAME,v,(string),Name of the core platform) |
154 $(call add_help,COREPLAT_NAME,v,(string),Name of the core platform) |
164 $(call add_help,CORE_DIR,v,(string),The working directory, when creating core image) |
155 $(call add_help,CORE_DIR,v,(string),The working directory, when creating core image) |
165 $(call add_help,CORE_NAME,v,(string),The name of the core image) |
156 $(call add_help,CORE_NAME,v,(string),The name of the core image) |
166 $(call add_help,CORE_OBY,v,(string),The oby file(s) included to the core image creation) |
157 $(call add_help,CORE_OBY,v,(string),The oby file(s) included to the core image creation) |
167 $(call add_help,CORE_OPT,v,(string),The core specific buildrom options) |
158 $(call add_help,CORE_OPT,v,(string),The core specific buildrom options) |
207 $(call add_help,ROFS3_HEADER,v,(string),This variable can contain a header section for the rofs3 master oby.) |
198 $(call add_help,ROFS3_HEADER,v,(string),This variable can contain a header section for the rofs3 master oby.) |
208 $(call add_help,ROFS3_FOOTER,v,(string),This variable can contain a footer section for the rofs3 master oby.) |
199 $(call add_help,ROFS3_FOOTER,v,(string),This variable can contain a footer section for the rofs3 master oby.) |
209 $(call add_help,ROFS3_TIME,v,(string),The time defined to the rofs3 image.) |
200 $(call add_help,ROFS3_TIME,v,(string),The time defined to the rofs3 image.) |
210 $(call add_help,ROFS3_VERIBY,v,(string),The (generated) version iby file name for the rofs3 image. This file included the version text files and other version parameters.) |
201 $(call add_help,ROFS3_VERIBY,v,(string),The (generated) version iby file name for the rofs3 image. This file included the version text files and other version parameters.) |
211 $(call add_help,ROFS3_ROMVER,v,(string),The rofs3 ROM version string) |
202 $(call add_help,ROFS3_ROMVER,v,(string),The rofs3 ROM version string) |
212 $(call add_help,ROFS3_CUSTSWFILE,v,(string),The (generated) source file name for customersw.txt.) |
203 $(call add_help,ROFS3_SWVERFILE,v,(string),The (generated) source file name for customersw.txt.) |
213 $(call add_help,ROFS3_CUSTSWINFO,v,(string),The content string for the customersw.txt.) |
204 $(call add_help,ROFS3_SWVERINFO,v,(string),The content string for the customersw.txt.) |
214 $(call add_help,ROFS3_FWIDFILE,v,(string),The (generated) _rofs3_fwid.txt file name.) |
205 $(call add_help,ROFS3_FWIDFILE,v,(string),The (generated) _rofs3_fwid.txt file name.) |
215 $(call add_help,ROFS3_FWIDINFO,v,(string),The content string for the fwid3.txt file.) |
206 $(call add_help,ROFS3_FWIDINFO,v,(string),The content string for the fwid3.txt file.) |
216 $(call add_help,VARIANT_DIR,v,(string),Configure the directory where to included the customer variant content. By default all content under $(VARIANT_CPDIR) is included to the image as it exists in the folder.) |
207 $(call add_help,VARIANT_DIR,v,(string),Configure the directory where to included the customer variant content. By default all content under $(VARIANT_CPDIR) is included to the image as it exists in the folder.) |
217 $(call add_help,VARIANT_CONFML,v,(string),Configure what is the ConfigurationTool input confml file, when configuration tool is ran.) |
208 $(call add_help,PRODUCT_VARDIR,v,(string),Overrides the VARIANT_DIR for product variant, see the instructions of VARIANT_DIR for details.) |
218 $(call add_help,VARIANT_CONFCP,v,(string),Configure which ConfigurationTool generated configurations dirs are copied to output.) |
209 $(call add_help,TARGET_DEFAULT,v,(string),Configure actual target(s) for target default.) |
219 |
210 |
220 # Targets |
211 # Targets |
221 $(call add_help,version,t,Print the version information) |
212 $(call add_help,version,t,Print the version information) |
222 $(call add_help,clean,t,Clean all target files.) |
213 $(call add_help,clean,t,Clean all target files.) |
223 $(call add_help,core,t,Create the core image (ROM,ROFS1)) |
|
224 $(call add_help,rofs2,t,Create the rofs2 image) |
|
225 $(call add_help,rofs3,t,Create the rofs3 image) |
|
226 $(call add_help,variant,t,Create the variant image (rofs2,rofs3)) |
214 $(call add_help,variant,t,Create the variant image (rofs2,rofs3)) |
227 $(call add_help,uda,t,Create the User Data area (uda) image.) |
|
228 $(call add_help,image,t,Create only the image file(s) (*.img)) |
215 $(call add_help,image,t,Create only the image file(s) (*.img)) |
229 $(call add_help,core-image,t,Create the core image files (rom.img, rofs1.img)) |
216 $(call add_help,variant-image,t,Create the variant image files (rofs2.img, rofs3.img)) |
230 $(call add_help,rofs2-image,t,Create the rofs2 image file (rofs2.img)) |
|
231 $(call add_help,rofs3-image,t,Create the rofs3 image file (rofs3.img)) |
|
232 $(call add_help,variant-image,t,Create the variant image files (rofs3.img,rofs3.img)) |
|
233 $(call add_help,uda-image,t,Create the User Data area (uda) image.) |
|
234 $(call add_help,toolinfo,t,Print info about the tool) |
217 $(call add_help,toolinfo,t,Print info about the tool) |
235 $(call add_help,romsymbol,t,Create the rom symbol file) |
218 $(call add_help,romsymbol,t,Create the rom symbol file) |
236 $(call add_help,all,t,Create all image sections and symbol files.) |
219 $(call add_help,all,t,Create all image sections and symbol files.) |
237 $(call add_help,flash-all,t,Create all image sections and symbol files.) |
220 $(call add_help,flash-all,t,Create all image sections and symbol files.) |
238 $(call add_help,flash,t,Create all image sections files. Not any symbol files.) |
221 $(call add_help,flash,t,Create all image sections files. Not any symbol files.) |
239 $(call add_help,f2image,t,Revert the Symbian image file (.img) from the elf2flash (flash) file.(See CORE_FLASH,ROFS2_FLASH,ROFS3_FLASH)) |
222 $(call add_help,f2image,t,Revert the Symbian image file (.img) from the elf2flash (flash) file.(See CORE_FLASH,ROFS2_FLASH,ROFS3_FLASH)) |
240 $(call add_help,step-%,t,\ |
223 $(call add_help,step-%,t,\ |
241 Generic target to execute any step inside the iMaker configuration. Any step (e.g. BUILD_*,CLEAN_*) can be executed with step-STEPNAME.\ |
224 Generic target to execute any step inside the iMaker configuration. Any step (e.g. BUILD_*,CLEAN_*) can be executed with step-STEPNAME.\ |
242 Example: step-ROFS2PRE executes the CLEAN_ROFS2PRE and BUILD_ROFS2PRE commands.) |
225 Example: step-ROFS2PRE executes the CLEAN_ROFS2PRE and BUILD_ROFS2PRE commands.) |
243 $(call add_help,print-%,t,Print the value of the given variable to the screen.) |
226 $(call add_help,default,t,Default target, uses variable TARGET_DEFAULT to get actual target(s), current default = $$(TARGET_DEFAULT).) |
244 |
227 |
245 $(call add_help,help,t,Print help on help targets.) |
228 $(call add_help,help,t,Print help on help targets.) |
246 $(call add_help,help-%,t,Print help on help items matching the pattern.) |
229 $(call add_help,help-%,t,Print help on help items matching the pattern.) |
247 $(call add_help,help-%-list,t,Print a list of help items matching the pattern.) |
230 $(call add_help,help-%-list,t,Print a list of help items matching the pattern.) |
248 $(call add_help,help-target,t,Print help on all targets (same as help-target-*).) |
231 $(call add_help,help-target,t,Print help on all targets (same as help-target-*).) |