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