Skip to content
Snippets Groups Projects
build_system.txt 1.72 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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 in developing those assembler
    
    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.
    
        Run the fate test suite, note that you must have installed it.
    
        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 an example).
    
        Reconfigure the project with the current configuration.
    
    
    Useful standard make commands:
    make -t <target>
    
        Touch all files that otherwise would be built, this is useful to reduce
        unneeded rebuilding when changing headers, but note that 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.
    
        Continue build in case of errors, this is useful for the regression tests
        sometimes but note that it will still not run all reg tests.