From 22e28216336da876e1fd17f380ce42eaf1446769 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Mon, 17 Feb 2014 13:36:38 +0000 Subject: chasing indexing error --- ffmpeg/configure | 5210 ------------------------------------------------------ 1 file changed, 5210 deletions(-) delete mode 100755 ffmpeg/configure (limited to 'ffmpeg/configure') diff --git a/ffmpeg/configure b/ffmpeg/configure deleted file mode 100755 index 9c210e9..0000000 --- a/ffmpeg/configure +++ /dev/null @@ -1,5210 +0,0 @@ -#!/bin/sh -# -# FFmpeg configure script -# -# Copyright (c) 2000-2002 Fabrice Bellard -# Copyright (c) 2005-2008 Diego Biurrun -# Copyright (c) 2005-2008 Mans Rullgard -# - -# Prevent locale nonsense from breaking basic text processing. -LC_ALL=C -export LC_ALL - -# make sure we are running under a compatible shell -# try to make this part work with most shells - -try_exec(){ - echo "Trying shell $1" - type "$1" > /dev/null 2>&1 && exec "$@" -} - -unset foo -(: ${foo%%bar}) 2> /dev/null -E1="$?" - -(: ${foo?}) 2> /dev/null -E2="$?" - -if test "$E1" != 0 || test "$E2" = 0; then - echo "Broken shell detected. Trying alternatives." - export FF_CONF_EXEC - if test "0$FF_CONF_EXEC" -lt 1; then - FF_CONF_EXEC=1 - try_exec bash "$0" "$@" - fi - if test "0$FF_CONF_EXEC" -lt 2; then - FF_CONF_EXEC=2 - try_exec ksh "$0" "$@" - fi - if test "0$FF_CONF_EXEC" -lt 3; then - FF_CONF_EXEC=3 - try_exec /usr/xpg4/bin/sh "$0" "$@" - fi - echo "No compatible shell script interpreter found." - echo "This configure script requires a POSIX-compatible shell" - echo "such as bash or ksh." - echo "THIS IS NOT A BUG IN FFMPEG, DO NOT REPORT IT AS SUCH." - echo "Instead, install a working POSIX-compatible shell." - echo "Disabling this configure test will create a broken FFmpeg." - if test "$BASH_VERSION" = '2.04.0(1)-release'; then - echo "This bash version ($BASH_VERSION) is broken on your platform." - echo "Upgrade to a later version if available." - fi - exit 1 -fi - -test -d /usr/xpg4/bin && PATH=/usr/xpg4/bin:$PATH - -show_help(){ - cat <> $logfile -} - -log_file(){ - log BEGIN $1 - pr -n -t $1 >> $logfile - log END $1 -} - -echolog(){ - log "$@" - echo "$@" -} - -warn(){ - log "WARNING: $*" - WARNINGS="${WARNINGS}WARNING: $*\n" -} - -die(){ - echolog "$@" - cat <>file; - } else if (file ~ /\\.asm\$/) { - printf(\"%%define %s %d\\n\", c, v) >>file; - } else if (file ~ /\\.mak\$/) { - n = -v ? \"\" : \"!\"; - printf(\"%s%s=yes\\n\", n, c) >>file; - } else if (file ~ /\\.texi\$/) { - pre = -v ? \"\" : \"@c \"; - yesno = \$2; - c2 = tolower(c); - gsub(/_/, \"-\", c2); - printf(\"%s@set %s %s\\n\", pre, c2, yesno) >>file; - } - } - }" -} - -print_enabled(){ - suf=$1 - shift - for v; do - enabled $v && printf "%s\n" ${v%$suf}; - done -} - -append(){ - var=$1 - shift - eval "$var=\"\$$var $*\"" -} - -prepend(){ - var=$1 - shift - eval "$var=\"$* \$$var\"" -} - -add_cppflags(){ - append CPPFLAGS "$@" -} - -add_cflags(){ - append CFLAGS $($cflags_filter "$@") -} - -add_cxxflags(){ - append CXXFLAGS $($cflags_filter "$@") -} - -add_asflags(){ - append ASFLAGS $($asflags_filter "$@") -} - -add_ldflags(){ - append LDFLAGS $($ldflags_filter "$@") -} - -add_stripflags(){ - append ASMSTRIPFLAGS "$@" -} - -add_extralibs(){ - prepend extralibs $($ldflags_filter "$@") -} - -add_host_cppflags(){ - append host_cppflags "$@" -} - -add_host_cflags(){ - append host_cflags $($host_cflags_filter "$@") -} - -add_host_ldflags(){ - append host_ldflags $($host_ldflags_filter "$@") -} - -add_compat(){ - append compat_objs $1 - shift - map 'add_cppflags -D$v' "$@" -} - -check_cmd(){ - log "$@" - "$@" >> $logfile 2>&1 -} - -cc_o(){ - eval printf '%s\\n' $CC_O -} - -cc_e(){ - eval printf '%s\\n' $CC_E -} - -check_cc(){ - log check_cc "$@" - cat > $TMPC - log_file $TMPC - check_cmd $cc $CPPFLAGS $CFLAGS "$@" $CC_C $(cc_o $TMPO) $TMPC -} - -check_cxx(){ - log check_cxx "$@" - cat > $TMPCPP - log_file $TMPCPP - check_cmd $cxx $CPPFLAGS $CFLAGS $CXXFLAGS "$@" $CXX_C -o $TMPO $TMPCPP -} - -check_cpp(){ - log check_cpp "$@" - cat > $TMPC - log_file $TMPC - check_cmd $cc $CPPFLAGS $CFLAGS "$@" $(cc_e $TMPO) $TMPC -} - -as_o(){ - eval printf '%s\\n' $AS_O -} - -check_as(){ - log check_as "$@" - cat > $TMPS - log_file $TMPS - check_cmd $as $CPPFLAGS $ASFLAGS "$@" $AS_C $(as_o $TMPO) $TMPS -} - -check_inline_asm(){ - log check_inline_asm "$@" - name="$1" - code="$2" - shift 2 - disable $name - check_cc "$@" < $TMPS - log_file $TMPS - shift 1 - check_cmd $yasmexe $YASMFLAGS -Werror "$@" -o $TMPO $TMPS -} - -ld_o(){ - eval printf '%s\\n' $LD_O -} - -check_ld(){ - log check_ld "$@" - type=$1 - shift 1 - flags=$(filter_out '-l*|*.so' $@) - libs=$(filter '-l*|*.so' $@) - check_$type $($cflags_filter $flags) || return - flags=$($ldflags_filter $flags) - libs=$($ldflags_filter $libs) - check_cmd $ld $LDFLAGS $flags $(ld_o $TMPE) $TMPO $libs $extralibs -} - -check_code(){ - log check_code "$@" - check=$1 - headers=$2 - code=$3 - shift 3 - { - for hdr in $headers; do - echo "#include <$hdr>" - done - echo "int main(void) { $code; return 0; }" - } | check_$check "$@" -} - -check_cppflags(){ - log check_cppflags "$@" - check_cc "$@" < -int x; -EOF -} - -check_func(){ - log check_func "$@" - func=$1 - shift - disable $func - check_ld "cc" "$@" < -float foo(float f, float g) { return $func($args); } -int main(void){ return (int) foo; } -EOF -} - -check_func_headers(){ - log check_func_headers "$@" - headers=$1 - funcs=$2 - shift 2 - { - for hdr in $headers; do - echo "#include <$hdr>" - done - for func in $funcs; do - echo "long check_$func(void) { return (long) $func; }" - done - echo "int main(void) { return 0; }" - } | check_ld "cc" "$@" && enable $funcs && enable_safe $headers -} - -check_class_headers_cpp(){ - log check_class_headers_cpp "$@" - headers=$1 - classes=$2 - shift 2 - { - for hdr in $headers; do - echo "#include <$hdr>" - done - echo "int main(void) { " - i=1 - for class in $classes; do - echo "$class obj$i;" - i=$(expr $i + 1) - done - echo "return 0; }" - } | check_ld "cxx" "$@" && enable $funcs && enable_safe $headers -} - -check_cpp_condition(){ - log check_cpp_condition "$@" - header=$1 - condition=$2 - shift 2 - check_cpp "$@" < -#if !($condition) -#error "unsatisfied condition: $condition" -#endif -EOF -} - -check_lib(){ - log check_lib "$@" - header="$1" - func="$2" - shift 2 - check_header $header && check_func $func "$@" && add_extralibs "$@" -} - -check_lib2(){ - log check_lib2 "$@" - headers="$1" - funcs="$2" - shift 2 - check_func_headers "$headers" "$funcs" "$@" && add_extralibs "$@" -} - -check_lib_cpp(){ - log check_lib_cpp "$@" - headers="$1" - classes="$2" - shift 2 - check_class_headers_cpp "$headers" "$classes" "$@" && add_extralibs "$@" -} - -check_pkg_config(){ - log check_pkg_config "$@" - pkg="$1" - headers="$2" - funcs="$3" - shift 3 - check_cmd $pkg_config --exists --print-errors $pkg || return - pkg_cflags=$($pkg_config --cflags $pkg) - pkg_libs=$($pkg_config --libs $pkg) - check_func_headers "$headers" "$funcs" $pkg_cflags $pkg_libs "$@" && - set_safe ${pkg}_cflags $pkg_cflags && - set_safe ${pkg}_libs $pkg_libs -} - -check_exec(){ - check_ld "cc" "$@" && { enabled cross_compile || $TMPE >> $logfile 2>&1; } -} - -check_exec_crash(){ - code=$(cat) - - # exit() is not async signal safe. _Exit (C99) and _exit (POSIX) - # are safe but may not be available everywhere. Thus we use - # raise(SIGTERM) instead. The check is run in a subshell so we - # can redirect the "Terminated" message from the shell. SIGBUS - # is not defined by standard C so it is used conditionally. - - (check_exec "$@") >> $logfile 2>&1 < -static void sighandler(int sig){ - raise(SIGTERM); -} -int foo(void){ - $code -} -int (*func_ptr)(void) = foo; -int main(void){ - signal(SIGILL, sighandler); - signal(SIGFPE, sighandler); - signal(SIGSEGV, sighandler); -#ifdef SIGBUS - signal(SIGBUS, sighandler); -#endif - return func_ptr(); -} -EOF -} - -check_type(){ - log check_type "$@" - headers=$1 - type=$2 - shift 2 - disable_safe "$type" - check_code cc "$headers" "$type v" "$@" && enable_safe "$type" -} - -check_struct(){ - log check_struct "$@" - headers=$1 - struct=$2 - member=$3 - shift 3 - disable_safe "${struct}_${member}" - check_code cc "$headers" "const void *p = &(($struct *)0)->$member" "$@" && - enable_safe "${struct}_${member}" -} - -check_builtin(){ - log check_builtin "$@" - name=$1 - headers=$2 - builtin=$3 - shift 3 - disable "$name" - check_code ld "$headers" "$builtin" "cc" "$@" && enable "$name" -} - -require(){ - name="$1" - header="$2" - func="$3" - shift 3 - check_lib $header $func "$@" || die "ERROR: $name not found" -} - -require2(){ - name="$1" - headers="$2" - func="$3" - shift 3 - check_lib2 "$headers" $func "$@" || die "ERROR: $name not found" -} - -require_cpp(){ - 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) -} - -require_libfreetype(){ - log require_libfreetype "$@" - pkg="freetype2" - check_cmd $pkg_config --exists --print-errors $pkg \ - || die "ERROR: $pkg not found" - pkg_cflags=$($pkg_config --cflags $pkg) - pkg_libs=$($pkg_config --libs $pkg) - { - echo "#include " - echo "#include FT_FREETYPE_H" - echo "long check_func(void) { return (long) FT_Init_FreeType; }" - echo "int main(void) { return 0; }" - } | check_ld "cc" $pkg_cflags $pkg_libs \ - && set_safe ${pkg}_cflags $pkg_cflags \ - && set_safe ${pkg}_libs $pkg_libs \ - || die "ERROR: $pkg not found" - add_cflags $(get_safe ${pkg}_cflags) - add_extralibs $(get_safe ${pkg}_libs) -} - -hostcc_e(){ - eval printf '%s\\n' $HOSTCC_E -} - -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_cpp(){ - log check_host_cpp "$@" - cat > $TMPC - log_file $TMPC - check_cmd $host_cc $HOSTCPPFLAGS $HOSTCFLAGS "$@" $(hostcc_e $TMPO) $TMPC -} - -check_host_cppflags(){ - log check_host_cppflags "$@" - check_host_cc "$@" < -#if !($condition) -#error "unsatisfied condition: $condition" -#endif -EOF -} - -apply(){ - file=$1 - shift - "$@" < "$file" > "$file.tmp" && mv "$file.tmp" "$file" || rm "$file.tmp" -} - -cp_if_changed(){ - cmp -s "$1" "$2" && echo "$2 is unchanged" && return - mkdir -p "$(dirname $2)" - $cp_f "$1" "$2" -} - -# CONFIG_LIST contains configurable options, while HAVE_LIST is for -# system-dependent things. - -COMPONENT_LIST=" - bsfs - decoders - demuxers - encoders - filters - hwaccels - indevs - muxers - outdevs - parsers - protocols -" - -EXAMPLE_LIST=" - decoding_encoding_example - demuxing_decoding_example - filtering_audio_example - filtering_video_example - metadata_example - muxing_example - resampling_audio_example - scaling_video_example - transcode_aac_example -" - -EXTERNAL_LIBRARY_LIST=" - avisynth - bzlib - crystalhd - fontconfig - frei0r - gnutls - iconv - ladspa - libaacplus - libass - libbluray - libcaca - libcdio - libcelt - libdc1394 - libfaac - libfdk_aac - libflite - libfreetype - libgme - libgsm - libiec61883 - libilbc - libmodplug - libmp3lame - libnut - libopencore_amrnb - libopencore_amrwb - libopencv - libopenjpeg - libopus - libpulse - libquvi - librtmp - libschroedinger - libshine - libsoxr - libspeex - libssh - libstagefright_h264 - libtheora - libtwolame - libutvideo - libv4l2 - libvidstab - libvo_aacenc - libvo_amrwbenc - libvorbis - libvpx - libwavpack - libwebp - libx264 - libxavs - libxvid - libzmq - libzvbi - openal - opencl - openssl - x11grab - zlib -" - -DOCUMENT_LIST=" - doc - htmlpages - manpages - podpages - txtpages -" - -HWACCEL_LIST=" - dxva2 - vaapi - vda - vdpau - xvmc -" - -LIBRARY_LIST=" - avcodec - avdevice - avfilter - avformat - avresample - avutil - postproc - swresample - swscale -" - -PROGRAM_LIST=" - ffplay - ffprobe - ffserver - ffmpeg -" - -CONFIG_LIST=" - $COMPONENT_LIST - $DOCUMENT_LIST - $EXAMPLE_LIST - $EXTERNAL_LIBRARY_LIST - $HWACCEL_LIST - $LIBRARY_LIST - $PROGRAM_LIST - dct - dwt - error_resilience - fast_unaligned - fft - ftrapv - gpl - gray - hardcoded_tables - incompatible_libav_abi - incompatible_fork_abi - lsp - lzo - mdct - memalign_hack - memory_poisoning - network - nonfree - pic - raise_major - rdft - runtime_cpudetect - safe_bitstream_reader - shared - small - sram - static - swscale_alpha - thumb - version3 - xmm_clobber_test -" - -THREADS_LIST=' - pthreads - w32threads - os2threads -' - -ATOMICS_LIST=' - atomics_gcc - atomics_suncc - atomics_win32 -' - -ARCH_LIST=' - aarch64 - alpha - arm - avr32 - avr32_ap - avr32_uc - bfin - ia64 - m68k - mips - mips64 - parisc - ppc - ppc64 - s390 - sh4 - sparc - sparc64 - tilegx - tilepro - tomi - x86 - x86_32 - x86_64 -' - -ARCH_EXT_LIST_ARM=' - armv5te - armv6 - armv6t2 - neon - vfp - vfpv3 -' - -ARCH_EXT_LIST_X86=' - amd3dnow - amd3dnowext - avx - avx2 - fma4 - i686 - mmx - mmxext - sse - sse2 - sse3 - sse4 - sse42 - ssse3 -' - -ARCH_EXT_LIST=" - $ARCH_EXT_LIST_ARM - $ARCH_EXT_LIST_X86 - altivec - ppc4xx - vis - mipsfpu - mips32r2 - mipsdspr1 - mipsdspr2 -" - -HAVE_LIST_CMDLINE=' - inline_asm - symver - yasm -' - -HAVE_LIST_PUB=' - bigendian - fast_unaligned - incompatible_libav_abi - incompatible_fork_abi -' - -MATH_FUNCS=" - atanf - atan2f - cbrt - cbrtf - cosf - exp2 - exp2f - expf - isinf - isnan - ldexpf - llrint - llrintf - log2 - log2f - log10f - lrint - lrintf - powf - rint - round - roundf - sinf - trunc - truncf -" - -HAVE_LIST=" - $ARCH_EXT_LIST - $(add_suffix _external $ARCH_EXT_LIST) - $(add_suffix _inline $ARCH_EXT_LIST) - $HAVE_LIST_CMDLINE - $HAVE_LIST_PUB - $THREADS_LIST - $ATOMICS_LIST - $MATH_FUNCS - access - aligned_malloc - aligned_stack - alsa_asoundlib_h - altivec_h - arpa_inet_h - asm_mod_q - asm_mod_y - asm_types_h - atomic_cas_ptr - atomics_native - attribute_may_alias - attribute_packed - cdio_paranoia_h - cdio_paranoia_paranoia_h - CL_cl_h - clock_gettime - closesocket - CommandLineToArgvW - cpunop - CryptGenRandom - dcbzl - 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 - direct_h - dlfcn_h - dlopen - dos_paths - dxva_h - ebp_available - ebx_available - fast_64bit - fast_clz - fast_cmov - fcntl - fork - getaddrinfo - gethrtime - getopt - GetProcessAffinityMask - GetProcessMemoryInfo - GetProcessTimes - GetSystemTimeAsFileTime - getrusage - getservbyport - gettimeofday - glob - gnu_as - gnu_windres - gsm_h - ibm_asm - inet_aton - io_h - inline_asm_labels - isatty - jack_port_get_latency_range - kbhit - ldbrx - libc_msvcrt - libdc1394_1 - libdc1394_2 - local_aligned_16 - local_aligned_8 - localtime_r - loongson - lzo1x_999_compress - machine_ioctl_bt848_h - machine_ioctl_meteor_h - machine_rw_barrier - makeinfo - malloc_h - MapViewOfFile - memalign - MemoryBarrier - mkstemp - mm_empty - mmap - mprotect - nanosleep - openjpeg_1_5_openjpeg_h - PeekNamedPipe - perl - pod2man - poll_h - posix_memalign - pragma_deprecated - pthread_cancel - rdtsc - rsync_contimeout - sarestart - sched_getaffinity - sdl - SetConsoleTextAttribute - setmode - setrlimit - Sleep - sndio_h - socklen_t - soundcard_h - strerror_r - struct_addrinfo - struct_group_source_req - struct_ip_mreq_source - struct_ipv6_mreq - struct_pollfd - struct_rusage_ru_maxrss - struct_sctp_event_subscribe - struct_sockaddr_in6 - struct_sockaddr_sa_len - struct_sockaddr_storage - struct_stat_st_mtim_tv_nsec - struct_v4l2_frmivalenum_discrete - symver_asm_label - symver_gnu_asm - sync_val_compare_and_swap - sysconf - sysctl - sys_mman_h - sys_param_h - sys_resource_h - sys_select_h - sys_soundcard_h - sys_time_h - sys_un_h - sys_videoio_h - termios_h - texi2html - threads - unistd_h - usleep - vdpau_x11 - vfp_args - VirtualAlloc - windows_h - winsock2_h - xform_asm - xlib - xmm_clobbers -" - -# options emitted with CONFIG_ prefix but not available on the command line -CONFIG_EXTRA=" - aandcttables - ac3dsp - audio_frame_queue - dsputil - exif - frame_thread_encoder - gcrypt - golomb - gplv3 - h263dsp - h264chroma - h264dsp - h264pred - h264qpel - hpeldsp - huffman - lgplv3 - lpc - mpegaudio - mpegaudiodsp - mpegvideo - mpegvideoenc - nettle - rangecoder - riffdec - riffenc - rtpdec - rtpenc_chain - sinewin - videodsp - vp3dsp -" - -CMDLINE_SELECT=" - $ARCH_EXT_LIST - $CONFIG_LIST - $HAVE_LIST_CMDLINE - $THREADS_LIST - asm - cross_compile - debug - extra_warnings - logging - lto - optimizations - rpath - stripping -" - -PATHS_LIST=' - bindir - datadir - docdir - incdir - libdir - mandir - prefix - shlibdir -' - -CMDLINE_SET=" - $PATHS_LIST - ar - arch - as - assert_level - build_suffix - cc - cpu - cross_prefix - cxx - dep_cc - extra_version - host_cc - host_cflags - host_ld - host_ldflags - host_libs - host_os - install - ld - logfile - malloc_prefix - nm - optflags - pkg_config - progs_suffix - random_seed - samples - strip - sysinclude - sysroot - target_exec - target_os - target_path - target_samples - tempprefix - toolchain - valgrind - yasmexe -" - -CMDLINE_APPEND=" - extra_cflags - extra_cxxflags - host_cppflags -" - -# code dependency declarations - -# architecture extensions - -armv5te_deps="arm" -armv6_deps="arm" -armv6t2_deps="arm" -neon_deps="arm" -vfp_deps="arm" -vfpv3_deps="vfp" - -map 'eval ${v}_inline_deps=inline_asm' $ARCH_EXT_LIST_ARM - -mipsfpu_deps="mips" -mips32r2_deps="mips" -mipsdspr1_deps="mips" -mipsdspr2_deps="mips" - -altivec_deps="ppc" -ppc4xx_deps="ppc" - -vis_deps="sparc" - -cpunop_deps="i686" -x86_64_select="i686" -x86_64_suggest="fast_cmov" - -amd3dnow_deps="mmx" -amd3dnowext_deps="amd3dnow" -mmx_deps="x86" -mmxext_deps="mmx" -sse_deps="mmxext" -sse2_deps="sse" -sse3_deps="sse2" -ssse3_deps="sse3" -sse4_deps="ssse3" -sse42_deps="sse4" -avx_deps="sse42" -fma4_deps="avx" -avx2_deps="avx" - -mmx_external_deps="yasm" -mmx_inline_deps="inline_asm" -mmx_suggest="mmx_external mmx_inline" - -for ext in $(filter_out mmx $ARCH_EXT_LIST_X86); do - eval dep=\$${ext}_deps - eval ${ext}_external_deps='"${dep}_external"' - eval ${ext}_inline_deps='"${dep}_inline"' - eval ${ext}_suggest='"${ext}_external ${ext}_inline"' -done - -aligned_stack_if_any="ppc x86" -fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" -fast_clz_if_any="alpha avr32 mips ppc x86" -fast_unaligned_if_any="ppc x86" - -need_memalign="altivec neon sse" - -# system capabilities -log2_deps="!libc_msvcrt" - -symver_if_any="symver_asm_label symver_gnu_asm" - -# threading support -atomics_gcc_if="sync_val_compare_and_swap" -atomics_suncc_if="atomic_cas_ptr machine_rw_barrier" -atomics_win32_if="MemoryBarrier" -atomics_native_if_any="$ATOMICS_LIST" -threads_if_any="$THREADS_LIST" - -# subsystems -dct_select="rdft" -error_resilience_select="dsputil" -frame_thread_encoder_deps="encoders threads" -lpc_select="dsputil" -mdct_select="fft" -rdft_select="fft" -mpegaudio_select="mpegaudiodsp" -mpegaudiodsp_select="dct" -mpegvideo_select="dsputil h264chroma hpeldsp videodsp" -mpegvideoenc_select="mpegvideo" - -# decoders / encoders -aac_decoder_select="mdct sinewin" -aac_encoder_select="audio_frame_queue mdct sinewin" -aac_latm_decoder_select="aac_decoder aac_latm_parser" -ac3_decoder_select="mdct ac3dsp ac3_parser dsputil" -ac3_encoder_select="mdct ac3dsp dsputil" -ac3_fixed_encoder_select="mdct ac3dsp dsputil" -aic_decoder_select="dsputil golomb" -alac_encoder_select="lpc" -als_decoder_select="dsputil" -amrnb_decoder_select="lsp" -amrwb_decoder_select="lsp" -amv_decoder_select="dsputil hpeldsp exif" -amv_encoder_select="aandcttables" -ape_decoder_select="dsputil" -asv1_decoder_select="dsputil" -asv1_encoder_select="dsputil" -asv2_decoder_select="dsputil" -asv2_encoder_select="dsputil" -atrac1_decoder_select="mdct sinewin" -atrac3_decoder_select="mdct" -avrn_decoder_select="exif" -bink_decoder_select="dsputil hpeldsp" -binkaudio_dct_decoder_select="mdct rdft dct sinewin" -binkaudio_rdft_decoder_select="mdct rdft sinewin" -cavs_decoder_select="dsputil golomb h264chroma videodsp" -cllc_decoder_select="dsputil" -comfortnoise_encoder_select="lpc" -cook_decoder_select="dsputil mdct sinewin" -cscd_decoder_select="lzo" -cscd_decoder_suggest="zlib" -dca_decoder_select="mdct" -dirac_decoder_select="dsputil dwt golomb videodsp" -dnxhd_decoder_select="dsputil" -dnxhd_encoder_select="aandcttables dsputil mpegvideoenc" -dvvideo_decoder_select="dsputil" -dvvideo_encoder_select="dsputil" -dxa_decoder_select="zlib" -eac3_decoder_select="ac3_decoder" -eac3_encoder_select="ac3_encoder" -eamad_decoder_select="aandcttables dsputil mpegvideo" -eatgq_decoder_select="aandcttables" -eatqi_decoder_select="aandcttables error_resilience mpegvideo" -exr_decoder_select="zlib" -ffv1_decoder_select="dsputil golomb rangecoder" -ffv1_encoder_select="dsputil rangecoder" -ffvhuff_decoder_select="dsputil" -ffvhuff_encoder_select="dsputil huffman" -flac_decoder_select="golomb" -flac_encoder_select="dsputil golomb lpc" -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" -fourxm_decoder_select="dsputil" -fraps_decoder_select="dsputil huffman" -g2m_decoder_select="dsputil zlib" -g729_decoder_select="dsputil" -h261_decoder_select="error_resilience mpegvideo" -h261_encoder_select="aandcttables mpegvideoenc" -h263_decoder_select="error_resilience h263_parser h263dsp mpegvideo" -h263_encoder_select="aandcttables h263dsp mpegvideoenc" -h263i_decoder_select="h263_decoder" -h263p_encoder_select="h263_encoder" -h264_decoder_select="golomb h264chroma h264dsp h264pred h264qpel videodsp" -h264_decoder_suggest="error_resilience" -hevc_decoder_select="dsputil golomb videodsp" -huffyuv_decoder_select="dsputil" -huffyuv_encoder_select="dsputil huffman" -iac_decoder_select="dsputil fft mdct sinewin" -imc_decoder_select="dsputil fft mdct sinewin" -indeo3_decoder_select="hpeldsp" -interplay_video_decoder_select="hpeldsp" -jpegls_decoder_select="dsputil golomb hpeldsp exif" -jpegls_encoder_select="golomb" -jv_decoder_select="dsputil" -lagarith_decoder_select="dsputil" -ljpeg_encoder_select="aandcttables mpegvideoenc" -loco_decoder_select="golomb" -mdec_decoder_select="dsputil error_resilience mpegvideo" -metasound_decoder_select="lsp mdct sinewin" -mimic_decoder_select="dsputil hpeldsp" -mjpeg_decoder_select="dsputil hpeldsp exif" -mjpegb_decoder_select="dsputil hpeldsp exif" -mjpeg_encoder_select="aandcttables dsputil mpegvideoenc" -mlp_decoder_select="dsputil mlp_parser" -motionpixels_decoder_select="dsputil" -mp1_decoder_select="mpegaudio" -mp1float_decoder_select="mpegaudio" -mp2_decoder_select="mpegaudio" -mp2float_decoder_select="mpegaudio" -mp3_decoder_select="mpegaudio" -mp3adu_decoder_select="mpegaudio" -mp3adufloat_decoder_select="mpegaudio" -mp3float_decoder_select="mpegaudio" -mp3on4_decoder_select="mpegaudio" -mp3on4float_decoder_select="mpegaudio" -mpc7_decoder_select="dsputil mpegaudiodsp" -mpc8_decoder_select="dsputil mpegaudiodsp" -mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h" -mpeg_xvmc_decoder_select="mpeg2video_decoder" -mpeg1video_decoder_select="error_resilience mpegvideo" -mpeg1video_encoder_select="aandcttables mpegvideoenc" -mpeg2video_decoder_select="error_resilience mpegvideo" -mpeg2video_encoder_select="aandcttables mpegvideoenc" -mpeg4_decoder_select="h263_decoder mpeg4video_parser" -mpeg4_encoder_select="h263_encoder" -msmpeg4v1_decoder_select="h263_decoder" -msmpeg4v2_decoder_select="h263_decoder" -msmpeg4v2_encoder_select="h263_encoder" -msmpeg4v3_decoder_select="h263_decoder" -msmpeg4v3_encoder_select="h263_encoder" -mss2_decoder_select="error_resilience vc1_decoder" -mxpeg_decoder_select="dsputil hpeldsp exif" -nellymoser_decoder_select="mdct sinewin" -nellymoser_encoder_select="audio_frame_queue mdct sinewin" -nuv_decoder_select="dsputil lzo" -png_decoder_select="zlib" -png_encoder_select="dsputil zlib" -prores_decoder_select="dsputil" -prores_encoder_select="dsputil" -qcelp_decoder_select="lsp" -qdm2_decoder_select="mdct rdft mpegaudiodsp" -ra_144_encoder_select="audio_frame_queue lpc" -ralf_decoder_select="golomb" -rtjpeg_decoder_select="dsputil" -rv10_decoder_select="error_resilience h263_decoder h263dsp" -rv10_encoder_select="h263_encoder" -rv20_decoder_select="error_resilience h263_decoder h263dsp" -rv20_encoder_select="h263_encoder" -rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp" -rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp" -shorten_decoder_select="golomb" -sipr_decoder_select="lsp" -snow_decoder_select="dsputil dwt h264qpel hpeldsp rangecoder" -snow_encoder_select="aandcttables dsputil dwt h264qpel hpeldsp mpegvideoenc rangecoder" -sonic_decoder_select="golomb" -sonic_encoder_select="golomb" -sonic_ls_encoder_select="golomb" -sp5x_decoder_select="dsputil hpeldsp exif" -svq1_decoder_select="hpeldsp" -svq1_encoder_select="aandcttables dsputil hpeldsp mpegvideoenc" -svq3_decoder_select="golomb h264chroma h264dsp h264pred h264qpel hpeldsp mpegvideo videodsp" -svq3_decoder_suggest="error_resilience zlib" -tak_decoder_select="dsputil" -theora_decoder_select="vp3_decoder" -tiff_decoder_suggest="zlib" -tiff_encoder_suggest="zlib" -thp_decoder_select="dsputil hpeldsp exif" -truehd_decoder_select="mlp_parser" -truemotion2_decoder_select="dsputil" -truespeech_decoder_select="dsputil" -tscc_decoder_select="zlib" -twinvq_decoder_select="mdct lsp sinewin" -utvideo_decoder_select="dsputil" -utvideo_encoder_select="dsputil huffman" -vble_decoder_select="dsputil" -vc1_decoder_select="error_resilience h263_decoder h264chroma h264qpel" -vc1image_decoder_select="vc1_decoder" -vorbis_decoder_select="mdct" -vorbis_encoder_select="mdct" -vp3_decoder_select="hpeldsp vp3dsp videodsp" -vp5_decoder_select="h264chroma hpeldsp videodsp vp3dsp" -vp6_decoder_select="h264chroma hpeldsp huffman videodsp vp3dsp" -vp6a_decoder_select="vp6_decoder" -vp6f_decoder_select="vp6_decoder" -vp8_decoder_select="h264pred videodsp" -vp9_decoder_select="videodsp" -webp_decoder_select="vp8_decoder" -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_decoder_select="h263_decoder" -wmv1_encoder_select="h263_encoder" -wmv2_decoder_select="h263_decoder videodsp" -wmv2_encoder_select="h263_encoder" -wmv3_decoder_select="vc1_decoder" -wmv3image_decoder_select="wmv3_decoder" -zerocodec_decoder_select="zlib" -zlib_decoder_select="zlib" -zlib_encoder_select="zlib" -zmbv_decoder_select="zlib" -zmbv_encoder_select="zlib" - -# hardware accelerators -crystalhd_deps="libcrystalhd_libcrystalhd_if_h" -dxva2_deps="dxva2api_h" -vaapi_deps="va_va_h" -vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads" -vda_extralibs="-framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore" -vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h" -xvmc_deps="X11_extensions_XvMClib_h" - -h263_vaapi_hwaccel_deps="vaapi" -h263_vaapi_hwaccel_select="h263_decoder" -h263_vdpau_hwaccel_deps="vdpau" -h263_vdpau_hwaccel_select="h263_decoder" -h264_crystalhd_decoder_select="crystalhd h264_mp4toannexb_bsf h264_parser" -h264_dxva2_hwaccel_deps="dxva2" -h264_dxva2_hwaccel_select="h264_decoder" -h264_vaapi_hwaccel_deps="vaapi" -h264_vaapi_hwaccel_select="h264_decoder" -h264_vda_decoder_deps="vda" -h264_vda_decoder_select="h264_decoder" -h264_vda_hwaccel_deps="vda" -h264_vda_hwaccel_select="h264_decoder" -h264_vdpau_decoder_deps="vdpau" -h264_vdpau_decoder_select="h264_decoder" -h264_vdpau_hwaccel_deps="vdpau" -h264_vdpau_hwaccel_select="h264_decoder" -mpeg_vdpau_decoder_deps="vdpau" -mpeg_vdpau_decoder_select="mpeg2video_decoder" -mpeg_xvmc_hwaccel_deps="xvmc" -mpeg_xvmc_hwaccel_select="mpeg2video_decoder" -mpeg1_vdpau_decoder_deps="vdpau" -mpeg1_vdpau_decoder_select="mpeg1video_decoder" -mpeg1_vdpau_hwaccel_deps="vdpau" -mpeg1_vdpau_hwaccel_select="mpeg1video_decoder" -mpeg1_xvmc_hwaccel_deps="xvmc" -mpeg1_xvmc_hwaccel_select="mpeg1video_decoder" -mpeg2_crystalhd_decoder_select="crystalhd" -mpeg2_dxva2_hwaccel_deps="dxva2" -mpeg2_dxva2_hwaccel_select="mpeg2video_decoder" -mpeg2_vaapi_hwaccel_deps="vaapi" -mpeg2_vaapi_hwaccel_select="mpeg2video_decoder" -mpeg2_vdpau_hwaccel_deps="vdpau" -mpeg2_vdpau_hwaccel_select="mpeg2video_decoder" -mpeg2_xvmc_hwaccel_deps="xvmc" -mpeg2_xvmc_hwaccel_select="mpeg2video_decoder" -mpeg4_crystalhd_decoder_select="crystalhd" -mpeg4_vaapi_hwaccel_deps="vaapi" -mpeg4_vaapi_hwaccel_select="mpeg4_decoder" -mpeg4_vdpau_decoder_deps="vdpau" -mpeg4_vdpau_decoder_select="mpeg4_decoder" -mpeg4_vdpau_hwaccel_deps="vdpau" -mpeg4_vdpau_hwaccel_select="mpeg4_decoder" -msmpeg4_crystalhd_decoder_select="crystalhd" -vc1_crystalhd_decoder_select="crystalhd" -vc1_dxva2_hwaccel_deps="dxva2" -vc1_dxva2_hwaccel_select="vc1_decoder" -vc1_vaapi_hwaccel_deps="vaapi" -vc1_vaapi_hwaccel_select="vc1_decoder" -vc1_vdpau_decoder_deps="vdpau" -vc1_vdpau_decoder_select="vc1_decoder" -vc1_vdpau_hwaccel_deps="vdpau" -vc1_vdpau_hwaccel_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" -wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel" - -# parsers -h264_parser_select="golomb h264chroma h264dsp h264pred h264qpel videodsp" -hevc_parser_select="hevc_decoder" -mpeg4video_parser_select="error_resilience mpegvideo" -mpegvideo_parser_select="error_resilience mpegvideo" -vc1_parser_select="mpegvideo" - -# external libraries -libaacplus_encoder_deps="libaacplus" -libcelt_decoder_deps="libcelt" -libfaac_encoder_deps="libfaac" -libfaac_encoder_select="audio_frame_queue" -libfdk_aac_decoder_deps="libfdk_aac" -libfdk_aac_encoder_deps="libfdk_aac" -libfdk_aac_encoder_select="audio_frame_queue" -libgme_demuxer_deps="libgme" -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" -libmp3lame_encoder_deps="libmp3lame" -libmp3lame_encoder_select="audio_frame_queue" -libopencore_amrnb_decoder_deps="libopencore_amrnb" -libopencore_amrnb_encoder_deps="libopencore_amrnb" -libopencore_amrnb_encoder_select="audio_frame_queue" -libopencore_amrwb_decoder_deps="libopencore_amrwb" -libopenjpeg_decoder_deps="libopenjpeg" -libopenjpeg_encoder_deps="libopenjpeg" -libopus_decoder_deps="libopus" -libopus_encoder_deps="libopus" -libopus_encoder_select="audio_frame_queue" -libquvi_demuxer_deps="libquvi" -libschroedinger_decoder_deps="libschroedinger" -libschroedinger_encoder_deps="libschroedinger" -libshine_encoder_deps="libshine" -libshine_encoder_select="audio_frame_queue" -libspeex_decoder_deps="libspeex" -libspeex_encoder_deps="libspeex" -libspeex_encoder_select="audio_frame_queue" -libstagefright_h264_decoder_deps="libstagefright_h264" -libtheora_encoder_deps="libtheora" -libtwolame_encoder_deps="libtwolame" -libvo_aacenc_encoder_deps="libvo_aacenc" -libvo_aacenc_encoder_select="audio_frame_queue" -libvo_amrwbenc_encoder_deps="libvo_amrwbenc" -libvorbis_decoder_deps="libvorbis" -libvorbis_encoder_deps="libvorbis" -libvorbis_encoder_select="audio_frame_queue" -libvpx_vp8_decoder_deps="libvpx" -libvpx_vp8_encoder_deps="libvpx" -libvpx_vp9_decoder_deps="libvpx" -libvpx_vp9_encoder_deps="libvpx" -libwavpack_encoder_deps="libwavpack" -libwebp_encoder_deps="libwebp" -libx264_encoder_deps="libx264" -libx264rgb_encoder_deps="libx264" -libxavs_encoder_deps="libxavs" -libxvid_encoder_deps="libxvid" -libutvideo_decoder_deps="libutvideo" -libutvideo_encoder_deps="libutvideo" -libzvbi_teletext_decoder_deps="libzvbi" - -# demuxers / muxers -ac3_demuxer_select="ac3_parser" -asf_demuxer_select="riffdec" -asf_muxer_select="riffenc" -asf_stream_muxer_select="asf_muxer" -avi_demuxer_select="riffdec" -avi_muxer_select="riffenc" -avisynth_demuxer_deps="avisynth" -avisynth_demuxer_select="riffdec" -caf_demuxer_select="riffdec" -dirac_demuxer_select="dirac_parser" -dts_demuxer_select="dca_parser" -dtshd_demuxer_select="dca_parser" -dxa_demuxer_select="riffdec" -eac3_demuxer_select="ac3_parser" -f4v_muxer_select="mov_muxer" -flac_demuxer_select="flac_parser" -hds_muxer_select="flv_muxer" -hls_muxer_select="mpegts_muxer" -ipod_muxer_select="mov_muxer" -ismv_muxer_select="mov_muxer" -libnut_demuxer_deps="libnut" -libnut_muxer_deps="libnut" -matroska_audio_muxer_select="matroska_muxer" -matroska_demuxer_select="riffdec" -matroska_demuxer_suggest="bzlib lzo zlib" -matroska_muxer_select="riffenc" -mmf_muxer_select="riffenc" -mov_demuxer_select="riffdec" -mov_demuxer_suggest="zlib" -mov_muxer_select="riffenc rtpenc_chain" -mp3_demuxer_select="mpegaudio_parser" -mp4_muxer_select="mov_muxer" -mpegts_muxer_select="adts_muxer latm_muxer" -mpegtsraw_demuxer_select="mpegts_demuxer" -mxf_d10_muxer_select="mxf_muxer" -nut_muxer_select="riffenc" -nuv_demuxer_select="riffdec" -ogg_demuxer_select="golomb" -psp_muxer_select="mov_muxer" -rtp_demuxer_select="sdp_demuxer" -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 rtpenc_chain" -sap_demuxer_select="sdp_demuxer" -sap_muxer_select="rtp_muxer rtp_protocol rtpenc_chain" -sdp_demuxer_select="rtpdec" -smoothstreaming_muxer_select="ismv_muxer" -spdif_muxer_select="aac_parser" -tak_demuxer_select="tak_parser" -tg2_muxer_select="mov_muxer" -tgp_muxer_select="mov_muxer" -vobsub_demuxer_select="mpegps_demuxer" -w64_demuxer_select="wav_demuxer" -w64_muxer_select="wav_muxer" -wav_demuxer_select="riffdec" -wav_muxer_select="riffenc" -webm_muxer_select="riffenc" -wtv_demuxer_select="riffdec" -xmv_demuxer_select="riffdec" -xwma_demuxer_select="riffdec" - -# indevs / outdevs -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" -caca_outdev_deps="libcaca" -dshow_indev_deps="IBaseFilter" -dshow_indev_extralibs="-lpsapi -lole32 -lstrmiids -luuid" -dv1394_indev_deps="dv1394" -dv1394_indev_select="dv_demuxer" -fbdev_indev_deps="linux_fb_h" -fbdev_outdev_deps="linux_fb_h" -iec61883_indev_deps="libiec61883" -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" -pulse_outdev_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" -v4l2_outdev_deps_any="linux_videodev2_h sys_videoio_h" -vfwcap_indev_deps="capCreateCaptureWindow vfwcap_defines" -vfwcap_indev_extralibs="-lavicap32" -xv_outdev_deps="X11_extensions_Xvlib_h XvGetPortAttribute" -xv_outdev_extralibs="-lXv -lX11 -lXext" -x11grab_indev_deps="x11grab" - -# protocols -bluray_protocol_deps="libbluray" -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" -ftp_protocol_select="tcp_protocol" -gopher_protocol_select="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" -libssh_protocol_deps="libssh" -mmsh_protocol_select="http_protocol" -mmst_protocol_select="network" -rtmp_protocol_deps="!librtmp_protocol" -rtmp_protocol_select="tcp_protocol" -rtmpe_protocol_select="ffrtmpcrypt_protocol" -rtmps_protocol_deps="!librtmp_protocol" -rtmps_protocol_select="tls_protocol" -rtmpt_protocol_select="ffrtmphttp_protocol" -rtmpte_protocol_select="ffrtmpcrypt_protocol ffrtmphttp_protocol" -rtmpts_protocol_select="ffrtmphttp_protocol https_protocol" -rtp_protocol_select="udp_protocol" -sctp_protocol_deps="struct_sctp_event_subscribe" -sctp_protocol_select="network" -srtp_protocol_select="rtp_protocol" -tcp_protocol_select="network" -tls_protocol_deps_any="openssl gnutls" -tls_protocol_select="tcp_protocol" -udp_protocol_select="network" -unix_protocol_deps="sys_un_h" -unix_protocol_select="network" - -# filters -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" -atempo_filter_select="rdft" -azmq_filter_deps="libzmq" -blackframe_filter_deps="gpl" -boxblur_filter_deps="gpl" -colormatrix_filter_deps="gpl" -cropdetect_filter_deps="gpl" -dctdnoiz_filter_deps="avcodec" -dctdnoiz_filter_select="fft" -delogo_filter_deps="gpl" -deshake_filter_deps="avcodec" -deshake_filter_select="dsputil" -drawtext_filter_deps="libfreetype" -ebur128_filter_deps="gpl" -flite_filter_deps="libflite" -frei0r_filter_deps="frei0r dlopen" -frei0r_filter_extralibs='$ldl' -frei0r_src_filter_deps="frei0r dlopen" -frei0r_src_filter_extralibs='$ldl' -geq_filter_deps="gpl" -histeq_filter_deps="gpl" -hqdn3d_filter_deps="gpl" -interlace_filter_deps="gpl" -kerndeint_filter_deps="gpl" -ladspa_filter_deps="ladspa dlopen" -mcdeint_filter_deps="avcodec gpl" -movie_filter_deps="avcodec avformat" -mp_filter_deps="gpl avcodec swscale inline_asm" -mpdecimate_filter_deps="gpl avcodec" -mptestsrc_filter_deps="gpl" -negate_filter_deps="lut_filter" -perspective_filter_deps="gpl" -resample_filter_deps="avresample" -ocv_filter_deps="libopencv" -owdenoise_filter_deps="gpl" -pan_filter_deps="swresample" -phase_filter_deps="gpl" -pp_filter_deps="gpl postproc" -pullup_filter_deps="gpl" -removelogo_filter_deps="avcodec avformat swscale" -sab_filter_deps="gpl swscale" -scale_filter_deps="swscale" -smartblur_filter_deps="gpl swscale" -showspectrum_filter_deps="avcodec" -showspectrum_filter_select="rdft" -spp_filter_deps="gpl avcodec" -spp_filter_select="fft" -stereo3d_filter_deps="gpl" -subtitles_filter_deps="avformat avcodec libass" -super2xsai_filter_deps="gpl" -tinterlace_filter_deps="gpl" -vidstabdetect_filter_deps="libvidstab" -vidstabtransform_filter_deps="libvidstab" -yadif_filter_deps="gpl" -pixfmts_super2xsai_test_deps="super2xsai_filter" -tinterlace_merge_test_deps="tinterlace_filter" -tinterlace_pad_test_deps="tinterlace_filter" -zmq_filter_deps="libzmq" - -# examples -decoding_encoding_example_deps="avcodec avutil" -demuxing_decoding_example_deps="avcodec avformat avutil" -filtering_audio_example_deps="avfilter avcodec avformat avutil" -filtering_video_example_deps="avfilter avcodec avformat avutil" -metadata_example_deps="avformat avutil" -muxing_example_deps="avcodec avformat avutil swscale" -resampling_audio_example_deps="avutil swresample" -scaling_video_example_deps="avutil swscale" -transcode_aac_example_deps="avcodec avformat swresample" - -# libraries -avcodec_deps="avutil" -avdevice_deps="avutil avcodec avformat" -avfilter_deps="avutil" -avformat_deps="avutil avcodec" -avresample_deps="avutil" -postproc_deps="avutil gpl" -swscale_deps="avutil" - -# programs -ffmpeg_deps="avcodec avfilter avformat swresample" -ffmpeg_select="aformat_filter anull_filter atrim_filter format_filter - null_filter - setpts_filter trim_filter" -ffplay_deps="avcodec avformat swscale swresample sdl" -ffplay_select="rdft crop_filter" -ffprobe_deps="avcodec avformat" -ffserver_deps="avformat fork sarestart" -ffserver_select="ffm_muxer rtp_protocol rtsp_demuxer" -ffserver_extralibs='$ldl' - -# documentation -podpages_deps="perl" -manpages_deps="perl pod2man" -htmlpages_deps="perl texi2html" -txtpages_deps="perl makeinfo" -doc_deps_any="manpages htmlpages podpages txtpages" - -# default parameters - -logfile="config.log" - -# installation paths -prefix_default="/usr/local" -bindir_default='${prefix}/bin' -datadir_default='${prefix}/share/ffmpeg' -docdir_default='${prefix}/share/doc/ffmpeg' -incdir_default='${prefix}/include' -libdir_default='${prefix}/lib' -mandir_default='${prefix}/share/man' -shlibdir_default="$libdir_default" - -# toolchain -ar_default="ar" -cc_default="gcc" -cxx_default="g++" -host_cc_default="gcc" -cp_f="cp -f" -install="install" -ln_s="ln -s -f" -nm_default="nm -g" -objformat="elf" -pkg_config_default=pkg-config -ranlib="ranlib" -strip_default="strip" -yasmexe_default="yasm" -windres_default="windres" - -nogas=":" - -# machine -arch_default=$(uname -m) -cpu="generic" - -# OS -target_os_default=$(tolower $(uname -s)) -host_os=$target_os_default - -# configurable options -enable $PROGRAM_LIST -enable $DOCUMENT_LIST -enable $EXAMPLE_LIST -enable $(filter_out avresample $LIBRARY_LIST) -enable stripping - -enable asm -enable debug -enable doc -enable optimizations -enable runtime_cpudetect -enable safe_bitstream_reader -enable static -enable swscale_alpha - -# Enable hwaccels by default. -enable dxva2 vaapi vdpau xvmc - -# build settings -SHFLAGS='-shared -Wl,-soname,$$(@F)' -LIBPREF="lib" -LIBSUF=".a" -FULLNAME='$(NAME)$(BUILDSUF)' -LIBNAME='$(LIBPREF)$(FULLNAME)$(LIBSUF)' -SLIBPREF="lib" -SLIBSUF=".so" -SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)' -SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)' -SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' -LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' -SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)' -SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)' - -asflags_filter=echo -cflags_filter=echo -ldflags_filter=echo - -AS_C='-c' -AS_O='-o $@' -CC_C='-c' -CC_E='-E -o $@' -CC_O='-o $@' -CXX_C='-c' -CXX_O='-o $@' -LD_O='-o $@' -LD_LIB='-l%' -LD_PATH='-L' -HOSTCC_C='-c' -HOSTCC_E='-E -o $@' -HOSTCC_O='-o $@' -HOSTLD_O='-o $@' - -host_cflags='-O3' -host_cppflags='-D_ISOC99_SOURCE' -host_libs='-lm' -host_cflags_filter=echo -host_ldflags_filter=echo - -target_path='$(CURDIR)' - -# since the object filename is not given with the -MM flag, the compiler -# is only able to print the basename, and we must add the path ourselves -DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o," > $(@:.o=.d)' -DEPFLAGS='-MM' - -# find source path -if test -f configure; then - source_path=. -else - source_path=$(cd $(dirname "$0"); pwd) - echo "$source_path" | grep -q '[[:blank:]]' && - die "Out of tree builds are impossible with whitespace in source path." - test -e "$source_path/config.h" && - die "Out of tree builds are impossible with config.h in source dir." -fi - -for v in "$@"; do - r=${v#*=} - l=${v%"$r"} - r=$(sh_quote "$r") - FFMPEG_CONFIGURATION="${FFMPEG_CONFIGURATION# } ${l}${r}" -done - -find_things(){ - thing=$1 - pattern=$2 - file=$source_path/$3 - sed -n "s/^[^#]*$pattern.*([^,]*, *\([^,]*\)\(,.*\)*).*/\1_$thing/p" "$file" -} - -ENCODER_LIST=$(find_things encoder ENC libavcodec/allcodecs.c) -DECODER_LIST=$(find_things decoder DEC libavcodec/allcodecs.c) -HWACCEL_LIST=$(find_things hwaccel HWACCEL libavcodec/allcodecs.c) -PARSER_LIST=$(find_things parser PARSER libavcodec/allcodecs.c) -BSF_LIST=$(find_things bsf BSF libavcodec/allcodecs.c) -MUXER_LIST=$(find_things muxer _MUX libavformat/allformats.c) -DEMUXER_LIST=$(find_things demuxer DEMUX libavformat/allformats.c) -OUTDEV_LIST=$(find_things outdev OUTDEV libavdevice/alldevices.c) -INDEV_LIST=$(find_things indev _IN libavdevice/alldevices.c) -PROTOCOL_LIST=$(find_things protocol PROTOCOL libavformat/allformats.c) -FILTER_LIST=$(find_things filter FILTER libavfilter/allfilters.c) - -ALL_COMPONENTS=" - $BSF_LIST - $DECODER_LIST - $DEMUXER_LIST - $ENCODER_LIST - $FILTER_LIST - $HWACCEL_LIST - $INDEV_LIST - $MUXER_LIST - $OUTDEV_LIST - $PARSER_LIST - $PROTOCOL_LIST -" - -for n in $COMPONENT_LIST; do - v=$(toupper ${n%s})_LIST - eval enable \$$v - eval ${n}_if_any="\$$v" -done - -enable $ARCH_EXT_LIST - -die_unknown(){ - echo "Unknown option \"$1\"." - echo "See $0 --help for available options." - exit 1 -} - -print_3_columns() { - cat | tr ' ' '\n' | sort | pr -r -3 -t -} - -show_list() { - suffix=_$1 - shift - echo $* | sed s/$suffix//g | print_3_columns - exit 0 -} - -rand_list(){ - IFS=', ' - set -- $* - unset IFS - for thing; do - comp=${thing%:*} - prob=${thing#$comp} - prob=${prob#:} - is_in ${comp} $COMPONENT_LIST && eval comp=\$$(toupper ${comp%s})_LIST - echo "prob ${prob:-0.5}" - printf '%s\n' $comp - done -} - -do_random(){ - action=$1 - shift - random_seed=$(awk "BEGIN { srand($random_seed); print srand() }") - $action $(rand_list "$@" | awk "BEGIN { srand($random_seed) } \$1 == \"prob\" { prob = \$2; next } rand() < prob { print }") -} - -for opt do - optval="${opt#*=}" - case "$opt" in - --extra-ldflags=*) - add_ldflags $optval - ;; - --extra-libs=*) - add_extralibs $optval - ;; - --disable-devices) - disable $INDEV_LIST $OUTDEV_LIST - ;; - --enable-debug=*) - debuglevel="$optval" - ;; - --disable-programs) - disable $PROGRAM_LIST - ;; - --disable-everything) - map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST - ;; - --disable-all) - map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST - disable $LIBRARY_LIST $PROGRAM_LIST doc - ;; - --enable-random|--disable-random) - action=${opt%%-random} - do_random ${action#--} $COMPONENT_LIST - ;; - --enable-random=*|--disable-random=*) - action=${opt%%-random=*} - do_random ${action#--} $optval - ;; - --enable-*=*|--disable-*=*) - eval $(echo "${opt%%=*}" | sed 's/--/action=/;s/-/ thing=/') - is_in "${thing}s" $COMPONENT_LIST || die_unknown "$opt" - eval list=\$$(toupper $thing)_LIST - name=$(echo "${optval}" | sed "s/,/_${thing}|/g")_${thing} - list=$(filter "$name" $list) - [ "$list" = "" ] && warn "Option $opt did not match anything" - $action $list - ;; - --enable-?*|--disable-?*) - eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g') - if is_in $option $COMPONENT_LIST; then - test $action = disable && action=unset - eval $action \$$(toupper ${option%s})_LIST - elif is_in $option $CMDLINE_SELECT; then - $action $option - else - die_unknown $opt - fi - ;; - --list-*) - NAME="${opt#--list-}" - is_in $NAME $COMPONENT_LIST || die_unknown $opt - NAME=${NAME%s} - eval show_list $NAME \$$(toupper $NAME)_LIST - ;; - --help|-h) show_help - ;; - --fatal-warnings) enable fatal_warnings - ;; - *) - optname="${opt%%=*}" - optname="${optname#--}" - optname=$(echo "$optname" | sed 's/-/_/g') - if is_in $optname $CMDLINE_SET; then - eval $optname='$optval' - elif is_in $optname $CMDLINE_APPEND; then - append $optname "$optval" - else - die_unknown $opt - fi - ;; - esac -done - -disabled logging && logfile=/dev/null - -echo "# $0 $FFMPEG_CONFIGURATION" > $logfile -set >> $logfile - -test -n "$cross_prefix" && enable cross_compile - -if enabled cross_compile; then - test -n "$arch" && test -n "$target_os" || - die "Must specify target arch and OS when cross-compiling" -fi - -ar_default="${cross_prefix}${ar_default}" -cc_default="${cross_prefix}${cc_default}" -cxx_default="${cross_prefix}${cxx_default}" -nm_default="${cross_prefix}${nm_default}" -pkg_config_default="${cross_prefix}${pkg_config_default}" -ranlib="${cross_prefix}${ranlib}" -strip_default="${cross_prefix}${strip_default}" -windres_default="${cross_prefix}${windres_default}" - -sysinclude_default="${sysroot}/usr/include" - -test -n "$valgrind" && toolchain="valgrind-memcheck" - -case "$toolchain" in - clang-asan) - cc_default="clang" - add_cflags -fsanitize=address - add_ldflags -fsanitize=address - ;; - clang-tsan) - cc_default="clang" - add_cflags -fsanitize=thread -pie - add_ldflags -fsanitize=thread -pie - ;; - gcc-asan) - cc_default="gcc" - add_cflags -fsanitize=address - add_ldflags -fsanitize=address - ;; - gcc-tsan) - cc_default="gcc" - add_cflags -fsanitize=thread -pie -fPIC - add_ldflags -fsanitize=thread -pie -fPIC - ;; - valgrind-massif) - target_exec_default=${valgrind:-"valgrind"} - target_exec_args="--tool=massif --alloc-fn=av_malloc --alloc-fn=av_mallocz --alloc-fn=av_calloc --alloc-fn=av_fast_padded_malloc --alloc-fn=av_fast_malloc --alloc-fn=av_realloc_f --alloc-fn=av_fast_realloc --alloc-fn=av_realloc" - ;; - valgrind-memcheck) - target_exec_default=${valgrind:-"valgrind"} - target_exec_args="--error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp" - ;; - msvc) - # Check whether the current MSVC version needs the C99 converter. - # From MSVC 2013 (compiler major version 18) onwards, it does actually - # support enough of C99 to build ffmpeg. Default to the new - # behaviour if the regexp was unable to match anything, since this - # successfully parses the version number of existing supported - # versions that require the converter (MSVC 2010 and 2012). - cl_major_ver=$(cl 2>&1 | sed -n 's/.*Version \([[:digit:]]\{1,\}\)\..*/\1/p') - if [ -z "$cl_major_ver" ] || [ $cl_major_ver -ge 18 ]; then - cc_default="cl" - else - cc_default="c99wrap cl" - fi - ld_default="link" - nm_default="dumpbin -symbols" - ar_default="lib" - target_os_default="win32" - # Use a relative path for TMPDIR. This makes sure all the - # ffconf temp files are written with a relative path, avoiding - # issues with msys/win32 path conversion for MSVC parameters - # such as -Fo or -out:. - TMPDIR=. - ;; - icl) - cc_default="icl" - ld_default="xilink" - nm_default="dumpbin -symbols" - ar_default="xilib" - target_os_default="win32" - TMPDIR=. - ;; - gcov) - add_cflags -fprofile-arcs -ftest-coverage - add_ldflags -fprofile-arcs -ftest-coverage - ;; - hardened) - add_cflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all - add_ldflags -Wl,-z,relro -Wl,-z,now - ;; - ?*) - die "Unknown toolchain $toolchain" - ;; -esac - -set_default arch cc cxx pkg_config strip sysinclude target_exec target_os yasmexe -enabled cross_compile || host_cc_default=$cc -set_default host_cc - -if ! $pkg_config --version >/dev/null 2>&1; then - warn "$pkg_config not found, library detection may fail." - pkg_config=false -fi - -exesuf() { - case $1 in - mingw32*|win32|win64|cygwin*|*-dos|freedos|opendos|os/2*|symbian) echo .exe ;; - esac -} - -EXESUF=$(exesuf $target_os) -HOSTEXESUF=$(exesuf $host_os) - -# set temporary file name -: ${TMPDIR:=$TEMPDIR} -: ${TMPDIR:=$TMP} -: ${TMPDIR:=/tmp} - -if [ -n "$tempprefix" ] ; then - mktemp(){ - echo $tempprefix.${HOSTNAME}.${UID} - } -elif ! check_cmd mktemp -u XXXXXX; then - # simple replacement for missing mktemp - # NOT SAFE FOR GENERAL USE - mktemp(){ - echo "${2%%XXX*}.${HOSTNAME}.${UID}.$$" - } -fi - -tmpfile(){ - tmp=$(mktemp -u "${TMPDIR}/ffconf.XXXXXXXX")$2 && - (set -C; exec > $tmp) 2>/dev/null || - die "Unable to create temporary file in $TMPDIR." - append TMPFILES $tmp - eval $1=$tmp -} - -trap 'rm -f -- $TMPFILES' EXIT - -tmpfile TMPASM .asm -tmpfile TMPC .c -tmpfile TMPCPP .cpp -tmpfile TMPE $EXESUF -tmpfile TMPH .h -tmpfile TMPO .o -tmpfile TMPS .S -tmpfile TMPSH .sh -tmpfile TMPV .ver - -unset -f mktemp - -chmod +x $TMPE - -# make sure we can execute files in $TMPDIR -cat > $TMPSH 2>> $logfile <> $logfile 2>&1 -if ! $TMPSH >> $logfile 2>&1; then - cat <&1 | grep -q '^GNU assembler'; then - true # no-op to avoid reading stdin in following checks - elif $_cc -v 2>&1 | grep -q '^gcc.*LLVM'; then - _type=llvm_gcc - gcc_extra_ver=$(expr "$($_cc --version | head -n1)" : '.*\((.*)\)') - _ident="llvm-gcc $($_cc -dumpversion) $gcc_extra_ver" - _depflags='-MMD -MF $(@:.o=.d) -MT $@' - _cflags_speed='-O3' - _cflags_size='-Os' - elif $_cc -v 2>&1 | grep -qi ^gcc; then - _type=gcc - gcc_version=$($_cc --version | head -n1) - gcc_basever=$($_cc -dumpversion) - gcc_pkg_ver=$(expr "$gcc_version" : '[^ ]* \(([^)]*)\)') - gcc_ext_ver=$(expr "$gcc_version" : ".*$gcc_pkg_ver $gcc_basever \\(.*\\)") - _ident=$(cleanws "gcc $gcc_basever $gcc_pkg_ver $gcc_ext_ver") - if ! $_cc -dumpversion | grep -q '^2\.'; then - _depflags='-MMD -MF $(@:.o=.d) -MT $@' - fi - _cflags_speed='-O3' - _cflags_size='-Os' - elif $_cc --version 2>/dev/null | grep -q ^icc; then - _type=icc - _ident=$($_cc --version | head -n1) - _depflags='-MMD' - _cflags_speed='-O3' - _cflags_size='-Os' - _cflags_noopt='-O1' - elif $_cc -v 2>&1 | grep -q xlc; then - _type=xlc - _ident=$($_cc -qversion 2>/dev/null | head -n1) - _cflags_speed='-O5' - _cflags_size='-O5 -qcompact' - elif $_cc -V 2>/dev/null | grep -q Compaq; then - _type=ccc - _ident=$($_cc -V | head -n1 | cut -d' ' -f1-3) - _DEPFLAGS='-M' - _cflags_speed='-fast' - _cflags_size='-O1' - _flags_filter=ccc_flags - elif $_cc --vsn 2>/dev/null | grep -q "ARM C/C++ Compiler"; then - test -d "$sysroot" || die "No valid sysroot specified." - _type=armcc - _ident=$($_cc --vsn | head -n1) - armcc_conf="$PWD/armcc.conf" - $_cc --arm_linux_configure \ - --arm_linux_config_file="$armcc_conf" \ - --configure_sysroot="$sysroot" \ - --configure_cpp_headers="$sysinclude" >>$logfile 2>&1 || - die "Error creating armcc configuration file." - $_cc --vsn | grep -q RVCT && armcc_opt=rvct || armcc_opt=armcc - _flags="--arm_linux_config_file=$armcc_conf --translate_gcc" - as_default="${cross_prefix}gcc" - _depflags='-MMD' - _cflags_speed='-O3' - _cflags_size='-Os' - elif $_cc -version 2>/dev/null | grep -Eq 'TMS470|TI ARM'; then - _type=tms470 - _ident=$($_cc -version | head -n1 | tr -s ' ') - _flags='--gcc --abi=eabi -me' - _cc_e='-ppl -fe=$@' - _cc_o='-fe=$@' - _depflags='-ppa -ppd=$(@:.o=.d)' - _cflags_speed='-O3 -mf=5' - _cflags_size='-O3 -mf=2' - _flags_filter=tms470_flags - elif $_cc -v 2>&1 | grep -q clang; then - _type=clang - _ident=$($_cc --version | head -n1) - _depflags='-MMD' - _cflags_speed='-O3' - _cflags_size='-Os' - elif $_cc -V 2>&1 | grep -q Sun; then - _type=suncc - _ident=$($_cc -V 2>&1 | head -n1 | cut -d' ' -f 2-) - _DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< | sed -e "1s,^.*: ,$@: ," -e "\$$!s,\$$, \\\," -e "1!s,^.*: , ," > $(@:.o=.d)' - _DEPFLAGS='-xM1 -xc99' - _ldflags='-std=c99' - _cflags_speed='-O5' - _cflags_size='-O5 -xspace' - _flags_filter=suncc_flags - elif $_cc -v 2>&1 | grep -q 'PathScale\|Path64'; then - _type=pathscale - _ident=$($_cc -v 2>&1 | head -n1 | tr -d :) - _depflags='-MMD -MF $(@:.o=.d) -MT $@' - _cflags_speed='-O2' - _cflags_size='-Os' - _flags_filter='filter_out -Wdisabled-optimization' - elif $_cc -v 2>&1 | grep -q Open64; then - _type=open64 - _ident=$($_cc -v 2>&1 | head -n1 | tr -d :) - _depflags='-MMD -MF $(@:.o=.d) -MT $@' - _cflags_speed='-O2' - _cflags_size='-Os' - _flags_filter='filter_out -Wdisabled-optimization|-Wtype-limits|-fno-signed-zeros' - elif $_cc -V 2>&1 | grep -q Portland; then - _type=pgi - _ident="PGI $($_cc -V 2>&1 | awk '/^pgcc/ { print $2; exit }')" - opt_common='-alias=ansi -Mdse -Mlre -Mpre' - _cflags_speed="-O3 -Mautoinline -Munroll=c:4 $opt_common" - _cflags_size="-O2 -Munroll=c:1 $opt_common" - _cflags_noopt="-O" - _flags_filter=pgi_flags - elif $_cc 2>&1 | grep -q Microsoft; then - _type=msvc - _ident=$($cc 2>&1 | head -n1) - _DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< 2>&1 | awk '\''/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if (!match($$0, / /)) print "$@:", $$0 }'\'' > $(@:.o=.d)' - _DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -showIncludes -Zs' - _cflags_speed="-O2" - _cflags_size="-O1" - if $_cc 2>&1 | grep -q Linker; then - _ld_o='-out:$@' - else - _ld_o='-Fe$@' - fi - _cc_o='-Fo$@' - _cc_e='-P -Fi$@' - _flags_filter=msvc_flags - _ld_lib='lib%.a' - _ld_path='-libpath:' - _flags='-nologo' - _cflags='-D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -Dinline=__inline -FIstdlib.h -Dstrtoll=_strtoi64' - if [ $pfx = hostcc ]; then - append _cflags -Dsnprintf=_snprintf - fi - disable stripping - elif $_cc 2>&1 | grep -q Intel; then - _type=icl - _ident=$($cc 2>&1 | head -n1) - _depflags='-QMMD -QMF$(@:.o=.d) -QMT$@' - # Not only is O3 broken on 13.x+ but it is slower on all previous - # versions (tested) as well. - _cflags_speed="-O2" - _cflags_size="-O1 -Oi" # -O1 without -Oi miscompiles stuff - if $_cc 2>&1 | grep -q Linker; then - _ld_o='-out:$@' - else - _ld_o='-Fe$@' - fi - _cc_o='-Fo$@' - _cc_e='-P' - _flags_filter=icl_flags - _ld_lib='lib%.a' - _ld_path='-libpath:' - # -Qdiag-error to make icl error when seeing certain unknown arguments - _flags='-nologo -Qdiag-error:4044,10157' - # -Qvec- -Qsimd- to prevent miscompilation, -GS for consistency - # with MSVC which enables it by default. - _cflags='-D_USE_MATH_DEFINES -FIstdlib.h -Dstrtoll=_strtoi64 -Qms0 -Qvec- -Qsimd- -GS' - if [ $pfx = hostcc ]; then - append _cflags -Dsnprintf=_snprintf - fi - elif $_cc --version 2>/dev/null | grep -q ^cparser; then - _type=cparser - _ident=$($_cc --version | head -n1) - _depflags='-MMD' - _cflags_speed='-O4' - _cflags_size='-O2' - _flags_filter=cparser_flags - fi - - eval ${pfx}_type=\$_type - eval ${pfx}_ident=\$_ident -} - -set_ccvars(){ - eval ${1}_C=\${_cc_c-\${${1}_C}} - eval ${1}_E=\${_cc_e-\${${1}_E}} - eval ${1}_O=\${_cc_o-\${${1}_O}} - - if [ -n "$_depflags" ]; then - eval ${1}_DEPFLAGS=\$_depflags - else - eval ${1}DEP=\${_DEPCMD:-\$DEPCMD} - eval ${1}DEP_FLAGS=\${_DEPFLAGS:-\$DEPFLAGS} - eval DEP${1}FLAGS=\$_flags - fi -} - -probe_cc cc "$cc" -cflags_filter=$_flags_filter -cflags_speed=$_cflags_speed -cflags_size=$_cflags_size -cflags_noopt=$_cflags_noopt -add_cflags $_flags $_cflags -cc_ldflags=$_ldflags -set_ccvars CC - -probe_cc hostcc "$host_cc" -host_cflags_filter=$_flags_filter -add_host_cflags $_flags $_cflags -set_ccvars HOSTCC - -test -n "$cc_type" && enable $cc_type || - warn "Unknown C compiler $cc, unable to select optimal CFLAGS" - -: ${as_default:=$cc} -: ${dep_cc_default:=$cc} -: ${ld_default:=$cc} -: ${host_ld_default:=$host_cc} -set_default ar as dep_cc ld host_ld windres - -probe_cc as "$as" -asflags_filter=$_flags_filter -add_asflags $_flags $_cflags -set_ccvars AS - -probe_cc ld "$ld" -ldflags_filter=$_flags_filter -add_ldflags $_flags $_ldflags -test "$cc_type" != "$ld_type" && add_ldflags $cc_ldflags -LD_O=${_ld_o-$LD_O} -LD_LIB=${_ld_lib-$LD_LIB} -LD_PATH=${_ld_path-$LD_PATH} - -probe_cc hostld "$host_ld" -host_ldflags_filter=$_flags_filter -add_host_ldflags $_flags $_ldflags -HOSTLD_O=${_ld_o-$HOSTLD_O} - -if [ -z "$CC_DEPFLAGS" ] && [ "$dep_cc" != "$cc" ]; then - probe_cc depcc "$dep_cc" - CCDEP=${_DEPCMD:-$DEPCMD} - CCDEP_FLAGS=${_DEPFLAGS:=$DEPFLAGS} - DEPCCFLAGS=$_flags -fi - -if $ar 2>&1 | grep -q Microsoft; then - arflags="-nologo" - ar_o='-out:$@' -elif $ar 2>&1 | grep -q 'Texas Instruments'; then - arflags="rq" - ar_o='$@' -elif $ar 2>&1 | grep -q 'Usage: ar.*-X.*any'; then - arflags='-Xany -r -c' - ar_o='$@' -else - arflags="rc" - ar_o='$@' -fi - -add_cflags $extra_cflags -add_cxxflags $extra_cxxflags -add_asflags $extra_cflags - -if test -n "$sysroot"; then - case "$cc_type" in - gcc|llvm_gcc|clang) - add_cppflags --sysroot="$sysroot" - add_ldflags --sysroot="$sysroot" - ;; - tms470) - add_cppflags -I"$sysinclude" - add_ldflags --sysroot="$sysroot" - ;; - esac -fi - -if test "$cpu" = host; then - enabled cross_compile && - die "--cpu=host makes no sense when cross-compiling." - - case "$cc_type" in - gcc|llvm_gcc) - check_native(){ - $cc $1=native -v -c -o $TMPO $TMPC >$TMPE 2>&1 || return - sed -n "/cc1.*$1=/{ - s/.*$1=\\([^ ]*\\).*/\\1/ - p - q - }" $TMPE - } - cpu=$(check_native -march || check_native -mcpu) - ;; - esac - - test "${cpu:-host}" = host && - die "--cpu=host not supported with compiler $cc" -fi - -# Deal with common $arch aliases -case "$arch" in - aarch64|arm64) - arch="aarch64" - ;; - arm*|iPad*|iPhone*) - arch="arm" - ;; - mips*|IP*) - arch="mips" - ;; - parisc*|hppa*) - arch="parisc" - ;; - "Power Macintosh"|ppc*|powerpc*) - arch="ppc" - ;; - s390|s390x) - arch="s390" - ;; - sh4|sh) - arch="sh4" - ;; - sun4u|sparc*) - arch="sparc" - ;; - tilegx|tile-gx) - arch="tilegx" - ;; - i[3-6]86|i86pc|BePC|x86pc|x86_64|x86_32|amd64) - arch="x86" - ;; -esac - -is_in $arch $ARCH_LIST || warn "unknown architecture $arch" -enable $arch - -# Add processor-specific flags -if enabled aarch64; then - - case $cpu in - armv*) - cpuflags="-march=$cpu" - ;; - *) - cpuflags="-mcpu=$cpu" - ;; - esac - -elif enabled alpha; then - - cpuflags="-mcpu=$cpu" - -elif enabled arm; then - - check_arm_arch() { - check_cpp_condition stddef.h \ - "defined __ARM_ARCH_${1}__ || defined __TARGET_ARCH_${2:-$1}" \ - $cpuflags - } - - probe_arm_arch() { - if check_arm_arch 4; then echo armv4; - elif check_arm_arch 4T; then echo armv4t; - elif check_arm_arch 5; then echo armv5; - elif check_arm_arch 5E; then echo armv5e; - elif check_arm_arch 5T; then echo armv5t; - elif check_arm_arch 5TE; then echo armv5te; - elif check_arm_arch 5TEJ; then echo armv5te; - elif check_arm_arch 6; then echo armv6; - elif check_arm_arch 6J; then echo armv6j; - elif check_arm_arch 6K; then echo armv6k; - elif check_arm_arch 6Z; then echo armv6z; - elif check_arm_arch 6ZK; then echo armv6zk; - elif check_arm_arch 6T2; then echo armv6t2; - elif check_arm_arch 7; then echo armv7; - elif check_arm_arch 7A 7_A; then echo armv7-a; - elif check_arm_arch 7R 7_R; then echo armv7-r; - elif check_arm_arch 7M 7_M; then echo armv7-m; - elif check_arm_arch 7EM 7E_M; then echo armv7-m; - elif check_arm_arch 8A 8_A; then echo armv8-a; - fi - } - - [ "$cpu" = generic ] && cpu=$(probe_arm_arch) - - case $cpu in - armv*) - cpuflags="-march=$cpu" - subarch=$(echo $cpu | sed 's/[^a-z0-9]//g') - ;; - *) - cpuflags="-mcpu=$cpu" - case $cpu in - cortex-a*) subarch=armv7a ;; - cortex-r*) subarch=armv7r ;; - cortex-m*) enable thumb; subarch=armv7m ;; - arm11*) subarch=armv6 ;; - arm[79]*e*|arm9[24]6*|arm96*|arm102[26]) subarch=armv5te ;; - armv4*|arm7*|arm9[24]*) subarch=armv4 ;; - *) subarch=$(probe_arm_arch) ;; - esac - ;; - esac - - case "$subarch" in - armv5t*) enable fast_clz ;; - armv[6-8]*) enable fast_clz fast_unaligned ;; - esac - -elif enabled avr32; then - - case $cpu in - ap7[02]0[0-2]) - subarch="avr32_ap" - cpuflags="-mpart=$cpu" - ;; - ap) - subarch="avr32_ap" - cpuflags="-march=$cpu" - ;; - uc3[ab]*) - subarch="avr32_uc" - cpuflags="-mcpu=$cpu" - ;; - uc) - subarch="avr32_uc" - cpuflags="-march=$cpu" - ;; - esac - -elif enabled bfin; then - - cpuflags="-mcpu=$cpu" - -elif enabled mips; then - - cpuflags="-march=$cpu" - - case $cpu in - 24kc) - disable mipsfpu - disable mipsdspr1 - disable mipsdspr2 - ;; - 24kf*) - disable mipsdspr1 - disable mipsdspr2 - ;; - 24kec|34kc|1004kc) - disable mipsfpu - disable mipsdspr2 - ;; - 24kef*|34kf*|1004kf*) - disable mipsdspr2 - ;; - 74kc) - disable mipsfpu - ;; - esac - -elif enabled ppc; then - - case $(tolower $cpu) in - 601|ppc601|powerpc601) - cpuflags="-mcpu=601" - disable altivec - ;; - 603*|ppc603*|powerpc603*) - cpuflags="-mcpu=603" - disable altivec - ;; - 604*|ppc604*|powerpc604*) - cpuflags="-mcpu=604" - disable altivec - ;; - g3|75*|ppc75*|powerpc75*) - cpuflags="-mcpu=750" - disable altivec - ;; - g4|745*|ppc745*|powerpc745*) - cpuflags="-mcpu=7450" - ;; - 74*|ppc74*|powerpc74*) - cpuflags="-mcpu=7400" - ;; - g5|970|ppc970|powerpc970) - cpuflags="-mcpu=970" - ;; - power[3-7]*) - cpuflags="-mcpu=$cpu" - ;; - cell) - cpuflags="-mcpu=cell" - enable ldbrx - ;; - e500mc) - cpuflags="-mcpu=e500mc" - disable altivec - ;; - e500v2) - cpuflags="-mcpu=8548 -mhard-float -mfloat-gprs=double" - disable altivec - ;; - e500) - cpuflags="-mcpu=8540 -mhard-float" - disable altivec - ;; - esac - -elif enabled sparc; then - - case $cpu in - cypress|f93[04]|tsc701|sparcl*|supersparc|hypersparc|niagara|v[789]) - cpuflags="-mcpu=$cpu" - disable vis - ;; - ultrasparc*|niagara[234]) - cpuflags="-mcpu=$cpu" - ;; - esac - -elif enabled x86; then - - case $cpu in - i[345]86|pentium) - cpuflags="-march=$cpu" - disable mmx - ;; - # targets that do NOT support nopl and conditional mov (cmov) - pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3) - cpuflags="-march=$cpu" - disable i686 - ;; - # targets that do support nopl and conditional mov (cmov) - i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64*|k8*|opteron*|athlon-fx|core2|corei7*|amdfam10|barcelona|atom|bdver*) - cpuflags="-march=$cpu" - enable i686 - enable fast_cmov - ;; - # targets that do support conditional mov but on which it's slow - pentium4|pentium4m|prescott|nocona) - cpuflags="-march=$cpu" - enable i686 - disable fast_cmov - ;; - esac - -fi - -if [ "$cpu" != generic ]; then - add_cflags $cpuflags - add_asflags $cpuflags -fi - -# compiler sanity check -check_exec < -EOF -check_cc -D_LARGEFILE_SOURCE < -EOF - -check_host_cflags -std=c99 -check_host_cflags -Wall - -check_64bit(){ - arch32=$1 - arch64=$2 - expr=$3 - check_code cc "" "int test[2*($expr) - 1]" && - subarch=$arch64 || subarch=$arch32 -} - -case "$arch" in - aarch64|alpha|ia64) - spic=$shared - ;; - mips) - check_64bit mips mips64 '_MIPS_SIM > 1' - spic=$shared - ;; - parisc) - check_64bit parisc parisc64 'sizeof(void *) > 4' - spic=$shared - ;; - ppc) - check_64bit ppc ppc64 'sizeof(void *) > 4' - spic=$shared - ;; - sparc) - check_64bit sparc sparc64 'sizeof(void *) > 4' - spic=$shared - ;; - x86) - check_64bit x86_32 x86_64 'sizeof(void *) > 4' - if test "$subarch" = "x86_64"; then - spic=$shared - fi - ;; - ppc) - check_cc < mapfile && - add_ldflags -Wl,-M,mapfile - nm_default='nm -P -g' - ;; - netbsd) - disable symver - oss_indev_extralibs="-lossaudio" - oss_outdev_extralibs="-lossaudio" - enabled gcc || check_ldflags -Wl,-zmuldefs - ;; - openbsd|bitrig) - disable symver - SHFLAGS='-shared' - SLIB_INSTALL_NAME='$(SLIBNAME).$(LIBMAJOR).$(LIBMINOR)' - SLIB_INSTALL_LINKS= - oss_indev_extralibs="-lossaudio" - oss_outdev_extralibs="-lossaudio" - ;; - dragonfly) - disable symver - ;; - freebsd) - ;; - bsd/os) - add_extralibs -lpoll -lgnugetopt - strip="strip -d" - ;; - darwin) - 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 - strip="${strip} -x" - add_ldflags -Wl,-dynamic,-search_paths_first - SLIBSUF=".dylib" - SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)' - SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)' - objformat="macho" - enabled x86_64 && objformat="macho64" - enabled_any pic shared || - { check_cflags -mdynamic-no-pic && add_asflags -mdynamic-no-pic; } - ;; - mingw32*) - if test $target_os = "mingw32ce"; then - disable network - else - target_os=mingw32 - fi - LIBTARGET=i386 - if enabled x86_64; then - LIBTARGET="i386:x86-64" - elif enabled arm; then - LIBTARGET=arm-wince - fi - enabled shared && ! enabled small && check_cmd $windres --version && enable gnu_windres - check_ldflags -Wl,--nxcompat - check_ldflags -Wl,--dynamicbase - shlibdir_default="$bindir_default" - SLIBPREF="" - SLIBSUF=".dll" - SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' - SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' - dlltool="${cross_prefix}dlltool" - if check_cmd lib.exe -list; then - SLIB_EXTRA_CMD=-'sed -e "s/ @[^ ]*//" $$(@:$(SLIBSUF)=.orig.def) > $$(@:$(SLIBSUF)=.def); 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=-'sed -e "s/ @[^ ]*//" $$(@:$(SLIBSUF)=.orig.def) > $$(@:$(SLIBSUF)=.def); $(DLLTOOL) -m $(LIBTARGET) -d $$(@:$(SLIBSUF)=.def) -l $(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib) -D $(SLIBNAME_WITH_MAJOR)' - fi - 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)=.orig.def) -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base' - objformat="win32" - ranlib=: - enable dos_paths - ;; - win32|win64) - disable symver - if enabled shared; then - # Link to the import library instead of the normal static library - # for shared libs. - LD_LIB='%.lib' - # Cannot build both shared and static libs with MSVC or icl. - disable static - fi - shlibdir_default="$bindir_default" - SLIBPREF="" - SLIBSUF=".dll" - SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' - SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' - SLIB_CREATE_DEF_CMD='$(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)' - SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' - SLIB_INSTALL_LINKS= - SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)' - SLIB_INSTALL_EXTRA_LIB='$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.def)' - SHFLAGS='-dll -def:$$(@:$(SLIBSUF)=.def) -implib:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)' - objformat="win32" - ranlib=: - enable dos_paths - ;; - cygwin*) - target_os=cygwin - shlibdir_default="$bindir_default" - 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' - objformat="win32" - enable dos_paths - enabled shared && ! enabled small && check_cmd $windres --version && enable gnu_windres - ;; - *-dos|freedos|opendos) - network_extralibs="-lsocket" - objformat="coff" - enable dos_paths - add_cppflags -U__STRICT_ANSI__ - ;; - linux) - enable dv1394 - ;; - irix*) - target_os=irix - ranlib="echo ignoring ranlib" - ;; - os/2*) - strip="lxlite -CS" - ln_s="cp -f" - objformat="aout" - add_cppflags -D_GNU_SOURCE - add_ldflags -Zomf -Zbin-files -Zargs-wild -Zmap - SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf' - LIBSUF="_s.a" - SLIBPREF="" - SLIBSUF=".dll" - SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)' - SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(shell echo $(NAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)' - 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' - 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 dos_paths - enable_weak os2threads - ;; - gnu/kfreebsd) - add_cppflags -D_BSD_SOURCE - ;; - gnu) - ;; - 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 - ;; - osf1) - add_cppflags -D_OSF_SOURCE -D_POSIX_PII -D_REENTRANT - ;; - minix) - ;; - plan9) - add_cppflags -D_C99_SNPRINTF_EXTENSION \ - -D_REENTRANT_SOURCE \ - -D_RESEARCH_SOURCE \ - -DFD_SETSIZE=96 \ - -DHAVE_SOCK_OPTS - add_compat strtod.o strtod=avpriv_strtod - network_extralibs='-lbsd' - exeobjs=compat/plan9/main.o - disable ffserver - cp_f='cp' - ;; - none) - ;; - *) - die "Unknown OS '$target_os'." - ;; -esac - -# determine libc flavour - -probe_libc(){ - pfx=$1 - pfx_no_=${pfx%_} - # uclibc defines __GLIBC__, so it needs to be checked before glibc. - if check_${pfx}cpp_condition features.h "defined __UCLIBC__"; then - eval ${pfx}libc_type=uclibc - add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 - elif check_${pfx}cpp_condition features.h "defined __GLIBC__"; then - eval ${pfx}libc_type=glibc - add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 - # MinGW headers can be installed on Cygwin, so check for newlib first. - elif check_${pfx}cpp_condition newlib.h "defined _NEWLIB_VERSION"; then - eval ${pfx}libc_type=newlib - add_${pfx}cppflags -U__STRICT_ANSI__ - # MinGW64 is backwards compatible with MinGW32, so check for it first. - elif check_${pfx}cpp_condition _mingw.h "defined __MINGW64_VERSION_MAJOR"; then - eval ${pfx}libc_type=mingw64 - if check_${pfx}cpp_condition _mingw.h "__MINGW64_VERSION_MAJOR < 3"; then - add_compat msvcrt/snprintf.o - add_cflags "-include $source_path/compat/msvcrt/snprintf.h" - fi - add_${pfx}cppflags -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1 - eval test \$${pfx_no_}cc_type = "gcc" && - add_${pfx}cppflags -D__printf__=__gnu_printf__ - elif check_${pfx}cpp_condition _mingw.h "defined __MINGW_VERSION" || - check_${pfx}cpp_condition _mingw.h "defined __MINGW32_VERSION"; then - eval ${pfx}libc_type=mingw32 - check_${pfx}cpp_condition _mingw.h "__MINGW32_MAJOR_VERSION > 3 || \ - (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" || - die "ERROR: MinGW32 runtime version must be >= 3.15." - add_${pfx}cppflags -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1 - eval test \$${pfx_no_}cc_type = "gcc" && - add_${pfx}cppflags -D__printf__=__gnu_printf__ - elif check_${pfx}cpp_condition crtversion.h "defined _VC_CRT_MAJOR_VERSION"; then - eval ${pfx}libc_type=msvcrt - # The MSVC 2010 headers (Win 7.0 SDK) set _WIN32_WINNT to - # 0x601 by default unless something else is set by the user. - # This can easily lead to us detecting functions only present - # in such new versions and producing binaries requiring windows 7.0. - # Therefore explicitly set the default to XP unless the user has - # set something else on the command line. - check_${pfx}cpp_condition stdlib.h "defined(_WIN32_WINNT)" || - add_${pfx}cppflags -D_WIN32_WINNT=0x0502 - elif check_${pfx}cpp_condition stddef.h "defined __KLIBC__"; then - eval ${pfx}libc_type=klibc - elif check_${pfx}cpp_condition sys/cdefs.h "defined __BIONIC__"; then - eval ${pfx}libc_type=bionic - elif check_${pfx}cpp_condition sys/brand.h "defined LABELED_BRAND_NAME"; then - eval ${pfx}libc_type=solaris - add_${pfx}cppflags -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 - fi -} - -probe_libc -test -n "$libc_type" && enable libc_$libc_type -probe_libc host_ -test -n "$host_libc_type" && enable host_libc_$host_libc_type - -case $libc_type in - bionic) - add_compat strtod.o strtod=avpriv_strtod - ;; - msvcrt) - add_compat strtod.o strtod=avpriv_strtod - add_compat msvcrt/snprintf.o snprintf=avpriv_snprintf \ - _snprintf=avpriv_snprintf \ - vsnprintf=avpriv_vsnprintf - ;; -esac - -# hacks for compiler/libc/os combinations - -if enabled_all tms470 libc_glibc; then - CPPFLAGS="-I${source_path}/compat/tms470 ${CPPFLAGS}" - add_cppflags -D__USER_LABEL_PREFIX__= - add_cppflags -D__builtin_memset=memset - add_cppflags -D__gnuc_va_list=va_list -D_VA_LIST_DEFINED - add_cflags -pds=48 # incompatible redefinition of macro -fi - -if enabled_all ccc libc_glibc; then - add_ldflags -Wl,-z,now # calls to libots crash without this -fi - -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_weak pic - -set_default $PATHS_LIST -set_default nm - -# we need to build at least one lib type -if ! enabled_any static shared; then - cat <= 2.0.0" aacplus.h aacplusEncOpen -laacplus -enabled libass && require_pkg_config libass ass/ass.h ass_library_init -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."; } -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_libfreetype -enabled libgme && require libgme gme/gme.h gme_new_emu -lgme -lstdc++ -enabled libgsm && { for gsm_hdr in "gsm.h" "gsm/gsm.h"; do - check_lib "${gsm_hdr}" gsm_create -lgsm && break; - done || die "ERROR: libgsm not found"; } -enabled libilbc && require libilbc ilbc.h WebRtcIlbcfix_InitDecode -lilbc -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 && { check_lib openjpeg-1.5/openjpeg.h opj_version -lopenjpeg || - check_lib openjpeg.h opj_version -lopenjpeg || - die "ERROR: libopenjpeg not found"; } -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 libquvi && require_pkg_config libquvi quvi/quvi.h quvi_init -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 libshine && require_pkg_config shine shine/layer3.h shine_encode_buffer -enabled libsoxr && require libsoxr soxr.h soxr_create -lsoxr -enabled libssh && require_pkg_config libssh libssh/sftp.h sftp_init -enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex -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 libvidstab && require_pkg_config vidstab vid.stab/libvidstab.h vsMotionDetectInit -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_vp8_decoder && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_dec_init_ver -lvpx || - die "ERROR: libvpx decoder version must be >=0.9.1"; } - enabled libvpx_vp8_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 libvpx_vp9_decoder && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_vp9_dx" -lvpx || disable libvpx_vp9_decoder; } - enabled libvpx_vp9_encoder && { check_lib2 "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_vp9_cx VP9E_SET_SVC" -lvpx || disable libvpx_vp9_encoder; } } -enabled libwavpack && require libwavpack wavpack/wavpack.h WavpackOpenFileOutput -lwavpack -enabled libwebp && require_pkg_config libwebp webp/encode.h WebPGetEncoderVersion -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 libzmq && require_pkg_config libzmq zmq.h zmq_ctx_new -enabled libzvbi && require libzvbi libzvbi.h vbi_decoder_new -lzvbi -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 opencl && { check_lib2 OpenCL/cl.h clEnqueueNDRangeKernel -Wl,-framework,OpenCL || - check_lib2 CL/cl.h clEnqueueNDRangeKernel -lOpenCL || - die "ERROR: opencl not found"; } && - { ! enabled_any w32threads os2threads || - die "opencl currently needs --enable-pthreads or --disable-w32threads"; } && - { check_cpp_condition "OpenCL/cl.h" "defined(CL_VERSION_1_2)" || - check_cpp_condition "CL/cl.h" "defined(CL_VERSION_1_2)" || - die "ERROR: opencl must be installed and version must be 1.2 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"; } - -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 && - check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x010300" $sdl_cflags && - enable sdl -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 && - check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x010300" $sdl_cflags && - enable sdl - fi -fi -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 -v > /dev/null 2>&1 && enable perl || disable perl -pod2man --help > /dev/null 2>&1 && enable pod2man || disable pod2man -rsync --help 2> /dev/null | grep -q 'contimeout' && enable rsync_contimeout || disable rsync_contimeout - -check_header linux/fb.h -check_header linux/videodev.h -check_header linux/videodev2.h -check_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_safe 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 - -check_type "dshow.h" IBaseFilter - -# check for ioctl_meteor.h, ioctl_bt848.h and alternatives -{ 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 < - 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 - -if enabled libcdio; then - check_lib2 "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio || - check_lib2 "cdio/paranoia/cdda.h cdio/paranoia/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio || - die "ERROR: libcdio-paranoia not found" -fi - -check_lib X11/Xlib.h XOpenDisplay -lX11 && enable xlib - -enabled x11grab && -require Xext X11/extensions/XShm.h XShmCreateImage -lXext && -require Xfixes X11/extensions/Xfixes.h XFixesGetCursorImage -lXfixes && -{ enabled xlib || die "ERROR: Xlib not found"; } - -enabled vaapi && - check_lib va/va.h vaInitialize -lva || - disable vaapi - -enabled vdpau && - check_cpp_condition vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" || - disable vdpau - -enabled vdpau && enabled xlib && - check_lib2 "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau && - enable vdpau_x11 - -# Funny iconv installations are not unusual, so check it after all flags have been set -disabled iconv || check_func_headers iconv.h iconv || check_lib2 iconv.h iconv -liconv || disable iconv - -enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel" - -# add some useful compiler flags if supported -check_cflags -Wdeclaration-after-statement -check_cflags -Wall -check_cflags -Wdisabled-optimization -check_cflags -Wpointer-arith -check_cflags -Wredundant-decls -check_cflags -Wwrite-strings -check_cflags -Wtype-limits -check_cflags -Wundef -check_cflags -Wmissing-prototypes -check_cflags -Wno-pointer-to-int-cast -check_cflags -Wstrict-prototypes -enabled extra_warnings && check_cflags -Winline - -check_disable_warning(){ - warning_flag=-W${1#-Wno-} - test_cflags $warning_flag && add_cflags $1 -} - -check_disable_warning -Wno-parentheses -check_disable_warning -Wno-switch -check_disable_warning -Wno-format-zero-length -check_disable_warning -Wno-pointer-sign - -# add some linker flags -check_ldflags -Wl,--warn-common -check_ldflags -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample -enabled rpath && add_ldflags -Wl,-rpath=$libdir -test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic - -# add some strip flags -# -wN '..@*' is more selective than -x, but not available everywhere. -check_stripflags -wN \'..@*\' || check_stripflags -x - -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_video2 \ - -Wl,--wrap,avcodec_encode_subtitle \ - -Wl,--wrap,sws_scale || - disable xmm_clobber_test - -echo "X{};" > $TMPV -if test_ldflags -Wl,--version-script,$TMPV; then - append SHFLAGS '-Wl,--version-script,\$(SUBDIR)lib\$(NAME).ver' - check_cc <= 1400" && - add_cflags -Qansi-alias - # icl will pass the inline asm tests but inline asm is currently - # not supported (build will fail) - disabled inline_asm || warn "inline asm disabled due to issues with it in ICL" - disable inline_asm - fi -fi - -case $target_os in - osf1) - enabled ccc && add_ldflags '-Wl,-expect_unresolved,*' - ;; - plan9) - add_cppflags -Dmain=plan9_main - ;; -esac - -enable frame_thread_encoder - -enabled asm || { arch=c; disable $ARCH_LIST $ARCH_EXT_LIST; } - -check_deps $CONFIG_LIST \ - $CONFIG_EXTRA \ - $HAVE_LIST \ - $ALL_COMPONENTS \ - -enabled threads && ! enabled pthreads && ! enabled atomics_native && die "non pthread threading without atomics not supported, try adding --enable-pthreads or --cpu=i486 or higher if you are on x86" - - -if test $target_os = "haiku"; then - disable memalign - disable posix_memalign -fi - -! 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" -echo "source path $source_path" -echo "C compiler $cc" -echo "C library $libc_type" -if test "$host_cc" != "$cc"; then - echo "host C compiler $host_cc" - echo "host C library $host_libc_type" -fi -echo "ARCH $arch ($cpu)" -if test "$build_suffix" != ""; then - echo "build suffix $build_suffix" -fi -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}" -if enabled x86; then - echo "${yasmexe} ${yasm-no}" - echo "MMX enabled ${mmx-no}" - echo "MMXEXT enabled ${mmxext-no}" - echo "3DNow! enabled ${amd3dnow-no}" - echo "3DNow! extended enabled ${amd3dnowext-no}" - echo "SSE enabled ${sse-no}" - echo "SSSE3 enabled ${ssse3-no}" - echo "AVX enabled ${avx-no}" - echo "FMA4 enabled ${fma4-no}" - echo "i686 features enabled ${i686-no}" - echo "CMOV is fast ${fast_cmov-no}" - echo "EBX available ${ebx_available-no}" - echo "EBP available ${ebp_available-no}" -fi -if enabled arm; then - echo "ARMv5TE enabled ${armv5te-no}" - echo "ARMv6 enabled ${armv6-no}" - echo "ARMv6T2 enabled ${armv6t2-no}" - echo "VFP enabled ${vfp-no}" - echo "NEON enabled ${neon-no}" - echo "THUMB enabled ${thumb-no}" -fi -if enabled mips; then - 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}" -fi -if enabled ppc; then - 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}" -fi -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 "new filter support ${avfilter-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 "opencl enabled ${opencl-no}" -echo "libzvbi enabled ${libzvbi-no}" -echo "texi2html enabled ${texi2html-no}" -echo "perl enabled ${perl-no}" -echo "pod2man enabled ${pod2man-no}" -echo "makeinfo enabled ${makeinfo-no}" -test -n "$random_seed" && - echo "random seed ${random_seed}" -echo - -echo "External libraries:" -print_enabled '' $EXTERNAL_LIBRARY_LIST | print_3_columns -echo - -for type in decoder encoder hwaccel parser demuxer muxer protocol filter bsf indev outdev; do - echo "Enabled ${type}s:" - eval list=\$$(toupper $type)_LIST - print_enabled '_*' $list | print_3_columns - echo -done - -license="LGPL version 2.1 or later" -if enabled nonfree; then - license="nonfree and unredistributable" -elif enabled gplv3; then - license="GPL version 3 or later" -elif enabled lgplv3; then - license="LGPL version 3 or later" -elif enabled gpl; then - license="GPL version 2 or later" -fi - -echo "License: $license" - -echo "Creating config.mak, config.h, and doc/config.texi..." - -test -e Makefile || echo "include $source_path/Makefile" > Makefile - -enabled stripping || strip="echo skipping strip" - -config_files="$TMPH config.mak doc/config.texi" - -cat > config.mak <> config.mak - eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> config.mak - eval echo "${lcname}_VERSION_MINOR=\$${name}_VERSION_MINOR" >> config.mak -} - -map 'get_version $v' $LIBRARY_LIST - -cat > $TMPH <>$TMPH - -test -n "$malloc_prefix" && - echo "#define MALLOC_PREFIX $malloc_prefix" >>$TMPH - -if enabled yasm; then - append config_files $TMPASM - printf '' >$TMPASM -fi - -enabled getenv || echo "#define getenv(x) NULL" >> $TMPH - - -mkdir -p doc -echo "@c auto-generated by configure" > doc/config.texi - -print_config ARCH_ "$config_files" $ARCH_LIST -print_config HAVE_ "$config_files" $HAVE_LIST -print_config CONFIG_ "$config_files" $CONFIG_LIST \ - $CONFIG_EXTRA \ - $ALL_COMPONENTS \ - -echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH -echo "endif # FFMPEG_CONFIG_MAK" >> config.mak - -# Do not overwrite an unchanged config.h to avoid superfluous rebuilds. -cp_if_changed $TMPH config.h -touch .config - -enabled yasm && cp_if_changed $TMPASM config.asm - -cat > $TMPH <> $TMPH - -cp_if_changed $TMPH libavutil/avconfig.h - -if test -n "$WARNINGS"; then - printf "\n$WARNINGS" - enabled fatal_warnings && exit 1 -fi - -# build pkg-config files - -pkgconfig_generate(){ - name=$1 - shortname=${name#lib}${build_suffix} - comment=$2 - version=$3 - libs=$4 - requires=$5 - enabled ${name#lib} || return 0 - mkdir -p $name - cat < $name/$name${build_suffix}.pc -prefix=$prefix -exec_prefix=\${prefix} -libdir=$libdir -includedir=$incdir - -Name: $name -Description: $comment -Version: $version -Requires: $(enabled shared || echo $requires) -Requires.private: $(enabled shared && echo $requires) -Conflicts: -Libs: -L\${libdir} $(enabled rpath && echo "-Wl,-rpath,\${libdir}") -l${shortname} $(enabled shared || echo $libs) -Libs.private: $(enabled shared && echo $libs) -Cflags: -I\${includedir} -EOF - -mkdir -p doc/examples/pc-uninstalled -includedir=${source_path} -[ "$includedir" = . ] && includedir="\${pcfiledir}/../../.." - cat < doc/examples/pc-uninstalled/$name.pc -prefix= -exec_prefix= -libdir=\${pcfiledir}/../../../$name -includedir=${includedir} - -Name: $name -Description: $comment -Version: $version -Requires: $requires -Conflicts: -Libs: -L\${libdir} -Wl,-rpath,\${libdir} -l${shortname} $(enabled shared || echo $libs) -Cflags: -I\${includedir} -EOF -} - -lavfi_libs="libavutil${build_suffix} = $LIBAVUTIL_VERSION" -enabled libavfilter_deps_avcodec && prepend lavfi_libs "libavcodec${build_suffix} = $LIBAVCODEC_VERSION," -enabled libavfilter_deps_avformat && prepend lavfi_libs "libavformat${build_suffix} = $LIBAVFORMAT_VERSION," -enabled libavfilter_deps_avresample && prepend lavfi_libs "libavresample${build_suffix} = $LIBAVRESAMPLE_VERSION," -enabled libavfilter_deps_swscale && prepend lavfi_libs "libswscale${build_suffix} = $LIBSWSCALE_VERSION," -enabled libavfilter_deps_swresample && prepend lavfi_libs "libswresample${build_suffix} = $LIBSWRESAMPLE_VERSION," -enabled libavfilter_deps_postproc && prepend lavfi_libs "libpostproc${build_suffix} = $LIBPOSTPROC_VERSION," -lavfi_libs=${lavfi_libs%, } - -lavd_libs="libavformat${build_suffix} = $LIBAVFORMAT_VERSION" -enabled lavfi_indev && prepend lavd_libs "libavfilter${build_suffix} = $LIBAVFILTER_VERSION," - -pkgconfig_generate libavutil "FFmpeg utility library" "$LIBAVUTIL_VERSION" "$LIBM" -pkgconfig_generate libavcodec "FFmpeg codec library" "$LIBAVCODEC_VERSION" "$extralibs" "libavutil${build_suffix} = $LIBAVUTIL_VERSION" -pkgconfig_generate libavformat "FFmpeg container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec${build_suffix} = $LIBAVCODEC_VERSION" -pkgconfig_generate libavdevice "FFmpeg device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "$lavd_libs" -pkgconfig_generate libavfilter "FFmpeg audio/video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" "$lavfi_libs" -pkgconfig_generate libpostproc "FFmpeg postprocessing library" "$LIBPOSTPROC_VERSION" "" "libavutil${build_suffix} = $LIBAVUTIL_VERSION" -pkgconfig_generate libavresample "Libav audio resampling library" "$LIBAVRESAMPLE_VERSION" "$extralibs" "libavutil${build_suffix} = $LIBAVUTIL_VERSION" -pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "$LIBM" "libavutil${build_suffix} = $LIBAVUTIL_VERSION" -pkgconfig_generate libswresample "FFmpeg audio resampling library" "$LIBSWRESAMPLE_VERSION" "$LIBM" "libavutil${build_suffix} = $LIBAVUTIL_VERSION" - -fix_ffmpeg_remote(){ - git_remote_from=$1 - git_remote_to=$2 - fixme_remote=$(git --git-dir=$source_path/.git --work-tree=$source_path remote -v | grep $git_remote_from | cut -f 1 | sort | uniq) - if [ "$fixme_remote" != "" ]; then - echolog " -Outdated domain in git config, the official domain for ffmpeg git is since -November 2011, source.ffmpeg.org, both the old and the new point to the same -repository and server. To update it enter the following commands: -" - for remote in $fixme_remote; do - echolog "git remote set-url $remote $git_remote_to" - done - fi -} - -if test -f "$source_path/.git/config"; then - remote_from=git.videolan.org - remote_to=source.ffmpeg.org - fix_ffmpeg_remote git@$remote_from:ffmpeg git@$remote_to:ffmpeg - fix_ffmpeg_remote git://$remote_from/ffmpeg git://$remote_to/ffmpeg -fi -- cgit v1.2.3