diff -r 22486c9c7b15 -r 378360dbbdba imgtools/imaker/src/imaker_tools.mk --- 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)} ))$(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,$@))