imgtools/imaker/src/imaker_rofs2.mk
changeset 596 9f25be3da657
parent 584 56dd7656a965
equal deleted inserted replaced
595:997c19261166 596:9f25be3da657
    21 # | _ \/ _ \| __/ __| |_  )
    21 # | _ \/ _ \| __/ __| |_  )
    22 # |   / (_) | _|\__ \  / /
    22 # |   / (_) | _|\__ \  / /
    23 # |_|_\\___/|_| |___/ /___|
    23 # |_|_\\___/|_| |___/ /___|
    24 #
    24 #
    25 
    25 
    26 USE_NEWLOCLZTN  = $(if $(filter 5%,$(S60_VERSION)),1,0)
    26 ROFS2_FEAXML    = $(E32ROMINC)/featuredatabase.xml $(E32INC)/s60features.xml
    27 
    27 ROFS2_FEAIBY    = $(ROFS2_DIR)/feature.iby $(ROFS2_DIR)/s60features.iby
    28 ROFS2_TITLE     = ROFS2
    28 
    29 ROFS2_DIR       = $(WORKDIR)/rofs2
    29 ROFS2_ID        = $(LANGPACK_ID)
    30 ROFS2_NAME      = $(NAME)
    30 ROFS2_REVISION  = $(LANGPACK_REVISION)
    31 ROFS2_PREFIX    = $(ROFS2_DIR)/$(ROFS2_NAME)
    31 ROFS2_SWVERINFO = $(ROFS2_VERSION)\n$(BUILD_YEAR)-$(BUILD_MONTH)-$(BUILD_DAY)\n$(PRODUCT_TYPE)\n(c) $(PRODUCT_MANUFACT)
    32 ROFS2_IDIR      =
    32 ROFS2_SWVERTGT  = $(IMAGE_VERSDIR)\langsw.txt
    33 ROFS2_HBY       =
       
    34 ROFS2_OBY       =
       
    35 ROFS2_OPT       =
       
    36 ROFS2_MSTOBY    = $(ROFS2_PREFIX)_rofs2_master.oby
       
    37 ROFS2_HEADER    =
       
    38 ROFS2_INLINE    =
       
    39 ROFS2_FOOTER    =
       
    40 ROFS2_TIME      = $(DAY)/$(MONTH)/$(YEAR)
       
    41 
       
    42 ROFS2_OBYGEN    =
       
    43 
       
    44 ROFS2_VERIBY    = $(ROFS2_PREFIX)_rofs2_version.iby
       
    45 ROFS2_ROMVER    = 0.01(0)
       
    46 ROFS2_VERSION   = $(CORE_VERSION)
       
    47 ROFS2_FWIDFILE  = $(ROFS2_PREFIX)_rofs2_fwid.txt
       
    48 ROFS2_FWID      = language
    33 ROFS2_FWID      = language
    49 ROFS2_FWIDVER   = $(LANGPACK_ID)
    34 
    50 ROFS2_FWIDINFO  = id=$(ROFS2_FWID)\nversion=$(ROFS2_FWIDVER)\n
    35 ROFS2_ICHKIMG  += $(CORE_ICHKIMG)
    51 
    36 
    52 ROFS2_IMG       = $(ROFS2_PREFIX).rofs2.img
    37 ROFS2_CONECONF  = $(PRODUCT_NAME)_langpack_$(LANGPACK_ID)_root.confml
    53 ROFS2_LOG       = $(ROFS2_PREFIX).rofs2.log
    38 
    54 ROFS2_OUTOBY    = $(ROFS2_PREFIX).rofs2.oby
    39 
    55 ROFS2_SYM       = $(ROFS2_PREFIX).rofs2.symbol
    40 ###############################################################################
    56 
    41 # ROFS2 pre
    57 ROFS2_PLUGINLOG = $(ROFS2_PREFIX)_rofs2_bldromplugin.log
       
    58 ROFS2_PAGEFILE  = $(ODP_PAGEFILE)
       
    59 ROFS2_UDEBFILE  = $(TRACE_UDEBFILE)
       
    60 
       
    61 ROFS2_ICHKLOG   = $(ROFS2_PREFIX)_rofs2_imgcheck.log
       
    62 ROFS2_ICHKOPT   = $(IMGCHK_OPT)
       
    63 ROFS2_ICHKIMG   = $(ROFS2_IMG) $(CORE_ICHKIMG)
       
    64 
       
    65 ROFS2_I2FDIR    = $(ROFS2_DIR)/img2file
       
    66 
       
    67 #==============================================================================
       
    68 
       
    69 define ROFS2_MSTOBYINFO
       
    70   $(BLDROM_HDRINFO)
       
    71 
       
    72   ROM_IMAGE 0        non-xip size=0x00000000
       
    73   ROM_IMAGE 1 dummy1 non-xip size=$(ROFS_MAXSIZE)
       
    74   ROM_IMAGE 2  rofs2 non-xip size=$(ROFS_MAXSIZE)
       
    75   ROM_IMAGE 3 dummy3 non-xip size=$(ROFS_MAXSIZE)
       
    76 
       
    77   $(BLDROM_PLUGINFO)
       
    78 
       
    79   // ROFS2 header
       
    80   //
       
    81   $(ROFS2_HDRINFO)
       
    82 
       
    83   ROM_IMAGE[2] {
       
    84     $(call ODP_CODEINFO,2)
       
    85     $(BLR.ROFS2.OBY)
       
    86     $(ROFS2_INLINE)
       
    87     $(ROFS2_FOOTERINFO)
       
    88   }
       
    89 endef
       
    90 
    42 
    91 define ROFS2_HDRINFO
    43 define ROFS2_HDRINFO
    92   $(DEFINE) _IMAGE_WORKDIR $(ROFS2_DIR)
    44   $(DEFINE) _IMAGE_WORKDIR $(ROFS2_DIR)
    93   $(call mac2cppdef,$(BLR.ROFS2.OPT))
    45   $(call mac2cppdef,$(BLR.ROFS2.OPT))
    94   $(call iif,$(USE_NEWLOCLZTN),
    46   $(foreach lang,$(call getlangbyid,$(LANGPACK_LANGS)),
    95     $(foreach lang,$(call getlangbyid,$(LANGPACK_LANGS)),
    47     #define __LOCALES_$(lang)_IBY__)
    96       #define __LOCALES_$(lang)_IBY__)
    48   $(foreach lang,$(call getlangbyid,$(LANGPACK_LANGS)),
    97     $(foreach lang,$(call getlangbyid,$(LANGPACK_LANGS)),
    49     LANGUAGE_CODE $(lang))
    98       ADD_LANGUAGE $(lang))
    50   $(call iif,$(USE_QTLOCLZTN),QT_TO_SYMBIAN_LANGID $(LANGPACK_SYSLANGINI))
    99   )
       
   100   $(BLR.ROFS2.HBY)
    51   $(BLR.ROFS2.HBY)
   101   $(ROFS2_HEADER)
    52   $(ROFS2_HEADER)
   102   $(if $(filter 2,$(USE_VARIANTBLD)),$(VARIANT_HEADER))
    53   $(if $(filter 2,$(USE_VARIANTBLD)),$(VARIANT_HEADER))
   103 endef
    54 endef
   104 
    55 
   105 define ROFS2_FOOTERINFO
    56 ROFS2_ORIDEINFO += $(LANGPACK_ORIDEINFO)
   106   $(if $(ROFS2_TIME),time=$(ROFS2_TIME))
    57 
   107   $(ROFS2_FOOTER)
    58 define LANGPACK_ORIDEINFO
   108 endef
       
   109 
       
   110 define ROFS2_VERIBYINFO
       
   111   // Generated `$(ROFS2_VERIBY)$' for ROFS2 image creation
       
   112   $(if $(ROFS2_ROMVER),
       
   113 
       
   114     version=$(ROFS2_ROMVER))
       
   115 
       
   116   OVERRIDE_REPLACE/ADD
    59   OVERRIDE_REPLACE/ADD
   117   $(call iif,$(USE_NEWLOCLZTN),
    60   data-override="$(LANGPACK_LANGFILE)"  "RESOURCE_FILES_DIR\Bootdata\languages.txt"
   118     data-override=$(LANGPACK_LANGFILE)  RESOURCE_FILES_DIR\Bootdata\languages.txt
    61   data-override="$(LANGPACK_IDFILE)"  "$(IMAGE_VERSDIR)\lang.txt"
   119     data-override=$(LANGPACK_IDFILE)  RESOURCE_FILES_DIR\versions\lang.txt
       
   120     data-override=$(LANGPACK_SWVERFILE)  RESOURCE_FILES_DIR\versions\langsw.txt
       
   121   )
       
   122   $(call iif,$(USE_FOTA),
       
   123     data-override=$(ROFS2_FWIDFILE)  RESOURCE_FILES_DIR\versions\fwid2.txt)
       
   124   OVERRIDE_END
    62   OVERRIDE_END
   125 endef
    63 endef
   126 
    64 
   127 #==============================================================================
    65 #==============================================================================
   128 
    66 
   129 CLEAN_ROFS2FILE =\
    67 CLEAN_ROFS2FILE += | $(CLEAN_LANGFILE)
   130   del | "$(ROFS2_MSTOBY)" "$(ROFS2_VERIBY)" "$(ROFS2_FWIDFILE)" |\
    68 BUILD_ROFS2FILE += | $(BUILD_LANGFILE)
   131   $(CLEAN_LANGFILE) |\
    69 
   132   del | $(call getgenfiles,$(call _buildoby,$(ROFS2_OBYGEN)))
    70 
   133 
    71 ###############################################################################
   134 BUILD_ROFS2FILE =\
    72 # Language package
   135   echo-q | Generating file(s) for ROFS2 image creation |\
    73 
   136   write  | $(ROFS2_MSTOBY) | $(call def2str,$(ROFS2_MSTOBYINFO)) |\
    74 LANGPACK_SYSLANGMK     = $(call findfile,system_languages.mk,,1)
   137   $(call iif,$(USE_VERGEN),\
    75 LANGPACK_SYSLANGINI    = $(E32DATAZ)/resource/system_languages.ini
   138     write  | $(ROFS2_VERIBY)   | $(call def2str,$(ROFS2_VERIBYINFO)) |\
    76 
   139     writeu | $(ROFS2_FWIDFILE) | $(ROFS2_FWIDINFO) |)\
    77 LANGPACK_ROOT          = $(or $(wildcard $(PRODUCT_DIR)/language),$(or $(if $(PRODUCT_MSTNAME),$(wildcard $(PRODUCT_MSTDIR)/language)),$(PRODUCT_DIR)/language))
   140   $(call iif,$(USE_NEWLOCLZTN),$(BUILD_LANGFILE)) |\
       
   141   $(call _buildoby,$(ROFS2_OBYGEN))
       
   142 
       
   143 
       
   144 ###############################################################################
       
   145 #
       
   146 
       
   147 LANGPACK_SYSLANGMK     = system_languages.mk
       
   148 
       
   149 LANGPACK_ROOT          = $(PRODUCT_DIR)/language
       
   150 LANGPACK_PREFIX        = langpack_
    78 LANGPACK_PREFIX        = langpack_
   151 LANGPACK_MKNAME        = language_variant.mk
    79 LANGPACK_MKNAME        = language_variant.mk
   152 LANGPACK_NAME          =
    80 LANGPACK_NAME          = $(LANGPACK_PREFIX)$(LANGPACK_ID)
   153 LANGPACK_DIR           = $(LANGPACK_ROOT)/$(LANGPACK_NAME)
    81 LANGPACK_DIR           = $(if $(and $(call true,$(USE_CONE)),$(call true,$(IMAKER_MKRESTARTS))),$(CONE_OUTDIR),$(LANGPACK_ROOT)/$(LANGPACK_NAME)$(call iif,$(USE_CONE),/content))
   154 LANGPACK_CONFML        = $(or $(wildcard $(LANGPACK_DIR)/$(CONFT_CFGNAME).confml),$(PRODVARIANT_CONFML))
    82 LANGPACK_DIRS          = $(wildcard $(LANGPACK_ROOT)/$(LANGPACK_PREFIX)*$(call iif,$(USE_CONE),/content))
   155 LANGPACK_CONFCP        = $(PRODVARIANT_CONFCP) $(if $(wildcard $(LANGPACK_DIR)/$(CONFT_CFGNAME).confml),$(CONFT_CFGNAME))
    83 LANGPACK_MK            = $(or $(wildcard $(LANGPACK_DIR)/$(LANGPACK_MKNAME)),$(wildcard $(LANGPACK_ROOT)/$(LANGPACK_NAME)/content/$(LANGPACK_MKNAME)))
   156 
    84 
   157 LANGPACK_IDFILE        = $(ROFS2_PREFIX)_rofs2_lang.txt
    85 LANGPACK_IDFILE        = $(ROFS2_PREFIX)_rofs2_lang.txt
   158 LANGPACK_ID            = 01
    86 LANGPACK_IDINFO        = $(ROFS2_VERSION)
       
    87 LANGPACK_ID            = $(if $(filter $(LANGPACK_PREFIX)%,$(TARGETNAME)),$(TARGETID1),01)
       
    88 LANGPACK_REVISION      = 01
   159 LANGPACK_LANGFILE      = $(ROFS2_PREFIX)_rofs2_languages.txt
    89 LANGPACK_LANGFILE      = $(ROFS2_PREFIX)_rofs2_languages.txt
   160 LANGPACK_LANGS         = English
    90 LANGPACK_LANGS         = English
   161 LANGPACK_DEFAULTLANG   = $(word 1,$(LANGPACK_LANGS))
    91 LANGPACK_DEFAULTLANG   = $(word 1,$(LANGPACK_LANGS))
   162 LANGPACK_DEFAULTREGION = Western
    92 LANGPACK_DEFAULTREGION = Western
   163 LANGPACK_SWVERFILE     = $(ROFS2_PREFIX)_rofs2_langsw.txt
    93 LANGPACK_REGIONS       = china japan western
   164 LANGPACK_SWVERINFO     = $(CORE_SWVERINFO)
       
   165 LANGPACK_INFOFILE      = $(ROFS2_PREFIX)_rofs2_$(LANGPACK_NAME)_info.txt
    94 LANGPACK_INFOFILE      = $(ROFS2_PREFIX)_rofs2_$(LANGPACK_NAME)_info.txt
   166 
    95 
   167 LANGPACK_LANGNAMES     = $(call getlangname,$(LANGPACK_LANGS))
    96 LANGPACK_LANGNAMES     = $(call getlangname,$(LANGPACK_LANGS))
   168 LANGPACK_LANGIDS       = $(call getlangid,$(LANGPACK_LANGS))
    97 LANGPACK_LANGIDS       = $(call getlangid,$(LANGPACK_LANGS))
   169 LANGPACK_DEFLANGNAME   = $(call getlangname,$(LANGPACK_DEFAULTLANG))
    98 LANGPACK_DEFLANGNAME   = $(call getlangname,$(LANGPACK_DEFAULTLANG))
   170 LANGPACK_DEFLANGID     = $(call getlangid,$(LANGPACK_DEFAULTLANG))
    99 LANGPACK_DEFLANGID     = $(call getlangid,$(LANGPACK_DEFAULTLANG))
   171 LANGPACK_REGION        = $(call getlangregion,$(LANGPACK_DEFAULTLANG))
   100 LANGPACK_REGION        = $(call getlangregion,$(LANGPACK_DEFAULTLANG))
   172 
   101 
   173 #==============================================================================
   102 #==============================================================================
   174 
   103 
   175 CLEAN_LANGFILE = del | "$(LANGPACK_LANGFILE)" "$(LANGPACK_IDFILE)" "$(LANGPACK_SWVERFILE)" "$(LANGPACK_INFOFILE)"
   104 CLEAN_LANGFILE = del | "$(LANGPACK_LANGFILE)" "$(LANGPACK_IDFILE)" "$(LANGPACK_INFOFILE)"
   176 BUILD_LANGFILE =\
   105 BUILD_LANGFILE =\
   177   echo-q | Generating language files for Language Package image creation |\
   106   echo-q | Generating language files for Language Package image creation |\
   178   $(if $(strip $(LANGUAGE_SYSLANGS)),,\
   107   $(if $(strip $(LANGUAGE_SYSLANGS)),,\
   179     error | 1 | No system languages defined\n |)\
   108     error | 1 | No system languages defined. |)\
   180   $(if $(strip $(LANGPACK_LANGS)),,\
   109   $(if $(strip $(LANGPACK_LANGS)),,\
   181     error | 1 | No languages defined in the language pack\n |)\
   110     error | 1 | No languages defined in the language pack. |)\
   182   $(call select,$(words $(LANGPACK_LANGS)),$(words $(LANGPACK_LANGIDS)),,\
   111   $(call select,$(words $(LANGPACK_LANGS)),$(words $(LANGPACK_LANGIDS)),,\
   183     error | 1 | Not all languages of the language pack defined in the system languages\n |)\
   112     error | 1 | Not all languages of the language pack defined in the system languages. |)\
   184   $(call select,$(words $(LANGPACK_LANGS)),$(words $(call getlangbyid,$(LANGPACK_LANGS))),,\
   113   $(call select,$(words $(LANGPACK_LANGS)),$(words $(call getlangbyid,$(LANGPACK_LANGS))),,\
   185     error | 1 | Duplicate language defined in the language pack\n |)\
   114     error | 1 | Duplicate language defined in the language pack. |)\
   186   $(if $(strip $(LANGPACK_DEFAULTLANG)),,\
   115   $(if $(strip $(LANGPACK_DEFAULTLANG)),,\
   187     error | 1 | No default language defined\n |)\
   116     error | 1 | No default language defined. |)\
   188   $(if $(word 2,$(LANGPACK_DEFAULTLANG)),\
   117   $(if $(word 2,$(LANGPACK_DEFAULTLANG)),\
   189     error | 1 | More than one default language defined\n |)\
   118     error | 1 | More than one default language defined. |)\
   190   $(if $(filter $(call lcase,$(LANGPACK_DEFAULTLANG)),$(call lcase,$(LANGPACK_LANGS))),,\
   119   $(if $(filter $(call lcase,$(LANGPACK_DEFAULTLANG)),$(call lcase,$(LANGPACK_LANGS))),,\
   191     error | 1 | Default language not defined in the language pack languages\n |)\
   120     error | 1 | Default language not defined in the language pack languages. |)\
   192   $(if $(word 2,$(sort $(call getlangregion,$(LANGPACK_LANGS)))),\
   121   $(if $(word 2,$(sort $(call getlangregion,$(LANGPACK_LANGS)))),\
   193     error | 1 | Not all languages of the language pack belong to the same region\n |)\
   122     error | 1 | Not all languages of the language pack belong to the same region. |)\
   194   \
   123   \
   195   writeu | $(LANGPACK_LANGFILE)  | $(LANGPACK_LANGINFO) |\
   124   writeu | "$(LANGPACK_LANGFILE)" | $(LANGPACK_LANGINFO) |\
   196   writeu | $(LANGPACK_IDFILE)    | $(LANGPACK_ID) |\
   125   writeu | "$(LANGPACK_IDFILE)"   | $(LANGPACK_IDINFO) |\
   197   writeu | $(LANGPACK_SWVERFILE) | $(LANGPACK_SWVERINFO) |\
       
   198   $(if $(LANGPACK_NAME),\
   126   $(if $(LANGPACK_NAME),\
   199     write | $(LANGPACK_INFOFILE) | $(call def2str,$(LANGPACK_INFO)))
   127     write | "$(LANGPACK_INFOFILE)" | $(call def2str,$(LANGPACK_INFO)))
   200 
   128 
   201 LANGPACK_LANGINFO =\
   129 LANGPACK_LANGINFO =\
   202   $(foreach lang,$(LANGPACK_LANGIDS),\
   130   $(foreach lang,$(LANGPACK_LANGIDS),\
   203     $(lang)$(call select,$(lang),$(LANGPACK_DEFLANGID),$(,)d)\n)
   131     $(lang)$(call select,$(lang),$(LANGPACK_DEFLANGID),$(,)d)\n)
   204 
   132 
   205 define LANGPACK_INFO
   133 define LANGPACK_INFO
   206   Generated `$(LANGPACK_INFOFILE)$' for documenting the language selections
   134   Generated `$(LANGPACK_INFOFILE)' for documenting the language selections
   207 
   135 
   208   Name         : $(LANGPACK_NAME)
   136   Name         : $(LANGPACK_NAME)
   209   Default Lang.: $(LANGPACK_DEFLANGNAME) ($(LANGPACK_DEFLANGID))
   137   Default Lang.: $(LANGPACK_DEFLANGNAME) ($(LANGPACK_DEFLANGID))
   210   Languages    : $(LANGPACK_LANGNAMES)
   138   Languages    : $(LANGPACK_LANGNAMES)
   211   Language IDs : $(LANGPACK_LANGIDS)
   139   Language IDs : $(LANGPACK_LANGIDS)
   212   Region       : $(LANGPACK_REGION)
   140   Region       : $(LANGPACK_REGION)
   213 endef
   141 endef
   214 
   142 
   215 
   143 
   216 ###############################################################################
   144 ###############################################################################
   217 # ROFS2 pre
       
   218 
       
   219 CLEAN_ROFS2PRE = $(if $(filter 2,$(USE_VARIANTBLD)),$(CLEAN_CUSTVARIANT) |) $(CLEAN_ROFS2FILE)
       
   220 BUILD_ROFS2PRE =\
       
   221   $(if $(filter 2,$(USE_VARIANTBLD)),$(BUILD_CUSTVARIANT) |)\
       
   222   mkcd | $(ROFS2_DIR) |\
       
   223   $(BUILD_ROFS2FILE)
       
   224 
       
   225 #==============================================================================
       
   226 # ROFS2 build
       
   227 
       
   228 BLR.ROFS2.IDIR = $(call dir2inc,$(ROFS2_IDIR) $(call iif,$(USE_FEATVAR),,$(FEATVAR_IDIR)))
       
   229 BLR.ROFS2.HBY  = $(call includeiby,$(IMAGE_HBY) $(ROFS2_HBY))
       
   230 BLR.ROFS2.OBY  = $(call includeiby,$(ROFS2_OBY) $(if $(filter 2,$(USE_VARIANTBLD)),$(VARIANT_OBY)) $(call iif,$(USE_VERGEN),$(ROFS2_VERIBY)))
       
   231 BLR.ROFS2.OPT  = $(ROFS2_OPT) $(if $(filter 2,$(USE_PAGEDCODE)),$(if $(ODP_CODECOMP),-c$(ODP_CODECOMP))) -o$(notdir $(ROFS2_NAME).img) $(BLDROPT)
       
   232 BLR.ROFS2.POST = $(call iif,$(KEEPTEMP),,del | $(ROFS2_PREFIX).???)
       
   233 
       
   234 CLEAN_ROFS2 = $(CLEAN_BLDROM)
       
   235 BUILD_ROFS2 = $(BUILD_BLDROM)
       
   236 
       
   237 #==============================================================================
       
   238 # ROFS2 post
       
   239 
       
   240 CLEAN_ROFS2POST = $(CLEAN_IMGCHK) | $(CLEAN_MAKSYMROFS)
       
   241 BUILD_ROFS2POST =\
       
   242   $(call iif,$(USE_IMGCHK),$(BUILD_IMGCHK) |)\
       
   243   $(call iif,$(USE_SYMGEN),$(BUILD_MAKSYMROFS))
       
   244 
       
   245 #==============================================================================
       
   246 
       
   247 SOS.ROFS2.STEPS = $(call iif,$(USE_ROFS2),$(call iif,$(SKIPPRE),,ROFS2PRE) $(call iif,$(SKIPBLD),,ROFS2) $(call iif,$(SKIPPOST),,ROFS2POST))
       
   248 ALL.ROFS2.STEPS = $(SOS.ROFS2.STEPS)
       
   249 
       
   250 
       
   251 ###############################################################################
       
   252 # Targets
   145 # Targets
   253 
   146 
   254 .PHONY: rofs2 rofs2-all rofs2-image rofs2-pre rofs2-check rofs2-symbol rofs2-i2file
   147 LANGPACK_EXPORT = $(if $(filter $(LANGPACK_PREFIX)%,$(TARGETNAME)),$(addprefix $(LANGPACK_PREFIX)%:LANGPACK_,ID NAME))
   255 
   148 TARGET_EXPORT  += $(LANGPACK_EXPORT)
   256 rofs2 rofs2-%  : IMAGE_TYPE = ROFS2
       
   257 rofs2-all      : USE_SYMGEN = 1
       
   258 
       
   259 rofs2 rofs2-all: ;@$(call IMAKER,$$(ALL.ROFS2.STEPS))
       
   260 rofs2-image    : ;@$(call IMAKER,$$(SOS.ROFS2.STEPS))
       
   261 
       
   262 rofs2-pre      : ;@$(call IMAKER,ROFS2PRE)
       
   263 rofs2-check    : ;@$(call IMAKER,IMGCHK)
       
   264 rofs2-symbol   : ;@$(call IMAKER,MAKSYMROFS)
       
   265 
       
   266 rofs2-i2file   : USE_ROFS = 2
       
   267 rofs2-i2file   : ;@$(call IMAKER,VARIANTI2F)
       
   268 
       
   269 # langpack_%
       
   270 $(LANGPACK_PREFIX)%: LANGPACK_NAME  = $(TARGETNAME)
       
   271 $(LANGPACK_PREFIX)%: LANGPACK_ID    = $(TARGETID)
       
   272 $(LANGPACK_PREFIX)%: VARIANT_DIR    = $(LANGPACK_DIR)
       
   273 $(LANGPACK_PREFIX)%: VARIANT_MKNAME = $(LANGPACK_MKNAME)
       
   274 $(LANGPACK_PREFIX)%: VARIANT_CONFML = $(LANGPACK_CONFML)
       
   275 $(LANGPACK_PREFIX)%: VARIANT_CONFCP = $(LANGPACK_CONFCP)
       
   276 $(LANGPACK_PREFIX)%: variantrofs2_$(TARGETID)$(TARGETEXT) ;
       
   277 
   149 
   278 # langpack_all langpack_china langpack_japan langpack_western
   150 # langpack_all langpack_china langpack_japan langpack_western
   279 .PHONY: $(addprefix $(LANGPACK_PREFIX),all china japan western)
   151 .PHONY: $(addprefix $(LANGPACK_PREFIX),all $(LANGPACK_REGIONS))
   280 
   152 
   281 $(addprefix $(LANGPACK_PREFIX),all china japan western):\
   153 $(addprefix $(LANGPACK_PREFIX),all $(LANGPACK_REGIONS)) \
   282   ;@$(call IMAKER,$$(addsuffix |,$$(call getlpacksbyregion,$(LANGPACK_ID))))
   154 $(addsuffix -%,$(addprefix $(LANGPACK_PREFIX),all $(LANGPACK_REGIONS))):\
   283 
   155   ;@$(call IMAKER,$$(call getlpacksbyregion,$(LANGPACK_ID)))
   284 #==============================================================================
   156 
       
   157 $(LANGPACK_PREFIX)%: rofs2_$$* ;
       
   158 
       
   159 
       
   160 ###############################################################################
   285 # Helps
   161 # Helps
   286 
   162 
   287 $(call add_help,LANGPACK_DIR,v,(string),Overrides the VARIANT_DIR for language pack, see the instructions of VARIANT_CONFCP for details.)
   163 $(call add_help,LANGPACK_DIR,v,(string),Overrides the VARIANT_DIR for language pack, see the instructions of VARIANT_DIR for details.)
   288 $(call add_help,LANGPACK_CONFML,v,(string),Overrides the VARIANT_CONFML for language pack, see the instructions of VARIANT_CONFML for details.)
       
   289 $(call add_help,LANGPACK_CONFCP,v,(string),Overrides the VARIANT_CONFCP for language pack, see the instructions of VARIANT_CONFCP for details.)
       
   290 $(call add_help,LANGPACK_LANGS,v,(string),Languages are the languages that are taken to the image (SC language is is defaulting to 01 in languages.txt))
   164 $(call add_help,LANGPACK_LANGS,v,(string),Languages are the languages that are taken to the image (SC language is is defaulting to 01 in languages.txt))
   291 $(call add_help,LANGPACK_DEFAULTLANG,v,(string),Default language is the language where the device will boot to (SIM language overrides this selection))
   165 $(call add_help,LANGPACK_DEFAULTLANG,v,(string),Default language is the language where the device will boot to (SIM language overrides this selection))
   292 $(call add_help,LANGPACK_ID,v,(string),Language id used in the lang.txt generation)
   166 $(call add_help,LANGPACK_ID,v,(string),Language id used in the lang.txt generation)
   293 
   167 
   294 $(call add_help,$(LANGPACK_PREFIX)all,t,Create all language packages.)
   168 $(call add_help,$(LANGPACK_PREFIX)all,t,Create all language packages.)
   295 $(call add_help,$(LANGPACK_PREFIX)china,t,Create language packages that belong to China region.)
   169 $(call add_help,$(LANGPACK_PREFIX)china,t,Create language packages that belong to China region.)
   296 $(call add_help,$(LANGPACK_PREFIX)japan,t,Create language packages that belong to Japan region.)
   170 $(call add_help,$(LANGPACK_PREFIX)japan,t,Create language packages that belong to Japan region.)
   297 $(call add_help,$(LANGPACK_PREFIX)western,t,Create language packages that belong to Western region.)
   171 $(call add_help,$(LANGPACK_PREFIX)western,t,Create language packages that belong to Western region.)
   298 
   172 
       
   173 LANGPACK_HELP =\
       
   174   $(call add_help,$(call getlpfrompath,$(LANGPACK_DIRS)),t,Language variant target.)\
       
   175   $(eval include $(wildcard $(addsuffix /$(LANGPACK_MKNAME),$(LANGPACK_DIRS))))
       
   176 
       
   177 BUILD_HELPDYNAMIC += $(LANGPACK_HELP)
       
   178 
   299 
   179 
   300 ###############################################################################
   180 ###############################################################################
   301 # Functions
   181 # Functions
   302 
   182 
   303 # Convert a list of language names and/or ids to numeric codes (ids) based on the system language mapping, e.g. English => 01, etc.
   183 # Convert a list of language names and/or ids to numeric codes (ids) based on the system language mapping, e.g. English => 01, etc.
   313 getlangregion  = $(call _getlang,$1,$(LANGUAGE_ID-REGION),2)
   193 getlangregion  = $(call _getlang,$1,$(LANGUAGE_ID-REGION),2)
   314 getlregionbyid = $(call _getlang,$1,$(LANGUAGE_ID-REGION),2,1)
   194 getlregionbyid = $(call _getlang,$1,$(LANGUAGE_ID-REGION),2,1)
   315 
   195 
   316 # Get all language pack targets that belong to a given region
   196 # Get all language pack targets that belong to a given region
   317 getlpacksbyregion = $(strip\
   197 getlpacksbyregion = $(strip\
   318   $(foreach file,$(wildcard $(LANGPACK_ROOT)/$(LANGPACK_PREFIX)*/$(LANGPACK_MKNAME)),\
   198   $(foreach file,$(wildcard $(addsuffix /$(LANGPACK_MKNAME),$(LANGPACK_DIRS))),\
   319     $(eval include $(file))\
   199     $(eval include $(file))\
   320     $(if $(call select,$1,all,1)$(call select,$1,$(LANGPACK_REGION),1),\
   200     $(if $(call select,$1,all,1)$(call select,$1,$(LANGPACK_REGION),1),$(call getlpfrompath,$(file)))))
   321       $(notdir $(patsubst %/,%,$(dir $(file)))))))
   201 
       
   202 # Get language pack target(s) from given path(s)
       
   203 getlpfrompath = $(filter $(LANGPACK_PREFIX)%,$(call substm,/ \, ,$1))
   322 
   204 
   323 
   205 
   324 ###############################################################################
   206 ###############################################################################
   325 # Internal stuff
   207 # Internal stuff
   326 
   208 
   327 LANGUAGE_EVAL =\
   209 LANGUAGE_EVAL =\
   328   $(eval -include $(call findfile,$(LANGPACK_SYSLANGMK),$(FEATVAR_IDIR)))\
       
   329   $(eval LANGUAGE_ID-NAME :=)$(eval LANGUAGE_ID-REGION :=)\
   210   $(eval LANGUAGE_ID-NAME :=)$(eval LANGUAGE_ID-REGION :=)\
   330   $(call _evallangdata,$(subst $(\n), | ,$(LANGUAGE_SYSLANGS)))
   211   $(call _evallangdata,$(strip $(subst $(\n), | ,$(LANGUAGE_SYSLANGS))))
   331 
   212 
   332 _evallangdata = $(if $1,\
   213 _evallangdata = $(if $1,\
   333   $(eval __i_ldata := $(call getelem,1,$1))\
   214   $(eval __i_ldata := $(call getelem,1,$1))\
   334   $(if $(eval __i_lid := $(word 2,$(__i_ldata)))$(__i_lid),\
   215   $(if $(eval __i_lid := $(word 2,$(__i_ldata)))$(__i_lid),\
   335     $(eval __i_lidx   := $(call _getlangid,$(__i_lid)))\
   216     $(eval __i_lidx   := $(call _getlangid,$(__i_lid)))\