X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=e556be2763e30d340f3ba73a386837f68a8e0310;hb=9cdcb04f5a536da3c66323773ebc37c22d5e056b;hp=d19ffb046f79fbb9d74b4f05b7f1ef56c1f4184f;hpb=940f335a3c3d05a3d998983f79b179838b35c948;p=ffmpeg diff --git a/configure b/configure index d19ffb046f7..e556be2763e 100755 --- a/configure +++ b/configure @@ -91,10 +91,9 @@ show_help(){ echo " --enable-libmp3lame enable MP3 encoding via libmp3lame [default=no]" echo " --enable-libnut enable NUT (de)muxing via libnut," echo " native demuxer exists [default=no]" - echo " --enable-libogg enable Ogg muxing via libogg [default=no]" 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-libvorbis enable Vorbis encoding via libvorbis," + echo " native implementation exists [default=no]" 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]" @@ -164,7 +163,7 @@ show_help(){ echo echo "Developer options (useful when working on FFmpeg itself):" echo " --enable-gprof enable profiling with gprof [$gprof]" - echo " --disable-opts disable compiler optimizations" + echo " --disable-optimizations disable compiler optimizations" echo " --enable-extra-warnings enable more compiler warnings" echo " --disable-strip disable stripping of executables and shared libraries" echo "" @@ -178,7 +177,7 @@ log(){ log_file(){ log BEGIN $1 - cat -n $1 >>$logfile + pr -n -t $1 >>$logfile log END $1 } @@ -620,7 +619,6 @@ CONFIG_LIST=" libgsm libmp3lame libnut - libogg libtheora libvorbis libx264 @@ -725,6 +723,7 @@ CMDLINE_SELECT=" $THREADS_LIST debug extra_warnings + optimizations shared static " @@ -781,7 +780,6 @@ libgsm_ms_decoder_deps="libgsm" libgsm_ms_encoder_deps="libgsm" libmp3lame_encoder_deps="libmp3lame" libtheora_encoder_deps="libtheora" -libvorbis_decoder_deps="libvorbis" libvorbis_encoder_deps="libvorbis" libx264_encoder_deps="libx264" libxvid_encoder_deps="libxvid" @@ -793,13 +791,13 @@ audio_beos_demuxer_deps="audio_beos" audio_beos_demuxer_extralibs="-lmedia -lbe" audio_beos_muxer_deps="audio_beos" audio_beos_muxer_extralibs="-lmedia -lbe" +avisynth_demuxer_deps="avisynth" bktr_demuxer_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h" dv1394_demuxer_deps="dv1394" libdc1394_demuxer_deps="libdc1394" libnut_demuxer_deps="libnut" libnut_muxer_deps="libnut" mp3_demuxer_deps="mpegaudio_parser" -ogg_muxer_deps="libogg" oss_demuxer_deps_any="soundcard_h sys_soundcard_h" oss_muxer_deps_any="soundcard_h sys_soundcard_h" redir_demuxer_deps="network" @@ -819,7 +817,7 @@ udp_protocol_deps="network" # programs ffplay_deps="sdl" -ffserver_deps="muxers rtp_protocol" +ffserver_deps="ffm_muxer rtp_protocol rtsp_demuxer" ffserver_extralibs='$ldl' vhook_extralibs='$ldl' @@ -881,7 +879,7 @@ enable ipv6 enable static enable mpegaudio_hp enable network -enable optimize +enable optimizations enable protocols vhook="default" @@ -893,13 +891,14 @@ FFSERVERLDFLAGS=-Wl,-E LDCONFIG="ldconfig" LIBPREF="lib" LIBSUF=".a" -LIB='$(LIBPREF)$(NAME)$(LIBSUF)' +FULLNAME='$(NAME)$(BUILDSUF)' +LIBNAME='$(LIBPREF)$(FULLNAME)$(LIBSUF)' SLIBPREF="lib" SLIBSUF=".so" -SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF)' +SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)' SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)' SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' -LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIB)"' +LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' # find source path source_path="`dirname \"$0\"`" @@ -933,9 +932,9 @@ die_unknown(){ } show_list() { - for part in $*; do - echo $part | sed 's/_[^_]*$//' - done | sort + suffix=_$1 + shift + echo $* | sed s/$suffix//g | tr ' ' '\n' | sort exit 0 } @@ -980,8 +979,6 @@ for opt do ;; --cpu=*) cpu="$optval" ;; - --disable-opts) disable optimize - ;; --enable-sunmlib) enable mlib ;; --disable-strip) disable dostrip @@ -1015,8 +1012,8 @@ for opt do --list-*) NAME="${opt#--list-}" is_in $NAME $COMPONENT_LIST || die_unknown $opt - NAME=$(toupper ${NAME%s}) - eval show_list \$${NAME}_LIST + NAME=${NAME%s} + eval show_list $NAME \$$(toupper $NAME)_LIST ;; --help|-h) show_help ;; @@ -1130,7 +1127,7 @@ case $targetos in fi ;; sunos) FFSERVERLDFLAGS="" - SHFLAGS="-shared -Wl,-h,\$@" + SHFLAGS='-shared -Wl,-h,$@' network_extralibs="-lsocket -lnsl" ;; netbsd) @@ -1139,10 +1136,10 @@ case $targetos in ;; openbsd) disable need_memalign - LIBOBJFLAGS="\$(PIC)" - LDCONFIG="ldconfig -m \$(SHLIBDIR)" + LIBOBJFLAGS='$(PIC)' + LDCONFIG='ldconfig -m $(SHLIBDIR)' SHFLAGS='-shared' - SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF).$(LIBVERSION)' + SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF).$(LIBVERSION)' SLIBNAME_WITH_VERSION='$(SLIBNAME)' SLIBNAME_WITH_MAJOR='$(SLIBNAME)' oss_demuxer_extralibs="-lossaudio" @@ -1157,13 +1154,13 @@ case $targetos in ;; darwin) disable need_memalign - SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(SHLIBDIR)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION) -Wl,-read_only_relocs,suppress" + 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/$@' strip="strip -x" FFLDFLAGS="-Wl,-dynamic,-search_paths_first" SLIBSUF=".dylib" - SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME).$(LIBVERSION)$(SLIBSUF)' - SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)' + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)' FFSERVERLDFLAGS=-Wl,-bind_at_load ;; mingw32*) @@ -1179,11 +1176,12 @@ case $targetos in 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)\"" - SHFLAGS="-shared -Wl,--output-def,\$(@:${SLIBSUF}=.def),--out-implib,lib\$(SLIBNAME:\$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base" + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(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:$(SLIBSUF)=.lib)"' + 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' ;; cygwin*) targetos=cygwin @@ -1197,9 +1195,9 @@ case $targetos in EXESUF=".exe" SLIBPREF="cyg" SLIBSUF=".dll" - SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)' - SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)' - SHFLAGS='-shared -Wl,--out-implib=lib$(NAME).dll.a -Wl,--enable-auto-image-base' + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' + SHFLAGS='-shared -Wl,--enable-auto-image-base' ;; linux) LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS" @@ -1216,8 +1214,6 @@ esac add_extralibs $osextralibs -check_ldflags -lm - if ! disabled logging ; then enabled logging || logfile="$logging" echo "# $0 $@" >$logfile @@ -1246,14 +1242,7 @@ EOF exit 1; fi -if disabled static; then - LIB="" -fi - -if ! enabled libogg; then - enabled libtheora && die "libogg must be enabled to enable libtheora." - enabled libvorbis && die "libogg must be enabled to enable libvorbis." -fi +disabled static && LIBNAME="" if enabled_any libfaad libfaadbin ; then if check_header faad.h; then @@ -1302,7 +1291,7 @@ if test $targetos = darwin; then fi fi -disabled optimize || add_cflags -fomit-frame-pointer +disabled optimizations || add_cflags -fomit-frame-pointer # Add processor-specific flags if test $cpu != "generic"; then @@ -1368,6 +1357,9 @@ if test $cpu != "generic"; then add_cflags "-mfdpic" add_ldflags "-mfdpic" ;; + arm*) + add_cflags "-mcpu=$cpu" + ;; *) echo "WARNING: Unknown CPU \"$cpu\", ignored." ;; @@ -1487,22 +1479,30 @@ grep -q BIGE $TMPO && enable bigendian # --- # check availability of some header files -check_header malloc.h -check_func memalign - -if ! enabled_any memalign memalign_hack && enabled need_memalign ; then - die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack." +if check_func dlopen; then + ldl= +elif check_func dlopen -ldl; then + ldl=-ldl fi -check_header byteswap.h - -check_func mkstemp +check_func fork check_func gethrtime +check_func getrusage +check_func inet_aton +check_func memalign +check_func mkstemp +check_func2 windows.h GetProcessTimes -check_header termios.h +check_header byteswap.h check_header conio.h +check_header dlfcn.h +check_header malloc.h +check_header termios.h + +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_func inet_aton enabled zlib && check_lib zlib.h zlibVersion -lz || disable zlib # ffserver uses poll(), @@ -1535,6 +1535,8 @@ for thread in $THREADS_LIST; do fi done +check_lib math.h sin -lm + # test for lrintf in math.h check_exec <&1 | grep xlc`"; then add_cflags "-O5" add_ldflags "-O5" @@ -1721,7 +1707,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*) LIBOBJFLAGS="\$(PIC)" ;; + x86_64|ia64|alpha|sparc*|power*) LIBOBJFLAGS='$(PIC)' ;; esac fi fi @@ -1733,7 +1719,7 @@ fi VHOOKCFLAGS="-fPIC" -# find if .align arg is power-of-two or not +# 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 @@ -1752,9 +1738,8 @@ check_deps $CONFIG_LIST $HAVE_LIST $DECODER_LIST $ENCODER_LIST $PARSER_LIST \ $BSF_LIST $DEMUXER_LIST $MUXER_LIST $PROTOCOL_LIST enabled libdc1394 && append pkg_requires "libraw1394" -enabled libogg && append pkg_requires "ogg >= 1.1" enabled libtheora && append pkg_requires "theora" -enabled libvorbis && append pkg_requires "vorbis vorbisenc" +enabled libvorbis && append pkg_requires "vorbisenc" echo "install prefix $PREFIX" echo "source path $source_path" @@ -1788,7 +1773,7 @@ fi echo "gprof enabled ${gprof-no}" echo "debug symbols ${debug-no}" echo "strip symbols ${dostrip-no}" -echo "optimize ${optimize-no}" +echo "optimizations ${optimizations-no}" echo "static ${static-no}" echo "shared ${shared-no}" echo "postprocessing support ${pp-no}" @@ -1820,7 +1805,6 @@ echo "libfaad dlopened ${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}" @@ -1830,10 +1814,24 @@ enabled gpl && echo "License: GPL" || echo "License: LGPL" +for type in decoder encoder parser demuxer muxer protocol bsf; do + echo "Enabled ${type}s:" + ucname="\$`toupper $type`_LIST" + list="`eval echo $ucname`" + partlist="" + for part in $list; do + enabled $part && partlist="$partlist $part" + done + partlist=`echo $partlist | sed s/_$type//g | tr ' ' '\n' | sort` + echo $partlist +done + echo "Creating config.mak and config.h..." echo "# Automatically generated by configure - do not modify!" > config.mak echo "/* Automatically generated by configure - do not modify! */" > $TMPH +echo "#ifndef FFMPEG_CONFIG_H" >> $TMPH +echo "#define FFMPEG_CONFIG_H" >> $TMPH echo "#define FFMPEG_CONFIGURATION \"$FFMPEG_CONFIGURATION\"" >> $TMPH echo "PREFIX=$PREFIX" >> config.mak @@ -1863,12 +1861,13 @@ echo "VHOOKLIBS=$VHOOKLIBS" >> config.mak echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak echo "BUILD_STATIC=$static" >> config.mak echo "BUILDSUF=$BUILDSUF" >> config.mak +echo "FULLNAME=$FULLNAME" >> config.mak echo "LIBPREF=$LIBPREF" >> config.mak -echo "LIBSUF=\${BUILDSUF}$LIBSUF" >> config.mak -echo "LIB=$LIB" >> config.mak +echo "LIBSUF=$LIBSUF" >> config.mak +echo "LIBNAME=$LIBNAME" >> config.mak echo "SLIBPREF=$SLIBPREF" >> config.mak -echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak -echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak +echo "SLIBSUF=$SLIBSUF" >> config.mak +echo "EXESUF=$EXESUF" >> config.mak if enabled bigendian; then echo "WORDS_BIGENDIAN=yes" >> config.mak @@ -1912,6 +1911,7 @@ if enabled shared; then echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak echo "SLIB_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}" >> config.mak + echo "SLIB_UNINSTALL_EXTRA_CMD=${SLIB_UNINSTALL_EXTRA_CMD}" >> config.mak fi echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak echo "EXTRALIBS=$extralibs" >> config.mak @@ -1943,6 +1943,8 @@ enabled asmalign_pot && printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH +echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH + # Do not overwrite config.h if unchanged to avoid superfluous rebuilds. cmp -s $TMPH config.h && echo "config.h is unchanged" ||