| 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 | |