--- a/imgtools/imaker/src/imaker_tools.mk Wed Jun 23 17:27:59 2010 +0800
+++ b/imgtools/imaker/src/imaker_tools.mk Wed Jun 30 11:35:58 2010 +0800
@@ -19,124 +19,308 @@
###############################################################################
# External tools
-BLDROM_TOOL = buildrom
+BLDROM_TOOL = $(PERL) -S buildrom.pl
+FEATMAN_TOOL = $(PERL) -S features.pl
ROMBLD_TOOL = rombuild
ROFSBLD_TOOL = rofsbuild
-MAKSYM_TOOL = maksym
-MAKSYMROFS_TOOL = maksymrofs
+MAKSYM_TOOL = $(PERL) -S maksym.pl
+MAKSYMROFS_TOOL = $(PERL) -S maksymrofs.pl
+ELF2E32_TOOL = elf2e32
IMGCHK_TOOL = imgcheck
INTPRSIS_TOOL = interpretsis
READIMG_TOOL = readimage
-UNZIP_TOOL = unzip
ZIP_TOOL = zip
7ZIP_TOOL = 7za
-FILEDISK_TOOL = filedisk
-WINIMAGE_TOOL = "c:/program files/winimage/winimage.exe"
+UNZIP_TOOL = $(7ZIP_TOOL)
+
+BUILD_TOOLSET =\
+ tool-cpp | $(CPP) |\
+ tool-elf2e32 | $(ELF2E32_TOOL) |\
+ tool-interpretsis | $(INTPRSIS_TOOL) |\
+ tool-opcache | $(OPC_TOOL) |\
+ tool-unzip | $(UNZIP_TOOL)
+
+#==============================================================================
+
+BLDROM_JOBS =
+
+BLDROM_OPT =\
+ -loglevel1 $(call iif,$(KEEPTEMP),-p) -v $(call iif,$(USE_SYMGEN),,-nosymbols) $(addprefix -j,$(BLDROM_JOBS))\
+ $(call iif,$(USE_BLRWORKDIR),-workdir="$($(IMAGE_TYPE)_DIR)")\
+ $(call iif,$(USE_FEATVAR),-DFEATUREVARIANT=$(FEATURE_VARIANT))\
+ $(call iif,$(SYMBIAN_FEATURE_MANAGER),\
+ $(if $($(IMAGE_TYPE)_FEAXML),-fm=$(subst $( ),$(,),$(strip $($(IMAGE_TYPE)_FEAXML)))) -D__FEATURE_IBY__)\
+ $(if $(IMAGE_TYPE),-D_IMAGE_TYPE_$(IMAGE_TYPE)) $(if $(TYPE),-D_IMAGE_TYPE_$(call ucase,$(TYPE)))
+
+BLDROM_PARSE =\
+ parse | Missing files: | /Missing file:/i ||\
+ parse | Errors: | /ERROR:\|ERR :/i ||\
+ parse-4 | Erroneous links: | /WARNING: Kernel\/variant\/extension/i ||\
+ parse | Warnings: | /WARNING:\|WARN:/i |\
+ /WARNING: the value of attribute .+ has been overridden\|WARNING: Kernel\/variant\/extension\|Warning: Can't open .+\.map/i
+
+# parse | Can't locate: | /Can't locate\|couldn't be located/i |
+#Unrecognised option -NO-HEADER0
+
+# For passing extra parameters (from command line)
+BLDROPT =
+BLDROBY =
#==============================================================================
-BLDROM_OPT =\
- -loglevel1 $(call iif,$(KEEPTEMP),-p) -v -nosymbols\
- $(call iif,$(USE_FEATVAR),-DFEATUREVARIANT=$(FEATURE_VARIANT))\
- $(if $(IMAGE_TYPE),-D_IMAGE_TYPE_$(IMAGE_TYPE)) $(if $(TYPE),-D_IMAGE_TYPE_$(call ucase,$(TYPE)))
+DEFHRH_IDIR = . $($(IMAGE_TYPE)_IDIR) $(FEATVAR_IDIR)
+DEFHRH_CMD = $(CPP) -nostdinc -undef -dM -D_IMAGE_INCLUDE_HEADER_ONLY\
+ $(call dir2inc,$(DEFHRH_IDIR)) -include $(call upddrive,$(FEATVAR_HRH)) $(call updoutdrive,$($(IMAGE_TYPE)_MSTOBY)) \|\
+ $(PERL) -we $(call iif,$(USE_UNIX),',")print(sort({lc($$a) cmp lc($$b)} <STDIN>))$(call iif,$(USE_UNIX),',")\
+ >>$($(IMAGE_TYPE)_DEFHRH)
+
+define DEFHRH_HDRINFO
+ // Generated file for documenting feature variant definitions
+ //
+ // Filename: $($(IMAGE_TYPE)_DEFHRH)
+ // Command : $(DEFHRH_CMD)
+endef
+
+CLEAN_DEFHRH = del | "$($(IMAGE_TYPE)_DEFHRH)"
+BUILD_DEFHRH =\
+ $(if $($(IMAGE_TYPE)_DEFHRH),\
+ write | "$($(IMAGE_TYPE)_DEFHRH)" | $(call def2str,$(DEFHRH_HDRINFO))\n\n |\
+ cmd | $(DEFHRH_CMD))
+
+#==============================================================================
-BLDROM_PARSE =\
- parse | \nMissing file(s):\n | Missing file: |\
- parse | \nWarning(s):\n | /WARNING:\|WARN:/i |\
- parse | \nError(s):\n | /ERROR:\|ERR :/i |\
- parse | \nCan$'t locate:\n | Can$'t locate | parse | \ncouldn$'t be located:\n | couldn$'t be located
+FEATMAN_OPT = $($(IMAGE_TYPE)_FEAXML) --ibyfile=$($(IMAGE_TYPE)_DIR) --verbose
+FEATMAN_CMD = $(FEATMAN_TOOL) $(FEATMAN_OPT)
+
+CLEAN_FEATMAN = del | $(foreach file,$($(IMAGE_TYPE)_FEAIBY),"$(file)")
+BUILD_FEATMAN =\
+ $(call iif,$(SYMBIAN_FEATURE_MANAGER),$(if $($(IMAGE_TYPE)_FEAXML),\
+ echo-q | Generating Feature manager file(s) |\
+ write | $($(IMAGE_TYPE)_FEAIBY) | |\
+ cmd | $(FEATMAN_CMD)))
-#* Writing tmp7.oby - result of problem-suppression phase
-#Can't open \epoc32\release\ARMV5\urel\apgrfx.dll.map
-#Unrecognised option -NO-HEADER0
+#==============================================================================
+# ROFS symbol generation
+
+MAKSYMROFS_CMD = $(MAKSYMROFS_TOOL) $(call pathconv,"$($(IMAGE_TYPE)_LOG)" "$($(IMAGE_TYPE)_SYM)")
-# For passing extra paramters (from command line)
-BLDROPT =
-BLDROBY =
+CLEAN_MAKSYMROFS = del | "$($(IMAGE_TYPE)_SYM)"
+BUILD_MAKSYMROFS =\
+ echo-q | Creating $($(IMAGE_TYPE)_TITLE) symbol file |\
+ cmd | $(MAKSYMROFS_CMD)
+
+REPORT_MAKSYMROFS = $($(IMAGE_TYPE)_TITLE) symbols | $($(IMAGE_TYPE)_SYM) | f
###############################################################################
-# S60 Configuration Tool CLI
+# ConE
+
+USE_CONE = 0
+
+CONE_TOOL = $(call iif,$(USE_UNIX),,call )cone
+CONE_TOOLDIR = $(or $(wildcard $(E32TOOLS)/configurationengine),$(E32TOOLS)/cone)
+CONE_OUTDIR = $(OUTTMPDIR)/cone
+CONE_PRJ = $(CONFIGROOT)
+CONE_CONF = $($(IMAGE_TYPE)_CONECONF)
+CONE_RNDCONF = $(COREPLAT_NAME)/$(PRODUCT_NAME)/rnd/root.confml
+CONE_ADDCONF = $(call select,$(TYPE),rnd,$(if $(wildcard $(CONE_PRJ)/$(CONE_RNDCONF)),$(CONE_RNDCONF)))
+CONE_LOG = $($(or $(addsuffix _,$(IMAGE_TYPE)),WORK)PREFIX)_cone_$(call substm,* / : ? \,@,$(TARGET)).log
+CONE_VERBOSE = $(if $(filter debug 127,$(VERBOSE)),5)
+CONE_GOPT = generate --project="$(CONE_PRJ)"\
+ $(if $(CONE_CONF),--configuration="$(CONE_CONF)") $(addprefix --add=,$(CONE_ADDCONF))\
+ $(if $(CONE_LOG),--log-file="$(CONE_LOG)") $(addprefix --verbose=,$(CONE_VERBOSE))
+CONE_PARSE = parse-2 | ConE errors: | /ERROR\s*:/i |
+
+#==============================================================================
-CONFT_TOOL = cli.cmd
-CONFT_TOOLDIR = $(or $(wildcard /s60/tools/toolsextensions/ConfigurationTool),/ext/tools/toolsextensions/ConfigurationTool)
+CONE_MK = $(if $(CONE_PRJ),$(CONE_PRJ).mk)
+CONE_MKOPT = $(CONE_GOPT) --impl=imaker.* --all-layers --set=imaker.makefilename="$(CONE_MK)" --output=.
+CONE_MKCMD = $(CONE_TOOL) $(CONE_MKOPT)
+
+CLEAN_CONEPRE = del | "$(CONE_MK)" "$(CONE_LOG)"
+BUILD_CONEPRE =\
+ echo-q | Creating ConE makefile `$(CONE_MK)' |\
+ cmd | $(CONE_MKCMD) | $(CONE_PARSE) |\
+ test | "$(CONE_MK)"
+
+#==============================================================================
+
+CONE_IMPLS =
+CONE_IMPLOPT = $(addprefix --impl=,$(subst $(,), ,$(CONE_IMPLS)))
+CONE_LAYERS =
+CONE_LAYEROPT = $(addprefix --layer=,$(subst $(,), ,$(CONE_LAYERS)))
+CONE_REPFILE = $(basename $(CONE_LOG)).html
+CONE_REPDATADIR = $(OUTDIR)/cone-repdata
+CONE_REPDATAFILE = $(CONE_REPDATADIR)/$(IMAGE_TYPE).dat
+CONE_RTMPLFILE =
+
+CONE_GENOPT = $(CONE_GOPT)\
+ $(CONE_IMPLOPT) $(CONE_LAYEROPT) --add-setting-file=imaker_variantdir.cfg\
+ $(if $(CONE_REPFILE),$(call select,$(USE_CONE),mk,--report-data-output="$(CONE_REPDATAFILE)",--report="$(CONE_REPFILE)"))\
+ $($(IMAGE_TYPE)_CONEOPT) --output="$(CONE_OUTDIR)"
+CONE_GENCMD = $(CONE_TOOL) $(CONE_GENOPT)
-CONFT_DIR = $(WORKDIR)/ct
-CONFT_TMPDIR = $(CONFT_DIR)/_temp
-CONFT_CFGNAME = variant
-CONFT_CONFML = $(call iif,$(USE_VARIANTBLD),$(VARIANT_CONFML),$(WORKDIR)/$(CONFT_CFGNAME).confml)
-CONFT_IMPL = $(CONFIGROOT)/confml_data/s60;$(CONFIGROOT)/confml_data/customsw
-CONFT_IBYML = $(CONFT_TOOLDIR)/ibyml
-CONFT_OUTDIR = $(call iif,$(USE_VARIANTBLD),$(VARIANT_OUTDIR),$(CONFT_DIR)/cenrep)
-CONFT_CRLOG = $(call iif,$(USE_VARIANTBLD),$(VARIANT_PREFIX)_,$(CONFT_DIR))cenrep.log
-CONFT_ECLCONF = -configuration $(CONFT_TMPDIR) -data $(CONFT_TMPDIR)
-CONFT_CONF = $(CONFT_ECLCONF)\
- -master $(CONFT_CONFML) -impl $(CONFT_IMPL) $(if $(CONFT_IBYML),-ibyml $(CONFT_IBYML)) -output $(CONFT_DIR)\
- -report $(CONFT_CRLOG) -ignore_errors
-CONFT_CONFCP = $(call iif,$(USE_VARIANTBLD),$(VARIANT_CONFCP),$(CONFT_CFGNAME))
+CLEAN_CONEGEN = del | "$(CONE_LOG)" "$(CONE_REPFILE)" | deldir | "$(CONE_OUTDIR)"
+BUILD_CONEGEN =\
+ echo-q | Generating $($(IMAGE_TYPE)_TITLE) content with ConE |\
+ mkdir | "$(CONE_OUTDIR)" |\
+ cmd | $(CONE_GENCMD) | $(CONE_PARSE)
+
+REPORT_CONEGEN =\
+ ConE log | $(CONE_LOG) | f\
+ $(if $(CONE_REPFILE),| ConE report | $(CONE_REPFILE) | f)
+
+#==============================================================================
+
+CLEAN_CONEREPPRE = deldir | "$(CONE_REPDATADIR)"
+BUILD_CONEREPPRE =
+
+CONE_REPGENOPT =\
+ report --input-data-dir="$(CONE_REPDATADIR)"\
+ $(if $(CONE_RTMPLFILE),--template="$(CONE_RTMPLFILE)")\
+ --report="$(CONE_REPFILE)" --log-file="$(CONE_LOG)" $(addprefix --verbose=,$(CONE_VERBOSE))
+CONE_REPGENCMD = $(CONE_TOOL) $(CONE_REPGENOPT)
-CONFT_CMD = $(CONFT_TOOL) $(CONFT_CONF)
-CONFT_PARSE = parse | \nWarnings, errors and problems:\n | /warning:\|error:\|problem/i
+CLEAN_CONEREPGEN = del | "$(CONE_REPFILE)"
+BUILD_CONEREPGEN = $(if $(CONE_REPFILE),\
+ echo-q | Generating report with ConE to `$(CONE_REPFILE)' |\
+ cmd | $(CONE_REPGENCMD))
+
+REPORT_CONEREPGEN = $(if $(CONE_REPFILE),ConE report | $(CONE_REPFILE) | f)
-CLEAN_CENREP =\
- del | $(CONFT_CRLOG) |\
- deldir | "$(CONFT_DIR)" "$(CONFT_TMPDIR)" $(call iif,$(USE_VARIANTBLD),,"$(CONFT_OUTDIR)")
+#==============================================================================
+
+CONE_XCF = $(ICDP_XCF)
+
+CONE_XCFOPT = $(CONE_GOPT) --impl=xcf.gcfml --all-layers --output="$(dir $(CONE_XCF))"
+CONE_XCFCMD = $(CONE_TOOL) $(CONE_XCFOPT)
-BUILD_CENREP =\
- echo-q | Calling S60 Configuration Tool |\
- mkcd | $(CONFT_DIR) |\
- deldir | $(CONFT_TMPDIR) |\
- cmd | $(CONFT_CMD) | $(CONFT_PARSE) |\
- $(foreach dir,$(CONFT_CONFCP),\
- finddir | $(CONFT_DIR)/$(dir) | * | |\
- copy | __find__ | $(CONFT_OUTDIR) |)\
- $(call iif,$(KEEPTEMP),,deldir | $(CONFT_TMPDIR))
+CLEAN_CONEXCF = del | "$(CONE_XCF)" "$(CONE_LOG)"
+BUILD_CONEXCF =\
+ echo-q | Creating XCF file `$(CONE_XCF)' |\
+ cmd | $(CONE_XCFCMD) | $(CONE_PARSE) |\
+ test | "$(CONE_XCF)"
+
+#==============================================================================
+
+.PHONY: cone-pre cone-gen cone-rep-pre cone-rep-gen
+
+cone-pre: ;@$(call IMAKER,CONEPRE)
+cone-gen: ;@$(call IMAKER,CONEGEN)
+cone-rep-pre: ;@$(call IMAKER,CONEREPPRE)
+cone-rep-gen: ;@$(call IMAKER,CONEREPGEN)
###############################################################################
-# Interpretsis
+# SIS pre-installation
+
+SISINST_INI = $(wildcard $(VARIANT_DIR)/sis_config.ini)
+SISINST_DIR = $(VARIANT_SISDIR)
+SISINST_OUTDIR = $(VARIANT_OUTDIR)
+SISINST_CFGINI = $(IMAGE_PREFIX)_sis.ini
+SISINST_LOG = $(IMAGE_PREFIX)_sis.log
+SISINST_CONF = -d $(if $(filter Z z,$(or $($(IMAGE_TYPE)_DRIVE),Z)),C,$($(IMAGE_TYPE)_DRIVE)) -e -k 5.4 -s "$(SISINST_DIR)"
+SISINST_HALHDA =
+
+# sf/os/kernelhwsrv/halservices/hal/inc/hal_data.h:
+define SISINST_HALINFO
+ EManufacturer_Ericsson 0x00000000
+ EManufacturer_Motorola 0x00000001
+ EManufacturer_Nokia 0x00000002
+ EManufacturer_Panasonic 0x00000003
+ EManufacturer_Psion 0x00000004
+ EManufacturer_Intel 0x00000005
+ EManufacturer_Cogent 0x00000006
+ EManufacturer_Cirrus 0x00000007
+ EManufacturer_Linkup 0x00000008
+ EManufacturer_TexasInstruments 0x00000009
-SISINST_DIR = $(WORKDIR)/sisinst
-SISINST_SISDIR = $(call iif,$(USE_VARIANTBLD),$(VARIANT_SISDIR))
-SISINST_OUTDIR = $(call iif,$(USE_VARIANTBLD),$(VARIANT_OUTDIR),$(SISINST_DIR)/output)
-#SISINST_ZDIR = $(SISINST_DIR)/z_drive
-SISINST_ZDIR = $(EPOC32)/data/Z
+ EDeviceFamily_Crystal 0
+ EDeviceFamily_Pearl 1
+ EDeviceFamily_Quartz 2
+
+ ECPU_ARM 0
+ ECPU_MCORE 1
+ ECPU_X86 2
+
+ ECPUABI_ARM4 0
+ ECPUABI_ARMI 1
+ ECPUABI_THUMB 2
+ ECPUABI_MCORE 3
+ ECPUABI_MSVC 4
+ ECPUABI_ARM5T 5
+ ECPUABI_X86 6
+
+ ESystemStartupReason_Cold 0
+ ESystemStartupReason_Warm 1
+ ESystemStartupReason_Fault 2
+
+ EKeyboard_Keypad 0x1
+ EKeyboard_Full 0x2
-SISINST_HALINI = $(wildcard $(PRODUCT_DIR)/interpretsis.ini)
-SISINST_CONF = -w info -z $(SISINST_ZDIR) $(if $(SISINST_HALINI),-i $(SISINST_HALINI)) -c $(SISINST_OUTDIR) -s $(SISINST_SISDIR)
-SISINST_CMD = $(INTPRSIS_TOOL) $(SISINST_CONF)
-SISINST_PARSE =\
- parse | \nWarning(s):\n | /^WARN:/ |\
- parse | \nError(s):\n | /^ERR :/
+ EMouseState_Invisible 0
+ EMouseState_Visible 1
-#CLEAN_SISINSTPRE = deldir | $(SISINST_ZDIR)
-#BUILD_SISINSTPRE =\
-# mkdir | $(SISINST_ZDIR) |\
-# $(foreach img,$(ROM_IMG) $(foreach rofs,1 2 3 4 5 6,$(call iif,$(USE_ROFS$(rofs)),$(ROFS$(rofs)_IMG))),\
-# cmd | $(READIMG_TOOL) -z $(SISINST_ZDIR) $(img) |)
+ EMachineUid_Series5mx 0x1000118a
+ EMachineUid_Brutus 0x10005f60
+ EMachineUid_Cogent 0x10005f61
+ EMachineUid_Win32Emulator 0x10005f62
+ EMachineUid_WinC 0x10005f63
+ EMachineUid_CL7211_Eval 0x1000604f
+ EMachineUid_LinkUp 0x00000000
+ EMachineUid_Assabet 0x100093f3
+ EMachineUid_Zylonite 0x101f7f27
+ EMachineUid_IQ80310 0x1000a681
+ EMachineUid_Lubbock 0x101f7f26
+ EMachineUid_Integrator 0x1000AAEA
+ EMachineUid_Helen 0x101F3EE3
+ EMachineUid_X86PC 0x100000ad
+ EMachineUid_OmapH2 0x1020601C
+ EMachineUid_OmapH4 0x102734E3
+ EMachineUid_NE1_TB 0x102864F7
+ EMachineUid_EmuBoard 0x1200afed
+ EMachineUid_OmapH6 0x10286564
+ EMachineUid_OmapZoom 0x10286565
+ EMachineUid_STE8500 0x101FF810
-CLEAN_SISINST = deldir | "$(SISINST_DIR)" $(call iif,$(USE_VARIANTBLD),,"$(SISINST_OUTDIR)")
+ EPowerBatteryStatus_Zero 0
+ EPowerBatteryStatus_Replace 1
+ EPowerBatteryStatus_Low 2
+ EPowerBatteryStatus_Good 3
+
+ EPowerBackupStatus_Zero 0
+ EPowerBackupStatus_Replace 1
+ EPowerBackupStatus_Low 2
+ EPowerBackupStatus_Good 3
+endef
+
+define SISINST_CFGINFO
+ $(foreach lang,$(LANGPACK_LANGIDS),
+ DEVICE_SUPPORTED_LANGUAGE = $(lang))
+endef
+
+CLEAN_SISINST = del | "$(SISINST_CFGINI)" "$(SISINST_LOG)"
BUILD_SISINST =\
- echo-q | Installing SIS |\
- mkdir | $(SISINST_OUTDIR) |\
- cmd | $(SISINST_CMD) | $(SISINST_PARSE)
+ echo-q | Installing SIS file(s) |\
+ sisinst | $(SISINST_INI) | $(SISINST_CFGINI) | $(SISINST_CONF) |\
+ $(SISINST_HALHDA) | $(strip $(call def2str,$(SISINST_HALINFO) | $(SISINST_CFGINFO))) |\
+ $(SISINST_OUTDIR) | $(SISINST_LOG)
###############################################################################
# Operator Cache Tool
-OPC_TOOL = $(ITOOL_DIR)/opcache_tool.py
-OPC_CONF = -u $(OPC_URL) -e $(OPC_EXPDATE) -m $(OPC_MMAPFILE) -i $(OPC_RAWDIR) -o $(OPC_OUTDIR)/$(OPC_CACHEDIR)
-OPC_CMD = $(PYTHON) $(OPC_TOOL) $(OPC_CONF)
-OPC_DIR = $(WORKDIR)/opcache
-OPC_RAWDIR = $(call iif,$(USE_VARIANTBLD),$(VARIANT_OPCDIR))
-OPC_OUTDIR = $(call iif,$(USE_VARIANTBLD),$(VARIANT_OUTDIR),$(OPC_DIR)/output)
-OPC_CACHEDIR = cache
-OPC_MMAPFILE = $(OPC_DIR)/mimemap.dat
-
+OPC_TOOL = $(PYTHON) $(ITOOL_DIR)/opcache_tool.py
+OPC_INI = $(wildcard $(VARIANT_DIR)/opcache_config.ini)
+OPC_DIR = $(VARIANT_OPCDIR)
+OPC_OUTDIR = $(VARIANT_OUTDIR)/$(OPC_CACHEDIR)
+OPC_TMPDIR = $(OUTTMPDIR)/opcache
+OPC_CACHEDIR = system/cache/op
OPC_URL = http://www.someoperator.com/Cache_OpCache
-OPC_EXPDATE = 3
+OPC_EXPDATE = 2012-01-01
+OPC_MIMEFILE = $(IMAGE_PREFIX)_opcachemime.dat
+OPC_CONF = -u "$(OPC_URL)" -e "$(OPC_EXPDATE)" -m "$(OPC_MIMEFILE)" -i "$(OPC_DIR)" -o "$(OPC_OUTDIR)"
define OPC_MIMEMAP
.bmp: image/bmp
@@ -159,30 +343,12 @@
.xhtml: application/xhtml+xml
endef
-CLEAN_OPCACHE = del | $(OPC_MMAPFILE) | deldir | "$(OPC_DIR)" $(call iif,$(USE_VARIANTBLD),,"$(OPC_OUTDIR)")
+CLEAN_OPCACHE = del | "$(OPC_MIMEFILE)"
BUILD_OPCACHE =\
- echo-q | Creating Operator Cache content |\
- write | $(OPC_MMAPFILE) |\
- $(call def2str,\# Generated `$(OPC_MMAPFILE)$' for Operator Cache content creation$(\n)$(\n)$(OPC_MIMEMAP)) |\
- test | $(OPC_RAWDIR)/* |\
- mkdir | $(OPC_OUTDIR)/$(OPC_CACHEDIR) |\
- cmd | $(OPC_CMD)
-
-
-###############################################################################
-# Widget Pre-installation
-
-WIDGET_WGZIP = $(WORKDIR)/*.wgz
-WIDGET_WGZDIR = $(EPOC32)/release/winscw/udeb/z/data/WidgetBURTemp
-WIDGET_WGZIBY = $(E32ROMINC)/widgetbackupfiles.iby
-WIDGET_WGZPXML = Info.plist
-
-CLEAN_WGZPREINST = del | $(WIDGET_WGZIBY) | deldir | $(WIDGET_WGZDIR)
-BUILD_WGZPREINST =\
- echo-q | Widget Pre-installation |\
- echo-q | Unzip $(WIDGET_WGZIP) file(s) to $(WIDGET_WGZDIR), generating $(WIDGET_WGZIBY) |\
- wgunzip | $(WIDGET_WGZIP) | $(WIDGET_WGZDIR) | $(WIDGET_WGZPXML) |\
- geniby-r | $(WIDGET_WGZIBY) | $(WIDGET_WGZDIR) | * | data="%1" "data/WidgetBURTemp/%2" | end
+ echo-q | Creating Operator Cache content |\
+ mkdir | "$(OPC_OUTDIR)" |\
+ write | "$(OPC_MIMEFILE)" | $(call def2str,$(OPC_MIMEMAP))\n |\
+ opcache | $(OPC_INI) | $(OPC_CONF) | $(OPC_TMPDIR)
###############################################################################
@@ -226,28 +392,276 @@
###############################################################################
# Image to files; extract files from .img using Readimage tool
-I2FILE_DIR = $(WORKDIR)/img2file
+CLEAN_I2FILE = deldir | "$($(IMAGE_TYPE)_I2FDIR)"
+BUILD_I2FILE =\
+ echo-q | Extracting files from $($(IMAGE_TYPE)_TITLE) SOS image to $($(IMAGE_TYPE)_I2FDIR) |\
+ mkcd | "$($(IMAGE_TYPE)_I2FDIR)" |\
+ $(foreach img,$($(IMAGE_TYPE)_IMG),\
+ cmd | $(READIMG_TOOL) -s $(img) |\
+ cmd | $(READIMG_TOOL) -z . $(img) |)
+
+
+###############################################################################
+# Rofsbuild FAT
+
+ROFSBLD_FATOPT = -datadrive="$($(IMAGE_TYPE)_OUTOBY)" $(addprefix -j,$(BLDROM_JOBS)) $(call iif,$(KEEPGOING),-k) -loglevel2 -slog
+
+CLEAN_ROFSBLDFAT = del | "$($(IMAGE_TYPE)_LOG)"
+BUILD_ROFSBLDFAT =\
+ cmd | $(ROFSBLD_TOOL) $(ROFSBLD_FATOPT) |\
+ move | "$($(IMAGE_TYPE)_OUTOBY).log" | $($(IMAGE_TYPE)_LOG)
+
+
+###############################################################################
+# Filedisk
+
+FILEDISK_TOOL = filedisk
+FILEDISK_OPT = /mount 0 $(call peval,GetAbsFname($(call pquote,$($(IMAGE_TYPE)_IMG)),1)) $(call peval,$$iVar[0] = GetFreeDrive())
+FILEDISK_SLEEP = 1
-CLEAN_COREI2F = deldir | $(CORE_I2FDIR)
-BUILD_COREI2F = $(call _buildi2file,CORE,$(CORE_I2FDIR),$(ROM_IMG) $(call iif,$(USE_ROFS1),$(ROFS1_IMG)))
+CLEAN_FILEDISK = del | "$($(IMAGE_TYPE)EMPTY_IMG)"
+BUILD_FILEDISK =\
+ $(if $($(IMAGE_TYPE)EMPTY_CMD),\
+ cmd | $($(IMAGE_TYPE)EMPTY_CMD) |\
+ move | "$($(IMAGE_TYPE)EMPTY_IMG)" | $($(IMAGE_TYPE)_IMG) |)\
+ cmd | $(FILEDISK_TOOL) $(FILEDISK_OPT) |\
+ copydir | "$($(IMAGE_TYPE)_DATADIR)" | $(call peval,$$iVar[0])/ |\
+ cmd | $(FILEDISK_TOOL) /status $(call peval,$$iVar[0]) |\
+ sleep | $(FILEDISK_SLEEP) |\
+ cmd | $(FILEDISK_TOOL) /umount $(call peval,$$iVar[0])
+
+
+###############################################################################
+# WinImage
+
+WINIMAGE_TOOL = "c:/program files/winimage/winimage.exe"
+WINIMAGE_OPT = $(call pathconv,$($(IMAGE_TYPE)_IMG)) /i $(call pathconv,$($(IMAGE_TYPE)_DATADIR)) /h /q
+
+CLEAN_WINIMAGE = del | "$($(IMAGE_TYPE)EMPTY_IMG)"
+BUILD_WINIMAGE =\
+ $(if $($(IMAGE_TYPE)EMPTY_CMD),\
+ cmd | $($(IMAGE_TYPE)EMPTY_CMD) |\
+ move | "$($(IMAGE_TYPE)EMPTY_IMG)" | $($(IMAGE_TYPE)_IMG) |)\
+ cmd | $(WINIMAGE_TOOL) $(WINIMAGE_OPT)
+
+
+###############################################################################
+# Widget Pre-installation
-CLEAN_VARIANTI2F = $(foreach rofs,2 3 4 5 6,$(call iif,$(USE_ROFS$(rofs)),deldir | $(ROFS$(rofs)_I2FDIR) |))
-BUILD_VARIANTI2F =\
- $(foreach rofs,2 3 4 5 6,$(call iif,$(USE_ROFS$(rofs)),\
- $(call _buildi2file,ROFS$(rofs),$(ROFS$(rofs)_I2FDIR),$(ROFS$(rofs)_IMG))))
+WIDGET_TOOLDIR = $(E32TOOLS)/widget_tools
+WIDGET_TOOL = $(WIDGET_TOOLDIR)/widgetpreinstaller/installwidgets.pl
+WIDGET_DIR = $(VARIANT_WGZDIR)
+WIDGET_TMPDIR = $(OUTTMPDIR)/widget
+WIDGET_OUTDIR = $(VARIANT_OUTDIR)
+WIDGET_IDIR = $(WIDGET_DIR) $(VARIANT_DIR) $(FEATVAR_IDIR)
+WIDGET_INI = $(call findfile,widget_config.ini,$(WIDGET_IDIR),1)
+WIDGET_CFGINI = $(IMAGE_PREFIX)_widget.ini
+WIDGET_LANGOPT = $(LANGPACK_DEFLANGID)
+WIDGET_OPT = -verbose $(if $(filter debug 127,$(VERBOSE)),-debug) -epocroot "$(WIDGET_TMPDIR)" $(call iif,$(WIDGET_LANGOPT),-localization $(WIDGET_LANGOPT))
+WIDGET_CMD = $(PERL) $(WIDGET_TOOL) $(WIDGET_OPT) "$(WIDGET_CFGINI)"
+
+define WIDGET_HDRINFO
+ # Generated configuration file for Widget pre-installation
+ #
+ # Filename: $(WIDGET_CFGINI)
+ # Command : $(WIDGET_CMD)
+
+ $(if $(WIDGET_INI),,[drive-$(call lcase,$($(IMAGE_TYPE)_DRIVE))])
+endef
+
+WIDGET_HSINI = $(IMAGE_PREFIX)_hsplugin.ini
+WIDGET_HSCINI = $(IMAGE_PREFIX)_hsplugincwrt.ini
+WIDGET_HSOPT = "$(WIDGET_TMPDIR)" "$(WIDGET_HSINI)"
+WIDGET_HSCOPT = "$(WIDGET_TMPDIR)" "$(WIDGET_HSCINI)"
+WIDGET_HSCMD = $(call iif,$(USE_UNIX),,call )$(WIDGET_TOOLDIR)/hspluginpreinstaller/HSPluginPreInstaller $(WIDGET_HSOPT)
+WIDGET_HSCCMD = $(call iif,$(USE_UNIX),,call )$(WIDGET_TOOLDIR)/hspluginpreinstaller/HSPluginPreInstaller $(WIDGET_HSCOPT)
+
+WIDGET_HSVIEWDIR = $(if $(VARIANT_CPDIR),$(wildcard $(subst \,/,$(VARIANT_CPDIR))/private/200159c0/install))
+WIDGET_HSWIDEDIR = $(E32DATAZ)/private/200159c0/install/wideimage_2001f489
+WIDGET_HSOUTDIR = $(subst \,/,$(WIDGET_OUTDIR))/private/200159c0/install
+
+define WIDGET_HSINFO
+ # Generated configuration file for Home Screen plugin pre-installation for$(if $1, $1) widgets
+ #
+ # Filename: $(WIDGET_HS$(if $1,C)INI)
+ # Command : $(WIDGET_HS$(if $1,C)CMD)
+
+ WIDGET_REGISTRY_PATH=$(subst \,/,$(WIDGET_OUTDIR))/private/10282f06/$1WidgetEntryStore.xml
+
+ VIEW_CONFIGURATION_PATH=$(WIDGET_HSVIEWDIR)
+
+ WIDEIMAGE_PATH=$(WIDGET_HSWIDEDIR)
+
+ OUTPUT_DIR=$(WIDGET_HSOUTDIR)
+endef
+
+CLEAN_WIDGET =\
+ del | "$(WIDGET_CFGINI)" "$(WIDGET_HSINI)" "$(WIDGET_HSCINI)" |\
+ deldir | "$(WIDGET_TMPDIR)"
+
+BUILD_WIDGET =\
+ echo-q | Installing widget(s) |\
+ genwgzcfg | $(WIDGET_CFGINI) | $(WIDGET_INI) | $(WIDGET_DIR) | $(call def2str,$(WIDGET_HDRINFO)) |\
+ $(and $(WIDGET_HSINFO),$(WIDGET_HSVIEWDIR),\
+ write | "$(WIDGET_HSINI)" | $(call def2str,$(call WIDGET_HSINFO))\n |\
+ write | "$(WIDGET_HSCINI)" | $(call def2str,$(call WIDGET_HSINFO,CWRT))\n |)\
+ mkdir | "$(WIDGET_TMPDIR)" |\
+ cmd | (cd $(call pathconv,$(WIDGET_TMPDIR))) & $(WIDGET_CMD) |\
+ copydir | "$(WIDGET_TMPDIR)/epoc32/$(if $(filter CORE ROFS%,$(IMAGE_TYPE)),release/winscw/udeb/z,winscw/?)" |\
+ $(WIDGET_OUTDIR) |\
+ $(and $(WIDGET_HSINFO),$(WIDGET_HSVIEWDIR),\
+ mkdir | "$(WIDGET_HSOUTDIR)" |\
+ cmd | $(WIDGET_HSCMD) |\
+ cmd | $(WIDGET_HSCCMD) |)\
+ $(call iif,$(KEEPTEMP),,deldir | "$(WIDGET_TMPDIR)")
+
+
+###############################################################################
+# Data package 2.0 creation / iCreatorDP
+
+#USE_DPGEN = 0
-CLEAN_I2FILE = deldir | $(I2FILE_DIR) | $(CLEAN_COREI2F) | $(CLEAN_VARIANTI2F)
-BUILD_I2FILE =\
- $(BUILD_COREI2F) | $(BUILD_VARIANTI2F) |\
- copy | $(CORE_I2FDIR)/* | $(I2FILE_DIR) |\
- $(foreach rofs,2 3 4 5 6,$(call iif,$(USE_ROFS$(rofs)),copy | $(ROFS$(rofs)_I2FDIR)/* | $(I2FILE_DIR) |))
+ICDP_TOOL = iCreatorDP.py
+ICDP_TOOLDIR = $(EPOC_ROOT)/iCreatorDP
+ICDP_OPT = --xcfs="$(ICDP_XCF)" --wa="$(ICDP_WRKDIR)" --ba="$(ICDP_BLDDIR)" --i="$(ICDP_IMGDIR)" --build
+ICDP_OUTDIR = $(EPOC_ROOT)/output
+ICDP_XCF = $(ICDP_OUTDIR)/griffin.xcf
+ICDP_WRKDIR = $(ICDP_OUTDIR)/DP_WA
+ICDP_BLDDIR = $(ICDP_OUTDIR)/DP_OUT
+ICDP_IMGDIR = $(ICDP_OUTDIR)/images
+ICDP_VPLDIR = $(ICDP_OUTDIR)/VPL
+ICDP_CMD = $(PYTHON) $(ICDP_TOOL) $(ICDP_OPT)
+
+ICDP_CUSTIMG = $(ICDP_IMGDIR)/customer.fpsx
+ICDP_UDAIMG = $(ICDP_IMGDIR)/customer_uda.fpsx
+
+#ICDP_IMGLIST = "$(ICDP_IMGDIR)/customer.fpsx" "$(ICDP_IMGDIR)/customer_uda.fpsx"
+
+CLEAN_DPPRE = $(CLEAN_CONEXCF) | del | "$(ICDP_CUSTIMG)"
+BUILD_DPPRE =\
+ $(BUILD_CONEXCF) |\
+ echo-q | Copying images |\
+ mkdir | "$(ICDP_IMGDIR)" |\
+ copy | "$(ROFS3_FLASH)" | $(ICDP_CUSTIMG) |\
+# copy | $(UDA_FLASH) | $(ICDP_UDAIMG)
+
+CLEAN_DPBLD = deldir | "$(ICDP_BLDDIR)"
+BUILD_DPBLD =\
+ echo-q | Generating data package |\
+ cd | "$(ICDP_TOOLDIR)" |\
+ cmd | $(ICDP_CMD)
+
+CLEAN_DPPOST = deldir | "$(ICDP_VPLDIR)"
+BUILD_DPPOST =\
+ find-r | "$(ICDP_BLDDIR)" | *.zip | |\
+ unzip | __find__ | $(ICDP_VPLDIR)
+
+#==============================================================================
+
+.PHONY: datapack datapack-pre
+
+datapack : ;@$(call IMAKER,$$(call iif,$$(SKIPPRE),,DPPRE) $$(call iif,$$(SKIPBLD),,DPBLD) $$(call iif,$$(SKIPPOST),,DPPOST))
+datapack-pre: ;@$(call IMAKER,DPPRE)
+
+
+###############################################################################
+# Data package copying functionality for Griffin
+
+#DP_SRCDIR = $(EPOC_ROOT)/output/images
+DP_CORESRC =
+DP_LANGSRC =
+DP_CUSTSRC =
+DP_UDASRC =
+DP_DCPSRC =
+DP_VPLSRC =
+DP_SIGNSRC =
+
+DP_OUTDIR = $(EPOC_ROOT)/output/VPL
+DP_CORETGT = $(DP_OUTDIR)/core.fpsx
+DP_LANGTGT = $(DP_OUTDIR)/lang.fpsx
+DP_CUSTTGT = $(DP_OUTDIR)/customer.fpsx
+DP_UDATGT = $(DP_OUTDIR)/uda.fpsx
+DP_DCPTGT = $(DP_OUTDIR)/carbidev.dcp
+DP_VPLTGT = $(DP_OUTDIR)/carbidev.vpl
+DP_SIGNTGT = $(DP_OUTDIR)/carbidev_signature.bin
-_buildi2file =\
- echo-q | Extracting files from $($1_TITLE) SOS image to $2 |\
- mkcd | $2 |\
- $(foreach img,$3,\
- cmd | $(READIMG_TOOL) -s $(img) |\
- cmd | $(READIMG_TOOL) -z . $(img) |)
+DP_MK = $(OUTPREFIX)_dpcopy.mk
+DP_MKLOG = $(basename $(DP_MK))_cone.log
+DP_MKOPT =\
+ generate --project="$(CONE_PRJ)" $(if $(CONE_CONF),--configuration="$(CONE_CONF)")\
+ --impl=dp.makeml --all-layers --set=imaker.makefilename="$(DP_MK)"\
+ --log-file="$(DP_MKLOG)" $(addprefix --verbose=,$(CONE_VERBOSE))
+DP_MKCMD = $(CONE_TOOL) $(DP_MKOPT)
+
+CLEAN_DPCOPYPRE = del | "$(DP_MK)" "$(DP_MKLOG)"
+BUILD_DPCOPYPRE =\
+ echo-q | Generating makefile `$(DP_MK)' for Data Package copy |\
+ cmd | $(DP_MKCMD) |\
+ test | "$(DP_MK)"
+
+CLEAN_DPCOPY = deldir | "$(DP_OUTDIR)"
+
+BUILD_DPCOPY =\
+ echo-q | Copying Data Package contents |\
+ mkdir | "$(DP_OUTDIR)" |\
+ $(foreach type,CORE LANG CUST UDA DCP VPL SIGN,\
+ copy | "$(DP_$(type)SRC)" | $(DP_$(type)TGT) |)
+
+#==============================================================================
+
+.PHONY: dpcopy dpcopy-pre
+
+dpcopy : ;@$(call IMAKER,DPCOPY)
+dpcopy-pre: ;@$(call IMAKER,DPCOPYPRE)
+
+
+###############################################################################
+# PlatSim
+
+USE_PLATSIM = 0
+
+PLATSIM_TOOL = pscli.exe
+PLATSIM_TOOLDIR = /rd_sw/platsim
+PLATSIM_TOOL_INSTANCESDIR = $(PLATSIM_TOOLDIR)/instances
+PLATSIM_IMAGESDIR = $(PLATSIM_TOOLDIR)/HW77/images
+PLATSIM_INSTANCE = 1
+RUN_PLATSIM = 0
+PLATSIM_IMAGES = $(CORE_FLASH)
+PLATSIM_IMAGESRC = $(patsubst %\,%,$(call pathconv,$(dir $(PLATSIM_IMAGES))))
+
+PLATSIM_INSTANCES = $(notdir $(foreach entry,$(wildcard $(PLATSIM_TOOL_INSTANCESDIR)/*),$(call isdir,$(entry))))
+define isdir
+$(if $(wildcard $1/*),$1)
+endef
+
+BUILD_PLATLAUNCH =\
+ echo-q | Launching PlatSim instance $(PLATSIM_INSTANCE) |\
+ cd | $(PLATSIM_TOOLDIR) |\
+ cmd | $(PLATSIM_TOOL) --launch $(PLATSIM_INSTANCE)
+
+BUILD_PLATSHUTDOWN =\
+ echo-q | Stopping PlatSim instance $(PLATSIM_INSTANCE) |\
+ cd | $(PLATSIM_TOOLDIR) |\
+ cmd | $(PLATSIM_TOOL) --console --shutdown $(PLATSIM_INSTANCE)
+
+BUILD_PLATCREATE =\
+ echo-q | Creating new PlatSim instance $(PLATSIM_INSTANCE) |\
+ cmd | $(PLATSIM_TOOL) --console --create $(PLATSIM_INSTANCE) |\
+ cmd | $(PLATSIM_TOOL) --set $(PLATSIM_INSTANCE):imaker_$(PLATSIM_INSTANCE)
+
+BUILD_PLATUPDATE =\
+ echo-q | Updating PlatSim instance $(PLATSIM_INSTANCE) |\
+ cmd | $(PLATSIM_TOOL) --console --set $(PLATSIM_INSTANCE):$(PLATSIM_IMAGESRC):$(notdir $(PLATSIM_IMAGES))
+
+BUILD_PLATBLD =\
+ cd | $(PLATSIM_TOOLDIR) |\
+ $(if $(filter $(PLATSIM_INSTANCE),$(PLATSIM_INSTANCES)),\
+ echo-q | Platsim instance $(PLATSIM_INSTANCE) exists | $(BUILD_PLATSHUTDOWN),\
+ $(BUILD_PLATCREATE)) |\
+ $(BUILD_PLATUPDATE) |\
+ $(call iif,$(RUN_PLATSIM),$(BUILD_PLATLAUNCH))
+
+$(call add_help,USE_PLATSIM,v,(string),Define that the configuration is a PlatSim configuration.)
###############################################################################
@@ -269,7 +683,6 @@
$(IMGCHK_TOOL) | $(IMGCHK_TOOL) -h | IMGCHECK.+? V(.+?)\s*$$ |
$(INTPRSIS_TOOL) | $(INTPRSIS_TOOL) -h | INTERPRETSIS\s+Version\s+(.+?)\s*$$ |
$(READIMG_TOOL) | $(READIMG_TOOL) | Readimage.+? V(.+?)\s*$$ |
- $(CONFT_TOOL) | $(CONFT_TOOL) -version | ^.+?\n(.+?)\n(.+?)\n
endef
BUILD_TOOLINFO = echo-q | | toolchk | $(strip $(TOOL_INFO)) | end
@@ -282,9 +695,9 @@
###############################################################################
# Targets
-.PHONY: checkdep opcache sisinst toolinfo wgzpreinst
+.PHONY: checkdep opcache sisinst toolinfo
-chkdep opcache sisinst toolinfo wgzpreinst:\
+chkdep opcache sisinst toolinfo:\
;@$(call IMAKER,$(call ucase,$@))