Merge commit 'a529f6648ed450f7e846a0e704a0a3260aaa4b62' into release/2.4
[ffmpeg.git] / doc / build_system.txt
1 FFmpeg currently uses a custom build system, this text attempts to document
2 some of its obscure features and options.
3
4 Makefile variables:
5
6 V
7     Disable the default terse mode, the full command issued by make and its
8     output will be shown on the screen.
9
10 DESTDIR
11     Destination directory for the install targets, useful to prepare packages
12     or install FFmpeg in cross-environments.
13
14 Makefile targets:
15
16 all
17     Default target, builds all the libraries and the executables.
18
19 fate
20     Run the fate test suite, note you must have installed it
21
22 fate-list
23     Will list all fate/regression test targets
24
25 install
26     Install headers, libraries and programs.
27
28 examples
29     Build all examples located in doc/examples.
30
31 libavformat/output-example
32     Build the libavformat basic example.
33
34 libavcodec/api-example
35     Build the libavcodec basic example.
36
37 libswscale/swscale-test
38     Build the swscale self-test (useful also as example).
39
40 config
41     Reconfigure the project with current configuration.
42
43
44 Useful standard make commands:
45 make -t <target>
46     Touch all files that otherwise would be build, this is useful to reduce
47     unneeded rebuilding when changing headers, but note you must force rebuilds
48     of files that actually need it by hand then.
49
50 make -j<num>
51     rebuild with multiple jobs at the same time. Faster on multi processor systems
52
53 make -k
54     continue build in case of errors, this is useful for the regression tests
55     sometimes but note it will still not run all reg tests.
56