I've done a conversion from FTJam to Boost.Build in a private Mercurial branch.
Would anyone be interested in picking up on this? Wins now: * No more running ./bootstrap every time XORP's software configuration (as in SCM) is changed. * Eliminates the need for Automake. * configure however is still supported for now. * No more generating .deps, Jam-based build tools do their own header scanning. * Sticky dependencies. Libraries are only part of linkage if XORP components specificially require them. * For example, FeaIfMgrMirror and friends are now only linked when libfeaclient is a dependency. * Full dependency checking on XIF and TGT targets with suffix rules used to build them. I wrote Boost.Build extensions to support this. * As a result the .tgt and .xif files may be located outside of xrl/interfaces for contributed code. This should make code sharing much easier to implement, as well as giving us opportunities, at SCM level, for fine grained control over what code actually gets built and linked on each target platform. Wins later: * Size. * Shared libraries * Portability should get easier. * Cross-compilation should get easier. Further work needed: * Tests need to be ported over fully to Boost.Build's unit testing suite. Jam's disadvantage was that it didn't have a unit testing framework. Boost.Build does. At the moment, all regression tests are built, but not all of them are run. * There is no installation support at the moment - development only -- it shouldn't be difficult to add. * Linkage. Boost.Build does away with the 'hammer into anvil' approach of adding libraries which are specifically required for a given OS to the global link line, it takes a more fine grained approach, so libraries will need to be added to the Boost.Build e.g. only link librt when building on Linux. later BMS _______________________________________________ Xorp-hackers mailing list [email protected] http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-hackers
