You Are Here:

Community: Blogs

Harry Li's Forum Nokia Blog

Build Symbian C++ project with GNU make/autoconf

kcomex | 13 July, 2008 13:09

Everyone who develops native Symbian C++ application knows that we use BLD.INF and *.MMP files to define a project. This is used since the very ancient Nokia 9200 SDK. The reason that Symbian uses this approach is quite similar with the reason Symbian made other unique features : because mobile devices have unique characteristics other than desktop computers. There is no UID for each appilcation on a desktop OS, also there is no compile time check on global writable static data use.

However, when porting open source project like Mozilla to Symbian OS, it becomes very impractical to stick with the original BLD.INF plus *.MMP solution. There are a number of reasons:

  • Portability :
    Mozilla project is something we could treat it as a platform, framework or midware. So portability is something the community considers as the first requirement. The community maintains one code repository to generate binary executables for dozens of OS/CPU arch. combinations. So we can't say that you build everything except Symbian platform with GNU make while building Symbian targets with another tool chain. 
  • Community compatibility :
    We know the success of open source projects benefit from hundreds and thousands of developers around the world. The philosophy behind this doesn't mean we get software products without paying since they love contributing, it means they may be different experts on different sub-system. So we can't imagine that in future the FireFox for S60 has a security problem, a security expert has to learn how to build FireFox for S60 with BLD.INF and *.MMP for some time before he can get hands on the point of problem.
  • Large scale :
    Because the code base and the number of components are quite large, it would be very difficult to write a BLD.INF to build the whole platform which you might noticed in my earlier blog. That's also a nature of the scale limitation of Symbian's own build system compared with GNU make. As a derived reason we have to use Mozilla's build system, the community have to run a server to build the whole source tree every several hours because with such a large code base almost every hour there are codes checking into the repository, then the old Symbian's build method will have to be modified heavily to suite this automatically build monitoring system.
The reasons we have to move from Symbian's BLD.INF/*.MMP build method to GNU make are stated quite clear above. Yet it's not a good idea to talk about how to port the system and dive into Makefile lines in a blog article because the blog post is really something more literature rather than technical codes Wink. So I would like to give you two places to find the implementation and method behind all the immigration. First one is the [BUG 442706] where you could find detail patch about moving build system to GNU make/autoconf. The second one is Mozilla-Symbian project hosted on google-code which is a place for codes before they get checked into Mozilla main repository. With these two resources you could find solution of moving a Symbian project to GNU make/autoconf tool chain. Laughing

 

RSSComments

Button activation

kantharaju | 14/07/2008, 13:24

How to activate the button located on the UI designer, this button is not from OptionsMenu dialog, anybody help me please

What Open C has really been missing...

mgroeber9110 | 14/07/2008, 16:46

I believe that the ability to use standard build systems such as make/autoconf has been one of the big missing pieces in the whole "PIPS" and "Open C" framework - when it comes to portability, having the runtime libraries available is only one half of the equation, since the "build descriptions" (makefiles etc.) are often as much part of the source code to be "ported" as the core logic itself.

Is this patch something that would be applicable to other projects using autoconf as well?

Some advice required while porting....

yvsandeep | 17/11/2008, 10:06

Hi harry,
I am currently working on porting clucene-open source search engine into symbian using open c. I have started using symbian recently. I am having some problems in the build process.

Clucene uses cmake to build the system. How can we simulate this in symbian. I also like to chat with you regarding this... is this possible...

You must login to post comments. Login
 

Rate This

 
 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditDiigoTechnocratiTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
京ICP备05048969号    Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia 
RDF Facets: qdcZidentifierQSxhttpE3aE2fE2fblogsE2eforumE2enokiaE2ecomhttpE3aE2fE2fblogsE2eforumE2enokiaE2ecomE2findeE78E2ephpE3fopE3dViewArticleE26blogIdE3d43602E26articleIdE3d499X qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfntypeZBlogContentQ qdcZtypeQUqfntypeZBlogE45ntryQ qdcZtypeQUqfntypeZCommunityContentQ qdcZtypeQUqfntypeZE52esourceQ qdcZtypeQUqfntypeZWebpageQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qfnZtopicQUqfnTopicZcppQ qfnZtypeQUqfntypeZBlogContentQ qfnZtypeQUqfntypeZBlogE45ntryQ qfnZtypeQUqfntypeZCommunityContentQ qfnZtypeQUqfntypeZE52esourceQ qfnZtypeQUqfntypeZWebpageQ qfnZuserE5ftagQSxsymbianE2dcE2bE2bX qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfntypeZBlogContentQ qrdfZtypeQUqfntypeZBlogE45ntryQ qrdfZtypeQUqfntypeZCommunityContentQ qrdfZtypeQUqfntypeZE52esourceQ qrdfZtypeQUqfntypeZWebpageQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