build_system.txt 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. FFmpeg currently uses a custom build system, this text attempts to document
  2. some of its obscure features and options.
  3. Makefile variables:
  4. V
  5. Disable the default terse mode, the full command issued by make and its
  6. output will be shown on the screen.
  7. DBG
  8. Preprocess x86 external assembler files to a .dbg.asm file in the object
  9. directory, which then gets compiled. Helps in developing those assembler
  10. files.
  11. DESTDIR
  12. Destination directory for the install targets, useful to prepare packages
  13. or install FFmpeg in cross-environments.
  14. GEN
  15. Set to ‘1’ to generate the missing or mismatched references.
  16. Makefile targets:
  17. all
  18. Default target, builds all the libraries and the executables.
  19. fate
  20. Run the fate test suite, note that you must have installed it.
  21. fate-list
  22. List all fate/regression test targets.
  23. fate-list-failing
  24. List the fate tests that failed the last time they were executed.
  25. fate-clear-reports
  26. Remove the test reports from previous test executions (getting rid of
  27. potentially stale results from fate-list-failing).
  28. install
  29. Install headers, libraries and programs.
  30. examples
  31. Build all examples located in doc/examples.
  32. checkheaders
  33. Check headers dependencies.
  34. alltools
  35. Build all tools in tools directory.
  36. config
  37. Reconfigure the project with the current configuration.
  38. tools/target_dec_<decoder>_fuzzer
  39. Build fuzzer to fuzz the specified decoder.
  40. tools/target_bsf_<filter>_fuzzer
  41. Build fuzzer to fuzz the specified bitstream filter.
  42. Useful standard make commands:
  43. make -t <target>
  44. Touch all files that otherwise would be built, this is useful to reduce
  45. unneeded rebuilding when changing headers, but note that you must force rebuilds
  46. of files that actually need it by hand then.
  47. make -j<num>
  48. Rebuild with multiple jobs at the same time. Faster on multi processor systems.
  49. make -k
  50. Continue build in case of errors, this is useful for the regression tests
  51. sometimes but note that it will still not run all reg tests.