]> git.sesse.net Git - ffmpeg/blobdiff - configure
Use 'enabled' function instead of raw 'test' calls in arch checks.
[ffmpeg] / configure
index c8be8a6e21ee7d671d13ef416f8ce4b3722cef4b..6916df471bd16550a69b94e1d493bc343a41242f 100755 (executable)
--- a/configure
+++ b/configure
@@ -84,6 +84,7 @@ show_help(){
   echo "  --enable-beosthreads     use BeOS threads [no]"
   echo "  --enable-os2threads      use OS/2 threads [no]"
   echo "  --enable-pthreads        use pthreads [no]"
+  echo "  --enable-vdpau           enable VDPAU support [no]"
   echo "  --enable-w32threads      use Win32 threads [no]"
   echo "  --enable-x11grab         enable X11 grabbing [no]"
   echo "  --enable-xvmc            enable XvMC support [no]"
@@ -140,9 +141,11 @@ show_help(){
   echo "  --disable-altivec        disable AltiVec optimizations"
   echo "  --disable-mmx            disable MMX optimizations"
   echo "  --disable-mmx2           disable MMX2 optimizations"
+  echo "  --disable-sse            disable SSE optimizations"
   echo "  --disable-ssse3          disable SSSE3 optimizations"
   echo "  --disable-armv5te        disable armv5te optimizations"
   echo "  --disable-armv6          disable armv6 optimizations"
+  echo "  --disable-armv6t2        disable armv6t2 optimizations"
   echo "  --disable-armvfp         disable ARM VFP optimizations"
   echo "  --disable-iwmmxt         disable iwmmxt optimizations"
   echo "  --disable-mmi            disable MMI optimizations"
@@ -776,6 +779,7 @@ CONFIG_LIST="
     small
     static
     swscale
+    vdpau
     vhook
     x11grab
     xvmc
@@ -818,6 +822,7 @@ ARCH_EXT_LIST='
     mmx
     mmx2
     neon
+    sse
     ssse3
     vis
 '
@@ -864,6 +869,7 @@ HAVE_LIST="
     memalign
     mkstemp
     pld
+    posix_memalign
     ppc64
     round
     roundf
@@ -943,7 +949,8 @@ mmi_deps="mips"
 mmx_deps="x86"
 mmx2_deps="x86 mmx"
 neon_deps="arm"
-ssse3_deps="x86"
+sse_deps="mmx"
+ssse3_deps="x86 sse"
 vis_deps="sparc"
 
 # common features
@@ -975,6 +982,7 @@ h261_encoder_select="aandct"
 h263_encoder_select="aandct"
 h263p_encoder_select="aandct"
 h264_decoder_select="golomb"
+h264_vdpau_decoder_deps="vdpau"
 imc_decoder_select="fft mdct"
 jpegls_decoder_select="golomb"
 jpegls_encoder_select="golomb"
@@ -1040,6 +1048,7 @@ libvorbis_encoder_deps="libvorbis"
 libx264_encoder_deps="libx264"
 libxvid_encoder_deps="libxvid"
 mpeg4aac_decoder_deps="libfaad"
+vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h"
 
 # demuxers / muxers
 ac3_demuxer_deps="ac3_parser"
@@ -1099,15 +1108,15 @@ mandir_default='${prefix}/share/man'
 shlibdir_default="$libdir_default"
 
 # toolchain
+ar="ar"
 cc_default="gcc"
 host_cc_default="gcc"
-yasmexe="yasm"
-ar="ar"
+ln_s="ln -sf"
 nm_default="nm"
+objformat="elf"
 ranlib="ranlib"
 strip="strip"
-ln_s="ln -sf"
-objformat="elf"
+yasmexe="yasm"
 
 # machine
 arch=`uname -m`
@@ -1216,11 +1225,11 @@ show_list() {
 for opt do
     optval="${opt#*=}"
     case "$opt" in
-    --extra-cflags=*) add_cflags "$optval"
+    --extra-cflags=*) add_cflags $optval
     ;;
-    --extra-ldflags=*) add_ldflags "$optval"
+    --extra-ldflags=*) add_ldflags $optval
     ;;
-    --extra-libs=*) add_extralibs "$optval"
+    --extra-libs=*) add_extralibs $optval
     ;;
     --disable-devices) disable $INDEV_LIST $OUTDEV_LIST
     ;;
@@ -1268,9 +1277,8 @@ set >> $logfile
 
 test -n "$cross_prefix" && enable cross_compile
 
-cc_default="${cross_prefix}${cc_default}"
-yasmexe="${cross_prefix}${yasmexe}"
 ar="${cross_prefix}${ar}"
+cc_default="${cross_prefix}${cc_default}"
 nm_default="${cross_prefix}${nm_default}"
 ranlib="${cross_prefix}${ranlib}"
 strip="${cross_prefix}${strip}"
