summaryrefslogtreecommitdiffstats
path: root/doc/build_system.txt
blob: 1efe6b53997e82a46f97d2e7db977ca3e4e0b61a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
FFmpeg currently uses a custom build system, this text attempts to document
some of its obscure features and options.

Makefile variables:

V
    Disable the default terse mode, the full command issued by make and its
    output will be shown on the screen.

DBG
    Preprocess x86 external assembler files to a .dbg.asm file in the object
    directory, which then gets compiled. Helps developping those assembler
    files.

DESTDIR
    Destination directory for the install targets, useful to prepare packages
    or install FFmpeg in cross-environments.

GEN
    Set to ‘1’ to generate the missing or mismatched references.

Makefile targets:

all
    Default target, builds all the libraries and the executables.

fate
    Run the fate test suite, note you must have installed it

fate-list
    Will list all fate/regression test targets

install
    Install headers, libraries and programs.

examples
    Build all examples located in doc/examples.

libavformat/output-example
    Build the libavformat basic example.

libavcodec/api-example
    Build the libavcodec basic example.

libswscale/swscale-test
    Build the swscale self-test (useful also as example).

config
    Reconfigure the project with current configuration.


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.

make -j<num>
    rebuild with multiple jobs at the same time. Faster on multi processor systems

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.

OpenPOWER on IntegriCloud