wok diff ffmpeg/stuff/configure @ rev 9175
Removed a old line to sed /etc/init.d/rcS. Fixes sed errors with busybox on install.
author | Christopher Rogers <slaxemulator@gmail.com> |
---|---|
date | Tue Mar 08 17:14:06 2011 +0000 (2011-03-08) |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/ffmpeg/stuff/configure Tue Mar 08 17:14:06 2011 +0000 1.3 @@ -0,0 +1,2595 @@ 1.4 +#!/bin/sh 1.5 +# 1.6 +# FFmpeg configure script 1.7 +# 1.8 +# Copyright (c) 2000-2002 Fabrice Bellard 1.9 +# Copyright (c) 2005-2008 Diego Biurrun 1.10 +# Copyright (c) 2005-2008 Mans Rullgard 1.11 +# 1.12 + 1.13 +# Prevent locale nonsense from breaking basic text processing. 1.14 +LC_ALL=C 1.15 +export LC_ALL 1.16 + 1.17 +# make sure we are running under a compatible shell 1.18 +# try to make this part work with most shells 1.19 + 1.20 +try_exec(){ 1.21 + echo "Trying shell $1" 1.22 + type "$1" > /dev/null 2>&1 && exec "$@" 1.23 +} 1.24 + 1.25 +unset foo 1.26 +(: ${foo%%bar}) 2> /dev/null 1.27 +E1="$?" 1.28 + 1.29 +(: ${foo?}) 2> /dev/null 1.30 +E2="$?" 1.31 + 1.32 +if test "$E1" != 0 || test "$E2" = 0; then 1.33 + echo "Broken shell detected. Trying alternatives." 1.34 + export FF_CONF_EXEC 1.35 + if test "0$FF_CONF_EXEC" -lt 1; then 1.36 + FF_CONF_EXEC=1 1.37 + try_exec bash "$0" "$@" 1.38 + fi 1.39 + if test "0$FF_CONF_EXEC" -lt 2; then 1.40 + FF_CONF_EXEC=2 1.41 + try_exec ksh "$0" "$@" 1.42 + fi 1.43 + if test "0$FF_CONF_EXEC" -lt 3; then 1.44 + FF_CONF_EXEC=3 1.45 + try_exec /usr/xpg4/bin/sh "$0" "$@" 1.46 + fi 1.47 + echo "No compatible shell script interpreter found." 1.48 + echo "This configure script requires a POSIX-compatible shell" 1.49 + echo "such as bash or ksh." 1.50 + echo "THIS IS NOT A BUG IN FFMPEG, DO NOT REPORT IT AS SUCH." 1.51 + echo "Instead, install a working POSIX-compatible shell." 1.52 + echo "Disabling this configure test will create a broken FFmpeg." 1.53 + if test "$BASH_VERSION" = '2.04.0(1)-release'; then 1.54 + echo "This bash version ($BASH_VERSION) is broken on your platform." 1.55 + echo "Upgrade to a later version if available." 1.56 + fi 1.57 + exit 1 1.58 +fi 1.59 + 1.60 +show_help(){ 1.61 + echo "Usage: configure [options]" 1.62 + echo "Options: [defaults in brackets after descriptions]" 1.63 + echo 1.64 + echo "Standard options:" 1.65 + echo " --help print this message" 1.66 + echo " --logfile=FILE log tests and output to FILE [config.err]" 1.67 + echo " --disable-logging do not log configure debug information" 1.68 + echo " --prefix=PREFIX install in PREFIX [$prefix]" 1.69 + echo " --bindir=DIR install binaries in DIR [PREFIX/bin]" 1.70 + echo " --datadir=DIR install data files in DIR [PREFIX/share/ffmpeg]" 1.71 + echo " --libdir=DIR install libs in DIR [PREFIX/lib]" 1.72 + echo " --shlibdir=DIR install shared libs in DIR [PREFIX/lib]" 1.73 + echo " --incdir=DIR install includes in DIR [PREFIX/include]" 1.74 + echo " --mandir=DIR install man page in DIR [PREFIX/share/man]" 1.75 + echo 1.76 + echo "Configuration options:" 1.77 + echo " --disable-static do not build static libraries [no]" 1.78 + echo " --enable-shared build shared libraries [no]" 1.79 + echo " --enable-gpl allow use of GPL code, the resulting libs" 1.80 + echo " and binaries will be under GPL [no]" 1.81 + echo " --enable-nonfree allow use of nonfree code, the resulting libs" 1.82 + echo " and binaries will be unredistributable [no]" 1.83 + echo " --disable-ffmpeg disable ffmpeg build" 1.84 + echo " --disable-ffplay disable ffplay build" 1.85 + echo " --disable-ffserver disable ffserver build" 1.86 + echo " --enable-postproc enable GPLed postprocessing support [no]" 1.87 + echo " --enable-avfilter video filter support [no]" 1.88 + echo " --enable-avfilter-lavf video filters dependent on avformat [no]" 1.89 + echo " --enable-beosthreads use BeOS threads [no]" 1.90 + echo " --enable-os2threads use OS/2 threads [no]" 1.91 + echo " --enable-pthreads use pthreads [no]" 1.92 + echo " --enable-w32threads use Win32 threads [no]" 1.93 + echo " --enable-x11grab enable X11 grabbing [no]" 1.94 + echo " --disable-network disable network support [no]" 1.95 + echo " --disable-ipv6 disable IPv6 support [no]" 1.96 + echo " --disable-mpegaudio-hp faster (but less accurate) MPEG audio decoding [no]" 1.97 + echo " --enable-gray enable full grayscale support (slower color)" 1.98 + echo " --disable-swscale-alpha disable alpha channel support in swscale" 1.99 + echo " --disable-fastdiv disable table-based division" 1.100 + echo " --enable-small optimize for size instead of speed" 1.101 + echo " --disable-aandct disable AAN DCT code" 1.102 + echo " --disable-fft disable FFT code" 1.103 + echo " --disable-golomb disable Golomb code" 1.104 + echo " --disable-mdct disable MDCT code" 1.105 + echo " --disable-rdft disable RDFT code" 1.106 + echo " --enable-hardcoded-tables use hardcoded tables instead of runtime generation" 1.107 + echo " --enable-memalign-hack emulate memalign, interferes with memory debuggers" 1.108 + echo " --enable-beos-netserver enable BeOS netserver" 1.109 + echo " --disable-encoder=NAME disable encoder NAME" 1.110 + echo " --enable-encoder=NAME enable encoder NAME" 1.111 + echo " --disable-encoders disable all encoders" 1.112 + echo " --disable-decoder=NAME disable decoder NAME" 1.113 + echo " --enable-decoder=NAME enable decoder NAME" 1.114 + echo " --disable-decoders disable all decoders" 1.115 + echo " --disable-hwaccel=NAME disable hwaccel NAME" 1.116 + echo " --enable-hwaccel=NAME enable hwaccel NAME" 1.117 + echo " --disable-hwaccels disable all hwaccels" 1.118 + echo " --disable-muxer=NAME disable muxer NAME" 1.119 + echo " --enable-muxer=NAME enable muxer NAME" 1.120 + echo " --disable-muxers disable all muxers" 1.121 + echo " --disable-demuxer=NAME disable demuxer NAME" 1.122 + echo " --enable-demuxer=NAME enable demuxer NAME" 1.123 + echo " --disable-demuxers disable all demuxers" 1.124 + echo " --enable-parser=NAME enable parser NAME" 1.125 + echo " --disable-parser=NAME disable parser NAME" 1.126 + echo " --disable-parsers disable all parsers" 1.127 + echo " --enable-bsf=NAME enable bitstream filter NAME" 1.128 + echo " --disable-bsf=NAME disable bitstream filter NAME" 1.129 + echo " --disable-bsfs disable all bitstream filters" 1.130 + echo " --enable-protocol=NAME enable protocol NAME" 1.131 + echo " --disable-protocol=NAME disable protocol NAME" 1.132 + echo " --disable-protocols disable all protocols" 1.133 + echo " --disable-indevs disable input devices" 1.134 + echo " --disable-outdevs disable output devices" 1.135 + echo " --disable-devices disable all devices" 1.136 + echo " --enable-filter=NAME enable filter NAME" 1.137 + echo " --disable-filter=NAME disable filter NAME" 1.138 + echo " --disable-filters disable all filters" 1.139 + echo " --list-decoders show all available decoders" 1.140 + echo " --list-encoders show all available encoders" 1.141 + echo " --list-hwaccels show all available hardware accelerators" 1.142 + echo " --list-muxers show all available muxers" 1.143 + echo " --list-demuxers show all available demuxers" 1.144 + echo " --list-parsers show all available parsers" 1.145 + echo " --list-protocols show all available protocols" 1.146 + echo " --list-bsfs show all available bitstream filters" 1.147 + echo " --list-indevs show all available input devices" 1.148 + echo " --list-outdevs show all available output devices" 1.149 + echo " --list-filters show all available filters" 1.150 + echo 1.151 + echo "External library support:" 1.152 + echo " --enable-avisynth enable reading of AVISynth script files [no]" 1.153 + echo " --enable-bzlib enable bzlib [autodetect]" 1.154 + echo " --enable-libamr-nb enable libamr-nb floating point audio codec [no]" 1.155 + echo " --enable-libamr-wb enable libamr-wb floating point audio codec [no]" 1.156 + echo " --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394" 1.157 + echo " and libraw1394 [no]" 1.158 + echo " --enable-libdirac enable Dirac support via libdirac [no]" 1.159 + echo " --enable-libfaac enable FAAC support via libfaac [no]" 1.160 + echo " --enable-libfaad enable FAAD support via libfaad [no]" 1.161 + echo " --enable-libfaadbin open libfaad.so.0 at runtime [no]" 1.162 + echo " --enable-libgsm enable GSM support via libgsm [no]" 1.163 + echo " --enable-libmp3lame enable MP3 encoding via libmp3lame [no]" 1.164 + echo " --enable-libnut enable NUT (de)muxing via libnut," 1.165 + echo " native (de)muxer exists [no]" 1.166 + echo " --enable-libopenjpeg enable JPEG 2000 decoding via OpenJPEG [no]" 1.167 + echo " --enable-libschroedinger enable Dirac support via libschroedinger [no]" 1.168 + echo " --enable-libspeex enable Speex decoding via libspeex [no]" 1.169 + echo " --enable-libtheora enable Theora encoding via libtheora [no]" 1.170 + echo " --enable-libvorbis enable Vorbis encoding via libvorbis," 1.171 + echo " native implementation exists [no]" 1.172 + echo " --enable-libx264 enable H.264 encoding via x264 [no]" 1.173 + echo " --enable-libxvid enable Xvid encoding via xvidcore," 1.174 + echo " native MPEG-4/Xvid encoder exists [no]" 1.175 + echo " --enable-mlib enable Sun medialib [no]" 1.176 + echo " --enable-zlib enable zlib [autodetect]" 1.177 + echo "" 1.178 + echo "Advanced options (experts only):" 1.179 + echo " --source-path=PATH path to source code [$source_path]" 1.180 + echo " --cross-prefix=PREFIX use PREFIX for compilation tools [$cross_prefix]" 1.181 + echo " --enable-cross-compile assume a cross-compiler is used" 1.182 + echo " --sysroot=PATH root of cross-build tree" 1.183 + echo " --sysinclude=PATH location of cross-build system headers" 1.184 + echo " --target-os=OS compiler targets OS [$target_os]" 1.185 + echo " --target-exec=CMD command to run executables on target" 1.186 + echo " --target-path=DIR path to view of build directory on target" 1.187 + echo " --nm=NM use nm tool" 1.188 + echo " --as=AS use assembler AS [$as_default]" 1.189 + echo " --cc=CC use C compiler CC [$cc_default]" 1.190 + echo " --host-cc=HOSTCC use host C compiler HOSTCC" 1.191 + echo " --host-cflags=HCFLAGS use HCFLAGS when compiling for host" 1.192 + echo " --host-ldflags=HLDFLAGS use HLDFLAGS when linking for host" 1.193 + echo " --host-libs=HLIBS use libs HLIBS when linking for host" 1.194 + echo " --extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS]" 1.195 + echo " --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]" 1.196 + echo " --extra-libs=ELIBS add ELIBS [$ELIBS]" 1.197 + echo " --extra-version=STRING version string suffix []" 1.198 + echo " --build-suffix=SUFFIX library name suffix []" 1.199 + echo " --arch=ARCH select architecture [$arch]" 1.200 + echo " --cpu=CPU select the minimum required CPU (affects" 1.201 + echo " instruction selection, may crash on older CPUs)" 1.202 + echo " --enable-powerpc-perf enable performance report on PPC" 1.203 + echo " (requires enabling PMC)" 1.204 + echo " --disable-altivec disable AltiVec optimizations" 1.205 + echo " --disable-amd3dnow disable 3DNow! optimizations" 1.206 + echo " --disable-amd3dnowext disable 3DNow! extended optimizations" 1.207 + echo " --disable-mmx disable MMX optimizations" 1.208 + echo " --disable-mmx2 disable MMX2 optimizations" 1.209 + echo " --disable-sse disable SSE optimizations" 1.210 + echo " --disable-ssse3 disable SSSE3 optimizations" 1.211 + echo " --disable-armv5te disable armv5te optimizations" 1.212 + echo " --disable-armv6 disable armv6 optimizations" 1.213 + echo " --disable-armv6t2 disable armv6t2 optimizations" 1.214 + echo " --disable-armvfp disable ARM VFP optimizations" 1.215 + echo " --disable-iwmmxt disable iwmmxt optimizations" 1.216 + echo " --disable-mmi disable MMI optimizations" 1.217 + echo " --disable-neon disable neon optimizations" 1.218 + echo " --disable-vis disable VIS optimizations" 1.219 + echo " --disable-yasm disable use of yasm assembler" 1.220 + echo 1.221 + echo "Developer options (useful when working on FFmpeg itself):" 1.222 + echo " --disable-debug disable debugging symbols" 1.223 + echo " --enable-debug=LEVEL set the debug level [$debuglevel]" 1.224 + echo " --enable-gprof enable profiling with gprof [$gprof]" 1.225 + echo " --disable-optimizations disable compiler optimizations" 1.226 + echo " --enable-extra-warnings enable more compiler warnings" 1.227 + echo " --disable-stripping disable stripping of executables and shared libraries" 1.228 + echo "" 1.229 + echo "NOTE: Object files are built at the place where configure is launched." 1.230 + exit 0 1.231 +} 1.232 + 1.233 +log(){ 1.234 + echo "$@" >> $logfile 1.235 +} 1.236 + 1.237 +log_file(){ 1.238 + log BEGIN $1 1.239 + cat $1 >> $logfile 1.240 + log END $1 1.241 +} 1.242 + 1.243 +echolog(){ 1.244 + log "$@" 1.245 + echo "$@" 1.246 +} 1.247 + 1.248 +die(){ 1.249 + echolog "$@" 1.250 + cat <<EOF 1.251 + 1.252 +If you think configure made a mistake, make sure you are using the latest 1.253 +version from SVN. If the latest version fails, report the problem to the 1.254 +ffmpeg-user@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net. 1.255 +EOF 1.256 + if disabled logging; then 1.257 + cat <<EOF 1.258 +Rerun configure with logging enabled (do not use --disable-logging), and 1.259 +include the log this produces with your report. 1.260 +EOF 1.261 + else 1.262 +cat <<EOF 1.263 +Include the log file "$logfile" produced by configure as this will help 1.264 +solving the problem. 1.265 +EOF 1.266 + fi 1.267 + exit 1 1.268 +} 1.269 + 1.270 +# Avoid locale weirdness, besides we really just want to translate ASCII. 1.271 +toupper(){ 1.272 + echo "$@" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 1.273 +} 1.274 + 1.275 +tolower(){ 1.276 + echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 1.277 +} 1.278 + 1.279 +c_escape(){ 1.280 + echo "$*" | sed 's/["\\]/\\\0/g' 1.281 +} 1.282 + 1.283 +set_all(){ 1.284 + value=$1 1.285 + shift 1.286 + for var in $*; do 1.287 + eval $var=$value 1.288 + done 1.289 +} 1.290 + 1.291 +set_weak(){ 1.292 + value=$1 1.293 + shift 1.294 + for var; do 1.295 + eval : \${$var:=$value} 1.296 + done 1.297 +} 1.298 + 1.299 +pushvar(){ 1.300 + for var in $*; do 1.301 + eval level=\${${var}_level:=0} 1.302 + eval ${var}_${level}="\$$var" 1.303 + eval ${var}_level=$(($level+1)) 1.304 + done 1.305 +} 1.306 + 1.307 +popvar(){ 1.308 + for var in $*; do 1.309 + eval level=\${${var}_level:-0} 1.310 + test $level = 0 && continue 1.311 + eval level=$(($level-1)) 1.312 + eval $var="\${${var}_${level}}" 1.313 + eval ${var}_level=$level 1.314 + eval unset ${var}_${level} 1.315 + done 1.316 +} 1.317 + 1.318 +enable(){ 1.319 + set_all yes $* 1.320 +} 1.321 + 1.322 +disable(){ 1.323 + set_all no $* 1.324 +} 1.325 + 1.326 +enable_weak(){ 1.327 + set_weak yes $* 1.328 +} 1.329 + 1.330 +disable_weak(){ 1.331 + set_weak no $* 1.332 +} 1.333 + 1.334 +enable_safe(){ 1.335 + enable $(echo "$*" | sed 's/[^A-Za-z0-9_ ]/_/g') 1.336 +} 1.337 + 1.338 +disable_safe(){ 1.339 + disable $(echo "$*" | sed 's/[^A-Za-z0-9_ ]/_/g') 1.340 +} 1.341 + 1.342 +do_enable_deep(){ 1.343 + for var; do 1.344 + enabled $var && continue 1.345 + eval sel="\$${var}_select" 1.346 + eval sgs="\$${var}_suggest" 1.347 + pushvar var sgs 1.348 + enable_deep $sel 1.349 + popvar sgs 1.350 + enable_deep_weak $sgs 1.351 + popvar var 1.352 + done 1.353 +} 1.354 + 1.355 +enable_deep(){ 1.356 + do_enable_deep $* 1.357 + enable $* 1.358 +} 1.359 + 1.360 +enable_deep_weak(){ 1.361 + do_enable_deep $* 1.362 + enable_weak $* 1.363 +} 1.364 + 1.365 +enabled(){ 1.366 + test "${1#!}" = "$1" && op== || op=!= 1.367 + eval test "x\$${1#!}" $op "xyes" 1.368 +} 1.369 + 1.370 +disabled(){ 1.371 + test "${1#!}" = "$1" && op== || op=!= 1.372 + eval test "x\$${1#!}" $op "xno" 1.373 +} 1.374 + 1.375 +enabled_all(){ 1.376 + for opt; do 1.377 + enabled $opt || return 1 1.378 + done 1.379 +} 1.380 + 1.381 +disabled_all(){ 1.382 + for opt; do 1.383 + disabled $opt || return 1 1.384 + done 1.385 +} 1.386 + 1.387 +enabled_any(){ 1.388 + for opt; do 1.389 + enabled $opt && return 0 1.390 + done 1.391 +} 1.392 + 1.393 +disabled_any(){ 1.394 + for opt; do 1.395 + disabled $opt && return 0 1.396 + done 1.397 + return 1 1.398 +} 1.399 + 1.400 +set_default(){ 1.401 + for opt; do 1.402 + eval : \${$opt:=\$${opt}_default} 1.403 + done 1.404 +} 1.405 + 1.406 +is_in(){ 1.407 + value=$1 1.408 + shift 1.409 + for var in $*; do 1.410 + [ $var = $value ] && return 0 1.411 + done 1.412 + return 1 1.413 +} 1.414 + 1.415 +check_deps(){ 1.416 + for cfg; do 1.417 + cfg="${cfg#!}" 1.418 + enabled ${cfg}_checking && die "Circular dependency for $cfg." 1.419 + disabled ${cfg}_checking && continue 1.420 + enable ${cfg}_checking 1.421 + 1.422 + eval dep_all="\$${cfg}_deps" 1.423 + eval dep_any="\$${cfg}_deps_any" 1.424 + eval dep_sel="\$${cfg}_select" 1.425 + eval dep_sgs="\$${cfg}_suggest" 1.426 + 1.427 + pushvar cfg dep_all dep_any dep_sel dep_sgs 1.428 + check_deps $dep_all $dep_any $dep_sel $dep_sgs 1.429 + popvar cfg dep_all dep_any dep_sel dep_sgs 1.430 + 1.431 + enabled_all $dep_all || disable $cfg 1.432 + enabled_any $dep_any || disable $cfg 1.433 + disabled_any $dep_sel && disable $cfg 1.434 + 1.435 + if enabled $cfg; then 1.436 + eval dep_extralibs="\$${cfg}_extralibs" 1.437 + test -n "$dep_extralibs" && add_extralibs $dep_extralibs 1.438 + enable_deep $dep_sel 1.439 + enable_deep_weak $dep_sgs 1.440 + fi 1.441 + 1.442 + disable ${cfg}_checking 1.443 + done 1.444 +} 1.445 + 1.446 +print_config(){ 1.447 + pfx=$1 1.448 + header=$2 1.449 + makefile=$3 1.450 + shift 3 1.451 + for cfg; do 1.452 + ucname="$(toupper $cfg)" 1.453 + if enabled $cfg; then 1.454 + echo "#define ${pfx}${ucname} 1" >> $header 1.455 + echo "${pfx}${ucname}=yes" >> $makefile 1.456 + else 1.457 + echo "#define ${pfx}${ucname} 0" >> $header 1.458 + fi 1.459 + done 1.460 +} 1.461 + 1.462 +flags_saved(){ 1.463 + (: ${SAVE_CFLAGS?}) 2> /dev/null 1.464 +} 1.465 + 1.466 +save_flags(){ 1.467 + flags_saved && return 1.468 + SAVE_CFLAGS="$CFLAGS" 1.469 + SAVE_LDFLAGS="$LDFLAGS" 1.470 + SAVE_extralibs="$extralibs" 1.471 +} 1.472 + 1.473 +restore_flags(){ 1.474 + flags_saved || return 1.475 + CFLAGS="$SAVE_CFLAGS" 1.476 + LDFLAGS="$SAVE_LDFLAGS" 1.477 + extralibs="$SAVE_extralibs" 1.478 + unset SAVE_CFLAGS 1.479 + unset SAVE_LDFLAGS 1.480 + unset SAVE_extralibs 1.481 +} 1.482 + 1.483 +temp_cflags(){ 1.484 + save_flags 1.485 + CFLAGS="$CFLAGS $*" 1.486 +} 1.487 + 1.488 +temp_ldflags(){ 1.489 + save_flags 1.490 + LDFLAGS="$LDFLAGS $*" 1.491 +} 1.492 + 1.493 +temp_extralibs(){ 1.494 + save_flags 1.495 + extralibs="$extralibs $*" 1.496 +} 1.497 + 1.498 +append(){ 1.499 + var=$1 1.500 + shift 1.501 + flags_saved && eval "SAVE_$var=\"\$SAVE_$var $*\"" 1.502 + eval "$var=\"\$$var $*\"" 1.503 +} 1.504 + 1.505 +add_cflags(){ 1.506 + append CFLAGS "$@" 1.507 +} 1.508 + 1.509 +add_ldflags(){ 1.510 + append LDFLAGS "$@" 1.511 +} 1.512 + 1.513 +add_extralibs(){ 1.514 + append extralibs "$@" 1.515 +} 1.516 + 1.517 +check_cmd(){ 1.518 + log "$@" 1.519 + "$@" >> $logfile 2>&1 1.520 +} 1.521 + 1.522 +check_cc(){ 1.523 + log check_cc "$@" 1.524 + cat > $TMPC 1.525 + log_file $TMPC 1.526 + check_cmd $cc $CFLAGS "$@" -c -o $TMPO $TMPC 1.527 +} 1.528 + 1.529 +check_cpp(){ 1.530 + log check_cpp "$@" 1.531 + cat > $TMPC 1.532 + log_file $TMPC 1.533 + check_cmd $cc $CFLAGS "$@" -E -o $TMPO $TMPC 1.534 +} 1.535 + 1.536 +check_as(){ 1.537 + log check_as "$@" 1.538 + cat > $TMPC 1.539 + log_file $TMPC 1.540 + check_cmd $as $CFLAGS "$@" -c -o $TMPO $TMPC 1.541 +} 1.542 + 1.543 +check_asm(){ 1.544 + log check_asm "$@" 1.545 + name="$1" 1.546 + asm="$2" 1.547 + shift 2 1.548 + check_as "$@" <<EOF && enable $name || disable $name 1.549 +void foo(void){ __asm__ volatile($asm); } 1.550 +EOF 1.551 +} 1.552 + 1.553 +check_yasm(){ 1.554 + log check_yasm "$@" 1.555 + echo "$1" > $TMPS 1.556 + log_file $TMPS 1.557 + shift 1 1.558 + check_cmd $yasmexe $YASMFLAGS "$@" -o $TMPO $TMPS 1.559 +} 1.560 + 1.561 +check_ld(){ 1.562 + log check_ld "$@" 1.563 + check_cc || return 1.564 + flags='' 1.565 + libs='' 1.566 + for f; do 1.567 + test "${f}" = "${f#-l}" && flags="$flags $f" || libs="$libs $f" 1.568 + done 1.569 + check_cmd $cc $LDFLAGS $flags -o $TMPE $TMPO $extralibs $libs 1.570 +} 1.571 + 1.572 +check_cflags(){ 1.573 + log check_cflags "$@" 1.574 + check_cc "$@" <<EOF && add_cflags "$@" 1.575 +int x; 1.576 +EOF 1.577 +} 1.578 + 1.579 +check_ldflags(){ 1.580 + log check_ldflags "$@" 1.581 + check_ld "$@" <<EOF && add_ldflags "$@" 1.582 +int main(void){ return 0; } 1.583 +EOF 1.584 +} 1.585 + 1.586 +check_header(){ 1.587 + log check_header "$@" 1.588 + header=$1 1.589 + shift 1.590 + disable_safe $header 1.591 + check_cpp "$@" <<EOF && enable_safe $header 1.592 +#include <$header> 1.593 +int x; 1.594 +EOF 1.595 +} 1.596 + 1.597 +check_func(){ 1.598 + log check_func "$@" 1.599 + func=$1 1.600 + shift 1.601 + disable $func 1.602 + check_ld "$@" <<EOF && enable $func 1.603 +extern int $func(); 1.604 +int main(void){ $func(); } 1.605 +EOF 1.606 +} 1.607 + 1.608 +check_func_headers(){ 1.609 + log check_func_headers "$@" 1.610 + headers=$1 1.611 + func=$2 1.612 + shift 2 1.613 + disable $func 1.614 + incs="" 1.615 + for hdr in $headers; do 1.616 + incs="$incs 1.617 +#include <$hdr>" 1.618 + done 1.619 + check_ld "$@" <<EOF && enable $func && enable_safe $headers 1.620 +$incs 1.621 +int main(int argc, char **argv){ 1.622 + (void) $func; 1.623 + return 0; 1.624 +} 1.625 +EOF 1.626 +} 1.627 + 1.628 +check_cpp_condition(){ 1.629 + log check_cpp_condition "$@" 1.630 + header=$1 1.631 + condition=$2 1.632 + check_cpp <<EOF 1.633 +#include <$header> 1.634 +#if !($condition) 1.635 +#error "unsatisfied condition: $condition" 1.636 +#endif 1.637 +EOF 1.638 +} 1.639 + 1.640 +check_lib(){ 1.641 + log check_lib "$@" 1.642 + header="$1" 1.643 + func="$2" 1.644 + shift 2 1.645 + temp_extralibs "$@" 1.646 + check_header $header && check_func $func && add_extralibs "$@" 1.647 + err=$? 1.648 + restore_flags 1.649 + return $err 1.650 +} 1.651 + 1.652 +check_lib2(){ 1.653 + log check_lib2 "$@" 1.654 + headers="$1" 1.655 + func="$2" 1.656 + shift 2 1.657 + temp_extralibs "$@" 1.658 + check_func_headers "$headers" $func && add_extralibs "$@" 1.659 + err=$? 1.660 + restore_flags 1.661 + return $err 1.662 +} 1.663 + 1.664 +check_exec(){ 1.665 + check_ld "$@" && { enabled cross_compile || $TMPE >> $logfile 2>&1; } 1.666 +} 1.667 + 1.668 +check_exec_crash(){ 1.669 + code=$(cat) 1.670 + 1.671 + # exit() is not async signal safe. _Exit (C99) and _exit (POSIX) 1.672 + # are safe but may not be available everywhere. Thus we use 1.673 + # raise(SIGTERM) instead. The check is run in a subshell so we 1.674 + # can redirect the "Terminated" message from the shell. SIGBUS 1.675 + # is not defined by standard C so it is used conditionally. 1.676 + 1.677 + (check_exec "$@") >> $logfile 2>&1 <<EOF 1.678 +#include <signal.h> 1.679 +static void sighandler(int sig){ 1.680 + raise(SIGTERM); 1.681 +} 1.682 +int main(void){ 1.683 + signal(SIGILL, sighandler); 1.684 + signal(SIGFPE, sighandler); 1.685 + signal(SIGSEGV, sighandler); 1.686 +#ifdef SIGBUS 1.687 + signal(SIGBUS, sighandler); 1.688 +#endif 1.689 + { $code } 1.690 +} 1.691 +EOF 1.692 +} 1.693 + 1.694 +check_type(){ 1.695 + log check_type "$@" 1.696 + headers=$1 1.697 + type=$2 1.698 + shift 2 1.699 + disable $type 1.700 + incs="" 1.701 + for hdr in $headers; do 1.702 + incs="$incs 1.703 +#include <$hdr>" 1.704 + done 1.705 + check_cc "$@" <<EOF && enable $type 1.706 +$incs 1.707 +$type v; 1.708 +EOF 1.709 +} 1.710 + 1.711 +require(){ 1.712 + name="$1" 1.713 + header="$2" 1.714 + func="$3" 1.715 + shift 3 1.716 + check_lib $header $func "$@" || die "ERROR: $name not found" 1.717 +} 1.718 + 1.719 +require2(){ 1.720 + name="$1" 1.721 + headers="$2" 1.722 + func="$3" 1.723 + shift 3 1.724 + check_lib2 "$headers" $func "$@" || die "ERROR: $name not found" 1.725 +} 1.726 + 1.727 +check_foo_config(){ 1.728 + cfg=$1 1.729 + pkg=$2 1.730 + header=$3 1.731 + func=$4 1.732 + shift 4 1.733 + disable $cfg 1.734 + check_cmd ${pkg}-config --version 1.735 + err=$? 1.736 + if test "$err" = 0; then 1.737 + temp_cflags $(${pkg}-config --cflags) 1.738 + temp_extralibs $(${pkg}-config --libs) 1.739 + check_lib "$@" $header $func && enable $cfg 1.740 + fi 1.741 + return $err 1.742 +} 1.743 + 1.744 +apply(){ 1.745 + file=$1 1.746 + shift 1.747 + "$@" < "$file" > "$file.tmp" && mv "$file.tmp" "$file" || rm "$file.tmp" 1.748 +} 1.749 + 1.750 +# CONFIG_LIST contains configurable options, while HAVE_LIST is for 1.751 +# system-dependent things. 1.752 + 1.753 +COMPONENT_LIST=" 1.754 + bsfs 1.755 + decoders 1.756 + demuxers 1.757 + encoders 1.758 + filters 1.759 + hwaccels 1.760 + indevs 1.761 + muxers 1.762 + outdevs 1.763 + parsers 1.764 + protocols 1.765 +" 1.766 + 1.767 +CONFIG_LIST=" 1.768 + $COMPONENT_LIST 1.769 + aandct 1.770 + avfilter 1.771 + avfilter_lavf 1.772 + avisynth 1.773 + beos_netserver 1.774 + bzlib 1.775 + fastdiv 1.776 + ffmpeg 1.777 + ffplay 1.778 + ffserver 1.779 + fft 1.780 + golomb 1.781 + gpl 1.782 + gprof 1.783 + gray 1.784 + hardcoded_tables 1.785 + ipv6 1.786 + libamr_nb 1.787 + libamr_wb 1.788 + libdc1394 1.789 + libdirac 1.790 + libfaac 1.791 + libfaad 1.792 + libfaadbin 1.793 + libgsm 1.794 + libmp3lame 1.795 + libnut 1.796 + libopenjpeg 1.797 + libschroedinger 1.798 + libspeex 1.799 + libtheora 1.800 + libvorbis 1.801 + libx264 1.802 + libxvid 1.803 + mdct 1.804 + memalign_hack 1.805 + mlib 1.806 + mpegaudio_hp 1.807 + network 1.808 + nonfree 1.809 + postproc 1.810 + powerpc_perf 1.811 + rdft 1.812 + shared 1.813 + small 1.814 + static 1.815 + swscale_alpha 1.816 + x11grab 1.817 + zlib 1.818 +" 1.819 + 1.820 +THREADS_LIST=' 1.821 + beosthreads 1.822 + os2threads 1.823 + pthreads 1.824 + w32threads 1.825 +' 1.826 + 1.827 +ARCH_LIST=' 1.828 + alpha 1.829 + arm 1.830 + bfin 1.831 + ia64 1.832 + m68k 1.833 + mips 1.834 + parisc 1.835 + ppc 1.836 + s390 1.837 + sh4 1.838 + sparc 1.839 + sparc64 1.840 + x86 1.841 + x86_32 1.842 + x86_64 1.843 +' 1.844 + 1.845 +ARCH_EXT_LIST=' 1.846 + altivec 1.847 + amd3dnow 1.848 + amd3dnowext 1.849 + armv5te 1.850 + armv6 1.851 + armv6t2 1.852 + armvfp 1.853 + iwmmxt 1.854 + mmi 1.855 + mmx 1.856 + mmx2 1.857 + neon 1.858 + ppc4xx 1.859 + sse 1.860 + ssse3 1.861 + vis 1.862 +' 1.863 + 1.864 +HAVE_LIST=" 1.865 + $ARCH_EXT_LIST 1.866 + $THREADS_LIST 1.867 + alsa_asoundlib_h 1.868 + altivec_h 1.869 + arpa_inet_h 1.870 + bswap 1.871 + closesocket 1.872 + cmov 1.873 + conio_h 1.874 + dcbzl 1.875 + dev_bktr_ioctl_bt848_h 1.876 + dev_bktr_ioctl_meteor_h 1.877 + dev_ic_bt8xx_h 1.878 + dev_video_meteor_ioctl_meteor_h 1.879 + dev_video_bktr_ioctl_bt848_h 1.880 + dlfcn_h 1.881 + dlopen 1.882 + dos_paths 1.883 + ebp_available 1.884 + ebx_available 1.885 + fast_64bit 1.886 + fast_cmov 1.887 + fast_unaligned 1.888 + fork 1.889 + gethrtime 1.890 + GetProcessTimes 1.891 + getrusage 1.892 + inet_aton 1.893 + inline_asm 1.894 + libdc1394_1 1.895 + libdc1394_2 1.896 + llrint 1.897 + lrint 1.898 + lrintf 1.899 + machine_ioctl_bt848_h 1.900 + machine_ioctl_meteor_h 1.901 + malloc_h 1.902 + memalign 1.903 + mkstemp 1.904 + pld 1.905 + posix_memalign 1.906 + ppc64 1.907 + round 1.908 + roundf 1.909 + sdl 1.910 + sdl_video_size 1.911 + setmode 1.912 + socklen_t 1.913 + soundcard_h 1.914 + poll_h 1.915 + sys_mman_h 1.916 + sys_resource_h 1.917 + sys_select_h 1.918 + sys_soundcard_h 1.919 + sys_videoio_h 1.920 + ten_operands 1.921 + termios_h 1.922 + threads 1.923 + truncf 1.924 + VirtualAlloc 1.925 + winsock2_h 1.926 + yasm 1.927 +" 1.928 + 1.929 +# options emitted with CONFIG_ prefix but not available on command line 1.930 +CONFIG_EXTRA=" 1.931 +" 1.932 + 1.933 +CMDLINE_SELECT=" 1.934 + $ARCH_EXT_LIST 1.935 + $CONFIG_LIST 1.936 + $THREADS_LIST 1.937 + cross_compile 1.938 + debug 1.939 + extra_warnings 1.940 + logging 1.941 + optimizations 1.942 + stripping 1.943 + yasm 1.944 +" 1.945 + 1.946 +PATHS_LIST=' 1.947 + bindir 1.948 + datadir 1.949 + incdir 1.950 + libdir 1.951 + mandir 1.952 + prefix 1.953 + shlibdir 1.954 +' 1.955 + 1.956 +CMDLINE_SET=" 1.957 + $PATHS_LIST 1.958 + arch 1.959 + as 1.960 + build_suffix 1.961 + cc 1.962 + cpu 1.963 + cross_prefix 1.964 + extra_version 1.965 + host_cc 1.966 + host_cflags 1.967 + host_ldflags 1.968 + host_libs 1.969 + host_os 1.970 + logfile 1.971 + nm 1.972 + source_path 1.973 + sysinclude 1.974 + sysroot 1.975 + target_exec 1.976 + target_os 1.977 + target_path 1.978 +" 1.979 + 1.980 +# code dependency declarations 1.981 + 1.982 +# architecture extensions 1.983 +altivec_deps="ppc" 1.984 +amd3dnow_deps="mmx" 1.985 +amd3dnowext_deps="amd3dnow" 1.986 +armv5te_deps="arm" 1.987 +armv6_deps="arm" 1.988 +armv6t2_deps="arm" 1.989 +armvfp_deps="arm" 1.990 +iwmmxt_deps="arm" 1.991 +mmi_deps="mips" 1.992 +mmx_deps="x86" 1.993 +mmx2_deps="mmx" 1.994 +neon_deps="arm" 1.995 +ppc4xx_deps="ppc" 1.996 +sse_deps="mmx" 1.997 +ssse3_deps="sse" 1.998 +vis_deps="sparc" 1.999 + 1.1000 +# decoders / encoders / hardware accelerators 1.1001 +aac_decoder_select="fft mdct" 1.1002 +ac3_decoder_deps="gpl" 1.1003 +ac3_decoder_select="fft mdct" 1.1004 +atrac3_decoder_select="fft mdct" 1.1005 +cavs_decoder_select="golomb" 1.1006 +cook_decoder_select="fft mdct" 1.1007 +cscd_decoder_suggest="zlib" 1.1008 +dca_decoder_select="fft mdct" 1.1009 +dnxhd_encoder_select="aandct" 1.1010 +dxa_decoder_select="zlib" 1.1011 +eac3_decoder_deps="gpl" 1.1012 +eac3_decoder_select="fft mdct" 1.1013 +eatgq_decoder_select="aandct" 1.1014 +eatqi_decoder_select="aandct" 1.1015 +ffv1_decoder_select="golomb" 1.1016 +flac_decoder_select="golomb" 1.1017 +flac_encoder_select="golomb" 1.1018 +flashsv_decoder_select="zlib" 1.1019 +flashsv_encoder_select="zlib" 1.1020 +flv_encoder_select="aandct" 1.1021 +h261_encoder_select="aandct" 1.1022 +h263_encoder_select="aandct" 1.1023 +h263_vaapi_hwaccel_deps="va_va_h" 1.1024 +h263p_encoder_select="aandct" 1.1025 +h264_decoder_select="golomb" 1.1026 +h264_vaapi_hwaccel_deps="va_va_h" 1.1027 +h264_vdpau_decoder_deps="vdpau_vdpau_h vdpau_vdpau_x11_h" 1.1028 +imc_decoder_select="fft mdct" 1.1029 +jpegls_decoder_select="golomb" 1.1030 +jpegls_encoder_select="golomb" 1.1031 +ljpeg_encoder_select="aandct" 1.1032 +loco_decoder_select="golomb" 1.1033 +mjpeg_encoder_select="aandct" 1.1034 +mpeg1video_encoder_select="aandct" 1.1035 +mpeg2video_encoder_select="aandct" 1.1036 +mpeg4_encoder_select="aandct" 1.1037 +mpeg_vdpau_decoder_deps="vdpau_vdpau_h vdpau_vdpau_x11_h" 1.1038 +mpeg1_vdpau_decoder_deps="vdpau_vdpau_h vdpau_vdpau_x11_h" 1.1039 +mpeg2_vaapi_hwaccel_deps="va_va_h" 1.1040 +mpeg4_vaapi_hwaccel_deps="va_va_h" 1.1041 +mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h" 1.1042 +msmpeg4v1_encoder_select="aandct" 1.1043 +msmpeg4v2_encoder_select="aandct" 1.1044 +msmpeg4v3_encoder_select="aandct" 1.1045 +nellymoser_decoder_select="fft mdct" 1.1046 +nellymoser_encoder_select="fft mdct" 1.1047 +png_decoder_select="zlib" 1.1048 +png_encoder_select="zlib" 1.1049 +qdm2_decoder_select="fft mdct rdft" 1.1050 +rv10_encoder_select="aandct" 1.1051 +rv20_encoder_select="aandct" 1.1052 +rv30_decoder_select="golomb" 1.1053 +rv40_decoder_select="golomb" 1.1054 +shorten_decoder_select="golomb" 1.1055 +sonic_decoder_select="golomb" 1.1056 +sonic_encoder_select="golomb" 1.1057 +sonic_ls_encoder_select="golomb" 1.1058 +svq3_decoder_select="golomb" 1.1059 +svq3_decoder_suggest="zlib" 1.1060 +tiff_decoder_suggest="zlib" 1.1061 +tiff_encoder_suggest="zlib" 1.1062 +tscc_decoder_select="zlib" 1.1063 +vc1_vaapi_hwaccel_deps="va_va_h" 1.1064 +vc1_vdpau_decoder_deps="vdpau_vdpau_h vdpau_vdpau_x11_h" 1.1065 +vorbis_decoder_select="fft mdct" 1.1066 +vorbis_encoder_select="fft mdct" 1.1067 +wmav1_decoder_select="fft mdct" 1.1068 +wmav1_encoder_select="fft mdct" 1.1069 +wmav2_decoder_select="fft mdct" 1.1070 +wmav2_encoder_select="fft mdct" 1.1071 +wmv1_encoder_select="aandct" 1.1072 +wmv2_encoder_select="aandct" 1.1073 +wmv3_vaapi_hwaccel_deps="va_va_h" 1.1074 +wmv3_vdpau_decoder_deps="vdpau_vdpau_h vdpau_vdpau_x11_h" 1.1075 +zlib_decoder_select="zlib" 1.1076 +zlib_encoder_select="zlib" 1.1077 +zmbv_decoder_select="zlib" 1.1078 +zmbv_encoder_select="zlib" 1.1079 + 1.1080 +# external libraries 1.1081 +libamr_nb_decoder_deps="libamr_nb" 1.1082 +libamr_nb_encoder_deps="libamr_nb" 1.1083 +libamr_wb_decoder_deps="libamr_wb" 1.1084 +libamr_wb_encoder_deps="libamr_wb" 1.1085 +libdirac_decoder_deps="libdirac !libschroedinger" 1.1086 +libdirac_encoder_deps="libdirac" 1.1087 +libfaac_encoder_deps="libfaac" 1.1088 +libfaad_decoder_deps="libfaad" 1.1089 +libfaadbin_decoder_extralibs='$ldl' 1.1090 +libgsm_decoder_deps="libgsm" 1.1091 +libgsm_encoder_deps="libgsm" 1.1092 +libgsm_ms_decoder_deps="libgsm" 1.1093 +libgsm_ms_encoder_deps="libgsm" 1.1094 +libmp3lame_encoder_deps="libmp3lame" 1.1095 +libopenjpeg_decoder_deps="libopenjpeg" 1.1096 +libschroedinger_decoder_deps="libschroedinger" 1.1097 +libschroedinger_encoder_deps="libschroedinger" 1.1098 +libspeex_decoder_deps="libspeex" 1.1099 +libtheora_encoder_deps="libtheora" 1.1100 +libvorbis_encoder_deps="libvorbis" 1.1101 +libx264_encoder_deps="libx264" 1.1102 +libxvid_encoder_deps="libxvid" 1.1103 + 1.1104 +# demuxers / muxers 1.1105 +ac3_demuxer_deps="ac3_parser" 1.1106 +alsa_demuxer_deps="alsa_asoundlib_h snd_pcm_htimestamp" 1.1107 +alsa_demuxer_extralibs="-lasound" 1.1108 +alsa_muxer_deps="alsa_asoundlib_h" 1.1109 +alsa_muxer_extralibs="-lasound" 1.1110 +audio_beos_demuxer_deps="audio_beos" 1.1111 +audio_beos_demuxer_extralibs="-lmedia -lbe" 1.1112 +audio_beos_muxer_deps="audio_beos" 1.1113 +audio_beos_muxer_extralibs="-lmedia -lbe" 1.1114 +avisynth_demuxer_deps="avisynth" 1.1115 +bktr_demuxer_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h" 1.1116 +dirac_demuxer_deps="dirac_parser" 1.1117 +dv1394_demuxer_deps="dv1394 dv_demuxer" 1.1118 +jack_demuxer_deps="jack_jack_h" 1.1119 +jack_demuxer_extralibs="-ljack" 1.1120 +libdc1394_demuxer_deps="libdc1394" 1.1121 +libnut_demuxer_deps="libnut" 1.1122 +libnut_muxer_deps="libnut" 1.1123 +matroska_demuxer_suggest="zlib bzlib" 1.1124 +mov_demuxer_suggest="zlib" 1.1125 +mp3_demuxer_deps="mpegaudio_parser" 1.1126 +oss_demuxer_deps_any="soundcard_h sys_soundcard_h" 1.1127 +oss_muxer_deps_any="soundcard_h sys_soundcard_h" 1.1128 +redir_demuxer_deps="network" 1.1129 +rtp_muxer_deps="network rtp_protocol" 1.1130 +rtsp_demuxer_deps="sdp_demuxer" 1.1131 +sdp_demuxer_deps="rtp_protocol mpegts_demuxer" 1.1132 +v4l_demuxer_deps="linux_videodev_h" 1.1133 +v4l2_demuxer_deps_any="linux_videodev2_h sys_videoio_h" 1.1134 +vfwcap_demuxer_deps="capCreateCaptureWindow" 1.1135 +vfwcap_demuxer_extralibs="-lvfw32" 1.1136 +x11_grab_device_demuxer_deps="x11grab XShmCreateImage" 1.1137 +x11_grab_device_demuxer_extralibs="-lX11 -lXext" 1.1138 + 1.1139 +# protocols 1.1140 +gopher_protocol_deps="network" 1.1141 +http_protocol_deps="network" 1.1142 +rtp_protocol_deps="udp_protocol" 1.1143 +tcp_protocol_deps="network" 1.1144 +udp_protocol_deps="network" 1.1145 + 1.1146 +# filters 1.1147 +movie_filter_deps="avfilter_lavf" 1.1148 + 1.1149 +# programs 1.1150 +ffplay_deps="sdl" 1.1151 +ffserver_deps="ffm_muxer rtp_protocol rtsp_demuxer" 1.1152 +ffserver_extralibs='$ldl' 1.1153 + 1.1154 + 1.1155 +# default parameters 1.1156 + 1.1157 +logfile="config.err" 1.1158 + 1.1159 +# installation paths 1.1160 +prefix_default="/usr/local" 1.1161 +bindir_default='${prefix}/bin' 1.1162 +datadir_default='${prefix}/share/ffmpeg' 1.1163 +incdir_default='${prefix}/include' 1.1164 +libdir_default='${prefix}/lib' 1.1165 +mandir_default='${prefix}/share/man' 1.1166 +shlibdir_default="$libdir_default" 1.1167 + 1.1168 +# toolchain 1.1169 +ar="ar" 1.1170 +cc_default="gcc" 1.1171 +host_cc_default="gcc" 1.1172 +ln_s="ln -sf" 1.1173 +nm_default="nm" 1.1174 +objformat="elf" 1.1175 +ranlib="ranlib" 1.1176 +strip="strip" 1.1177 +yasmexe="yasm" 1.1178 + 1.1179 +# machine 1.1180 +arch=$(uname -m) 1.1181 +cpu="generic" 1.1182 + 1.1183 +# OS 1.1184 +target_os=$(tolower $(uname -s)) 1.1185 +host_os=$target_os 1.1186 + 1.1187 +# configurable options 1.1188 +enable debug 1.1189 +enable fastdiv 1.1190 +enable ffmpeg 1.1191 +enable ffplay 1.1192 +enable ffserver 1.1193 +enable ipv6 1.1194 +enable mpegaudio_hp 1.1195 +enable network 1.1196 +enable optimizations 1.1197 +enable protocols 1.1198 +enable static 1.1199 +enable stripping 1.1200 +enable swscale_alpha 1.1201 + 1.1202 +# build settings 1.1203 +add_cflags -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 1.1204 +SHFLAGS='-shared -Wl,-soname,$$(@F)' 1.1205 +FFSERVERLDFLAGS=-Wl,-E 1.1206 +LIBPREF="lib" 1.1207 +LIBSUF=".a" 1.1208 +FULLNAME='$(NAME)$(BUILDSUF)' 1.1209 +LIBNAME='$(LIBPREF)$(FULLNAME)$(LIBSUF)' 1.1210 +SLIBPREF="lib" 1.1211 +SLIBSUF=".so" 1.1212 +SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)' 1.1213 +SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)' 1.1214 +SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' 1.1215 +LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' 1.1216 + 1.1217 +host_cflags='-O3 -g -Wall' 1.1218 +host_libs='-lm' 1.1219 + 1.1220 +target_path='.' 1.1221 + 1.1222 +# gcc stupidly only outputs the basename of targets with -MM, but we need the 1.1223 +# full relative path for objects in subdirectories for non-recursive Make. 1.1224 +DEPEND_CMD='$(CC) $(CFLAGS) -MM $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o,"' 1.1225 + 1.1226 +# find source path 1.1227 +source_path="$(dirname "$0")" 1.1228 +enable source_path_used 1.1229 +if test -z "$source_path" -o "$source_path" = "." ; then 1.1230 + source_path="$(pwd)" 1.1231 + disable source_path_used 1.1232 +else 1.1233 + source_path="$(cd "$source_path"; pwd)" 1.1234 + echo "$source_path" | grep -q '[[:blank:]]' && 1.1235 + die "Out of tree builds are impossible with whitespace in source path." 1.1236 + test -e "$source_path/config.h" && 1.1237 + die "Out of tree builds are impossible with config.h in source dir." 1.1238 +fi 1.1239 + 1.1240 +for v in "$@"; do 1.1241 + r="${v#*=}" 1.1242 + l="${v%$r}" 1.1243 + test "$r" = "${r#* }" || r="'$r'" 1.1244 + FFMPEG_CONFIGURATION="${FFMPEG_CONFIGURATION# } ${l}${r}" 1.1245 +done 1.1246 + 1.1247 +find_things(){ 1.1248 + thing=$1 1.1249 + pattern=$2 1.1250 + file=$source_path/$3 1.1251 + sed -n "s/^[^#]*$pattern.*([^,]*, *\([^,]*\)\(,.*\)*).*/\1_$thing/p" "$file" 1.1252 +} 1.1253 + 1.1254 +ENCODER_LIST=$(find_things encoder ENC libavcodec/allcodecs.c) 1.1255 +DECODER_LIST=$(find_things decoder DEC libavcodec/allcodecs.c) 1.1256 +HWACCEL_LIST=$(find_things hwaccel HWACCEL libavcodec/allcodecs.c) 1.1257 +PARSER_LIST=$(find_things parser PARSER libavcodec/allcodecs.c) 1.1258 +BSF_LIST=$(find_things bsf BSF libavcodec/allcodecs.c) 1.1259 +MUXER_LIST=$(find_things muxer _MUX libavformat/allformats.c) 1.1260 +DEMUXER_LIST=$(find_things demuxer DEMUX libavformat/allformats.c) 1.1261 +OUTDEV_LIST=$(find_things muxer _MUX libavdevice/alldevices.c) 1.1262 +INDEV_LIST=$(find_things demuxer DEMUX libavdevice/alldevices.c) 1.1263 +PROTOCOL_LIST=$(find_things protocol PROTOCOL libavformat/allformats.c) 1.1264 +FILTER_LIST=$(find_things filter FILTER libavfilter/allfilters.c) 1.1265 + 1.1266 +enable $ARCH_EXT_LIST \ 1.1267 + $DECODER_LIST \ 1.1268 + $ENCODER_LIST \ 1.1269 + $HWACCEL_LIST \ 1.1270 + $PARSER_LIST \ 1.1271 + $BSF_LIST \ 1.1272 + $DEMUXER_LIST \ 1.1273 + $MUXER_LIST \ 1.1274 + $FILTER_LIST \ 1.1275 + $PROTOCOL_LIST \ 1.1276 + $INDEV_LIST \ 1.1277 + $OUTDEV_LIST \ 1.1278 + 1.1279 +die_unknown(){ 1.1280 + echo "Unknown option \"$1\"." 1.1281 + echo "See $0 --help for available options." 1.1282 + exit 1 1.1283 +} 1.1284 + 1.1285 +show_list() { 1.1286 + suffix=_$1 1.1287 + shift 1.1288 + echo $* | sed s/$suffix//g | tr ' ' '\n' | sort 1.1289 + exit 0 1.1290 +} 1.1291 + 1.1292 +for opt do 1.1293 + optval="${opt#*=}" 1.1294 + case "$opt" in 1.1295 + --extra-cflags=*) add_cflags $optval 1.1296 + ;; 1.1297 + --extra-ldflags=*) add_ldflags $optval 1.1298 + ;; 1.1299 + --extra-libs=*) add_extralibs $optval 1.1300 + ;; 1.1301 + --disable-devices) disable $INDEV_LIST $OUTDEV_LIST 1.1302 + ;; 1.1303 + --enable-debug=*) debuglevel="$optval" 1.1304 + ;; 1.1305 + --enable-*=*|--disable-*=*) 1.1306 + eval $(echo "$opt" | sed 's/=/-/;s/--/action=/;s/-/ thing=/;s/-/ name=/') 1.1307 + case "$thing" in 1.1308 + encoder|decoder|hwaccel|muxer|demuxer|parser|bsf|protocol|filter) $action ${optval}_${thing} ;; 1.1309 + *) die_unknown "$opt" ;; 1.1310 + esac 1.1311 + ;; 1.1312 + --enable-?*|--disable-?*) 1.1313 + eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g') 1.1314 + if is_in $option $COMPONENT_LIST; then 1.1315 + eval $action \$$(toupper ${option%s})_LIST 1.1316 + elif is_in $option $CMDLINE_SELECT; then 1.1317 + $action $option 1.1318 + else 1.1319 + die_unknown $opt 1.1320 + fi 1.1321 + ;; 1.1322 + --list-*) 1.1323 + NAME="${opt#--list-}" 1.1324 + is_in $NAME $COMPONENT_LIST || die_unknown $opt 1.1325 + NAME=${NAME%s} 1.1326 + eval show_list $NAME \$$(toupper $NAME)_LIST 1.1327 + ;; 1.1328 + --help|-h) show_help 1.1329 + ;; 1.1330 + *) 1.1331 + optname="${opt%%=*}" 1.1332 + optname="${optname#--}" 1.1333 + optname=$(echo "$optname" | sed 's/-/_/g') 1.1334 + is_in $optname $CMDLINE_SET || die_unknown $opt 1.1335 + eval $optname='$optval' 1.1336 + ;; 1.1337 + esac 1.1338 +done 1.1339 + 1.1340 +disabled logging && logfile=/dev/null 1.1341 + 1.1342 +echo "# $0 $FFMPEG_CONFIGURATION" > $logfile 1.1343 +set >> $logfile 1.1344 + 1.1345 +test -n "$cross_prefix" && enable cross_compile 1.1346 + 1.1347 +ar="${cross_prefix}${ar}" 1.1348 +cc_default="${cross_prefix}${cc_default}" 1.1349 +nm_default="${cross_prefix}${nm_default}" 1.1350 +ranlib="${cross_prefix}${ranlib}" 1.1351 +strip="${cross_prefix}${strip}" 1.1352 + 1.1353 +sysinclude_default="${sysroot}/usr/include" 1.1354 + 1.1355 +set_default cc nm sysinclude 1.1356 +as_default=$cc 1.1357 +enabled cross_compile || host_cc_default=$cc 1.1358 +set_default host_cc 1.1359 + 1.1360 +exesuf() { 1.1361 + case $1 in 1.1362 + mingw32*|cygwin*|*-dos|freedos|opendos|os/2*) echo .exe ;; 1.1363 + esac 1.1364 +} 1.1365 + 1.1366 +EXESUF=$(exesuf $target_os) 1.1367 +HOSTEXESUF=$(exesuf $host_os) 1.1368 + 1.1369 +# set temporary file name 1.1370 +: ${TMPDIR:=$TEMPDIR} 1.1371 +: ${TMPDIR:=$TMP} 1.1372 +: ${TMPDIR:=/tmp} 1.1373 + 1.1374 +TMPC="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c" 1.1375 +TMPE="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}${EXESUF}" 1.1376 +TMPH="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h" 1.1377 +TMPO="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o" 1.1378 +TMPS="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S" 1.1379 +TMPSH="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.sh" 1.1380 + 1.1381 +# make sure we can execute files in $TMPDIR 1.1382 +cat > $TMPSH 2>> $logfile <<EOF 1.1383 +#! /bin/sh 1.1384 +EOF 1.1385 +chmod +x $TMPSH >> $logfile 2>&1 1.1386 +if ! $TMPSH >> $logfile 2>&1; then 1.1387 + cat <<EOF 1.1388 +Unable to create and execute files in $TMPDIR. Set the TMPDIR environment 1.1389 +variable to another directory and make sure that it is not mounted noexec. 1.1390 +EOF 1.1391 + die "Sanity test failed." 1.1392 +fi 1.1393 + 1.1394 +if $cc --version 2>/dev/null | grep -qi gcc; then 1.1395 + cc_type=gcc 1.1396 +elif $cc --version 2>/dev/null | grep -q Intel; then 1.1397 + cc_type=icc 1.1398 +elif $cc -v 2>&1 | grep -q xlc; then 1.1399 + cc_type=xlc 1.1400 +elif $cc -V 2>/dev/null | grep -q Compaq; then 1.1401 + cc_type=ccc 1.1402 + DEPEND_CMD='$(CC) $(CFLAGS) -M $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o,"' 1.1403 + debuglevel=3 1.1404 + add_ldflags -Wl,-z,now # calls to libots crash without this 1.1405 +elif $cc --vsn 2>/dev/null | grep -q RVCT; then 1.1406 + test -d "$sysroot" || die "No valid sysroot specified." 1.1407 + cc_type=armcc 1.1408 + armcc_conf="$PWD/armcc.conf" 1.1409 + $cc --arm_linux_configure \ 1.1410 + --arm_linux_config_file="$armcc_conf" \ 1.1411 + --configure_sysroot="$sysroot" \ 1.1412 + --configure_cpp_headers="$sysinclude" >>$logfile 2>&1 || 1.1413 + die "Error creating armcc configuration file." 1.1414 + cc="$cc --arm_linux_config_file=$armcc_conf --translate_gcc" 1.1415 + as_default="${cross_prefix}gcc" 1.1416 +fi 1.1417 + 1.1418 +test -n "$cc_type" && enable $cc_type || echolog "Unknown C compiler $cc" 1.1419 + 1.1420 +set_default as 1.1421 + 1.1422 +if test -n "$sysroot"; then 1.1423 + case "$cc_type" in 1.1424 + gcc) 1.1425 + add_cflags --sysroot="$sysroot" 1.1426 + add_ldflags --sysroot="$sysroot" 1.1427 + ;; 1.1428 + esac 1.1429 +fi 1.1430 + 1.1431 +# compiler sanity check 1.1432 +check_exec <<EOF 1.1433 +int main(void){ return 0; } 1.1434 +EOF 1.1435 +if test "$?" != 0; then 1.1436 + echo "$cc is unable to create an executable file." 1.1437 + if test -z "$cross_prefix" && ! enabled cross_compile ; then 1.1438 + echo "If $cc is a cross-compiler, use the --enable-cross-compile option." 1.1439 + echo "Only do this if you know what cross compiling means." 1.1440 + fi 1.1441 + die "C compiler test failed." 1.1442 +fi 1.1443 + 1.1444 +check_cflags -std=c99 1.1445 +check_cc -D_FILE_OFFSET_BITS=64 <<EOF && add_cflags -D_FILE_OFFSET_BITS=64 1.1446 +#include <stdlib.h> 1.1447 +EOF 1.1448 +check_cc -D_LARGEFILE_SOURCE <<EOF && add_cflags -D_LARGEFILE_SOURCE 1.1449 +#include <stdlib.h> 1.1450 +EOF 1.1451 + 1.1452 +case "$arch" in 1.1453 + alpha) 1.1454 + arch="alpha" 1.1455 + enable fast_64bit 1.1456 + check_cflags -mieee 1.1457 + ;; 1.1458 + arm|armv[4567]*l) 1.1459 + arch="arm" 1.1460 + ;; 1.1461 + avr32) 1.1462 + ;; 1.1463 + bfin) 1.1464 + arch="bfin" 1.1465 + ;; 1.1466 + ia64) 1.1467 + arch="ia64" 1.1468 + enable fast_64bit 1.1469 + ;; 1.1470 + m68k) 1.1471 + arch="m68k" 1.1472 + ;; 1.1473 + mips|mipsel|IP*) 1.1474 + arch="mips" 1.1475 + ;; 1.1476 + mips64) 1.1477 + arch="mips" 1.1478 + enable fast_64bit 1.1479 + ;; 1.1480 + parisc|hppa) 1.1481 + arch="parisc" 1.1482 + ;; 1.1483 + parisc64|hppa64) 1.1484 + arch="parisc" 1.1485 + enable fast_64bit 1.1486 + ;; 1.1487 + "Power Macintosh"|ppc|powerpc) 1.1488 + arch="ppc" 1.1489 + enable fast_unaligned 1.1490 + ;; 1.1491 + ppc64) 1.1492 + arch="ppc" 1.1493 + enable fast_64bit 1.1494 + enable fast_unaligned 1.1495 + ;; 1.1496 + s390|s390x) 1.1497 + arch="s390" 1.1498 + ;; 1.1499 + sh4|sh) 1.1500 + arch="sh4" 1.1501 + ;; 1.1502 + sparc) 1.1503 + arch="sparc" 1.1504 + ;; 1.1505 + sun4u|sparc64) 1.1506 + arch="sparc" 1.1507 + subarch="sparc64" 1.1508 + enable fast_64bit 1.1509 + ;; 1.1510 + i386|i486|i586|i686|i86pc|BePC) 1.1511 + arch="x86" 1.1512 + subarch="x86_32" 1.1513 + enable fast_unaligned 1.1514 + ;; 1.1515 + x86_64|amd64) 1.1516 + arch="x86" 1.1517 + subarch="x86_32" 1.1518 + enable cmov 1.1519 + enable fast_cmov 1.1520 + enable fast_unaligned 1.1521 + check_cc <<EOF && enable fast_64bit && subarch="x86_64" 1.1522 + int test[sizeof(char*) - 7]; 1.1523 +EOF 1.1524 + ;; 1.1525 + *) 1.1526 + arch="unknown" 1.1527 + ;; 1.1528 +esac 1.1529 + 1.1530 +enable $arch $subarch 1.1531 + 1.1532 +# OS specific 1.1533 +case $target_os in 1.1534 + beos|haiku|zeta) 1.1535 + prefix_default="$HOME/config" 1.1536 + # helps building libavcodec 1.1537 + add_cflags -DPIC -fomit-frame-pointer 1.1538 + # 3 gcc releases known for BeOS, each with ugly bugs 1.1539 + gcc_version="$($cc -v 2>&1 | grep version | cut -d ' ' -f3-)" 1.1540 + case "$gcc_version" in 1.1541 + 2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc" 1.1542 + disable mmx 1.1543 + ;; 1.1544 + *20010315*) echo "BeBits gcc" 1.1545 + add_cflags -fno-expensive-optimizations 1.1546 + ;; 1.1547 + esac 1.1548 + SHFLAGS=-nostart 1.1549 + # enable BeOS things 1.1550 + enable audio_beos 1.1551 + # no need for libm, but the inet stuff 1.1552 + # Check for BONE 1.1553 + # XXX: actually should check for NOT net_server 1.1554 + if echo $BEINCLUDES | grep -q 'headers/be/bone'; then 1.1555 + network_extralibs="-lbind -lsocket" 1.1556 + else 1.1557 + enable beos_netserver 1.1558 + network_extralibs="-lnet" 1.1559 + fi ;; 1.1560 + sunos) 1.1561 + FFSERVERLDFLAGS="" 1.1562 + SHFLAGS='-shared -Wl,-h,$$(@F)' 1.1563 + network_extralibs="-lsocket -lnsl" 1.1564 + add_cflags -D__EXTENSIONS__ 1.1565 + ;; 1.1566 + netbsd) 1.1567 + oss_demuxer_extralibs="-lossaudio" 1.1568 + oss_muxer_extralibs="-lossaudio" 1.1569 + ;; 1.1570 + openbsd) 1.1571 + disable need_memalign 1.1572 + LIBOBJFLAGS='$(PIC)' 1.1573 + SHFLAGS='-shared' 1.1574 + oss_demuxer_extralibs="-lossaudio" 1.1575 + oss_muxer_extralibs="-lossaudio" 1.1576 + ;; 1.1577 + freebsd) 1.1578 + disable need_memalign 1.1579 + ;; 1.1580 + bsd/os) 1.1581 + osextralibs="-lpoll -lgnugetopt" 1.1582 + strip="strip -d" 1.1583 + ;; 1.1584 + darwin) 1.1585 + disable need_memalign 1.1586 + SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR) -Wl,-read_only_relocs,suppress' 1.1587 + strip="strip -x" 1.1588 + FFLDFLAGS="-Wl,-dynamic,-search_paths_first" 1.1589 + SLIBSUF=".dylib" 1.1590 + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)' 1.1591 + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)' 1.1592 + FFSERVERLDFLAGS=-Wl,-bind_at_load 1.1593 + objformat="macho" 1.1594 + enabled x86_64 && objformat="macho64" 1.1595 + ;; 1.1596 + mingw32*) 1.1597 + target_os=mingw32 1.1598 + LIBTARGET=i386 1.1599 + if enabled x86_64; then 1.1600 + disable need_memalign 1.1601 + LIBTARGET=x64 1.1602 + fi 1.1603 + shlibdir_default="$bindir_default" 1.1604 + disable ffserver 1.1605 + SLIBPREF="" 1.1606 + SLIBSUF=".dll" 1.1607 + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' 1.1608 + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' 1.1609 + SLIB_EXTRA_CMD='-lib.exe /machine:$(LIBTARGET) /def:$$(@:$(SLIBSUF)=.def) /out:$(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib)' 1.1610 + SLIB_INSTALL_EXTRA_CMD='-install -m 644 $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"; \ 1.1611 + install -m 644 $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib)"' 1.1612 + SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"' 1.1613 + SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.def) -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base' 1.1614 + objformat="win32" 1.1615 + enable dos_paths 1.1616 + if ! enabled x86_64; then 1.1617 + check_cpp_condition _mingw.h "(__MINGW32_MAJOR_VERSION > 3) || (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" || 1.1618 + die "ERROR: MinGW runtime version must be >= 3.15." 1.1619 + enabled_any avisynth vfwcap_demuxer && 1.1620 + { check_cpp_condition w32api.h "(__W32API_MAJOR_VERSION > 3) || (__W32API_MAJOR_VERSION == 3 && __W32API_MINOR_VERSION >= 13)" || 1.1621 + die "ERROR: avisynth and vfwcap_demuxer require w32api version 3.13 or later."; } 1.1622 + fi 1.1623 + ;; 1.1624 + cygwin*) 1.1625 + target_os=cygwin 1.1626 + shlibdir_default="$bindir_default" 1.1627 + SLIBPREF="cyg" 1.1628 + SLIBSUF=".dll" 1.1629 + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' 1.1630 + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' 1.1631 + SHFLAGS='-shared -Wl,--enable-auto-image-base' 1.1632 + objformat="win32" 1.1633 + enable dos_paths 1.1634 + ;; 1.1635 + *-dos|freedos|opendos) 1.1636 + disable ffplay ffserver 1.1637 + disable $INDEV_LIST $OUTDEV_LIST 1.1638 + network_extralibs="-lsocket" 1.1639 + objformat="coff" 1.1640 + enable dos_paths 1.1641 + ;; 1.1642 + linux) 1.1643 + enable dv1394 1.1644 + ;; 1.1645 + irix*) 1.1646 + target_os=irix 1.1647 + ranlib="echo ignoring ranlib" 1.1648 + ;; 1.1649 + os/2*) 1.1650 + strip="lxlite" 1.1651 + ln_s="cp -f" 1.1652 + FFLDFLAGS="-Zomf -Zbin-files -Zargs-wild -Zmap" 1.1653 + SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf' 1.1654 + FFSERVERLDFLAGS="" 1.1655 + LIBSUF="_s.a" 1.1656 + SLIBPREF="" 1.1657 + SLIBSUF=".dll" 1.1658 + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)' 1.1659 + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(shell echo $(NAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)' 1.1660 + SLIB_CREATE_DEF_CMD='echo LIBRARY $(SLIBNAME_WITH_MAJOR) INITINSTANCE TERMINSTANCE > $(SUBDIR)$(NAME).def; \ 1.1661 + echo PROTMODE >> $(SUBDIR)$(NAME).def; \ 1.1662 + echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(SUBDIR)$(NAME).def; \ 1.1663 + echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(SUBDIR)$(NAME).def; \ 1.1664 + echo EXPORTS >> $(SUBDIR)$(NAME).def; \ 1.1665 + emxexp -o $(OBJS) >> $(SUBDIR)$(NAME).def' 1.1666 + SLIB_EXTRA_CMD='emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.a $(SUBDIR)$(NAME).def; \ 1.1667 + emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.lib $(SUBDIR)$(NAME).def;' 1.1668 + SLIB_INSTALL_EXTRA_CMD='install -m 644 $(SUBDIR)$(LIBPREF)$(NAME)_dll.a $(SUBDIR)$(LIBPREF)$(NAME)_dll.lib "$(LIBDIR)"' 1.1669 + SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.a "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.lib' 1.1670 + enable dos_paths 1.1671 + ;; 1.1672 + 1.1673 + *) 1.1674 + die "Unknown OS '$target_os'." 1.1675 + ;; 1.1676 +esac 1.1677 + 1.1678 +set_default $PATHS_LIST 1.1679 + 1.1680 +add_extralibs $osextralibs 1.1681 + 1.1682 +# Combine FFLDFLAGS and the LDFLAGS environment variable. 1.1683 +LDFLAGS="$FFLDFLAGS $LDFLAGS" 1.1684 + 1.1685 +# we need to build at least one lib type 1.1686 +if ! enabled_any static shared; then 1.1687 + cat <<EOF 1.1688 +At least one library type must be built. 1.1689 +Specify --enable-static to build the static libraries or --enable-shared to 1.1690 +build the shared libraries as well. To only build the shared libraries specify 1.1691 +--disable-static in addition to --enable-shared. 1.1692 +EOF 1.1693 + exit 1; 1.1694 +fi 1.1695 + 1.1696 +disabled static && LIBNAME="" 1.1697 + 1.1698 +if enabled_any libfaad libfaadbin ; then 1.1699 + if check_header faad.h; then 1.1700 + check_cc <<EOF 1.1701 +#include <faad.h> 1.1702 +#ifndef FAAD2_VERSION 1.1703 +ok faad1 1.1704 +#endif 1.1705 +int main(void) { return 0; } 1.1706 +EOF 1.1707 + test $? = 0 && enable libfaad2 1.1708 + else 1.1709 + die "FAAD test failed." 1.1710 + fi 1.1711 +fi 1.1712 + 1.1713 + 1.1714 +if ! enabled gpl; then 1.1715 + die_gpl_disabled(){ 1.1716 + name=$1 1.1717 + shift 1.1718 + enabled_any $@ && die "$name is under GPL and --enable-gpl is not specified." 1.1719 + } 1.1720 + die_gpl_disabled "The Postprocessing code" postproc 1.1721 + die_gpl_disabled "libx264" libx264 1.1722 + die_gpl_disabled "libxvidcore" libxvid 1.1723 + die_gpl_disabled "FAAD2" libfaad2 1.1724 + die_gpl_disabled "The X11 grabber" x11grab 1.1725 +fi 1.1726 + 1.1727 +if ! enabled nonfree && enabled_any libamr_nb libamr_wb; then 1.1728 + die "libamr is nonfree and --enable-nonfree is not specified." 1.1729 +fi 1.1730 + 1.1731 +check_deps $ARCH_EXT_LIST 1.1732 + 1.1733 +test -z "$need_memalign" && need_memalign="$mmx" 1.1734 + 1.1735 +#Darwin CC versions 1.1736 +if test $target_os = darwin; then 1.1737 + if enabled xlc; then 1.1738 + add_cflags -qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto 1.1739 + else 1.1740 + add_cflags -pipe 1.1741 + check_cflags -force_cpusubtype_ALL 1.1742 + check_cflags -Wno-sign-compare 1.1743 + enabled shared || check_cflags -mdynamic-no-pic 1.1744 + fi 1.1745 +fi 1.1746 + 1.1747 +disabled optimizations || check_cflags -fomit-frame-pointer 1.1748 + 1.1749 +# Add processor-specific flags 1.1750 +if test $cpu != "generic"; then 1.1751 + warn_altivec(){ 1.1752 + $1 altivec && echo "WARNING: Tuning for $2 but AltiVec $1."; 1.1753 + } 1.1754 + case $cpu in 1.1755 + 601|ppc601|PowerPC601) 1.1756 + add_cflags -mcpu=601 1.1757 + warn_altivec enabled PPC601 1.1758 + ;; 1.1759 + 603*|ppc603*|PowerPC603*) 1.1760 + add_cflags -mcpu=603 1.1761 + warn_altivec enabled PPC603 1.1762 + ;; 1.1763 + 604*|ppc604*|PowerPC604*) 1.1764 + add_cflags -mcpu=604 1.1765 + warn_altivec enabled PPC604 1.1766 + ;; 1.1767 + G3|g3|75*|ppc75*|PowerPC75*) 1.1768 + add_cflags -mcpu=750 -mpowerpc-gfxopt 1.1769 + warn_altivec enabled PPC75x 1.1770 + ;; 1.1771 + G4|g4|745*|ppc745*|PowerPC745*) 1.1772 + add_cflags -mcpu=7450 -mpowerpc-gfxopt 1.1773 + warn_altivec disabled PPC745x 1.1774 + ;; 1.1775 + 74*|ppc74*|PowerPC74*) 1.1776 + add_cflags -mcpu=7400 -mpowerpc-gfxopt 1.1777 + warn_altivec disabled PPC74xx 1.1778 + ;; 1.1779 + G5|g5|970|ppc970|PowerPC970|power4*|Power4*) 1.1780 + add_cflags -mcpu=970 -mpowerpc-gfxopt -mpowerpc64 1.1781 + warn_altivec disabled PPC970 1.1782 + enable ppc64 1.1783 + ;; 1.1784 + Cell|CELL|cell) 1.1785 + add_cflags -mcpu=cell 1.1786 + warn_altivec disabled Cell 1.1787 + enable ppc64 1.1788 + ;; 1.1789 + # targets that do NOT support conditional mov (cmov) 1.1790 + i[345]86|pentium|pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3) 1.1791 + add_cflags -march=$cpu 1.1792 + disable cmov 1.1793 + ;; 1.1794 + # targets that do support conditional mov (cmov) 1.1795 + i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64|k8|opteron|athlon-fx|core2) 1.1796 + add_cflags -march=$cpu 1.1797 + enable cmov 1.1798 + enable fast_cmov 1.1799 + ;; 1.1800 + # targets that do support conditional mov but on which it's slow 1.1801 + pentium4|pentium4m|prescott|nocona) 1.1802 + add_cflags -march=$cpu 1.1803 + enable cmov 1.1804 + disable fast_cmov 1.1805 + ;; 1.1806 + sparc64) 1.1807 + add_cflags -mcpu=v9 1.1808 + ;; 1.1809 + arm11*|cortex*) 1.1810 + add_cflags -mcpu=$cpu 1.1811 + enable fast_unaligned 1.1812 + ;; 1.1813 + armv*) 1.1814 + add_cflags -march=$cpu 1.1815 + ;; 1.1816 + arm*) 1.1817 + add_cflags -mcpu=$cpu 1.1818 + ;; 1.1819 + ev4|ev45|ev5|ev56|pca56|ev6|ev67) 1.1820 + enabled ccc && add_cflags -arch $cpu || add_cflags -mcpu=$cpu 1.1821 + ;; 1.1822 + *) 1.1823 + echo "WARNING: Unknown CPU \"$cpu\", ignored." 1.1824 + ;; 1.1825 + esac 1.1826 +fi 1.1827 + 1.1828 +check_cc <<EOF || die "Symbol mangling check failed." 1.1829 +int ff_extern; 1.1830 +EOF 1.1831 +sym=$($nm -P -g $TMPO | grep ff_extern) 1.1832 +extern_prefix=${sym%%ff_extern*} 1.1833 + 1.1834 +check_cc <<EOF && enable inline_asm 1.1835 +void foo(void) { __asm__ volatile ("" ::); } 1.1836 +EOF 1.1837 + 1.1838 +if enabled x86; then 1.1839 + # check whether EBP is available on x86 1.1840 + # As 'i' is stored on the stack, this program will crash 1.1841 + # if the base pointer is used to access it because the 1.1842 + # base pointer is cleared in the inline assembly code. 1.1843 + check_exec_crash <<EOF && enable ebp_available 1.1844 + volatile int i=0; 1.1845 + __asm__ volatile ( 1.1846 + "xorl %%ebp, %%ebp" 1.1847 + ::: "%ebp"); 1.1848 + return i; 1.1849 +EOF 1.1850 + 1.1851 + # check wether EBX is available on x86 1.1852 + check_asm ebx_available '"":::"%ebx"' 1.1853 + 1.1854 + # check whether more than 10 operands are supported 1.1855 + check_cc <<EOF && enable ten_operands 1.1856 +int main(void) { 1.1857 + int x=0; 1.1858 + __asm__ volatile( 1.1859 + "" 1.1860 + :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x) 1.1861 + ); 1.1862 + return 0; 1.1863 +} 1.1864 +EOF 1.1865 + 1.1866 + # check whether binutils is new enough to compile SSSE3/MMX2 1.1867 + enabled ssse3 && check_asm ssse3 '"pabsw %xmm0, %xmm0"' 1.1868 + enabled mmx2 && check_asm mmx2 '"pmaxub %mm0, %mm1"' 1.1869 + 1.1870 + check_asm bswap '"bswap %%eax" ::: "%eax"' 1.1871 + 1.1872 + YASMFLAGS="-f $objformat -DARCH_$(toupper $subarch)" 1.1873 + enabled x86_64 && append YASMFLAGS "-m amd64" 1.1874 + enabled_all x86_64 shared && append YASMFLAGS "-DPIC" 1.1875 + case "$objformat" in 1.1876 + elf) enabled debug && append YASMFLAGS "-g dwarf2" ;; 1.1877 + macho64) append YASMFLAGS "-DPIC -DPREFIX" ;; 1.1878 + *) append YASMFLAGS "-DPREFIX" ;; 1.1879 + esac 1.1880 + disabled yasm || { check_yasm "pabsw xmm0, xmm0" && enable yasm; } 1.1881 +fi 1.1882 + 1.1883 +# check for assembler specific support 1.1884 + 1.1885 +enabled ppc && check_asm dcbzl '"dcbzl 0, 1"' 1.1886 +enabled ppc && check_asm ppc4xx '"maclhw r10, r11, r12"' 1.1887 + 1.1888 +# check for SIMD availability 1.1889 + 1.1890 +# AltiVec flags: The FSF version of GCC differs from the Apple version 1.1891 +if enabled altivec; then 1.1892 + check_cflags -maltivec -mabi=altivec && 1.1893 + { check_header altivec.h && inc_altivec_h="#include <altivec.h>" ; } || 1.1894 + check_cflags -faltivec 1.1895 + 1.1896 + # check if our compiler supports Motorola AltiVec C API 1.1897 + check_cc <<EOF || disable altivec 1.1898 +$inc_altivec_h 1.1899 +int main(void) { 1.1900 + vector signed int v1, v2, v3; 1.1901 + v1 = vec_add(v2,v3); 1.1902 + return 0; 1.1903 +} 1.1904 +EOF 1.1905 + 1.1906 + # check if our compiler supports braces for vector declarations 1.1907 + check_cc <<EOF || die "You need a compiler that supports {} in AltiVec vector declarations." 1.1908 +$inc_altivec_h 1.1909 +int main (void) { (vector int) {1}; return 0; } 1.1910 +EOF 1.1911 +fi 1.1912 + 1.1913 +# We have to check if pld is a nop and disable it. 1.1914 +enabled arm && check_asm pld '"pld [r0]"' 1.1915 +enabled armv5te && check_asm armv5te '"qadd r0, r0, r0"' 1.1916 +enabled armv6 && check_asm armv6 '"sadd16 r0, r0, r0"' 1.1917 +enabled armv6t2 && check_asm armv6t2 '"movt r0, #0"' 1.1918 +enabled armvfp && check_asm armvfp '"fadds s0, s0, s0"' 1.1919 +enabled iwmmxt && check_asm iwmmxt '"wunpckelub wr6, wr4"' 1.1920 +enabled mmi && check_asm mmi '"lq $2, 0($2)"' 1.1921 +enabled neon && check_asm neon '"vadd.i16 q0, q0, q0"' 1.1922 +enabled vis && check_asm vis '"pdist %f0, %f0, %f0"' -mcpu=ultrasparc 1.1923 + 1.1924 +enabled vis && add_cflags -mcpu=ultrasparc -mtune=ultrasparc 1.1925 + 1.1926 +# --- 1.1927 +# big/little-endian test 1.1928 +check_cc <<EOF || die "endian test failed" 1.1929 +unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E'; 1.1930 +EOF 1.1931 +od -A n -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian 1.1932 + 1.1933 +# --- 1.1934 +# check availability of some header files 1.1935 + 1.1936 +if check_func dlopen; then 1.1937 + ldl= 1.1938 +elif check_func dlopen -ldl; then 1.1939 + ldl=-ldl 1.1940 +fi 1.1941 + 1.1942 +# Solaris has nanosleep in -lrt, OpenSolaris no longer needs that 1.1943 +check_func nanosleep || { check_func nanosleep -lrt && add_extralibs -lrt; } 1.1944 + 1.1945 +check_func fork 1.1946 +check_func gethrtime 1.1947 +check_func getrusage 1.1948 +check_func inet_aton $network_extralibs 1.1949 +check_func memalign 1.1950 +check_func mkstemp 1.1951 +check_func posix_memalign 1.1952 +check_func_headers io.h setmode 1.1953 +check_func_headers windows.h GetProcessTimes 1.1954 +check_func_headers windows.h VirtualAlloc 1.1955 + 1.1956 +check_header conio.h 1.1957 +check_header dlfcn.h 1.1958 +check_header malloc.h 1.1959 +check_header poll.h 1.1960 +check_header sys/mman.h 1.1961 +check_header sys/resource.h 1.1962 +check_header sys/select.h 1.1963 +check_header termios.h 1.1964 +check_header vdpau/vdpau.h 1.1965 +check_header vdpau/vdpau_x11.h 1.1966 +check_header X11/extensions/XvMClib.h 1.1967 + 1.1968 +if ! enabled_any memalign memalign_hack posix_memalign && enabled need_memalign ; then 1.1969 + die "Error, no aligned memory allocator but SSE enabled, disable it or use --enable-memalign-hack." 1.1970 +fi 1.1971 + 1.1972 +disabled zlib || check_lib zlib.h zlibVersion -lz || disable zlib 1.1973 +disabled bzlib || check_lib2 bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib 1.1974 + 1.1975 +# check for some common methods of building with pthread support 1.1976 +# do this before the optional library checks as some of them require pthreads 1.1977 +if enabled pthreads; then 1.1978 + if check_func pthread_create; then 1.1979 + : 1.1980 + elif check_func pthread_create -pthread; then 1.1981 + add_cflags -pthread 1.1982 + add_extralibs -pthread 1.1983 + elif check_func pthread_create -pthreads; then 1.1984 + add_cflags -pthreads 1.1985 + add_extralibs -pthreads 1.1986 + elif check_func pthread_create -lpthreadGC2; then 1.1987 + add_extralibs -lpthreadGC2 1.1988 + elif ! check_lib pthread.h pthread_create -lpthread; then 1.1989 + die "ERROR: can't find pthreads library" 1.1990 + fi 1.1991 +fi 1.1992 + 1.1993 +for thread in $THREADS_LIST; do 1.1994 + if enabled $thread; then 1.1995 + test -n "$thread_type" && 1.1996 + die "ERROR: Only one thread type must be selected." || 1.1997 + thread_type="$thread" 1.1998 + fi 1.1999 +done 1.2000 + 1.2001 +check_lib math.h sin -lm 1.2002 +check_lib va/va.h vaInitialize -lva 1.2003 + 1.2004 +# test for C99 functions in math.h 1.2005 +for func in llrint lrint lrintf round roundf truncf; do 1.2006 + check_exec <<EOF && enable $func || disable $func 1.2007 +#include <math.h> 1.2008 +int main(void) { return ($func(3.999f) > 0)?0:1; } 1.2009 +EOF 1.2010 +done 1.2011 + 1.2012 +# these are off by default, so fail if requested and not available 1.2013 +enabled avisynth && require2 vfw32 "windows.h vfw.h" AVIFileInit -lvfw32 1.2014 +enabled libamr_nb && require libamrnb amrnb/interf_dec.h Speech_Decode_Frame_init -lamrnb -lm 1.2015 +enabled libamr_wb && require libamrwb amrwb/dec_if.h D_IF_init -lamrwb -lm 1.2016 +enabled libdirac && add_cflags $(pkg-config --cflags dirac) && 1.2017 + require libdirac libdirac_decoder/dirac_parser.h dirac_decoder_init -ldirac_decoder && 1.2018 + require libdirac libdirac_encoder/dirac_encoder.h dirac_encoder_init -ldirac_encoder 1.2019 +enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac 1.2020 +enabled libfaad && require2 libfaad faad.h faacDecOpen -lfaad 1.2021 +enabled libgsm && require libgsm gsm.h gsm_create -lgsm 1.2022 +enabled libmp3lame && require libmp3lame lame/lame.h lame_init -lmp3lame -lm 1.2023 +enabled libnut && require libnut libnut.h nut_demuxer_init -lnut 1.2024 +enabled libopenjpeg && require libopenjpeg openjpeg.h opj_version -lopenjpeg 1.2025 +enabled libschroedinger && add_cflags $(pkg-config --cflags schroedinger-1.0) && 1.2026 + require libschroedinger schroedinger/schro.h schro_init $(pkg-config --libs schroedinger-1.0) 1.2027 +enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex 1.2028 +enabled libtheora && require libtheora theora/theora.h theora_info_init -ltheora -logg 1.2029 +enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbisenc -lvorbis -logg 1.2030 +enabled libx264 && require libx264 x264.h x264_encoder_open -lx264 -lm && 1.2031 + { check_cpp_condition x264.h "X264_BUILD >= 65" || 1.2032 + die "ERROR: libx264 version must be >= 0.65."; } 1.2033 +enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore 1.2034 +enabled mlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib 1.2035 + 1.2036 +# libdc1394 check 1.2037 +if enabled libdc1394; then 1.2038 + { check_lib dc1394/dc1394.h dc1394_new -ldc1394 -lraw1394 && 1.2039 + enable libdc1394_2; } || 1.2040 + { check_lib libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394 && 1.2041 + enable libdc1394_1; } || 1.2042 + die "ERROR: No version of libdc1394 found " 1.2043 +fi 1.2044 + 1.2045 + 1.2046 +_restrict= 1.2047 +for restrict_keyword in restrict __restrict__ __restrict; do 1.2048 + check_cc <<EOF && _restrict=$restrict_keyword && break 1.2049 +void foo(char * $restrict_keyword p); 1.2050 +EOF 1.2051 +done 1.2052 + 1.2053 +########################################## 1.2054 +# SDL check 1.2055 + 1.2056 +disable sdl_too_old 1.2057 +disable sdl 1.2058 +SDL_CONFIG="${cross_prefix}sdl-config" 1.2059 +if "${SDL_CONFIG}" --version > /dev/null 2>&1; then 1.2060 + sdl_cflags=$("${SDL_CONFIG}" --cflags) 1.2061 + temp_cflags $sdl_cflags 1.2062 + temp_extralibs $("${SDL_CONFIG}" --libs) 1.2063 + if check_lib2 SDL.h SDL_Init; then 1.2064 + _sdlversion=$("${SDL_CONFIG}" --version | sed 's/[^0-9]//g') 1.2065 + if test "$_sdlversion" -lt 121 ; then 1.2066 + enable sdl_too_old 1.2067 + else 1.2068 + enable sdl 1.2069 + check_cc $sdl_cflags <<EOF && enable sdl_video_size 1.2070 +#include <SDL.h> 1.2071 +int main(int argc, char **argv){ 1.2072 + const SDL_VideoInfo *vi = SDL_GetVideoInfo(); 1.2073 + int w = vi->current_w; 1.2074 + return 0; 1.2075 +} 1.2076 +EOF 1.2077 + fi 1.2078 + fi 1.2079 + restore_flags 1.2080 +fi 1.2081 + 1.2082 +texi2html -version > /dev/null 2>&1 && enable texi2html || disable texi2html 1.2083 + 1.2084 +########################################## 1.2085 +# Network check 1.2086 + 1.2087 +if enabled network; then 1.2088 + check_type "sys/types.h sys/socket.h" socklen_t 1.2089 + # Prefer arpa/inet.h over winsock2 1.2090 + if check_header arpa/inet.h ; then 1.2091 + check_func closesocket 1.2092 + elif check_header winsock2.h ; then 1.2093 + network_extralibs="-lws2_32" 1.2094 + check_type ws2tcpip.h socklen_t 1.2095 + check_func_headers winsock2.h closesocket 1.2096 + fi 1.2097 +fi 1.2098 + 1.2099 +########################################## 1.2100 +# IPv6 check 1.2101 + 1.2102 +enabled network && enabled ipv6 && check_ld <<EOF && enable ipv6 || disable ipv6 1.2103 +#include <sys/types.h> 1.2104 +#include <sys/socket.h> 1.2105 +#include <netinet/in.h> 1.2106 +#include <netdb.h> 1.2107 +int main(void) { 1.2108 + struct sockaddr_storage saddr; 1.2109 + struct ipv6_mreq mreq6; 1.2110 + getaddrinfo(0,0,0,0); 1.2111 + getnameinfo(0,0,0,0,0,0,0); 1.2112 + IN6_IS_ADDR_MULTICAST((const struct in6_addr *)0); 1.2113 +} 1.2114 +EOF 1.2115 + 1.2116 +check_header linux/videodev.h 1.2117 +check_header linux/videodev2.h 1.2118 +check_header sys/videoio.h 1.2119 + 1.2120 +check_func_headers "windows.h vfw.h" capCreateCaptureWindow -lvfw32 1.2121 + 1.2122 +# check for ioctl_meteor.h, ioctl_bt848.h and alternatives 1.2123 +{ check_header dev/bktr/ioctl_meteor.h && 1.2124 + check_header dev/bktr/ioctl_bt848.h; } || 1.2125 +{ check_header machine/ioctl_meteor.h && 1.2126 + check_header machine/ioctl_bt848.h; } || 1.2127 +{ check_header dev/video/meteor/ioctl_meteor.h && 1.2128 + check_header dev/video/bktr/ioctl_bt848.h; } || 1.2129 +check_header dev/ic/bt8xx.h 1.2130 + 1.2131 +check_header sys/soundcard.h 1.2132 +check_header soundcard.h 1.2133 + 1.2134 +check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound 1.2135 + 1.2136 +check_lib2 jack/jack.h jack_client_open -ljack 1.2137 + 1.2138 +# deal with the X11 frame grabber 1.2139 +enabled x11grab && 1.2140 +check_header X11/Xlib.h && 1.2141 +check_header X11/extensions/XShm.h && 1.2142 +check_func XOpenDisplay -lX11 && 1.2143 +check_func XShmCreateImage -lX11 -lXext 1.2144 + 1.2145 +enabled debug && add_cflags -g"$debuglevel" 1.2146 + 1.2147 +# add some useful compiler flags if supported 1.2148 +check_cflags -Wdeclaration-after-statement 1.2149 +check_cflags -Wall 1.2150 +check_cflags -Wno-switch 1.2151 +check_cflags -Wdisabled-optimization 1.2152 +check_cflags -Wpointer-arith 1.2153 +check_cflags -Wredundant-decls 1.2154 +check_cflags -Wno-pointer-sign 1.2155 +check_cflags -Wcast-qual 1.2156 +check_cflags -Wwrite-strings 1.2157 +check_cflags -Wtype-limits 1.2158 +check_cflags -Wundef 1.2159 +enabled extra_warnings && check_cflags -Winline 1.2160 + 1.2161 +# add some linker flags 1.2162 +check_ldflags -Wl,--warn-common 1.2163 +check_ldflags -Wl,--as-needed 1.2164 +check_ldflags '-Wl,-rpath-link,\$(BUILD_ROOT)/libpostproc -Wl,-rpath-link,\$(BUILD_ROOT)/libswscale -Wl,-rpath-link,\$(BUILD_ROOT)/libavfilter -Wl,-rpath-link,\$(BUILD_ROOT)/libavdevice -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil' 1.2165 +check_ldflags -Wl,-Bsymbolic 1.2166 + 1.2167 +if enabled small; then 1.2168 + check_cflags -Os # not all compilers support -Os 1.2169 + optimizations="small" 1.2170 +elif enabled optimizations; then 1.2171 + if enabled xlc; then 1.2172 + add_cflags -O5 1.2173 + add_ldflags -O5 1.2174 + elif enabled ccc; then 1.2175 + add_cflags -fast 1.2176 + else 1.2177 + add_cflags -O3 1.2178 + fi 1.2179 +fi 1.2180 +check_cflags -fno-math-errno 1.2181 +check_cflags -fno-signed-zeros 1.2182 + 1.2183 +# add some flags for Intel C Compiler 1.2184 +if enabled icc; then 1.2185 + # Just warnings, no remarks 1.2186 + check_cflags -w1 1.2187 + # -wd: Disable following warnings 1.2188 + # 144, 167, 556: -Wno-pointer-sign 1.2189 + # 10006: ignoring unknown option -fno-signed-zeros 1.2190 + # 10156: ignoring option '-W'; no argument required 1.2191 + check_cflags -wd144,167,556,10006,10156 1.2192 + # 11030: Warning unknown option --as-needed 1.2193 + # 10156: ignoring option '-export'; no argument required 1.2194 + check_ldflags -wd10156,11030 1.2195 + # Allow to compile with optimizations 1.2196 + check_ldflags -march=$cpu 1.2197 + # icc 11.0 and 11.1 work with ebp_available, but don't pass the test 1.2198 + enable ebp_available 1.2199 +elif enabled ccc; then 1.2200 + # disable some annoying warnings 1.2201 + add_cflags -msg_disable cvtu32to64 1.2202 + add_cflags -msg_disable embedcomment 1.2203 + add_cflags -msg_disable needconstext 1.2204 + add_cflags -msg_disable nomainieee 1.2205 + add_cflags -msg_disable ptrmismatch1 1.2206 + add_cflags -msg_disable unreachcode 1.2207 +fi 1.2208 + 1.2209 +# PIC flags for shared library objects where they are needed 1.2210 +if enabled shared; then 1.2211 + # LIBOBJFLAGS may have already been set in the OS configuration 1.2212 + if test -z "$LIBOBJFLAGS" ; then 1.2213 + case "${subarch-$arch}" in 1.2214 + x86_64|ia64|alpha|sparc*|power*|parisc*|mips*) LIBOBJFLAGS='$(PIC)' ;; 1.2215 + esac 1.2216 + fi 1.2217 +fi 1.2218 + 1.2219 +if enabled gprof; then 1.2220 + add_cflags -p 1.2221 + add_ldflags -p 1.2222 +fi 1.2223 + 1.2224 +# Find out if the .align argument is a power of two or not. 1.2225 +check_asm asmalign_pot '".align 3"' 1.2226 + 1.2227 +enabled_any $DECODER_LIST && enable decoders 1.2228 +enabled_any $ENCODER_LIST && enable encoders 1.2229 +enabled_any $HWACCEL_LIST && enable hwaccels 1.2230 +enabled_any $BSF_LIST && enable bsfs 1.2231 +enabled_any $DEMUXER_LIST && enable demuxers 1.2232 +enabled_any $MUXER_LIST && enable muxers 1.2233 +enabled_any $FILTER_LIST && enable filters 1.2234 +enabled_any $INDEV_LIST && enable demuxers 1.2235 +enabled_any $OUTDEV_LIST && enable muxers 1.2236 +enabled_any $PROTOCOL_LIST && enable protocols 1.2237 + 1.2238 +enabled_any $THREADS_LIST && enable threads 1.2239 + 1.2240 +check_deps $CONFIG_LIST \ 1.2241 + $CONFIG_EXTRA \ 1.2242 + $HAVE_LIST \ 1.2243 + $DECODER_LIST \ 1.2244 + $ENCODER_LIST \ 1.2245 + $HWACCEL_LIST \ 1.2246 + $PARSER_LIST \ 1.2247 + $BSF_LIST \ 1.2248 + $DEMUXER_LIST \ 1.2249 + $MUXER_LIST \ 1.2250 + $FILTER_LIST \ 1.2251 + $INDEV_LIST \ 1.2252 + $OUTDEV_LIST \ 1.2253 + $PROTOCOL_LIST \ 1.2254 + 1.2255 +echo "install prefix $prefix" 1.2256 +echo "source path $source_path" 1.2257 +echo "C compiler $cc" 1.2258 +echo ".align is power-of-two $asmalign_pot" 1.2259 +echo "ARCH $arch ($cpu)" 1.2260 +if test "$build_suffix" != ""; then 1.2261 + echo "build suffix $build_suffix" 1.2262 +fi 1.2263 +if test "$extra_version" != ""; then 1.2264 + echo "version string suffix $extra_version" 1.2265 +fi 1.2266 +echo "big-endian ${bigendian-no}" 1.2267 +if enabled x86; then 1.2268 + echo "yasm ${yasm-no}" 1.2269 + echo "MMX enabled ${mmx-no}" 1.2270 + echo "MMX2 enabled ${mmx2-no}" 1.2271 + echo "3DNow! enabled ${amd3dnow-no}" 1.2272 + echo "3DNow! extended enabled ${amd3dnowext-no}" 1.2273 + echo "SSE enabled ${sse-no}" 1.2274 + echo "SSSE3 enabled ${ssse3-no}" 1.2275 + echo "CMOV enabled ${cmov-no}" 1.2276 + echo "CMOV is fast ${fast_cmov-no}" 1.2277 + echo "EBX available ${ebx_available-no}" 1.2278 + echo "EBP available ${ebp_available-no}" 1.2279 + echo "10 operands supported ${ten_operands-no}" 1.2280 +fi 1.2281 +if enabled arm; then 1.2282 + echo "ARMv5TE enabled ${armv5te-no}" 1.2283 + echo "ARMv6 enabled ${armv6-no}" 1.2284 + echo "ARMv6T2 enabled ${armv6t2-no}" 1.2285 + echo "ARM VFP enabled ${armvfp-no}" 1.2286 + echo "IWMMXT enabled ${iwmmxt-no}" 1.2287 + echo "NEON enabled ${neon-no}" 1.2288 +fi 1.2289 +if enabled mips; then 1.2290 + echo "MMI enabled ${mmi-no}" 1.2291 +fi 1.2292 +if enabled ppc; then 1.2293 + echo "AltiVec enabled ${altivec-no}" 1.2294 + echo "PPC 4xx optimizations ${ppc4xx-no}" 1.2295 + echo "dcbzl available ${dcbzl-no}" 1.2296 + echo "performance report ${powerpc_perf-no}" 1.2297 +fi 1.2298 +if enabled sparc; then 1.2299 + echo "VIS enabled ${vis-no}" 1.2300 +fi 1.2301 +echo "gprof enabled ${gprof-no}" 1.2302 +echo "debug symbols ${debug-no}" 1.2303 +echo "strip symbols ${stripping-no}" 1.2304 +echo "optimizations ${optimizations-no}" 1.2305 +echo "static ${static-no}" 1.2306 +echo "shared ${shared-no}" 1.2307 +echo "postprocessing support ${postproc-no}" 1.2308 +echo "new filter support ${avfilter-no}" 1.2309 +echo "filters using lavformat ${avfilter_lavf-no}" 1.2310 +echo "network support ${network-no}" 1.2311 +if enabled network; then 1.2312 + echo "IPv6 support ${ipv6-no}" 1.2313 +fi 1.2314 +echo "threading support ${thread_type-no}" 1.2315 +echo "SDL support ${sdl-no}" 1.2316 +if enabled sdl_too_old; then 1.2317 + echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support." 1.2318 +fi 1.2319 +echo "Sun medialib support ${mlib-no}" 1.2320 +echo "AVISynth enabled ${avisynth-no}" 1.2321 +echo "libamr-nb support ${libamr_nb-no}" 1.2322 +echo "libamr-wb support ${libamr_wb-no}" 1.2323 +echo "libdc1394 support ${libdc1394-no}" 1.2324 +echo "libdirac enabled ${libdirac-no}" 1.2325 +echo "libfaac enabled ${libfaac-no}" 1.2326 +echo "libfaad enabled ${libfaad-no}" 1.2327 +echo "libfaad dlopened ${libfaadbin-no}" 1.2328 +echo "libgsm enabled ${libgsm-no}" 1.2329 +echo "libmp3lame enabled ${libmp3lame-no}" 1.2330 +echo "libnut enabled ${libnut-no}" 1.2331 +echo "libopenjpeg enabled ${libopenjpeg-no}" 1.2332 +echo "libschroedinger enabled ${libschroedinger-no}" 1.2333 +echo "libspeex enabled ${libspeex-no}" 1.2334 +echo "libtheora enabled ${libtheora-no}" 1.2335 +echo "libvorbis enabled ${libvorbis-no}" 1.2336 +echo "libx264 enabled ${libx264-no}" 1.2337 +echo "libxvid enabled ${libxvid-no}" 1.2338 +echo "zlib enabled ${zlib-no}" 1.2339 +echo "bzlib enabled ${bzlib-no}" 1.2340 +echo 1.2341 + 1.2342 +for type in decoder encoder hwaccel parser demuxer muxer protocol filter bsf indev outdev; do 1.2343 + echo "Enabled ${type}s:" 1.2344 + eval list=\$$(toupper $type)_LIST 1.2345 + for part in $list; do 1.2346 + enabled $part && echo ${part%_*} 1.2347 + done | sort | cat 1.2348 + echo 1.2349 +done 1.2350 + 1.2351 +license="LGPL" 1.2352 +if enabled nonfree; then 1.2353 + license="unredistributable" 1.2354 +elif enabled gpl; then 1.2355 + license="GPL" 1.2356 +fi 1.2357 + 1.2358 +echo "License: $license" 1.2359 + 1.2360 +echo "Creating config.mak and config.h..." 1.2361 + 1.2362 +echo "# Automatically generated by configure - do not modify!" > config.mak 1.2363 +echo "/* Automatically generated by configure - do not modify! */" > $TMPH 1.2364 +echo "#ifndef FFMPEG_CONFIG_H" >> $TMPH 1.2365 +echo "#define FFMPEG_CONFIG_H" >> $TMPH 1.2366 +echo "#define FFMPEG_CONFIGURATION \"$FFMPEG_CONFIGURATION\"" >> $TMPH 1.2367 +echo "#define FFMPEG_DATADIR \"$(eval c_escape $datadir)\"" >> $TMPH 1.2368 + 1.2369 +echo "FFMPEG_CONFIGURATION=$FFMPEG_CONFIGURATION" >> config.mak 1.2370 +echo "prefix=$prefix" >> config.mak 1.2371 +echo "LIBDIR=\$(DESTDIR)$libdir" >> config.mak 1.2372 +echo "SHLIBDIR=\$(DESTDIR)$shlibdir" >> config.mak 1.2373 +echo "INCDIR=\$(DESTDIR)$incdir" >> config.mak 1.2374 +echo "BINDIR=\$(DESTDIR)$bindir" >> config.mak 1.2375 +echo "DATADIR=\$(DESTDIR)$datadir" >> config.mak 1.2376 +echo "MANDIR=\$(DESTDIR)$mandir" >> config.mak 1.2377 +echo "SRC_PATH=\"$source_path\"" >> config.mak 1.2378 +echo "SRC_PATH_BARE=$source_path" >> config.mak 1.2379 +echo "BUILD_ROOT=\"$PWD\"" >> config.mak 1.2380 +echo "CC=$cc" >> config.mak 1.2381 +echo "AS=$as" >> config.mak 1.2382 +echo "YASM=$yasmexe" >> config.mak 1.2383 +echo "AR=$ar" >> config.mak 1.2384 +echo "RANLIB=$ranlib" >> config.mak 1.2385 +echo "LN_S=$ln_s" >> config.mak 1.2386 +enabled stripping && 1.2387 + echo "STRIP=$strip" >> config.mak || 1.2388 + echo "STRIP=echo ignoring strip" >> config.mak 1.2389 + 1.2390 +echo "OPTFLAGS=$CFLAGS" >> config.mak 1.2391 +echo "LDFLAGS=$LDFLAGS" >> config.mak 1.2392 +echo "FFSERVERLDFLAGS=$FFSERVERLDFLAGS" >> config.mak 1.2393 +echo "SHFLAGS=$SHFLAGS" >> config.mak 1.2394 +echo "YASMFLAGS=$YASMFLAGS" >> config.mak 1.2395 +echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak 1.2396 +echo "BUILD_STATIC=$static" >> config.mak 1.2397 +echo "BUILDSUF=$build_suffix" >> config.mak 1.2398 +echo "FULLNAME=$FULLNAME" >> config.mak 1.2399 +echo "LIBPREF=$LIBPREF" >> config.mak 1.2400 +echo "LIBSUF=$LIBSUF" >> config.mak 1.2401 +echo "LIBNAME=$LIBNAME" >> config.mak 1.2402 +echo "SLIBPREF=$SLIBPREF" >> config.mak 1.2403 +echo "SLIBSUF=$SLIBSUF" >> config.mak 1.2404 +echo "EXESUF=$EXESUF" >> config.mak 1.2405 +echo "EXTRA_VERSION=$extra_version" >> config.mak 1.2406 +echo "DEPEND_CMD=$DEPEND_CMD" >> config.mak 1.2407 +echo "HOSTCC=$host_cc" >> config.mak 1.2408 +echo "HOSTCFLAGS=$host_cflags" >> config.mak 1.2409 +echo "HOSTEXESUF=$HOSTEXESUF" >> config.mak 1.2410 +echo "HOSTLDFLAGS=$host_ldflags" >> config.mak 1.2411 +echo "HOSTLIBS=$host_libs" >> config.mak 1.2412 +echo "TARGET_EXEC=$target_exec" >> config.mak 1.2413 +echo "TARGET_PATH=$target_path" >> config.mak 1.2414 + 1.2415 +if enabled bigendian; then 1.2416 + echo "WORDS_BIGENDIAN=yes" >> config.mak 1.2417 + echo "#define WORDS_BIGENDIAN 1" >> $TMPH 1.2418 +fi 1.2419 + 1.2420 +if enabled sdl; then 1.2421 + echo "SDL_LIBS=$("${SDL_CONFIG}" --libs)" >> config.mak 1.2422 + echo "SDL_CFLAGS=$("${SDL_CONFIG}" --cflags)" >> config.mak 1.2423 +fi 1.2424 +if enabled texi2html; then 1.2425 + echo "BUILD_DOC=yes" >> config.mak 1.2426 +fi 1.2427 + 1.2428 +get_version(){ 1.2429 + name=$1 1.2430 + file=$source_path/$2 1.2431 + eval $(grep "#define ${name}_VERSION_M" "$file" | awk '{ print $2"="$3 }') 1.2432 + eval ${name}_VERSION=\$${name}_VERSION_MAJOR.\$${name}_VERSION_MINOR.\$${name}_VERSION_MICRO 1.2433 + lcname=$(tolower $name) 1.2434 + eval echo "${lcname}_VERSION=\$${name}_VERSION" >> config.mak 1.2435 + eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> config.mak 1.2436 +} 1.2437 + 1.2438 +get_version LIBSWSCALE libswscale/swscale.h 1.2439 +get_version LIBPOSTPROC libpostproc/postprocess.h 1.2440 +get_version LIBAVCODEC libavcodec/avcodec.h 1.2441 +get_version LIBAVDEVICE libavdevice/avdevice.h 1.2442 +get_version LIBAVFORMAT libavformat/avformat.h 1.2443 +get_version LIBAVUTIL libavutil/avutil.h 1.2444 +get_version LIBAVFILTER libavfilter/avfilter.h 1.2445 + 1.2446 +if enabled shared; then 1.2447 + echo "BUILD_SHARED=yes" >> config.mak 1.2448 + echo "PIC=-fPIC -DPIC" >> config.mak 1.2449 + echo "LIBTARGET=${LIBTARGET}" >> config.mak 1.2450 + echo "SLIBNAME=${SLIBNAME}" >> config.mak 1.2451 + echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak 1.2452 + echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak 1.2453 + echo "SLIB_CREATE_DEF_CMD=${SLIB_CREATE_DEF_CMD}" >> config.mak 1.2454 + echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak 1.2455 + echo "SLIB_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}" >> config.mak 1.2456 + echo "SLIB_UNINSTALL_EXTRA_CMD=${SLIB_UNINSTALL_EXTRA_CMD}" >> config.mak 1.2457 +fi 1.2458 +echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak 1.2459 +echo "EXTRALIBS=$extralibs" >> config.mak 1.2460 + 1.2461 +echo "ARCH=$arch" >> config.mak 1.2462 + 1.2463 +print_config ARCH_ $TMPH config.mak $ARCH_LIST 1.2464 +print_config HAVE_ $TMPH config.mak $HAVE_LIST 1.2465 +print_config CONFIG_ $TMPH config.mak $CONFIG_LIST \ 1.2466 + $CONFIG_EXTRA \ 1.2467 + $DECODER_LIST \ 1.2468 + $ENCODER_LIST \ 1.2469 + $HWACCEL_LIST \ 1.2470 + $PARSER_LIST \ 1.2471 + $BSF_LIST \ 1.2472 + $DEMUXER_LIST \ 1.2473 + $MUXER_LIST \ 1.2474 + $FILTER_LIST \ 1.2475 + $PROTOCOL_LIST \ 1.2476 + $INDEV_LIST \ 1.2477 + $OUTDEV_LIST \ 1.2478 + 1.2479 +echo "#define restrict $_restrict" >> $TMPH 1.2480 + 1.2481 +if enabled small; then 1.2482 + echo "#define av_always_inline" >> $TMPH 1.2483 +fi 1.2484 + 1.2485 + 1.2486 +# Apparently it's not possible to portably echo a backslash. 1.2487 +enabled asmalign_pot && 1.2488 + printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH || 1.2489 + printf '#define ASMALIGN(ZEROBITS) ".align 1 << " #ZEROBITS "\\n\\t"\n' >> $TMPH 1.2490 + 1.2491 +echo "#define EXTERN_PREFIX \"${extern_prefix}\"" >> $TMPH 1.2492 + 1.2493 +echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH 1.2494 + 1.2495 +# Do not overwrite an unchanged config.h to avoid superfluous rebuilds. 1.2496 +cmp -s $TMPH config.h && 1.2497 + echo "config.h is unchanged" || 1.2498 + mv -f $TMPH config.h 1.2499 + 1.2500 +# build tree in object directory if source path is different from current one 1.2501 +if enabled source_path_used; then 1.2502 + DIRS="\ 1.2503 + doc \ 1.2504 + libavcodec \ 1.2505 + libavcodec/alpha \ 1.2506 + libavcodec/arm \ 1.2507 + libavcodec/bfin \ 1.2508 + libavcodec/mlib \ 1.2509 + libavcodec/ppc \ 1.2510 + libavcodec/sh4 \ 1.2511 + libavcodec/sparc \ 1.2512 + libavcodec/x86 \ 1.2513 + libavdevice \ 1.2514 + libavfilter \ 1.2515 + libavformat \ 1.2516 + libavutil \ 1.2517 + libpostproc \ 1.2518 + libswscale \ 1.2519 + libswscale/bfin \ 1.2520 + libswscale/mlib \ 1.2521 + libswscale/ppc \ 1.2522 + libswscale/sparc \ 1.2523 + libswscale/x86 \ 1.2524 + tests \ 1.2525 + tools \ 1.2526 + " 1.2527 + FILES="\ 1.2528 + Makefile \ 1.2529 + common.mak \ 1.2530 + subdir.mak \ 1.2531 + doc/texi2pod.pl \ 1.2532 + libavcodec/Makefile \ 1.2533 + libavdevice/Makefile \ 1.2534 + libavfilter/Makefile \ 1.2535 + libavformat/Makefile \ 1.2536 + libavutil/Makefile \ 1.2537 + libpostproc/Makefile \ 1.2538 + libswscale/Makefile \ 1.2539 + " 1.2540 + for dir in $DIRS ; do 1.2541 + mkdir -p $dir 1.2542 + done 1.2543 + for f in $FILES ; do 1.2544 + $ln_s "$source_path/$f" $f 1.2545 + done 1.2546 +fi 1.2547 + 1.2548 + 1.2549 +# build pkg-config files 1.2550 + 1.2551 +pkgconfig_generate(){ 1.2552 +name=$1 1.2553 +shortname=${name#lib}${build_suffix} 1.2554 +comment=$2 1.2555 +version=$3 1.2556 +libs=$4 1.2557 +requires=$5 1.2558 +cat <<EOF > $name/$name.pc 1.2559 +prefix=$prefix 1.2560 +exec_prefix=\${prefix} 1.2561 +libdir=$libdir 1.2562 +includedir=$incdir 1.2563 + 1.2564 +Name: $name 1.2565 +Description: $comment 1.2566 +Version: $version 1.2567 +Requires: $(disabled shared && echo $requires) 1.2568 +Requires.private: $(enabled shared && echo $requires) 1.2569 +Conflicts: 1.2570 +Libs: -L\${libdir} -l${shortname} $(disabled shared && echo $libs) 1.2571 +Libs.private: $(enabled shared && echo $libs) 1.2572 +Cflags: -I\${includedir} 1.2573 +EOF 1.2574 +cat <<EOF > $name/$name-uninstalled.pc 1.2575 +prefix= 1.2576 +exec_prefix= 1.2577 +libdir=\${pcfiledir} 1.2578 +includedir=${source_path} 1.2579 + 1.2580 +Name: $name 1.2581 +Description: $comment 1.2582 +Version: $version 1.2583 +Requires: $requires 1.2584 +Conflicts: 1.2585 +Libs: \${libdir}/${LIBPREF}${shortname}${LIBSUF} $libs 1.2586 +Cflags: -I\${includedir} 1.2587 +EOF 1.2588 +} 1.2589 + 1.2590 +pkgconfig_generate libavutil "FFmpeg utility library" "$LIBAVUTIL_VERSION" 1.2591 +pkgconfig_generate libavcodec "FFmpeg codec library" "$LIBAVCODEC_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION" 1.2592 +pkgconfig_generate libavformat "FFmpeg container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec = $LIBAVCODEC_VERSION" 1.2593 +pkgconfig_generate libavdevice "FFmpeg device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "libavformat = $LIBAVFORMAT_VERSION" 1.2594 +enabled avfilter && 1.2595 + pkgconfig_generate libavfilter "FFmpeg video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION" 1.2596 +enabled postproc && 1.2597 + pkgconfig_generate libpostproc "FFmpeg post processing library" "$LIBPOSTPROC_VERSION" 1.2598 +pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "" "libavutil = $LIBAVUTIL_VERSION"