@@ -1374,7 +1382,7 @@ case $target_os in
     beos|haiku|zeta)
         prefix_default="$HOME/config"
         # helps building libavcodec
-        add_cflags "-DPIC -fomit-frame-pointer"
+        add_cflags -DPIC -fomit-frame-pointer
         # 3 gcc releases known for BeOS, each with ugly bugs
         gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
         case "$gcc_version" in
@@ -1382,7 +1390,7 @@ case $target_os in
             disable mmx
             ;;
           *20010315*) echo "BeBits gcc"
-            add_cflags "-fno-expensive-optimizations"
+            add_cflags -fno-expensive-optimizations
             ;;
         esac
         SHFLAGS=-nostart
@@ -1401,6 +1409,7 @@ case $target_os in
         FFSERVERLDFLAGS=""
         SHFLAGS='-shared -Wl,-h,$$(@F)'
         network_extralibs="-lsocket -lnsl"
+        add_cflags -D__EXTENSIONS__
         ;;
     netbsd)
         oss_demuxer_extralibs="-lossaudio"
@@ -1489,7 +1498,7 @@ case $target_os in
         disable $INDEV_LIST $OUTDEV_LIST
         network_extralibs="-lsocket"
         EXESUF=".exe"
-        objformat="win32"
+        objformat="coff"
         enable dos_paths
         ;;
     linux)
@@ -1594,11 +1603,11 @@ test -z "$need_memalign" && need_memalign="$mmx"
 #Darwin CC versions
 if test $target_os = darwin; then
     if $cc -v 2>&1 | grep -q xlc; then
-        add_cflags "-qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto"
+        add_cflags -qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto
     else
-        add_cflags "-pipe"
-        check_cflags "-force_cpusubtype_ALL"
-        check_cflags "-Wno-sign-compare"
+        add_cflags -pipe
+        check_cflags -force_cpusubtype_ALL
+        check_cflags -Wno-sign-compare
         enabled shared || check_cflags -mdynamic-no-pic
     fi
 fi
@@ -1612,68 +1621,68 @@ if test $cpu != "generic"; then
     }
     case $cpu in
         601|ppc601|PowerPC601)
-            add_cflags "-mcpu=601"
+            add_cflags -mcpu=601
             warn_altivec enabled PPC601
         ;;
         603*|ppc603*|PowerPC603*)
-            add_cflags "-mcpu=603"
+            add_cflags -mcpu=603
             warn_altivec enabled PPC603
         ;;
         604*|ppc604*|PowerPC604*)
-            add_cflags "-mcpu=604"
+            add_cflags -mcpu=604
             warn_altivec enabled PPC604
         ;;
         G3|g3|75*|ppc75*|PowerPC75*)
-            add_cflags "-mcpu=750 -mpowerpc-gfxopt"
+            add_cflags -mcpu=750 -mpowerpc-gfxopt
             warn_altivec enabled PPC75x
         ;;
         G4|g4|745*|ppc745*|PowerPC745*)
-            add_cflags "-mcpu=7450 -mpowerpc-gfxopt"
+            add_cflags -mcpu=7450 -mpowerpc-gfxopt
             warn_altivec disabled PPC745x
         ;;
         74*|ppc74*|PowerPC74*)
-            add_cflags "-mcpu=7400 -mpowerpc-gfxopt"
+            add_cflags -mcpu=7400 -mpowerpc-gfxopt
             warn_altivec disabled PPC74xx
         ;;
         G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
-            add_cflags "-mcpu=970 -mpowerpc-gfxopt -mpowerpc64"
+            add_cflags -mcpu=970 -mpowerpc-gfxopt -mpowerpc64
             warn_altivec disabled PPC970
             enable ppc64
         ;;
         Cell|CELL|cell)
-            add_cflags "-mcpu=cell"
+            add_cflags -mcpu=cell
             warn_altivec disabled Cell
             enable ppc64
         ;;
         # targets that do NOT support conditional mov (cmov)
         i[345]86|pentium|pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3)
-            add_cflags "-march=$cpu"
+            add_cflags -march=$cpu
             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)
-            add_cflags "-march=$cpu"
+            add_cflags -march=$cpu
             enable cmov
             enable fast_cmov
         ;;
         # targets that do support conditional mov but on which it's slow
         pentium4|pentium4m|prescott|nocona)
-            add_cflags "-march=$cpu"
+            add_cflags -march=$cpu
             enable cmov
             disable fast_cmov
         ;;
         sparc64)
-            add_cflags "-mcpu=v9"
+            add_cflags -mcpu=v9
         ;;
         arm11*|cortex*)
-            add_cflags "-mcpu=$cpu"
+            add_cflags -mcpu=$cpu
             enable fast_unaligned
         ;;
         armv*)
