See into S60
» Subscribe
» Favorite Links
» What is S60?
» Freeware & Trials
» S60 devices
» Hints and tips

» About this blog
» Blognotes (15)
» Bugs and Workarounds (4)
» Build tools (5)
» Carbide.c++ 1.1 (4)
» Carbide.c++ 1.2 (8)
» Carbide.c++ 1.3.x (8)
» Carbide.c++ 2.0.x (1)
» Carbide Plug-Ins (4)
» CodeWarrior (2)
» FAQ (6)
» Future directions (24)
» General (46)
» Off-topic (4)
» On-device debugging (13)
» Performance Investigator (2)
» Product features (16)
» Product releases (16)
» Screencast (12)
» Support (30)
» Tool setup (5)
» UI Designer (8)
» Usability (15)
» Work in Progress (13)
» Write-build-debug (4)
» Tommi's Reports from Wonderland
» Voice of S60
» Creating Carbide C++
» S60 Multimedia Blog
» The Convergence Zone
» Web Browser for S60 Blog
» Consumed by S60
» Java for S60
» Mobile Web Server
» Mobile Security
» See into S60
» Business2GO
» Nokia Podcasting Application Blog
» Launching from the SPN View
» Tips for using the CodeScanner tool!
» Carbide in the summer
» Austin Eclipse DemoCamp
» Where's my console output?
» July 2008
» June 2008
» May 2008
» April 2008
» March 2008
» February 2008
» August 2007
» May 2007
» April 2007
» March 2007
» February 2007
» January 2007
» December 2006
» November 2006
» October 2006
» September 2006
» August 2006
» July 2006
» June 2006
Subscribe
Links
May 12, 2008 S60 Build Performance: Don't Forget to Update Your Makefiles Posted by Tim Kelly at 08:20 AM | Categories: Bugs and Workarounds, Carbide.c++ 1.3.x, FAQ, General, Usability

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
----

Permalink |


Post a comment







«Back to previous page