X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=54efb2c1acdf3f88f1456687e5d8f87ccee38d5c;hb=a7b91ac6de9db614765ad13ab3b3a4e6bad551e4;hp=2531c2bf97fd2c99526a191352690e1084dcce34;hpb=f55c7a335954424838e1b1b7604f37967000d75d;p=ffmpeg diff --git a/configure b/configure index 2531c2bf97f..54efb2c1acd 100755 --- a/configure +++ b/configure @@ -62,7 +62,6 @@ show_help(){ echo " --shlibdir=DIR install shared libs in DIR [PREFIX/lib]" echo " --incdir=DIR install includes in DIR [PREFIX/include/ffmpeg]" echo " --mandir=DIR install man page in DIR [PREFIX/man]" - echo " --enable-mingwce enable MinGW native/cross WinCE compile" echo " --enable-static build static libraries [default=yes]" echo " --disable-static do not build static libraries [default=no]" echo " --enable-shared build shared libraries [default=no]" @@ -99,10 +98,9 @@ show_help(){ echo " --enable-x264 enable H.264 encoding via x264 [default=no]" echo " --enable-xvid enable Xvid encoding via xvidcore," echo " native MPEG-4/Xvid encoder exists [default=no]" - echo " --enable-amr_nb enable amr_nb float audio codec" - echo " --enable-amr_nb-fixed use fixed point for amr-nb codec" - echo " --enable-amr_wb enable amr_wb float audio codec" - echo " --enable-amr_if2 enable amr_wb IF2 audio codec" + echo " --enable-amr-nb enable amr-nb floating point audio codec" + echo " --enable-amr-nb-fixed enable amr-nb fixed-point codec" + echo " --enable-amr-wb enable amr-wb floating point audio codec" echo "" echo "Advanced options (experts only):" echo " --source-path=PATH path to source code [$source_path]" @@ -486,6 +484,32 @@ check_exec(){ check_ld "$@" && { enabled cross_compile || $TMPE >>$logfile 2>&1; } } +check_exec_crash(){ + code=`cat` + + # exit() is not async signal safe. _Exit (C99) and _exit (POSIX) + # are safe but may not be available everywhere. Thus we use + # raise(SIGTERM) instead. The check is run in a subshell so we + # can redirect the "Terminated" message from the shell. SIGBUS + # is not defined by standard C so it is used conditionally. + + (check_exec "$@") >>$logfile 2>&1 < +static void sighandler(int sig){ + raise(SIGTERM); +} +int main(){ + signal(SIGILL, sighandler); + signal(SIGFPE, sighandler); + signal(SIGSEGV, sighandler); +#ifdef SIGBUS + signal(SIGBUS, sighandler); +#endif + { $code } +} +EOF +} + require(){ name="$1" header="$2" @@ -542,6 +566,8 @@ CONFIG_LIST=' bktr dc1394 dv1394 + ebp_available + ebx_available ffmpeg ffplay ffserver @@ -570,19 +596,26 @@ CONFIG_LIST=' vhook v4l v4l2 - wince x11grab x264 xvid zlib ' -HAVE_LIST=' +THREADS_LIST=' + beosthreads + os2threads + pthreads + w32threads +' + +HAVE_LIST=" + $THREADS_LIST altivec altivec_h armv5te armv6 - beosthreads + arpa_inet_h byteswap_h cmov dcbzl @@ -593,6 +626,7 @@ HAVE_LIST=' dev_video_bktr_ioctl_bt848_h dlfcn_h dlopen + fast_64bit fast_cmov freetype2 imlib2 @@ -608,16 +642,13 @@ HAVE_LIST=' mmi mmx os2 - os2threads - pthreads sdl sdl_video_size soundcard_h sys_poll_h sys_soundcard_h threads - w32threads -' +" TARGET_LIST=' altivec @@ -631,17 +662,14 @@ TARGET_LIST=' CMDLINE_SELECT=" $CONFIG_LIST $TARGET_LIST - amr_if2 + $THREADS_LIST debug extra_warnings shared static - beosthreads - os2threads - pthreads - w32threads " +dxa_decoder_deps="zlib" flashsv_decoder_deps="zlib" flashsv_encoder_deps="zlib" mpeg_xvmc_decoder_deps="xvmc" @@ -670,6 +698,7 @@ mp3lame_encoder_deps="libmp3lame" oggvorbis_decoder_deps="libvorbis" oggvorbis_encoder_deps="libvorbis" +ac3_demuxer_deps="ac3_parser" audio_demuxer_deps_any="audio_oss audio_beos" audio_muxer_deps_any="audio_oss audio_beos" dc1394_demuxer_deps="dc1394" @@ -683,7 +712,8 @@ rtp_muxer_deps="network" rtsp_demuxer_deps="network" sdp_demuxer_deps="network" v4l2_demuxer_deps="v4l2" -video_grab_device_demuxer_deps_any="v4l bktr" +video_grab_bktr_demuxer_deps="bktr" +video_grab_v4l_demuxer_deps="v4l" x11_grab_device_demuxer_deps="x11grab" ffplay_deps="sdl" @@ -744,11 +774,9 @@ mmi="default" bigendian="no" # OS -targetos=`uname -s` +targetos=$(tolower $(uname -s)) beos_netserver="no" -mingw32="no" os2="no" -wince="no" # non-library system interfaces audio_beos="default" @@ -759,7 +787,6 @@ v4l2="yes" v4l="yes" # libraries -amr_if2="no" amr_nb="no" amr_nb_fixed="no" amr_wb="no" @@ -907,8 +934,6 @@ for opt do ;; --cpu=*) cpu="$optval" ;; - --enable-mingwce) wince="yes" - ;; --disable-opts) optimize="no" ;; --enable-small) optimize="small" @@ -957,6 +982,7 @@ case "$arch" in if [ x"$canon_arch" = x"x86_64" -o x"$canon_arch" = x"amd64" ]; then if [ -z "`echo $CFLAGS | grep -- -m32`" ]; then arch="x86_64" + enable fast_64bit fi fi ;; @@ -966,15 +992,21 @@ case "$arch" in ;; alpha) arch="alpha" + enable fast_64bit + ;; + "Power Macintosh"|ppc|powerpc) + arch="powerpc" ;; - "Power Macintosh"|ppc|ppc64|powerpc) + ppc64) arch="powerpc" + enable fast_64bit ;; mips|mipsel|IP*) arch="mips" ;; sun4u|sparc64) arch="sparc64" + enable fast_64bit ;; sparc) arch="sparc" @@ -982,9 +1014,13 @@ case "$arch" in sh4) arch="sh4" ;; - parisc|parisc64) + parisc) arch="parisc" ;; + parisc64) + arch="parisc" + enable fast_64bit + ;; s390|s390x) arch="s390" ;; @@ -993,6 +1029,7 @@ case "$arch" in ;; ia64) arch="ia64" + enable fast_64bit ;; bfin) arch="bfin" @@ -1004,7 +1041,7 @@ esac # OS specific osextralibs="-lm" -case `tolower $targetos` in +case $targetos in beos|haiku|zeta) PREFIX="$HOME/config" # helps building libavcodec @@ -1071,7 +1108,6 @@ case `tolower $targetos` in strip="strip -d" ;; darwin) - cc="cc" dv1394="no" need_memalign="no" SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(shlibdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION) -Wl,-read_only_relocs,suppress" @@ -1085,7 +1121,7 @@ case `tolower $targetos` in FFSERVERLDFLAGS=-Wl,-bind_at_load ;; mingw32*) - mingw32="yes" + targetos=mingw32 if enabled_all shared static; then cat <&1 | grep xlc`"; then add_cflags "-qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto" else - gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`" - case "$gcc_version" in - *2.95*) - add_cflags "-no-cpp-precomp -pipe" - ;; - *[34].*) - add_cflags "-no-cpp-precomp -pipe -force_cpusubtype_ALL -Wno-sign-compare" - if disabled shared; then - needmdynamicnopic="yes" - fi - ;; - *) - add_cflags "-no-cpp-precomp -pipe" - if disabled shared; then - needmdynamicnopic="yes" - fi - ;; - esac + add_cflags "-no-cpp-precomp -pipe" + check_cflags "-force_cpusubtype_ALL" + check_cflags "-Wno-sign-compare" + disabled shared && needmdynamicnopic="yes" fi fi @@ -1330,6 +1349,10 @@ if test $cpu != "generic"; then sparc64) add_cflags "-mcpu=v9" ;; + bf*) #bf531 bf532 bf533 bf561 bf5xx all get this config + add_cflags "-mfdpic" + add_ldflags "-mfdpic" + ;; *) echo "WARNING: Unknown CPU \"$cpu\", ignored." ;; @@ -1374,6 +1397,27 @@ if test "$?" != 0; then die "C compiler test failed." fi +if test $arch = "x86_32" -o $arch = "x86_64"; 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 + # base pointer is cleared in the inline assembly code. + check_exec_crash <> $TMPH fi @@ -1948,10 +1995,6 @@ echo "SRC_PATH=\"$source_path\"" >> config.mak echo "SRC_PATH_BARE=$source_path" >> config.mak echo "BUILD_ROOT=\"$PWD\"" >> config.mak -if enabled amr_if2; then - echo "AMR_CFLAGS=-DIF2=1" >> config.mak -fi - # Apparently it's not possible to portably echo a backslash. if enabled asmalign_pot; then printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH @@ -1960,11 +2003,11 @@ else fi -for codec in $DECODER_LIST $ENCODER_LIST $PARSER_LIST $DEMUXER_LIST $MUXER_LIST; do - ucname="`toupper $codec`" +for part in $DECODER_LIST $ENCODER_LIST $PARSER_LIST $DEMUXER_LIST $MUXER_LIST; do + ucname="`toupper $part`" config_name="CONFIG_$ucname" enabled_name="ENABLE_$ucname" - if enabled $codec; then + if enabled $part; then echo "#define $config_name 1" >> $TMPH echo "#define $enabled_name 1" >> $TMPH echo "$config_name=yes" >> config.mak @@ -1996,8 +2039,6 @@ if enabled source_path_used; then libavcodec/mlib \ libavcodec/ppc \ libavcodec/amr \ - libavcodec/amr_float \ - libavcodec/amrwb_float \ libpostproc \ libavutil \ libswscale \ @@ -2090,10 +2131,10 @@ if enabled pp; then fi if enabled swscaler; then - pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" "-lswscale" "libavutil = $lavu_version" swscale + pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" -lswscale "libavutil = $lavu_version" ffmpeg pkgconfig_generate_uninstalled libswscale "FFmpeg image rescaling library" "$sws_version" "" "libavutil = $lavu_version" else - pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" "" "$pkg_requires libavcodec = $lavc_version" swscale + pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" "" "$pkg_requires libavcodec = $lavc_version" ffmpeg pkgconfig_generate_uninstalled libswscale "FFmpeg image rescaling library" "$sws_version" "" "$pkg_requires libavcodec = $lavc_version" apply libswscale.pc sed s/^Libs:.*$/Libs:/ apply libswscale-uninstalled.pc sed s/^Libs:.*$/Libs:/