-            add_cflags "-march=$cpu"
+            add_cflags -march=$cpu
         ;;
         arm*)
-            add_cflags "-mcpu=$cpu"
+            add_cflags -mcpu=$cpu
         ;;
         *)
             echo "WARNING: Unknown CPU \"$cpu\", ignored."
@@ -1751,9 +1760,7 @@ fi
 
 # check for assembler specific support
 
-if test $arch = "ppc"; then
-    check_asm dcbzl '"dcbzl 0, 1"'
-fi
+enabled ppc && check_asm dcbzl '"dcbzl 0, 1"'
 
 # check for SIMD availability
 
@@ -1791,7 +1798,7 @@ enabled mmi     && check_asm mmi     '"lq $2, 0($2)"'
 enabled neon    && check_asm neon    '"vadd.i16 q0, q0, q0"'
 enabled vis     && check_asm vis     '"pdist %f0, %f0, %f0"' -mcpu=ultrasparc
 
-enabled vis && add_cflags "-mcpu=ultrasparc -mtune=ultrasparc"
+enabled vis && add_cflags -mcpu=ultrasparc -mtune=ultrasparc
 
 # ---
 # big/little-endian test
@@ -1815,6 +1822,7 @@ check_func  getrusage
 check_func  inet_aton $network_extralibs
 check_func  memalign
 check_func  mkstemp
+check_func  posix_memalign
 check_func_headers windows.h GetProcessTimes
 
 check_header conio.h
@@ -1825,10 +1833,12 @@ check_header sys/mman.h
 check_header sys/resource.h
 check_header sys/select.h
 check_header termios.h
+check_header vdpau/vdpau.h
+check_header vdpau/vdpau_x11.h
 check_header X11/extensions/XvMClib.h
 
-if ! enabled_any memalign memalign_hack && enabled need_memalign ; then
-    die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
+if ! enabled_any memalign memalign_hack posix_memalign && enabled need_memalign ; then
+    die "Error, no aligned memory allocator but SSE enabled, disable it or use --enable-memalign-hack."
 fi
 
 disabled  zlib || check_lib   zlib.h      zlibVersion -lz   || disable  zlib
@@ -2042,10 +2052,10 @@ if enabled small; then
     optimizations="small"
 elif enabled optimizations; then
     if $cc -v 2>&1 | grep -q xlc; then
-        add_cflags  "-O5"
-        add_ldflags "-O5"
+        add_cflags  -O5
+        add_ldflags -O5
     else
-        add_cflags "-O3"
+        add_cflags -O3
     fi
 fi
 check_cflags -fno-math-errno
@@ -2078,8 +2088,8 @@ if enabled shared; then
 fi
 
 if enabled gprof; then
-    add_cflags  "-p"
-    add_ldflags "-p"
+    add_cflags  -p
+    add_ldflags -p
 fi
 
 VHOOKCFLAGS="-fPIC"
@@ -2125,15 +2135,16 @@ if test "$extra_version" != ""; then
     echo "version string suffix     $extra_version"
 fi
 echo "big-endian                ${bigendian-no}"
-if test $arch = "x86_32" -o $arch = "x86_64"; then
+if enabled x86; then
     echo "yasm                      ${yasm-no}"
     echo "MMX enabled               ${mmx-no}"
+    echo "SSE enabled               ${sse-no}"
     echo "CMOV enabled              ${cmov-no}"
     echo "CMOV is fast              ${fast_cmov-no}"
     echo "EBX available             ${ebx_available-no}"
     echo "EBP available             ${ebp_available-no}"
 fi
-if test $arch = "arm"; then
+if enabled arm; then
     echo "ARMv5TE enabled           ${armv5te-no}"
     echo "ARMv6 enabled             ${armv6-no}"
     echo "ARMv6T2 enabled           ${armv6t2-no}"
@@ -2141,10 +2152,10 @@ if test $arch = "arm"; then
     echo "IWMMXT enabled            ${iwmmxt-no}"
     echo "NEON enabled              ${neon-no}"
 fi
-if test $arch = "mips"; then
+if enabled mips; then
     echo "MMI enabled               ${mmi-no}"
 fi
-if test $arch = "ppc"; then
+if enabled ppc; then
     echo "AltiVec enabled           ${altivec-no}"
     echo "dcbzl available           ${dcbzl-no}"
 fi
@@ -2190,6 +2201,7 @@ echo "libtheora enabled         ${libtheora-no}"
 echo "libvorbis enabled         ${libvorbis-no}"
 echo "libx264 enabled           ${libx264-no}"
 echo "libxvid enabled           ${libxvid-no}"
+echo "vdpau enabled             ${vdpau-no}"
 echo "zlib enabled              ${zlib-no}"
 echo "bzlib enabled             ${bzlib-no}"
 echo