]> git.sesse.net Git - ffmpeg/blobdiff - configure
Move pixdesc.{h,c} from libavcodec to libavutil.
[ffmpeg] / configure
index 6323bfbcb5a8c5c5016995a944609a21e9a5183c..b3d99a135bf037301e882da2367cbb0b04784c9e 100755 (executable)
--- a/configure
+++ b/configure
@@ -99,6 +99,7 @@ show_help(){
   echo "  --disable-aandct         disable AAN DCT code"
   echo "  --disable-fft            disable FFT code"
   echo "  --disable-golomb         disable Golomb code"
+  echo "  --disable-lpc            disable LPC code"
   echo "  --disable-mdct           disable MDCT code"
   echo "  --disable-rdft           disable RDFT code"
   echo "  --disable-vaapi          disable VAAPI code"
@@ -572,7 +573,8 @@ check_asm(){
     name="$1"
     asm="$2"
     shift 2
-    check_as "$@" <<EOF && enable $name || disable $name
+    disable $name
+    check_as "$@" <<EOF && enable $name
 void foo(void){ __asm__ volatile($asm); }
 EOF
 }
@@ -835,6 +837,7 @@ CONFIG_LIST="
     libvorbis
     libx264
     libxvid
+    lpc
     mdct
     memalign_hack
     mlib
@@ -1065,6 +1068,7 @@ inline_asm_deps="!tms470"
 aac_decoder_select="fft mdct"
 aac_encoder_select="fft mdct"
 ac3_decoder_select="fft mdct"
+alac_encoder_select="lpc"
 atrac3_decoder_select="fft mdct"
 cavs_decoder_select="golomb"
 cook_decoder_select="fft mdct"
@@ -1078,7 +1082,7 @@ eatgq_decoder_select="aandct"
 eatqi_decoder_select="aandct"
 ffv1_decoder_select="golomb"
 flac_decoder_select="golomb"
-flac_encoder_select="golomb"
+flac_encoder_select="golomb lpc"
 flashsv_decoder_select="zlib"
 flashsv_encoder_select="zlib"
 flv_encoder_select="h263_encoder"
@@ -1197,12 +1201,12 @@ mp4_muxer_select="mov_muxer"
 mpegtsraw_demuxer_select="mpegts_demuxer"
 mxf_d10_muxer_select="mxf_muxer"
 psp_muxer_select="mov_muxer"
-redir_demuxer_deps="network"
 rtp_muxer_deps="network rtp_protocol"
 rtsp_demuxer_deps="sdp_demuxer"
 sdp_demuxer_deps="rtp_protocol mpegts_demuxer"
 tg2_muxer_select="mov_muxer"
 tgp_muxer_select="mov_muxer"
+w64_demuxer_deps="wav_demuxer"
 
 # indevs / outdevs
 alsa_indev_deps="alsa_asoundlib_h snd_pcm_htimestamp"
@@ -1260,6 +1264,7 @@ shlibdir_default="$libdir_default"
 # toolchain
 ar="ar"
 cc_default="gcc"
+cc_version=\"unknown\"
 host_cc_default="gcc"
 ln_s="ln -sf"
 nm_default="nm"
@@ -1515,24 +1520,29 @@ filter_asflags=echo
 
 if   $cc -v 2>&1 | grep -qi ^gcc; then
     cc_type=gcc
+    cc_version=__VERSION__
     if ! $cc -dumpversion | grep -q '^2\.'; then
         CC_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@'
         AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@'
     fi
 elif $cc --version 2>/dev/null | grep -q Intel; then
     cc_type=icc
+    cc_version="AV_STRINGIFY(__INTEL_COMPILER)"
     CC_DEPFLAGS='-MMD'
     AS_DEPFLAGS='-MMD'
 elif $cc -v 2>&1 | grep -q xlc; then
     cc_type=xlc
+    cc_version="AV_STRINGIFY(__IBMC__)"
 elif $cc -V 2>/dev/null | grep -q Compaq; then
     cc_type=ccc
+    cc_version="AV_STRINGIFY(__DECC_VER)"
     DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -M'
     debuglevel=3
     add_ldflags -Wl,-z,now # calls to libots crash without this
-elif $cc --vsn 2>/dev/null | grep -q RVCT; then
+elif $cc --vsn 2>/dev/null | grep -q "ARM C/C++ Compiler"; then
     test -d "$sysroot" || die "No valid sysroot specified."
     cc_type=armcc
+    cc_version="AV_STRINGIFY(__ARMCC_VERSION)"
     armcc_conf="$PWD/armcc.conf"
     $cc --arm_linux_configure                 \
         --arm_linux_config_file="$armcc_conf" \
@@ -1545,6 +1555,7 @@ elif $cc --vsn 2>/dev/null | grep -q RVCT; then
     AS_DEPFLAGS='-MMD'
 elif $cc -version 2>/dev/null | grep -q TMS470; then
     cc_type=tms470
+    cc_version="AV_STRINGIFY(__TI_COMPILER_VERSION__)"
     cc="$cc --gcc --abi=eabi -eo=.o -mc -me"
     CC_O='-fr=$(@D)'
     as_default="${cross_prefix}gcc"
@@ -1571,13 +1582,18 @@ elif $cc -version 2>/dev/null | grep -q TMS470; then
                     ;;
                 -mfpu=neon)     echo --float_support=vfpv3 --neon ;;
                 -mfpu=vfp)      echo --float_support=vfpv2        ;;
