[Ns-developers] ns-3 modular build current status
Gustavo Carneiro
gjcarneiro at gmail.com
Tue Dec 7 11:33:27 PST 2010
sufficientsufficient
On Tue, Dec 7, 2010 at 18:57, Mitch Watrous <watrous at uw.edu> wrote:
> On 12/07/2010 10:38 AM, Gustavo Carneiro wrote:
>
>> On Tue, Dec 7, 2010 at 18:27, Mitch Watrous<watrous at uw.edu> wrote:
>>
>>
>>
>>> On 12/07/2010 09:47 AM, Gustavo Carneiro wrote:
>>>
>>>
>>>
>>>> On Thu, Dec 2, 2010 at 20:52, Mitch Watrous<watrous at uw.edu> wrote:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> Hi.
>>>>>
>>>>> Here is a brief update on the ns-3 modular build efforts.
>>>>>
>>>>> Details can be found at
>>>>>
>>>>>
>>>>> http://www.nsnam.org/wiki/index.php/App_Store_Technical_Requirements
>>>>>
>>>>> We are aiming to first make the existing ns-3 code modular, and then
>>>>> work on the second issue of supporting the easy integration of modules
>>>>> maintained by third parties.
>>>>>
>>>>> A new configuration file, .ns3rc, will be added to ns-3 that specifies
>>>>> the modules that should be enabled.
>>>>>
>>>>> We encountered a few limitations with jhbuild as the overall driver
>>>>> for our build system:
>>>>>
>>>>> 1. jhbuild has no support for scons;
>>>>> 2. jhbuild waf support is somewhat limited; and
>>>>> 3. jhbuild has no support for hierarchical builds.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>> What do you mean exactly by hierarchical builds? jhbuild supports
>>>> "metamodules", which is a fake module that just holds dependencies to
>>>> other
>>>> modules.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>> Can you have a hierarchy of JHBuild files like you can with makefiles or
>>> waf wscript files? It seemed to me like you had to have a single file at
>>> the top that could describes the whole system rather than a hierachy
>>> (tree)
>>> of files.
>>>
>>>
>>>
>> See for example this file:
>>
>>
>> http://git.gnome.org/browse/jhbuild/tree/modulesets/gnome-suites-core-3.0.modules
>>
>> <include href="gnome-suites-core-deps-3.0.modules"/>
>>
>>
>>
>>
>>> Jhbuild seems to be designed for more atomic builds that don't depend on
>>> one other.
>>>
>>>
>>>
>>>
>> Jhbuild is designed to build modules that depend on each other. I know
>> problems with jhbuild, but you do not seem to be indicating any of them,
>> or
>> maybe not expressing correctly.
>>
>>
>>
> You can modify the Wiki if you want to describe this JHBuild problem more
> precisely than I did.
>
OK, done.
In spite of this, I wonder what you mean by those remarks. Are you giving
up on jhbuild and looking for an alternative? I think jhbuild has potential
if someone has time to improve it to suit our needs.
One strong point in jhbuild is the user interaction when something goes
wrong: it presents a nice menu with several options of how to proceed. With
a simple 'make' approach, or shell script, for instance, you don't have that
nice interface...
> Mitch
>
>
> One of the greates annoyances in jhbuild, which I experienced in my GNOME
>> hacking days, is that it's not easy define layers of modules, and tell
>> jhbuild to skip the bottom layers to build just a few top modules. You
>> can
>> "start the build" at module X, or skip module Y, but this is not so much
>> useful in practice. In a system as big as GNOME, building it can take an
>> entire day, with much frustration in the middle to fix build problems in
>> the
>> makefiles of individual modules, or maybe just modules out of sync with
>> API
>> changes in other modules. At least in ns-3 I can build the entire system
>> in
>> 20 minutes or so, with no manual intervention.
>>
>> Mitch
>>
>>
>>>
>>> Your feedback is appreciated,
>>>
>>>
>>>> Mitch
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
--
Gustavo J. A. M. Carneiro
INESC Porto, UTM, WiN, http://win.inescporto.pt/gjc
"The universe is always one step beyond logic." -- Frank Herbert
More information about the Ns-developers
mailing list