Ardupilot2/README-WAF.md
Gustavo Jose de Sousa 14947da5e5 waf: rename README
The next commit will reformat the README for waf to use GitHub Flavored
Markdown.
2016-02-01 14:08:39 -02:00

1.5 KiB

To keep access to waf convenient, use the following alias from the root ardupilot directory:

alias waf="$PWD/modules/waf/waf-light"

Waf should always be called from the ardupilot's root.

Differently from the make-based build, with waf there's a configure step to choose the board to be used

# Configure the Linux board.
waf configure --board=linux

by default the board used is 'sitl'.

To build, use the 'waf build' command. This is the default command, so calling just 'waf' is enough

# From the root ardupilot directory, build everything.
waf

# Waf also accepts '-j' option to parallelize the build.
waf -j8

It's possible to build for just a vehicle or an example by specifying it as the target:

# From the top directory
waf --targets bin/ArduCopter

# List all the targets available
waf list

There are also shortcuts for vehicle builds, for example: # Shortcut for waf --targets bin/ArduCopter waf copter

By default all the files produced by the build will be inside the build/ subdirectory. The binaries will also be there, with the name identifying the target board.

To clean things up use

# Clean the build products, but keep configure information
waf clean

# Clean everything, will need to call configure again
waf distclean

using git to clean the files also work fine.

There's also a make wrapper called "Makefile.waf". You can use make -f Makefile.waf help for instructions on how to use it.

TODO: Add explanation on how the build system is organized once we settle down.