Skip to content
Snippets Groups Projects
configure 128 KiB
Newer Older
  • Learn to ignore specific revisions
  • Mohamed Naufal's avatar
    Mohamed Naufal committed
        name="$1"
        headers="$2"
        classes="$3"
        shift 3
        check_lib_cpp "$headers" "$classes" "$@" || die "ERROR: $name not found"
    }
    
    
    require_pkg_config(){
        pkg="$1"
        check_pkg_config "$@" || die "ERROR: $pkg not found"
        add_cflags    $(get_safe ${pkg}_cflags)
        add_extralibs $(get_safe ${pkg}_libs)
    }
    
    
    hostcc_o(){
        eval printf '%s\\n' $HOSTCC_O
    }
    
    
    check_host_cc(){
        log check_host_cc "$@"
        cat > $TMPC
        log_file $TMPC
    
        check_cmd $host_cc $host_cflags "$@" $HOSTCC_C $(hostcc_o $TMPO) $TMPC
    
    }
    
    check_host_cflags(){
        log check_host_cflags "$@"
    
        set -- $($host_cflags_filter "$@")
    
        check_host_cc "$@" <<EOF && append host_cflags "$@"
    int x;
    EOF
    }
    
    
    apply(){
        file=$1
        shift
        "$@" < "$file" > "$file.tmp" && mv "$file.tmp" "$file" || rm "$file.tmp"
    }
    
    
        cmp -s "$1" "$2" && echo "$2 is unchanged" && return
        mkdir -p "$(dirname $2)"
        cp -f "$1" "$2"
    
    force_include(){
        flag=$(eval printf '%s%s\\n' '$FORCE_INC' $1)
        append CFLAGS "$flag"
    }
    
    
    # CONFIG_LIST contains configurable options, while HAVE_LIST is for
    # system-dependent things.
    
    
    COMPONENT_LIST="
        bsfs
        decoders
        demuxers
        encoders
    
    Vitor Sessak's avatar
    Vitor Sessak committed
        filters
    
    DOCUMENT_LIST="
        doc
        htmlpages
        manpages
        podpages
        txtpages
    "
    
    
    Justin Ruggles's avatar
    Justin Ruggles committed
        avresample
    
        crystalhd
    
    Laurent Aimar's avatar
    Laurent Aimar committed
        dxva2
    
        fontconfig
    
    Stefano Sabatini's avatar
    Stefano Sabatini committed
        frei0r
    
    Aurelien Jacobs's avatar
    Aurelien Jacobs committed
        hardcoded_tables
    
    tipok's avatar
    tipok committed
        libaacplus
    
    Petri Hintukainen's avatar
    Petri Hintukainen committed
        libbluray
    
    Paul B Mahol's avatar
    Paul B Mahol committed
        libcaca
    
    Ramiro Polla's avatar
    Ramiro Polla committed
        libdc1394
    
    Clément Bœsch's avatar
    Clément Bœsch committed
        libmodplug
    
        libopenjpeg
    
        libspeex
    
    Mohamed Naufal's avatar
    Mohamed Naufal committed
        libstagefright_h264
    
        libtheora
    
        libtwolame
    
        libv4l2
    
    James Zern's avatar
    James Zern committed
        libvpx
    
        memory_poisoning
    
        runtime_cpudetect
    
    Michael Niedermayer's avatar
    Michael Niedermayer committed
        swresample
    
        os2threads
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        tomi
    
        armvfp
    
    Mans Rullgard's avatar
    Mans Rullgard committed
        vfpv3
    
        mipsfpu
        mips32r2
        mipsdspr1
        mipsdspr2
    
    HAVE_LIST_PUB='
        bigendian
    
        fast_unaligned
    
        aligned_stack
    
        alsa_asoundlib_h
    
        attribute_may_alias
    
        attribute_packed
    
    Alex Beregszaszi's avatar
    Alex Beregszaszi committed
        closesocket
    
        dev_bktr_ioctl_bt848_h
        dev_bktr_ioctl_meteor_h
        dev_ic_bt8xx_h
        dev_video_bktr_ioctl_bt848_h
    
        dev_video_meteor_ioctl_meteor_h
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        fcntl
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        fork
    
        GetProcessAffinityMask
    
        GetSystemTimeAsFileTime
    
    Ramiro Polla's avatar
    Ramiro Polla committed
        getrusage
    
        inline_asm
    
        kbhit
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        ldbrx
    
        machine_ioctl_bt848_h
        machine_ioctl_meteor_h
    
        MapViewOfFile
    
        mkstemp
    
        nanosleep
    
        posix_memalign
    
        pthread_cancel
    
        sndio_h
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        soundcard_h
    
        strerror_r
    
        strptime
    
        struct_group_source_req
        struct_ip_mreq_source
    
        struct_pollfd
    
        struct_sctp_event_subscribe
    
        struct_v4l2_frmivalenum_discrete
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        sys_soundcard_h
    
        sys_time_h
    
        unistd_h
    
        windows_h
    
    Loren Merritt's avatar
    Loren Merritt committed
        yasm
    
    # options emitted with CONFIG_ prefix but not available on command line
    CONFIG_EXTRA="
    
    Reimar Döffinger's avatar
    Reimar Döffinger committed
        coverage
    
    Mohamed Naufal's avatar
    Mohamed Naufal committed
        cxx
    
        host_cc
        host_cflags
        host_ldflags
        host_libs
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        samples
    
    CMDLINE_APPEND="
        extra_cflags
    
    Mohamed Naufal's avatar
    Mohamed Naufal committed
        extra_cxxflags
    
    # code dependency declarations
    
    
    # architecture extensions
    
    armv5te_deps="arm"
    armv6_deps="arm"
    
    armv6t2_deps="arm"
    
    armvfp_deps="arm"
    
    Mans Rullgard's avatar
    Mans Rullgard committed
    vfpv3_deps="armvfp"
    
    mipsfpu_deps="mips"
    mips32r2_deps="mips"
    mipsdspr1_deps="mips"
    mipsdspr2_deps="mips"
    
    
    altivec_deps="ppc"
    ppc4xx_deps="ppc"
    
    vis_deps="sparc"
    
    
    x86_64_suggest="cmov fast_cmov"
    
    amd3dnow_deps="mmx"
    amd3dnowext_deps="amd3dnow"
    
    mmx_deps="x86"
    
    mmxext_deps="mmx"
    
    sse_deps="mmx"
    ssse3_deps="sse"
    
    avx_deps="ssse3"
    
    aligned_stack_if_any="ppc x86"
    
    fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64"
    
    fast_clz_if_any="alpha armv5te avr32 mips ppc x86"
    
    fast_unaligned_if_any="armv6 ppc x86"
    
    inline_asm_deps="!tms470"
    
    need_memalign="altivec neon sse"
    
    symver_if_any="symver_asm_label symver_gnu_asm"
    
    
    dct_select="rdft"
    
    mdct_select="fft"
    rdft_select="fft"
    
    # decoders / encoders / hardware accelerators
    
    aac_decoder_select="mdct sinewin"
    
    aac_encoder_select="mdct sinewin"
    
    aac_latm_decoder_select="aac_decoder aac_latm_parser"
    
    ac3_decoder_select="mdct ac3dsp ac3_parser"
    
    ac3_encoder_select="mdct ac3dsp"
    
    ac3_fixed_encoder_select="mdct ac3dsp"
    
    amv_encoder_select="aandcttables"
    
    atrac1_decoder_select="mdct sinewin"
    
    binkaudio_dct_decoder_select="mdct rdft dct sinewin"
    binkaudio_rdft_decoder_select="mdct rdft sinewin"
    
    cavs_decoder_select="golomb mpegvideo"
    
    cook_decoder_select="mdct sinewin"
    
    cscd_decoder_suggest="zlib"
    
    dirac_decoder_select="dwt golomb"
    
    dnxhd_encoder_select="aandcttables mpegvideoenc"
    
    dxa_decoder_select="zlib"
    
    eac3_decoder_select="ac3_decoder"
    
    eac3_encoder_select="ac3_encoder"
    
    eamad_decoder_select="aandcttables error_resilience"
    
    eatgq_decoder_select="aandcttables"
    
    eatqi_decoder_select="aandcttables error_resilience mpegvideo"
    
    Paul B Mahol's avatar
    Paul B Mahol committed
    exr_decoder_select="zlib"
    
    ffv1_decoder_select="golomb rangecoder"
    ffv1_encoder_select="rangecoder"
    
    flac_decoder_select="golomb"
    
    flashsv_decoder_select="zlib"
    flashsv_encoder_select="zlib"
    
    flashsv2_encoder_select="zlib"
    
    flashsv2_decoder_select="zlib"
    
    flv_decoder_select="h263_decoder"
    
    flv_encoder_select="h263_encoder"
    
    fraps_decoder_select="huffman"
    
    h261_decoder_select="error_resilience mpegvideo"
    
    h261_encoder_select="aandcttables mpegvideoenc"
    
    h263_decoder_select="error_resilience h263_parser mpegvideo"
    h263_encoder_select="aandcttables error_resilience mpegvideoenc"
    
    h263_vaapi_hwaccel_select="vaapi h263_decoder"
    
    h263i_decoder_select="h263_decoder"
    
    h263p_encoder_select="h263_encoder"
    
    h264_crystalhd_decoder_select="crystalhd h264_mp4toannexb_bsf h264_parser"
    
    h264_decoder_select="error_resilience golomb h264chroma h264dsp h264pred h264qpel mpegvideo"
    
    Laurent Aimar's avatar
    Laurent Aimar committed
    h264_dxva2_hwaccel_deps="dxva2api_h"
    h264_dxva2_hwaccel_select="dxva2 h264_decoder"
    
    h264_vaapi_hwaccel_select="vaapi h264_decoder"
    
    h264_vda_decoder_select="vda h264_parser h264_decoder"
    
    h264_vda_hwaccel_deps="VideoDecodeAcceleration_VDADecoder_h pthreads"
    h264_vda_hwaccel_select="vda h264_decoder"
    
    h264_vdpau_decoder_select="vdpau h264_decoder"
    
    iac_decoder_select="fft mdct sinewin"
    
    imc_decoder_select="fft mdct sinewin"
    
    jpegls_decoder_select="golomb"
    jpegls_encoder_select="golomb"
    
    ljpeg_encoder_select="aandcttables mpegvideoenc"
    
    loco_decoder_select="golomb"
    
    mdec_decoder_select="error_resilience mpegvideo"
    
    mjpeg_encoder_select="aandcttables mpegvideoenc"
    
    mlp_decoder_select="mlp_parser"
    
    mp1_decoder_select="mpegaudiodsp"
    mp1float_decoder_select="mpegaudiodsp"
    
    mp2_decoder_select="mpegaudiodsp"
    
    mp2float_decoder_select="mpegaudiodsp"
    
    mp3_decoder_select="mpegaudiodsp"
    mp3adu_decoder_select="mpegaudiodsp"
    
    mp3adufloat_decoder_select="mpegaudiodsp"
    mp3float_decoder_select="mpegaudiodsp"
    
    mp3on4_decoder_select="mpegaudiodsp"
    
    mp3on4float_decoder_select="mpegaudiodsp"
    
    mpc7_decoder_select="mpegaudiodsp"
    mpc8_decoder_select="mpegaudiodsp"
    
    mpeg_vdpau_decoder_select="vdpau mpegvideo_decoder"
    
    mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h"
    mpeg_xvmc_decoder_select="mpegvideo_decoder"
    
    mpeg1_vdpau_decoder_select="vdpau mpeg1video_decoder"
    
    mpeg1_vdpau_hwaccel_select="vdpau mpeg1video_decoder"
    
    mpeg1video_decoder_select="error_resilience mpegvideo"
    mpeg1video_encoder_select="aandcttables error_resilience mpegvideoenc"
    
    mpeg2_crystalhd_decoder_select="crystalhd"
    
    mpeg2_dxva2_hwaccel_deps="dxva2api_h"
    mpeg2_dxva2_hwaccel_select="dxva2 mpeg2video_decoder"
    
    mpeg2_vdpau_hwaccel_select="vdpau mpeg2video_decoder"
    
    mpeg2_vaapi_hwaccel_select="vaapi mpeg2video_decoder"
    
    mpeg2video_decoder_select="error_resilience mpegvideo"
    mpeg2video_encoder_select="aandcttables error_resilience mpegvideoenc"
    
    mpeg4_crystalhd_decoder_select="crystalhd"
    
    mpeg4_decoder_select="h263_decoder mpeg4video_parser"
    mpeg4_encoder_select="h263_encoder"
    
    mpeg4_vaapi_hwaccel_select="vaapi mpeg4_decoder"
    
    mpeg4_vdpau_decoder_select="vdpau mpeg4_decoder"
    
    msmpeg4_crystalhd_decoder_select="crystalhd"
    
    msmpeg4v1_decoder_select="h263_decoder"
    
    msmpeg4v1_encoder_select="h263_encoder"
    
    msmpeg4v2_decoder_select="h263_decoder"
    
    msmpeg4v2_encoder_select="h263_encoder"
    
    msmpeg4v3_decoder_select="h263_decoder"
    
    msmpeg4v3_encoder_select="h263_encoder"
    
    nellymoser_decoder_select="mdct sinewin"
    nellymoser_encoder_select="mdct sinewin"
    
    png_decoder_select="zlib"
    png_encoder_select="zlib"
    
    qdm2_decoder_select="mdct rdft mpegaudiodsp"
    
    ra_144_encoder_select="lpc"
    
    rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo"
    rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo"
    
    shorten_decoder_select="golomb"
    
    snow_decoder_select="dwt rangecoder"
    snow_encoder_select="aandcttables dwt error_resilience mpegvideoenc rangecoder"
    
    sonic_decoder_select="golomb"
    sonic_encoder_select="golomb"
    sonic_ls_encoder_select="golomb"
    
    svq1_decoder_select="error_resilience mpegvideo"
    svq1_encoder_select="aandcttables error_resilience mpegvideoenc"
    svq3_decoder_select="error_resilience golomb h264chroma h264dsp h264pred h264qpel mpegvideo"
    
    svq3_decoder_suggest="zlib"
    
    theora_decoder_select="vp3_decoder"
    
    tiff_decoder_suggest="zlib"
    tiff_encoder_suggest="zlib"
    tscc_decoder_select="zlib"
    
    twinvq_decoder_select="mdct lsp sinewin"
    
    vc1_crystalhd_decoder_select="crystalhd"
    
    vc1_decoder_select="h263_decoder h264chroma h264qpel"
    
    vc1_dxva2_hwaccel_select="dxva2 vc1_decoder"
    
    vc1_vaapi_hwaccel_select="vaapi vc1_decoder"
    vc1_vdpau_decoder_select="vdpau vc1_decoder"
    
    vc1image_decoder_select="vc1_decoder"
    
    vorbis_decoder_select="mdct"
    vorbis_encoder_select="mdct"
    
    vp3_decoder_select="vp3dsp"
    vp5_decoder_select="vp3dsp"
    vp6_decoder_select="huffman vp3dsp"
    
    vp6a_decoder_select="vp6_decoder"
    vp6f_decoder_select="vp6_decoder"
    
    vp8_decoder_select="h264pred h264qpel"
    
    wmapro_decoder_select="mdct sinewin"
    wmav1_decoder_select="mdct sinewin"
    wmav1_encoder_select="mdct sinewin"
    wmav2_decoder_select="mdct sinewin"
    wmav2_encoder_select="mdct sinewin"
    wmavoice_decoder_select="lsp rdft dct mdct sinewin"
    
    wmv1_encoder_select="h263_encoder"
    
    wmv2_encoder_select="h263_encoder"
    
    wmv3_decoder_select="vc1_decoder"
    
    wmv3_crystalhd_decoder_select="crystalhd"
    
    wmv3_dxva2_hwaccel_select="vc1_dxva2_hwaccel"
    
    wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel"
    wmv3_vdpau_decoder_select="vc1_vdpau_decoder"
    
    wmv3image_decoder_select="wmv3_decoder"
    
    Derek Buitenhuis's avatar
    Derek Buitenhuis committed
    zerocodec_decoder_select="zlib"
    
    zlib_decoder_select="zlib"
    zlib_encoder_select="zlib"
    zmbv_decoder_select="zlib"
    zmbv_encoder_select="zlib"
    
    crystalhd_deps="libcrystalhd_libcrystalhd_if_h"
    
    vaapi_deps="va_va_h"
    
    vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads"
    
    vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h"
    
    
    h264_parser_select="error_resilience golomb h264dsp h264pred mpegvideo"
    mpeg4video_parser_select="error_resilience mpegvideo"
    mpegvideo_parser_select="error_resilience mpegvideo"
    vc1_parser_select="error_resilience mpegvideo"
    
    # external libraries
    
    tipok's avatar
    tipok committed
    libaacplus_encoder_deps="libaacplus"
    
    libcelt_decoder_deps="libcelt"
    
    libfdk_aac_encoder_deps="libfdk_aac"
    
    libgsm_decoder_deps="libgsm"
    libgsm_encoder_deps="libgsm"
    
    libgsm_ms_decoder_deps="libgsm"
    libgsm_ms_encoder_deps="libgsm"
    
    libilbc_decoder_deps="libilbc"
    libilbc_encoder_deps="libilbc"
    
    libmodplug_demuxer_deps="libmodplug"
    
    libopencore_amrnb_decoder_deps="libopencore_amrnb"
    libopencore_amrnb_encoder_deps="libopencore_amrnb"
    libopencore_amrwb_decoder_deps="libopencore_amrwb"
    
    libopenjpeg_decoder_deps="libopenjpeg"
    
    libopenjpeg_encoder_deps="libopenjpeg"
    
    libopus_decoder_deps="libopus"
    
    libschroedinger_decoder_deps="libschroedinger"
    libschroedinger_encoder_deps="libschroedinger"
    
    libspeex_decoder_deps="libspeex"
    
    Art Clarke's avatar
    Art Clarke committed
    libspeex_encoder_deps="libspeex"
    
    Mohamed Naufal's avatar
    Mohamed Naufal committed
    libstagefright_h264_decoder_deps="libstagefright_h264"
    
    libtheora_encoder_deps="libtheora"
    
    libtwolame_encoder_deps="libtwolame"
    
    libvo_aacenc_encoder_deps="libvo_aacenc"
    
    libvo_amrwbenc_encoder_deps="libvo_amrwbenc"
    
    libvorbis_encoder_deps="libvorbis"
    
    James Zern's avatar
    James Zern committed
    libvpx_decoder_deps="libvpx"
    
    James Zern's avatar
    James Zern committed
    libvpx_encoder_deps="libvpx"
    
    libx264rgb_encoder_deps="libx264"
    
    libxavs_encoder_deps="libxavs"
    
    libutvideo_decoder_deps="libutvideo"
    libutvideo_encoder_deps="libutvideo"
    
    # demuxers / muxers
    
    ac3_demuxer_select="ac3_parser"
    
    asf_stream_muxer_select="asf_muxer"
    
    avisynth_demuxer_deps="avisynth"
    
    dirac_demuxer_select="dirac_parser"
    
    flac_demuxer_select="flac_parser"
    
    libnut_demuxer_deps="libnut"
    libnut_muxer_deps="libnut"
    
    matroska_audio_muxer_select="matroska_muxer"
    
    matroska_demuxer_suggest="zlib bzlib"
    mov_demuxer_suggest="zlib"
    
    mp3_demuxer_select="mpegaudio_parser"
    
    mpegts_muxer_select="adts_muxer latm_muxer mpegvideo"
    
    mpegtsraw_demuxer_select="mpegts_demuxer"
    mxf_d10_muxer_select="mxf_muxer"
    
    ogg_demuxer_select="golomb"
    
    rtpdec_select="asf_demuxer rm_demuxer rtp_protocol mpegts_demuxer mov_demuxer"
    rtsp_demuxer_select="http_protocol rtpdec"
    rtsp_muxer_select="rtp_muxer http_protocol rtp_protocol"
    
    Martin Storsjö's avatar
    Martin Storsjö committed
    sap_demuxer_select="sdp_demuxer"
    
    sap_muxer_select="rtp_muxer rtp_protocol"
    
    spdif_muxer_select="aac_parser"
    
    tg2_muxer_select="mov_muxer"
    tgp_muxer_select="mov_muxer"
    
    w64_demuxer_deps="wav_demuxer"
    
    alsa_indev_deps="alsa_asoundlib_h snd_pcm_htimestamp"
    alsa_outdev_deps="alsa_asoundlib_h"
    bktr_indev_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h"
    
    Paul B Mahol's avatar
    Paul B Mahol committed
    caca_outdev_deps="libcaca"
    
    Ramiro Polla's avatar
    Ramiro Polla committed
    dshow_indev_deps="IBaseFilter"
    dshow_indev_extralibs="-lpsapi -lole32 -lstrmiids -luuid"
    
    dv1394_indev_deps="dv1394 dv_demuxer"
    
    fbdev_indev_deps="linux_fb_h"
    
    jack_indev_deps="jack_jack_h sem_timedwait"
    
    lavfi_indev_deps="avfilter"
    
    libcdio_indev_deps="libcdio"
    
    libdc1394_indev_deps="libdc1394"
    
    libv4l2_indev_deps="libv4l2"
    
    openal_indev_deps="openal"
    
    oss_indev_deps_any="soundcard_h sys_soundcard_h"
    oss_outdev_deps_any="soundcard_h sys_soundcard_h"
    
    pulse_indev_deps="libpulse"
    
    sdl_outdev_deps="sdl"
    
    sndio_indev_deps="sndio_h"
    sndio_outdev_deps="sndio_h"
    
    v4l_indev_deps="linux_videodev_h"
    v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h"
    
    vfwcap_indev_deps="capCreateCaptureWindow vfwcap_defines"
    
    vfwcap_indev_extralibs="-lavicap32"
    
    x11grab_indev_deps="x11grab"
    
    # protocols
    
    Petri Hintukainen's avatar
    Petri Hintukainen committed
    bluray_protocol_deps="libbluray"
    
    Samuel Pitoiset's avatar
    Samuel Pitoiset committed
    ffrtmpcrypt_protocol_deps="!librtmp_protocol"
    ffrtmpcrypt_protocol_deps_any="gcrypt nettle openssl"
    ffrtmpcrypt_protocol_select="tcp_protocol"
    
    ffrtmphttp_protocol_deps="!librtmp_protocol"
    ffrtmphttp_protocol_select="http_protocol"
    
    gopher_protocol_deps="network"
    
    httpproxy_protocol_deps="network"
    httpproxy_protocol_select="tcp_protocol"
    
    http_protocol_select="tcp_protocol"
    
    https_protocol_select="tls_protocol"
    
    librtmp_protocol_deps="librtmp"
    librtmpe_protocol_deps="librtmp"
    librtmps_protocol_deps="librtmp"
    librtmpt_protocol_deps="librtmp"
    librtmpte_protocol_deps="librtmp"
    
    Måns Rullgård's avatar
    Måns Rullgård committed
    mmsh_protocol_select="http_protocol"
    
    mmst_protocol_deps="network"
    
    rtmp_protocol_deps="!librtmp_protocol"
    
    rtmp_protocol_select="tcp_protocol"
    
    Samuel Pitoiset's avatar
    Samuel Pitoiset committed
    rtmpe_protocol_select="ffrtmpcrypt_protocol"
    
    Samuel Pitoiset's avatar
    Samuel Pitoiset committed
    rtmps_protocol_deps="!librtmp_protocol"
    rtmps_protocol_select="tls_protocol"
    
    rtmpt_protocol_select="ffrtmphttp_protocol"
    
    Samuel Pitoiset's avatar
    Samuel Pitoiset committed
    rtmpte_protocol_select="ffrtmpcrypt_protocol ffrtmphttp_protocol"
    
    rtmpts_protocol_select="ffrtmphttp_protocol https_protocol"
    
    rtp_protocol_select="udp_protocol"
    
    sctp_protocol_deps="network struct_sctp_event_subscribe"
    
    tls_protocol_deps_any="openssl gnutls"
    tls_protocol_select="tcp_protocol"
    
    udp_protocol_deps="network"
    
    aconvert_filter_deps="swresample"
    
    amovie_filter_deps="avcodec avformat"
    
    aresample_filter_deps="swresample"
    
    ass_filter_deps="libass"
    
    asyncts_filter_deps="avresample"
    
    atempo_filter_deps="avcodec rdft"
    
    blackframe_filter_deps="gpl"
    
    boxblur_filter_deps="gpl"
    
    colormatrix_filter_deps="gpl"
    
    cropdetect_filter_deps="gpl"
    
    delogo_filter_deps="gpl"
    
    deshake_filter_deps="avcodec"
    
    drawtext_filter_deps="libfreetype"
    
    flite_filter_deps="libflite"
    
    Stefano Sabatini's avatar
    Stefano Sabatini committed
    frei0r_filter_deps="frei0r dlopen"
    
    frei0r_filter_extralibs='$ldl'
    
    Stefano Sabatini's avatar
    Stefano Sabatini committed
    frei0r_src_filter_deps="frei0r dlopen"
    
    frei0r_src_filter_extralibs='$ldl'
    
    hqdn3d_filter_deps="gpl"
    
    movie_filter_deps="avcodec avformat"
    
    mp_filter_deps="gpl avcodec swscale postproc"
    
    mptestsrc_filter_deps="gpl"
    
    negate_filter_deps="lut_filter"
    
    resample_filter_deps="avresample"
    
    pan_filter_deps="swresample"
    
    removelogo_filter_deps="avcodec avformat swscale"
    
    scale_filter_deps="swscale"
    
    select_filter_deps="avcodec"
    
    showspectrum_filter_deps="avcodec"
    
    super2xsai_filter_deps="gpl"
    
    tinterlace_filter_deps="gpl"
    
    # libraries
    avdevice_deps="avcodec avformat"
    avformat_deps="avcodec"
    
    # programs
    
    ffmpeg_deps="avcodec avfilter avformat swscale swresample"
    ffmpeg_select="buffersink_filter format_filter aformat_filter
    
                   setpts_filter null_filter anull_filter abuffersink_filter"
    
    ffplay_deps="avcodec avformat swscale swresample sdl"
    
    ffplay_select="buffersink_filter rdft"
    
    ffserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer"
    
    ffserver_extralibs='$ldl'
    
    # documentation
    podpages_deps="perl"
    manpages_deps="perl pod2man"
    htmlpages_deps="texi2html"
    txtpages_deps="makeinfo"
    doc_deps_any="manpages htmlpages podpages txtpages"
    
    colormatrix1_test_deps="colormatrix_filter"
    colormatrix2_test_deps="colormatrix_filter"
    flashsv2_test_deps="zlib"
    
    mpg_test_deps="mpeg1system_muxer mpegps_demuxer"
    
    mpng_test_deps="zlib"
    pp_test_deps="mp_filter"
    pp2_test_deps="mp_filter"
    pp3_test_deps="mp_filter"
    pp4_test_deps="mp_filter"
    pp5_test_deps="mp_filter"
    pp6_test_deps="mp_filter"
    
    seek_lavf_mxf_d10_test_deps="mxf_d10_test"
    
    zlib_test_deps="zlib"
    zmbv_test_deps="zlib"
    
    
    test_deps(){
        suf1=$1
        suf2=$2
        shift 2
        for v; do
            dep=${v%=*}
            tests=${v#*=}
            for name in ${tests}; do
    
                append ${name}_test_deps ${dep}$suf1 ${dep}$suf2
    
            done
        done
    }
    
    test_deps _muxer _demuxer                                               \
        aiff                                                                \
        pcm_alaw=alaw                                                       \
        asf                                                                 \
        au                                                                  \
        avi                                                                 \
        dv=dv_fmt                                                           \
        ffm                                                                 \
        flv=flv_fmt                                                         \
        gxf                                                                 \
        matroska=mkv                                                        \
        mmf                                                                 \
    
        mov="mov ismv"                                                      \
    
        mxf="mxf mxf_d10"                                                   \
    
        rawvideo=pixfmt                                                     \
        rm                                                                  \
        swf                                                                 \
        mpegts=ts                                                           \
        voc                                                                 \
        wav                                                                 \
        yuv4mpegpipe=yuv4mpeg                                               \
    
    
    Fabrice Bellard's avatar
    Fabrice Bellard committed
    # default parameters
    
    
    # installation paths
    
    prefix_default="/usr/local"
    bindir_default='${prefix}/bin'
    
    datadir_default='${prefix}/share/ffmpeg'
    
    incdir_default='${prefix}/include'
    libdir_default='${prefix}/lib'
    mandir_default='${prefix}/share/man'
    shlibdir_default="$libdir_default"
    
    postproc_version_default="current"
    
    ar_default="ar"
    
    Mohamed Naufal's avatar
    Mohamed Naufal committed
    cxx_default="g++"
    
    host_cc_default="gcc"
    
    ln_s="ln -sf"
    
    objformat="elf"
    
    pkg_config_default=pkg-config
    
    Michael Niedermayer's avatar
    Michael Niedermayer committed
    ranlib="ranlib"
    
    nm_opts='-g'
    
    target_os_default=$(tolower $(uname -s))
    host_os=$target_os_default
    
    # alternative libpostproc version
    ALT_PP_VER_MAJOR=51
    ALT_PP_VER_MINOR=2
    ALT_PP_VER_MICRO=101
    ALT_PP_VER=$ALT_PP_VER_MAJOR.$ALT_PP_VER_MINOR.$ALT_PP_VER_MICRO
    
    
    # configurable options
    
    enable $DOCUMENT_LIST