-                -mfpu=softvfp)  echo --float_support=vfplib       ;;
+                -msoft-float)   echo --float_support=vfplib       ;;
                 -Os)            echo -O3 -mf=2                    ;;
                 -O[0-3])        echo $flag -mf=5                  ;;
                 -g)             echo -g -mn                       ;;
             esac
         done
     }
+elif $cc -v 2>&1 | grep -q clang; then
+    cc_type=clang
+    cc_version=__VERSION__
+    CC_DEPFLAGS='-MMD'
+    AS_DEPFLAGS='-MMD'
 fi
 
 test -n "$cc_type" && enable $cc_type || echolog "Unknown C compiler $cc"
@@ -1603,6 +1619,10 @@ if test -n "$sysroot"; then
             add_cppflags -I"$sysinclude"
             add_ldflags  --sysroot="$sysroot"
         ;;
+        clang)
+            add_cppflags -isysroot="$sysroot"
+            add_ldflags -isysroot="$sysroot"
+        ;;
     esac
 fi
 
@@ -1655,7 +1675,7 @@ case $cpu in
         disable cmov
     ;;
     # targets that do support conditional mov (cmov)
-    i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64|k8|opteron|athlon-fx|core2)
+    i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64|k8|opteron|athlon-fx|core2|amdfam10)
         cpuflags="-march=$cpu"
         enable cmov
         enable fast_cmov
@@ -1808,20 +1828,17 @@ case "$arch" in
         enable fast_64bit
         spic=$shared
     ;;
-    i386|i486|i586|i686|i86pc|BePC)
+    i386|i486|i586|i686|i86pc|BePC|x86_64|amd64)
         arch="x86"
         subarch="x86_32"
         enable fast_unaligned
-    ;;
-    x86_64|amd64)
-        arch="x86"
-        subarch="x86_32"
-        enable cmov
-        enable fast_cmov
-        enable fast_unaligned
         check_cc <<EOF && enable fast_64bit && subarch="x86_64" && spic=$shared
         int test[sizeof(char*) - 7];
 EOF
+        if test "$subarch" = "x86_64"; then
+            enable cmov
+            enable fast_cmov
+        fi
     ;;
     *)
         arch="unknown"
@@ -1863,6 +1880,7 @@ case $target_os in
     sunos)
         FFSERVERLDFLAGS=""
         SHFLAGS='-shared -Wl,-h,$$(@F)'
+        enabled x86 && SHFLAGS="-mimpure-text $SHFLAGS"
         network_extralibs="-lsocket -lnsl"
         add_cppflags -D__EXTENSIONS__
         ;;
@@ -1895,7 +1913,7 @@ case $target_os in
         FFSERVERLDFLAGS=-Wl,-bind_at_load
         objformat="macho"
         enabled x86_64 && objformat="macho64"
