add copyright notices for myself and Diego
[libav.git] / configure
CommitLineData
de6d9b64 1#!/bin/sh
0f3cb305 2#
f57620d5
MR
3# FFmpeg configure script
4#
5# Copyright (c) 2000, 2001, 2002 Fabrice Bellard
6# Copyright (c) 2005-2006 Diego Biurrun
7# Copyright (c) 2005-2006 Mans Rullgard
0f3cb305 8#
cf9d24ad 9
cde2d79a 10# make sure we are running under a compatible shell
c21d6325
MR
11# try to make this part work with most shells
12
13try_exec(){
14 type "$1" >/dev/null 2>&1 && exec "$@"
15}
16
5237ce67
MR
17unset foo
18(: ${foo%%bar}) 2>/dev/null && ! (: ${foo?}) 2>/dev/null
cde2d79a 19if test "$?" != 0; then
c21d6325
MR
20 export FF_CONF_EXEC
21 if test "0$FF_CONF_EXEC" -lt 1; then
22 FF_CONF_EXEC=1
23 try_exec bash "$0" "$@"
24 fi
25 if test "0$FF_CONF_EXEC" -lt 2; then
26 FF_CONF_EXEC=2
27 try_exec ksh "$0" "$@"
28 fi
29 if test "0$FF_CONF_EXEC" -lt 3; then
30 FF_CONF_EXEC=3
31 try_exec /usr/xpg4/bin/sh "$0" "$@"
cde2d79a
MR
32 fi
33 echo "No compatible shell script interpreter found."
c21d6325
MR
34 echo "This configure script requires a POSIX compatible shell"
35 echo "such as bash or ksh."
36 if test "$BASH_VERSION" = '2.04.0(1)-release'; then
37 echo "This bash version ($BASH_VERSION) is broken on your platform."
38 echo "Upgrade to a later version if available."
39 fi
cde2d79a
MR
40 exit 1
41fi
42
74c53c2d
MR
43show_help(){
44 echo "Usage: configure [options]"
45 echo "Options: [defaults in brackets after descriptions]"
46 echo
47 echo "Standard options:"
48 echo " --help print this message"
2ba042a7 49 echo " --log[=FILE|yes|no] log tests and output to FILE [config.err]"
2266e085 50 echo " --prefix=PREFIX install in PREFIX [$PREFIX]"
74c53c2d 51 echo " --libdir=DIR install libs in DIR [PREFIX/lib]"
84c22efd 52 echo " --shlibdir=DIR install shared libs in DIR [PREFIX/lib]"
74c53c2d
MR
53 echo " --incdir=DIR install includes in DIR [PREFIX/include/ffmpeg]"
54 echo " --mandir=DIR install man page in DIR [PREFIX/man]"
55 echo " --enable-mp3lame enable MP3 encoding via libmp3lame [default=no]"
f956e129 56 echo " --enable-libnut enable NUT support via libnut [default=no]"
74c53c2d
MR
57 echo " --enable-libogg enable Ogg support via libogg [default=no]"
58 echo " --enable-vorbis enable Vorbis support via libvorbis [default=no]"
74c53c2d
MR
59 echo " --enable-faad enable FAAD support via libfaad [default=no]"
60 echo " --enable-faadbin build FAAD support with runtime linking [default=no]"
61 echo " --enable-faac enable FAAC support via libfaac [default=no]"
62 echo " --enable-libgsm enable GSM support via libgsm [default=no]"
63 echo " --enable-xvid enable XviD support via xvidcore [default=no]"
64 echo " --enable-x264 enable H.264 encoding via x264 [default=no]"
65 echo " --enable-mingw32 enable MinGW native/cross Windows compile"
66 echo " --enable-mingwce enable MinGW native/cross WinCE compile"
67 echo " --enable-a52 enable GPLed A52 support [default=no]"
68 echo " --enable-a52bin open liba52.so.0 at runtime [default=no]"
69 echo " --enable-dts enable GPLed DTS support [default=no]"
70 echo " --enable-pp enable GPLed postprocessing support [default=no]"
71 echo " --enable-static build static libraries [default=yes]"
72 echo " --disable-static do not build static libraries [default=no]"
73 echo " --enable-shared build shared libraries [default=no]"
74 echo " --disable-shared do not build shared libraries [default=yes]"
75 echo " --enable-amr_nb enable amr_nb float audio codec"
76 echo " --enable-amr_nb-fixed use fixed point for amr-nb codec"
77 echo " --enable-amr_wb enable amr_wb float audio codec"
78 echo " --enable-amr_if2 enable amr_wb IF2 audio codec"
79 echo " --enable-sunmlib use Sun medialib [default=no]"
80 echo " --enable-pthreads use pthreads [default=no]"
81 echo " --enable-dc1394 enable IIDC-1394 grabbing using libdc1394"
82 echo " and libraw1394 [default=no]"
790c9ca7 83 echo " --enable-swscaler software scaler support [default=no]"
8ac17293 84 echo " --enable-avisynth allow reading AVISynth script files [default=no]"
74c53c2d
MR
85 echo " --enable-gpl allow use of GPL code, the resulting libav*"
86 echo " and ffmpeg will be under GPL [default=no]"
87 echo ""
88 echo "Advanced options (experts only):"
89 echo " --source-path=PATH path to source code [$source_path]"
90 echo " --cross-prefix=PREFIX use PREFIX for compilation tools [$cross_prefix]"
fac252f9 91 echo " --cross-compile assume a cross-compiler is used"
74c53c2d
MR
92 echo " --cc=CC use C compiler CC [$cc]"
93 echo " --make=MAKE use specified make [$make]"
94 echo " --extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS]"
95 echo " --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]"
96 echo " --extra-libs=ELIBS add ELIBS [$ELIBS]"
97 echo " --build-suffix=SUFFIX suffix for application specific build []"
cc6a90dd 98 echo " --arch=ARCH select architecture [$arch]"
38d0a8aa
GP
99 echo " --cpu=CPU selects the minimum cpu required (affects
100 instruction selection, may crash on older CPUs)"
74c53c2d
MR
101 echo " --powerpc-perf-enable enable performance report on PPC"
102 echo " (requires enabling PMC)"
103 echo " --disable-mmx disable MMX usage"
1839e854 104 echo " --disable-armv5te disable armv5te usage"
74c53c2d
MR
105 echo " --disable-iwmmxt disable iwmmxt usage"
106 echo " --disable-altivec disable AltiVec usage"
107 echo " --disable-audio-oss disable OSS audio support [default=no]"
108 echo " --disable-audio-beos disable BeOS audio support [default=no]"
109 echo " --disable-v4l disable video4linux grabbing [default=no]"
110 echo " --disable-v4l2 disable video4linux2 grabbing [default=no]"
111 echo " --disable-bktr disable bktr video grabbing [default=no]"
112 echo " --disable-dv1394 disable DV1394 grabbing [default=no]"
113 echo " --disable-network disable network support [default=no]"
0c7bb0e5 114 echo " --disable-ipv6 disable ipv6 support [default=no]"
74c53c2d 115 echo " --disable-zlib disable zlib [default=no]"
74c53c2d
MR
116 echo " --disable-vhook disable video hooking support"
117 echo " --enable-gprof enable profiling with gprof [$gprof]"
118 echo " --disable-debug disable debugging symbols"
119 echo " --disable-opts disable compiler optimizations"
78fcba8f 120 echo " --enable-extra-warnings enable more compiler warnings"
74c53c2d
MR
121 echo " --disable-mpegaudio-hp faster (but less accurate)"
122 echo " MPEG audio decoding [default=no]"
123 echo " --disable-protocols disable I/O protocols support [default=no]"
786b30af 124 echo " --disable-ffmpeg disable ffmpeg build"
74c53c2d
MR
125 echo " --disable-ffserver disable ffserver build"
126 echo " --disable-ffplay disable ffplay build"
127 echo " --enable-small optimize for size instead of speed"
128 echo " --enable-memalign-hack emulate memalign, interferes with memory debuggers"
129 echo " --disable-strip disable stripping of executables and shared libraries"
130 echo " --disable-encoder=NAME disables encoder NAME"
131 echo " --enable-encoder=NAME enables encoder NAME"
132 echo " --disable-decoder=NAME disables decoder NAME"
133 echo " --enable-decoder=NAME enables decoder NAME"
134 echo " --disable-encoders disables all encoders"
135 echo " --disable-decoders disables all decoders"
ff70e601
MR
136 echo " --disable-muxer=NAME disables muxer NAME"
137 echo " --enable-muxer=NAME enables muxer NAME"
74c53c2d 138 echo " --disable-muxers disables all muxers"
ff70e601
MR
139 echo " --disable-demuxer=NAME disables demuxer NAME"
140 echo " --enable-demuxer=NAME enables demuxer NAME"
74c53c2d 141 echo " --disable-demuxers disables all demuxers"
af9e7d18
MR
142 echo " --enable-parser=NAME enables parser NAME"
143 echo " --disable-parser=NAME disables parser NAME"
144 echo " --disable-parsers disables all parsers"
74c53c2d
MR
145 echo ""
146 echo "NOTE: Object files are built at the place where configure is launched."
147 exit 1
148}
cf9d24ad 149
57bd82d4
MR
150log(){
151 echo "$@" >>$logfile
152}
153
720c69da 154log_file(){
c8e9f801
MR
155 log BEGIN $1
156 cat -n $1 >>$logfile
157 log END $1
158}
159
2ba042a7 160echolog(){
c8e9f801 161 log "$@"
57bd82d4 162 echo "$@"
2ba042a7
MR
163}
164
165die(){
166 echolog "$@"
167 cat <<EOF
168If you think configure made a mistake, make sure you are using the latest
169version from SVN. If the latest version fails, report the problem to the
170ffmpeg-devel@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net.
171EOF
720c69da 172 if enabled logging; then
2ba042a7
MR
173 cat <<EOF
174Include the log file "$logfile" produced by configure as this will help
175solving the problem.
176EOF
177 else
178cat <<EOF
179Rerun configure with logging enabled (do not use --log=no), and include the
180log this produces with your report.
181EOF
182 fi
57bd82d4
MR
183 rm -f $TMPC $TMPO $TMPE $TMPS $TMPH
184 exit 1
185}
186
904e48f1 187# "tr '[a-z]' '[A-Z]'" is a workaround for Solaris tr not grokking "tr a-z A-Z"
44161118
MR
188toupper(){
189 echo "$@" | tr '[a-z]' '[A-Z]'
190}
191
a8d04fba
MR
192set_all(){
193 value=$1
194 shift
195 for var in $*; do
196 eval $var=$value
197 done
198}
199
200enable(){
201 set_all yes $*
202}
203
204disable(){
205 set_all no $*
206}
207
57bd82d4 208enabled(){
44161118
MR
209 eval test "x\$$1" = "xyes"
210}
211
212enabled_all(){
213 for opt; do
214 enabled $opt || return 1
215 done
216}
217
218enabled_any(){
219 for opt; do
220 enabled $opt && return 0
221 done
222}
223
224print_config(){
225 pfx=$1
226 header=$2
227 makefile=$3
228 shift 3
229 for cfg; do
230 if enabled $cfg; then
231 ucname="${pfx}`toupper $cfg`"
232 echo "#define ${ucname} 1" >> $header
233 echo "${ucname}=yes" >> $makefile
234 fi
235 done
57bd82d4
MR
236}
237
238flags_saved(){
239 (: ${SAVE_CFLAGS?}) 2>/dev/null
240}
241
dcd479c0 242save_flags(){
57bd82d4 243 flags_saved && return
dcd479c0
MR
244 SAVE_CFLAGS="$CFLAGS"
245 SAVE_LDFLAGS="$LDFLAGS"
246 SAVE_extralibs="$extralibs"
247}
248
249restore_flags(){
250 CFLAGS="$SAVE_CFLAGS"
251 LDFLAGS="$SAVE_LDFLAGS"
252 extralibs="$SAVE_extralibs"
253 unset SAVE_CFLAGS
254 unset SAVE_LDFLAGS
255 unset SAVE_extralibs
256}
257
258temp_cflags(){
259 save_flags
260 CFLAGS="$CFLAGS $*"
261}
262
263temp_ldflags(){
264 save_flags
265 LDFLAGS="$LDFLAGS $*"
266}
267
268temp_extralibs(){
269 save_flags
270 extralibs="$extralibs $*"
271}
272
57bd82d4
MR
273append(){
274 var=$1
275 shift
276 flags_saved && eval "SAVE_$var=\"\$SAVE_$var $*\""
277 eval "$var=\"\$$var $*\""
278}
279
280add_cflags(){
281 append CFLAGS "$@"
282}
283
284add_ldflags(){
285 append LDFLAGS "$@"
286}
287
288add_extralibs(){
289 append extralibs "$@"
290}
291
b0cfb663 292check_cmd(){
b3cb5d51 293 log "$@"
9b4f605c 294 "$@" >>$logfile 2>&1
b0cfb663
MR
295}
296
dcd479c0 297check_cc(){
57bd82d4
MR
298 log check_cc "$@"
299 cat >$TMPC
720c69da 300 log_file $TMPC
b0cfb663 301 check_cmd $cc $CFLAGS "$@" -c -o $TMPO $TMPC
57bd82d4
MR
302}
303
304check_cpp(){
305 log check_cpp "$@"
dcd479c0 306 cat >$TMPC
720c69da 307 log_file $TMPC
b0cfb663 308 check_cmd $cc $CFLAGS "$@" -E -o $TMPO $TMPC
dcd479c0
MR
309}
310
311check_ld(){
57bd82d4 312 log check_ld "$@"
0607887f 313 check_cc || return
b0cfb663 314 check_cmd $cc $LDFLAGS "$@" -o $TMPE $TMPO $extralibs
dcd479c0
MR
315}
316
317check_cflags(){
57bd82d4
MR
318 log check_cflags "$@"
319 check_cc "$@" <<EOF && add_cflags "$@"
dcd479c0
MR
320int x;
321EOF
322}
323
324check_ldflags(){
57bd82d4
MR
325 log check_ldflags "$@"
326 check_ld "$@" <<EOF && add_ldflags "$@"
327int main(){
328 return 0;
329}
dcd479c0
MR
330EOF
331}
332
333check_header(){
57bd82d4 334 log check_header "$@"
dcd479c0
MR
335 header=$1
336 shift
57bd82d4 337 check_cpp "$@" <<EOF
dcd479c0
MR
338#include <$header>
339int x;
340EOF
0701ca7f
MR
341 err=$?
342 var=`echo $header | sed 's/[^[:alnum:]]/_/g'`
343 test "$err" = 0 && enable $var || disable $var
344 return $err
dcd479c0
MR
345}
346
347check_func(){
57bd82d4 348 log check_func "$@"
dcd479c0
MR
349 func=$1
350 shift
351 check_ld "$@" <<EOF
352extern int $func();
353int main(){
354 $func();
355}
356EOF
0701ca7f
MR
357 err=$?
358 test "$err" = 0 && enable $func || disable $func
359 return $err
dcd479c0
MR
360}
361
57bd82d4
MR
362check_lib(){
363 log check_lib "$@"
364 header="$1"
365 func="$2"
366 shift 2
367 temp_extralibs "$@"
368 check_header $header && check_func $func && add_extralibs "$@"
369 err=$?
370 restore_flags
371 return $err
372}
373
dcd479c0 374check_exec(){
bd4700b1 375 check_ld "$@" && { test "$cross_compile" = yes || $TMPE >>$logfile 2>&1; }
57bd82d4
MR
376}
377
378require(){
379 name="$1"
380 header="$2"
381 func="$3"
382 shift 3
383 check_lib $header $func "$@" || die "ERROR: $name not found"
dcd479c0
MR
384}
385
c88f5d72
MR
386CONFIG_LIST='
387 encoders
388 decoders
389 parsers
390 muxers
391 demuxers
392 a52
393 a52bin
394 amr
395 amr_nb
396 amr_nb_fixed
397 amr_wb
398 audio_beos
399 audio_oss
400 avisynth
401 beos_netserver
402 bktr
403 dc1394
404 dts
405 dv1394
406 faac
407 faad
408 faadbin
409 ffmpeg
410 ffplay
411 ffserver
412 gpl
413 ipv6
414 libgsm
415 libnut
416 libogg
417 libvorbis
418 memalign_hack
419 mp3lame
420 mpegaudio_hp
421 network
422 pp
423 protocols
424 swscaler
425 vhook
426 video4linux
427 video4linux2
860391a5 428 wince
c88f5d72
MR
429 x264
430 xvid
431 zlib
432'
433
434HAVE_LIST='
435 altivec_h
b265431e 436 beosthreads
c88f5d72
MR
437 byteswap_h
438 dcbzl
18b67ae5 439 dlfcn_h
c88f5d72
MR
440 dlopen
441 freetype2
442 gprof
443 imlib2
2e1913b1 444 inet_aton
c88f5d72
MR
445 localtime_r
446 lrintf
447 malloc_h
448 memalign
449 mlib
9c914398 450 os2
b265431e
MR
451 os2threads
452 pthreads
c88f5d72
MR
453 sdl
454 sdl_video_size
b265431e
MR
455 threads
456 w32threads
c88f5d72 457'
44161118 458
0f3cb305 459# set temporary file name
57514323 460if test ! -z "$TMPDIR" ; then
0f3cb305 461 TMPDIR1="${TMPDIR}"
57514323 462elif test ! -z "$TEMPDIR" ; then
0f3cb305 463 TMPDIR1="${TEMPDIR}"
3d204385 464else
0f3cb305 465 TMPDIR1="/tmp"
3d204385
NK
466fi
467
0f3cb305
FB
468TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
469TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
f3ec2d46 470TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}"
0f3cb305
FB
471TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
472TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"
473
de6d9b64 474# default parameters
720c69da 475logging="yes"
2ba042a7 476logfile="config.err"
2266e085
DB
477PREFIX="/usr/local"
478libdir='${PREFIX}/lib'
84c22efd 479shlibdir="$libdir"
2266e085
DB
480incdir='${PREFIX}/include/ffmpeg'
481mandir='${PREFIX}/man'
482bindir='${PREFIX}/bin'
0f3cb305 483cross_prefix=""
fac252f9 484cross_compile="no"
de6d9b64
FB
485cc="gcc"
486ar="ar"
be7109c1 487ranlib="ranlib"
4a908fbc 488make="make"
0f3cb305 489strip="strip"
cc6a90dd 490arch=`uname -m`
38d0a8aa 491cpu="generic"
e45a2872 492powerpc_perf="no"
0f3cb305 493mmx="default"
e7768fc5 494cmov="no"
94e4c3a3 495cmov_is_fast="no"
1839e854 496armv5te="default"
eba9ae3c 497iwmmxt="default"
ab6c65f6 498altivec="default"
87ea51e0 499dcbzl="no"
d46aba26 500mmi="default"
cc6a90dd 501case "$arch" in
ef0bc4c9 502 i386|i486|i586|i686|i86pc|BePC)
419b8784 503 arch="x86_32"
de6d9b64 504 ;;
7bf9648e 505 x86_64|amd64)
a63e5f1c 506 arch="x86_32"
32255f6c 507 canon_arch="`$cc -dumpmachine | sed -e 's,\([^-]*\)-.*,\1,'`"
7bf9648e
JM
508 if [ x"$canon_arch" = x"x86_64" -o x"$canon_arch" = x"amd64" ]; then
509 if [ -z "`echo $CFLAGS | grep -- -m32`" ]; then
cc6a90dd 510 arch="x86_64"
7bf9648e 511 fi
053dea12
AJ
512 fi
513 ;;
6dc7b6b3
DB
514 # armv4l is a subset of armv[567]*l
515 arm|armv[4567]*l)
cc6a90dd 516 arch="armv4l"
6ed7422a 517 ;;
91d1f1a4 518 alpha)
cc6a90dd 519 arch="alpha"
91d1f1a4 520 ;;
2645e80f 521 "Power Macintosh"|ppc|ppc64|powerpc)
cc6a90dd 522 arch="powerpc"
90cee0c3 523 ;;
b028a866 524 mips|mipsel|IP*)
cc6a90dd 525 arch="mips"
d46aba26 526 ;;
bb476ff3 527 sun4u|sparc64)
cc6a90dd 528 arch="sparc64"
a7beab73 529 ;;
bb476ff3 530 sparc)
cc6a90dd 531 arch="sparc"
bb476ff3 532 ;;
bdb2e37c 533 sh4)
cc6a90dd 534 arch="sh4"
bdb2e37c 535 ;;
67860b26 536 parisc|parisc64)
cc6a90dd 537 arch="parisc"
67860b26
SH
538 ;;
539 s390|s390x)
cc6a90dd 540 arch="s390"
67860b26
SH
541 ;;
542 m68k)
cc6a90dd 543 arch="m68k"
67860b26
SH
544 ;;
545 ia64)
cc6a90dd 546 arch="ia64"
67860b26 547 ;;
81a9b052 548 bfin)
cc6a90dd 549 arch="bfin"
81a9b052 550 ;;
de6d9b64 551 *)
cc6a90dd 552 arch="unknown"
de6d9b64
FB
553 ;;
554esac
555gprof="no"
9d2a0f1c
MR
556video4linux="yes"
557video4linux2="yes"
6beefa40 558bktr="no"
5cbcf02c 559audio_oss="yes"
dfdfa47c 560audio_beos="no"
8aa3ee32 561dv1394="yes"
f02be79d 562dc1394="no"
5cbcf02c 563network="yes"
0c7bb0e5 564ipv6="yes"
0147f198 565zlib="yes"
bb4c2140 566libgsm="no"
a6741398 567mp3lame="no"
f956e129 568libnut="no"
9146ca37 569libogg="no"
be74741c 570libvorbis="no"
0fc50e58
ZK
571faad="no"
572faadbin="no"
29d48296 573faac="no"
1ddadfa9 574xvid="no"
6662ec29 575x264="no"
ba9261e5 576a52="no"
57514323 577a52bin="no"
23c99253 578dts="no"
ba9261e5 579pp="no"
732d9245 580mingw32="no"
860391a5 581wince="no"
f3ec2d46 582os2="no"
320d060a 583lstatic="yes"
83286d2a 584lshared="no"
cddf3f45
GM
585optimize="yes"
586debug="yes"
78fcba8f 587extrawarnings="no"
65d1bea2 588dostrip="yes"
da186ae2 589installstrip="-s"
ef0bc4c9 590extralibs="-lm"
0f3cb305 591bigendian="no"
a8721c09 592vhook="default"
8ac17293 593avisynth="no"
18b67ae5 594dlfcn_h="no"
adbc0510 595dlopen="no"
1eb2212e 596mpegaudio_hp="yes"
baa3a937 597SHFLAGS='-shared -Wl,-soname,$@'
cab3ef82 598VHOOKSHFLAGS='$(SHFLAGS)'
8e72b130 599beos_netserver="no"
04f46ced 600protocols="yes"
786b30af 601ffmpeg="yes"
8154d2e0 602ffserver="yes"
a86b921c 603ffplay="yes"
80581e98 604LIBOBJFLAGS=""
e89b8b0a 605FFLDFLAGS=-Wl,--warn-common
e240ee67 606LDLATEFLAGS='-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
c536cb09 607FFSERVERLDFLAGS=-Wl,-E
f39e56a8 608LDCONFIG="ldconfig"
f3ec2d46
SG
609LIBPREF="lib"
610LIBSUF=".a"
4bdd05e7 611LIB='$(LIBPREF)$(NAME)$(LIBSUF)'
f3ec2d46
SG
612SLIBPREF="lib"
613SLIBSUF=".so"
4bdd05e7 614SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF)'
b29bddab
DB
615SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
616SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
951bf3e6 617EXESUF=""
eb94aca9 618BUILDSUF=""
891f64b3 619amr_nb="no"
d663a1fd 620amr_wb="no"
bc634f6f 621amr_nb_fixed="no"
2a515c08 622amr_if2="no"
bde24d6e 623mlib="no"
9c3d33d6 624pthreads="no"
790c9ca7 625swscaler="no"
b2e3c528 626gpl="no"
9ddbcae6 627memalign_hack="no"
4454dc1b 628asmalign_pot="unknown"
d4596ae3 629LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(libdir)/$(LIB)"'
ef0bc4c9
FR
630
631# OS specific
632targetos=`uname -s`
633case $targetos in
634BeOS)
2266e085 635PREFIX="/boot/home/config"
ef0bc4c9 636# helps building libavcodec
30a3e5d4 637add_cflags "-DPIC -fomit-frame-pointer"
31ba0b4d 638# 3 gcc releases known for BeOS, each with ugly bugs
b2924696 639gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
31ba0b4d
FR
640case "$gcc_version" in
6412.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
642mmx="no"
643;;
644*20010315*) echo "BeBits gcc"
30a3e5d4 645add_cflags "-fno-expensive-optimizations"
31ba0b4d
FR
646;;
647esac
e1707f52 648SHFLAGS=-nostart
29799f8b 649# disable Linux things
e1707f52 650audio_oss="no"
9d2a0f1c
MR
651video4linux="no"
652video4linux2="no"
8aa3ee32 653dv1394="no"
29799f8b 654# enable BeOS things
dfdfa47c 655audio_beos="yes"
b265431e 656beosthreads="yes"
ef0bc4c9
FR
657# no need for libm, but the inet stuff
658# Check for BONE
659if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then
660extralibs="-lbind -lsocket"
661else
8e72b130 662beos_netserver="yes"
26b35efb 663extralibs="-lnet"
ef0bc4c9 664fi ;;
4baca069 665SunOS)
9d2a0f1c
MR
666video4linux="no"
667video4linux2="no"
4baca069 668audio_oss="no"
8aa3ee32 669dv1394="no"
4baca069 670make="gmake"
e89b8b0a 671FFLDFLAGS=""
c536cb09 672FFSERVERLDFLAGS=""
813457e5 673SHFLAGS="-shared -Wl,-h,\$@"
30a3e5d4 674add_extralibs "-lsocket -lnsl"
4baca069 675;;
b7aa4a59 676NetBSD)
9d2a0f1c
MR
677video4linux="no"
678video4linux2="no"
6beefa40 679bktr="yes"
b7aa4a59
SS
680audio_oss="yes"
681dv1394="no"
682make="gmake"
30a3e5d4 683add_extralibs "-lossaudio"
b7aa4a59 684;;
8c802695 685OpenBSD)
9d2a0f1c
MR
686video4linux="no"
687video4linux2="no"
6beefa40 688bktr="yes"
8c802695
JM
689audio_oss="yes"
690dv1394="no"
691make="gmake"
80581e98 692LIBOBJFLAGS="\$(PIC)"
a1309f8f 693LDCONFIG="ldconfig -m \$(shlibdir)"
30a3e5d4 694add_extralibs "-lossaudio"
8c802695 695;;
9c938e77 696FreeBSD)
9d2a0f1c
MR
697video4linux="no"
698video4linux2="no"
6beefa40 699bktr="yes"
9c938e77 700audio_oss="yes"
8aa3ee32 701dv1394="no"
9c938e77 702make="gmake"
30a3e5d4 703add_cflags "-pthread"
9c938e77 704;;
38f0d3ce 705GNU/kFreeBSD)
9d2a0f1c
MR
706video4linux="no"
707video4linux2="no"
38f0d3ce
DB
708bktr="yes"
709audio_oss="yes"
710dv1394="no"
30a3e5d4 711add_cflags "-pthread"
38f0d3ce 712;;
4a908fbc 713BSD/OS)
9d2a0f1c
MR
714video4linux="no"
715video4linux2="no"
6beefa40 716bktr="yes"
6063bce7 717audio_oss="yes"
8aa3ee32 718dv1394="no"
4a908fbc
AB
719extralibs="-lpoll -lgnugetopt -lm"
720make="gmake"
1db68540
SS
721strip="strip -d"
722installstrip=""
4a908fbc 723;;
90cee0c3 724Darwin)
a43bd1d7 725cc="cc"
9d2a0f1c
MR
726video4linux="no"
727video4linux2="no"
90cee0c3 728audio_oss="no"
8aa3ee32 729dv1394="no"
a1309f8f 730SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(shlibdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION)"
408382a4 731VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(shlibdir)/vhook/$@'
90cee0c3 732extralibs=""
47930f09 733strip="strip -x"
da186ae2 734installstrip=""
e89b8b0a 735FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
4e159595 736SLIBSUF=".dylib"
f3b60109
DB
737SLIBNAME_WITH_FULLVERSION='$(SLIBPREF)$(NAME).$(LIBVERSION)$(SLIBSUF)'
738SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)'
c536cb09 739FFSERVERLDFLAGS=-Wl,-bind_at_load
d4596ae3 740LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(libdir)/$(LIB)"'
90cee0c3 741;;
732d9245 742MINGW32*)
951bf3e6 743# Note: the rest of the mingw32 config is done afterwards as mingw32
29799f8b 744# can be forced on the command line for Linux cross compilation.
732d9245
BE
745mingw32="yes"
746;;
3f027ca7 747CYGWIN*)
b2828252 748targetos=CYGWIN
4581fdff 749shlibdir='${PREFIX}/bin'
9d2a0f1c
MR
750video4linux="no"
751video4linux2="no"
3f027ca7 752audio_oss="yes"
8aa3ee32 753dv1394="no"
07a1b05e 754VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil'
fbb9d104 755VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
3f027ca7 756extralibs=""
487c2fad 757EXESUF=".exe"
4581fdff
VP
758SLIBPREF="cyg"
759SLIBSUF=".dll"
760SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
761SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
762SHFLAGS='-shared -Wl,--out-implib=lib$(NAME).dll.a'
3f027ca7 763;;
b55e4ef4 764Linux)
e240ee67 765LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS"
b55e4ef4 766;;
99614dd4 767IRIX*)
b2828252 768targetos=IRIX
99614dd4 769ranlib="echo ignoring ranlib"
9d2a0f1c
MR
770video4linux="no"
771video4linux2="no"
99614dd4
MB
772audio_oss="no"
773make="gmake"
774;;
f3ec2d46
SG
775OS/2)
776TMPE=$TMPE".exe"
3ca4b654 777ar="emxomfar -p128"
69db4e10
SG
778ranlib="echo ignoring ranlib"
779strip="echo ignoring strip"
30a3e5d4 780add_cflags "-Zomf"
e89b8b0a 781FFLDFLAGS="-Zomf -Zstack 16384 -s"
3ca4b654 782SHFLAGS="-Zdll -Zomf"
c536cb09 783FFSERVERLDFLAGS=""
f3ec2d46
SG
784LIBPREF=""
785LIBSUF=".lib"
786SLIBPREF=""
787SLIBSUF=".dll"
951bf3e6 788EXESUF=".exe"
f3ec2d46 789extralibs=""
c99dd233 790pkg_requires=""
9d2a0f1c
MR
791video4linux="no"
792video4linux2="no"
f3ec2d46 793audio_oss="no"
8aa3ee32 794dv1394="no"
f3ec2d46 795ffserver="no"
3ca4b654 796vhook="no"
f3ec2d46 797os2="yes"
b265431e 798os2threads="yes"
f3ec2d46 799;;
b2828252
DB
800*)
801targetos="${targetos}-UNKNOWN"
802;;
ef0bc4c9 803esac
de6d9b64 804
0f3cb305 805# find source path
997baf01 806source_path="`dirname \"$0\"`"
0f3cb305
FB
807source_path_used="yes"
808if test -z "$source_path" -o "$source_path" = "." ; then
997baf01 809 source_path="`pwd`"
0f3cb305 810 source_path_used="no"
e7a4dafb
MR
811else
812 source_path="`cd \"$source_path\"; pwd`"
997baf01
MR
813 echo "$source_path" | grep -q '[[:blank:]]' &&
814 die "Out of tree builds are impossible with whitespace in source path."
de6d9b64
FB
815fi
816
7d6ed4aa
MR
817if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
818 show_help
819fi
820
f255e0ab
MB
821FFMPEG_CONFIGURATION=" "
822for opt do
823 FFMPEG_CONFIGURATION="$FFMPEG_CONFIGURATION""$opt "
824done
825
13638ea9
SH
826ENCODER_LIST=`grep 'register_avcodec(&[a-z0-9_]*_encoder)' "$source_path/libavcodec/allcodecs.c" | sed 's/.*&\(.*\)).*/\1/'`
827DECODER_LIST=`grep 'register_avcodec(&[a-z0-9_]*_decoder)' "$source_path/libavcodec/allcodecs.c" | sed 's/.*&\(.*\)).*/\1/'`
828PARSER_LIST=`grep 'av_register_codec_parser(&[a-z]' "$source_path/libavcodec/allcodecs.c" | sed 's/.*&\(.*\)).*/\1/'`
829MUXER_LIST=`grep 'av_register_output_format(&[a-z]' "$source_path/libavformat/allformats.c" | sed 's/.*&\(.*\)).*/\1/'`
830DEMUXER_LIST=`grep 'av_register_input_format(&[a-z]' "$source_path/libavformat/allformats.c" | sed 's/.*&\(.*\)).*/\1/'`
009cf97d 831
a8d04fba
MR
832enable $ENCODER_LIST $DECODER_LIST $PARSER_LIST $MUXER_LIST $DEMUXER_LIST
833
de6d9b64 834for opt do
fce53524 835 optval="${opt#*=}"
de6d9b64 836 case "$opt" in
2ba042a7
MR
837 --log)
838 ;;
fce53524 839 --log=*) logging="$optval"
57bd82d4 840 ;;
2266e085 841 --prefix=*) PREFIX="$optval"; force_prefix=yes
de6d9b64 842 ;;
fce53524 843 --libdir=*) libdir="$optval"; force_libdir=yes
cc973ecb 844 ;;
84c22efd
DB
845 --shlibdir=*) shlibdir="$optval"
846 ;;
fce53524 847 --incdir=*) incdir="$optval"
1d67a1d4 848 ;;
fce53524 849 --mandir=*) mandir="$optval"
23a65308 850 ;;
fce53524 851 --source-path=*) source_path="$optval"
0f3cb305 852 ;;
fce53524 853 --cross-prefix=*) cross_prefix="$optval"
0f3cb305 854 ;;
fac252f9
MR
855 --cross-compile) cross_compile=yes
856 ;;
fce53524 857 --cc=*) cc="$optval"
de6d9b64 858 ;;
fce53524 859 --make=*) make="$optval"
4a908fbc 860 ;;
30a3e5d4 861 --extra-cflags=*) add_cflags "$optval"
0f3cb305 862 ;;
28d8e661 863 --extra-ldflags=*) add_ldflags "$optval"
0f3cb305 864 ;;
28d8e661 865 --extra-libs=*) add_extralibs "$optval"
0f3cb305 866 ;;
fce53524 867 --build-suffix=*) BUILDSUF="$optval"
eb94aca9 868 ;;
cc6a90dd 869 --arch=*) arch="$optval"
de6d9b64 870 ;;
38d0a8aa 871 --cpu=*) cpu="$optval"
a4adb608 872 ;;
e45a2872
RD
873 --powerpc-perf-enable) powerpc_perf="yes"
874 ;;
de6d9b64
FB
875 --disable-mmx) mmx="no"
876 ;;
1839e854
SS
877 --disable-armv5te) armv5te="no"
878 ;;
eba9ae3c
GB
879 --disable-iwmmxt) iwmmxt="no"
880 ;;
ab6c65f6
BF
881 --disable-altivec) altivec="no"
882 ;;
de6d9b64
FB
883 --enable-gprof) gprof="yes"
884 ;;
9d2a0f1c 885 --disable-v4l) video4linux="no"
5cbcf02c 886 ;;
9d2a0f1c 887 --disable-v4l2) video4linux2="no"
0a7b514f 888 ;;
6beefa40
MN
889 --disable-bktr) bktr="no"
890 ;;
5cbcf02c
FB
891 --disable-audio-oss) audio_oss="no"
892 ;;
dfdfa47c
FR
893 --disable-audio-beos) audio_beos="no"
894 ;;
8aa3ee32
MK
895 --disable-dv1394) dv1394="no"
896 ;;
ffc0ef96 897 --disable-network) network="no"; ffserver="no"
5cbcf02c 898 ;;
0c7bb0e5
LB
899 --disable-ipv6) ipv6="no";
900 ;;
0147f198
FR
901 --disable-zlib) zlib="no"
902 ;;
ba9261e5 903 --enable-a52) a52="yes"
6ed7422a 904 ;;
bfd2edeb 905 --enable-a52bin) a52bin="yes"
57514323 906 ;;
c99dd233 907 --enable-dts) dts="yes"
23c99253 908 ;;
ba9261e5 909 --enable-pp) pp="yes"
bba9b16c 910 ;;
bb4c2140
MN
911 --enable-libgsm) libgsm="yes"
912 ;;
c99dd233 913 --enable-mp3lame) mp3lame="yes"
a6741398 914 ;;
f956e129
OS
915 --enable-libnut) libnut="yes"
916 ;;
9146ca37 917 --enable-libogg) libogg="yes"
c99dd233 918 pkg_requires="$pkg_requires ogg >= 1.1"
5c5dea3f 919 ;;
be74741c 920 --enable-vorbis) libvorbis="yes"
c99dd233 921 pkg_requires="$pkg_requires vorbis vorbisenc"
81e0d0b4 922 ;;
445ad18d
ZK
923 --enable-faad) faad="yes"
924 ;;
925 --enable-faadbin) faadbin="yes"
926 ;;
c99dd233 927 --enable-faac) faac="yes"
29d48296 928 ;;
1ddadfa9
AT
929 --enable-xvid) xvid="yes"
930 ;;
c99dd233 931 --enable-x264) x264="yes"
6662ec29 932 ;;
8ac17293
SH
933 --enable-avisynth) avisynth="yes";
934 ;;
f02be79d 935 --enable-dc1394) dc1394="yes"
c99dd233 936 pkg_requires="$pkg_requires libraw1394"
f02be79d 937 ;;
68892110
PG
938 --disable-vhook) vhook="no"
939 ;;
732d9245
BE
940 --enable-mingw32) mingw32="yes"
941 ;;
860391a5 942 --enable-mingwce) wince="yes"
ac44871c 943 ;;
320d060a
DB
944 --enable-static) lstatic="yes"
945 ;;
946 --disable-static) lstatic="no"
947 ;;
83286d2a 948 --enable-shared) lshared="yes"
0319c531 949 ;;
320d060a
DB
950 --disable-shared) lshared="no"
951 ;;
cddf3f45
GM
952 --disable-debug) debug="no"
953 ;;
954 --disable-opts) optimize="no"
955 ;;
78fcba8f
MR
956 --enable-extra-warnings) extrawarnings="yes"
957 ;;
1eb2212e
FB
958 --disable-mpegaudio-hp) mpegaudio_hp="no"
959 ;;
04f46ced
GB
960 --disable-protocols) protocols="no"; network="no"; ffserver="no"
961 ;;
786b30af
DB
962 --disable-ffmpeg) ffmpeg="no"
963 ;;
8154d2e0
FB
964 --disable-ffserver) ffserver="no"
965 ;;
a86b921c
FB
966 --disable-ffplay) ffplay="no"
967 ;;
cddf3f45 968 --enable-small) optimize="small"
553a6284 969 ;;
60827a1a 970 --enable-amr_nb) amr="yes"; amr_nb="yes"; amr_nb_fixed="no"
891f64b3 971 ;;
60827a1a 972 --enable-amr_nb-fixed) amr="yes"; amr_nb_fixed="yes"; amr_nb="no"
bc634f6f 973 ;;
60827a1a 974 --enable-amr_wb) amr="yes"; amr_wb="yes"
115329f1 975 ;;
60827a1a 976 --enable-amr_if2) amr="yes"; amr_if2="yes"
2a515c08 977 ;;
bde24d6e 978 --enable-sunmlib) mlib="yes"
f80f7964 979 ;;
9c3d33d6
MN
980 --enable-pthreads) pthreads="yes"
981 ;;
790c9ca7
LA
982 --enable-swscaler) swscaler="yes"
983 ;;
b2e3c528
MN
984 --enable-gpl) gpl="yes"
985 ;;
9ddbcae6 986 --enable-memalign-hack) memalign_hack="yes"
da9b170c 987 ;;
65d1bea2
MB
988 --disable-strip) dostrip="no"
989 ;;
a8d04fba 990 --enable-encoder=*) enable ${optval}_encoder
009cf97d 991 ;;
a8d04fba 992 --enable-decoder=*) enable ${optval}_decoder
f593b273 993 ;;
a8d04fba 994 --disable-encoder=*) disable ${optval}_encoder
f593b273 995 ;;
a8d04fba 996 --disable-decoder=*) disable ${optval}_decoder
009cf97d 997 ;;
a8d04fba 998 --disable-encoders) disable $ENCODER_LIST
009cf97d 999 ;;
a8d04fba 1000 --disable-decoders) disable $DECODER_LIST
b4cad537 1001 ;;
a8d04fba 1002 --enable-muxer=*) enable ${optval}_muxer
a9e35095 1003 ;;
a8d04fba 1004 --disable-muxer=*) disable ${optval}_muxer
ff70e601 1005 ;;
a8d04fba 1006 --disable-muxers) disable $MUXER_LIST; ffserver="no"
ff70e601 1007 ;;
a8d04fba 1008 --enable-demuxer=*) enable ${optval}_demuxer
ff70e601 1009 ;;
a8d04fba 1010 --disable-demuxer=*) disable ${optval}_demuxer
ff70e601 1011 ;;
a8d04fba 1012 --disable-demuxers) disable $DEMUXER_LIST
a9e35095 1013 ;;
a8d04fba 1014 --enable-parser=*) enable ${optval}_parser
af9e7d18 1015 ;;
a8d04fba 1016 --disable-parser=*) disable ${optval}_parser
af9e7d18 1017 ;;
a8d04fba 1018 --disable-parsers) disable $PARSER_LIST
af9e7d18 1019 ;;
74c53c2d
MR
1020 --help) show_help
1021 ;;
b34c63f7
DB
1022 *)
1023 echo "Unknown option \"$opt\"."
1024 echo "See $0 --help for available options."
1025 exit 1
1026 ;;
de6d9b64
FB
1027 esac
1028done
1029
720c69da
MR
1030if test "$logging" != no; then
1031 test "$logging" = yes || logfile="$logging"
57bd82d4
MR
1032 echo "# $0 $@" >$logfile
1033 set >>$logfile
2ba042a7
MR
1034else
1035 logfile=/dev/null
57bd82d4 1036fi
e89b8b0a 1037
860391a5 1038if test "$mingw32" = "yes" -o "$wince" = "yes"; then
e67bcdd9
DB
1039 if test "$lshared" = "yes" && test "$lstatic" = "yes" ; then
1040 cat <<EOF
1041You can only build one library type at once on MinGW.
1042Specify --disable-static --enable-shared to only build
1043the shared libraries. To build only the static libraries
1044you do not need to pass additional options.
1045EOF
1046 exit 1
1047 fi
9d2a0f1c
MR
1048 video4linux="no"
1049 video4linux2="no"
e67bcdd9
DB
1050 bktr="no"
1051 audio_oss="no"
1052 dv1394="no"
1053 dc1394="no"
1054 ffserver="no"
1055 network="no"
b265431e
MR
1056 if enabled mingw32; then
1057 w32threads="yes"
1058 fi
860391a5 1059 if test "$wince" = "yes"; then
e67bcdd9
DB
1060 protocols="no"
1061 fi
e67bcdd9
DB
1062 SLIBPREF=""
1063 SLIBSUF=".dll"
1064 EXESUF=".exe"
d6a07a13
DB
1065 SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
1066 SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
dfeb80a5 1067 SLIB_EXTRA_CMD="-lib /machine:i386 /def:\$(@:${SLIBSUF}=.def)"
b89c8f58 1068 SHFLAGS="-shared -Wl,--output-def,\$(@:${SLIBSUF}=.def),--out-implib,lib\$(SLIBNAME:\$(SLIBSUF)=.dll.a)"
2266e085 1069 if test "$force_prefix" != yes; then PREFIX="$PROGRAMFILES/FFmpeg"; fi
1066a995
DB
1070 if test "$force_libdir" != yes; then bindir='${PREFIX}'; fi
1071 shlibdir='${PREFIX}'
e67bcdd9
DB
1072fi
1073
28d8e661
DB
1074# Combine FFLDFLAGS and the LDFLAGS environment variable.
1075LDFLAGS="$FFLDFLAGS $LDFLAGS"
e89b8b0a 1076
fac252f9 1077test -n "$cross_prefix" && cross_compile=yes
1ea46bed
MR
1078cc="${cross_prefix}${cc}"
1079ar="${cross_prefix}${ar}"
1080ranlib="${cross_prefix}${ranlib}"
1081strip="${cross_prefix}${strip}"
1082
320d060a
DB
1083# we need to build at least one lib type
1084if test "$lstatic" = "no" && test "$lshared" = "no" ; then
1085 cat <<EOF
1086At least one library type must be built.
1087Specify --enable-static to build the static libraries or --enable-shared to
1088build the shared libraries as well. To only build the shared libraries specify
1089--disable-static in addition to --enable-shared.
1090EOF
1091 exit 1;
1092fi
1093
be74741c 1094if test "$libvorbis" = "yes" ; then
9146ca37 1095 if test "$libogg" = "no"; then
29799f8b 1096 echo "libogg must be enabled to enable Vorbis."
5c5dea3f 1097 fail="yes"
5c5dea3f
NB
1098 fi
1099fi
1100
b2e3c528 1101if test "$gpl" != "yes"; then
ba64106a 1102 if test "$pp" != "no"; then
29799f8b 1103 echo "The Postprocessing code is under GPL and --enable-gpl is not specified."
b2e3c528
MN
1104 fail="yes"
1105 fi
1106
1107 if test "$a52" != "no" -o "$a52bin" != "no"; then
29799f8b 1108 echo "liba52 is under GPL and --enable-gpl is not specified."
b2e3c528
MN
1109 fail="yes"
1110 fi
23c99253 1111
1ddadfa9 1112 if test "$xvid" != "no"; then
29799f8b 1113 echo "libxvidcore is under GPL and --enable-gpl is not specified."
1ddadfa9
AT
1114 fail="yes"
1115 fi
1116
6662ec29 1117 if test "$x264" != "no"; then
29799f8b 1118 echo "x264 is under GPL and --enable-gpl is not specified."
6662ec29
MN
1119 fail="yes"
1120 fi
1121
23c99253 1122 if test "$dts" != "no"; then
29799f8b 1123 echo "libdts is under GPL and --enable-gpl is not specified."
23c99253
MN
1124 fail="yes"
1125 fi
115329f1 1126
b2e3c528 1127 if test "$faad" != "no" -o "$faadbin" != "no"; then
dcd479c0
MR
1128 if check_header faad.h; then
1129 check_cc << EOF
b2e3c528
MN
1130 #include <faad.h>
1131 #ifndef FAAD2_VERSION
1132 ok faad1
1133 #endif
1134 int main( void ) { return 0; }
1135EOF
dcd479c0 1136 if test $? = 0 ; then
29799f8b 1137 echo "FAAD2 is under GPL and --enable-gpl is not specified."
b2e3c528
MN
1138 fail="yes"
1139 fi
1140 else
1141 faad="no"
1142 faadbin="no"
29799f8b 1143 echo "FAAD test failed."
b2e3c528
MN
1144 fi
1145 fi
115329f1 1146
790c9ca7
LA
1147 if test "$swscaler" != "no"; then
1148 echo "The software scaler is under GPL and --enable-gpl is not specified."
1149 fail="yes"
1150 fi
ebb810d9 1151fi
b2e3c528 1152
ebb810d9
RP
1153if test "$fail" = "yes"; then
1154 exit 1
b2e3c528
MN
1155fi
1156
29799f8b 1157# compute MMX state
0f3cb305 1158if test $mmx = "default"; then
419b8784 1159 if test $arch = "x86_32" -o $arch = "x86_64"; then
0f3cb305
FB
1160 mmx="yes"
1161 else
1162 mmx="no"
1163 fi
1164fi
1165
cf9d24ad 1166#Darwin CC versions
75388c74 1167needmdynamicnopic="no"
cf9d24ad 1168if test $targetos = Darwin; then
b2924696 1169 if test -n "`$cc -v 2>&1 | grep xlc`"; then
30a3e5d4 1170 add_cflags "-qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto"
cf9d24ad 1171 else
bb270c08
DB
1172 gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
1173 case "$gcc_version" in
1174 *2.95*)
30a3e5d4 1175 add_cflags "-no-cpp-precomp -pipe"
bb270c08
DB
1176 ;;
1177 *[34].*)
30a3e5d4 1178 add_cflags "-no-cpp-precomp -pipe -force_cpusubtype_ALL -Wno-sign-compare"
bb270c08
DB
1179 if test "$lshared" = no; then
1180 needmdynamicnopic="yes"
1181 fi
1182 ;;
1183 *)
30a3e5d4 1184 add_cflags "-no-cpp-precomp -pipe"
bb270c08
DB
1185 if test "$lshared" = no; then
1186 needmdynamicnopic="yes"
1187 fi
1188 ;;
1189 esac
cf9d24ad 1190 fi
2a1a6b64
MN
1191fi
1192
1193if test $optimize != "no"; then
1194 add_cflags "-fomit-frame-pointer"
cf9d24ad
DC
1195fi
1196
ab6c65f6
BF
1197# Can only do AltiVec on PowerPC
1198if test $altivec = "default"; then
cc6a90dd 1199 if test $arch = "powerpc"; then
ab6c65f6
BF
1200 altivec="yes"
1201 else
1202 altivec="no"
1203 fi
1204fi
1205
a4adb608
MN
1206# Add processor-specific flags
1207TUNECPU="generic"
9007f514 1208POWERPCMODE="32bits"
38d0a8aa
GP
1209if test $cpu != "generic"; then
1210 case $cpu in
bb270c08 1211 601|ppc601|PowerPC601)
1c5d830c 1212 add_cflags "-mcpu=601"
bb270c08
DB
1213 if test $altivec = "yes"; then
1214 echo "WARNING: Tuning for PPC601 but AltiVec enabled!";
1215 fi
1216 TUNECPU=ppc601
1217 ;;
1218 603*|ppc603*|PowerPC603*)
1c5d830c 1219 add_cflags "-mcpu=603"
bb270c08
DB
1220 if test $altivec = "yes"; then
1221 echo "WARNING: Tuning for PPC603 but AltiVec enabled!";
1222 fi
1223 TUNECPU=ppc603
1224 ;;
1225 604*|ppc604*|PowerPC604*)
1c5d830c 1226 add_cflags "-mcpu=604"
bb270c08
DB
1227 if test $altivec = "yes"; then
1228 echo "WARNING: Tuning for PPC604 but AltiVec enabled!";
1229 fi
1230 TUNECPU=ppc604
1231 ;;
1232 G3|g3|75*|ppc75*|PowerPC75*)
1c5d830c 1233 add_cflags "-mcpu=750 -mpowerpc-gfxopt"
bb270c08
DB
1234 if test $altivec = "yes"; then
1235 echo "WARNING: Tuning for PPC75x but AltiVec enabled!";
1236 fi
1237 TUNECPU=ppc750
1238 ;;
1239 G4|g4|745*|ppc745*|PowerPC745*)
1c5d830c 1240 add_cflags "-mcpu=7450 -mpowerpc-gfxopt"
bb270c08
DB
1241 if test $altivec = "no"; then
1242 echo "WARNING: Tuning for PPC745x but AltiVec disabled!";
1243 fi
1244 TUNECPU=ppc7450
1245 ;;
1246 74*|ppc74*|PowerPC74*)
1c5d830c 1247 add_cflags "-mcpu=7400 -mpowerpc-gfxopt"
bb270c08
DB
1248 if test $altivec = "no"; then
1249 echo "WARNING: Tuning for PPC74xx but AltiVec disabled!";
1250 fi
1251 TUNECPU=ppc7400
1252 ;;
1253 G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
1c5d830c 1254 add_cflags "-mcpu=970 -mpowerpc-gfxopt -mpowerpc64"
bb270c08
DB
1255 if test $altivec = "no"; then
1256 echo "WARNING: Tuning for PPC970 but AltiVec disabled!";
1257 fi
1258 TUNECPU=ppc970
9007f514 1259 POWERPCMODE="64bits"
bb270c08 1260 ;;
e7768fc5
GP
1261 # targets that do NOT support conditional mov (cmov)
1262 i[345]86|pentium|pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3)
38d0a8aa 1263 add_cflags "-march=$cpu"
e7768fc5
GP
1264 cmov="no"
1265 ;;
1266 # targets that do support conditional mov (cmov)
94e4c3a3 1267 i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64|k8|opteron|athlon-fx)
e7768fc5 1268 add_cflags "-march=$cpu"
4c8d81fa 1269 cmov="yes"
94e4c3a3
GP
1270 cmov_is_fast="yes"
1271 ;;
1272 # targets that do support conditional mov but on which it's slow
1273 pentium4|prescott|nocona)
1274 add_cflags "-march=$cpu"
1275 cmov="yes"
1276 cmov_is_fast="no"
bb270c08 1277 ;;
d7b34d08 1278 sparc64)
1c5d830c 1279 add_cflags "-mcpu=v9"
d7b34d08 1280 ;;
bb270c08 1281 *)
38d0a8aa 1282 echo "WARNING: Unknown CPU \"$cpu\", ignored."
bb270c08 1283 ;;
a4adb608
MN
1284 esac
1285fi
1286
be0d52ab
MR
1287# make sure we can execute files in $TMPDIR
1288cat >$TMPE 2>>$logfile <<EOF
1289#! /bin/sh
1290EOF
1291chmod +x $TMPE >>$logfile 2>&1
1292if ! $TMPE >>$logfile 2>&1; then
1293 cat <<EOF
1294Unable to create and execute files in $TMPDIR1. Set the TMPDIR environment
68300911
DB
1295variable to another directory and make sure that $TMPDIR1 is not mounted
1296noexec.
be0d52ab
MR
1297EOF
1298 die "Sanity test failed."
1299fi
0244f743 1300rm $TMPE
be0d52ab 1301
1a268acc
MR
1302# compiler sanity check
1303check_exec <<EOF
1304int main(){
1305 return 0;
1306}
1307EOF
1308if test "$?" != 0; then
1309 echo "$cc is unable to create an executable file."
1310 if test -z "$cross_prefix" -a "$cross_compile" = no; then
1311 echo "If $cc is a cross-compiler, use the --cross-compile option."
c7ae6345 1312 echo "Only do this if you know what cross compiling means."
1a268acc
MR
1313 fi
1314 die "C compiler test failed."
1315fi
1316
87ea51e0
LB
1317# check for assembler specific support
1318
cc6a90dd 1319if test $arch = "powerpc"; then
87ea51e0
LB
1320check_cc <<EOF && dcbzl=yes
1321int main(void) {
1322 register long zero = 0;
1323 char data[1024];
1324 asm volatile("dcbzl %0, %1" : : "b" (data), "r" (zero));
1325return 0;
1326}
1327EOF
1328fi
1329
57bd82d4
MR
1330# check for SIMD availability
1331
115329f1 1332# AltiVec flags: The FSF version of GCC differs from the Apple version
cc6a90dd 1333if test $arch = "powerpc"; then
b6e52719 1334 if test $altivec = "yes"; then
b2924696 1335 if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
30a3e5d4 1336 add_cflags "-faltivec"
b6e52719 1337 else
30a3e5d4 1338 add_cflags "-maltivec -mabi=altivec"
b6e52719
MD
1339 fi
1340 fi
1341fi
1342
0701ca7f 1343check_header altivec.h
a9a07762 1344
29799f8b 1345# check if our compiler supports Motorola AltiVec C API
ab6c65f6 1346if test $altivec = "yes"; then
6e7a01e4 1347 if test $altivec_h = "yes"; then
f25fc9b1
MR
1348 inc_altivec_h="#include <altivec.h>"
1349 else
1350 inc_altivec_h=
1351 fi
1352 check_cc <<EOF || altivec=no
dcd479c0 1353$inc_altivec_h
a9a07762
MN
1354int main(void) {
1355 vector signed int v1, v2, v3;
1356 v1 = vec_add(v2,v3);
1357 return 0;
1358}
1359EOF
1360fi
ab6c65f6 1361
854fdb51 1362# check armv5te instructions support
cc6a90dd 1363if test $armv5te = "default" -a $arch = "armv4l"; then
854fdb51
MR
1364 armv5te=no
1365 check_cc <<EOF && armv5te=yes
1366 int main(void) {
1367 __asm__ __volatile__ ("qadd r0, r0, r0");
1368 }
1369EOF
1370fi
1371
1372# check iwmmxt support
cc6a90dd 1373if test $iwmmxt = "default" -a $arch = "armv4l"; then
854fdb51
MR
1374 iwmmxt=no
1375 check_cc <<EOF && iwmmxt=yes
1376 int main(void) {
1377 __asm__ __volatile__ ("wunpckelub wr6, wr4");
1378 }
1379EOF
1380fi
1381
29799f8b 1382# mmi only available on mips
d46aba26 1383if test $mmi = "default"; then
cc6a90dd 1384 if test $arch = "mips"; then
d46aba26
LS
1385 mmi="yes"
1386 else
1387 mmi="no"
1388 fi
1389fi
1390
29799f8b 1391# check if our compiler supports mmi
57bd82d4 1392enabled mmi && check_cc <<EOF || mmi="no"
d46aba26
LS
1393int main(void) {
1394 __asm__ ("lq \$2, 0(\$2)");
1395 return 0;
1396}
1397EOF
57bd82d4 1398
57bd82d4
MR
1399# ---
1400# big/little-endian test
fac252f9 1401if test "$cross_compile" = "no"; then
57bd82d4 1402 check_ld <<EOF || die "endian test failed" && $TMPE && bigendian="yes"
a3999908
MN
1403#include <inttypes.h>
1404int main(int argc, char ** argv){
bb270c08
DB
1405 volatile uint32_t i=0x01234567;
1406 return (*((uint8_t*)(&i))) == 0x67;
a3999908
MN
1407}
1408EOF
487a54d7 1409else
f25fc9b1 1410 # programs cannot be launched if cross compiling, so make a static guess
cc6a90dd 1411 if test "$arch" = "powerpc" -o "$arch" = "mips" ; then
f25fc9b1
MR
1412 bigendian="yes"
1413 fi
487a54d7
FB
1414fi
1415
a3999908 1416# ---
3d204385
NK
1417# check availability of some header files
1418
0701ca7f
MR
1419check_header malloc.h
1420check_func memalign
3d204385 1421
1981aafc 1422if test "$memalign" = "no" -a "$mmx" = "yes" -a \
9ddbcae6 1423 "$memalign_hack" != "yes" -a "$targetos" != "Darwin" -a \
a9907393 1424 "$targetos" != "FreeBSD" ; then
57bd82d4 1425 die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
8bf5d58f
MN
1426fi
1427
0701ca7f 1428check_header byteswap.h
47d23bbf 1429
0701ca7f
MR
1430check_func inet_aton
1431check_func localtime_r
57bd82d4 1432enabled zlib && check_lib zlib.h zlibVersion -lz || zlib="no"
57bd82d4
MR
1433
1434# check for some common methods of building with pthread support
1435# do this before the optional library checks as some of them require pthreads
1436if enabled pthreads; then
1437 { check_cflags -pthread && check_ldflags -pthread; } ||
1438 { check_cflags -pthreads && check_ldflags -pthreads; } ||
1439 check_lib pthread.h pthread_create -lpthread ||
1440 check_func pthread_create ||
1441 die "ERROR: can't find pthreads library"
1442fi
1443
1444# these are off by default, so fail if requested and not available
4cbed916 1445enabled dts && require libdts dts.h dts_init -ldts -lm
57bd82d4 1446enabled libgsm && require libgsm gsm.h gsm_create -lgsm
4cbed916 1447enabled mp3lame && require LAME lame/lame.h lame_init -lmp3lame -lm
be74741c 1448enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc -logg
aedf11f8 1449enabled libogg && require libogg ogg/ogg.h ogg_sync_init -logg
4d8aa1c3 1450enabled libnut && require libnut libnut.h nut_demuxer_init -lnut
57bd82d4
MR
1451enabled xvid && require XviD xvid.h xvid_global -lxvidcore
1452enabled x264 && require x264 x264.h x264_encoder_open -lx264
1453enabled dc1394 && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394
bde24d6e 1454enabled mlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
e0f80bd7 1455
3b9bee88
MR
1456# Ugh, faac uses stdcall calling convention on win32 so we can't use
1457# the generic test functions
1458if enabled faac; then
1459 save_flags
1460 temp_extralibs -lfaac
1461 check_ld <<EOF && add_extralibs -lfaac || die "ERROR: libfaac not found"
1462#include <stdint.h>
1463#include <faac.h>
1464int main(){
1465 char *id, *cpr;
1466 faacEncGetVersion(&id, &cpr);
1467 return 0;
1468}
1469EOF
1470 restore_flags
1471fi
1472
87f1c97e
MR
1473# Ugh, recent faad2 versions have renamed all functions and #define the
1474# old names in faad.h. Generic tests won't work.
1475if enabled faad; then
1476 save_flags
1477 temp_extralibs -lfaad
1478 check_ld <<EOF && add_extralibs -lfaad || die "ERROR: libfaad not found"
1479#include <faad.h>
1480int main(){
1481 faacDecOpen();
1482 return 0;
1483}
1484EOF
1485 restore_flags
1486fi
1487
8ac17293
SH
1488# Ugh, avisynth uses WINAPI calls. Generic tests won't work.
1489if enabled avisynth; then
1490 save_flags
1491 temp_extralibs -lvfw32
1492 check_ld <<EOF && add_extralibs -lvfw32 || die "ERROR: vfw32 not found"
1493#include <windows.h>
1494#include <vfw.h>
1495int main(){
1496 AVIFileInit();
1497 return 0;
1498}
1499EOF
1500 restore_flags
1501fi
1502
1503
95e2ce4a 1504# test for lrintf in math.h
fc2b267f 1505check_exec <<EOF && lrintf=yes || lrintf=no
95e2ce4a
MN
1506#define _ISOC9X_SOURCE 1
1507#include <math.h>
1508int main( void ) { return (lrintf(3.999f) > 0)?0:1; }
1509EOF
1510
c13e1abd
FH
1511_restrict=
1512for restrict_keyword in restrict __restrict__ __restrict; do
57bd82d4 1513 check_cc <<EOF && _restrict=$restrict_keyword && break
dcd479c0
MR
1514void foo(char * $restrict_keyword p);
1515EOF
c13e1abd
FH
1516done
1517
a8721c09
FB
1518# dlopen/dlfcn.h probing
1519
0701ca7f 1520check_header dlfcn.h
a8721c09 1521
dcd479c0 1522if check_func dlopen; then
dcd479c0 1523 ldl=
0701ca7f
MR
1524elif check_func dlopen -ldl; then
1525 ldl=-ldl
a8721c09
FB
1526fi
1527
f25fc9b1
MR
1528if test "$vhook" = "default"; then
1529 vhook="$dlopen"
a8721c09
FB
1530fi
1531
22df6d18 1532if enabled_any vhook a52bin faadbin; then
57bd82d4 1533 add_extralibs $ldl
bfd2edeb
MN
1534fi
1535
fbb9d104
VP
1536if test "$targetos" = "CYGWIN" -a "$lstatic" = "yes" ; then
1537 vhook="no"
1538 echo
1539 echo "At the moment vhooks don't work on Cygwin static builds."
1540 echo "Patches welcome."
1541 echo
1542fi
1543
8d923001
MR
1544if enabled vhook; then
1545 check_ldflags -rdynamic
1546 check_ldflags -export-dynamic
1547fi
bfd2edeb 1548
9464f2b8
DB
1549if enabled audio_beos; then
1550 add_extralibs "-lmedia -lbe"
1551fi
1552
a86b921c 1553##########################################
29799f8b 1554# imlib check
a86b921c 1555
dcd479c0
MR
1556temp_extralibs -lImlib2
1557check_ld <<EOF && imlib2=yes || imlib2=no
a8721c09
FB
1558#include <X11/Xlib.h>
1559#include <Imlib2.h>
1560int main( void ) { return (int) imlib_load_font("foo"); }
1561EOF
dcd479c0 1562restore_flags
52b41d7f 1563
a86b921c 1564##########################################
29799f8b 1565# FreeType check
a86b921c 1566
04511d53 1567freetype2=no
e2a5fd20 1568if test "x$targetos" != "xBeOS"; then
e2a3cd59 1569 if (freetype-config --version) >/dev/null 2>&1 ; then
dcd479c0
MR
1570 temp_cflags `freetype-config --cflags`
1571 temp_extralibs `freetype-config --libs`
1572 check_ld <<EOF && freetype2=yes
1573#include <ft2build.h>
1574int main( void ) { return (int) FT_Init_FreeType(0); }
1575EOF
1576 restore_flags
dee076fc 1577 fi
04511d53
PG
1578fi
1579
a86b921c 1580##########################################
29799f8b 1581# SDL check
a86b921c 1582
a86b921c
FB
1583sdl_too_old=no
1584sdl=no
6a1a892f
FD
1585SDL_CONFIG="${cross_prefix}sdl-config"
1586if ("${SDL_CONFIG}" --version) >/dev/null 2>&1 ; then
dcd479c0
MR
1587 temp_cflags `"${SDL_CONFIG}" --cflags`
1588 temp_extralibs `"${SDL_CONFIG}" --libs`
1589 check_ld <<EOF
1590#include <SDL.h>
1591#undef main /* We don't want SDL to override our main() */
1592int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
1593EOF
dcd479c0
MR
1594 if test $? = 0; then
1595 _sdlversion=`"${SDL_CONFIG}" --version | sed 's/[^0-9]//g'`
29f3b38a 1596 if test "$_sdlversion" -lt 121 ; then
dcd479c0
MR
1597 sdl_too_old=yes
1598 else
1599 sdl=yes
29f3b38a
MR
1600 check_cc <<EOF && sdl_video_size=yes || sdl_video_size=no
1601#include <SDL.h>
1602int main(void){
1603 const SDL_VideoInfo *vi = SDL_GetVideoInfo();
1604 int w = vi->current_w;
1605 return 0;
1606}
1607EOF
dcd479c0
MR
1608 fi
1609 fi
29f3b38a 1610 restore_flags
c3f6b472 1611fi
a86b921c 1612
57bd82d4
MR
1613enabled sdl || ffplay=no
1614
146ea952 1615##########################################
29799f8b 1616# texi2html check
146ea952
NB
1617
1618texi2html=no
e2a3cd59 1619if (texi2html -version) >/dev/null 2>&1; then
146ea952
NB
1620texi2html=yes
1621fi
1622
7a91333f 1623##########################################
29799f8b 1624# IPv6 check
7a91333f 1625
0c7bb0e5 1626enabled network && enabled ipv6 && check_ld <<EOF && ipv6=yes || ipv6=no
7a91333f
HZ
1627#include <sys/types.h>
1628#include <sys/socket.h>
1629#include <netinet/in.h>
1630#include <netdb.h>
1631int main( void ) {
1632 struct sockaddr_storage saddr;
1633 struct ipv6_mreq mreq6;
1634 getaddrinfo(0,0,0,0);
1635 getnameinfo(0,0,0,0,0,0,0);
12fe88b4 1636 IN6_IS_ADDR_MULTICAST((const struct in6_addr *)0);
7a91333f
HZ
1637}
1638EOF
1639
47f38850 1640# check for video4linux2 --- V4L2_PIX_FMT_YUV420
9d2a0f1c 1641enabled video4linux2 && check_cc <<EOF || video4linux2="no"
84fe9963 1642#include <sys/time.h>
f743a062
LA
1643#include <asm/types.h>
1644#include <linux/videodev2.h>
47f38850 1645int dummy = V4L2_PIX_FMT_YUV420;
490c189b 1646struct v4l2_buffer dummy1;
47f38850 1647EOF
47f38850 1648
57bd82d4
MR
1649enabled debug && add_cflags -g
1650
1651# add some useful compiler flags if supported
1652check_cflags -Wdeclaration-after-statement
dcd479c0
MR
1653check_cflags -Wall
1654check_cflags -Wno-switch
c07bd6a9
MN
1655check_cflags -Wdisabled-optimization
1656check_cflags -Wpointer-arith
1657check_cflags -Wredundant-decls
78fcba8f 1658enabled extrawarnings && check_cflags -Winline
cf9d24ad 1659
57bd82d4 1660# add some linker flags
e240ee67 1661check_ldflags $LDLATEFLAGS
94a3401e 1662
57bd82d4
MR
1663# not all compilers support -Os
1664test "$optimize" = "small" && check_cflags -Os
cddf3f45 1665
57bd82d4 1666if enabled optimize; then
b2924696 1667 if test -n "`$cc -v 2>&1 | grep xlc`"; then
30a3e5d4
NP
1668 add_cflags "-O5"
1669 add_ldflags "-O5"
cf9d24ad 1670 else
30a3e5d4 1671 add_cflags "-O3"
cf9d24ad 1672 fi
cddf3f45
GM
1673fi
1674
80581e98
MN
1675# PIC flags for shared library objects where they are needed
1676if test "$lshared" = "yes" ; then
f25fc9b1
MR
1677 # LIBOBJFLAGS may have already been set in the OS configuration
1678 if test -z "$LIBOBJFLAGS" ; then
cc6a90dd 1679 case "$arch" in
813457e5
MR
1680 x86_64|ia64|alpha|sparc*) LIBOBJFLAGS="\$(PIC)" ;;
1681 esac
80581e98 1682 fi
80581e98
MN
1683fi
1684
1db54e20 1685if test "$gprof" = "yes" ; then
30a3e5d4
NP
1686 add_cflags "-p"
1687 add_ldflags "-p"
1db54e20
DB
1688fi
1689
18451f7d
MR
1690VHOOKCFLAGS="-fPIC $CFLAGS"
1691test "$needmdynamicnopic" = yes && add_cflags -mdynamic-no-pic
1692
4454dc1b
JD
1693# find if .align arg is power-of-two or not
1694if test $asmalign_pot = "unknown"; then
1695 asmalign_pot="no"
1696 echo 'asm (".align 3");' | check_cc && asmalign_pot="yes"
1697fi
1698
2266e085 1699echo "install prefix $PREFIX"
29799f8b 1700echo "source path $source_path"
de6d9b64 1701echo "C compiler $cc"
4a908fbc 1702echo "make $make"
38d0a8aa 1703echo "ARCH $arch ($cpu)"
eb94aca9 1704if test "$BUILDSUF" != ""; then
f25fc9b1 1705 echo "build suffix $BUILDSUF"
eb94aca9 1706fi
29799f8b 1707echo "big-endian $bigendian"
419b8784 1708if test $arch = "x86_32" -o $arch = "x86_64"; then
f25fc9b1 1709 echo "MMX enabled $mmx"
e7768fc5 1710 echo "CMOV enabled $cmov"
94e4c3a3 1711 echo "CMOV is fast $cmov_is_fast"
e41e8342 1712fi
cc6a90dd 1713if test $arch = "armv4l"; then
1839e854 1714 echo "ARMv5TE enabled $armv5te"
f25fc9b1 1715 echo "IWMMXT enabled $iwmmxt"
eba9ae3c 1716fi
cc6a90dd 1717if test $arch = "mips"; then
f25fc9b1 1718 echo "MMI enabled $mmi"
e41e8342 1719fi
cc6a90dd 1720if test $arch = "powerpc"; then
f25fc9b1 1721 echo "AltiVec enabled $altivec"
87ea51e0 1722 echo "dcbzl available $dcbzl"
e41e8342 1723fi
de6d9b64 1724echo "gprof enabled $gprof"
0147f198 1725echo "zlib enabled $zlib"
bb4c2140 1726echo "libgsm enabled $libgsm"
a6741398 1727echo "mp3lame enabled $mp3lame"
f956e129 1728echo "libnut enabled $libnut"
9146ca37 1729echo "libogg enabled $libogg"
be74741c 1730echo "Vorbis enabled $libvorbis"
29799f8b 1731echo "FAAD enabled $faad"
445ad18d 1732echo "faadbin enabled $faadbin"
29799f8b
DB
1733echo "FAAC enabled $faac"
1734echo "XviD enabled $xvid"
6662ec29 1735echo "x264 enabled $x264"
5cbcf02c 1736echo "a52 support $a52"
57514323 1737echo "a52 dlopened $a52bin"
29799f8b 1738echo "DTS support $dts"
bba9b16c 1739echo "pp support $pp"
790c9ca7 1740echo "Software Scaler enabled $swscaler"
8ac17293 1741echo "AVISynth enabled $avisynth"
cddf3f45 1742echo "debug symbols $debug"
65d1bea2 1743echo "strip symbols $dostrip"
cddf3f45 1744echo "optimize $optimize"
320d060a 1745echo "static $lstatic"
1ddf5ba1 1746echo "shared $lshared"
29799f8b 1747echo "video hooking $vhook"
a86b921c
FB
1748echo "SDL support $sdl"
1749if test $sdl_too_old = "yes"; then
f25fc9b1 1750 echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support."
a86b921c 1751fi
68892110 1752
f25fc9b1
MR
1753if test "$vhook" = "yes"; then
1754 echo "Imlib2 support $imlib2"
1755 echo "FreeType support $freetype2"
68892110 1756fi
bde24d6e 1757echo "Sun medialib support" $mlib
9c3d33d6 1758echo "pthreads support" $pthreads
bc634f6f
ZK
1759echo "AMR-NB float support" $amr_nb
1760echo "AMR-NB fixed support" $amr_nb_fixed
d663a1fd 1761echo "AMR-WB float support" $amr_wb
2a515c08 1762echo "AMR-WB IF2 support" $amr_if2
7a91333f
HZ
1763echo "network support $network"
1764if test "$network" = "yes" ; then
f25fc9b1 1765 echo "IPv6 support $ipv6"
7a91333f 1766fi
4454dc1b 1767echo ".align is power-of-two" $asmalign_pot
b2e3c528 1768if test "$gpl" = "no" ; then
f25fc9b1 1769 echo "License: LGPL"
b2e3c528 1770else
f25fc9b1 1771 echo "License: GPL"
b2e3c528 1772fi
de6d9b64 1773
29799f8b 1774echo "Creating config.mak and config.h..."
de6d9b64 1775
f255e0ab
MB
1776date >> config.log
1777echo " $0 $FFMPEG_CONFIGURATION" >> config.log
29799f8b
DB
1778echo "# Automatically generated by configure - do not modify!" > config.mak
1779echo "/* Automatically generated by configure - do not modify! */" > $TMPH
f255e0ab 1780echo "#define FFMPEG_CONFIGURATION "'"'"$FFMPEG_CONFIGURATION"'"' >> $TMPH
de6d9b64 1781
2266e085
DB
1782echo "PREFIX=$PREFIX" >> config.mak
1783echo "prefix=\$(DESTDIR)\${PREFIX}" >> config.mak
9a695e98 1784echo "libdir=\$(DESTDIR)$libdir" >> config.mak
84c22efd 1785echo "shlibdir=\$(DESTDIR)$shlibdir" >> config.mak
1d67a1d4 1786echo "incdir=\$(DESTDIR)$incdir" >> config.mak
9a695e98
DB
1787echo "bindir=\$(DESTDIR)$bindir" >> config.mak
1788echo "mandir=\$(DESTDIR)$mandir" >> config.mak
4a908fbc 1789echo "MAKE=$make" >> config.mak
980fc7b8
FB
1790echo "CC=$cc" >> config.mak
1791echo "AR=$ar" >> config.mak
be7109c1 1792echo "RANLIB=$ranlib" >> config.mak
65d1bea2 1793if test "$dostrip" = "yes" ; then
f25fc9b1
MR
1794 echo "STRIP=$strip" >> config.mak
1795 echo "INSTALLSTRIP=$installstrip" >> config.mak
65d1bea2 1796else
f25fc9b1
MR
1797 echo "STRIP=echo ignoring strip" >> config.mak
1798 echo "INSTALLSTRIP=" >> config.mak
65d1bea2 1799fi
75388c74 1800
a9b3f630 1801echo "OPTFLAGS=$CFLAGS" >> config.mak
408382a4 1802echo "VHOOKCFLAGS=$VHOOKCFLAGS">>config.mak
0f3cb305 1803echo "LDFLAGS=$LDFLAGS" >> config.mak
f39e56a8 1804echo "LDCONFIG=$LDCONFIG" >> config.mak
c536cb09 1805echo "FFSERVERLDFLAGS=$FFSERVERLDFLAGS" >> config.mak
e1707f52 1806echo "SHFLAGS=$SHFLAGS" >> config.mak
408382a4 1807echo "VHOOKSHFLAGS=$VHOOKSHFLAGS" >> config.mak
fbb9d104 1808echo "VHOOKLIBS=$VHOOKLIBS" >> config.mak
80581e98 1809echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak
b12f8273 1810echo "BUILD_STATIC=$lstatic" >> config.mak
eb94aca9 1811echo "BUILDSUF=$BUILDSUF" >> config.mak
f3ec2d46 1812echo "LIBPREF=$LIBPREF" >> config.mak
eb94aca9 1813echo "LIBSUF=\${BUILDSUF}$LIBSUF" >> config.mak
320d060a
DB
1814if test "$lstatic" = "yes" ; then
1815 echo "LIB=$LIB" >> config.mak
1a44a8b6
AS
1816else # Some Make complain if this variable does not exist.
1817 echo "LIB=" >> config.mak
320d060a 1818fi
f3ec2d46 1819echo "SLIBPREF=$SLIBPREF" >> config.mak
eb94aca9
CY
1820echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
1821echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
b2828252 1822echo "TARGET_OS=$targetos" >> config.mak
419b8784 1823if test "$arch" = "x86_32" -o "$arch" = "x86_64" ; then
980fc7b8 1824 echo "TARGET_ARCH_X86=yes" >> config.mak
045ed63f 1825 echo "#define ARCH_X86 1" >> $TMPH
419b8784
DB
1826fi
1827if test "$arch" = "x86_32" ; then
1828 echo "TARGET_ARCH_X86_32=yes" >> config.mak
1829 echo "#define ARCH_X86_32 1" >> $TMPH
cc6a90dd 1830elif test "$arch" = "x86_64" ; then
053dea12
AJ
1831 echo "TARGET_ARCH_X86_64=yes" >> config.mak
1832 echo "#define ARCH_X86_64 1" >> $TMPH
cc6a90dd 1833elif test "$arch" = "armv4l" ; then
6ed7422a 1834 echo "TARGET_ARCH_ARMV4L=yes" >> config.mak
045ed63f 1835 echo "#define ARCH_ARMV4L 1" >> $TMPH
cc6a90dd 1836elif test "$arch" = "alpha" ; then
91d1f1a4 1837 echo "TARGET_ARCH_ALPHA=yes" >> config.mak
045ed63f 1838 echo "#define ARCH_ALPHA 1" >> $TMPH
cc6a90dd 1839elif test "$arch" = "sparc64" ; then
35fedfc3
PG
1840 echo "TARGET_ARCH_SPARC64=yes" >> config.mak
1841 echo "#define ARCH_SPARC64 1" >> $TMPH
bb476ff3
JM
1842 echo "TARGET_ARCH_SPARC=yes" >> config.mak
1843 echo "#define ARCH_SPARC 1" >> $TMPH
cc6a90dd 1844elif test "$arch" = "sparc" ; then
bb476ff3
JM
1845 echo "TARGET_ARCH_SPARC=yes" >> config.mak
1846 echo "#define ARCH_SPARC 1" >> $TMPH
cc6a90dd 1847elif test "$arch" = "powerpc" ; then
0f3cb305
FB
1848 echo "TARGET_ARCH_POWERPC=yes" >> config.mak
1849 echo "#define ARCH_POWERPC 1" >> $TMPH
9007f514
RD
1850 if test $POWERPCMODE = "32bits"; then
1851 echo "#define POWERPC_MODE_32BITS 1" >> $TMPH
1852 else
1853 echo "#define POWERPC_MODE_64BITS 1" >> $TMPH
1854 fi
e45a2872
RD
1855 if test "$powerpc_perf" = "yes"; then
1856 echo "#define POWERPC_PERFORMANCE_REPORT 1" >> $TMPH
1857 fi
cc6a90dd 1858elif test "$arch" = "mips" ; then
d46aba26
LS
1859 echo "TARGET_ARCH_MIPS=yes" >> config.mak
1860 echo "#define ARCH_MIPS 1" >> $TMPH
cc6a90dd 1861elif test "$arch" = "sh4" ; then
bdb2e37c
AB
1862 echo "TARGET_ARCH_SH4=yes" >> config.mak
1863 echo "#define ARCH_SH4 1" >> $TMPH
cc6a90dd 1864elif test "$arch" = "parisc" ; then
67860b26
SH
1865 echo "TARGET_ARCH_PARISC=yes" >> config.mak
1866 echo "#define ARCH_PARISC 1" >> $TMPH
cc6a90dd 1867elif test "$arch" = "s390" ; then
67860b26
SH
1868 echo "TARGET_ARCH_S390=yes" >> config.mak
1869 echo "#define ARCH_S390 1" >> $TMPH
cc6a90dd 1870elif test "$arch" = "m68k" ; then
67860b26
SH
1871 echo "TARGET_ARCH_M68K=yes" >> config.mak
1872 echo "#define ARCH_M68K 1" >> $TMPH
cc6a90dd 1873elif test "$arch" = "ia64" ; then
67860b26
SH
1874 echo "TARGET_ARCH_IA64=yes" >> config.mak
1875 echo "#define ARCH_IA64 1" >> $TMPH
cc6a90dd 1876elif test "$arch" = "bfin" ; then
81a9b052
MB
1877 echo "TARGET_ARCH_BFIN=yes" >> config.mak
1878 echo "#define ARCH_BFIN 1" >> $TMPH
bdb2e37c 1879fi
a4adb608 1880echo "#define TUNECPU $TUNECPU" >> $TMPH
0f3cb305
FB
1881if test "$bigendian" = "yes" ; then
1882 echo "WORDS_BIGENDIAN=yes" >> config.mak
1883 echo "#define WORDS_BIGENDIAN 1" >> $TMPH
91d1f1a4 1884fi
57514323 1885if test "$mmx" = "yes" ; then
980fc7b8 1886 echo "TARGET_MMX=yes" >> config.mak
045ed63f 1887 echo "#define HAVE_MMX 1" >> $TMPH
e82c5a8c 1888 echo "#define __CPU__ 586" >> $TMPH
de6d9b64 1889fi
e7768fc5
GP
1890if test "$cmov" = "yes" ; then
1891 echo "TARGET_CMOV=yes" >> config.mak
1892 echo "#define HAVE_CMOV 1" >> $TMPH
1893fi
94e4c3a3
GP
1894if test "$cmov_is_fast" = "yes" ; then
1895 echo "TARGET_CMOV_IS_FAST=yes" >> config.mak
1896 echo "#define CMOV_IS_FAST 1" >> $TMPH
1897fi
1839e854
SS
1898if test "$armv5te" = "yes" ; then
1899 echo "TARGET_ARMV5TE=yes" >> config.mak
1900 echo "#define HAVE_ARMV5TE 1" >> $TMPH
1901fi
eba9ae3c
GB
1902if test "$iwmmxt" = "yes" ; then
1903 echo "TARGET_IWMMXT=yes" >> config.mak
1904 echo "#define HAVE_IWMMXT 1" >> $TMPH
1905fi
d46aba26
LS
1906if test "$mmi" = "yes" ; then
1907 echo "TARGET_MMI=yes" >> config.mak
1908 echo "#define HAVE_MMI 1" >> $TMPH
1909fi
87ea51e0 1910
ab6c65f6
BF
1911if test "$altivec" = "yes" ; then
1912 echo "TARGET_ALTIVEC=yes" >> config.mak
1913 echo "#define HAVE_ALTIVEC 1" >> $TMPH
f80f7964 1914fi
44161118 1915
a86b921c 1916if test "$sdl" = "yes" ; then
6a1a892f
FD
1917 echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak
1918 echo "SDL_CFLAGS=`"${SDL_CONFIG}" --cflags`" >> config.mak
a86b921c 1919fi
146ea952
NB
1920if test "$texi2html" = "yes"; then
1921 echo "BUILD_DOC=yes" >> config.mak
1922fi
5a872801 1923
790c9ca7 1924sws_version=`grep '#define LIBSWSCALE_VERSION ' "$source_path/libswscale/swscale.h" | sed 's/[^0-9\.]//g'`
6d9a2421 1925pp_version=`grep '#define LIBPOSTPROC_VERSION ' "$source_path/libpostproc/postprocess.h" | sed 's/[^0-9\.]//g'`
5a872801
LB
1926lavc_version=`grep '#define LIBAVCODEC_VERSION ' "$source_path/libavcodec/avcodec.h" | sed 's/[^0-9\.]//g'`
1927lavf_version=`grep '#define LIBAVFORMAT_VERSION ' "$source_path/libavformat/avformat.h" | sed 's/[^0-9\.]//g'`
1928lavu_version=`grep '#define LIBAVUTIL_VERSION ' "$source_path/libavutil/avutil.h" | sed 's/[^0-9\.]//g'`
1929
1930
1931
57514323 1932if test "$lshared" = "yes" ; then
320d060a 1933 echo "#define BUILD_SHARED_AV 1" >> $TMPH
0319c531 1934 echo "BUILD_SHARED=yes" >> config.mak
97006039 1935 echo "PIC=-fPIC -DPIC" >> config.mak
39503a27 1936 echo "SPPMAJOR=${lavc_version%%.*}" >> config.mak
5a872801 1937 echo "SPPVERSION=$lavc_version" >> config.mak
39503a27 1938 echo "LAVCMAJOR=${lavc_version%%.*}" >> config.mak
5a872801 1939 echo "LAVCVERSION=$lavc_version" >> config.mak
39503a27 1940 echo "LAVFMAJOR=${lavf_version%%.*}" >> config.mak
5a872801 1941 echo "LAVFVERSION=$lavf_version" >> config.mak
39503a27 1942 echo "LAVUMAJOR=${lavu_version%%.*}" >> config.mak
5a872801 1943 echo "LAVUVERSION=$lavu_version" >> config.mak
790c9ca7
LA
1944 echo "SWSMAJOR=${sws_version%%.*}" >> config.mak
1945 echo "SWSVERSION=$sws_version" >> config.mak
4bdd05e7 1946 echo "SLIBNAME=${SLIBNAME}" >> config.mak
f3b60109
DB
1947 echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak
1948 echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
5cb854e1 1949 echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak
0319c531 1950fi
d7e27559 1951echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak
ef0bc4c9 1952echo "EXTRALIBS=$extralibs" >> config.mak
d2845d68 1953
44161118
MR
1954enabled_any $ENCODER_LIST && enable encoders
1955enabled_any $DECODER_LIST && enable decoders
1956enabled_any $MUXER_LIST && enable muxers
1957enabled_any $DEMUXER_LIST && enable demuxers
f956e129 1958
b265431e
MR
1959enabled_any pthreads beosthreads os2threads w32threads && enable threads
1960
44161118
MR
1961print_config HAVE_ $TMPH config.mak $HAVE_LIST
1962print_config CONFIG_ $TMPH config.mak $CONFIG_LIST
8ac17293 1963
b2828252 1964if test "$targetos" = "Darwin"; then
90cee0c3 1965 echo "#define CONFIG_DARWIN 1" >> $TMPH
90cee0c3
MN
1966fi
1967
c13e1abd
FH
1968echo "#define restrict $_restrict" >> $TMPH
1969
bb801c97
MN
1970if test "$optimize" = "small"; then
1971 echo "#define always_inline" >> $TMPH
e5f28e8f 1972 echo "#define CONFIG_SMALL 1" >> $TMPH
bb801c97
MN
1973fi
1974
997baf01
MR
1975echo "SRC_PATH=\"$source_path\"" >> config.mak
1976echo "SRC_PATH_BARE=$source_path" >> config.mak
1977echo "BUILD_ROOT=\"$PWD\"" >> config.mak
0f3cb305 1978
2a515c08
TM
1979if test "$amr_if2" = "yes" ; then
1980 echo "AMR_CFLAGS=-DIF2=1" >> config.mak
1981fi
1982
8156056e 1983# Apparently it's not possible to portably echo a backslash.
4454dc1b 1984if test "$asmalign_pot" = "yes" ; then
8156056e 1985 printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH
4454dc1b 1986else
8156056e 1987 printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH
4454dc1b
JD
1988fi
1989
bc634f6f 1990
55006fc0 1991for codec in $DECODER_LIST $ENCODER_LIST $PARSER_LIST $DEMUXER_LIST $MUXER_LIST; do
44161118 1992 ucname="`toupper $codec`"
a8d04fba
MR
1993 config_name="CONFIG_$ucname"
1994 enabled_name="ENABLE_$ucname"
1995 if enabled $codec; then
1996 echo "#define $config_name 1" >> $TMPH
1997 echo "#define $enabled_name 1" >> $TMPH
1998 echo "$config_name=yes" >> config.mak
1999 else
2000 echo "#define $enabled_name 0" >> $TMPH
2001 fi
009cf97d
MN
2002done
2003
9cb2cf10 2004# Do not overwrite config.h if unchanged to avoid superfluous rebuilds.
c683a5d1 2005if ! cmp -s $TMPH config.h; then
9cb2cf10
DB
2006 mv -f $TMPH config.h
2007else
2008 echo "config.h is unchanged"
2009fi
3d204385 2010
f3ec2d46 2011rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
def4272a 2012
165af439
MR
2013# build tree in object directory if source path is different from current one
2014if test "$source_path_used" = "yes" ; then
2015 DIRS="\
2016 doc \
2017 libavformat \
2018 libavcodec \
2019 libavcodec/alpha \
2020 libavcodec/armv4l \
2021 libavcodec/bfin \
2022 libavcodec/i386 \
2023 libavcodec/sparc \
2024 libavcodec/mlib \
2025 libavcodec/ppc \
2026 libavcodec/liba52 \
2027 libpostproc \
2028 libavutil \
2029 libswscale \
2030 tests \
2031 vhook \
2032 "
2033 FILES="\
2034 Makefile \
2035 common.mak \
2036 libavformat/Makefile \
2037 libavcodec/Makefile \
2038 libpostproc/Makefile \
2039 libavutil/Makefile \
2040 libswscale/Makefile \
2041 tests/Makefile \
2042 vhook/Makefile \
2043 doc/Makefile \
2044 doc/texi2pod.pl \
2045 "
2046 for dir in $DIRS ; do
2047 mkdir -p $dir
2048 done
2049 for f in $FILES ; do
2050 ln -sf "$source_path/$f" $f
2051 done
2052fi
def4272a 2053
29799f8b 2054# build pkg-config files libav*.pc and libpostproc.pc
31abdc45 2055# libavutil.pc
2056cat <<EOF >libavutil.pc
2266e085 2057prefix=$PREFIX
a94e666c 2058exec_prefix=\${prefix}
31abdc45 2059libdir=\${exec_prefix}/lib
a94e666c 2060includedir=\${prefix}/include
31abdc45 2061
2062Name: libavutil
2063Description: FFmpeg utility library
2064Version: $lavu_version
115329f1 2065Requires:
31abdc45 2066Conflicts:
2067Libs: -L\${libdir} -lavutil
2068Cflags: -I\${includedir} -I\${includedir}/ffmpeg
2069EOF
2070
2071cat <<EOF >libavutil-uninstalled.pc
2072prefix=
2073exec_prefix=
2074libdir=\${pcfiledir}/libavutil
2075includedir=\${pcfiledir}/libavutil
2076
2077Name: libavutil
2078Description: FFmpeg utility library
2079Version: $lavu_version
115329f1 2080Requires:
31abdc45 2081Conflicts:
2082Libs: \${libdir}/${LIBPREF}avutil${LIBSUF}
2083Cflags: -I\${includedir}
2084EOF
def4272a
AJ
2085
2086# libavcodec.pc
2087cat <<EOF >libavcodec.pc
2266e085 2088prefix=$PREFIX
a94e666c 2089exec_prefix=\${prefix}
def4272a 2090libdir=\${exec_prefix}/lib
a94e666c 2091includedir=\${prefix}/include
def4272a
AJ
2092
2093Name: libavcodec
2094Description: FFmpeg codec library
31abdc45 2095Version: $lavc_version
c99dd233 2096Requires: $pkg_requires libavutil = $lavu_version
def4272a
AJ
2097Conflicts:
2098Libs: -L\${libdir} -lavcodec $extralibs
2099Cflags: -I\${includedir} -I\${includedir}/ffmpeg
2100EOF
2101
2102cat <<EOF >libavcodec-uninstalled.pc
2103prefix=
2104exec_prefix=
2105libdir=\${pcfiledir}/libavcodec
2106includedir=\${pcfiledir}/libavcodec
2107
2108Name: libavcodec
2109Description: FFmpeg codec library
31abdc45 2110Version: $lavc_version
c99dd233 2111Requires: $pkg_requires libavutil = $lavu_version
def4272a
AJ
2112Conflicts:
2113Libs: \${libdir}/${LIBPREF}avcodec${LIBSUF} $extralibs
2114Cflags: -I\${includedir}
2115EOF
2116
2117# libavformat.pc
2118cat <<EOF >libavformat.pc
2266e085 2119prefix=$PREFIX
a94e666c 2120exec_prefix=\${prefix}
def4272a 2121libdir=\${exec_prefix}/lib
a94e666c 2122includedir=\${prefix}/include
def4272a
AJ
2123
2124Name: libavformat
2125Description: FFmpeg container format library
31abdc45 2126Version: $lavf_version
c99dd233 2127Requires: $pkg_requires libavcodec = $lavc_version
def4272a
AJ
2128Conflicts:
2129Libs: -L\${libdir} -lavformat $extralibs
2130Cflags: -I\${includedir} -I\${includedir}/ffmpeg
2131EOF
2132
2133cat <<EOF >libavformat-uninstalled.pc
2134prefix=
2135exec_prefix=
2136libdir=\${pcfiledir}/libavformat
2137includedir=\${pcfiledir}/libavformat
2138
2139Name: libavformat
2140Description: FFmpeg container format library
31abdc45 2141Version: $lavf_version
c99dd233 2142Requires: $pkg_requires libavcodec = $lavc_version
def4272a
AJ
2143Conflicts:
2144Libs: \${libdir}/${LIBPREF}avformat${LIBSUF} $extralibs
2145Cflags: -I\${includedir}
2146EOF
2147
2148
2149# libpostproc.pc
2150cat <<EOF >libpostproc.pc
2266e085 2151prefix=$PREFIX
a94e666c 2152exec_prefix=\${prefix}
def4272a 2153libdir=\${exec_prefix}/lib
a94e666c 2154includedir=\${prefix}/include
def4272a
AJ
2155
2156Name: libpostproc
2157Description: FFmpeg post processing library
31abdc45 2158Version: $lavc_version
115329f1 2159Requires:
def4272a
AJ
2160Conflicts:
2161Libs: -L\${libdir} -lpostproc
2162Cflags: -I\${includedir} -I\${includedir}/postproc
2163EOF
2164
2165cat <<EOF >libpostproc-uninstalled.pc
2166prefix=
2167exec_prefix=
6d9a2421
DB
2168libdir=\${pcfiledir}/libpostproc
2169includedir=\${pcfiledir}/libpostproc
def4272a
AJ
2170
2171Name: libpostproc
2172Description: FFmpeg post processing library
31abdc45 2173Version: $lavc_version
115329f1 2174Requires:
def4272a
AJ
2175Conflicts:
2176Libs: \${libdir}/${LIBPREF}postproc${LIBSUF}
2177Cflags: -I\${includedir}
2178EOF
790c9ca7 2179
6c0d0413 2180if test "$swscaler" != "no"; then
2181 sws_pc_libs="-L\${libdir} -lswscale"
2182 sws_pc_uninstalled_libs="\${libdir}/${LIBPREF}swscale${LIBSUF}"
2183 sws_pc_requires="$pkg_requires libavutil = $lavu_version"
2184else
2185 sws_pc_libs=""
2186 sws_pc_uninstalled_libs=""
2187 sws_pc_requires="$pkg_requires libavcodec = $lavc_version"
2188fi
790c9ca7
LA
2189# libswscale.pc
2190cat <<EOF >libswscale.pc
2191prefix=$PREFIX
2192exec_prefix=\${prefix}
2193libdir=\${exec_prefix}/lib
2194includedir=\${prefix}/include
2195
2196Name: libswscale
2197Description: FFmpeg image rescaling library
2198Version: $sws_version
6c0d0413 2199Requires: $sws_pc_requires
790c9ca7 2200Conflicts:
6c0d0413 2201Libs: $sws_pc_libs
790c9ca7
LA
2202Cflags: -I\${includedir} -I\${includedir}/swscale
2203EOF
2204
2205cat <<EOF >libswscale-uninstalled.pc
2206prefix=
2207exec_prefix=
2208libdir=\${pcfiledir}/libswscale
2209includedir=\${pcfiledir}/libswscale
2210
2211Name: libswscale
2212Description: FFmpeg image rescaling library
2213Version: $sws_version
6c0d0413 2214Requires: $sws_pc_requires
790c9ca7 2215Conflicts:
6c0d0413 2216Libs: $sws_pc_uninstalled_libs
790c9ca7
LA
2217Cflags: -I\${includedir}
2218EOF