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