X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=a5407c7c5b91611b3096b25a913839509532ee18;hb=4127e6aeb6e9ef53f5acf06e99c06f4b2c0cce34;hp=0e6b450fae6c133bd662a39f5b493f7065e0171f;hpb=ef5b70affc6376bfeadd1ff649b79bad9a124fa8;p=ffmpeg diff --git a/configure b/configure index 0e6b450fae6..a5407c7c5b9 100755 --- a/configure +++ b/configure @@ -81,6 +81,7 @@ Standard options: --prefix=PREFIX install in PREFIX [$prefix] --bindir=DIR install binaries in DIR [PREFIX/bin] --datadir=DIR install data files in DIR [PREFIX/share/avconv] + --docdir=DIR install documentation in DIR [PREFIX/share/doc/libav] --libdir=DIR install libs in DIR [PREFIX/lib] --shlibdir=DIR install shared libs in DIR [PREFIX/lib] --incdir=DIR install includes in DIR [PREFIX/include] @@ -173,7 +174,7 @@ Individual component options: --disable-filters disable all filters External library support: - --enable-avisynth enable reading of AVISynth script files [no] + --enable-avisynth enable reading of AviSynth script files [no] --enable-bzlib enable bzlib [autodetect] --enable-frei0r enable frei0r video filtering --enable-gnutls enable gnutls [no] @@ -181,7 +182,7 @@ External library support: --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394 and libraw1394 [no] --enable-libfaac enable AAC encoding via libfaac [no] - --enable-libfdk-aac enable AAC encoding via libfdk-aac [no] + --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no] --enable-libfreetype enable libfreetype [no] --enable-libgsm enable GSM de/encoding via libgsm [no] --enable-libilbc enable iLBC de/encoding via libilbc [no] @@ -201,7 +202,9 @@ External library support: --enable-libvorbis enable Vorbis encoding via libvorbis [no] --enable-libvpx enable VP8 and VP9 de/encoding via libvpx [no] --enable-libwavpack enable wavpack encoding via libwavpack [no] + --enable-libwebp enable WebP encoding via libwebp [no] --enable-libx264 enable H.264 encoding via x264 [no] + --enable-libx265 enable HEVC encoding via x265 [no] --enable-libxavs enable AVS encoding via xavs [no] --enable-libxvid enable Xvid encoding via xvidcore, native MPEG-4/Xvid encoder exists [no] @@ -268,6 +271,7 @@ Optimization options (experts only): --disable-sse42 disable SSE4.2 optimizations --disable-avx disable AVX optimizations --disable-fma4 disable FMA4 optimizations + --disable-avx2 disable AVX2 optimizations --disable-armv5te disable armv5te optimizations --disable-armv6 disable armv6 optimizations --disable-armv6t2 disable armv6t2 optimizations @@ -284,6 +288,8 @@ Developer options (useful when working on Libav itself): --enable-extra-warnings enable more compiler warnings --samples=PATH location of test samples for FATE, if not set use \$LIBAV_SAMPLES at make invocation time. + --enable-neon-clobber-test check NEON registers for clobbering (should be + used only for debugging purposes) --enable-xmm-clobber-test check XMM registers for clobbering (Win64-only; should be used only for debugging purposes) --enable-random randomly enable/disable components @@ -328,7 +334,7 @@ die(){ If you think configure made a mistake, make sure you are using the latest version from Git. If the latest version fails, report the problem to the -libav-user@libav.org mailing list or IRC #libav on irc.freenode.net. +libav-tools@libav.org mailing list or IRC #libav on irc.freenode.net. EOF if disabled logging; then cat <" +} + check_code(){ log check_code "$@" check=$1 @@ -764,7 +781,7 @@ check_code(){ shift 3 { for hdr in $headers; do - echo "#include <$hdr>" + print_include $hdr done echo "int main(void) { $code; return 0; }" } | check_$check "$@" @@ -777,14 +794,19 @@ int x; EOF } -check_cflags(){ - log check_cflags "$@" +test_cflags(){ + log test_cflags "$@" set -- $($cflags_filter "$@") - check_cc "$@" <" + print_include $hdr done for func in $funcs; do echo "long check_$func(void) { return (long) $func; }" @@ -884,7 +920,7 @@ check_pkg_config(){ headers="$2" funcs="$3" shift 3 - $pkg_config --exists $pkg || return + 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 "$@" && @@ -979,6 +1015,10 @@ require_pkg_config(){ add_extralibs $(get_safe ${pkg}_libs) } +hostcc_e(){ + eval printf '%s\\n' $HOSTCC_E +} + hostcc_o(){ eval printf '%s\\n' $HOSTCC_O } @@ -990,6 +1030,13 @@ check_host_cc(){ 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 @@ -1034,6 +1094,11 @@ COMPONENT_LIST=" protocols " +EXAMPLE_LIST=" + output_example + transcode_aac_example +" + EXTERNAL_LIBRARY_LIST=" avisynth bzlib @@ -1062,7 +1127,9 @@ EXTERNAL_LIBRARY_LIST=" libvorbis libvpx libwavpack + libwebp libx264 + libx265 libxavs libxvid openssl @@ -1095,6 +1162,7 @@ PROGRAM_LIST=" CONFIG_LIST=" $COMPONENT_LIST + $EXAMPLE_LIST $EXTERNAL_LIBRARY_LIST $HWACCEL_LIST $LIBRARY_LIST @@ -1110,8 +1178,10 @@ CONFIG_LIST=" lzo mdct memalign_hack + neon_clobber_test network nonfree + pod2man pic rdft runtime_cpudetect @@ -1121,6 +1191,7 @@ CONFIG_LIST=" sram static swscale_alpha + texi2html thumb version3 xmm_clobber_test @@ -1177,7 +1248,9 @@ ARCH_EXT_LIST_X86=' amd3dnow amd3dnowext avx + avx2 fma4 + i686 mmx mmxext sse @@ -1290,7 +1363,6 @@ HAVE_LIST=" gettimeofday gnu_as gsm_h - i686 ibm_asm inet_aton io_h @@ -1298,6 +1370,7 @@ HAVE_LIST=" isatty jack_port_get_latency_range ldbrx + libc_msvcrt libdc1394_1 libdc1394_2 local_aligned_16 @@ -1315,10 +1388,10 @@ HAVE_LIST=" mm_empty mmap mprotect - msvcrt nanosleep poll_h posix_memalign + pragma_deprecated rdtsc sched_getaffinity sdl @@ -1353,15 +1426,18 @@ HAVE_LIST=" sys_select_h sys_soundcard_h sys_time_h + sys_un_h sys_videoio_h threads unistd_h usleep + vdpau_x11 vfp_args VirtualAlloc windows_h winsock2_h xform_asm + xlib xmm_clobbers " @@ -1374,12 +1450,14 @@ CONFIG_EXTRA=" gcrypt golomb gplv3 + h263dsp h264chroma h264dsp h264pred h264qpel hpeldsp huffman + intrax8 lgplv3 lpc mpegaudio @@ -1388,6 +1466,8 @@ CONFIG_EXTRA=" mpegvideoenc nettle rangecoder + riffdec + riffenc rtpdec rtpenc_chain sinewin @@ -1412,6 +1492,7 @@ CMDLINE_SELECT=" PATHS_LIST=' bindir datadir + docdir incdir libdir mandir @@ -1465,8 +1546,8 @@ CMDLINE_APPEND=" armv5te_deps="arm" armv6_deps="arm" armv6t2_deps="arm" -neon_deps="arm" -vfp_deps="arm" +neon_deps_any="aarch64 arm" +vfp_deps_any="aarch64 arm" vfpv3_deps="vfp" map 'eval ${v}_inline_deps=inline_asm' $ARCH_EXT_LIST_ARM @@ -1476,10 +1557,13 @@ ppc4xx_deps="ppc" vis_deps="sparc" -x86_64_suggest="fast_cmov i686" +cpunop_deps="i686" +x86_64_select="i686" +x86_64_suggest="fast_cmov" amd3dnow_deps="mmx" amd3dnowext_deps="amd3dnow" +i686_deps="x86" mmx_deps="x86" mmxext_deps="mmx" sse_deps="mmxext" @@ -1490,6 +1574,7 @@ sse4_deps="ssse3" sse42_deps="sse4" avx_deps="sse42" fma4_deps="avx" +avx2_deps="avx" mmx_external_deps="yasm" mmx_inline_deps="inline_asm" @@ -1502,17 +1587,24 @@ for ext in $(filter_out mmx $ARCH_EXT_LIST_X86); do 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" +aligned_stack_if_any="aarch64 ppc x86" +fast_64bit_if_any="aarch64 alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" +fast_clz_if_any="aarch64 alpha avr32 mips ppc x86" +fast_unaligned_if_any="aarch64 ppc x86" -inline_asm_deps="!tms470" need_memalign="altivec neon sse" +# system capabilities +log2_deps="!libc_msvcrt" + symver_if_any="symver_asm_label symver_gnu_asm" -log2_deps="!msvcrt" +# 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" @@ -1545,6 +1637,7 @@ asv2_decoder_select="dsputil" asv2_encoder_select="dsputil" atrac1_decoder_select="mdct sinewin" atrac3_decoder_select="mdct" +atrac3p_decoder_select="mdct sinewin" bink_decoder_select="dsputil hpeldsp" binkaudio_dct_decoder_select="mdct rdft dct sinewin" binkaudio_rdft_decoder_select="mdct rdft sinewin" @@ -1559,7 +1652,7 @@ dnxhd_decoder_select="dsputil" dnxhd_encoder_select="aandcttables dsputil mpegvideoenc" dvvideo_decoder_select="dsputil" dvvideo_encoder_select="dsputil" -dxa_decoder_select="zlib" +dxa_decoder_deps="zlib" eac3_decoder_select="ac3_decoder" eac3_encoder_select="ac3_encoder" eamad_decoder_select="aandcttables dsputil mpegvideo" @@ -1569,24 +1662,27 @@ ffv1_decoder_select="dsputil golomb rangecoder" ffv1_encoder_select="dsputil rangecoder" ffvhuff_decoder_select="dsputil" ffvhuff_encoder_select="dsputil huffman" +fic_decoder_select="dsputil golomb" flac_decoder_select="golomb" flac_encoder_select="dsputil golomb lpc" -flashsv_decoder_select="zlib" -flashsv_encoder_select="zlib" -flashsv2_decoder_select="zlib" +flashsv_decoder_deps="zlib" +flashsv_encoder_deps="zlib" +flashsv2_decoder_deps="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" +g2m_decoder_deps="zlib" +g2m_decoder_select="dsputil" h261_decoder_select="error_resilience mpegvideo" h261_encoder_select="aandcttables mpegvideoenc" -h263_decoder_select="error_resilience h263_parser mpegvideo" -h263_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" @@ -1600,6 +1696,7 @@ 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" mjpegb_decoder_select="dsputil hpeldsp" @@ -1636,17 +1733,19 @@ mxpeg_decoder_select="dsputil hpeldsp" nellymoser_decoder_select="mdct sinewin" nellymoser_encoder_select="audio_frame_queue mdct sinewin" nuv_decoder_select="dsputil lzo" -png_decoder_select="dsputil zlib" -png_encoder_select="dsputil zlib" +png_decoder_deps="zlib" +png_decoder_select="dsputil" +png_encoder_deps="zlib" +png_encoder_select="dsputil" 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" -rv10_decoder_select="error_resilience h263_decoder" +rv10_decoder_select="error_resilience h263_decoder h263dsp" rv10_encoder_select="h263_encoder" -rv20_decoder_select="error_resilience h263_decoder" +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" @@ -1665,12 +1764,12 @@ thp_decoder_select="dsputil hpeldsp" truehd_decoder_select="mlp_decoder" truemotion2_decoder_select="dsputil" truespeech_decoder_select="dsputil" -tscc_decoder_select="zlib" +tscc_decoder_deps="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" +vc1_decoder_select="error_resilience h263_decoder h264chroma h264qpel intrax8" vc1image_decoder_select="vc1_decoder" vorbis_decoder_select="mdct" vorbis_encoder_select="mdct" @@ -1680,6 +1779,8 @@ 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" @@ -1688,15 +1789,15 @@ 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_decoder_select="h263_decoder intrax8 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" +zerocodec_decoder_deps="zlib" +zlib_decoder_deps="zlib" +zlib_encoder_deps="zlib" +zmbv_decoder_deps="zlib" +zmbv_encoder_deps="zlib" # hardware accelerators dxva2_deps="dxva2api_h" @@ -1715,14 +1816,8 @@ h264_vaapi_hwaccel_deps="vaapi" h264_vaapi_hwaccel_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" -mpeg1_vdpau_decoder_deps="vdpau" -mpeg1_vdpau_decoder_select="mpeg1video_decoder" mpeg1_vdpau_hwaccel_deps="vdpau" mpeg1_vdpau_hwaccel_select="mpeg1video_decoder" mpeg2_dxva2_hwaccel_deps="dxva2" @@ -1733,21 +1828,16 @@ mpeg2_vdpau_hwaccel_deps="vdpau" mpeg2_vdpau_hwaccel_select="mpeg2video_decoder" 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" 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_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 @@ -1759,6 +1849,7 @@ vc1_parser_select="mpegvideo" # external libraries 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" libgsm_decoder_deps="libgsm" @@ -1794,28 +1885,46 @@ 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" +libx265_encoder_deps="libx265" libxavs_encoder_deps="libxavs" libxvid_encoder_deps="libxvid" # 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" +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" 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="rtpenc_chain" +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" @@ -1830,13 +1939,20 @@ spdif_muxer_select="aac_parser" tak_demuxer_select="tak_parser" tg2_muxer_select="mov_muxer" tgp_muxer_select="mov_muxer" -w64_demuxer_deps="wav_demuxer" +w64_demuxer_select="wav_demuxer" +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" -dv1394_indev_deps="dv1394 dv_demuxer" +dv1394_indev_deps="dv1394" +dv1394_indev_select="dv_demuxer" fbdev_indev_deps="linux_fb_h" jack_indev_deps="jack_jack_h pthreads" libcdio_indev_deps="libcdio" @@ -1884,6 +2000,8 @@ 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 blackframe_filter_deps="gpl" @@ -1900,7 +2018,10 @@ interlace_filter_deps="gpl" resample_filter_deps="avresample" ocv_filter_deps="libopencv" scale_filter_deps="swscale" -yadif_filter_deps="gpl" + +# examples +output_example_deps="avcodec avformat avutil swscale" +transcode_aac_example_deps="avcodec avformat avresample" # libraries avcodec_deps="avutil" @@ -1916,12 +2037,15 @@ avconv_select="aformat_filter anull_filter asyncts_filter atrim_filter format_fi fps_filter null_filter resample_filter scale_filter setpts_filter trim_filter" avplay_deps="avcodec avformat avresample swscale sdl" +avplay_libs='$sdl_libs' avplay_select="rdft" avprobe_deps="avcodec avformat" -avserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer !shared" -avserver_extralibs='$ldl' +avserver_deps="avformat fork !shared" +avserver_select="ffm_muxer rtp_protocol rtsp_demuxer" -doc_deps="texi2html" +# documentation +pod2man_deps="doc" +texi2html_deps="doc" # default parameters @@ -1931,6 +2055,7 @@ logfile="config.log" prefix_default="/usr/local" bindir_default='${prefix}/bin' datadir_default='${prefix}/share/avconv' +docdir_default='${prefix}/share/doc/libav' incdir_default='${prefix}/include' libdir_default='${prefix}/lib' mandir_default='${prefix}/share/man' @@ -1946,6 +2071,7 @@ nm_default="nm -g" objformat="elf" pkg_config_default=pkg-config ranlib="ranlib" +strip="strip" yasmexe="yasm" nogas=":" @@ -1959,7 +2085,7 @@ target_os_default=$(tolower $(uname -s)) host_os=$target_os_default # configurable options -enable $LIBRARY_LIST $PROGRAM_LIST +enable $EXAMPLE_LIST $LIBRARY_LIST $PROGRAM_LIST enable asm enable debug @@ -1974,7 +2100,6 @@ enable dxva2 vdpau # build settings SHFLAGS='-shared -Wl,-soname,$$(@F)' -AVSERVERLDFLAGS=-Wl,-E LIBPREF="lib" LIBSUF=".a" FULLNAME='$(NAME)$(BUILDSUF)' @@ -2001,11 +2126,10 @@ 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 -g' -host_cppflags='-D_ISOC99_SOURCE -D_XOPEN_SOURCE=600' host_libs='-lm' host_cflags_filter=echo host_ldflags_filter=echo @@ -2205,6 +2329,7 @@ cc_default="${cross_prefix}${cc_default}" nm_default="${cross_prefix}${nm_default}" pkg_config_default="${cross_prefix}${pkg_config_default}" ranlib="${cross_prefix}${ranlib}" +strip="${cross_prefix}${strip}" sysinclude_default="${sysroot}/usr/include" @@ -2238,23 +2363,44 @@ case "$toolchain" in target_exec_args="--track-origins=yes --leak-check=full" ;; msvc) - cc_default="c99wrap cl" - ld_default="c99wrap link" + # 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 libav. 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="c99wrap -noconv icl" - ld_default="c99wrap xilink" + 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" ;; @@ -2345,6 +2491,18 @@ ccc_flags(){ done } +cparser_flags(){ + for flag; do + case $flag in + -Wno-switch) echo -Wno-switch-enum ;; + -Wno-format-zero-length) ;; + -Wdisabled-optimization) ;; + -Wno-pointer-sign) echo -Wno-other ;; + *) echo $flag ;; + esac + done +} + msvc_common_flags(){ for flag; do case $flag in @@ -2378,7 +2536,7 @@ msvc_flags(){ -Wall) echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \ -wd4146 -wd4057 -wd4204 -wd4706 -wd4305 \ -wd4152 -wd4324 -we4013 -wd4100 -wd4214 \ - -wd4996 -wd4273 ;; + -wd4273 ;; esac done } @@ -2548,7 +2706,7 @@ probe_cc(){ elif $_cc -v 2>&1 | grep -q clang; then _type=clang _ident=$($_cc --version | head -n1) - _depflags='-MMD' + _depflags='-MMD -MF $(@:.o=.d) -MT $@' _cflags_speed='-O3' _cflags_size='-Os' elif $_cc -V 2>&1 | grep -q Sun; then @@ -2589,20 +2747,18 @@ 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. if $_cc 2>&1 | grep -q Linker; then - _ld_o='-out $@' + _ld_o='-out:$@' else _ld_o='-Fe$@' fi - _cc_o='-Fo $@' - _cc_e='-P -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 -Dinline=__inline -FIstdlib.h -Dstrtoll=_strtoi64' + _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 @@ -2614,14 +2770,12 @@ probe_cc(){ # 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. if $_cc 2>&1 | grep -q Linker; then - _ld_o='-out $@' + _ld_o='-out:$@' else _ld_o='-Fe$@' fi - _cc_o='-Fo $@' + _cc_o='-Fo$@' _cc_e='-P' _flags_filter=icl_flags _ld_lib='lib%.a' @@ -2634,6 +2788,13 @@ probe_cc(){ 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 @@ -2708,6 +2869,9 @@ if $ar 2>&1 | grep -q Microsoft; then 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='$@' @@ -3006,8 +3170,10 @@ check_cc -D_LARGEFILE_SOURCE < EOF +add_host_cppflags -D_ISOC99_SOURCE check_host_cflags -std=c99 check_host_cflags -Wall +check_host_cflags -O3 check_64bit(){ arch32=$1 @@ -3051,7 +3217,9 @@ enabled spic && enable_weak pic # OS specific case $target_os in aix) + SHFLAGS=-shared add_cppflags '-I\$(SRC_PATH)/compat/aix' + enabled shared && add_ldflags -Wl,-brtl ;; haiku) prefix_default="/boot/common" @@ -3059,11 +3227,9 @@ case $target_os in host_libs= ;; sunos) - AVSERVERLDFLAGS="" SHFLAGS='-shared -Wl,-h,$$(@F)' enabled x86 && SHFLAGS="-mimpure-text $SHFLAGS" network_extralibs="-lsocket -lnsl" - add_cppflags -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 # When using suncc to build, the Solaris linker will mark # an executable with each instruction set encountered by # the Solaris assembler. As our libraries contain their own @@ -3104,7 +3270,6 @@ case $target_os in SLIBSUF=".dylib" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)' SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)' - AVSERVERLDFLAGS=-Wl,-bind_at_load objformat="macho" enabled x86_64 && objformat="macho64" enabled_any pic shared || @@ -3141,11 +3306,12 @@ case $target_os in 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 shared and static libs at the same time with MSVC. + # Cannot build both shared and static libs with MSVC or icl. disable static fi shlibdir_default="$bindir_default" @@ -3153,7 +3319,7 @@ case $target_os in SLIBSUF=".dll" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' - SLIB_CREATE_DEF_CMD='makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)' + 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)' @@ -3196,7 +3362,6 @@ case $target_os in add_cppflags -D_GNU_SOURCE add_ldflags -Zomf -Zbin-files -Zargs-wild -Zmap SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf' - AVSERVERLDFLAGS="" LIBSUF="_s.a" SLIBPREF="" SLIBSUF=".dll" @@ -3236,7 +3401,6 @@ case $target_os in ;; osf1) add_cppflags -D_OSF_SOURCE -D_POSIX_PII -D_REENTRANT - AVSERVERLDFLAGS= ;; minix) ;; @@ -3261,49 +3425,75 @@ esac # determine libc flavour -# uclibc defines __GLIBC__, so it needs to be checked before glibc. -if check_cpp_condition features.h "defined __UCLIBC__"; then - libc_type=uclibc - add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -elif check_cpp_condition features.h "defined __GLIBC__"; then - libc_type=glibc - add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -# MinGW headers can be installed on Cygwin, so check for newlib first. -elif check_cpp_condition newlib.h "defined _NEWLIB_VERSION"; then - libc_type=newlib - add_cppflags -U__STRICT_ANSI__ -elif check_header _mingw.h; then - libc_type=mingw - check_cpp_condition _mingw.h \ - "defined (__MINGW64_VERSION_MAJOR) || (__MINGW32_MAJOR_VERSION > 3) || \ +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 + 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: MinGW runtime version must be >= 3.15." - add_cppflags -U__STRICT_ANSI__ -elif check_func_headers stdlib.h _get_doserrno; then - libc_type=msvcrt - add_compat strtod.o strtod=avpriv_strtod - add_compat msvcrt/snprintf.o snprintf=avpriv_snprintf \ - _snprintf=avpriv_snprintf \ - vsnprintf=avpriv_vsnprintf - # 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_cpp_condition stdlib.h "defined(_WIN32_WINNT)" || add_cppflags -D_WIN32_WINNT=0x0502 -elif check_cpp_condition stddef.h "defined __KLIBC__"; then - libc_type=klibc -elif check_cpp_condition sys/cdefs.h "defined __BIONIC__"; then - libc_type=bionic - add_compat strtod.o strtod=avpriv_strtod -fi + 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 +} -test -n "$libc_type" && enable $libc_type +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 glibc; then +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 @@ -3311,7 +3501,7 @@ if enabled_all tms470 glibc; then add_cflags -pds=48 # incompatible redefinition of macro fi -if enabled_all ccc glibc; then +if enabled_all ccc libc_glibc; then add_ldflags -Wl,-z,now # calls to libots crash without this fi @@ -3343,6 +3533,7 @@ die_license_disabled() { die_license_disabled gpl libcdio die_license_disabled gpl libx264 +die_license_disabled gpl libx265 die_license_disabled gpl libxavs die_license_disabled gpl libxvid die_license_disabled gpl x11grab @@ -3393,6 +3584,10 @@ void foo(char * $restrict_keyword p); EOF done +check_cc <= 118" || die "ERROR: libx264 version must be >= 0.118."; } +enabled libx265 && require_pkg_config x265 x265.h x265_encoder_encode && + { check_cpp_condition x265.h "X265_BUILD >= 5" || + die "ERROR: libx265 version must be >= 5."; } 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 || @@ -3782,6 +3988,7 @@ if check_pkg_config sdl SDL_events.h SDL_PollEvent; then enable sdl fi +pod2man --help > /dev/null 2>&1 && enable pod2man || disable pod2man texi2html -version > /dev/null 2>&1 && enable texi2html || disable texi2html check_header linux/fb.h @@ -3821,27 +4028,30 @@ if enabled libcdio; then check_lib2 "cdio/paranoia/cdda.h cdio/paranoia/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio fi +check_lib X11/Xlib.h XOpenDisplay -lX11 && enable xlib + enabled x11grab && -require X11 X11/Xlib.h XOpenDisplay -lX11 && require Xext X11/extensions/XShm.h XShmCreateImage -lXext && -require Xfixes X11/extensions/Xfixes.h XFixesGetCursorImage -lXfixes +require Xfixes X11/extensions/Xfixes.h XFixesGetCursorImage -lXfixes && +{ enabled xlib || die "ERROR: Xlib not found"; } enabled vdpau && check_cpp_condition vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" || disable vdpau +enabled vdpau && enabled xlib && + check_func_headers "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau && + prepend avconv_libs $($ldflags_filter "-lvdpau") && + enable vdpau_x11 + 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 -Wno-parentheses -check_cflags -Wno-switch -check_cflags -Wno-format-zero-length check_cflags -Wdisabled-optimization check_cflags -Wpointer-arith check_cflags -Wredundant-decls -check_cflags -Wno-pointer-sign check_cflags -Wcast-qual check_cflags -Wwrite-strings check_cflags -Wtype-limits @@ -3850,19 +4060,45 @@ check_cflags -Wmissing-prototypes 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=libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample 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 || strip='true' + +enabled neon_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_video2 \ + -Wl,--wrap,avcodec_encode_subtitle \ + -Wl,--wrap,avresample_convert || + disable neon_clobber_test + 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,avresample_convert \ -Wl,--wrap,sws_scale || disable xmm_clobber_test @@ -3940,6 +4176,7 @@ elif enabled gcc; then check_cflags -Werror=return-type check_cflags -Werror=declaration-after-statement check_cflags -Werror=vla + enabled extra_warnings || check_disable_warning -Wno-maybe-uninitialized elif enabled llvm_gcc; then check_cflags -mllvm -stack-alignment=16 elif enabled clang; then @@ -3948,6 +4185,9 @@ elif enabled clang; then check_cflags -Werror=implicit-function-declaration check_cflags -Werror=missing-prototypes check_cflags -Werror=return-type +elif enabled cparser; then + add_cflags -Wno-missing-variable-declarations + add_cflags -Wno-empty-statement elif enabled armcc; then # 2523: use of inline assembler is deprecated add_cflags -W${armcc_opt},--diag_suppress=2523 @@ -3958,20 +4198,37 @@ elif enabled armcc; then add_cflags -W${armcc_opt},--diag_suppress=513 # pointer sign elif enabled tms470; then add_cflags -pds=824 -pds=837 + disable inline_asm elif enabled pathscale; then add_cflags -fstrict-overflow -OPT:wrap_around_unsafe_opt=OFF elif enabled_any msvc icl; then enabled x86_32 && disable aligned_stack enabled_all x86_32 debug && add_cflags -Oy- + enabled debug && add_ldflags -debug + enable pragma_deprecated if enabled icl; then - # basically -fstrict-aliasing that does not work (correctly) on icl 13.x - check_cpp_condition "windows.h" "__ICL < 1300" && add_cflags -Qansi-alias + # -Qansi-alias is basically -fstrict-aliasing, but does not work + # (correctly) on icl 13.x. + check_cpp_condition "windows.h" "__ICL < 1300 || __ICL >= 1400" && + add_cflags -Qansi-alias # icl will pass the inline asm tests but inline asm is currently # not supported (build will fail) disable inline_asm fi fi +case $as_type in + clang) + add_asflags -Qunused-arguments + ;; +esac + +case $ld_type in + clang) + check_ldflags -Qunused-arguments + ;; +esac + case $target_os in osf1) enabled ccc && add_ldflags '-Wl,-expect_unresolved,*' @@ -3981,9 +4238,6 @@ case $target_os in ;; esac -enabled_any $THREADS_LIST && enable threads -enabled_any $ATOMICS_LIST && enable atomics_native - enabled asm || { arch=c; disable $ARCH_LIST $ARCH_EXT_LIST; } check_deps $CONFIG_LIST \ @@ -3997,6 +4251,11 @@ check_deps $CONFIG_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" @@ -4021,6 +4280,10 @@ if enabled x86; then echo "EBX available ${ebx_available-no}" echo "EBP available ${ebp_available-no}" fi +if enabled aarch64; then + echo "NEON enabled ${neon-no}" + echo "VFP enabled ${vfp-no}" +fi if enabled arm; then echo "ARMv5TE enabled ${armv5te-no}" echo "ARMv6 enabled ${armv6-no}" @@ -4076,7 +4339,7 @@ echo "License: $license" echo "Creating config.mak and config.h..." -test -e Makefile || $ln_s "$source_path/Makefile" . +test -e Makefile || echo "include $source_path/Makefile" > Makefile config_files="$TMPH config.mak" @@ -4089,6 +4352,7 @@ SHLIBDIR=\$(DESTDIR)$shlibdir INCDIR=\$(DESTDIR)$incdir BINDIR=\$(DESTDIR)$bindir DATADIR=\$(DESTDIR)$datadir +DOCDIR=\$(DESTDIR)$docdir MANDIR=\$(DESTDIR)$mandir SRC_PATH=$source_path CC_IDENT=$cc_ident @@ -4106,6 +4370,7 @@ AR=$ar ARFLAGS=$arflags AR_O=$ar_o RANLIB=$ranlib +STRIP=$strip LN_S=$ln_s CPPFLAGS=$CPPFLAGS CFLAGS=$CFLAGS @@ -4120,8 +4385,8 @@ LD_LIB=$LD_LIB LD_PATH=$LD_PATH DLLTOOL=$dlltool LDFLAGS=$LDFLAGS -LDFLAGS-avserver=$AVSERVERLDFLAGS SHFLAGS=$(echo $($ldflags_filter $SHFLAGS)) +STRIPFLAGS=$STRIPFLAGS YASMFLAGS=$YASMFLAGS BUILDSUF=$build_suffix FULLNAME=$FULLNAME @@ -4156,7 +4421,6 @@ HOSTLD_O=$HOSTLD_O TARGET_EXEC=$target_exec $target_exec_args TARGET_PATH=$target_path TARGET_SAMPLES=${target_samples:-\$(SAMPLES)} -LIBS-avplay=$sdl_libs CFLAGS-avplay=$sdl_cflags ZLIB=$($ldflags_filter -lz) LIB_INSTALL_EXTRA_CMD=$LIB_INSTALL_EXTRA_CMD @@ -4190,6 +4454,13 @@ get_version(){ map 'get_version $v' $LIBRARY_LIST +print_program_libs(){ + eval "program_libs=\$${1}_libs" + eval echo "LIBS-${1}=${program_libs}" >> config.mak +} + +map 'print_program_libs $v' $PROGRAM_LIST + cat > $TMPH <