Newer
Older
Fabrice Bellard
committed
#
# ffmpeg configure script (c) 2000, 2001, 2002 Fabrice Bellard
Fabrice Bellard
committed
#
# make sure we are running under a compatible shell
(: ${foo%%bar}) 2>/dev/null
if test "$?" != 0; then
if test "x$FFMPEG_CONFIGURE_EXEC" = x; then
FFMPEG_CONFIGURE_EXEC=1
export FFMPEG_CONFIGURE_EXEC
exec bash "$0" "$@"
exec ksh "$0" "$@"
exec /usr/xpg4/bin/sh "$0" "$@"
fi
echo "No compatible shell script interpreter found."
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 " --log[=FILE|yes|no] log tests and output to FILE [config.err]"
echo " --prefix=PREFIX install in PREFIX [$PREFIX]"
echo " --libdir=DIR install libs in DIR [PREFIX/lib]"
Diego Biurrun
committed
echo " --shlibdir=DIR install shared libs in DIR [PREFIX/lib]"
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
echo " --incdir=DIR install includes in DIR [PREFIX/include/ffmpeg]"
echo " --mandir=DIR install man page in DIR [PREFIX/man]"
echo " --enable-mp3lame enable MP3 encoding via libmp3lame [default=no]"
echo " --enable-libogg enable Ogg support via libogg [default=no]"
echo " --enable-vorbis enable Vorbis support via libvorbis [default=no]"
echo " --enable-faad enable FAAD support via libfaad [default=no]"
echo " --enable-faadbin build FAAD support with runtime linking [default=no]"
echo " --enable-faac enable FAAC support via libfaac [default=no]"
echo " --enable-libgsm enable GSM support via libgsm [default=no]"
echo " --enable-xvid enable XviD support via xvidcore [default=no]"
echo " --enable-x264 enable H.264 encoding via x264 [default=no]"
echo " --enable-mingw32 enable MinGW native/cross Windows compile"
echo " --enable-mingwce enable MinGW native/cross WinCE compile"
echo " --enable-a52 enable GPLed A52 support [default=no]"
echo " --enable-a52bin open liba52.so.0 at runtime [default=no]"
echo " --enable-dts enable GPLed DTS support [default=no]"
echo " --enable-pp enable GPLed postprocessing support [default=no]"
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]"
echo " --disable-shared do not build shared libraries [default=yes]"
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-sunmlib use Sun medialib [default=no]"
echo " --enable-pthreads use pthreads [default=no]"
echo " --enable-dc1394 enable IIDC-1394 grabbing using libdc1394"
echo " and libraw1394 [default=no]"
echo " --enable-gpl allow use of GPL code, the resulting libav*"
echo " and ffmpeg will be under GPL [default=no]"
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 " --cross-compile assume a cross-compiler is used"
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
echo " --cc=CC use C compiler CC [$cc]"
echo " --make=MAKE use specified make [$make]"
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 " --build-suffix=SUFFIX suffix for application specific build []"
echo " --cpu=CPU force cpu to CPU [$cpu]"
echo " --tune=CPU tune code for a particular CPU"
echo " (may fail or perform badly on other CPUs)"
echo " --powerpc-perf-enable enable performance report on PPC"
echo " (requires enabling PMC)"
echo " --disable-mmx disable MMX usage"
echo " --disable-iwmmxt disable iwmmxt usage"
echo " --disable-altivec disable AltiVec usage"
echo " --disable-audio-oss disable OSS audio support [default=no]"
echo " --disable-audio-beos disable BeOS audio support [default=no]"
echo " --disable-v4l disable video4linux grabbing [default=no]"
echo " --disable-v4l2 disable video4linux2 grabbing [default=no]"
echo " --disable-bktr disable bktr video grabbing [default=no]"
echo " --disable-dv1394 disable DV1394 grabbing [default=no]"
echo " --disable-network disable network support [default=no]"
echo " --disable-zlib disable zlib [default=no]"
echo " --disable-simple_idct disable simple IDCT routines [default=no]"
echo " --disable-vhook disable video hooking support"
echo " --enable-gprof enable profiling with gprof [$gprof]"
echo " --disable-debug disable debugging symbols"
echo " --disable-opts disable compiler optimizations"
echo " --disable-mpegaudio-hp faster (but less accurate)"
echo " MPEG audio decoding [default=no]"
echo " --disable-protocols disable I/O protocols support [default=no]"
echo " --disable-ffserver disable ffserver build"
echo " --disable-ffplay disable ffplay build"
echo " --enable-small optimize for size instead of speed"
echo " --enable-memalign-hack emulate memalign, interferes with memory debuggers"
echo " --disable-strip disable stripping of executables and shared libraries"
echo " --disable-encoder=NAME disables encoder NAME"
echo " --enable-encoder=NAME enables encoder NAME"
echo " --disable-decoder=NAME disables decoder NAME"
echo " --enable-decoder=NAME enables decoder NAME"
echo " --disable-encoders disables all encoders"
echo " --disable-decoders disables all decoders"
echo " --disable-muxer=NAME disables muxer NAME"
echo " --enable-muxer=NAME enables muxer NAME"
echo " --disable-muxers disables all muxers"
echo " --disable-demuxer=NAME disables demuxer NAME"
echo " --enable-demuxer=NAME enables demuxer NAME"
echo " --disable-demuxers disables all demuxers"
echo " --enable-parser=NAME enables parser NAME"
echo " --disable-parser=NAME disables parser NAME"
echo " --disable-parsers disables all parsers"
echo ""
echo "NOTE: Object files are built at the place where configure is launched."
exit 1
}
log(){
echo "$@" >>$logfile
}
log_file(){
log BEGIN $1
cat -n $1 >>$logfile
log END $1
}
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-devel@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net.
EOF
if enabled logging; then
cat <<EOF
Include the log file "$logfile" produced by configure as this will help
solving the problem.
EOF
else
cat <<EOF
Rerun configure with logging enabled (do not use --log=no), and include the
log this produces with your report.
EOF
fi
rm -f $TMPC $TMPO $TMPE $TMPS $TMPH
exit 1
}
enabled(){
eval test "\$$1" = "yes"
}
flags_saved(){
(: ${SAVE_CFLAGS?}) 2>/dev/null
}
flags_saved && return
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
SAVE_CFLAGS="$CFLAGS"
SAVE_LDFLAGS="$LDFLAGS"
SAVE_extralibs="$extralibs"
}
restore_flags(){
CFLAGS="$SAVE_CFLAGS"
LDFLAGS="$SAVE_LDFLAGS"
extralibs="$SAVE_extralibs"
unset SAVE_CFLAGS
unset SAVE_LDFLAGS
unset SAVE_extralibs
}
temp_cflags(){
save_flags
CFLAGS="$CFLAGS $*"
}
temp_ldflags(){
save_flags
LDFLAGS="$LDFLAGS $*"
}
temp_extralibs(){
save_flags
extralibs="$extralibs $*"
}
append(){
var=$1
shift
flags_saved && eval "SAVE_$var=\"\$SAVE_$var $*\""
eval "$var=\"\$$var $*\""
}
add_cflags(){
append CFLAGS "$@"
}
add_ldflags(){
append LDFLAGS "$@"
}
add_extralibs(){
append extralibs "$@"
}
check_cmd(){
"$@" >>$logfile 2>&1
log check_cc "$@"
cat >$TMPC
log_file $TMPC
log $cc $CFLAGS "$@" -c -o $TMPO $TMPC
check_cmd $cc $CFLAGS "$@" -c -o $TMPO $TMPC
}
check_cpp(){
log check_cpp "$@"
log_file $TMPC
log $cc $CFLAGS "$@" -E -o $TMPO $TMPC
check_cmd $cc $CFLAGS "$@" -E -o $TMPO $TMPC
log check_ld "$@"
check_cc || return
log $cc $LDFLAGS "$@" -o $TMPE $TMPO $extralibs
check_cmd $cc $LDFLAGS "$@" -o $TMPE $TMPO $extralibs
log check_cflags "$@"
check_cc "$@" <<EOF && add_cflags "$@"
int x;
EOF
}
check_ldflags(){
log check_ldflags "$@"
check_ld "$@" <<EOF && add_ldflags "$@"
int main(){
return 0;
}
EOF
}
check_header(){
log check_header "$@"
check_cpp "$@" <<EOF
#include <$header>
int x;
EOF
}
check_func(){
log check_func "$@"
func=$1
shift
check_ld "$@" <<EOF
extern int $func();
int main(){
$func();
}
EOF
}
check_lib(){
log check_lib "$@"
header="$1"
func="$2"
shift 2
temp_extralibs "$@"
check_header $header && check_func $func && add_extralibs "$@"
err=$?
restore_flags
return $err
}
check_ld "$@" && { test "$cross_compile" = yes || $TMPE >>$logfile 2>&1; }
}
require(){
name="$1"
header="$2"
func="$3"
shift 3
check_lib $header $func "$@" || die "ERROR: $name not found"
filter_out(){
pattern="$1"
shift
echo "$@" | sed "s%\\<$pattern\\>%%g"
}
Fabrice Bellard
committed
# set temporary file name
Fabrice Bellard
committed
TMPDIR1="${TMPDIR}"
Fabrice Bellard
committed
TMPDIR1="${TEMPDIR}"
Fabrice Bellard
committed
TMPDIR1="/tmp"
Fabrice Bellard
committed
TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}"
Fabrice Bellard
committed
TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"
logging="yes"
logfile="config.err"
PREFIX="/usr/local"
libdir='${PREFIX}/lib'
Diego Biurrun
committed
shlibdir="$libdir"
incdir='${PREFIX}/include/ffmpeg'
mandir='${PREFIX}/man'
bindir='${PREFIX}/bin'
Fabrice Bellard
committed
cross_prefix=""
cross_compile="no"
Fabrice Bellard
committed
strip="strip"
Michael Niedermayer
committed
tune="generic"
powerpc_perf="no"
Fabrice Bellard
committed
mmx="default"
Gildas Bazin
committed
iwmmxt="default"
Brian Foley
committed
altivec="default"
mmi="default"
i386|i486|i586|i686|i86pc|BePC)
x86_64|amd64)
cpu="x86"
canon_arch="`cc -dumpmachine | sed -e 's,\([^-]*\)-.*,\1,'`"
if [ x"$canon_arch" = x"x86_64" -o x"$canon_arch" = x"amd64" ]; then
if [ -z "`echo $CFLAGS | grep -- -m32`" ]; then
cpu="x86_64"
fi
Aurelien Jacobs
committed
fi
;;
# armv4l is a subset of armv5tel
armv4l|armv5tel)
Nick Kurshev
committed
alpha)
cpu="alpha"
;;
"Power Macintosh"|ppc|ppc64|powerpc)
cpu="powerpc"
;;
cpu="mips"
;;
James Morrison
committed
sun4u|sparc64)
cpu="sparc64"
;;
James Morrison
committed
sparc)
cpu="sparc"
;;
parisc|parisc64)
cpu="parisc"
;;
s390|s390x)
cpu="s390"
;;
m68k)
cpu="m68k"
;;
ia64)
cpu="ia64"
;;
Fabrice Bellard
committed
cpu="unknown"
bktr="no"
audio_beos="no"
zlib="yes"
mp3lame="no"
libogg="no"
vorbis="no"
Zdenek Kabelac
committed
faad="no"
faadbin="no"
Michael Niedermayer
committed
faac="no"
xvid="no"
x264="no"
dts="no"
mingw32="no"
os2="no"
lstatic="yes"
optimize="yes"
debug="yes"
Michel Bardiaux
committed
dostrip="yes"
installstrip="-s"
Michael Niedermayer
committed
simpleidct="yes"
Fabrice Bellard
committed
bigendian="no"
Chris Flerackers
committed
inttypes="yes"
emu_fast_int="no"
dlfcn="no"
dlopen="no"
Fabrice Bellard
committed
mpegaudio_hp="yes"
SHFLAGS='-shared -Wl,-soname,$@'
Diego Biurrun
committed
VHOOKFLAGS="$SHFLAGS"
netserver="no"
need_inet_aton="no"
protocols="yes"
LIBOBJFLAGS=""
FFSERVERLDFLAGS=-Wl,-E
Jacob Meuser
committed
LDCONFIG="ldconfig"
LIBPREF="lib"
LIBSUF=".a"
Diego Biurrun
committed
LIB='$(LIBPREF)$(NAME)$(LIBSUF)'
SLIBPREF="lib"
SLIBSUF=".so"
Diego Biurrun
committed
SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF)'
SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
BUILDSUF=""
amr_wb="no"
Torsten Martinsen
committed
amr_if2="no"
sunmlib="no"
Michael Niedermayer
committed
gpl="no"
Michael Niedermayer
committed
memalignhack="no"
# OS specific
targetos=`uname -s`
case $targetos in
BeOS)
PREFIX="/boot/home/config"
# helps building libavcodec
CFLAGS="$CFLAGS -DPIC -fomit-frame-pointer"
# 3 gcc releases known for BeOS, each with ugly bugs
gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
case "$gcc_version" in
2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
mmx="no"
;;
*20010315*) echo "BeBits gcc"
CFLAGS="$CFLAGS -fno-expensive-optimizations"
;;
esac
SHFLAGS=-nostart
audio_beos="yes"
# no need for libm, but the inet stuff
# Check for BONE
if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then
extralibs="-lbind -lsocket"
else
netserver="yes"
need_inet_aton="yes"
extralibs="-lnet"
SunOS)
v4l="no"
FFSERVERLDFLAGS=""
SHFLAGS="-shared -Wl,-h,\$@"
need_inet_aton="yes"
extralibs="$extralibs -lsocket -lnsl"
;;
NetBSD)
v4l="no"
bktr="yes"
audio_oss="yes"
dv1394="no"
make="gmake"
extralibs="$extralibs -lossaudio"
OpenBSD)
v4l="no"
bktr="yes"
audio_oss="yes"
dv1394="no"
make="gmake"
LIBOBJFLAGS="\$(PIC)"
Jacob Meuser
committed
LDCONFIG="ldconfig -m \$(libdir)"
extralibs="$extralibs -lossaudio"
;;
FreeBSD)
v4l="no"
bktr="yes"
CFLAGS="$CFLAGS -pthread"
GNU/kFreeBSD)
v4l="no"
v4l2="no"
bktr="yes"
audio_oss="yes"
dv1394="no"
CFLAGS="$CFLAGS -pthread"
;;
bktr="yes"
extralibs="-lpoll -lgnugetopt -lm"
make="gmake"
Steven M. Schultz
committed
strip="strip -d"
installstrip=""
Darwin)
v4l="no"
audio_oss="no"
SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(libdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION)"
Diego Biurrun
committed
VHOOKFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(libdir)/vhook/$@'
extralibs=""
installstrip=""
FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
SLIBNAME_WITH_FULLVERSION='$(SLIBPREF)$(NAME).$(LIBVERSION)$(SLIBSUF)'
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)'
FFSERVERLDFLAGS=-Wl,-bind_at_load
;;
MINGW32*)
# Note: the rest of the mingw32 config is done afterwards as mingw32
# can be forced on the command line for Linux cross compilation.
mingw32="yes"
;;
Felix Bünemann
committed
CYGWIN*)
Víctor Paesa
committed
shlibdir='${PREFIX}/bin'
Felix Bünemann
committed
v4l="no"
Felix Bünemann
committed
audio_oss="yes"
Diego Biurrun
committed
vhook="no"
Felix Bünemann
committed
extralibs=""
EXESUF=".exe"
Víctor Paesa
committed
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'
Felix Bünemann
committed
;;
Linux)
;;
Michel Bardiaux
committed
IRIX*)
Michel Bardiaux
committed
ranlib="echo ignoring ranlib"
v4l="no"
Michel Bardiaux
committed
audio_oss="no"
make="gmake"
;;
OS/2)
TMPE=$TMPE".exe"
ar="emxomfar -p128"
Slavik Gnatenko
committed
ranlib="echo ignoring ranlib"
strip="echo ignoring strip"
CFLAGS="$CFLAGS -Zomf"
FFLDFLAGS="-Zomf -Zstack 16384 -s"
SHFLAGS="-Zdll -Zomf"
FFSERVERLDFLAGS=""
LIBPREF=""
LIBSUF=".lib"
SLIBPREF=""
SLIBSUF=".dll"
extralibs=""
pkg_requires=""
v4l="no"
audio_oss="no"
ffserver="no"
os2="yes"
;;
*)
targetos="${targetos}-UNKNOWN"
;;
Fabrice Bellard
committed
# find source path
source_path="`dirname $0`"
Fabrice Bellard
committed
source_path_used="yes"
if test -z "$source_path" -o "$source_path" = "." ; then
source_path=`pwd`
source_path_used="no"
else
source_path="`cd \"$source_path\"; pwd`"
if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
show_help
fi
Michel Bardiaux
committed
FFMPEG_CONFIGURATION=" "
for opt do
FFMPEG_CONFIGURATION="$FFMPEG_CONFIGURATION""$opt "
done
ENCODER_LIST=`grep 'register_avcodec(&[a-z0-9_]*_encoder)' $source_path/libavcodec/allcodecs.c | sed 's/.*&\(.*\)).*/\1/'`
DECODER_LIST=`grep 'register_avcodec(&[a-z0-9_]*_decoder)' $source_path/libavcodec/allcodecs.c | sed 's/.*&\(.*\)).*/\1/'`
PARSER_LIST=`grep 'av_register_codec_parser(&[a-z]' $source_path/libavcodec/allcodecs.c | sed 's/.*&\(.*\)).*/\1/'`
MUXER_LIST=`grep 'av_register_output_format(&[a-z]' $source_path/libavformat/allformats.c | sed 's/.*&\(.*\)).*/\1/'`
DEMUXER_LIST=`grep 'av_register_input_format(&[a-z]' $source_path/libavformat/allformats.c | sed 's/.*&\(.*\)).*/\1/'`
Michael Niedermayer
committed
--log)
;;
;;
--prefix=*) PREFIX="$optval"; force_prefix=yes
;;
Diego Biurrun
committed
--shlibdir=*) shlibdir="$optval"
;;
Fabrice Bellard
committed
;;
Fabrice Bellard
committed
;;
--cross-compile) cross_compile=yes
;;
Fabrice Bellard
committed
;;
--extra-ldflags=*) EXTRALDFLAGS="$optval"
Fabrice Bellard
committed
;;
Fabrice Bellard
committed
;;
Michael Niedermayer
committed
;;
--powerpc-perf-enable) powerpc_perf="yes"
;;
Gildas Bazin
committed
--disable-iwmmxt) iwmmxt="no"
;;
Brian Foley
committed
--disable-altivec) altivec="no"
;;
--disable-bktr) bktr="no"
;;
--disable-audio-beos) audio_beos="no"
;;
--disable-dv1394) dv1394="no"
;;
Luca Abeni
committed
--disable-network) network="no"; ffserver="no"
--disable-zlib) zlib="no"
;;
--enable-dts) dts="yes"
--enable-libgsm) libgsm="yes"
;;
--enable-mp3lame) mp3lame="yes"
--enable-libogg) libogg="yes"
pkg_requires="$pkg_requires ogg >= 1.1"
--enable-vorbis) vorbis="yes"
pkg_requires="$pkg_requires vorbis vorbisenc"
--enable-faad) faad="yes"
;;
--enable-faadbin) faadbin="yes"
;;
--enable-faac) faac="yes"
Michael Niedermayer
committed
;;
--enable-xvid) xvid="yes"
;;
--enable-x264) x264="yes"
;;
--enable-dc1394) dc1394="yes"
pkg_requires="$pkg_requires libraw1394"
Philip Gladstone
committed
--disable-vhook) vhook="no"
;;
Michael Niedermayer
committed
--disable-simple_idct) simpleidct="no"
--enable-mingw32) mingw32="yes"
;;
--enable-static) lstatic="yes"
;;
--disable-static) lstatic="no"
;;
--disable-shared) lshared="no"
;;
--disable-debug) debug="no"
;;
--disable-opts) optimize="no"
;;
Fabrice Bellard
committed
--disable-mpegaudio-hp) mpegaudio_hp="no"
;;
--disable-protocols) protocols="no"; network="no"; ffserver="no"
;;
--disable-ffserver) ffserver="no"
;;
--enable-small) optimize="small"
Michael Niedermayer
committed
;;
--enable-amr_nb) amr="yes"; amr_nb="yes"; amr_nb_fixed="no"
--enable-amr_nb-fixed) amr="yes"; amr_nb_fixed="yes"; amr_nb="no"
Torsten Martinsen
committed
;;
--enable-sunmlib) sunmlib="yes"
;;
--enable-pthreads) pthreads="yes"
;;
Michael Niedermayer
committed
--enable-gpl) gpl="yes"
;;
Michael Niedermayer
committed
--enable-memalign-hack) memalignhack="yes"
;;
Michel Bardiaux
committed
--disable-strip) dostrip="no"
;;
--enable-encoder=*) ENCODER_LIST="$ENCODER_LIST ${optval}_encoder"
Michael Niedermayer
committed
;;
--enable-decoder=*) DECODER_LIST="$DECODER_LIST ${optval}_decoder"
--disable-encoder=*) ENCODER_LIST="`filter_out ${optval}_encoder $ENCODER_LIST`"
--disable-decoder=*) DECODER_LIST="`filter_out ${optval}_decoder $DECODER_LIST`"
Michael Niedermayer
committed
;;
--disable-encoders) ENCODER_LIST=""
Michael Niedermayer
committed
;;
--disable-decoders) DECODER_LIST=""
Emiliano Parasassi
committed
;;
--enable-muxer=*) MUXER_LIST="$MUXER_LIST ${optval}_muxer"
;;
--disable-muxer=*) MUXER_LIST="`filter_out ${optval}_muxer $MUXER_LIST`"
;;
--disable-muxers) MUXER_LIST=""; ffserver="no"
;;
--enable-demuxer=*) DEMUXER_LIST="$DEMUXER_LIST ${optval}_demuxer"
--disable-demuxer=*) DEMUXER_LIST="`filter_out ${optval}_demuxer $DEMUXER_LIST`"
;;
--disable-demuxers) DEMUXER_LIST=""
;;
--enable-parser=*) PARSER_LIST="$PARSER_LIST ${optval}_parser"
--disable-parser=*) PARSER_LIST="`filter_out ${optval}_parser $PARSER_LIST`"
;;
--disable-parsers) PARSER_LIST=""
;;
--help) show_help
;;
*)
echo "Unknown option \"$opt\"."
echo "See $0 --help for available options."
exit 1
;;
if test "$logging" != no; then
test "$logging" = yes || logfile="$logging"
echo "# $0 $@" >$logfile
set >>$logfile
else
logfile=/dev/null
fi
if test "$mingw32" = "yes" -o "$mingwce" = "yes"; then
if test "$lshared" = "yes" && test "$lstatic" = "yes" ; then
cat <<EOF
You can only build one library type at once on MinGW.
Specify --disable-static --enable-shared to only build
the shared libraries. To build only the static libraries
you do not need to pass additional options.
EOF
exit 1
fi
v4l="no"
v4l2="no"
bktr="no"
audio_oss="no"
dv1394="no"
dc1394="no"
ffserver="no"
network="no"
if test "$mingwce" = "yes"; then
protocols="no"
fi
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)"
FFLDFLAGS="-Wl,--output-def,\$(@:${SLIBSUF}=.def),--out-implib,lib\$(SLIBNAME:\$(SLIBSUF)=.dll.a)"
if test "$force_prefix" != yes; then PREFIX="$PROGRAMFILES/FFmpeg"; fi
if test "$force_libdir" != yes; then bindir="$PREFIX"; fi
fi
# Combine FFLDFLAGS, EXTRALDFLAGS and the LDFLAGS environment variable.
LDFLAGS="$FFLDFLAGS $EXTRALDFLAGS $LDFLAGS"
test -n "$cross_prefix" && cross_compile=yes
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
ranlib="${cross_prefix}${ranlib}"
strip="${cross_prefix}${strip}"
# we need to build at least one lib type
if test "$lstatic" = "no" && test "$lshared" = "no" ; then
cat <<EOF
At least one library type must be built.
Specify --enable-static to build the static libraries or --enable-shared to
build the shared libraries as well. To only build the shared libraries specify
--disable-static in addition to --enable-shared.
EOF
exit 1;
fi
if test "$libogg" = "no"; then
fail="yes"
vorbis="no"
fi
fi
Michael Niedermayer
committed
if test "$gpl" != "yes"; then
if test "$pp" != "no"; then
echo "The Postprocessing code is under GPL and --enable-gpl is not specified."
Michael Niedermayer
committed
fail="yes"
fi
if test "$a52" != "no" -o "$a52bin" != "no"; then
echo "liba52 is under GPL and --enable-gpl is not specified."
Michael Niedermayer
committed
fail="yes"
fi
if test "$xvid" != "no"; then
echo "libxvidcore is under GPL and --enable-gpl is not specified."
fail="yes"
fi
if test "$x264" != "no"; then
echo "x264 is under GPL and --enable-gpl is not specified."
fail="yes"
fi
if test "$dts" != "no"; then
echo "libdts is under GPL and --enable-gpl is not specified."
fail="yes"
fi
Michael Niedermayer
committed
if test "$faad" != "no" -o "$faadbin" != "no"; then
if check_header faad.h; then
check_cc << EOF
Michael Niedermayer
committed
#include <faad.h>
#ifndef FAAD2_VERSION
ok faad1
#endif
int main( void ) { return 0; }
EOF
echo "FAAD2 is under GPL and --enable-gpl is not specified."
Michael Niedermayer
committed
fail="yes"
fi
else
faad="no"
faadbin="no"
Michael Niedermayer
committed
fi
fi
Michael Niedermayer
committed
Michael Niedermayer
committed
exit 1
fi
fi
Fabrice Bellard
committed
if test $mmx = "default"; then
Aurelien Jacobs
committed
if test $cpu = "x86" -o $cpu = "x86_64"; then
Fabrice Bellard
committed
mmx="yes"
else
mmx="no"
fi
fi
Gildas Bazin
committed
# check iwmmxt support
if test $iwmmxt = "default" -a $cpu = "armv4l"; then
iwmmxt=no
check_cc <<EOF && iwmmxt=yes
Gildas Bazin
committed
__asm__ __volatile__ ("wunpckelub wr6, wr4");
}
EOF
fi
#Darwin CC versions
Michael Niedermayer
committed
needmdynamicnopic="no"
if test $targetos = Darwin; then
if test -n "`$cc -v 2>&1 | grep xlc`"; then
CFLAGS="$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*)
CFLAGS="$CFLAGS -no-cpp-precomp -pipe"