done
}
+set_weak(){
+ value=$1
+ shift
+ for var; do
+ eval : \${$var:=$value}
+ done
+}
+
pushvar(){
for var in $*; do
eval level=\${${var}_level:=0}
set_all no $*
}
+enable_weak(){
+ set_weak yes $*
+}
+
+disable_weak(){
+ set_weak no $*
+}
+
do_enable_deep(){
for var; do
enabled $var && continue
eval sel="\$${var}_select"
- pushvar var
+ eval sgs="\$${var}_suggest"
+ pushvar var sgs
enable_deep $sel
+ popvar sgs
+ enable_deep_weak $sgs
popvar var
done
}
enable $*
}
+enable_deep_weak(){
+ do_enable_deep $*
+ enable_weak $*
+}
+
enabled(){
test "${1#!}" = "$1" && op== || op=!=
eval test "x\$${1#!}" $op "xyes"
eval dep_all="\$${cfg}_deps"
eval dep_any="\$${cfg}_deps_any"
eval dep_sel="\$${cfg}_select"
+ eval dep_sgs="\$${cfg}_suggest"
- pushvar cfg dep_all dep_any dep_sel
- check_deps $dep_all $dep_any $dep_sel
- popvar cfg dep_all dep_any dep_sel
+ pushvar cfg dep_all dep_any dep_sel dep_sgs
+ check_deps $dep_all $dep_any $dep_sel $dep_sgs
+ popvar cfg dep_all dep_any dep_sel dep_sgs
enabled_all $dep_all || disable $cfg
enabled_any $dep_any || disable $cfg
eval dep_extralibs="\$${cfg}_extralibs"
test -n "$dep_extralibs" && add_extralibs $dep_extralibs
enable_deep $dep_sel
+ enable_deep_weak $dep_sgs
fi
disable ${cfg}_checking
ffplay
ffserver
fft
+ golomb
gpl
gprof
gray
libvorbis
libx264
libxvid
+ mdct
memalign_hack
mlib
mpegaudio_hp
yasm
"
+# options emitted with CONFIG_ prefix but not available on command line
+CONFIG_EXTRA="
+ fft_mmx
+"
+
CMDLINE_SELECT="
$ARCH_EXT_LIST
$CONFIG_LIST
ssse3_deps="x86"
vis_deps="sparc"
+# common features
+fft_suggest="fft_mmx"
+fft_mmx_deps="mmx yasm"
+
# decoders / encoders
-aac_decoder_select="fft"
+aac_decoder_select="fft mdct"
ac3_decoder_deps="gpl"
-ac3_decoder_select="fft"
-ac3_encoder_select="fft"
-atrac3_decoder_select="fft"
-cook_decoder_select="fft"
-dxa_decoder_deps="zlib"
+ac3_decoder_select="fft mdct"
+atrac3_decoder_select="fft mdct"
+cavs_decoder_select="golomb"
+cook_decoder_select="fft mdct"
+cscd_decoder_suggest="zlib"
+dca_decoder_select="fft mdct"
+dxa_decoder_select="zlib"
eac3_decoder_deps="gpl"
-eac3_decoder_select="fft"
-flashsv_decoder_deps="zlib"
-flashsv_encoder_deps="zlib"
-imc_decoder_select="fft"
-mlp_decoder_deps="mlp_parser"
+eac3_decoder_select="fft mdct"
+ffv1_decoder_select="golomb"
+flac_decoder_select="golomb"
+flac_encoder_select="golomb"
+flashsv_decoder_select="zlib"
+flashsv_encoder_select="zlib"
+h264_decoder_select="golomb"
+imc_decoder_select="fft mdct"
+jpegls_decoder_select="golomb"
+jpegls_encoder_select="golomb"
+loco_decoder_select="golomb"
mpeg_xvmc_decoder_deps="xvmc"
-nellymoser_decoder_select="fft"
-nellymoser_encoder_select="fft"
-png_decoder_deps="zlib"
-png_encoder_deps="zlib"
-qdm2_decoder_select="fft"
-vorbis_decoder_select="fft"
-vorbis_encoder_select="fft"
-wmav1_decoder_select="fft"
-wmav1_encoder_select="fft"
-wmav2_decoder_select="fft"
-wmav2_encoder_select="fft"
-zmbv_decoder_deps="zlib"
-zmbv_encoder_deps="zlib"
+nellymoser_decoder_select="fft mdct"
+nellymoser_encoder_select="fft mdct"
+png_decoder_select="zlib"
+png_encoder_select="zlib"
+qdm2_decoder_select="fft mdct"
+shorten_decoder_select="golomb"
+sonic_decoder_select="golomb"
+sonic_encoder_select="golomb"
+sonic_ls_encoder_select="golomb"
+svq3_decoder_select="golomb"
+svq3_decoder_suggest="zlib"
+tiff_decoder_suggest="zlib"
+tiff_encoder_suggest="zlib"
+tscc_decoder_select="zlib"
+vorbis_decoder_select="fft mdct"
+vorbis_encoder_select="fft mdct"
+wmav1_decoder_select="fft mdct"
+wmav1_encoder_select="fft mdct"
+wmav2_decoder_select="fft mdct"
+wmav2_encoder_select="fft mdct"
+zlib_decoder_select="zlib"
+zlib_encoder_select="zlib"
+zmbv_decoder_select="zlib"
+zmbv_encoder_select="zlib"
# external libraries
libamr_nb_decoder_deps="libamr_nb"
libdc1394_demuxer_deps="libdc1394"
libnut_demuxer_deps="libnut"
libnut_muxer_deps="libnut"
+matroska_demuxer_suggest="zlib bzlib"
+mov_demuxer_suggest="zlib"
mp3_demuxer_deps="mpegaudio_parser"
oss_demuxer_deps_any="soundcard_h sys_soundcard_h"
oss_muxer_deps_any="soundcard_h sys_soundcard_h"
# OS
target_os=$(tolower $(uname -s))
-# libraries
-enable bzlib
-enable zlib
-
# configurable options
enable debug
enable ffmpeg
die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
fi
-enabled zlib && check_lib zlib.h zlibVersion -lz || disable zlib
-enabled bzlib && check_lib bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib
+disabled zlib || check_lib zlib.h zlibVersion -lz || disable zlib
+disabled bzlib || check_lib bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib
# check for some common methods of building with pthread support
# do this before the optional library checks as some of them require pthreads
enabled_any $THREADS_LIST && enable threads
check_deps $CONFIG_LIST \
+ $CONFIG_EXTRA \
$HAVE_LIST \
$DECODER_LIST \
$ENCODER_LIST \
print_config ARCH_ $TMPH config.mak $ARCH_LIST
print_config HAVE_ $TMPH config.mak $HAVE_LIST
print_config CONFIG_ $TMPH config.mak $CONFIG_LIST \
+ $CONFIG_EXTRA \
$DECODER_LIST \
$ENCODER_LIST \
$PARSER_LIST \