Commit c535d089 authored by Luca Barbato's avatar Luca Barbato

doc: update build system documentation

Split normal build system documentation and the fate one.

Document THREADS make variable and provide an introduction to fate.
Document DESTDIR make variable and add some generic targets.
parent 00f0b4b9
Libav currently uses a custom build system, this text attempts to document
some of its obscure features and options.
Options to make:
make V=1 <target>
Build target with verbosity 1, instead of 1, 2 can be used too
make SAMPLES=<path to the fate samples> <target>
specify the path to the fate samples at make time
Makefile variables:
Disable the default terse mode, the full command issued by make and its
output will be shown on the screen.
Useful standard make commands:
make -t <target>
Touch all files that otherwise would be build, this is useful to reduce
unneeded rebuilding when changing headers, but note you must force rebuilds
of files that actually need it by hand then.
Destination directory for the install targets, useful to prepare packages
or install Libav in cross-environments.
make -j<num>
rebuild with multiple jobs at the same time. Faster on multi processor systems
Makefile targets:
make -k
continue build in case of errors, this is useful for the regression tests
sometimes but note it will still not run all reg tests.
Default target, builds all the libraries and the executables.
Install headers, libraries and programs.
Targets to make:
Will list all fate/regression test targets
Build the libavformat basic example.
Run the fate test suite, note you must have installed it
Build the libavcodec basic example.
Build the swscale self-test (useful also as example).
Setting up local fate:
use the following command to get the fate test samples
rsync -aL rsync:// fate/fate-suite
pass --samples=<path to the samples> to configure or pass the path with the
SAMPLES variable to make
FATE Automated Testing Environment
FATE provides a regression testsuite that can be run locally or configured
to send reports to
In order to run, it needs a large amount of data (samples and references)
that is provided separately from the actual source distribution.
Use the following command to get the fate test samples
# rsync -aL rsync:// fate-suite
To inform the build system about the testsuite location, pass
`--samples=<path to the samples>` to configure or set the SAMPLES Make
variable or the FATE_SAMPLES environment variable to a suitable value.
For information on how to set up FATE to send results to the official Libav
testing framework, please refer to the following wiki page:
FATE Makefile targets:
Will list all fate/regression test targets.
Run the FATE test suite (requires the fate-suite dataset).
Fate Makefile variables:
Verbosity level, can be set to 0, 1 or 2.
* 0: show just the test arguments
* 1: show just the command used in the test
* 2: show everything
Specify or override the path to the FATE samples at make time, it has a
meaning only while running the regression tests.
Specify how many threads to use while running regression tests, it is
quite useful to detect thread-related regressions.
make V=1 SAMPLES=/var/fate/samples THREADS=2 fate
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment