diff options
author | Måns Rullgård <mans@mansr.com> | 2007-06-17 11:57:50 +0000 |
---|---|---|
committer | Måns Rullgård <mans@mansr.com> | 2007-06-17 11:57:50 +0000 |
commit | 9eeed841ca81c72cf4318832b2dcf87d3bdc9156 (patch) | |
tree | 8fb0968d921fc87a32d1f779d1b69cb3b850cb46 /configure | |
parent | 7d2bf29c888854ca5e8a52cf5c1a9f2e6f074913 (diff) | |
download | ffmpeg-9eeed841ca81c72cf4318832b2dcf87d3bdc9156.tar.gz |
simplify simd extension checking
Originally committed as revision 9351 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 79 |
1 files changed, 22 insertions, 57 deletions
@@ -637,6 +637,7 @@ ARCH_EXT_LIST=' iwmmxt mmi mmx + ssse3 ' HAVE_LIST=" @@ -673,7 +674,6 @@ HAVE_LIST=" sdl sdl_video_size soundcard_h - ssse3 sys_poll_h sys_soundcard_h threads @@ -691,6 +691,15 @@ CMDLINE_SELECT=" # code dependency declarations +# architecture extensions +altivec_deps="powerpc" +armv5te_deps="armv4l" +armv6_deps="armv4l" +iwmmxt_deps="armv4l" +mmi_deps="mips" +mmx_deps="x86" +ssse3_deps="x86" + # decoders / encoders dxa_decoder_deps="zlib" flashsv_decoder_deps="zlib" @@ -806,16 +815,10 @@ asmalign_pot="unknown" arch=`uname -m` cpu="generic" powerpc_perf="no" -mmx="default" cmov="no" fast_cmov="no" fast_unaligned="no" -armv5te="default" -armv6="default" -iwmmxt="default" -altivec="default" dcbzl="no" -mmi="default" bigendian="no" # OS @@ -1090,6 +1093,10 @@ case "$arch" in ;; esac +enable $arch +enabled_any x86_32 x86_64 && enable x86 +enabled sparc64 && enable sparc + # OS specific osextralibs="-lm" case $targetos in @@ -1302,14 +1309,8 @@ if disabled gpl ; then die_gpl_disabled "The software scaler" swscaler fi -# compute MMX state -if test $mmx = "default"; then - if test $arch = "x86_32" -o $arch = "x86_64"; then - mmx="yes" - else - mmx="no" - fi -fi +enable $ARCH_EXT_LIST +check_deps $ARCH_EXT_LIST test -z "$need_memalign" && need_memalign="$mmx" @@ -1329,15 +1330,6 @@ enabled needmdynamicnopic && add_cflags -mdynamic-no-pic disabled optimize || add_cflags -fomit-frame-pointer -# Can only do AltiVec on PowerPC -if test $altivec = "default"; then - if test $arch = "powerpc"; then - altivec="yes" - else - altivec="no" - fi -fi - # Add processor-specific flags POWERPCMODE="32bits" if test $cpu != "generic"; then @@ -1447,7 +1439,7 @@ if test "$?" != 0; then die "C compiler test failed." fi -if test $arch = "x86_32" -o $arch = "x86_64"; then +if enabled x86; then # check whether EBP is available on x86 # As 'i' is stored on the stack, this program will crash # if the base pointer is used to access it because the @@ -1468,7 +1460,7 @@ int main(){ EOF # check whether binutils is new enough to compile SSSE3 - check_cc <<EOF && enable ssse3 + enabled ssse3 && check_cc <<EOF || disable ssse3 int main(){ asm volatile ("pabsw %xmm0, %xmm0"); } @@ -1491,20 +1483,16 @@ fi # check for SIMD availability # AltiVec flags: The FSF version of GCC differs from the Apple version -if test $arch = "powerpc"; then - if enabled altivec; then +if enabled altivec; then if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then add_cflags "-faltivec" else add_cflags "-maltivec -mabi=altivec" fi - fi -fi check_header altivec.h # check if our compiler supports Motorola AltiVec C API -if enabled altivec; then if enabled altivec_h; then inc_altivec_h="#include <altivec.h>" else @@ -1521,41 +1509,24 @@ EOF fi # check armv5te instructions support -if test $armv5te = "default" -a $arch = "armv4l"; then - armv5te=no - check_cc <<EOF && armv5te=yes +enabled armv5te && check_cc <<EOF || disable armv5te int main(void) { __asm__ __volatile__ ("qadd r0, r0, r0"); } EOF -fi -if test $armv6 = "default" -a $arch = "armv4l"; then - check_cc <<EOF && armv6=yes || armv6=no +enabled armv6 && check_cc <<EOF || disable armv6 int main(void) { __asm__ __volatile__ ("sadd16 r0, r0, r0"); } EOF -fi # check iwmmxt support -if test $iwmmxt = "default" -a $arch = "armv4l"; then - iwmmxt=no - check_cc <<EOF && iwmmxt=yes +enabled iwmmxt && check_cc <<EOF || disable iwmmxt int main(void) { __asm__ __volatile__ ("wunpckelub wr6, wr4"); } EOF -fi - -# mmi only available on mips -if test $mmi = "default"; then - if test $arch = "mips"; then - mmi="yes" - else - mmi="no" - fi -fi # check if our compiler supports mmi enabled mmi && check_cc <<EOF || mmi="no" @@ -1965,12 +1936,6 @@ echo "SLIBPREF=$SLIBPREF" >> config.mak echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak -enable $arch - -# special cases -enabled_any x86_32 x86_64 && enable x86 -enabled sparc64 && enable sparc - case "$arch" in powerpc) if test "$POWERPCMODE" = "64bits"; then |