S60 Build Performance: Don’t Forget to Update Your Makefiles
If you are building scalable (SVG) icons for your S60 application, chances are you are using makefiles without dependency tracking. I’ve noticed quite a few large projects that contain several icon makefiles without proper dependency tracking which can vastly degrage rebuild performance. For example, taking 15 minutes to rebuild instead of 10 seconds for a dependency check. This is typically due to header files that are always generated under \epoc32\include (e.g. MBG files) and causing subsequent CPP files to be unnecessarily re-compiled and the project re-linked.
You can easily fix this by adding the proper dependency tracking in your make file. For example, in your scalable icons make file:
The old RESOURCE target looked like this:
----
RESOURCE :
mifconv $(ICONTARGETFILENAME) /h$(HEADERFILENAME) \
/c12 ..\gfx\image1.bmp \
/c12,1 ..\gfx\image2.bmp \
/c16,8 ..\gfx\star.svg
—-
Where the fix is like this (the diff is in bold):
----
RESOURCE : $(ICONTARGETFILENAME)
$(ICONTARGETFILENAME) : ..\gfx\image1.bmp \
..\gfx\image2.bmp \
..\gfx\star.svg
mifconv $(ICONTARGETFILENAME) /h$(HEADERFILENAME) \
/c12 ..\gfx\image1.bmp \
/c12,1 ..\gfx\image2.bmp \
/c16,8 ..\gfx\star.svg
----



