X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=c86c14af43b9fcea6ff6253234968cda26049ecb;hb=49ca0e531a49a46c5aa6522a53ee45f51ca69882;hp=a7a57d198bf5afce8dce0e03e7564a0149ac97c0;hpb=c07ed8c8a22c1427323dccb7722b2b094f95e728;p=ffmpeg diff --git a/configure b/configure index a7a57d198bf..c86c14af43b 100755 --- a/configure +++ b/configure @@ -133,6 +133,7 @@ show_help(){ echo " --disable-debug disable debugging symbols" echo " --disable-mpegaudio-hp faster (but less accurate)" echo " MPEG audio decoding [default=no]" + echo " --enable-gray enable full grayscale support (slower color)" echo " --disable-ffmpeg disable ffmpeg build" echo " --disable-ffserver disable ffserver build" echo " --disable-ffplay disable ffplay build" @@ -159,6 +160,13 @@ show_help(){ echo " --enable-protocol=NAME enables protocol NAME" echo " --disable-protocol=NAME disables protocol NAME" echo " --disable-protocols disables all protocols" + echo " --list-decoders show all available decoders" + echo " --list-encoders show all available encoders" + echo " --list-muxers show all available muxers" + echo " --list-demuxers show all available demuxers" + echo " --list-parsers show all available parsers" + echo " --list-protocols show all available protocols" + echo " --list-bsfs show all available bitstream filters" echo echo "Developer options (useful when working on FFmpeg itself):" echo " --enable-gprof enable profiling with gprof [$gprof]" @@ -283,6 +291,15 @@ disabled_any(){ done } +is_in(){ + value=$1 + shift + for var in $*; do + [ $var = $value ] && return 0 + done + return 1 +} + check_deps(){ for cfg; do enabled ${cfg}_checking && die "Circular dependency for $cfg." @@ -559,13 +576,18 @@ apply(){ "$@" < "$file" > "$file.tmp" && mv "$file.tmp" "$file" || rm "$file.tmp" } -CONFIG_LIST=' - encoders - decoders - parsers +COMPONENT_LIST=" bsfs - muxers + decoders demuxers + encoders + muxers + parsers + protocols +" + +CONFIG_LIST=" + $COMPONENT_LIST audio_beos audio_oss avisynth @@ -578,6 +600,7 @@ CONFIG_LIST=' ffserver gpl gprof + gray ipv6 liba52 liba52bin @@ -600,7 +623,6 @@ CONFIG_LIST=' network powerpc_perf pp - protocols small swscaler vhook @@ -608,7 +630,7 @@ CONFIG_LIST=' v4l2 x11grab zlib -' +" THREADS_LIST=' beosthreads @@ -650,6 +672,7 @@ HAVE_LIST=" altivec_h arpa_inet_h byteswap_h + closesocket cmov conio_h dcbzl @@ -667,6 +690,7 @@ HAVE_LIST=" fast_unaligned fork freetype2 + gethrtime GetProcessTimes getrusage imlib2 @@ -686,6 +710,7 @@ HAVE_LIST=" sys_soundcard_h termios_h threads + winsock2_h " CMDLINE_SELECT=" @@ -710,6 +735,7 @@ mmx_deps="x86" ssse3_deps="x86" # decoders / encoders +ac3_decoder_deps="gpl" dxa_decoder_deps="zlib" flashsv_decoder_deps="zlib" flashsv_encoder_deps="zlib" @@ -724,6 +750,7 @@ msmpeg4v2_decoder_deps="h263_decoder" msmpeg4v3_decoder_deps="h263_decoder" png_decoder_deps="zlib" png_encoder_deps="zlib" +svq3_decoder_deps="h264_parser" vc1_decoder_deps="h263_decoder" wmv1_decoder_deps="h263_decoder" wmv2_decoder_deps="h263_decoder" @@ -803,15 +830,13 @@ logfile="config.err" # installation paths PREFIX="/usr/local" -libdir='${PREFIX}/lib' +libdir='$(PREFIX)/lib' shlibdir="$libdir" -incdir='${PREFIX}/include/ffmpeg' -mandir='${PREFIX}/man' -bindir='${PREFIX}/bin' +incdir='$(PREFIX)/include/ffmpeg' +mandir='$(PREFIX)/man' +bindir='$(PREFIX)/bin' # toolchain -cross_prefix="" -cross_compile="no" cc="gcc" ar="ar" ranlib="ranlib" @@ -842,11 +867,8 @@ dostrip="yes" ffmpeg="yes" ffplay="yes" ffserver="yes" -gpl="no" ipv6="yes" -shared="no" static="yes" -memalign_hack="no" mpegaudio_hp="yes" network="yes" optimize="yes" @@ -856,8 +878,6 @@ vhook="default" # build settings SHFLAGS='-shared -Wl,-soname,$@' VHOOKSHFLAGS='$(SHFLAGS)' -LIBOBJFLAGS="" -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" @@ -869,9 +889,7 @@ SLIBSUF=".so" SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF)' SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)' SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' -EXESUF="" -BUILDSUF="" -LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(libdir)/$(LIB)"' +LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIB)"' # find source path source_path="`dirname \"$0\"`" @@ -908,6 +926,13 @@ die_unknown(){ exit 1 } +show_list() { + for part in $*; do + echo $part | sed 's/_[^_]*$//' + done | sort + exit 0 +} + for opt do optval="${opt#*=}" case "$opt" in @@ -981,6 +1006,12 @@ for opt do echo "$CMDLINE_SELECT" | grep -q "^ *$option\$" || die_unknown $opt $action $option ;; + --list-*) + NAME="${opt#--list-}" + is_in $NAME $COMPONENT_LIST || die_unknown $opt + NAME=$(toupper ${NAME%s}) + eval show_list \$${NAME}_LIST + ;; --help) show_help ;; *) @@ -1096,7 +1127,6 @@ case $targetos in fi ;; sunos) dv1394="no" - FFLDFLAGS="" FFSERVERLDFLAGS="" SHFLAGS="-shared -Wl,-h,\$@" add_extralibs "-lsocket -lnsl" @@ -1109,7 +1139,7 @@ case $targetos in dv1394="no" need_memalign="no" LIBOBJFLAGS="\$(PIC)" - LDCONFIG="ldconfig -m \$(shlibdir)" + LDCONFIG="ldconfig -m \$(SHLIBDIR)" SHFLAGS='-shared' SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF).$(LIBVERSION)' SLIBNAME_WITH_VERSION='$(SLIBNAME)' @@ -1133,8 +1163,8 @@ case $targetos in darwin) 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" - VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(shlibdir)/vhook/$@' + SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(SHLIBDIR)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION) -Wl,-read_only_relocs,suppress" + VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(SHLIBDIR)/vhook/$@' osextralibs="" strip="strip -x" FFLDFLAGS="-Wl,-dynamic,-search_paths_first" @@ -1147,17 +1177,20 @@ 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)' + VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil' + VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)' + if enabled swscaler; then + VHOOKSHFLAGS="$VHOOKSHFLAGS -L\$(BUILD_ROOT)/libswscale" + VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)" + fi ffserver="no" - network="no" SLIBPREF="" SLIBSUF=".dll" EXESUF=".exe" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)' SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)' SLIB_EXTRA_CMD="-lib /machine:i386 /def:\$(@:${SLIBSUF}=.def)" - SLIB_INSTALL_EXTRA_CMD="-install -m 644 \$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib) \"\$(shlibdir)/\$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib)\"" + SLIB_INSTALL_EXTRA_CMD="-install -m 644 \$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib) \"\$(SHLIBDIR)/\$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib)\"" SHFLAGS="-shared -Wl,--output-def,\$(@:${SLIBSUF}=.def),--out-implib,lib\$(SLIBNAME:\$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base" enabled network && add_extralibs -lws2_32 ;; @@ -1211,7 +1244,7 @@ ranlib="${cross_prefix}${ranlib}" strip="${cross_prefix}${strip}" # we need to build at least one lib type -if disabled_all static shared; then +if ! enabled_any static shared; then cat <&1 | grep xlc`"; then add_cflags "-qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto" @@ -1270,10 +1306,9 @@ if test $targetos = darwin; then add_cflags "-no-cpp-precomp -pipe" check_cflags "-force_cpusubtype_ALL" check_cflags "-Wno-sign-compare" - disabled shared && needmdynamicnopic="yes" + disabled shared && add_cflags -mdynamic-no-pic fi fi -enabled needmdynamicnopic && add_cflags -mdynamic-no-pic disabled optimize || add_cflags -fomit-frame-pointer @@ -1378,7 +1413,7 @@ int main(){ EOF if test "$?" != 0; then echo "$cc is unable to create an executable file." - if test -z "$cross_prefix" && disabled cross_compile ; then + if test -z "$cross_prefix" && ! enabled cross_compile ; then echo "If $cc is a cross-compiler, use the --cross-compile option." echo "Only do this if you know what cross compiling means." fi @@ -1484,7 +1519,7 @@ EOF # --- # big/little-endian test -if disabled cross_compile; then +if ! enabled cross_compile; then check_ld < int main(int argc, char ** argv){ @@ -1505,18 +1540,20 @@ fi check_header malloc.h check_func memalign -if disabled_all memalign memalign_hack && enabled need_memalign ; then +if ! enabled_any memalign memalign_hack && enabled need_memalign ; then die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack." fi check_header byteswap.h check_func mkstemp +check_func gethrtime check_header termios.h check_header conio.h check_header arpa/inet.h +check_header winsock2.h check_func inet_aton enabled zlib && check_lib zlib.h zlibVersion -lz || zlib="no" @@ -1580,6 +1617,9 @@ enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaa enabled libfaad && require2 libfaad faad.h faacDecOpen -lfaad enabled avisynth && require2 vfw32 "windows.h vfw.h" AVIFileInit -lvfw32 +# disable the native AC-3 decoder if liba52 is enabled +enabled liba52 && disable ac3_decoder + _restrict= for restrict_keyword in restrict __restrict__ __restrict; do check_cc < $TMPH echo "#define FFMPEG_CONFIGURATION \"$FFMPEG_CONFIGURATION\"" >> $TMPH echo "PREFIX=$PREFIX" >> config.mak -echo "prefix=\$(DESTDIR)\${PREFIX}" >> config.mak -echo "libdir=\$(DESTDIR)$libdir" >> config.mak -echo "shlibdir=\$(DESTDIR)$shlibdir" >> config.mak -echo "incdir=\$(DESTDIR)$incdir" >> config.mak -echo "bindir=\$(DESTDIR)$bindir" >> config.mak -echo "mandir=\$(DESTDIR)$mandir" >> config.mak +echo "prefix=\$(DESTDIR)\$(PREFIX)" >> config.mak +echo "LIBDIR=\$(DESTDIR)$libdir" >> config.mak +echo "SHLIBDIR=\$(DESTDIR)$shlibdir" >> config.mak +echo "INCDIR=\$(DESTDIR)$incdir" >> config.mak +echo "BINDIR=\$(DESTDIR)$bindir" >> config.mak +echo "MANDIR=\$(DESTDIR)$mandir" >> config.mak echo "MAKE=$make" >> config.mak echo "CC=$cc" >> config.mak echo "AR=$ar" >> config.mak @@ -1880,11 +1922,7 @@ echo "BUILD_STATIC=$static" >> config.mak echo "BUILDSUF=$BUILDSUF" >> config.mak echo "LIBPREF=$LIBPREF" >> config.mak echo "LIBSUF=\${BUILDSUF}$LIBSUF" >> config.mak -if enabled static; then - echo "LIB=$LIB" >> config.mak -else # Some Make complain if this variable does not exist. - echo "LIB=" >> config.mak -fi +echo "LIB=$LIB" >> config.mak echo "SLIBPREF=$SLIBPREF" >> config.mak echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak @@ -1953,7 +1991,7 @@ fi echo "#define restrict $_restrict" >> $TMPH if enabled small; then - echo "#define always_inline" >> $TMPH + echo "#define av_always_inline" >> $TMPH fi echo "SRC_PATH=\"$source_path\"" >> config.mak