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