X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=073181b53b95c824a5c7c8db1174299347ee955e;hb=7ef3425f0a6e49a10a0392acd67b7580b399b41a;hp=6195d81dce949400eece973dc4ab3f7abaf74913;hpb=1b0f6fb830f330a550966cfa35808086693d14f5;p=ffmpeg diff --git a/configure b/configure index 6195d81dce9..073181b53b9 100755 --- a/configure +++ b/configure @@ -2,11 +2,15 @@ # # FFmpeg configure script # -# Copyright (c) 2000, 2001, 2002 Fabrice Bellard -# Copyright (c) 2005-2006 Diego Biurrun -# Copyright (c) 2005-2006 Mans Rullgard +# Copyright (c) 2000-2002 Fabrice Bellard +# Copyright (c) 2005-2008 Diego Biurrun +# Copyright (c) 2005-2008 Mans Rullgard # +# Prevent locale nonsense from breaking basic text processing. +LC_ALL=C +export LC_ALL + # make sure we are running under a compatible shell # try to make this part work with most shells @@ -84,8 +88,6 @@ show_help(){ echo echo "External library support:" echo " --enable-mlib use Sun medialib [default=no]" - echo " --enable-liba52 enable GPLed liba52 support [default=no]" - echo " --enable-liba52bin open liba52.so.0 at runtime [default=no]" echo " --enable-avisynth allow reading AVISynth script files [default=no]" echo " --enable-libamr-nb enable libamr-nb floating point audio codec" echo " --enable-libamr-wb enable libamr-wb floating point audio codec" @@ -100,6 +102,7 @@ show_help(){ echo " --enable-libnut enable NUT (de)muxing via libnut," echo " native demuxer exists [default=no]" echo " --enable-libschroedinger enable Dirac support via libschroedinger [default=no]" + echo " --enable-libspeex enable Speex decoding via libspeex [default=no]" echo " --enable-libtheora enable Theora encoding via libtheora [default=no]" echo " --enable-libvorbis enable Vorbis encoding via libvorbis," echo " native implementation exists [default=no]" @@ -116,6 +119,7 @@ show_help(){ echo " --extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS]" echo " --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]" echo " --extra-libs=ELIBS add ELIBS [$ELIBS]" + echo " --extra-version=STRING version string suffix []" echo " --build-suffix=SUFFIX suffix for application specific build []" echo " --arch=ARCH select architecture [$arch]" echo " --cpu=CPU selects the minimum cpu required (affects" @@ -166,6 +170,9 @@ show_help(){ echo " --disable-protocol=NAME disables protocol NAME" echo " --disable-protocols disables all protocols" echo " --disable-devices disables all devices" + echo " --enable-filter=NAME enables filter NAME" + echo " --disable-filter=NAME disables filter NAME" + echo " --disable-filters disables all filters" echo " --list-decoders show all available decoders" echo " --list-encoders show all available encoders" echo " --list-muxers show all available muxers" @@ -175,6 +182,7 @@ show_help(){ echo " --list-bsfs show all available bitstream filters" echo " --list-indevs show all available input devices" echo " --list-outdevs show all available output devices" + echo " --list-filters show all available filters" echo echo "Developer options (useful when working on FFmpeg itself):" echo " --disable-debug disable debugging symbols" @@ -185,7 +193,7 @@ show_help(){ echo " --disable-stripping disable stripping of executables and shared libraries" echo "" echo "NOTE: Object files are built at the place where configure is launched." - exit 1 + exit 0 } log(){ @@ -301,6 +309,7 @@ disabled_any(){ for opt; do disabled $opt && return 0 done + return 1 } set_default(){ @@ -327,17 +336,20 @@ check_deps(){ eval dep_all="\$${cfg}_deps" eval dep_any="\$${cfg}_deps_any" + eval dep_sel="\$${cfg}_select" - pushvar cfg dep_all dep_any - check_deps $dep_all $dep_any - popvar cfg dep_all dep_any + pushvar cfg dep_all dep_any dep_sel + check_deps $dep_all $dep_any $dep_sel + popvar cfg dep_all dep_any dep_sel enabled_all $dep_all || disable $cfg enabled_any $dep_any || disable $cfg + disabled_any $dep_sel && disable $cfg if enabled $cfg; then eval dep_extralibs="\$${cfg}_extralibs" test -n "$dep_extralibs" && add_extralibs $dep_extralibs + enable $dep_sel fi disable ${cfg}_checking @@ -441,7 +453,7 @@ check_asm(){ asm="$2" shift 2 check_cc "$@" < +#if !($condition) +#error "unsatisfied condition: $condition" +#endif +EOF +} + check_lib(){ log check_lib "$@" header="$1" @@ -539,7 +563,7 @@ check_lib2(){ func="$2" shift 2 temp_extralibs "$@" - check_func2 "$headers" $func && add_extralibs "$@" + check_func_headers "$headers" $func && add_extralibs "$@" err=$? restore_flags return $err @@ -662,8 +686,6 @@ CONFIG_LIST=" gray hardcoded_tables ipv6 - liba52 - liba52bin libamr_nb libamr_wb libdc1394 @@ -675,6 +697,7 @@ CONFIG_LIST=" libmp3lame libnut libschroedinger + libspeex libtheora libvorbis libx264 @@ -738,7 +761,6 @@ HAVE_LIST=" altivec_h arpa_inet_h bswap - byteswap_h closesocket cmov conio_h @@ -750,6 +772,7 @@ HAVE_LIST=" dev_video_bktr_ioctl_bt848_h dlfcn_h dlopen + dos_paths ebp_available ebx_available fast_64bit @@ -786,6 +809,7 @@ HAVE_LIST=" sys_resource_h sys_select_h sys_soundcard_h + sys_videoio_h termios_h threads winsock2_h @@ -822,6 +846,7 @@ CMDLINE_SET=" cc cpu cross_prefix + extra_version logfile source_path target_os @@ -842,12 +867,10 @@ neon_deps="armv4l" ssse3_deps="x86" vis_deps="sparc" -# system headers and functions -byteswap_h_deps="!armv4l" - # decoders / encoders -ac3_decoder_deps="gpl !liba52" +ac3_decoder_deps="gpl" dxa_decoder_deps="zlib" +eac3_decoder_deps="gpl" flashsv_decoder_deps="zlib" flashsv_encoder_deps="zlib" mlp_decoder_deps="mlp_parser" @@ -858,8 +881,6 @@ zmbv_decoder_deps="zlib" zmbv_encoder_deps="zlib" # external libraries -liba52_decoder_deps="liba52" -liba52bin_decoder_extralibs='$ldl' libamr_nb_decoder_deps="libamr_nb" libamr_nb_encoder_deps="libamr_nb" libamr_wb_decoder_deps="libamr_wb" @@ -876,6 +897,7 @@ libgsm_ms_encoder_deps="libgsm" libmp3lame_encoder_deps="libmp3lame" libschroedinger_decoder_deps="libschroedinger" libschroedinger_encoder_deps="libschroedinger" +libspeex_decoder_deps="libspeex" libtheora_encoder_deps="libtheora" libvorbis_encoder_deps="libvorbis" libx264_encoder_deps="libx264" @@ -903,7 +925,7 @@ rtp_muxer_deps="network rtp_protocol" rtsp_demuxer_deps="sdp_demuxer" sdp_demuxer_deps="rtp_protocol mpegts_demuxer" v4l_demuxer_deps="linux_videodev_h" -v4l2_demuxer_deps="linux_videodev2_h" +v4l2_demuxer_deps_any="linux_videodev2_h sys_videoio_h" vfwcap_demuxer_deps="capCreateCaptureWindow" vfwcap_demuxer_extralibs="-lvfw32" x11_grab_device_demuxer_deps="x11grab XShmCreateImage" @@ -938,7 +960,7 @@ mandir_default='${prefix}/share/man' shlibdir_default="$libdir_default" # toolchain -cc="gcc" +cc_default="gcc" yasmexe="yasm" ar="ar" nm="nm" @@ -989,8 +1011,9 @@ SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)' SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' -# gcc stupidly only outputs the basename of targets with -MM -DEPEND_CMD='$(CC) $(CFLAGS) -MM -MG $< | sed -e "/^\#.*/d" -e "1s,^,$(@D)/," -e "s,\\([[:space:]]\\)\\(version\\.h\\),\\1\$$(BUILD_ROOT_REL)/\\2,"' +# gcc stupidly only outputs the basename of targets with -MM, but we need the +# full relative path for objects in subdirectories for non-recursive Make. +DEPEND_CMD='$(CC) $(CFLAGS) -MM -MG $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o," -e "s,\\([[:space:]]\\)\\(version\\.h\\),\\1\$$(BUILD_ROOT_REL)/\\2,"' # find source path source_path="`dirname \"$0\"`" @@ -1088,7 +1111,7 @@ for opt do --help|-h) show_help ;; *) - optname="${opt%=*}" + optname="${opt%%=*}" optname="${optname#--}" optname=$(echo "$optname" | sed 's/-/_/g') is_in $optname $CMDLINE_SET || die_unknown $opt @@ -1102,13 +1125,15 @@ disabled logging && logfile=/dev/null echo "# $0 $@" > $logfile set >> $logfile -cc="${cross_prefix}${cc}" +cc_default="${cross_prefix}${cc_default}" yasmexe="${cross_prefix}${yasmexe}" ar="${cross_prefix}${ar}" nm="${cross_prefix}${nm}" ranlib="${cross_prefix}${ranlib}" strip="${cross_prefix}${strip}" +set_default cc + # set temporary file name if test ! -z "$TMPDIR" ; then TMPDIR1="${TMPDIR}" @@ -1125,7 +1150,6 @@ TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o" TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S" TMPSH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.sh" -check_cflags -fasm check_cflags -std=c99 case "$arch" in @@ -1150,10 +1174,12 @@ EOF ;; "Power Macintosh"|ppc|powerpc) arch="powerpc" + enable fast_unaligned ;; ppc64) arch="powerpc" enable fast_64bit + enable fast_unaligned ;; mips|mipsel|IP*) arch="mips" @@ -1290,6 +1316,7 @@ case $target_os in SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"' SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.def) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base' objformat="win32" + enable dos_paths ;; cygwin*) target_os=cygwin @@ -1307,6 +1334,7 @@ case $target_os in SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' SHFLAGS='-shared -Wl,--enable-auto-image-base' objformat="win32" + enable dos_paths ;; *-dos|freedos|opendos) disable ffplay ffserver vhook @@ -1314,6 +1342,7 @@ case $target_os in network_extralibs="-lsocket" EXESUF=".exe" objformat="win32" + enable dos_paths ;; linux) enable dv1394 @@ -1345,6 +1374,7 @@ case $target_os in SLIB_INSTALL_EXTRA_CMD='install -m 644 $(SUBDIR)$(LIBPREF)$(NAME)_dll.a $(SUBDIR)$(LIBPREF)$(NAME)_dll.lib "$(LIBDIR)"' SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.a "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.lib' disable vhook + enable dos_paths ;; interix) disable vhook @@ -1379,7 +1409,7 @@ disabled static && LIBNAME="" if enabled_any libfaad libfaadbin ; then if check_header faad.h; then - check_cc << EOF + check_cc < #ifndef FAAD2_VERSION ok faad1 @@ -1400,7 +1430,6 @@ if ! enabled gpl; then enabled_any $@ && die "$name is under GPL and --enable-gpl is not specified." } die_gpl_disabled "The Postprocessing code" postproc - die_gpl_disabled "liba52" liba52 die_gpl_disabled "libx264" libx264 die_gpl_disabled "libxvidcore" libxvid die_gpl_disabled "FAAD2" libfaad2 @@ -1490,7 +1519,14 @@ if test $cpu != "generic"; then sparc64) add_cflags "-mcpu=v9" ;; - arm*|cortex*) + arm11*|cortex*) + add_cflags "-mcpu=$cpu" + enable fast_unaligned + ;; + armv*) + add_cflags "-march=$cpu" + ;; + arm*) add_cflags "-mcpu=$cpu" ;; *) @@ -1542,7 +1578,7 @@ if enabled x86; then # base pointer is cleared in the inline assembly code. check_exec_crash <= 65" || + die "ERROR: libx264 version must be >= 0.65."; } enabled libxvid && require Xvid xvid.h xvid_global -lxvidcore enabled mlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib @@ -1793,7 +1823,7 @@ if enabled network; then elif check_header winsock2.h ; then network_extralibs="-lws2_32" check_type ws2tcpip.h socklen_t - check_func2 winsock2.h closesocket + check_func_headers winsock2.h closesocket fi fi @@ -1816,8 +1846,9 @@ EOF check_header linux/videodev.h check_header linux/videodev2.h +check_header sys/videoio.h -check_func2 "windows.h vfw.h" capCreateCaptureWindow -lvfw32 +check_func_headers "windows.h vfw.h" capCreateCaptureWindow -lvfw32 # check for ioctl_meteor.h, ioctl_bt848.h and alternatives { check_header dev/bktr/ioctl_meteor.h && @@ -1874,7 +1905,7 @@ check_cflags -fno-math-errno check_cflags -fno-signed-zeros # add some flags for Intel C Compiler -if $cc --version | grep -q Intel; then +if $cc --version 2> /dev/null | grep -q Intel; then # Just warnings, no remarks check_cflags -w1 # -wd: Disable following warnings @@ -1894,7 +1925,7 @@ if enabled shared; then # LIBOBJFLAGS may have already been set in the OS configuration if test -z "$LIBOBJFLAGS" ; then case "$arch" in - x86_64|ia64|alpha|sparc*|power*|parisc*) LIBOBJFLAGS='$(PIC)' ;; + x86_64|ia64|alpha|sparc*|power*|parisc*|mips*) LIBOBJFLAGS='$(PIC)' ;; esac fi fi @@ -1909,7 +1940,7 @@ VHOOKCFLAGS="-fPIC" # Find out if the .align argument is a power of two or not. if test $asmalign_pot = "unknown"; then disable asmalign_pot - echo 'asm (".align 3");' | check_cc && enable asmalign_pot + echo '__asm__ (".align 3");' | check_cc && enable asmalign_pot fi enabled_any $DECODER_LIST && enable decoders @@ -1950,6 +1981,9 @@ echo "ARCH $arch ($cpu)" if test "$build_suffix" != ""; then echo "build suffix $build_suffix" fi +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 echo "yasm ${yasm-no}" @@ -1999,8 +2033,6 @@ if enabled sdl_too_old; then fi 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 "libdc1394 support ${libdc1394-no}" @@ -2012,6 +2044,7 @@ echo "libgsm enabled ${libgsm-no}" echo "libmp3lame enabled ${libmp3lame-no}" echo "libnut enabled ${libnut-no}" echo "libschroedinger enabled ${libschroedinger-no}" +echo "libspeex enabled ${libspeex-no}" echo "libtheora enabled ${libtheora-no}" echo "libvorbis enabled ${libvorbis-no}" echo "libx264 enabled ${libx264-no}" @@ -2080,6 +2113,7 @@ echo "LIBNAME=$LIBNAME" >> config.mak echo "SLIBPREF=$SLIBPREF" >> config.mak echo "SLIBSUF=$SLIBSUF" >> config.mak echo "EXESUF=$EXESUF" >> config.mak +echo "EXTRA_VERSION=$extra_version" >> config.mak echo "DEPEND_CMD=$DEPEND_CMD" >> config.mak if enabled bigendian; then @@ -2155,7 +2189,7 @@ echo "BUILD_ROOT=\"$PWD\"" >> config.mak # Apparently it's not possible to portably echo a backslash. enabled asmalign_pot && printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH || - printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH + printf '#define ASMALIGN(ZEROBITS) ".align 1 << " #ZEROBITS "\\n\\t"\n' >> $TMPH echo "#define EXTERN_PREFIX \"${extern_prefix}\"" >> $TMPH @@ -2242,7 +2276,7 @@ cat < $name/$name-uninstalled.pc prefix= exec_prefix= libdir=\${pcfiledir} -includedir=\${pcfiledir}/.. +includedir=${source_path} Name: $name Description: $comment