revert bad checkin
[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
411 freetype2
412 gprof
413 imlib2
414 localtime_r
415 lrintf
416 malloc_h
417 memalign
418 mlib
b265431e
MR
419 os2threads
420 pthreads
c88f5d72
MR
421 sdl
422 sdl_video_size
b265431e
MR
423 threads
424 w32threads
c88f5d72 425'
44161118 426
0f3cb305 427# set temporary file name
57514323 428if test ! -z "$TMPDIR" ; then
0f3cb305 429 TMPDIR1="${TMPDIR}"
57514323 430elif test ! -z "$TEMPDIR" ; then
0f3cb305 431 TMPDIR1="${TEMPDIR}"
3d204385 432else
0f3cb305 433 TMPDIR1="/tmp"
3d204385
NK
434fi
435
0f3cb305
FB
436TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
437TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
f3ec2d46 438TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}"
0f3cb305
FB
439TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
440TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"
441
de6d9b64 442# default parameters
720c69da 443logging="yes"
2ba042a7 444logfile="config.err"
2266e085
DB
445PREFIX="/usr/local"
446libdir='${PREFIX}/lib'
84c22efd 447shlibdir="$libdir"
2266e085
DB
448incdir='${PREFIX}/include/ffmpeg'
449mandir='${PREFIX}/man'
450bindir='${PREFIX}/bin'
0f3cb305 451cross_prefix=""
fac252f9 452cross_compile="no"
de6d9b64
FB
453cc="gcc"
454ar="ar"
be7109c1 455ranlib="ranlib"
4a908fbc 456make="make"
0f3cb305 457strip="strip"
cc6a90dd 458arch=`uname -m`
38d0a8aa 459cpu="generic"
e45a2872 460powerpc_perf="no"
0f3cb305 461mmx="default"
e7768fc5 462cmov="no"
94e4c3a3 463cmov_is_fast="no"
1839e854 464armv5te="default"
eba9ae3c 465iwmmxt="default"
ab6c65f6 466altivec="default"
87ea51e0 467dcbzl="no"
d46aba26 468mmi="default"
cc6a90dd 469case "$arch" in
ef0bc4c9 470 i386|i486|i586|i686|i86pc|BePC)
419b8784 471 arch="x86_32"
de6d9b64 472 ;;
7bf9648e 473 x86_64|amd64)
a63e5f1c 474 arch="x86_32"
32255f6c 475 canon_arch="`$cc -dumpmachine | sed -e 's,\([^-]*\)-.*,\1,'`"
7bf9648e
JM
476 if [ x"$canon_arch" = x"x86_64" -o x"$canon_arch" = x"amd64" ]; then
477 if [ -z "`echo $CFLAGS | grep -- -m32`" ]; then
cc6a90dd 478 arch="x86_64"
7bf9648e 479 fi
053dea12
AJ
480 fi
481 ;;
6dc7b6b3
DB
482 # armv4l is a subset of armv[567]*l
483 arm|armv[4567]*l)
cc6a90dd 484 arch="armv4l"
6ed7422a 485 ;;
91d1f1a4 486 alpha)
cc6a90dd 487 arch="alpha"
91d1f1a4 488 ;;
2645e80f 489 "Power Macintosh"|ppc|ppc64|powerpc)
cc6a90dd 490 arch="powerpc"
90cee0c3 491 ;;
b028a866 492 mips|mipsel|IP*)
cc6a90dd 493 arch="mips"
d46aba26 494 ;;
bb476ff3 495 sun4u|sparc64)
cc6a90dd 496 arch="sparc64"
a7beab73 497 ;;
bb476ff3 498 sparc)
cc6a90dd 499 arch="sparc"
bb476ff3 500 ;;
bdb2e37c 501 sh4)
cc6a90dd 502 arch="sh4"
bdb2e37c 503 ;;
67860b26 504 parisc|parisc64)
cc6a90dd 505 arch="parisc"
67860b26
SH
506 ;;
507 s390|s390x)
cc6a90dd 508 arch="s390"
67860b26
SH
509 ;;
510 m68k)
cc6a90dd 511 arch="m68k"
67860b26
SH
512 ;;
513 ia64)
cc6a90dd 514 arch="ia64"
67860b26 515 ;;
81a9b052 516 bfin)
cc6a90dd 517 arch="bfin"
81a9b052 518 ;;
de6d9b64 519 *)
cc6a90dd 520 arch="unknown"
de6d9b64
FB
521 ;;
522esac
523gprof="no"
9d2a0f1c
MR
524video4linux="yes"
525video4linux2="yes"
6beefa40 526bktr="no"
5cbcf02c 527audio_oss="yes"
dfdfa47c 528audio_beos="no"
8aa3ee32 529dv1394="yes"
f02be79d 530dc1394="no"
5cbcf02c 531network="yes"
0c7bb0e5 532ipv6="yes"
0147f198 533zlib="yes"
bb4c2140 534libgsm="no"
a6741398 535mp3lame="no"
f956e129 536libnut="no"
9146ca37 537libogg="no"
be74741c 538libvorbis="no"
0fc50e58
ZK
539faad="no"
540faadbin="no"
29d48296 541faac="no"
1ddadfa9 542xvid="no"
6662ec29 543x264="no"
ba9261e5 544a52="no"
57514323 545a52bin="no"
23c99253 546dts="no"
ba9261e5 547pp="no"
732d9245 548mingw32="no"
ac44871c 549mingwce="no"
f3ec2d46 550os2="no"
320d060a 551lstatic="yes"
83286d2a 552lshared="no"
cddf3f45
GM
553optimize="yes"
554debug="yes"
78fcba8f 555extrawarnings="no"
65d1bea2 556dostrip="yes"
da186ae2 557installstrip="-s"
ef0bc4c9 558extralibs="-lm"
0f3cb305 559bigendian="no"
7f965c1c 560inttypes="yes"
b5c950c4 561emu_fast_int="no"
a8721c09 562vhook="default"
8ac17293 563avisynth="no"
adbc0510
PG
564dlfcn="no"
565dlopen="no"
1eb2212e 566mpegaudio_hp="yes"
baa3a937 567SHFLAGS='-shared -Wl,-soname,$@'
cab3ef82 568VHOOKSHFLAGS='$(SHFLAGS)'
8e72b130 569beos_netserver="no"
4baca069 570need_inet_aton="no"
04f46ced 571protocols="yes"
786b30af 572ffmpeg="yes"
8154d2e0 573ffserver="yes"
a86b921c 574ffplay="yes"
80581e98 575LIBOBJFLAGS=""
e89b8b0a 576FFLDFLAGS=-Wl,--warn-common
e240ee67 577LDLATEFLAGS='-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
c536cb09 578FFSERVERLDFLAGS=-Wl,-E
f39e56a8 579LDCONFIG="ldconfig"
f3ec2d46
SG
580LIBPREF="lib"
581LIBSUF=".a"
4bdd05e7 582LIB='$(LIBPREF)$(NAME)$(LIBSUF)'
f3ec2d46
SG
583SLIBPREF="lib"
584SLIBSUF=".so"
4bdd05e7 585SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF)'
b29bddab
DB
586SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
587SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
951bf3e6 588EXESUF=""
eb94aca9 589BUILDSUF=""
891f64b3 590amr_nb="no"
d663a1fd 591amr_wb="no"
bc634f6f 592amr_nb_fixed="no"
2a515c08 593amr_if2="no"
bde24d6e 594mlib="no"
9c3d33d6 595pthreads="no"
790c9ca7 596swscaler="no"
b2e3c528 597gpl="no"
9ddbcae6 598memalign_hack="no"
4454dc1b 599asmalign_pot="unknown"
d4596ae3 600LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(libdir)/$(LIB)"'
ef0bc4c9
FR
601
602# OS specific
603targetos=`uname -s`
604case $targetos in
605BeOS)
2266e085 606PREFIX="/boot/home/config"
ef0bc4c9 607# helps building libavcodec
30a3e5d4 608add_cflags "-DPIC -fomit-frame-pointer"
31ba0b4d 609# 3 gcc releases known for BeOS, each with ugly bugs
b2924696 610gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
31ba0b4d
FR
611case "$gcc_version" in
6122.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
613mmx="no"
614;;
615*20010315*) echo "BeBits gcc"
30a3e5d4 616add_cflags "-fno-expensive-optimizations"
31ba0b4d
FR
617;;
618esac
e1707f52 619SHFLAGS=-nostart
29799f8b 620# disable Linux things
e1707f52 621audio_oss="no"
9d2a0f1c
MR
622video4linux="no"
623video4linux2="no"
8aa3ee32 624dv1394="no"
29799f8b 625# enable BeOS things
dfdfa47c 626audio_beos="yes"
b265431e 627beosthreads="yes"
ef0bc4c9
FR
628# no need for libm, but the inet stuff
629# Check for BONE
630if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then
631extralibs="-lbind -lsocket"
632else
8e72b130 633beos_netserver="yes"
4baca069 634need_inet_aton="yes"
26b35efb 635extralibs="-lnet"
ef0bc4c9 636fi ;;
4baca069 637SunOS)
9d2a0f1c
MR
638video4linux="no"
639video4linux2="no"
4baca069 640audio_oss="no"
8aa3ee32 641dv1394="no"
4baca069 642make="gmake"
e89b8b0a 643FFLDFLAGS=""
c536cb09 644FFSERVERLDFLAGS=""
813457e5 645SHFLAGS="-shared -Wl,-h,\$@"
4baca069 646need_inet_aton="yes"
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
dcd479c0 1395check_cc <<EOF || emu_fast_int=yes
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
dcd479c0 1422check_func localtime_r && localtime_r=yes || localtime_r=no
57bd82d4 1423enabled zlib && check_lib zlib.h zlibVersion -lz || zlib="no"
57bd82d4
MR
1424
1425# check for some common methods of building with pthread support
1426# do this before the optional library checks as some of them require pthreads
1427if enabled pthreads; then
1428 { check_cflags -pthread && check_ldflags -pthread; } ||
1429 { check_cflags -pthreads && check_ldflags -pthreads; } ||
1430 check_lib pthread.h pthread_create -lpthread ||
1431 check_func pthread_create ||
1432 die "ERROR: can't find pthreads library"
1433fi
1434
1435# these are off by default, so fail if requested and not available
4cbed916 1436enabled dts && require libdts dts.h dts_init -ldts -lm
57bd82d4 1437enabled libgsm && require libgsm gsm.h gsm_create -lgsm
4cbed916 1438enabled mp3lame && require LAME lame/lame.h lame_init -lmp3lame -lm
be74741c 1439enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc -logg
aedf11f8 1440enabled libogg && require libogg ogg/ogg.h ogg_sync_init -logg
f956e129 1441enabled libnut && require libnut nut.h nut_demuxer_init -lnut
57bd82d4
MR
1442enabled xvid && require XviD xvid.h xvid_global -lxvidcore
1443enabled x264 && require x264 x264.h x264_encoder_open -lx264
1444enabled dc1394 && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394
bde24d6e 1445enabled mlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
e0f80bd7 1446
3b9bee88
MR
1447# Ugh, faac uses stdcall calling convention on win32 so we can't use
1448# the generic test functions
1449if enabled faac; then
1450 save_flags
1451 temp_extralibs -lfaac
1452 check_ld <<EOF && add_extralibs -lfaac || die "ERROR: libfaac not found"
1453#include <stdint.h>
1454#include <faac.h>
1455int main(){
1456 char *id, *cpr;
1457 faacEncGetVersion(&id, &cpr);
1458 return 0;
1459}
1460EOF
1461 restore_flags
1462fi
1463
87f1c97e
MR
1464# Ugh, recent faad2 versions have renamed all functions and #define the
1465# old names in faad.h. Generic tests won't work.
1466if enabled faad; then
1467 save_flags
1468 temp_extralibs -lfaad
1469 check_ld <<EOF && add_extralibs -lfaad || die "ERROR: libfaad not found"
1470#include <faad.h>
1471int main(){
1472 faacDecOpen();
1473 return 0;
1474}
1475EOF
1476 restore_flags
1477fi
1478
8ac17293
SH
1479# Ugh, avisynth uses WINAPI calls. Generic tests won't work.
1480if enabled avisynth; then
1481 save_flags
1482 temp_extralibs -lvfw32
1483 check_ld <<EOF && add_extralibs -lvfw32 || die "ERROR: vfw32 not found"
1484#include <windows.h>
1485#include <vfw.h>
1486int main(){
1487 AVIFileInit();
1488 return 0;
1489}
1490EOF
1491 restore_flags
1492fi
1493
1494
95e2ce4a 1495# test for lrintf in math.h
fc2b267f 1496check_exec <<EOF && lrintf=yes || lrintf=no
95e2ce4a
MN
1497#define _ISOC9X_SOURCE 1
1498#include <math.h>
1499int main( void ) { return (lrintf(3.999f) > 0)?0:1; }
1500EOF
1501
c13e1abd
FH
1502_restrict=
1503for restrict_keyword in restrict __restrict__ __restrict; do
57bd82d4 1504 check_cc <<EOF && _restrict=$restrict_keyword && break
dcd479c0
MR
1505void foo(char * $restrict_keyword p);
1506EOF
c13e1abd
FH
1507done
1508
a8721c09
FB
1509# dlopen/dlfcn.h probing
1510
dcd479c0 1511check_header dlfcn.h && dlfcn=yes
a8721c09 1512
dcd479c0
MR
1513temp_extralibs -ldl
1514if check_func dlopen; then
1515 dlopen=yes
1516 ldl=-ldl
a8721c09 1517fi
dcd479c0 1518restore_flags
a8721c09 1519
dcd479c0
MR
1520if check_func dlopen; then
1521 dlopen=yes
1522 ldl=
a8721c09
FB
1523fi
1524
f25fc9b1
MR
1525if test "$vhook" = "default"; then
1526 vhook="$dlopen"
a8721c09
FB
1527fi
1528
22df6d18 1529if enabled_any vhook a52bin faadbin; then
57bd82d4 1530 add_extralibs $ldl
bfd2edeb
MN
1531fi
1532
fbb9d104
VP
1533if test "$targetos" = "CYGWIN" -a "$lstatic" = "yes" ; then
1534 vhook="no"
1535 echo
1536 echo "At the moment vhooks don't work on Cygwin static builds."
1537 echo "Patches welcome."
1538 echo
1539fi
1540
8d923001
MR
1541if enabled vhook; then
1542 check_ldflags -rdynamic
1543 check_ldflags -export-dynamic
1544fi
bfd2edeb 1545
a86b921c 1546##########################################
29799f8b 1547# imlib check
a86b921c 1548
dcd479c0
MR
1549temp_extralibs -lImlib2
1550check_ld <<EOF && imlib2=yes || imlib2=no
a8721c09
FB
1551#include <X11/Xlib.h>
1552#include <Imlib2.h>
1553int main( void ) { return (int) imlib_load_font("foo"); }
1554EOF
dcd479c0 1555restore_flags
52b41d7f 1556
a86b921c 1557##########################################
29799f8b 1558# FreeType check
a86b921c 1559
04511d53 1560freetype2=no
e2a5fd20 1561if test "x$targetos" != "xBeOS"; then
e2a3cd59 1562 if (freetype-config --version) >/dev/null 2>&1 ; then
dcd479c0
MR
1563 temp_cflags `freetype-config --cflags`
1564 temp_extralibs `freetype-config --libs`
1565 check_ld <<EOF && freetype2=yes
1566#include <ft2build.h>
1567int main( void ) { return (int) FT_Init_FreeType(0); }
1568EOF
1569 restore_flags
dee076fc 1570 fi
04511d53
PG
1571fi
1572
a86b921c 1573##########################################
29799f8b 1574# SDL check
a86b921c 1575
a86b921c
FB
1576sdl_too_old=no
1577sdl=no
6a1a892f
FD
1578SDL_CONFIG="${cross_prefix}sdl-config"
1579if ("${SDL_CONFIG}" --version) >/dev/null 2>&1 ; then
dcd479c0
MR
1580 temp_cflags `"${SDL_CONFIG}" --cflags`
1581 temp_extralibs `"${SDL_CONFIG}" --libs`
1582 check_ld <<EOF
1583#include <SDL.h>
1584#undef main /* We don't want SDL to override our main() */
1585int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
1586EOF
dcd479c0
MR
1587 if test $? = 0; then
1588 _sdlversion=`"${SDL_CONFIG}" --version | sed 's/[^0-9]//g'`
29f3b38a 1589 if test "$_sdlversion" -lt 121 ; then
dcd479c0
MR
1590 sdl_too_old=yes
1591 else
1592 sdl=yes
29f3b38a
MR
1593 check_cc <<EOF && sdl_video_size=yes || sdl_video_size=no
1594#include <SDL.h>
1595int main(void){
1596 const SDL_VideoInfo *vi = SDL_GetVideoInfo();
1597 int w = vi->current_w;
1598 return 0;
1599}
1600EOF
dcd479c0
MR
1601 fi
1602 fi
29f3b38a 1603 restore_flags
c3f6b472 1604fi
a86b921c 1605
57bd82d4
MR
1606enabled sdl || ffplay=no
1607
146ea952 1608##########################################
29799f8b 1609# texi2html check
146ea952
NB
1610
1611texi2html=no
e2a3cd59 1612if (texi2html -version) >/dev/null 2>&1; then
146ea952
NB
1613texi2html=yes
1614fi
1615
7a91333f 1616##########################################
29799f8b 1617# IPv6 check
7a91333f 1618
0c7bb0e5 1619enabled network && enabled ipv6 && check_ld <<EOF && ipv6=yes || ipv6=no
7a91333f
HZ
1620#include <sys/types.h>
1621#include <sys/socket.h>
1622#include <netinet/in.h>
1623#include <netdb.h>
1624int main( void ) {
1625 struct sockaddr_storage saddr;
1626 struct ipv6_mreq mreq6;
1627 getaddrinfo(0,0,0,0);
1628 getnameinfo(0,0,0,0,0,0,0);
12fe88b4 1629 IN6_IS_ADDR_MULTICAST((const struct in6_addr *)0);
7a91333f
HZ
1630}
1631EOF
1632
47f38850 1633# check for video4linux2 --- V4L2_PIX_FMT_YUV420
9d2a0f1c 1634enabled video4linux2 && check_cc <<EOF || video4linux2="no"
84fe9963 1635#include <sys/time.h>
f743a062
LA
1636#include <asm/types.h>
1637#include <linux/videodev2.h>
47f38850 1638int dummy = V4L2_PIX_FMT_YUV420;
490c189b 1639struct v4l2_buffer dummy1;
47f38850 1640EOF
47f38850 1641
57bd82d4
MR
1642enabled debug && add_cflags -g
1643
1644# add some useful compiler flags if supported
1645check_cflags -Wdeclaration-after-statement
dcd479c0
MR
1646check_cflags -Wall
1647check_cflags -Wno-switch
c07bd6a9
MN
1648check_cflags -Wdisabled-optimization
1649check_cflags -Wpointer-arith
1650check_cflags -Wredundant-decls
78fcba8f 1651enabled extrawarnings && check_cflags -Winline
cf9d24ad 1652
57bd82d4 1653# add some linker flags
e240ee67 1654check_ldflags $LDLATEFLAGS
94a3401e 1655
57bd82d4
MR
1656# not all compilers support -Os
1657test "$optimize" = "small" && check_cflags -Os
cddf3f45 1658
57bd82d4 1659if enabled optimize; then
b2924696 1660 if test -n "`$cc -v 2>&1 | grep xlc`"; then
30a3e5d4
NP
1661 add_cflags "-O5"
1662 add_ldflags "-O5"
cf9d24ad 1663 else
30a3e5d4 1664 add_cflags "-O3"
cf9d24ad 1665 fi
cddf3f45
GM
1666fi
1667
80581e98
MN
1668# PIC flags for shared library objects where they are needed
1669if test "$lshared" = "yes" ; then
f25fc9b1
MR
1670 # LIBOBJFLAGS may have already been set in the OS configuration
1671 if test -z "$LIBOBJFLAGS" ; then
cc6a90dd 1672 case "$arch" in
813457e5
MR
1673 x86_64|ia64|alpha|sparc*) LIBOBJFLAGS="\$(PIC)" ;;
1674 esac
80581e98 1675 fi
80581e98
MN
1676fi
1677
1db54e20 1678if test "$gprof" = "yes" ; then
30a3e5d4
NP
1679 add_cflags "-p"
1680 add_ldflags "-p"
1db54e20
DB
1681fi
1682
4454dc1b
JD
1683# find if .align arg is power-of-two or not
1684if test $asmalign_pot = "unknown"; then
1685 asmalign_pot="no"
1686 echo 'asm (".align 3");' | check_cc && asmalign_pot="yes"
1687fi
1688
2266e085 1689echo "install prefix $PREFIX"
29799f8b 1690echo "source path $source_path"
de6d9b64 1691echo "C compiler $cc"
4a908fbc 1692echo "make $make"
38d0a8aa 1693echo "ARCH $arch ($cpu)"
eb94aca9 1694if test "$BUILDSUF" != ""; then
f25fc9b1 1695 echo "build suffix $BUILDSUF"
eb94aca9 1696fi
29799f8b 1697echo "big-endian $bigendian"
7f965c1c 1698echo "inttypes.h $inttypes"
b5c950c4 1699echo "broken inttypes.h $emu_fast_int"
419b8784 1700if test $arch = "x86_32" -o $arch = "x86_64"; then
f25fc9b1 1701 echo "MMX enabled $mmx"
e7768fc5 1702 echo "CMOV enabled $cmov"
94e4c3a3 1703 echo "CMOV is fast $cmov_is_fast"
e41e8342 1704fi
cc6a90dd 1705if test $arch = "armv4l"; then
1839e854 1706 echo "ARMv5TE enabled $armv5te"
f25fc9b1 1707 echo "IWMMXT enabled $iwmmxt"
eba9ae3c 1708fi
cc6a90dd 1709if test $arch = "mips"; then
f25fc9b1 1710 echo "MMI enabled $mmi"
e41e8342 1711fi
cc6a90dd 1712if test $arch = "powerpc"; then
f25fc9b1 1713 echo "AltiVec enabled $altivec"
87ea51e0 1714 echo "dcbzl available $dcbzl"
e41e8342 1715fi
de6d9b64 1716echo "gprof enabled $gprof"
0147f198 1717echo "zlib enabled $zlib"
bb4c2140 1718echo "libgsm enabled $libgsm"
a6741398 1719echo "mp3lame enabled $mp3lame"
f956e129 1720echo "libnut enabled $libnut"
9146ca37 1721echo "libogg enabled $libogg"
be74741c 1722echo "Vorbis enabled $libvorbis"
29799f8b 1723echo "FAAD enabled $faad"
445ad18d 1724echo "faadbin enabled $faadbin"
29799f8b
DB
1725echo "FAAC enabled $faac"
1726echo "XviD enabled $xvid"
6662ec29 1727echo "x264 enabled $x264"
5cbcf02c 1728echo "a52 support $a52"
57514323 1729echo "a52 dlopened $a52bin"
29799f8b 1730echo "DTS support $dts"
bba9b16c 1731echo "pp support $pp"
790c9ca7 1732echo "Software Scaler enabled $swscaler"
8ac17293 1733echo "AVISynth enabled $avisynth"
cddf3f45 1734echo "debug symbols $debug"
65d1bea2 1735echo "strip symbols $dostrip"
cddf3f45 1736echo "optimize $optimize"
320d060a 1737echo "static $lstatic"
1ddf5ba1 1738echo "shared $lshared"
29799f8b 1739echo "video hooking $vhook"
a86b921c
FB
1740echo "SDL support $sdl"
1741if test $sdl_too_old = "yes"; then
f25fc9b1 1742 echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support."
a86b921c 1743fi
68892110 1744
f25fc9b1
MR
1745if test "$vhook" = "yes"; then
1746 echo "Imlib2 support $imlib2"
1747 echo "FreeType support $freetype2"
68892110 1748fi
bde24d6e 1749echo "Sun medialib support" $mlib
9c3d33d6 1750echo "pthreads support" $pthreads
bc634f6f
ZK
1751echo "AMR-NB float support" $amr_nb
1752echo "AMR-NB fixed support" $amr_nb_fixed
d663a1fd 1753echo "AMR-WB float support" $amr_wb
2a515c08 1754echo "AMR-WB IF2 support" $amr_if2
7a91333f
HZ
1755echo "network support $network"
1756if test "$network" = "yes" ; then
f25fc9b1 1757 echo "IPv6 support $ipv6"
7a91333f 1758fi
4454dc1b 1759echo ".align is power-of-two" $asmalign_pot
b2e3c528 1760if test "$gpl" = "no" ; then
f25fc9b1 1761 echo "License: LGPL"
b2e3c528 1762else
f25fc9b1 1763 echo "License: GPL"
b2e3c528 1764fi
de6d9b64 1765
0676e48e
MR
1766if test "$amr_wb" = "yes" ; then
1767 echo
1768 echo "AMR WB FLOAT NOTICE ! Make sure you have downloaded TS26.204"
1769 echo "V5.1.0 from "
1770 echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip"
1771 echo "and extracted the source to libavcodec/amrwb_float"
1772fi
1773
1774if test "$amr_nb" = "yes" ; then
1775 echo
1776 echo "AMR NB FLOAT NOTICE ! Make sure you have downloaded TS26.104"
1777 echo "REL-5 V5.1.0 from "
1778 echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip"
1779 echo "and extracted the source to libavcodec/amr_float"
1780 echo "If you try this on alpha, you may need to change Word32 to int in amr/typedef.h"
1781fi
1782
1783if test "$amr_nb_fixed" = "yes" ; then
1784 echo
1785 echo "AMR NB FIXED POINT NOTICE! Make sure you have downloaded TS26.073 "
1786 echo "REL-5 version 5.1.0 from "
1787 echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.073/26073-510.zip"
1788 echo "and extracted src to libavcodec/amr"
1789 echo "You must also add -DMMS_IO and remove -pedantic-errors to/from CFLAGS in libavcodec/amr/makefile."
1790 echo "i.e. CFLAGS = -Wall -I. \$(CFLAGS_\$(MODE)) -D\$(VAD) -DMMS_IO"
1791fi
1792
29799f8b 1793echo "Creating config.mak and config.h..."
de6d9b64 1794
f255e0ab
MB
1795date >> config.log
1796echo " $0 $FFMPEG_CONFIGURATION" >> config.log
29799f8b
DB
1797echo "# Automatically generated by configure - do not modify!" > config.mak
1798echo "/* Automatically generated by configure - do not modify! */" > $TMPH
f255e0ab 1799echo "#define FFMPEG_CONFIGURATION "'"'"$FFMPEG_CONFIGURATION"'"' >> $TMPH
de6d9b64 1800
2266e085
DB
1801echo "PREFIX=$PREFIX" >> config.mak
1802echo "prefix=\$(DESTDIR)\${PREFIX}" >> config.mak
9a695e98 1803echo "libdir=\$(DESTDIR)$libdir" >> config.mak
84c22efd 1804echo "shlibdir=\$(DESTDIR)$shlibdir" >> config.mak
1d67a1d4 1805echo "incdir=\$(DESTDIR)$incdir" >> config.mak
9a695e98
DB
1806echo "bindir=\$(DESTDIR)$bindir" >> config.mak
1807echo "mandir=\$(DESTDIR)$mandir" >> config.mak
4a908fbc 1808echo "MAKE=$make" >> config.mak
980fc7b8
FB
1809echo "CC=$cc" >> config.mak
1810echo "AR=$ar" >> config.mak
be7109c1 1811echo "RANLIB=$ranlib" >> config.mak
65d1bea2 1812if test "$dostrip" = "yes" ; then
f25fc9b1
MR
1813 echo "STRIP=$strip" >> config.mak
1814 echo "INSTALLSTRIP=$installstrip" >> config.mak
65d1bea2 1815else
f25fc9b1
MR
1816 echo "STRIP=echo ignoring strip" >> config.mak
1817 echo "INSTALLSTRIP=" >> config.mak
65d1bea2 1818fi
75388c74 1819
486497e0
MR
1820VHOOKCFLAGS="-fPIC $CFLAGS"
1821test "$needmdynamicnopic" = yes && add_cflags -mdynamic-no-pic
1822
a9b3f630 1823echo "OPTFLAGS=$CFLAGS" >> config.mak
408382a4 1824echo "VHOOKCFLAGS=$VHOOKCFLAGS">>config.mak
0f3cb305 1825echo "LDFLAGS=$LDFLAGS" >> config.mak
f39e56a8 1826echo "LDCONFIG=$LDCONFIG" >> config.mak
c536cb09 1827echo "FFSERVERLDFLAGS=$FFSERVERLDFLAGS" >> config.mak
e1707f52 1828echo "SHFLAGS=$SHFLAGS" >> config.mak
408382a4 1829echo "VHOOKSHFLAGS=$VHOOKSHFLAGS" >> config.mak
fbb9d104 1830echo "VHOOKLIBS=$VHOOKLIBS" >> config.mak
80581e98 1831echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak
b12f8273 1832echo "BUILD_STATIC=$lstatic" >> config.mak
eb94aca9 1833echo "BUILDSUF=$BUILDSUF" >> config.mak
f3ec2d46 1834echo "LIBPREF=$LIBPREF" >> config.mak
eb94aca9 1835echo "LIBSUF=\${BUILDSUF}$LIBSUF" >> config.mak
320d060a
DB
1836if test "$lstatic" = "yes" ; then
1837 echo "LIB=$LIB" >> config.mak
1a44a8b6
AS
1838else # Some Make complain if this variable does not exist.
1839 echo "LIB=" >> config.mak
320d060a 1840fi
f3ec2d46 1841echo "SLIBPREF=$SLIBPREF" >> config.mak
eb94aca9
CY
1842echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
1843echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
b2828252 1844echo "TARGET_OS=$targetos" >> config.mak
419b8784 1845if test "$arch" = "x86_32" -o "$arch" = "x86_64" ; then
980fc7b8 1846 echo "TARGET_ARCH_X86=yes" >> config.mak
045ed63f 1847 echo "#define ARCH_X86 1" >> $TMPH
419b8784
DB
1848fi
1849if test "$arch" = "x86_32" ; then
1850 echo "TARGET_ARCH_X86_32=yes" >> config.mak
1851 echo "#define ARCH_X86_32 1" >> $TMPH
cc6a90dd 1852elif test "$arch" = "x86_64" ; then
053dea12
AJ
1853 echo "TARGET_ARCH_X86_64=yes" >> config.mak
1854 echo "#define ARCH_X86_64 1" >> $TMPH
cc6a90dd 1855elif test "$arch" = "armv4l" ; then
6ed7422a 1856 echo "TARGET_ARCH_ARMV4L=yes" >> config.mak
045ed63f 1857 echo "#define ARCH_ARMV4L 1" >> $TMPH
cc6a90dd 1858elif test "$arch" = "alpha" ; then
91d1f1a4 1859 echo "TARGET_ARCH_ALPHA=yes" >> config.mak
045ed63f 1860 echo "#define ARCH_ALPHA 1" >> $TMPH
cc6a90dd 1861elif test "$arch" = "sparc64" ; then
35fedfc3
PG
1862 echo "TARGET_ARCH_SPARC64=yes" >> config.mak
1863 echo "#define ARCH_SPARC64 1" >> $TMPH
bb476ff3
JM
1864 echo "TARGET_ARCH_SPARC=yes" >> config.mak
1865 echo "#define ARCH_SPARC 1" >> $TMPH
cc6a90dd 1866elif test "$arch" = "sparc" ; then
bb476ff3
JM
1867 echo "TARGET_ARCH_SPARC=yes" >> config.mak
1868 echo "#define ARCH_SPARC 1" >> $TMPH
cc6a90dd 1869elif test "$arch" = "powerpc" ; then
0f3cb305
FB
1870 echo "TARGET_ARCH_POWERPC=yes" >> config.mak
1871 echo "#define ARCH_POWERPC 1" >> $TMPH
9007f514
RD
1872 if test $POWERPCMODE = "32bits"; then
1873 echo "#define POWERPC_MODE_32BITS 1" >> $TMPH
1874 else
1875 echo "#define POWERPC_MODE_64BITS 1" >> $TMPH
1876 fi
e45a2872
RD
1877 if test "$powerpc_perf" = "yes"; then
1878 echo "#define POWERPC_PERFORMANCE_REPORT 1" >> $TMPH
1879 fi
cc6a90dd 1880elif test "$arch" = "mips" ; then
d46aba26
LS
1881 echo "TARGET_ARCH_MIPS=yes" >> config.mak
1882 echo "#define ARCH_MIPS 1" >> $TMPH
cc6a90dd 1883elif test "$arch" = "sh4" ; then
bdb2e37c
AB
1884 echo "TARGET_ARCH_SH4=yes" >> config.mak
1885 echo "#define ARCH_SH4 1" >> $TMPH
cc6a90dd 1886elif test "$arch" = "parisc" ; then
67860b26
SH
1887 echo "TARGET_ARCH_PARISC=yes" >> config.mak
1888 echo "#define ARCH_PARISC 1" >> $TMPH
cc6a90dd 1889elif test "$arch" = "s390" ; then
67860b26
SH
1890 echo "TARGET_ARCH_S390=yes" >> config.mak
1891 echo "#define ARCH_S390 1" >> $TMPH
cc6a90dd 1892elif test "$arch" = "m68k" ; then
67860b26
SH
1893 echo "TARGET_ARCH_M68K=yes" >> config.mak
1894 echo "#define ARCH_M68K 1" >> $TMPH
cc6a90dd 1895elif test "$arch" = "ia64" ; then
67860b26
SH
1896 echo "TARGET_ARCH_IA64=yes" >> config.mak
1897 echo "#define ARCH_IA64 1" >> $TMPH
cc6a90dd 1898elif test "$arch" = "bfin" ; then
81a9b052
MB
1899 echo "TARGET_ARCH_BFIN=yes" >> config.mak
1900 echo "#define ARCH_BFIN 1" >> $TMPH
bdb2e37c 1901fi
a4adb608 1902echo "#define TUNECPU $TUNECPU" >> $TMPH
0f3cb305
FB
1903if test "$bigendian" = "yes" ; then
1904 echo "WORDS_BIGENDIAN=yes" >> config.mak
1905 echo "#define WORDS_BIGENDIAN 1" >> $TMPH
91d1f1a4 1906fi
d2a9bddd
MN
1907if test "$inttypes" != "yes" ; then
1908 echo "#define EMULATE_INTTYPES 1" >> $TMPH
7f965c1c 1909fi
b5c950c4 1910if test "$emu_fast_int" = "yes" ; then
19d053c5 1911 echo "#define EMULATE_FAST_INT 1" >> $TMPH
b5c950c4 1912fi
57514323 1913if test "$mmx" = "yes" ; then
980fc7b8 1914 echo "TARGET_MMX=yes" >> config.mak
045ed63f 1915 echo "#define HAVE_MMX 1" >> $TMPH
e82c5a8c 1916 echo "#define __CPU__ 586" >> $TMPH
de6d9b64 1917fi
e7768fc5
GP
1918if test "$cmov" = "yes" ; then
1919 echo "TARGET_CMOV=yes" >> config.mak
1920 echo "#define HAVE_CMOV 1" >> $TMPH
1921fi
94e4c3a3
GP
1922if test "$cmov_is_fast" = "yes" ; then
1923 echo "TARGET_CMOV_IS_FAST=yes" >> config.mak
1924 echo "#define CMOV_IS_FAST 1" >> $TMPH
1925fi
1839e854
SS
1926if test "$armv5te" = "yes" ; then
1927 echo "TARGET_ARMV5TE=yes" >> config.mak
1928 echo "#define HAVE_ARMV5TE 1" >> $TMPH
1929fi
eba9ae3c
GB
1930if test "$iwmmxt" = "yes" ; then
1931 echo "TARGET_IWMMXT=yes" >> config.mak
1932 echo "#define HAVE_IWMMXT 1" >> $TMPH
1933fi
d46aba26
LS
1934if test "$mmi" = "yes" ; then
1935 echo "TARGET_MMI=yes" >> config.mak
1936 echo "#define HAVE_MMI 1" >> $TMPH
1937fi
87ea51e0 1938
ab6c65f6
BF
1939if test "$altivec" = "yes" ; then
1940 echo "TARGET_ALTIVEC=yes" >> config.mak
1941 echo "#define HAVE_ALTIVEC 1" >> $TMPH
f80f7964 1942fi
44161118 1943
a86b921c 1944if test "$sdl" = "yes" ; then
6a1a892f
FD
1945 echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak
1946 echo "SDL_CFLAGS=`"${SDL_CONFIG}" --cflags`" >> config.mak
a86b921c 1947fi
146ea952
NB
1948if test "$texi2html" = "yes"; then
1949 echo "BUILD_DOC=yes" >> config.mak
1950fi
5a872801 1951
790c9ca7 1952sws_version=`grep '#define LIBSWSCALE_VERSION ' "$source_path/libswscale/swscale.h" | sed 's/[^0-9\.]//g'`
6d9a2421 1953pp_version=`grep '#define LIBPOSTPROC_VERSION ' "$source_path/libpostproc/postprocess.h" | sed 's/[^0-9\.]//g'`
5a872801
LB
1954lavc_version=`grep '#define LIBAVCODEC_VERSION ' "$source_path/libavcodec/avcodec.h" | sed 's/[^0-9\.]//g'`
1955lavf_version=`grep '#define LIBAVFORMAT_VERSION ' "$source_path/libavformat/avformat.h" | sed 's/[^0-9\.]//g'`
1956lavu_version=`grep '#define LIBAVUTIL_VERSION ' "$source_path/libavutil/avutil.h" | sed 's/[^0-9\.]//g'`
1957
1958
1959
57514323 1960if test "$lshared" = "yes" ; then
320d060a 1961 echo "#define BUILD_SHARED_AV 1" >> $TMPH
0319c531 1962 echo "BUILD_SHARED=yes" >> config.mak
97006039 1963 echo "PIC=-fPIC -DPIC" >> config.mak
39503a27 1964 echo "SPPMAJOR=${lavc_version%%.*}" >> config.mak
5a872801 1965 echo "SPPVERSION=$lavc_version" >> config.mak
39503a27 1966 echo "LAVCMAJOR=${lavc_version%%.*}" >> config.mak
5a872801 1967 echo "LAVCVERSION=$lavc_version" >> config.mak
39503a27 1968 echo "LAVFMAJOR=${lavf_version%%.*}" >> config.mak
5a872801 1969 echo "LAVFVERSION=$lavf_version" >> config.mak
39503a27 1970 echo "LAVUMAJOR=${lavu_version%%.*}" >> config.mak
5a872801 1971 echo "LAVUVERSION=$lavu_version" >> config.mak
790c9ca7
LA
1972 echo "SWSMAJOR=${sws_version%%.*}" >> config.mak
1973 echo "SWSVERSION=$sws_version" >> config.mak
4bdd05e7 1974 echo "SLIBNAME=${SLIBNAME}" >> config.mak
f3b60109
DB
1975 echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak
1976 echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
5cb854e1 1977 echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak
0319c531 1978fi
d7e27559 1979echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak
ef0bc4c9 1980echo "EXTRALIBS=$extralibs" >> config.mak
d2845d68 1981
44161118
MR
1982enabled_any $ENCODER_LIST && enable encoders
1983enabled_any $DECODER_LIST && enable decoders
1984enabled_any $MUXER_LIST && enable muxers
1985enabled_any $DEMUXER_LIST && enable demuxers
f956e129 1986
b265431e
MR
1987enabled_any pthreads beosthreads os2threads w32threads && enable threads
1988
44161118
MR
1989print_config HAVE_ $TMPH config.mak $HAVE_LIST
1990print_config CONFIG_ $TMPH config.mak $CONFIG_LIST
8ac17293 1991
732d9245 1992if test "$mingw32" = "yes" ; then
7eea5766 1993 echo "#ifndef __MINGW32__" >> $TMPH
732d9245 1994 echo "#define __MINGW32__ 1" >> $TMPH
7eea5766 1995 echo "#endif" >> $TMPH
3f027ca7
FB
1996fi
1997
ac44871c 1998if test "$mingwce" = "yes" ; then
ac44871c 1999 echo "#define CONFIG_WINCE 1" >> $TMPH
ac44871c
GB
2000 echo "#ifndef __MINGW32__" >> $TMPH
2001 echo "#define __MINGW32__ 1" >> $TMPH
2002 echo "#endif" >> $TMPH
2003fi
2004
f3ec2d46
SG
2005if test "$os2" = "yes" ; then
2006 echo "#define CONFIG_OS2 1" >> $TMPH
2450cff2
FR
2007fi
2008
b2828252 2009if test "$targetos" = "Darwin"; then
90cee0c3 2010 echo "#define CONFIG_DARWIN 1" >> $TMPH
90cee0c3
MN
2011fi
2012
4baca069
PG
2013if test "$need_inet_aton" = "yes" ; then
2014 echo "NEED_INET_ATON=yes" >> config.mak
2015fi
2016
c13e1abd
FH
2017echo "#define restrict $_restrict" >> $TMPH
2018
bb801c97
MN
2019if test "$optimize" = "small"; then
2020 echo "#define always_inline" >> $TMPH
e5f28e8f 2021 echo "#define CONFIG_SMALL 1" >> $TMPH
bb801c97
MN
2022fi
2023
997baf01
MR
2024echo "SRC_PATH=\"$source_path\"" >> config.mak
2025echo "SRC_PATH_BARE=$source_path" >> config.mak
2026echo "BUILD_ROOT=\"$PWD\"" >> config.mak
0f3cb305 2027
2a515c08
TM
2028if test "$amr_if2" = "yes" ; then
2029 echo "AMR_CFLAGS=-DIF2=1" >> config.mak
2030fi
2031
8156056e 2032# Apparently it's not possible to portably echo a backslash.
4454dc1b 2033if test "$asmalign_pot" = "yes" ; then
8156056e 2034 printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH
4454dc1b 2035else
8156056e 2036 printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH
4454dc1b
JD
2037fi
2038
bc634f6f 2039
55006fc0 2040for codec in $DECODER_LIST $ENCODER_LIST $PARSER_LIST $DEMUXER_LIST $MUXER_LIST; do
44161118 2041 ucname="`toupper $codec`"
a8d04fba
MR
2042 config_name="CONFIG_$ucname"
2043 enabled_name="ENABLE_$ucname"
2044 if enabled $codec; then
2045 echo "#define $config_name 1" >> $TMPH
2046 echo "#define $enabled_name 1" >> $TMPH
2047 echo "$config_name=yes" >> config.mak
2048 else
2049 echo "#define $enabled_name 0" >> $TMPH
2050 fi
009cf97d
MN
2051done
2052
9cb2cf10 2053# Do not overwrite config.h if unchanged to avoid superfluous rebuilds.
c683a5d1 2054if ! cmp -s $TMPH config.h; then
9cb2cf10
DB
2055 mv -f $TMPH config.h
2056else
2057 echo "config.h is unchanged"
2058fi
3d204385 2059
f3ec2d46 2060rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
def4272a 2061
165af439
MR
2062# build tree in object directory if source path is different from current one
2063if test "$source_path_used" = "yes" ; then
2064 DIRS="\
2065 doc \
2066 libavformat \
2067 libavcodec \
2068 libavcodec/alpha \
2069 libavcodec/armv4l \
2070 libavcodec/bfin \
2071 libavcodec/i386 \
2072 libavcodec/sparc \
2073 libavcodec/mlib \
2074 libavcodec/ppc \
2075 libavcodec/liba52 \
2076 libpostproc \
2077 libavutil \
2078 libswscale \
2079 tests \
2080 vhook \
2081 "
2082 FILES="\
2083 Makefile \
2084 common.mak \
2085 libavformat/Makefile \
2086 libavcodec/Makefile \
2087 libpostproc/Makefile \
2088 libavutil/Makefile \
2089 libswscale/Makefile \
2090 tests/Makefile \
2091 vhook/Makefile \
2092 doc/Makefile \
2093 doc/texi2pod.pl \
2094 "
2095 for dir in $DIRS ; do
2096 mkdir -p $dir
2097 done
2098 for f in $FILES ; do
2099 ln -sf "$source_path/$f" $f
2100 done
2101fi
def4272a 2102
29799f8b 2103# build pkg-config files libav*.pc and libpostproc.pc
31abdc45 2104# libavutil.pc
2105cat <<EOF >libavutil.pc
2266e085 2106prefix=$PREFIX
a94e666c 2107exec_prefix=\${prefix}
31abdc45 2108libdir=\${exec_prefix}/lib
a94e666c 2109includedir=\${prefix}/include
31abdc45 2110
2111Name: libavutil
2112Description: FFmpeg utility library
2113Version: $lavu_version
115329f1 2114Requires:
31abdc45 2115Conflicts:
2116Libs: -L\${libdir} -lavutil
2117Cflags: -I\${includedir} -I\${includedir}/ffmpeg
2118EOF
2119
2120cat <<EOF >libavutil-uninstalled.pc
2121prefix=
2122exec_prefix=
2123libdir=\${pcfiledir}/libavutil
2124includedir=\${pcfiledir}/libavutil
2125
2126Name: libavutil
2127Description: FFmpeg utility library
2128Version: $lavu_version
115329f1 2129Requires:
31abdc45 2130Conflicts:
2131Libs: \${libdir}/${LIBPREF}avutil${LIBSUF}
2132Cflags: -I\${includedir}
2133EOF
def4272a
AJ
2134
2135# libavcodec.pc
2136cat <<EOF >libavcodec.pc
2266e085 2137prefix=$PREFIX
a94e666c 2138exec_prefix=\${prefix}
def4272a 2139libdir=\${exec_prefix}/lib
a94e666c 2140includedir=\${prefix}/include
def4272a
AJ
2141
2142Name: libavcodec
2143Description: FFmpeg codec library
31abdc45 2144Version: $lavc_version
c99dd233 2145Requires: $pkg_requires libavutil = $lavu_version
def4272a
AJ
2146Conflicts:
2147Libs: -L\${libdir} -lavcodec $extralibs
2148Cflags: -I\${includedir} -I\${includedir}/ffmpeg
2149EOF
2150
2151cat <<EOF >libavcodec-uninstalled.pc
2152prefix=
2153exec_prefix=
2154libdir=\${pcfiledir}/libavcodec
2155includedir=\${pcfiledir}/libavcodec
2156
2157Name: libavcodec
2158Description: FFmpeg codec library
31abdc45 2159Version: $lavc_version
c99dd233 2160Requires: $pkg_requires libavutil = $lavu_version
def4272a
AJ
2161Conflicts:
2162Libs: \${libdir}/${LIBPREF}avcodec${LIBSUF} $extralibs
2163Cflags: -I\${includedir}
2164EOF
2165
2166# libavformat.pc
2167cat <<EOF >libavformat.pc
2266e085 2168prefix=$PREFIX
a94e666c 2169exec_prefix=\${prefix}
def4272a 2170libdir=\${exec_prefix}/lib
a94e666c 2171includedir=\${prefix}/include
def4272a
AJ
2172
2173Name: libavformat
2174Description: FFmpeg container format library
31abdc45 2175Version: $lavf_version
c99dd233 2176Requires: $pkg_requires libavcodec = $lavc_version
def4272a
AJ
2177Conflicts:
2178Libs: -L\${libdir} -lavformat $extralibs
2179Cflags: -I\${includedir} -I\${includedir}/ffmpeg
2180EOF
2181
2182cat <<EOF >libavformat-uninstalled.pc
2183prefix=
2184exec_prefix=
2185libdir=\${pcfiledir}/libavformat
2186includedir=\${pcfiledir}/libavformat
2187
2188Name: libavformat
2189Description: FFmpeg container format library
31abdc45 2190Version: $lavf_version
c99dd233 2191Requires: $pkg_requires libavcodec = $lavc_version
def4272a
AJ
2192Conflicts:
2193Libs: \${libdir}/${LIBPREF}avformat${LIBSUF} $extralibs
2194Cflags: -I\${includedir}
2195EOF
2196
2197
2198# libpostproc.pc
2199cat <<EOF >libpostproc.pc
2266e085 2200prefix=$PREFIX
a94e666c 2201exec_prefix=\${prefix}
def4272a 2202libdir=\${exec_prefix}/lib
a94e666c 2203includedir=\${prefix}/include
def4272a
AJ
2204
2205Name: libpostproc
2206Description: FFmpeg post processing library
31abdc45 2207Version: $lavc_version
115329f1 2208Requires:
def4272a
AJ
2209Conflicts:
2210Libs: -L\${libdir} -lpostproc
2211Cflags: -I\${includedir} -I\${includedir}/postproc
2212EOF
2213
2214cat <<EOF >libpostproc-uninstalled.pc
2215prefix=
2216exec_prefix=
6d9a2421
DB
2217libdir=\${pcfiledir}/libpostproc
2218includedir=\${pcfiledir}/libpostproc
def4272a
AJ
2219
2220Name: libpostproc
2221Description: FFmpeg post processing library
31abdc45 2222Version: $lavc_version
115329f1 2223Requires:
def4272a
AJ
2224Conflicts:
2225Libs: \${libdir}/${LIBPREF}postproc${LIBSUF}
2226Cflags: -I\${includedir}
2227EOF
790c9ca7 2228
6c0d0413 2229if test "$swscaler" != "no"; then
2230 sws_pc_libs="-L\${libdir} -lswscale"
2231 sws_pc_uninstalled_libs="\${libdir}/${LIBPREF}swscale${LIBSUF}"
2232 sws_pc_requires="$pkg_requires libavutil = $lavu_version"
2233else
2234 sws_pc_libs=""
2235 sws_pc_uninstalled_libs=""
2236 sws_pc_requires="$pkg_requires libavcodec = $lavc_version"
2237fi
790c9ca7
LA
2238# libswscale.pc
2239cat <<EOF >libswscale.pc
2240prefix=$PREFIX
2241exec_prefix=\${prefix}
2242libdir=\${exec_prefix}/lib
2243includedir=\${prefix}/include
2244
2245Name: libswscale
2246Description: FFmpeg image rescaling library
2247Version: $sws_version
6c0d0413 2248Requires: $sws_pc_requires
790c9ca7 2249Conflicts:
6c0d0413 2250Libs: $sws_pc_libs
790c9ca7
LA
2251Cflags: -I\${includedir} -I\${includedir}/swscale
2252EOF
2253
2254cat <<EOF >libswscale-uninstalled.pc
2255prefix=
2256exec_prefix=
2257libdir=\${pcfiledir}/libswscale
2258includedir=\${pcfiledir}/libswscale
2259
2260Name: libswscale
2261Description: FFmpeg image rescaling library
2262Version: $sws_version
6c0d0413 2263Requires: $sws_pc_requires
790c9ca7 2264Conflicts:
6c0d0413 2265Libs: $sws_pc_uninstalled_libs
790c9ca7
LA
2266Cflags: -I\${includedir}
2267EOF