Newer
Older
Fabrice Bellard
committed
#
# Copyright (c) 2000-2002 Fabrice Bellard
# Copyright (c) 2005-2008 Diego Biurrun
# Copyright (c) 2005-2008 Mans Rullgard
Fabrice Bellard
committed
#
# 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
try_exec(){
type "$1" > /dev/null 2>&1 && exec "$@"
(: ${foo%%bar}) 2> /dev/null
(: ${foo?}) 2> /dev/null
E2="$?"
if test "$E1" != 0 || test "$E2" = 0; then
echo "Broken shell detected. Trying alternatives."
export FF_CONF_EXEC
if test "0$FF_CONF_EXEC" -lt 1; then
FF_CONF_EXEC=1
try_exec bash "$0" "$@"
fi
if test "0$FF_CONF_EXEC" -lt 2; then
FF_CONF_EXEC=2
try_exec ksh "$0" "$@"
fi
if test "0$FF_CONF_EXEC" -lt 3; then
FF_CONF_EXEC=3
try_exec /usr/xpg4/bin/sh "$0" "$@"
fi
echo "No compatible shell script interpreter found."
echo "such as bash or ksh."
echo "THIS IS NOT A BUG IN FFMPEG, DO NOT REPORT IT AS SUCH."
echo "Instead, install a working POSIX-compatible shell."
echo "Disabling this configure test will create a broken FFmpeg."
if test "$BASH_VERSION" = '2.04.0(1)-release'; then
echo "This bash version ($BASH_VERSION) is broken on your platform."
echo "Upgrade to a later version if available."
fi
exit 1
fi
show_help(){
echo "Usage: configure [options]"
echo "Options: [defaults in brackets after descriptions]"
echo
echo "Standard options:"
echo " --help print this message"
echo " --logfile=FILE log tests and output to FILE [config.err]"
echo " --disable-logging do not log configure debug information"
echo " --prefix=PREFIX install in PREFIX [$prefix]"
echo " --bindir=DIR install binaries in DIR [PREFIX/bin]"
echo " --datadir=DIR install data files in DIR [PREFIX/share/ffmpeg]"
echo " --libdir=DIR install libs in DIR [PREFIX/lib]"
Diego Biurrun
committed
echo " --shlibdir=DIR install shared libs in DIR [PREFIX/lib]"
echo " --incdir=DIR install includes in DIR [PREFIX/include]"
echo " --mandir=DIR install man page in DIR [PREFIX/share/man]"
echo
echo "Configuration options:"
echo " --disable-static do not build static libraries [no]"
echo " --enable-shared build shared libraries [no]"
echo " --enable-gpl allow use of GPL code, the resulting libs"
echo " and binaries will be under GPL [no]"
echo " --enable-version3 upgrade (L)GPL to version 3 [no]"
echo " --enable-nonfree allow use of nonfree code, the resulting libs"
echo " and binaries will be unredistributable [no]"
echo " --disable-ffmpeg disable ffmpeg build"
echo " --disable-ffplay disable ffplay build"
echo " --disable-ffserver disable ffserver build"
echo " --enable-postproc enable GPLed postprocessing support [no]"
echo " --enable-avfilter video filter support [no]"
echo " --enable-avfilter-lavf video filters dependent on avformat [no]"
echo " --enable-beosthreads use BeOS threads [no]"
echo " --enable-os2threads use OS/2 threads [no]"
echo " --enable-pthreads use pthreads [no]"
echo " --enable-w32threads use Win32 threads [no]"
echo " --enable-x11grab enable X11 grabbing [no]"
echo " --disable-network disable network support [no]"
echo " --disable-ipv6 disable IPv6 support [no]"
echo " --disable-mpegaudio-hp faster (but less accurate) MPEG audio decoding [no]"
echo " --enable-gray enable full grayscale support (slower color)"
Cédric Schieli
committed
echo " --disable-swscale-alpha disable alpha channel support in swscale"
echo " --disable-fastdiv disable table-based division"
echo " --enable-small optimize for size instead of speed"
echo " --disable-aandct disable AAN DCT code"
echo " --disable-fft disable FFT code"
echo " --disable-golomb disable Golomb code"
echo " --disable-mdct disable MDCT code"
Alex Converse
committed
echo " --disable-rdft disable RDFT code"
echo " --disable-vaapi disable VAAPI code"
echo " --disable-vdpau disable VDPAU code"
echo " --enable-runtime-cpudetect detect cpu capabilities at runtime (bigger binary)"
echo " --enable-hardcoded-tables use hardcoded tables instead of runtime generation"
echo " --enable-memalign-hack emulate memalign, interferes with memory debuggers"
echo " --enable-beos-netserver enable BeOS netserver"
echo " --disable-encoder=NAME disable encoder NAME"
echo " --enable-encoder=NAME enable encoder NAME"
echo " --disable-encoders disable all encoders"
echo " --disable-decoder=NAME disable decoder NAME"
echo " --enable-decoder=NAME enable decoder NAME"
echo " --disable-decoders disable all decoders"
echo " --disable-hwaccel=NAME disable hwaccel NAME"
echo " --enable-hwaccel=NAME enable hwaccel NAME"
echo " --disable-hwaccels disable all hwaccels"
echo " --disable-muxer=NAME disable muxer NAME"
echo " --enable-muxer=NAME enable muxer NAME"
echo " --disable-muxers disable all muxers"
echo " --disable-demuxer=NAME disable demuxer NAME"
echo " --enable-demuxer=NAME enable demuxer NAME"
echo " --disable-demuxers disable all demuxers"
echo " --enable-parser=NAME enable parser NAME"
echo " --disable-parser=NAME disable parser NAME"
echo " --disable-parsers disable all parsers"
echo " --enable-bsf=NAME enable bitstream filter NAME"
echo " --disable-bsf=NAME disable bitstream filter NAME"
echo " --disable-bsfs disable all bitstream filters"
echo " --enable-protocol=NAME enable protocol NAME"
echo " --disable-protocol=NAME disable protocol NAME"
echo " --disable-protocols disable all protocols"
echo " --disable-indev=NAME disable input device NAME"
echo " --disable-outdev=NAME disable output device NAME"
echo " --disable-indevs disable input devices"
echo " --disable-outdevs disable output devices"
echo " --disable-devices disable all devices"
echo " --enable-filter=NAME enable filter NAME"
echo " --disable-filter=NAME disable filter NAME"
echo " --disable-filters disable all filters"
echo " --list-decoders show all available decoders"
echo " --list-encoders show all available encoders"
echo " --list-hwaccels show all available hardware accelerators"
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 " --list-indevs show all available input devices"
echo " --list-outdevs show all available output devices"
echo " --list-filters show all available filters"
echo
echo "External library support:"
echo " --enable-avisynth enable reading of AVISynth script files [no]"
echo " --enable-bzlib enable bzlib [autodetect]"
echo " --enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no]"
echo " --enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no]"
echo " --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394"
echo " and libraw1394 [no]"
echo " --enable-libdirac enable Dirac support via libdirac [no]"
echo " --enable-libfaac enable FAAC support via libfaac [no]"
echo " --enable-libfaad enable FAAD support via libfaad [no]"
echo " --enable-libfaadbin open libfaad.so.0 at runtime [no]"
echo " --enable-libgsm enable GSM support via libgsm [no]"
echo " --enable-libmp3lame enable MP3 encoding via libmp3lame [no]"
echo " --enable-libnut enable NUT (de)muxing via libnut,"
echo " native (de)muxer exists [no]"
echo " --enable-libopenjpeg enable JPEG 2000 decoding via OpenJPEG [no]"
echo " --enable-libschroedinger enable Dirac support via libschroedinger [no]"
echo " --enable-libspeex enable Speex decoding via libspeex [no]"
echo " --enable-libtheora enable Theora encoding via libtheora [no]"
echo " --enable-libvorbis enable Vorbis encoding via libvorbis,"
echo " native implementation exists [no]"
echo " --enable-libx264 enable H.264 encoding via x264 [no]"
Diego Biurrun
committed
echo " --enable-libxvid enable Xvid encoding via xvidcore,"
echo " native MPEG-4/Xvid encoder exists [no]"
echo " --enable-zlib enable zlib [autodetect]"
echo ""
echo "Advanced options (experts only):"
echo " --source-path=PATH path to source code [$source_path]"
echo " --cross-prefix=PREFIX use PREFIX for compilation tools [$cross_prefix]"
echo " --enable-cross-compile assume a cross-compiler is used"
echo " --sysroot=PATH root of cross-build tree"
echo " --sysinclude=PATH location of cross-build system headers"
echo " --target-os=OS compiler targets OS [$target_os]"
echo " --target-exec=CMD command to run executables on target"
echo " --target-path=DIR path to view of build directory on target"
echo " --nm=NM use nm tool"
echo " --as=AS use assembler AS [$as_default]"
echo " --cc=CC use C compiler CC [$cc_default]"
echo " --host-cc=HOSTCC use host C compiler HOSTCC"
echo " --host-cflags=HCFLAGS use HCFLAGS when compiling for host"
echo " --host-ldflags=HLDFLAGS use HLDFLAGS when linking for host"
echo " --host-libs=HLIBS use libs HLIBS when linking for host"
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 library name suffix []"
echo " --arch=ARCH select architecture [$arch]"
echo " --cpu=CPU select the minimum required CPU (affects"
echo " instruction selection, may crash on older CPUs)"
echo " --enable-powerpc-perf enable performance report on PPC"
echo " (requires enabling PMC)"
Diego Biurrun
committed
echo " --disable-altivec disable AltiVec optimizations"
echo " --disable-amd3dnow disable 3DNow! optimizations"
echo " --disable-amd3dnowext disable 3DNow! extended optimizations"
echo " --disable-mmx disable MMX optimizations"
echo " --disable-mmx2 disable MMX2 optimizations"
echo " --disable-sse disable SSE optimizations"
echo " --disable-ssse3 disable SSSE3 optimizations"
echo " --disable-armv5te disable armv5te optimizations"
echo " --disable-armv6 disable armv6 optimizations"
echo " --disable-armv6t2 disable armv6t2 optimizations"
echo " --disable-armvfp disable ARM VFP optimizations"
echo " --disable-iwmmxt disable iwmmxt optimizations"
echo " --disable-mmi disable MMI optimizations"
echo " --disable-neon disable neon optimizations"
echo " --disable-vis disable VIS optimizations"
echo " --disable-yasm disable use of yasm assembler"
echo
echo "Developer options (useful when working on FFmpeg itself):"
echo " --disable-debug disable debugging symbols"
echo " --enable-debug=LEVEL set the debug level [$debuglevel]"
echo " --enable-gprof enable profiling with gprof [$gprof]"
echo " --disable-optimizations disable compiler optimizations"
echo " --enable-extra-warnings enable more compiler warnings"
echo " --disable-stripping disable stripping of executables and shared libraries"
echo ""
echo "NOTE: Object files are built at the place where configure is launched."
log(){
echo "$@" >> $logfile
}
log_file(){
pr -n -t $1 >> $logfile
echolog(){
echo "$@"
}
die(){
echolog "$@"
cat <<EOF
If you think configure made a mistake, make sure you are using the latest
version from SVN. If the latest version fails, report the problem to the
ffmpeg-user@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net.
EOF
if disabled logging; then
cat <<EOF
Rerun configure with logging enabled (do not use --disable-logging), and
include the log this produces with your report.
EOF
else
cat <<EOF
Include the log file "$logfile" produced by configure as this will help
solving the problem.
EOF
fi
exit 1
}
# Avoid locale weirdness, besides we really just want to translate ASCII.
echo "$@" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
c_escape(){
echo "$*" | sed 's/["\\]/\\\0/g'
}
sh_quote(){
v=$(echo "$1" | sed "s/'/'\\\\''/g")
test "$v" = "${v#*[ |&;<>()$\`\\\"\'*?\[\]#~=%]}" || v="'$v'"
echo "$v"
}
Loading
Loading full blame...