| @@ -2374,7 +2374,7 @@ msvc_flags(){ | |||
| msvc_common_flags "$@" | |||
| for flag; do | |||
| case $flag in | |||
| -Wall) echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \ | |||
| -Wall) echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \ | |||
| -wd4146 -wd4057 -wd4204 -wd4706 -wd4305 \ | |||
| -wd4152 -wd4324 -we4013 -wd4100 -wd4214 \ | |||
| -wd4996 -wd4273 ;; | |||
| @@ -2425,10 +2425,10 @@ suncc_flags(){ | |||
| corei7) echo -xarch=sse4_2 -xchip=nehalem ;; | |||
| corei7-avx) echo -xarch=avx -xchip=sandybridge ;; | |||
| amdfam10|barcelona|bdver*) echo -xarch=sse4_1 ;; | |||
| athlon-4|athlon-[mx]p) echo -xarch=ssea ;; | |||
| athlon-4|athlon-[mx]p) echo -xarch=ssea ;; | |||
| k8|opteron|athlon64|athlon-fx) | |||
| echo -xarch=sse2a ;; | |||
| athlon*) echo -xarch=pentium_proa ;; | |||
| echo -xarch=sse2a ;; | |||
| athlon*) echo -xarch=pentium_proa ;; | |||
| esac | |||
| ;; | |||
| -std=c99) echo -xc99 ;; | |||
| @@ -2588,7 +2588,8 @@ probe_cc(){ | |||
| _DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -showIncludes -Zs' | |||
| _cflags_speed="-O2" | |||
| _cflags_size="-O1" | |||
| # Nonstandard output options, to avoid msys path conversion issues, relies on wrapper to remap it | |||
| # Nonstandard output options, to avoid msys path conversion issues. | |||
| # Relies on wrapper to remap it. | |||
| if $_cc 2>&1 | grep -q Linker; then | |||
| _ld_o='-out $@' | |||
| else | |||
| @@ -2608,10 +2609,12 @@ probe_cc(){ | |||
| _type=icl | |||
| _ident=$($cc 2>&1 | head -n1) | |||
| _depflags='-QMMD -QMF$(@:.o=.d) -QMT$@' | |||
| # Not only is O3 broken on 13.x+ but it's slower on all previous versions (tested) as well | |||
| # 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 | |||
| # Nonstandard output options, to avoid msys path conversion issues, relies on wrapper to remap it | |||
| # Nonstandard output options, to avoid msys path conversion issues. | |||
| # Relies on wrapper to remap it. | |||
| if $_cc 2>&1 | grep -q Linker; then | |||
| _ld_o='-out $@' | |||
| else | |||
| @@ -2622,9 +2625,10 @@ probe_cc(){ | |||
| _flags_filter=icl_flags | |||
| _ld_lib='lib%.a' | |||
| _ld_path='-libpath:' | |||
| # -Qdiag-error to make icl error when presented with certain unknown arguments | |||
| # -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 | |||
| # -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 | |||
| @@ -2725,7 +2729,8 @@ if test -n "$sysroot"; then | |||
| fi | |||
| if test "$cpu" = host; then | |||
| enabled cross_compile && die "--cpu=host makes no sense when cross-compiling." | |||
| enabled cross_compile && | |||
| die "--cpu=host makes no sense when cross-compiling." | |||
| case "$cc_type" in | |||
| gcc|llvm_gcc) | |||
| @@ -2741,7 +2746,8 @@ if test "$cpu" = host; then | |||
| ;; | |||
| esac | |||
| test "${cpu:-host}" = host && die "--cpu=host not supported with compiler $cc" | |||
| test "${cpu:-host}" = host && | |||
| die "--cpu=host not supported with compiler $cc" | |||
| fi | |||
| # Deal with common $arch aliases | |||
| @@ -3059,7 +3065,9 @@ case $target_os in | |||
| # the Solaris assembler. As our libraries contain their own | |||
| # guards for processor-specific code, instead suppress | |||
| # generation of the HWCAPS ELF section on Solaris x86 only. | |||
| enabled_all suncc x86 && echo "hwcap_1 = OVERRIDE;" > mapfile && add_ldflags -Wl,-M,mapfile | |||
| enabled_all suncc x86 && | |||
| echo "hwcap_1 = OVERRIDE;" > mapfile && | |||
| add_ldflags -Wl,-M,mapfile | |||
| nm_default='nm -P -g' | |||
| ;; | |||
| netbsd) | |||
| @@ -3133,8 +3141,7 @@ case $target_os in | |||
| # Link to the import library instead of the normal static library | |||
| # for shared libs. | |||
| LD_LIB='%.lib' | |||
| # Cannot build shared and static libraries at the same time with | |||
| # MSVC. | |||
| # Cannot build shared and static libs at the same time with MSVC. | |||
| disable static | |||
| fi | |||
| shlibdir_default="$bindir_default" | |||
| @@ -3707,47 +3714,47 @@ for func in $MATH_FUNCS; do | |||
| done | |||
| # these are off by default, so fail if requested and not available | |||
| enabled avisynth && require2 vfw32 "windows.h vfw.h" AVIFileInit -lavifil32 | |||
| enabled frei0r && { check_header frei0r.h || die "ERROR: frei0r.h header not found"; } | |||
| enabled gnutls && require_pkg_config gnutls gnutls/gnutls.h gnutls_global_init | |||
| enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac | |||
| enabled libfdk_aac && require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac | |||
| enabled libfreetype && require_pkg_config freetype2 "ft2build.h freetype/freetype.h" FT_Init_FreeType | |||
| 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 libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame | |||
| 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/cv.h cvCreateImageHeader | |||
| enabled libopenjpeg && require libopenjpeg openjpeg.h opj_version -lopenjpeg | |||
| enabled libopus && require_pkg_config opus opus_multistream.h opus_multistream_decoder_create | |||
| enabled libpulse && require_pkg_config libpulse-simple pulse/simple.h pa_simple_new | |||
| enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket | |||
| enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init | |||
| enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex | |||
| enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg | |||
| 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 avisynth && require2 vfw32 "windows.h vfw.h" AVIFileInit -lavifil32 | |||
| enabled frei0r && { check_header frei0r.h || die "ERROR: frei0r.h header not found"; } | |||
| enabled gnutls && require_pkg_config gnutls gnutls/gnutls.h gnutls_global_init | |||
| enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac | |||
| enabled libfdk_aac && require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac | |||
| enabled libfreetype && require_pkg_config freetype2 "ft2build.h freetype/freetype.h" FT_Init_FreeType | |||
| 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 libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame | |||
| 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/cv.h cvCreateImageHeader | |||
| enabled libopenjpeg && require libopenjpeg openjpeg.h opj_version -lopenjpeg | |||
| enabled libopus && require_pkg_config opus opus_multistream.h opus_multistream_decoder_create | |||
| enabled libpulse && require_pkg_config libpulse-simple pulse/simple.h pa_simple_new | |||
| enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket | |||
| enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init | |||
| enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex | |||
| enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg | |||
| 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"; } | |||
| 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 VPX_CQ" -lvpx || | |||
| die "ERROR: libvpx encoder version must be >=0.9.6"; } | |||
| enabled libvpx_vp9_decoder && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_vp9_dx" -lvpx || disable libvpx_vp9_decoder; } | |||
| die "ERROR: libvpx encoder version must be >=0.9.6"; } | |||
| 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" -lvpx || disable libvpx_vp9_encoder; } } | |||
| enabled libwavpack && require libwavpack wavpack/wavpack.h WavpackOpenFileOutput -lwavpack | |||
| enabled libx264 && require libx264 x264.h x264_encoder_encode -lx264 && | |||
| { check_cpp_condition x264.h "X264_BUILD >= 118" || | |||
| die "ERROR: libx264 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 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"; } | |||
| enabled libwavpack && require libwavpack wavpack/wavpack.h WavpackOpenFileOutput -lwavpack | |||
| enabled libx264 && require libx264 x264.h x264_encoder_encode -lx264 && | |||
| { check_cpp_condition x264.h "X264_BUILD >= 118" || | |||
| die "ERROR: libx264 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 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; } || | |||
| @@ -3795,7 +3802,8 @@ check_header sndio.h | |||
| check_header sys/soundcard.h | |||
| check_header soundcard.h | |||
| enabled_any alsa_indev alsa_outdev && check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound | |||
| 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 jack_port_get_latency_range -ljack | |||
| @@ -3803,7 +3811,8 @@ enabled jack_indev && check_lib2 jack/jack.h jack_client_open -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 | |||
| 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 | |||
| fi | |||
| enabled x11grab && | |||
| @@ -3948,9 +3957,10 @@ elif enabled pathscale; then | |||
| elif enabled_any msvc icl; then | |||
| enabled x86_32 && disable aligned_stack | |||
| if enabled icl; then | |||
| # basically -fstrict-aliasing for icl that doesn't work (correctly) on 13.x+ | |||
| # basically -fstrict-aliasing that does not work (correctly) on icl 13.x | |||
| check_cpp_condition "windows.h" "__ICL < 1300" && add_cflags -Qansi-alias | |||
| # icl will pass the inline asm tests but inline asm is currently not supported (build will fail) | |||
| # icl will pass the inline asm tests but inline asm is currently | |||
| # not supported (build will fail) | |||
| disable inline_asm | |||
| fi | |||
| fi | |||
| @@ -4273,10 +4283,10 @@ enabled movie_filter && prepend lavfi_libs "libavformat >= $LIBAVFORMAT_VERSI | |||
| enabled resample_filter && prepend lavfi_libs "libavresample >= $LIBAVRESAMPLE_VERSION," | |||
| enabled scale_filter && prepend lavfi_libs "libswscale >= $LIBSWSCALE_VERSION," | |||
| pkgconfig_generate libavutil "Libav utility library" "$LIBAVUTIL_VERSION" "$LIBM" | |||
| pkgconfig_generate libavcodec "Libav codec library" "$LIBAVCODEC_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION" | |||
| pkgconfig_generate libavformat "Libav container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec = $LIBAVCODEC_VERSION" | |||
| pkgconfig_generate libavdevice "Libav device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "libavformat = $LIBAVFORMAT_VERSION" | |||
| pkgconfig_generate libavfilter "Libav video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" "$lavfi_libs" | |||
| pkgconfig_generate libavutil "Libav utility library" "$LIBAVUTIL_VERSION" "$LIBM" | |||
| pkgconfig_generate libavcodec "Libav codec library" "$LIBAVCODEC_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION" | |||
| pkgconfig_generate libavformat "Libav container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec = $LIBAVCODEC_VERSION" | |||
| pkgconfig_generate libavdevice "Libav device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "libavformat = $LIBAVFORMAT_VERSION" | |||
| pkgconfig_generate libavfilter "Libav video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" "$lavfi_libs" | |||
| pkgconfig_generate libavresample "Libav audio resampling library" "$LIBAVRESAMPLE_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION" | |||
| pkgconfig_generate libswscale "Libav image rescaling library" "$LIBSWSCALE_VERSION" "$LIBM" "libavutil = $LIBAVUTIL_VERSION" | |||
| pkgconfig_generate libswscale "Libav image rescaling library" "$LIBSWSCALE_VERSION" "$LIBM" "libavutil = $LIBAVUTIL_VERSION" | |||