HelloWorldBasic uses an extension makefile (.mk) to compile the application icon. The extension make files are stored in the project's group folder. For more information on extension makefiles, see the How to write an extension makefile template topic.
The Icons_scalable_dc.mk file is as follows:
ifeq (WINS,$(findstring WINS, $(PLATFORM))) ZDIR=$(EPOCROOT)epoc32\release\$(PLATFORM)\$(CFG)\Z else ZDIR=$(EPOCROOT)epoc32\data\z endif TARGETDIR=$(ZDIR)\resource\apps ICONTARGETFILENAME=$(TARGETDIR)\helloworldbasic_aif.mif ICONDIR=..\gfx do_nothing : @rem do_nothing MAKMAKE : do_nothing BLD : do_nothing CLEAN : do_nothing LIB : do_nothing CLEANLIB : do_nothing RESOURCE : mifconv $(ICONTARGETFILENAME) \ /c32 $(ICONDIR)\qgn_menu_helloworldbasic.svg FREEZE : do_nothing SAVESPACE : do_nothing RELEASABLES : @echo $(ICONTARGETFILENAME) FINAL : do_nothing
The meaning of the lines is as follows:
ifeq (WINS,$(findstring WINS, $(PLATFORM))) ZDIR=$(EPOCROOT)epoc32\release\$(PLATFORM)\$(CFG)\Z else ZDIR=$(EPOCROOT)epoc32\data\z endif
An if statement that uses the $(PLATFORM) macro to determine the built platform, and if the platform is WINS , it finds the path of the root folder from the environment variables. WINS sets the variable ZDIR to that root plus the folders epoc32/release/wins/, and the result of the $(CFG) macro, which is either the UDEB or UREL/Z variable. If the platform is not WINS, it sets variable to the other folder. For more information about WINS see Compilers.
TARGETDIR=$(ZDIR)\resource\apps ICONTARGETFILENAME=$(TARGETDIR)\helloworldbasic_aif.mif
Builds the full path for the icon file. The .mif file is the result of the SVG-T build. This is a file into which all the icons are placed to save space. The application opens this file to retrieve the images required. Note also that the name of the .mif file must be unique.
ICONDIR=..\gfx
Project folder that contains the icon, relative to the folder that contains the bld.inf file.
do_nothing : @rem do_nothing MAKMAKE : do_nothing
Required target for processing the extension makefile by abld, this corresponds to the abld command makefile. In this case, no makefile is required, so nothing is done.
BLD : do_nothing
Required target for processing the extension makefile by abld, this corresponds to the abld command target. In this case, no main executable or resources are required, so nothing is done.
CLEAN : do_nothing
Required target for processing the extension makefile by abld, this corresponds to the abld command clean. This command removes everything built with abld target, but this action is not required so nothing is done. If you want the icon to be deleted when you do a clean, you can replace the do_nothing command with del /Q.
LIB : do_nothing
Required target for processing the extension makefile by abld, this corresponds to the abld command library. This command creates import libraries from frozen .def files. No action is required here.
CLEANLIB : do_nothing
Required target for processing the extension makefile by abld, this corresponds to the abld command tidy. This command removes executables that will not be released. This action is not required, so nothing is done here.
/ RESOURCE : mifconv $(ICONTARGETFILENAME) \ /c32 $(ICONDIR)\qgn_menu_helloworldbasic.svg
Required target for processing the extension makefile by abld, this corresponds to the abld command resource. This command creates resources files. mifconv is the command called to invoke the SVG-T build chain tool. This passes in the target location variable for where the result should go, and the location of the SVG-T file that needs to be converted. Thus example only uses one icon, if more were used, then each icon would need to be listed here. The C32 indicates the color depth of the icon. This value should not be changed for SVG-T icons.
FREEZE : do_nothing
Required target for processing the extension makefile by abld, this corresponds to the abld command freeze. This command freezes exported functions in a .def file. No action is required here.
SAVESPACE : do_nothing
Required target for processing the extension makefile by abld, this corresponds to the abld command target -savespace. This command and option deletes intermediate files on success. This is not required here, so nothing is done.
RELEASABLES : @echo $(ICONTARGETFILENAME)
Required target for processing the extension makefile by abld, this corresponds to the abld command target. This command checks to see that the releasables are present and lists them. With the echo, this generates a line to indicate what has been build.
FINAL : do_nothing
Required target for processing the extension makefile by abld, this corresponds to the abld command final. This command allows extension makefiles to execute final commands. This is not required here, so nothing is done.