X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=29a3938caf523c0d7612102acd1d6870ee85f71e;hb=7cbf432db1faa8b2ef2dc18e06a87bf6be293718;hp=f36ba0e463d92c52fce0046826de54d53c4cfb33;hpb=69ddbd1dada13612582aac97ffe2a3222952d011;p=ffmpeg diff --git a/configure b/configure index f36ba0e463d..29a3938caf5 100755 --- a/configure +++ b/configure @@ -96,8 +96,8 @@ show_help(){ echo " --enable-libtheora enable Theora encoding via libtheora [default=no]" echo " --enable-libvorbis enable Vorbis en/decoding via libvorbis," echo " native implementations exist [default=no]" - echo " --enable-x264 enable H.264 encoding via x264 [default=no]" - echo " --enable-xvid enable Xvid encoding via xvidcore," + echo " --enable-libx264 enable H.264 encoding via x264 [default=no]" + echo " --enable-libxvid enable Xvid encoding via xvidcore," echo " native MPEG-4/Xvid encoder exists [default=no]" echo "" echo "Advanced options (experts only):" @@ -310,23 +310,17 @@ print_config(){ makefile=$3 shift 3 for cfg; do + ucname="`toupper $cfg`" if enabled $cfg; then - ucname="${pfx}`toupper $cfg`" - echo "#define ${ucname} 1" >> $header - echo "${ucname}=yes" >> $makefile + echo "#define ${pfx}${ucname} 1" >> $header + echo "#define ENABLE_${ucname} 1" >> $header + echo "${pfx}${ucname}=yes" >> $makefile + else + echo "#define ENABLE_${ucname} 0" >> $header fi done } -print_config_enable(){ - print_config $@ - shift 3 - for cfg; do - enabled $cfg && val=1 || val=0 - echo "#define ENABLE_`toupper $cfg` $val" >> $header - done -} - flags_saved(){ (: ${SAVE_CFLAGS?}) 2>/dev/null } @@ -404,7 +398,12 @@ check_cpp(){ check_ld(){ log check_ld "$@" check_cc || return - check_cmd $cc $LDFLAGS "$@" -o $TMPE $TMPO $extralibs + flags='' + libs='' + for f; do + test "${f}" = "${f#-l}" && flags="$flags $f" || libs="$libs $f" + done + check_cmd $cc $LDFLAGS $flags -o $TMPE $TMPO $extralibs $libs } check_cflags(){ @@ -595,6 +594,8 @@ CONFIG_LIST=' libogg libtheora libvorbis + libx264 + libxvid memalign_hack mpegaudio_hp network @@ -606,8 +607,6 @@ CONFIG_LIST=' v4l v4l2 x11grab - x264 - xvid zlib ' @@ -618,12 +617,38 @@ THREADS_LIST=' w32threads ' -HAVE_LIST=" - $THREADS_LIST +ARCH_LIST=' + alpha + armv4l + bfin + ia64 + m68k + mips + parisc + powerpc + s390 + sh4 + sparc + sparc64 + x86 + x86_32 + x86_64 +' + +ARCH_EXT_LIST=' altivec - altivec_h armv5te armv6 + iwmmxt + mmi + mmx + ssse3 +' + +HAVE_LIST=" + $ARCH_EXT_LIST + $THREADS_LIST + altivec_h arpa_inet_h byteswap_h cmov @@ -643,38 +668,25 @@ HAVE_LIST=" freetype2 imlib2 inet_aton - iwmmxt - localtime_r lrintf machine_ioctl_bt848_h machine_ioctl_meteor_h malloc_h memalign mlib - mmi - mmx os2 + ppc64 sdl sdl_video_size soundcard_h - ssse3 sys_poll_h sys_soundcard_h threads " -TARGET_LIST=' - altivec - armv5te - armv6 - iwmmxt - mmi - mmx -' - CMDLINE_SELECT=" + $ARCH_EXT_LIST $CONFIG_LIST - $TARGET_LIST $THREADS_LIST debug extra_warnings @@ -684,6 +696,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" @@ -703,8 +724,6 @@ vc1_decoder_deps="h263_decoder" wmv1_decoder_deps="h263_decoder" wmv2_decoder_deps="h263_decoder" wmv3_decoder_deps="h263_decoder" -x264_encoder_deps="x264" -xvid_encoder_deps="xvid" zmbv_decoder_deps="zlib" zmbv_encoder_deps="zlib" @@ -721,10 +740,12 @@ libgsm_decoder_deps="libgsm" libgsm_encoder_deps="libgsm" libgsm_ms_decoder_deps="libgsm" libgsm_ms_encoder_deps="libgsm" +libmp3lame_encoder_deps="libmp3lame" libtheora_encoder_deps="libtheora" -mp3lame_encoder_deps="libmp3lame" libvorbis_decoder_deps="libvorbis" libvorbis_encoder_deps="libvorbis" +libx264_encoder_deps="libx264" +libxvid_encoder_deps="libxvid" # demuxers / muxers ac3_demuxer_deps="ac3_parser" @@ -798,26 +819,11 @@ asmalign_pot="unknown" # machine 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 targetos=$(tolower $(uname -s)) -beos_netserver="no" -os2="no" # non-library system interfaces -audio_beos="default" audio_oss="yes" bktr="yes" dv1394="yes" @@ -825,39 +831,15 @@ v4l2="yes" v4l="yes" # libraries -avisynth="no" -dc1394="no" -dlfcn_h="no" -dlopen="no" -liba52="no" -liba52bin="no" -libamr_nb="no" -libamr_wb="no" -libfaac="no" -libfaad2="no" -libfaad="no" -libfaadbin="no" -libgsm="no" -libmp3lame="no" -libnut="no" -libogg="no" -libtheora="no" -libvorbis="no" -mlib="no" -x11grab="no" -x264="no" -xvid="no" zlib="yes" # configurable options debug="yes" dostrip="yes" -extra_warnings="no" ffmpeg="yes" ffplay="yes" ffserver="yes" gpl="no" -gprof="no" ipv6="yes" shared="no" static="yes" @@ -865,23 +847,14 @@ memalign_hack="no" mpegaudio_hp="yes" network="yes" optimize="yes" -pp="no" protocols="yes" -swscaler="no" vhook="default" -# threading -beosthreads="no" -os2threads="no" -pthreads="no" -w32threads="no" -thread_type="no" - # build settings SHFLAGS='-shared -Wl,-soname,$@' VHOOKSHFLAGS='$(SHFLAGS)' LIBOBJFLAGS="" -FFLDFLAGS=-Wl,--warn-common +FFLDFLAGS= LDLATEFLAGS='-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil' FFSERVERLDFLAGS=-Wl,-E LDCONFIG="ldconfig" @@ -1083,6 +1056,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 @@ -1168,6 +1145,8 @@ case $targetos in targetos=mingw32 shlibdir="$bindir" dv1394="no" + VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libswscale -L$(BUILD_ROOT)/libavutil' + VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lswscale$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)' ffserver="no" network="no" SLIBPREF="" @@ -1286,21 +1265,15 @@ if disabled gpl ; then } die_gpl_disabled "The Postprocessing code" pp die_gpl_disabled "liba52" liba52 - die_gpl_disabled "libxvidcore" xvid - die_gpl_disabled "x264" x264 + die_gpl_disabled "libx264" libx264 + die_gpl_disabled "libxvidcore" libxvid die_gpl_disabled "FAAD2" libfaad2 die_gpl_disabled "The X11 grabber" x11grab 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" @@ -1320,17 +1293,7 @@ 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 warn_altivec(){ $1 altivec && echo "WARNING: Tuning for $2 but AltiVec $1."; @@ -1363,7 +1326,12 @@ if test $cpu != "generic"; then G5|g5|970|ppc970|PowerPC970|power4*|Power4*) add_cflags "-mcpu=970 -mpowerpc-gfxopt -mpowerpc64" warn_altivec disabled PPC970 - POWERPCMODE="64bits" + enable ppc64 + ;; + Cell|CELL|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) @@ -1433,7 +1401,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 @@ -1454,7 +1422,7 @@ int main(){ EOF # check whether binutils is new enough to compile SSSE3 - check_cc <&1 | grep version | grep Apple`"; then - add_cflags "-faltivec" - else - add_cflags "-maltivec -mabi=altivec" - fi +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 -check_header altivec.h + check_header altivec.h -# check if our compiler supports Motorola AltiVec C API -if enabled altivec; then + # check if our compiler supports Motorola AltiVec C API if enabled altivec_h; then inc_altivec_h="#include " else @@ -1507,41 +1471,24 @@ EOF fi # check armv5te instructions support -if test $armv5te = "default" -a $arch = "armv4l"; then - armv5te=no - check_cc < +int main( void ) { return (lrintf(3.999f) > 0)?0:1; } +EOF + enabled_any libamr_nb libamr_wb && enable libamr # these are off by default, so fail if requested and not available @@ -1630,21 +1583,14 @@ enabled libtheora && require libtheora theora/theora.h theora_info_init -ltheor enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc -logg enabled libogg && require libogg ogg/ogg.h ogg_sync_init -logg enabled libnut && require libnut libnut.h nut_demuxer_init -lnut -enabled xvid && require XviD xvid.h xvid_global -lxvidcore -enabled x264 && require x264 x264.h x264_encoder_open -lx264 +enabled libx264 && require x264 x264.h x264_encoder_open -lx264 +enabled libxvid && require Xvid xvid.h xvid_global -lxvidcore enabled dc1394 && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394 enabled mlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac enabled libfaad && require2 libfaad faad.h faacDecOpen -lfaad enabled avisynth && require2 vfw32 "windows.h vfw.h" AVIFileInit -lvfw32 -# test for lrintf in math.h -check_exec < -int main( void ) { return (lrintf(3.999f) > 0)?0:1; } -EOF - _restrict= for restrict_keyword in restrict __restrict__ __restrict; do check_cc < Your SDL version is too old - please upgrade to have FFplay/SDL support." fi -echo "Sun medialib support $mlib" -echo "AVISynth enabled $avisynth" -echo "liba52 support $liba52" -echo "liba52 dlopened $liba52bin" -echo "libamr-nb support $libamr_nb" -echo "libamr-wb support $libamr_wb" -echo "libfaac enabled $libfaac" -echo "libfaad enabled $libfaad" -echo "faadbin enabled $libfaadbin" -echo "libgsm enabled $libgsm" -echo "libmp3lame enabled $libmp3lame" -echo "libnut enabled $libnut" -echo "libogg enabled $libogg" -echo "libtheora enabled $libtheora" -echo "libvorbis enabled $libvorbis" -echo "x264 enabled $x264" -echo "XviD enabled $xvid" -echo "zlib enabled $zlib" +echo "Sun medialib support ${mlib-no}" +echo "AVISynth enabled ${avisynth-no}" +echo "liba52 support ${liba52-no}" +echo "liba52 dlopened ${liba52bin-no}" +echo "libamr-nb support ${libamr_nb-no}" +echo "libamr-wb support ${libamr_wb-no}" +echo "libfaac enabled ${libfaac-no}" +echo "libfaad enabled ${libfaad-no}" +echo "faadbin enabled ${libfaadbin-no}" +echo "libgsm enabled ${libgsm-no}" +echo "libmp3lame enabled ${libmp3lame-no}" +echo "libnut enabled ${libnut-no}" +echo "libogg enabled ${libogg-no}" +echo "libtheora enabled ${libtheora-no}" +echo "libvorbis enabled ${libvorbis-no}" +echo "x264 enabled ${libx264-no}" +echo "XviD enabled ${libxvid-no}" +echo "zlib enabled ${zlib-no}" if disabled gpl; then echo "License: LGPL" else @@ -1948,27 +1897,6 @@ echo "SLIBPREF=$SLIBPREF" >> config.mak echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak -ucarch=`toupper $arch` -echo "TARGET_ARCH_${ucarch}=yes" >> config.mak -echo "#define ARCH_${ucarch} 1" >> $TMPH - -# special cases -case "$arch" in - x86_32|x86_64) - echo "TARGET_ARCH_X86=yes" >> config.mak - echo "#define ARCH_X86 1" >> $TMPH - ;; - powerpc) - if test "$POWERPCMODE" = "64bits"; then - echo "#define POWERPC_MODE_64BITS 1" >> $TMPH - fi - ;; - sparc64) - echo "TARGET_ARCH_SPARC=yes" >> config.mak - echo "#define ARCH_SPARC 1" >> $TMPH - ;; -esac - if enabled bigendian; then echo "WORDS_BIGENDIAN=yes" >> config.mak echo "#define WORDS_BIGENDIAN 1" >> $TMPH @@ -2015,16 +1943,16 @@ fi echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak echo "EXTRALIBS=$extralibs" >> config.mak -print_config HAVE_ $TMPH config.mak $HAVE_LIST -print_config TARGET_ $TMPH config.mak $TARGET_LIST -print_config_enable CONFIG_ $TMPH config.mak $CONFIG_LIST \ - $DECODER_LIST \ - $ENCODER_LIST \ - $PARSER_LIST \ - $BSF_LIST \ - $DEMUXER_LIST \ - $MUXER_LIST \ - $PROTOCOL_LIST \ +print_config ARCH_ $TMPH config.mak $ARCH_LIST +print_config HAVE_ $TMPH config.mak $HAVE_LIST +print_config CONFIG_ $TMPH config.mak $CONFIG_LIST \ + $DECODER_LIST \ + $ENCODER_LIST \ + $PARSER_LIST \ + $BSF_LIST \ + $DEMUXER_LIST \ + $MUXER_LIST \ + $PROTOCOL_LIST \ if test "$targetos" = darwin; then echo "#define CONFIG_DARWIN 1" >> $TMPH @@ -2085,7 +2013,6 @@ if enabled source_path_used; then libpostproc/Makefile \ libavutil/Makefile \ libswscale/Makefile \ - tests/Makefile \ vhook/Makefile \ doc/texi2pod.pl \ "