BakeIntegration

From Nsnam
Revision as of 01:31, 8 December 2015 by Tomh (Talk | contribs) (update for ns-3.25)

Jump to: navigation, search

Main Page - Current Development - Developer FAQ - Tools - Related Projects - Project Ideas - Summer Projects

Installation - Troubleshooting - User FAQ - HOWTOs - Samples - Models - Education - Contributed Code - Papers

This page is for describing functional requirements of the bake tool for ns-3.25 and for future releases.

Broad functional goals

bake is intended to meet the following goals for ns-3 in the long run:

1. (software distribution tool) Enable a more decentralized development/release/maintenance environment for ns-3 third-party developers.

1.1 Split out some of existing ns-3-dev into a smaller "common" or "base" repository, and include additional "extensions", which may be hosted at code.nsnam.org or elsewhere. Reduce the default configuration/build of ns-3 to the base modules.

1.2 Provide a straightforward way for a third-party developer to maintain their own ns-3 extension and make it available to ns-3 users.

2. (development tool) Help developers better manage multiple builds; for instance, debug, optimized, and static builds.

ns-3.25 goals

Below are proposed goals for ns-3.25.

1. finer granularity for ns-3 enabled modules, and smaller default set of modules

In ns-3.24 and earlier, users who download the release will build all modules in ns-3.24/src directory by default. Users may customize this by passing the '--enable-modules' argument to waf, or by placing an .ns3rc file in the ns-3 directory.

In ns-3.25, the current plan is to extend this to allow:

  1. '--add-module' and '--remove-module' to allow fine-grained tuning of the enabled module set.
  2. ship ns-3.25 with a smaller set of modules enabled by default (e.g. disable wimax and uan by default).

2. initial support for third-party ns-3 modules

Several modules (DTN, epidemic routing, routes mobility model, NSC, perhaps others ...) will become available only through the bake tool. Most newly proposed modules will no longer be merged to ns-3-dev but will need to be selected and managed by the bake tool. Bake will in essence become a specialized package manager to get ns-3 extensions.

This has implications for how we manage Doxygen, Sphinx documentation, the scratch directory, waf, etc.

3. removal of 'download.py', 'build.py', and 'dist.py' in ns-3-allinone; replace with bake commands.


Post ns-3.25 goals

It has been previously discussed to break apart ns-3-dev into separate repositories going forward, with a completely flat directory structure. This is for further study beyond ns-3.25.

Trying to integrate the above with binary package distribution (.deb, .rpm, etc.) is out of scope for ns-3.25.