-        enabled shared ||
+        enabled_any pic shared ||
             { check_cflags -mdynamic-no-pic && add_asflags -mdynamic-no-pic; }
         ;;
     mingw32*)
@@ -2051,11 +2069,14 @@ check_deps $ARCH_EXT_LIST
 
 disabled optimizations || check_cflags -fomit-frame-pointer
 
-if enabled pic; then
+enable_pic() {
+    enable pic
     add_cppflags -DPIC
     add_cflags   -fPIC
     add_asflags  -fPIC
-fi
+}
+
+enabled pic && enable_pic
 
 check_cc <<EOF || die "Symbol mangling check failed."
 int ff_extern;
@@ -2085,6 +2106,8 @@ od -A n -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian
 
 if enabled arm; then
 
+    check_cflags -marm
+
     check_ld <<EOF && enable vfp_args
 __asm__ (".eabi_attribute 28, 1");
 int main(void) { return 0; }
@@ -2100,6 +2123,8 @@ EOF
     enabled iwmmxt  && check_asm iwmmxt  '"wunpckelub wr6, wr4"'
     enabled neon    && check_asm neon    '"vadd.i16 q0, q0, q0"'
 
+    enabled_all armv6t2 shared !pic && enable_pic
+
 elif enabled mips; then
 
     check_asm loongson '"dmult.g $1, $2, $3"'
@@ -2153,8 +2178,9 @@ elif enabled x86; then
     return i;
 EOF
 
-    # check wether EBX is available on x86
-    check_asm ebx_available '"":::"%ebx"'
+    # check whether EBX is available on x86
+    check_asm ebx_available '""::"b"(0)' &&
+        check_asm ebx_available '"":::"%ebx"'
 
     # check whether more than 10 operands are supported
     check_cc <<EOF && enable ten_operands
@@ -2284,8 +2310,8 @@ enabled libspeex   && require  libspeex speex/speex.h speex_decoder_init -lspeex
 enabled libtheora  && require  libtheora theora/theora.h theora_info_init -ltheora -logg
 enabled libvorbis  && require  libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbisenc -lvorbis -logg
 enabled libx264    && require  libx264 x264.h x264_encoder_encode -lx264 -lm &&
-                      { check_cpp_condition x264.h "X264_BUILD >= 65" ||
-                        die "ERROR: libx264 version must be >= 0.65."; }
+                      { check_cpp_condition x264.h "X264_BUILD >= 78" ||
+                        die "ERROR: libx264 version must be >= 0.78."; }
 enabled libxvid    && require  libxvid xvid.h xvid_global -lxvidcore
 enabled mlib       && require  mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
 
@@ -2447,6 +2473,8 @@ elif enabled ccc; then
     add_cflags -msg_disable unreachcode
 elif enabled gcc; then
     check_cflags -fno-tree-vectorize
+elif enabled clang; then
+    check_cflags -Qunused-arguments
 fi
 
 if enabled gprof; then
@@ -2702,6 +2730,8 @@ echo "#define FFMPEG_CONFIG_H" >> $TMPH
 echo "#define FFMPEG_CONFIGURATION \"$(c_escape $FFMPEG_CONFIGURATION)\"" >> $TMPH
 echo "#define FFMPEG_DATADIR \"$(eval c_escape $datadir)\"" >> $TMPH
 
+echo "#define CC_TYPE \"$cc_type\"" >> $TMPH
+echo "#define CC_VERSION $cc_version" >> $TMPH
 echo "#define restrict $_restrict" >> $TMPH
 
 if enabled small || disabled optimizations; then
@@ -2715,6 +2745,7 @@ enabled asmalign_pot &&
     printf '#define ASMALIGN(ZEROBITS) ".align 1 << " #ZEROBITS "\\n\\t"\n' >> $TMPH
 
 echo "#define EXTERN_PREFIX \"${extern_prefix}\"" >> $TMPH
+echo "#define EXTERN_ASM ${extern_prefix}" >> $TMPH
 
 print_config ARCH_   $TMPH config.mak $ARCH_LIST
 print_config HAVE_   $TMPH config.mak $HAVE_LIST