Waf branch - Waf / Build [5/6]

Amar Takhar amar at rtems.org
Fri Feb 6 07:04:21 UTC 2015


This explains the tool used to build RTEMS,

You can download a copy of waf here:

  http://ftp.waf.io/pub/release/waf-1.8.5

It is a stand alone binary it will self-extract wherever you put it.  Waf is 
intended to be distributed with software it is *not* designed for installing in 
an OS.  Any RTEMS tarballs we make will have this binary in it.  For Git users 
will be on their own to get it.


Use:

 waf -h

To get a list of help there are many custom commands.  You can use the 'waf' 
command anywhere in the source tree it will find itself.

The parent script to build are called 'wscript'.  For architectures look in 
c/wscript_<arch>

Some handy commands:

List BSPs
  waf config --list

List targets:
 waf list

There is also a list_host and list_<bsp>.  Remember you can have multiple BSPs 
building at once so some commands will duplicate as you add more BSPs.

There is also a 'step' feature.  You can build a single file by going:

  waf step_host --files=file1.c,file2.c

A step can also be a target if you want to work on a whole library or feature.

This lets you work on specific files and ignore the rest of the build.  Waf is 
fast but repetitive work will go even faster.

There are missing bits that I have not gone into such as rtems-tool, rtems-test 
and rtems-cc.

The only BSP that is currently working that I have checked is sparc/erc32.  Last 
year I had all 168 working we currently stand at 190.  I need to go through and 
update every single BSP and get them building if there is a BSP you would like 
to try that is not working please let me know and I will fix it.  The order in 
which they are fixed does not matter to me. :)

There are many other changes that have been done in this branch such as the 
'include' move.  These will be discussed in the following email. (6/6)


Amar.


More information about the devel mailing list