Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] Build System Requirements (input in to Fall Conference)


Leo,
you have a slot at the CDT Fall Conference to discuss further build system requirements. I would like to start the discussion regarding these. As far as I can see we have three more requirements on the build system back-end. So let's take this as a starting point.
Regards
-- Lars

Command Line Length Limitations
Calling GNU makefiles from Windows is problematic when bigger projects are included. In a Symbian context it has happened before that the Windows command line limit of 32K was hit when performing the link step. To work around this .via files and resource files are being used.

There is no direct support to do this in MBS, although it may be possible to create rules such as

        ${dllname}.<outext> : <inputs>

                @echo “1st set of options”  > optionfile.via

                @echo “2nd set of options” >> optionfile.via

                …

                <the actual call to the tool using optionfile.via>

using the commandLineGenerator feature of MBS. However this technique is very slow and there is still a theoretical possibility that the contents of a makefile variable in an echo could hit the limit.

Groups of Sources that are passed to the same Tool
This covers functionality such as converting individual bitmaps/icons into the format which the OS understands.In some circumstances you want to bundle several bitmaps together. In other cases you don't. For example you might have a situation where you have:

        (1) bitmap_1..bmp .... bitmap_n.bmp => tool => output

OR       (2) bitmap_1.bmp => tool => output

At the moment we have covered this by introducing a new filetype which is a text list of bitmaps which then triggers a rule of form (1). However this is not very elegant, and there may be a better more integrated way of handling this, e.g. by saying it is possible to group sources in some way.

Note that some compilers, e.g. ARMs RealView compiler, has a feature called multi-file compilation where you can pass several source files to one compiler call. The compiler then does quite advanced global optimisation. To cover compiler features like this, you would need to add a group concept as well.


Interfacing with existing Makefiles
Our command line build system has a facility to interface with existing makefiles - these are called extension makefiles. They work by describing an interface in terms of makefile-variables and then invoking an existing makefile. If we wanted to cover these in CDT, we would need have some mechanism which would allow the user to edit the interface and generate an #include statement to the existing makefile. I have not fully thought this through, but believe that at the moment we could only do this if we were to develop our own makefile generator.


********************************************************************** Symbian Software Ltd is a company registered in England and Wales with registered number 4190020 and registered office at 2-6 Boundary Row, Southwark, London, SE1 8HP, UK. This message is intended only for use by the named addressee and may contain privileged and/or confidential information. If you are not the named addressee you should not disseminate, copy or take any action in reliance on it. If you have received this message in error please notify postmaster@xxxxxxxxxxx and delete the message and any attachments accompanying it immediately. Neither Symbian nor any of its subsidiaries accepts liability for any corruption, interception, amendment, tampering or viruses occurring to this message in transit or for any message sent by its employees which is not in compliance with Symbian corporate policy. **********************************************************************


Back to the top