Skip to content
Snippets Groups Projects
configure 132 KiB
Newer Older
  • Learn to ignore specific revisions
  •         # however the generated executable will not do anything
            # (simply quits with exit-code 1, no crash, no output).
    
            # Thus explicitly enable PIC here.
    
            disable symver
    
            SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBVERSION)'
    
            SLIB_INSTALL_LINKS=
    
            oss_indev_extralibs="-lossaudio"
            oss_outdev_extralibs="-lossaudio"
    
        dragonfly)
            disable symver
            ;;
        freebsd)
    
            add_extralibs -lpoll -lgnugetopt
    
            gas="gas-preprocessor.pl $cc"
    
            enabled ppc && add_asflags -force_cpusubtype_ALL
    
            SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)'
    
            enabled x86_32 && append SHFLAGS -Wl,-read_only_relocs,suppress
    
            add_ldflags -Wl,-dynamic,-search_paths_first
    
            SLIBSUF=".dylib"
            SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)'
            SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)'
            FFSERVERLDFLAGS=-Wl,-bind_at_load
    
    Loren Merritt's avatar
    Loren Merritt committed
            objformat="macho"
    
            enabled x86_64 && objformat="macho64"
    
            enabled_any pic shared ||
    
                { check_cflags -mdynamic-no-pic && add_asflags -mdynamic-no-pic; }
    
            if test $target_os = "mingw32ce"; then
    
            LIBTARGET=i386
    
            SLIBPREF=""
            SLIBSUF=".dll"
            SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
            SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
    
            if check_cmd lib.exe -list; then
    
                SLIB_EXTRA_CMD='-lib.exe /machine:$(LIBTARGET) /def:$$(@:$(SLIBSUF)=.def) /out:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)'
                if enabled x86_64; then
                    LIBTARGET=x64
                fi
            elif check_cmd $dlltool --version; then
    
                SLIB_EXTRA_CMD=-'$(DLLTOOL) -m $(LIBTARGET) -d $$(@:$(SLIBSUF)=.def) -l $(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib) -D $(SLIBNAME_WITH_MAJOR)'
    
            SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
            SLIB_INSTALL_LINKS=
            SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)'
            SLIB_INSTALL_EXTRA_LIB='lib$(SLIBNAME:$(SLIBSUF)=.dll.a) $(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.def)'
    
            SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.def) -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base'
    
    Loren Merritt's avatar
    Loren Merritt committed
            objformat="win32"
    
            ranlib=:
    
            check_cflags -fno-common
    
            add_cppflags -U__STRICT_ANSI__
    
            SLIBPREF="cyg"
            SLIBSUF=".dll"
            SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
            SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
    
            SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
            SLIB_INSTALL_LINKS=
            SLIB_INSTALL_EXTRA_LIB='lib$(FULLNAME).dll.a'
            SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(FULLNAME).dll.a'
    
    Loren Merritt's avatar
    Loren Merritt committed
            objformat="win32"
    
            check_cflags -fno-common
    
            add_cppflags -U__STRICT_ANSI__
    
    Michael Kostylev's avatar
    Michael Kostylev committed
        *-dos|freedos|opendos)
            network_extralibs="-lsocket"
    
            objformat="coff"
    
            add_cppflags -U__STRICT_ANSI__
    
            add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600
    
            ln_s="cp -f"
    
            objformat="aout"
    
            add_cppflags -D_GNU_SOURCE
    
            add_ldflags -Zomf -Zbin-files -Zargs-wild -Zmap
    
    Måns Rullgård's avatar
    Måns Rullgård committed
            SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf'
    
            FFSERVERLDFLAGS=""
    
            SLIBPREF=""
            SLIBSUF=".dll"
            SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
            SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(shell echo $(NAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)'
    
    Måns Rullgård's avatar
    Måns Rullgård committed
            SLIB_CREATE_DEF_CMD='echo LIBRARY $(SLIBNAME_WITH_MAJOR) INITINSTANCE TERMINSTANCE > $(SUBDIR)$(NAME).def; \
    
                echo PROTMODE >> $(SUBDIR)$(NAME).def; \
                echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(SUBDIR)$(NAME).def; \
                echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(SUBDIR)$(NAME).def; \
                echo EXPORTS >> $(SUBDIR)$(NAME).def; \
                emxexp -o $(OBJS) >> $(SUBDIR)$(NAME).def'
    
    Måns Rullgård's avatar
    Måns Rullgård committed
            SLIB_EXTRA_CMD='emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.a $(SUBDIR)$(NAME).def; \
    
                emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.lib $(SUBDIR)$(NAME).def;'
    
            SLIB_INSTALL_EXTRA_LIB='$(LIBPREF)$(NAME)_dll.a $(LIBPREF)$(NAME)_dll.lib'
    
            enable_weak os2threads
    
            add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_BSD_SOURCE
    
            add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600
    
        qnx)
            add_cppflags -D_QNX_SOURCE
            network_extralibs="-lsocket"
            ;;
    
        symbian)
            SLIBSUF=".dll"
            enable dos_paths
    
            add_cflags --include=$sysinclude/gcce/gcce.h -fvisibility=default
            add_cppflags -D__GCCE__ -D__SYMBIAN32__ -DSYMBIAN_OE_POSIX_SIGNALS
            add_ldflags -Wl,--target1-abs,--no-undefined \
                        -Wl,-Ttext,0x80000,-Tdata,0x1000000 -shared \
                        -Wl,--entry=_E32Startup -Wl,-u,_E32Startup
            add_extralibs -l:eexe.lib -l:usrt2_2.lib -l:dfpaeabi.dso \
                          -l:drtaeabi.dso -l:scppnwdl.dso -lsupc++ -lgcc \
                          -l:libc.dso -l:libm.dso -l:euser.dso -l:libcrt0.lib
    
            die "Unknown OS '$target_os'."
    
    # determine libc flavour
    
    if check_cpp_condition features.h "defined __UCLIBC__"; then
        libc_type=uclibc
    elif check_cpp_condition features.h "defined __GLIBC__"; then
        libc_type=glibc
    elif check_header _mingw.h; then
        libc_type=mingw
        check_cpp_condition _mingw.h \
            "defined (__MINGW64_VERSION_MAJOR) || (__MINGW32_MAJOR_VERSION > 3) || \
                (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" ||
            die "ERROR: MinGW runtime version must be >= 3.15."
    elif check_cpp_condition newlib.h "defined _NEWLIB_VERSION"; then
        libc_type=newlib
    
    elif check_func_headers stdlib.h _get_doserrno; then
        libc_type=msvcrt
        add_cflags -Dstrtod=avpriv_strtod
        add_cflags -Dsnprintf=avpriv_snprintf   \
                   -D_snprintf=avpriv_snprintf  \
                   -Dvsnprintf=avpriv_vsnprintf
    
    elif check_cpp_condition stddef.h "defined __KLIBC__"; then
        libc_type=klibc
    fi
    
    test -n "$libc_type" && enable $libc_type
    
    
    esc(){
        echo "$*" | sed 's/%/%25/g;s/:/%3a/g'
    }
    
    
    echo "config:$arch:$subarch:$cpu:$target_os:$(esc $cc_ident):$(esc $FFMPEG_CONFIGURATION)" >config.fate
    
    check_cpp_condition stdlib.h "defined(__PIC__) || defined(__pic__) || defined(PIC)" && enable pic
    
    
    set_default $PATHS_LIST
    
    
    # we need to build at least one lib type
    
    if ! enabled_any static shared; then
    
        cat <<EOF
    At least one library type must be built.
    Specify --enable-static to build the static libraries or --enable-shared to
    build the shared libraries as well. To only build the shared libraries specify
    --disable-static in addition to --enable-shared.
    EOF
        exit 1;
    fi
    
    
        enabled $1 || { enabled $2 && die "$2 is $1 and --enable-$1 is not specified."; }
    
    die_license_disabled_gpl() {
        enabled $1 || { enabled $2 && die "$2 is incompatible with the gpl and --enable-$1 is not specified."; }
    }
    
    
    die_license_disabled gpl libcdio
    
    die_license_disabled gpl libutvideo
    
    die_license_disabled gpl libx264
    
    die_license_disabled gpl libxavs
    
    die_license_disabled gpl libxvid
    die_license_disabled gpl x11grab
    
    
    tipok's avatar
    tipok committed
    die_license_disabled nonfree libaacplus
    
    die_license_disabled nonfree libfaac
    
    enabled gpl && die_license_disabled_gpl nonfree libfdk_aac
    
    enabled gpl && die_license_disabled_gpl nonfree openssl
    
    die_license_disabled version3 libopencore_amrnb
    die_license_disabled version3 libopencore_amrwb
    
    die_license_disabled version3 libvo_aacenc
    
    die_license_disabled version3 libvo_amrwbenc
    
    enabled version3 && { enabled gpl && enable gplv3 || enable lgplv3; }
    
    disabled optimizations || check_cflags -fomit-frame-pointer
    
        add_cppflags -DPIC
        add_cflags   -fPIC
        add_asflags  -fPIC
    
    check_cc <<EOF || die "Symbol mangling check failed."
    int ff_extern;
    EOF
    
    sym=$($nm $nm_opts $TMPO | awk '/ff_extern/{ print substr($0, match($0, /[^ \t]*ff_extern/)) }')
    
    extern_prefix=${sym%%ff_extern*}
    
    
    check_cc <<EOF && enable_weak inline_asm
    
    void foo(void) { __asm__ volatile ("" ::); }
    EOF
    
    _restrict=
    for restrict_keyword in restrict __restrict__ __restrict; do
        check_cc <<EOF && _restrict=$restrict_keyword && break
    void foo(char * $restrict_keyword p);
    EOF
    done
    
    check_cc <<EOF && enable attribute_packed
    struct { int x; } __attribute__((packed)) x;
    EOF
    
    
    check_cc <<EOF && enable attribute_may_alias
    union { int x; } __attribute__((may_alias)) x;
    EOF
    
    
    check_cc <<EOF || die "endian test failed"
    unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';
    EOF
    
    od -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian
    
    if enabled alpha; then
    
        check_cflags -mieee
    
    elif enabled arm; then
    
        enabled thumb && check_cflags -mthumb || check_cflags -marm
    
        if     check_cpp_condition stddef.h "defined __ARM_PCS_VFP"; then
            enable vfp_args
        elif ! check_cpp_condition stddef.h "defined __ARM_PCS || defined __SOFTFP__"; then
            case "${cross_prefix:-$cc}" in
                *hardfloat*)         enable vfp_args;   fpabi=vfp ;;
    
    Mohamed Naufal's avatar
    Mohamed Naufal committed
                *) check_ld "cc" <<EOF && enable vfp_args && fpabi=vfp || fpabi=soft ;;
    
    __asm__ (".eabi_attribute 28, 1");
    int main(void) { return 0; }
    EOF
    
            esac
            warn "Compiler does not indicate floating-point ABI, guessing $fpabi."
        fi
    
        enabled armv5te && check_inline_asm armv5te '"qadd r0, r0, r0"'
        enabled armv6   && check_inline_asm armv6   '"sadd16 r0, r0, r0"'
        enabled armv6t2 && check_inline_asm armv6t2 '"movt r0, #0"'
        enabled armvfp  && check_inline_asm armvfp  '"fadds s0, s0, s0"'
        enabled neon    && check_inline_asm neon    '"vadd.i16 q0, q0, q0"'
        enabled vfpv3   && check_inline_asm vfpv3   '"vmov.f32 s0, #1.0"'
    
        check_inline_asm asm_mod_q '"add r0, %Q0, %R0" :: "r"((long long)0)'
        check_inline_asm asm_mod_y '"vmul.i32 d0, d0, %y0" :: "x"(0)'
    
        enabled_all armv6t2 shared !pic && enable_pic
    
    
    elif enabled mips; then
    
        check_inline_asm loongson '"dmult.g $1, $2, $3"'
        enabled mmi && check_inline_asm mmi '"lq $2, 0($2)"'
    
        enabled mips32r2  && add_cflags "-mips32r2" && add_asflags "-mips32r2" &&
    
         check_inline_asm mips32r2  '"rotr $t0, $t1, 1"'
    
        enabled mipsdspr1 && add_cflags "-mdsp" && add_asflags "-mdsp" &&
    
         check_inline_asm mipsdspr1 '"addu.qb $t0, $t1, $t2"'
    
        enabled mipsdspr2 && add_cflags "-mdspr2" && add_asflags "-mdspr2" &&
    
         check_inline_asm mipsdspr2 '"absq_s.qb $t0, $t1"'
    
        enabled mipsfpu   && add_cflags "-mhard-float" && add_asflags "-mhard-float" &&
    
         check_inline_asm mipsfpu   '"madd.d $f0, $f2, $f4, $f6"'
    
    elif enabled ppc; then
    
        enable local_aligned_8 local_aligned_16
    
    
        check_inline_asm dcbzl     '"dcbzl 0, %0" :: "r"(0)'
        check_inline_asm ibm_asm   '"add 0, 0, 0"'
        check_inline_asm ppc4xx    '"maclhw r10, r11, r12"'
        check_inline_asm xform_asm '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)'
    
    
        # AltiVec flags: The FSF version of GCC differs from the Apple version
        if enabled altivec; then
    
            check_cflags -maltivec -mabi=altivec &&
            { check_header altivec.h && inc_altivec_h="#include <altivec.h>" ; } ||
            check_cflags -faltivec
    
            # check if our compiler supports Motorola AltiVec C API
            check_cc <<EOF || disable altivec
    $inc_altivec_h
    int main(void) {
    
        vector signed int v1 = (vector signed int) { 0 };
        vector signed int v2 = (vector signed int) { 1 };
        v1 = vec_add(v1, v2);
    
            enabled altivec || warn "Altivec disabled, possibly missing --cpu flag"
    
    elif enabled sparc; then
    
        enabled vis &&
            check_inline_asm vis '"pdist %f0, %f0, %f0"' -mcpu=ultrasparc &&
    
                add_cflags -mcpu=ultrasparc -mtune=ultrasparc
    
    elif enabled x86; then
    
        check_code ld immintrin.h "return __xgetbv(0)" "cc" && enable xgetbv
    
        check_code ld intrin.h "int info[4]; __cpuid(info, 0)" "cc" && enable cpuid
    
        check_code ld intrin.h "__rdtsc()" "cc" && enable rdtsc
    
        check_code ld intrin.h "unsigned int x = __readeflags()" "cc" && enable rweflags
    
        check_code ld mmintrin.h "_mm_empty()" "cc" && enable mm_empty
    
        enable local_aligned_8 local_aligned_16
    
    
        # check whether EBP is available on x86
        # As 'i' is stored on the stack, this program will crash
        # if the base pointer is used to access it because the
        # base pointer is cleared in the inline assembly code.
    
        check_exec_crash <<EOF && enable ebp_available
    
    volatile int i=0;
    __asm__ volatile ("xorl %%ebp, %%ebp" ::: "%ebp");
    return i;
    
    Reimar Döffinger's avatar
    Reimar Döffinger committed
        # check whether EBX is available on x86
    
        check_inline_asm ebx_available '""::"b"(0)' &&
            check_inline_asm ebx_available '"":::"%ebx"'
    
        # check whether xmm clobbers are supported
    
        check_inline_asm xmm_clobbers '"":::"%xmm0"'
    
        # check whether binutils is new enough to compile SSSE3/MMXEXT
    
        enabled ssse3  && check_inline_asm ssse3_inline  '"pabsw %xmm0, %xmm0"'
        enabled mmxext && check_inline_asm mmxext_inline '"pmaxub %mm0, %mm1"'
    
            if check_cmd $yasmexe --version; then
                enabled x86_64 && yasm_extra="-m amd64"
                yasm_debug="-g dwarf2"
            elif check_cmd nasm -v; then
                yasmexe=nasm
                yasm_debug="-g -F dwarf"
                enabled x86_64 && test "$objformat" = elf && objformat=elf64
            fi
    
            YASMFLAGS="-f $objformat $yasm_extra"
            enabled pic               && append YASMFLAGS "-DPIC"
            test -n "$extern_prefix"  && append YASMFLAGS "-DPREFIX"
            case "$objformat" in
                elf*) enabled debug && append YASMFLAGS $yasm_debug ;;
            esac
    
    
            check_yasm "pextrd [eax], xmm0, 1" && enable yasm ||
    
                die "yasm not found, use --disable-yasm for a crippled build"
    
            check_yasm "vextractf128 xmm0, ymm0, 0"      || disable avx_external
            check_yasm "vfmaddps ymm0, ymm1, ymm2, ymm3" || disable fma4_external
    
            check_yasm "CPU amdnop" && enable cpunop
    
        case "$cpu" in
            athlon*|opteron*|k8*|pentium|pentium-mmx|prescott|nocona|atom|geode)
                disable fast_clz
            ;;
        esac
    
    
    if enabled asm; then
        as=${gas:=$as}
    
        check_inline_asm gnu_as '".macro m n\n\\n:.int 0\n.endm\nm x"' ||
    
            $nogas "GNU assembler not found, install gas-preprocessor"
    fi
    
    
    check_ldflags -Wl,--as-needed
    
    
    if check_func dlopen; then
        ldl=
    elif check_func dlopen -ldl; then
        ldl=-ldl
    
    if enabled network; then
        check_type "sys/types.h sys/socket.h" socklen_t
        check_type netdb.h "struct addrinfo"
    
        check_type netinet/in.h "struct group_source_req" -D_BSD_SOURCE
        check_type netinet/in.h "struct ip_mreq_source" -D_BSD_SOURCE
    
        check_type netinet/in.h "struct ipv6_mreq" -D_DARWIN_C_SOURCE
        check_type netinet/in.h "struct sockaddr_in6"
    
        check_type poll.h "struct pollfd"
    
        check_type "sys/types.h sys/socket.h" "struct sockaddr_storage"
        check_struct "sys/types.h sys/socket.h" "struct sockaddr" sa_len
    
        check_type netinet/sctp.h "struct sctp_event_subscribe"
    
        check_func getaddrinfo $network_extralibs
    
        # Prefer arpa/inet.h over winsock2
        if check_header arpa/inet.h ; then
            check_func closesocket
        elif check_header winsock2.h ; then
    
            check_func_headers winsock2.h closesocket -lws2 &&
                network_extralibs="-lws2" ||
            { check_func_headers winsock2.h closesocket -lws2_32 &&
    
                network_extralibs="-lws2_32"; }
    
            check_func_headers ws2tcpip.h getaddrinfo $network_extralibs
    
            check_type ws2tcpip.h socklen_t
            check_type ws2tcpip.h "struct addrinfo"
    
            check_type ws2tcpip.h "struct group_source_req"
            check_type ws2tcpip.h "struct ip_mreq_source"
    
            check_type ws2tcpip.h "struct ipv6_mreq"
    
            check_type winsock2.h "struct pollfd"
    
            check_type ws2tcpip.h "struct sockaddr_in6"
            check_type ws2tcpip.h "struct sockaddr_storage"
            check_struct winsock2.h "struct sockaddr" sa_len
        else
            disable network
        fi
    fi
    
    
    # Solaris has nanosleep in -lrt, OpenSolaris no longer needs that
    check_func nanosleep || { check_func nanosleep -lrt && add_extralibs -lrt; }
    
    
    check_func  clock_gettime || { check_func clock_gettime -lrt && add_extralibs -lrt; }
    
    Måns Rullgård's avatar
    Måns Rullgård committed
    check_func  fcntl
    
    check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss
    
    check_func  gettimeofday
    
    check_func  inet_aton $network_extralibs
    
    check_func  isatty
    
    check_func  ${malloc_prefix}memalign            && enable memalign
    
    check_func  ${malloc_prefix}posix_memalign      && enable posix_memalign
    
    check_func_headers malloc.h _aligned_malloc     && enable aligned_malloc
    
    Måns Rullgård's avatar
    Måns Rullgård committed
    check_func  setrlimit
    
    check_func  strerror_r
    
    check_func  sched_getaffinity
    
    check_func  usleep
    
    check_func_headers conio.h kbhit
    
    check_func_headers windows.h PeekNamedPipe
    
    check_func_headers io.h setmode
    
    check_func_headers lzo/lzo1x.h lzo1x_999_compress
    
    check_lib2 "windows.h shellapi.h" CommandLineToArgvW -lshell32
    
    check_lib2 "windows.h psapi.h" GetProcessMemoryInfo -lpsapi
    
    check_func_headers windows.h GetProcessAffinityMask
    
    check_func_headers windows.h GetProcessTimes
    
    check_func_headers windows.h GetSystemTimeAsFileTime
    
    check_func_headers windows.h MapViewOfFile
    
    check_func_headers windows.h Sleep
    
    check_func_headers windows.h VirtualAlloc
    
    check_func_headers glob.h glob
    
    check_header dlfcn.h
    
    check_header dxva.h
    
    check_header dxva2api.h -D_WIN32_WINNT=0x0600
    
    check_header io.h
    
    check_header libcrystalhd/libcrystalhd_if.h
    
    check_header malloc.h
    
    check_header sys/resource.h
    
    check_header sys/time.h
    
    check_header unistd.h
    
    check_header vdpau/vdpau.h
    check_header vdpau/vdpau_x11.h
    
    check_header windows.h
    
    check_header X11/extensions/XvMClib.h
    
    check_header asm/types.h
    
    disabled  zlib || check_lib   zlib.h      zlibVersion -lz   || disable  zlib
    
    disabled bzlib || check_lib2 bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib
    
    # check for VDA header
    if ! disabled vda; then
        if check_header VideoDecodeAcceleration/VDADecoder.h; then
            enable vda
    
            add_extralibs -framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore
    
    if ! disabled w32threads && ! enabled pthreads; then
        check_func _beginthreadex && enable w32threads
    fi
    
    
    # check for some common methods of building with pthread support
    # do this before the optional library checks as some of them require pthreads
    
    if ! disabled pthreads && ! enabled w32threads && ! enabled os2threads; then
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        if check_func pthread_create; then
            :
        elif check_func pthread_create -pthread; then
            add_cflags -pthread
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        elif check_func pthread_create -pthreads; then
            add_cflags -pthreads
    
        elif check_func pthread_create -lpthreadGC2; then
            add_extralibs -lpthreadGC2
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        elif ! check_lib pthread.h pthread_create -lpthread; then
    
            test -n "$thread_type" &&
                die "ERROR: Only one thread type must be selected." ||
    
    if enabled pthreads; then
      check_func pthread_cancel
    fi
    
    
    check_lib math.h sin -lm && LIBM="-lm"
    
    disabled crystalhd || check_lib libcrystalhd/libcrystalhd_if.h DtsCrystalHDVersion -lcrystalhd || disable crystalhd
    
    enabled vaapi && require vaapi va/va.h vaInitialize -lva
    
    Måns Rullgård's avatar
    Måns Rullgård committed
    
    
    check_mathfunc cbrtf
    
    check_mathfunc exp2
    check_mathfunc exp2f
    
    check_mathfunc isinf
    check_mathfunc isnan
    
    check_mathfunc llrint
    
    check_mathfunc llrintf
    
    check_mathfunc log2
    check_mathfunc log2f
    check_mathfunc lrint
    check_mathfunc lrintf
    
    check_mathfunc rint
    
    check_mathfunc round
    check_mathfunc roundf
    
    check_mathfunc truncf
    
    # these are off by default, so fail if requested and not available
    
    enabled avisynth   && require2 vfw32 "windows.h vfw.h" AVIFileInit -lavifil32
    
    enabled fontconfig && require_pkg_config fontconfig "fontconfig/fontconfig.h" FcInit
    
    Stefano Sabatini's avatar
    Stefano Sabatini committed
    enabled frei0r     && { check_header frei0r.h || die "ERROR: frei0r.h header not found"; }
    
    enabled gnutls     && require_pkg_config gnutls gnutls/gnutls.h gnutls_global_init
    
    enabled libiec61883 && require libiec61883 libiec61883/iec61883.h iec61883_cmp_connect -lraw1394 -lavc1394 -lrom1394 -liec61883
    
    tipok's avatar
    tipok committed
    enabled libaacplus && require  "libaacplus >= 2.0.0" aacplus.h aacplusEncOpen -laacplus
    
    enabled libass     && require_pkg_config libass ass/ass.h ass_library_init
    
    Petri Hintukainen's avatar
    Petri Hintukainen committed
    enabled libbluray  && require libbluray libbluray/bluray.h bd_open -lbluray
    
    enabled libcelt    && require libcelt celt/celt.h celt_decode -lcelt0 &&
                          { check_lib celt/celt.h celt_decoder_create_custom -lcelt0 ||
    
                            die "ERROR: libcelt must be installed and version must be >= 0.11.0."; }
    
    Paul B Mahol's avatar
    Paul B Mahol committed
    enabled libcaca    && require_pkg_config caca caca.h caca_create_canvas
    
    enabled libfaac    && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac
    
    enabled libfdk_aac && require  libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac
    
    flite_libs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lflite_cmu_us_kal16 -lflite_cmu_us_rms -lflite_cmu_us_slt -lflite_usenglish -lflite_cmulex -lflite"
    enabled libflite   && require2 libflite "flite/flite.h" flite_init $flite_libs
    
    enabled libfreetype && require_pkg_config freetype2 "ft2build.h freetype/freetype.h" FT_Init_FreeType
    
    enabled libgsm     && require  libgsm gsm/gsm.h gsm_create -lgsm
    
    enabled libilbc    && require  libilbc ilbc.h WebRtcIlbcfix_InitDecode -lilbc
    
    Clément Bœsch's avatar
    Clément Bœsch committed
    enabled libmodplug && require  libmodplug libmodplug/modplug.h ModPlug_Load -lmodplug
    
    enabled libmp3lame && require  "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame
    
    enabled libnut     && require  libnut libnut.h nut_demuxer_init -lnut
    
    enabled libopencore_amrnb  && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb
    enabled libopencore_amrwb  && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb
    
    enabled libopencv  && require_pkg_config opencv opencv/cxcore.h cvCreateImageHeader
    
    enabled libopenjpeg && require libopenjpeg openjpeg.h opj_version -lopenjpeg
    
    enabled libopus    && require_pkg_config opus opus_multistream.h opus_multistream_decoder_create
    
    enabled libpulse && require_pkg_config libpulse-simple pulse/simple.h pa_simple_new
    
    enabled librtmp    && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket
    enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init
    
    enabled libspeex   && require  libspeex speex/speex.h speex_decoder_init -lspeex
    
    Mohamed Naufal's avatar
    Mohamed Naufal committed
    enabled libstagefright_h264  && require_cpp libstagefright_h264 "binder/ProcessState.h media/stagefright/MetaData.h
    
        media/stagefright/MediaBufferGroup.h media/stagefright/MediaDebug.h media/stagefright/MediaDefs.h
    
        media/stagefright/OMXClient.h media/stagefright/OMXCodec.h" android::OMXClient -lstagefright -lmedia -lutils -lbinder -lgnustl_static
    
    enabled libtheora  && require  libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg
    
    enabled libtwolame && require  libtwolame twolame.h twolame_init -ltwolame &&
                          { check_lib twolame.h twolame_encode_buffer_float32_interleaved -ltwolame ||
    
                            die "ERROR: libtwolame must be installed and version must be >= 0.3.10"; }
    
    enabled libutvideo    && require_cpp utvideo "stdint.h stdlib.h utvideo/utvideo.h utvideo/Codec.h" 'CCodec*' -lutvideo -lstdc++
    
    enabled libv4l2    && require_pkg_config libv4l2 libv4l2.h v4l2_ioctl
    
    enabled libvo_aacenc && require libvo_aacenc vo-aacenc/voAAC.h voGetAACEncAPI -lvo-aacenc
    
    enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc
    
    enabled libvorbis  && require  libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbisenc -lvorbis -logg
    
    enabled libvpx     && {
        enabled libvpx_decoder && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_dec_init_ver -lvpx ||
    
                                    die "ERROR: libvpx decoder must be installed and version must be >=0.9.1"; }
    
        enabled libvpx_encoder && { check_lib2 "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_enc_init_ver VP8E_SET_MAX_INTRA_BITRATE_PCT" -lvpx ||
                                    die "ERROR: libvpx encoder version must be >=0.9.7"; } }
    
    enabled libx264    && require  libx264 x264.h x264_encoder_encode -lx264 &&
    
                          { check_cpp_condition x264.h "X264_BUILD >= 118" ||
    
                            die "ERROR: libx264 must be installed and version must be >= 0.118."; }
    
    enabled libxavs    && require  libxavs xavs.h xavs_encoder_encode -lxavs
    
    enabled libxvid    && require  libxvid xvid.h xvid_global -lxvidcore
    
    enabled openal     && { { for al_libs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32"; do
                            check_lib 'AL/al.h' alGetError "${al_libs}" && break; done } ||
                            die "ERROR: openal not found"; } &&
                          { check_cpp_condition "AL/al.h" "defined(AL_VERSION_1_1)" ||
    
                            die "ERROR: openal must be installed and version must be 1.1 or compatible"; }
    
    enabled openssl    && { check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto ||
                            check_lib openssl/ssl.h SSL_library_init -lssl32 -leay32 ||
                            check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 ||
                            die "ERROR: openssl not found"; }
    
    Samuel Pitoiset's avatar
    Samuel Pitoiset committed
    if enabled gnutls; then
        { check_lib nettle/bignum.h nettle_mpz_get_str_256 -lnettle -lhogweed -lgmp && enable nettle; } ||
        { check_lib gcrypt.h gcry_mpi_new -lgcrypt && enable gcrypt; }
    fi
    
    
    # libdc1394 check
    if enabled libdc1394; then
        { check_lib dc1394/dc1394.h dc1394_new -ldc1394 -lraw1394 &&
            enable libdc1394_2; } ||
        { check_lib libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394 &&
            enable libdc1394_1; } ||
        die "ERROR: No version of libdc1394 found "
    fi
    
    
    SDL_CONFIG="${cross_prefix}sdl-config"
    
    if check_pkg_config sdl SDL_events.h SDL_PollEvent; then
    
        check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags &&
        enable sdl &&
        check_struct SDL.h SDL_VideoInfo current_w $sdl_cflags && enable sdl_video_size
    else
      if "${SDL_CONFIG}" --version > /dev/null 2>&1; then
    
        sdl_cflags=$("${SDL_CONFIG}" --cflags)
        sdl_libs=$("${SDL_CONFIG}" --libs)
    
        check_func_headers SDL_version.h SDL_Linked_Version $sdl_cflags $sdl_libs &&
    
        check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags &&
        enable sdl &&
        check_struct SDL.h SDL_VideoInfo current_w $sdl_cflags && enable sdl_video_size
    
    enabled sdl && add_cflags $sdl_cflags && add_extralibs $sdl_libs
    
    texi2html --help 2> /dev/null | grep -q 'init-file' && enable texi2html || disable texi2html
    
    makeinfo --version > /dev/null 2>&1 && enable makeinfo  || disable makeinfo
    
    perl --version > /dev/null 2>&1 && enable perl || disable perl
    
    pod2man --help > /dev/null 2>&1 && enable pod2man || disable pod2man
    
    check_header linux/fb.h
    
    check_header linux/videodev.h
    check_header linux/videodev2.h
    
    check_struct linux/videodev2.h "struct v4l2_frmivalenum" discrete
    
    
    check_header sys/videoio.h
    
    check_func_headers "windows.h vfw.h" capCreateCaptureWindow "$vfwcap_indev_extralibs"
    
    # check that WM_CAP_DRIVER_CONNECT is defined to the proper value
    # w32api 3.12 had it defined wrong
    check_cpp_condition vfw.h "WM_CAP_DRIVER_CONNECT > WM_USER" && enable vfwcap_defines
    
    Ramiro Polla's avatar
    Ramiro Polla committed
    
    
    Ramiro Polla's avatar
    Ramiro Polla committed
    check_type "dshow.h" IBaseFilter
    
    
    # check for ioctl_meteor.h, ioctl_bt848.h and alternatives
    
    Ramiro Polla's avatar
    Ramiro Polla committed
    { check_header dev/bktr/ioctl_meteor.h &&
      check_header dev/bktr/ioctl_bt848.h; } ||
    { check_header machine/ioctl_meteor.h &&
      check_header machine/ioctl_bt848.h; } ||
    { check_header dev/video/meteor/ioctl_meteor.h &&
      check_header dev/video/bktr/ioctl_bt848.h; } ||
    check_header dev/ic/bt8xx.h
    
    check_header sndio.h
    
    if check_struct sys/soundcard.h audio_buf_info bytes; then
        enable_safe sys/soundcard.h
    else
        check_cc -D__BSD_VISIBLE -D__XSI_VISIBLE <<EOF && add_cppflags -D__BSD_VISIBLE -D__XSI_VISIBLE && enable_safe sys/soundcard.h
        #include <sys/soundcard.h>
        audio_buf_info abc;
    EOF
    fi
    
    check_header soundcard.h
    
    enabled_any alsa_indev alsa_outdev && check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound
    
    enabled jack_indev && check_lib2 jack/jack.h jack_client_open -ljack && check_func sem_timedwait &&
    
        check_func jack_port_get_latency_range -ljack
    
    enabled_any sndio_indev sndio_outdev && check_lib2 sndio.h sio_open -lsndio
    
    
    enabled libcdio &&
        check_lib2 "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open "-lcdio_paranoia -lcdio_cdda -lcdio"
    
    
    enabled x11grab                                           &&
    require X11 X11/Xlib.h XOpenDisplay -lX11                 &&
    require Xext X11/extensions/XShm.h XShmCreateImage -lXext &&
    require Xfixes X11/extensions/Xfixes.h XFixesGetCursorImage -lXfixes
    
    if ! disabled vaapi; then
        check_lib va/va.h vaInitialize -lva && {
            check_cpp_condition va/va_version.h "VA_CHECK_VERSION(0,32,0)" ||
    
            warn "Please upgrade to VA-API >= 0.32 if you would like full VA-API support.";
    
        } || disable vaapi
    fi
    
    if ! disabled vdpau && enabled vdpau_vdpau_h; then
    
        check_cpp_condition vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" ||
            { echolog "Please upgrade to libvdpau >= 0.2 if you would like vdpau support." && disable vdpau; }
    
    enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel"
    
    Reimar Döffinger's avatar
    Reimar Döffinger committed
    enabled coverage && add_cflags "-fprofile-arcs -ftest-coverage" && add_ldflags "-fprofile-arcs -ftest-coverage"
    
    test -n "$valgrind" && target_exec="$valgrind --error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
    
    
    # add some useful compiler flags if supported
    check_cflags -Wdeclaration-after-statement
    
    check_cflags -Wall
    
    check_cflags -Wno-parentheses
    
    check_cflags -Wno-switch
    
    check_cflags -Wno-format-zero-length
    
    Michael Niedermayer's avatar
    Michael Niedermayer committed
    check_cflags -Wdisabled-optimization
    check_cflags -Wpointer-arith
    check_cflags -Wredundant-decls
    
    check_cflags -Wno-pointer-sign
    
    check_cflags -Wwrite-strings
    
    check_cflags -Wmissing-prototypes
    
    check_cflags -Wstrict-prototypes
    
    enabled extra_warnings && check_cflags -Winline
    
    check_ldflags -Wl,--warn-common
    
    check_ldflags -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample
    
    test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic
    
    enabled xmm_clobber_test &&
    
        check_ldflags -Wl,--wrap,avcodec_open2              \
                      -Wl,--wrap,avcodec_decode_audio4      \
                      -Wl,--wrap,avcodec_decode_video2      \
                      -Wl,--wrap,avcodec_decode_subtitle2   \
                      -Wl,--wrap,avcodec_encode_audio2      \
                      -Wl,--wrap,avcodec_encode_video       \
                      -Wl,--wrap,avcodec_encode_subtitle    \
    
    echo "X{};" > $TMPV
    
    if test_ldflags -Wl,--version-script,$TMPV; then
    
        append SHFLAGS '-Wl,--version-script,\$(SUBDIR)lib\$(NAME).ver'
    
        check_cc <<EOF && enable symver_asm_label
    void ff_foo(void) __asm__ ("av_foo@VERSION");
    
    void ff_foo(void) { ${inline_asm+__asm__($quotes);} }
    
    EOF
        check_cc <<EOF && enable symver_gnu_asm
    __asm__(".symver ff_foo,av_foo@VERSION");
    void ff_foo(void) {}
    EOF
    fi
    
    if [ -n "$optflags" ]; then
        add_cflags $optflags
    elif enabled small; then
    
        add_cflags $cflags_size
    
        add_cflags $cflags_speed
    
        add_cflags $cflags_noopt
    
    check_cflags -fno-math-errno
    
    check_cc -mno-red-zone <<EOF && noredzone_flags="-mno-red-zone"
    int x;
    EOF
    
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        # Just warnings, no remarks
        check_cflags -w1
        # -wd: Disable following warnings
        # 144, 167, 556: -Wno-pointer-sign
    
        # 1292: attribute "foo" ignored
    
        # 1419: external declaration in primary source file
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        # 10006: ignoring unknown option -fno-signed-zeros
    
        # 10148: ignoring unknown option -Wno-parentheses
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        # 10156: ignoring option '-W'; no argument required
    
        check_cflags -wd144,167,556,1292,1419,10006,10148,10156
    
    Måns Rullgård's avatar
    Måns Rullgård committed
        # 11030: Warning unknown option --as-needed
        # 10156: ignoring option '-export'; no argument required
        check_ldflags -wd10156,11030
        # Allow to compile with optimizations
        check_ldflags -march=$cpu
    
        # icc 11.0 and 11.1 work with ebp_available, but don't pass the test
        enable ebp_available
    
        if enabled x86_32; then
    
            icc_version=$($cc -dumpversion)
    
            test ${icc_version%%.*} -ge 11 &&
                check_cflags -falign-stack=maintain-16-byte ||
    
    elif enabled ccc; then
        # disable some annoying warnings
        add_cflags -msg_disable cvtu32to64
        add_cflags -msg_disable embedcomment
        add_cflags -msg_disable needconstext
        add_cflags -msg_disable nomainieee
        add_cflags -msg_disable ptrmismatch1
        add_cflags -msg_disable unreachcode
    
    elif enabled gcc; then
        check_cflags -fno-tree-vectorize
    
        check_cflags -Werror=implicit-function-declaration
    
        check_cflags -Werror=missing-prototypes
    
    elif enabled llvm_gcc; then
        check_cflags -mllvm -stack-alignment=16
    
    elif enabled clang; then
    
        check_cflags -mllvm -stack-alignment=16
    
        check_cflags -Qunused-arguments
    
    elif enabled armcc; then
        # 2523: use of inline assembler is deprecated
    
        add_cflags -W${armcc_opt},--diag_suppress=2523
        add_cflags -W${armcc_opt},--diag_suppress=1207
    
        add_cflags -W${armcc_opt},--diag_suppress=1293 # assignment in condition
    
        add_cflags -W${armcc_opt},--diag_suppress=3343 # hardfp compat
    
        add_cflags -W${armcc_opt},--diag_suppress=167  # pointer sign
        add_cflags -W${armcc_opt},--diag_suppress=513  # pointer sign
    
    elif enabled tms470; then
        add_cflags -pds=824 -pds=837
    
    elif enabled pathscale; then
        add_cflags -fstrict-overflow -OPT:wrap_around_unsafe_opt=OFF
    
    elif enabled msvc; then
        enabled x86_32 && disable aligned_stack
    
    enabled asm || { arch=c; disable $ARCH_LIST $ARCH_EXT_LIST; }
    
    
    if test $target_os = "haiku"; then
    
    ! enabled_any memalign posix_memalign aligned_malloc &&
    
        enabled_any $need_memalign && enable memalign_hack
    
    
    # add_dep lib dep
    # -> enable ${lib}_deps_${dep}
    # -> add $dep to ${lib}_deps only once
    add_dep() {
        lib=$1
        dep=$2
        enabled "${lib}_deps_${dep}" && return 0
        enable  "${lib}_deps_${dep}"
        prepend "${lib}_deps" $dep
    }
    
    # merge deps lib components
    # merge all ${component}_deps into ${lib}_deps and ${lib}_deps_*
    merge_deps() {
        lib=$1
        shift
        for comp in $*; do
            enabled $comp || continue
            eval "dep=\"\$${comp}_deps\""
            for d in $dep; do
                add_dep $lib $d
            done
        done
    }
    
    merge_deps libavfilter $FILTER_LIST
    
    
    echo "install prefix            $prefix"
    
    Diego Biurrun's avatar
    Diego Biurrun committed
    echo "source path               $source_path"
    echo "C compiler                $cc"
    echo "ARCH                      $arch ($cpu)"
    
    if test "$build_suffix" != ""; then
        echo "build suffix              $build_suffix"
    
    if test "$progs_suffix" != ""; then
        echo "progs suffix              $progs_suffix"
    fi
    
    if test "$extra_version" != ""; then
        echo "version string suffix     $extra_version"
    fi
    
    echo "big-endian                ${bigendian-no}"
    
    echo "runtime cpu detection     ${runtime_cpudetect-no}"
    
        echo "${yasmexe}                      ${yasm-no}"
    
        echo "MMX enabled               ${mmx-no}"
    
        echo "MMXEXT enabled            ${mmxext-no}"
    
        echo "3DNow! extended enabled   ${amd3dnowext-no}"
    
        echo "SSE enabled               ${sse-no}"
    
        echo "SSSE3 enabled             ${ssse3-no}"
    
        echo "AVX enabled               ${avx-no}"
    
        echo "CMOV enabled              ${cmov-no}"
        echo "CMOV is fast              ${fast_cmov-no}"
    
        echo "EBX available             ${ebx_available-no}"
        echo "EBP available             ${ebp_available-no}"
    
        echo "ARMv5TE enabled           ${armv5te-no}"
        echo "ARMv6 enabled             ${armv6-no}"
    
        echo "ARMv6T2 enabled           ${armv6t2-no}"
    
        echo "ARM VFP enabled           ${armvfp-no}"
    
        echo "NEON enabled              ${neon-no}"
    
        echo "MMI enabled               ${mmi-no}"
    
        echo "MIPS FPU enabled          ${mipsfpu-no}"
        echo "MIPS32R2 enabled          ${mips32r2-no}"
        echo "MIPS DSP R1 enabled       ${mipsdspr1-no}"
        echo "MIPS DSP R2 enabled       ${mipsdspr2-no}"
    
        echo "AltiVec enabled           ${altivec-no}"
    
        echo "PPC 4xx optimizations     ${ppc4xx-no}"
    
        echo "dcbzl available           ${dcbzl-no}"
    
    fi
    if enabled sparc; then
        echo "VIS enabled               ${vis-no}"
    
    echo "debug symbols             ${debug-no}"
    
    echo "strip symbols             ${stripping-no}"
    
    echo "optimize for size         ${small-no}"
    
    echo "optimizations             ${optimizations-no}"
    
    echo "static                    ${static-no}"
    echo "shared                    ${shared-no}"
    
    echo "postprocessing support    ${postproc-no}"
    
    echo "network support           ${network-no}"
    echo "threading support         ${thread_type-no}"
    
    echo "safe bitstream reader     ${safe_bitstream_reader-no}"
    
    echo "SDL support               ${sdl-no}"
    
    echo "libdxva2 enabled          ${dxva2-no}"
    echo "libva enabled             ${vaapi-no}"
    echo "libvdpau enabled          ${vdpau-no}"
    
    echo "AVISynth enabled          ${avisynth-no}"
    
    Stefano Sabatini's avatar
    Stefano Sabatini committed
    echo "frei0r enabled            ${frei0r-no}"
    
    echo "gnutls enabled            ${gnutls-no}"
    
    echo "libaacplus enabled        ${libaacplus-no}"
    
    echo "libass enabled            ${libass-no}"
    
    Paul B Mahol's avatar
    Paul B Mahol committed
    echo "libcaca enabled           ${libcaca-no}"
    
    echo "libcdio support           ${libcdio-no}"