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