configure 47.0 KB
Newer Older
F
Fabrice Bellard 已提交
1
#!/bin/sh
2
#
F
Fabrice Bellard 已提交
3
# ffmpeg configure script (c) 2000, 2001, 2002 Fabrice Bellard
4
#
5 6 7 8 9 10 11 12 13 14 15

if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
cat << EOF

Usage: configure [options]
Options: [defaults in brackets after descriptions]

EOF
echo "Standard options:"
echo "  --help                   print this message"
echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
16
echo "  --libdir=DIR             install libs in DIR [PREFIX/lib]"
D
Diego Biurrun 已提交
17 18 19 20 21 22 23 24 25 26
echo "  --mandir=DIR             install man page in DIR [PREFIX/man]"
echo "  --enable-mp3lame         enable MP3 encoding via libmp3lame [default=no]"
echo "  --enable-libogg          enable Ogg support via libogg [default=no]"
echo "  --enable-vorbis          enable Vorbis support via libvorbis [default=no]"
echo "  --enable-theora          enable Theora support via libtheora [default=no]"
echo "  --enable-faad            enable FAAD support via libfaad [default=no]"
echo "  --enable-faadbin         build FAAD support with runtime linking [default=no]"
echo "  --enable-faac            enable FAAC support via libfaac [default=no]"
echo "  --enable-libgsm          enable GSM support via libgsm [default=no]"
echo "  --enable-xvid            enable XviD support via xvidcore [default=no]"
27
echo "  --enable-x264            enable H.264 encoding via x264 [default=no]"
D
Diego Biurrun 已提交
28 29
echo "  --enable-mingw32         enable MinGW native/cross Windows compile"
echo "  --enable-a52             enable GPLed A52 support [default=no]"
30
echo "  --enable-a52bin          open liba52.so.0 at runtime [default=no]"
D
Diego Biurrun 已提交
31 32
echo "  --enable-dts             enable GPLed DTS support [default=no]"
echo "  --enable-pp              enable GPLed postprocessing support [default=no]"
33 34 35 36
echo "  --enable-shared-pp       use libpostproc.so [default=no]"
echo "  --enable-shared          build shared libraries [default=no]"
echo "  --enable-amr_nb          enable amr_nb float audio codec"
echo "  --enable-amr_nb-fixed    use fixed point for amr-nb codec"
37
echo "  --enable-amr_wb          enable amr_wb float audio codec"
D
Diego Biurrun 已提交
38
echo "  --enable-amr_if2         enable amr_wb IF2 audio codec"
39
echo "  --enable-sunmlib         use Sun medialib [default=no]"
40
echo "  --enable-pthreads        use pthreads [default=no]"
D
Diego Biurrun 已提交
41 42 43 44
echo "  --enable-dc1394          enable IIDC-1394 grabbing using libdc1394"
echo "                           and libraw1394 [default=no]"
echo "  --enable-gpl             allow use of GPL code, the resulting libav*"
echo "                           and ffmpeg will be under GPL [default=no]"
45 46
echo ""
echo "Advanced options (experts only):"
D
Diego Biurrun 已提交
47 48
echo "  --source-path=PATH       path to source code [$source_path]"
echo "  --cross-prefix=PREFIX    use PREFIX for compilation tools [$cross_prefix]"
49 50 51 52 53
echo "  --cc=CC                  use C compiler CC [$cc]"
echo "  --make=MAKE              use specified make [$make]"
echo "  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS [$CFLAGS]"
echo "  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]"
echo "  --extra-libs=ELIBS       add ELIBS [$ELIBS]"
54
echo "  --build-suffix=SUFFIX    suffix for application specific build []"
55
echo "  --cpu=CPU                force cpu to CPU  [$cpu]"
D
Diego Biurrun 已提交
56 57 58 59 60
echo "  --tune=CPU               tune code for a particular CPU"
echo "                           (may fail or perform badly on other CPUs)"
echo "  --powerpc-perf-enable    enable performance report on PPC"
echo "                           (requires enabling PMC)"
echo "  --disable-mmx            disable MMX usage"
61
echo "  --disable-iwmmxt         disable iwmmxt usage"
62 63 64 65
echo "  --disable-altivec        disable AltiVec usage"
echo "  --disable-audio-oss      disable OSS audio support [default=no]"
echo "  --disable-audio-beos     disable BeOS audio support [default=no]"
echo "  --disable-v4l            disable video4linux grabbing [default=no]"
66
echo "  --disable-bktr           disable bktr video grabbing [default=no]"
67 68 69 70 71 72 73 74 75
echo "  --disable-dv1394         disable DV1394 grabbing [default=no]"
echo "  --disable-network        disable network support [default=no]"
echo "  --disable-zlib           disable zlib [default=no]"
echo "  --disable-simple_idct    disable simple IDCT routines [default=no]"
echo "  --disable-vhook          disable video hooking support"
echo "  --enable-gprof           enable profiling with gprof [$gprof]"
echo "  --disable-debug          disable debugging symbols"
echo "  --disable-opts           disable compiler optimizations"
echo "  --disable-mpegaudio-hp   faster (but less accurate)"
D
Diego Biurrun 已提交
76
echo "                           MPEG audio decoding [default=no]"
77 78 79
echo "  --disable-ffserver       disable ffserver build"
echo "  --disable-ffplay         disable ffplay build"
echo "  --enable-small           optimize for size instead of speed"
80
echo "  --enable-memalign-hack   emulate memalign, interferes with memory debuggers"
81
echo "  --disable-strip          disable stripping of executables and shared libraries"
D
Diego Biurrun 已提交
82 83
echo "  --enable-codec=CODEC     enables CODEC"
echo "  --disable-codec=CODEC    disables CODEC"
84
echo "  --disable-encoders       disables all encoders"
85
echo "  --disable-decoders       disables all decoders"
86 87
echo "  --disable-muxers         disables all muxers"
echo "  --disable-demuxers       disables all demuxers"
88
echo ""
D
Diego Biurrun 已提交
89
echo "NOTE: Object files are built at the place where configure is launched."
90 91 92
exit 1
fi

93
# set temporary file name
Z
Zdenek Kabelac 已提交
94
if test ! -z "$TMPDIR" ; then
95
    TMPDIR1="${TMPDIR}"
Z
Zdenek Kabelac 已提交
96
elif test ! -z "$TEMPDIR" ; then
97
    TMPDIR1="${TEMPDIR}"
N
Nick Kurshev 已提交
98
else
99
    TMPDIR1="/tmp"
N
Nick Kurshev 已提交
100 101
fi

102 103
TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
104
TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}"
105 106 107
TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"

F
Fabrice Bellard 已提交
108 109
# default parameters
prefix="/usr/local"
110
libdir=""
F
Fabrice Bellard 已提交
111
mandir=""
F
Fabrice Bellard 已提交
112
bindir=""
113
cross_prefix=""
F
Fabrice Bellard 已提交
114 115
cc="gcc"
ar="ar"
M
Michael Niedermayer 已提交
116
ranlib="ranlib"
117
make="make"
118
strip="strip"
F
Fabrice Bellard 已提交
119
cpu=`uname -m`
120
tune="generic"
121
powerpc_perf="no"
122
mmx="default"
123
iwmmxt="default"
124
altivec="default"
125
mmi="default"
F
Fabrice Bellard 已提交
126
case "$cpu" in
127
  i386|i486|i586|i686|i86pc|BePC)
F
Fabrice Bellard 已提交
128 129
    cpu="x86"
  ;;
130 131 132 133 134 135 136
  x86_64|amd64)
    cpu="x86"
    canon_arch="`cc -dumpmachine | sed -e 's,\([^-]*\)-.*,\1,'`"
    if [ x"$canon_arch" = x"x86_64" -o x"$canon_arch" = x"amd64" ]; then
      if [ -z "`echo $CFLAGS | grep -- -m32`"  ]; then
        cpu="x86_64"
      fi
137 138
    fi
  ;;
139 140
  # armv4l is a subset of armv5tel
  armv4l|armv5tel)
141 142
    cpu="armv4l"
  ;;
143 144 145
  alpha)
    cpu="alpha"
  ;;
146
  "Power Macintosh"|ppc)
147 148
    cpu="powerpc"
  ;;
149
  mips|mipsel)
150 151
    cpu="mips"
  ;;
152
  sun4u|sparc64)
153 154
    cpu="sparc64"
  ;;
155 156 157
  sparc)
    cpu="sparc"
  ;;
A
Alex Beregszaszi 已提交
158 159 160
  sh4)
    cpu="sh4"
  ;;
161 162 163 164 165 166 167 168 169 170 171 172
  parisc|parisc64)
    cpu="parisc"
  ;;
  s390|s390x)
    cpu="s390"
  ;;
  m68k)
    cpu="m68k"
  ;;
  ia64)
    cpu="ia64"
  ;;
F
Fabrice Bellard 已提交
173
  *)
174
    cpu="unknown"
F
Fabrice Bellard 已提交
175 176 177
  ;;
esac
gprof="no"
F
Fabrice Bellard 已提交
178
v4l="yes"
179
bktr="no"
F
Fabrice Bellard 已提交
180
audio_oss="yes"
181
audio_beos="no"
182
dv1394="yes"
183
dc1394="no"
F
Fabrice Bellard 已提交
184
network="yes"
185
zlib="yes"
186
libgsm="no"
187
mp3lame="no"
188
libogg="no"
189
vorbis="no"
N
Nilesh Bansal 已提交
190
theora="no"
191 192
faad="no"
faadbin="no"
193
faac="no"
194
xvid="no"
195
x264="no"
196
a52="no"
Z
Zdenek Kabelac 已提交
197
a52bin="no"
198
dts="no"
199
pp="no"
200
shared_pp="no"
201
mingw32="no"
202
cygwin="no"
203
os2="no"
204
lshared="no"
205 206
optimize="yes"
debug="yes"
207
dostrip="yes"
208
extralibs="-lm"
209
simpleidct="yes"
210
bigendian="no"
211
inttypes="yes"
212
emu_fast_int="no"
213
vhook="default"
214 215
dlfcn="no"
dlopen="no"
216
mpegaudio_hp="yes"
217
SHFLAGS=-shared
218
netserver="no"
219
need_inet_aton="no"
220
ffserver="yes"
221
ffplay="yes"
222
LIBOBJFLAGS=""
223 224
LDFLAGS=-Wl,--warn-common
FFSLDFLAGS=-Wl,-E
225
LDCONFIG="ldconfig"
226 227 228 229
LIBPREF="lib"
LIBSUF=".a"
SLIBPREF="lib"
SLIBSUF=".so"
F
Fabrice Bellard 已提交
230
EXESUF=""
231
BUILDSUF=""
232
amr_nb="no"
233
amr_wb="no"
Z
Zdenek Kabelac 已提交
234
amr_nb_fixed="no"
235
amr_if2="no"
236
sunmlib="no"
237
pthreads="no"
238
gpl="no"
239
memalignhack="no"
240 241
muxers="yes"
demuxers="yes"
242 243 244 245 246 247 248

# OS specific
targetos=`uname -s`
case $targetos in
BeOS)
prefix="/boot/home/config"
# helps building libavcodec
249
CFLAGS="-DPIC -fomit-frame-pointer"
250
# 3 gcc releases known for BeOS, each with ugly bugs
251
gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
252 253 254 255 256 257 258 259
case "$gcc_version" in
2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
mmx="no"
;;
*20010315*) echo "BeBits gcc"
CFLAGS="$CFLAGS -fno-expensive-optimizations"
;;
esac
260
SHFLAGS=-nostart
D
Diego Biurrun 已提交
261
# disable Linux things
262
audio_oss="no"
F
Fabrice Bellard 已提交
263
v4l="no"
264
dv1394="no"
D
Diego Biurrun 已提交
265
# enable BeOS things
266
audio_beos="yes"
267 268 269 270 271
# no need for libm, but the inet stuff
# Check for BONE
if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then
extralibs="-lbind -lsocket"
else
272
netserver="yes"
273
need_inet_aton="yes"
274
extralibs="-lnet"
275
fi ;;
276 277 278
SunOS)
v4l="no"
audio_oss="no"
279
dv1394="no"
280 281 282 283 284 285
make="gmake"
LDFLAGS=""
FFSLDFLAGS=""
need_inet_aton="yes"
extralibs="$extralibs -lsocket -lnsl"
;;
286 287
NetBSD)
v4l="no"
288
bktr="yes"
289 290 291 292 293
audio_oss="yes"
dv1394="no"
make="gmake"
LDFLAGS="$LDFLAGS -export-dynamic"
case `uname -r` in
294
2.*) extralibs="$extralibs -lossaudio"
295 296 297
;;
esac
;;
298 299
OpenBSD)
v4l="no"
300
bktr="yes"
301 302 303
audio_oss="yes"
dv1394="no"
make="gmake"
304
LIBOBJFLAGS="\$(PIC)"
305
LDFLAGS="$LDFLAGS -export-dynamic -pthread"
306
LDCONFIG="ldconfig -m \$(libdir)"
307 308
extralibs="$extralibs -lossaudio"
;;
309 310
FreeBSD)
v4l="no"
311
bktr="yes"
312
audio_oss="yes"
313
dv1394="no"
314
make="gmake"
315 316
CFLAGS="-pthread"
LDFLAGS="$LDFLAGS -export-dynamic -pthread"
317
;;
318
BSD/OS)
F
Fabrice Bellard 已提交
319
v4l="no"
320
bktr="yes"
F
Fabrice Bellard 已提交
321
audio_oss="yes"
322
dv1394="no"
323 324 325
extralibs="-lpoll -lgnugetopt -lm"
make="gmake"
;;
326
Darwin)
327
cc="cc"
328 329
v4l="no"
audio_oss="no"
330
dv1394="no"
331
ffserver="no"
332
SHFLAGS="-dynamiclib -Wl,-single_module,-undefined,dynamic_lookup"
333
extralibs=""
334
darwin="yes"
335
strip="strip -x"
336 337
LDFLAGS="-Wl,-dynamic,-search_paths_first"
SLIBSUF=".dylib"
338
FFSLDFLAGS=-Wl,-bind_at_load
339
;;
340
MINGW32*)
F
Fabrice Bellard 已提交
341
# Note: the rest of the mingw32 config is done afterwards as mingw32
D
Diego Biurrun 已提交
342
# can be forced on the command line for Linux cross compilation.
343 344
mingw32="yes"
;;
345 346 347
CYGWIN*)
v4l="no"
audio_oss="yes"
348
dv1394="no"
349
ffserver="no"
350 351
extralibs=""
cygwin="yes"
352
EXESUF=".exe"
353
;;
354
Linux)
355
LDFLAGS="$LDFLAGS -rdynamic"
356
;;
357 358 359 360 361 362
IRIX*)
ranlib="echo ignoring ranlib"
v4l="no"
audio_oss="no"
make="gmake"
;;
363 364
OS/2)
TMPE=$TMPE".exe"
365
ar="emxomfar -p128"
366 367
ranlib="echo ignoring ranlib"
strip="echo ignoring strip"
368
CFLAGS="-Zomf"
369
LDFLAGS="-Zomf -Zstack 16384 -s"
370
SHFLAGS="-Zdll -Zomf"
371 372 373 374 375
FFSLDFLAGS=""
LIBPREF=""
LIBSUF=".lib"
SLIBPREF=""
SLIBSUF=".dll"
F
Fabrice Bellard 已提交
376
EXESUF=".exe"
377 378 379
extralibs=""
v4l="no"
audio_oss="no"
380
dv1394="no"
381 382
network="no"
ffserver="no"
383
vhook="no"
384
os2="yes"
385

386
;;
387 388
*) ;;
esac
F
Fabrice Bellard 已提交
389

D
Diego Biurrun 已提交
390
# From MPlayer configure. We need TARGET_OS available
391
# to the Makefile, so it can distinguish between flavors
D
Diego Biurrun 已提交
392
# of AltiVec on PowerPC.
393 394
TARGET_OS=`( uname -s ) 2>&1`
  case "$TARGET_OS" in
395
  Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU|BeOS)
396 397 398 399 400 401 402 403 404 405 406 407 408 409 410
    ;;
  IRIX*)
    TARGET_OS=IRIX
    ;;
  HP-UX*)
    TARGET_OS=HP-UX
    ;;
  [cC][yY][gG][wW][iI][nN]*)
    TARGET_OS=CYGWIN
    ;;
  *)
    TARGET_OS="$TARGET_OS-UNKNOWN"
    ;;
  esac

411
# find source path
412
source_path="`echo $0 | sed -e 's#/configure##'`"
413 414 415 416
source_path_used="yes"
if test -z "$source_path" -o "$source_path" = "." ; then
    source_path=`pwd`
    source_path_used="no"
417 418
else
    source_path="`cd \"$source_path\"; pwd`"
F
Fabrice Bellard 已提交
419 420
fi

421 422 423 424 425
FFMPEG_CONFIGURATION=" "
for opt do
  FFMPEG_CONFIGURATION="$FFMPEG_CONFIGURATION""$opt "
done

426
CODEC_LIST=`grep 'register_avcodec(&[a-z]' $source_path/libavcodec/allcodecs.c  | sed 's/.*&\(.*\)).*/\1/'`
427

F
Fabrice Bellard 已提交
428 429
for opt do
  case "$opt" in
430
  --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`; force_prefix=yes
F
Fabrice Bellard 已提交
431
  ;;
432
  --libdir=*) libdir=`echo $opt | cut -d '=' -f 2`; force_libdir=yes
433
  ;;
F
Fabrice Bellard 已提交
434 435
  --mandir=*) mandir=`echo $opt | cut -d '=' -f 2`
  ;;
436 437 438 439
  --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
  ;;
  --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
  ;;
440
  --cc=*) cc=`echo $opt | cut -d '=' -f 2-`
F
Fabrice Bellard 已提交
441
  ;;
442 443
  --make=*) make=`echo $opt | cut -d '=' -f 2`
  ;;
444
  --extra-cflags=*) CFLAGS="$CFLAGS ${opt#--extra-cflags=}"
445
  ;;
446
  --extra-ldflags=*) LDFLAGS="$LDFLAGS ${opt#--extra-ldflags=}"
447 448 449
  ;;
  --extra-libs=*) extralibs=${opt#--extra-libs=}
  ;;
450 451
  --build-suffix=*) BUILDSUF=${opt#--build-suffix=}
  ;;
F
Fabrice Bellard 已提交
452 453
  --cpu=*) cpu=`echo $opt | cut -d '=' -f 2`
  ;;
454 455
  --tune=*) tune=`echo $opt | cut -d '=' -f 2`
  ;;
456 457
  --powerpc-perf-enable) powerpc_perf="yes"
  ;;
F
Fabrice Bellard 已提交
458 459
  --disable-mmx) mmx="no"
  ;;
460 461
  --disable-iwmmxt) iwmmxt="no"
  ;;
462 463
  --disable-altivec) altivec="no"
  ;;
F
Fabrice Bellard 已提交
464 465
  --enable-gprof) gprof="yes"
  ;;
F
Fabrice Bellard 已提交
466 467
  --disable-v4l) v4l="no"
  ;;
468 469
  --disable-bktr) bktr="no"
  ;;
F
Fabrice Bellard 已提交
470 471
  --disable-audio-oss) audio_oss="no"
  ;;
472 473
  --disable-audio-beos) audio_beos="no"
  ;;
474 475
  --disable-dv1394) dv1394="no"
  ;;
476
  --disable-network) network="no"; ffserver="no"
F
Fabrice Bellard 已提交
477
  ;;
478 479
  --disable-zlib) zlib="no"
  ;;
480
  --enable-a52) a52="yes"
481
  ;;
M
Michael Niedermayer 已提交
482
  --enable-a52bin) a52bin="yes"
Z
Zdenek Kabelac 已提交
483
  ;;
484 485
  --enable-dts) dts="yes" ; extralibs="$extralibs -ldts"
  ;;
486
  --enable-pp) pp="yes"
487 488 489
  ;;
  --enable-shared-pp) shared_pp="yes"
  ;;
490 491
  --enable-libgsm) libgsm="yes"
  ;;
492
  --enable-mp3lame) mp3lame="yes"; extralibs="$extralibs -lmp3lame"
493
  ;;
494
  --enable-libogg) libogg="yes"
N
Nilesh Bansal 已提交
495
  ;;
496 497
  --enable-vorbis) vorbis="yes"
  ;;
N
Nilesh Bansal 已提交
498 499
  --enable-theora) theora="yes"
  ;;
Z
Zdenek Kabelac 已提交
500 501 502 503
  --enable-faad) faad="yes"
  ;;
  --enable-faadbin) faadbin="yes"
  ;;
504
  --enable-faac) faac="yes"; extralibs="$extralibs -lfaac"
505
  ;;
506 507
  --enable-xvid) xvid="yes"
  ;;
508 509
  --enable-x264) x264="yes"; extralibs="$extralibs -lx264"
  ;;
510 511
  --enable-dc1394) dc1394="yes"
  ;;
512 513
  --disable-vhook) vhook="no"
  ;;
514
  --disable-simple_idct) simpleidct="no"
515
  ;;
516 517
  --enable-mingw32) mingw32="yes"
  ;;
518
  --enable-shared) lshared="yes"
N
Nick Kurshev 已提交
519
  ;;
520 521 522 523
  --disable-debug) debug="no"
  ;;
  --disable-opts) optimize="no"
  ;;
524 525
  --disable-mpegaudio-hp) mpegaudio_hp="no"
  ;;
526 527
  --disable-ffserver) ffserver="no"
  ;;
528 529
  --disable-ffplay) ffplay="no"
  ;;
530
  --enable-small) optimize="small"
531
  ;;
532 533
  --enable-amr_nb) amr_nb="yes"
  ;;
Z
Zdenek Kabelac 已提交
534 535
  --enable-amr_nb-fixed) amr_nb_fixed="yes"
  ;;
536 537
  --enable-amr_wb) amr_wb="yes"
  ;; 
538 539
  --enable-amr_if2) amr_if2="yes"
  ;;
540 541
  --enable-sunmlib) sunmlib="yes"
  ;;
542 543
  --enable-pthreads) pthreads="yes"
  ;;
544 545
  --enable-gpl) gpl="yes"
  ;;
546 547
  --enable-memalign-hack) memalignhack="yes"
  ;;
548 549
  --disable-strip) dostrip="no"
  ;;
550 551 552 553 554 555
  --enable-codec=*) CODEC_LIST="$CODEC_LIST ${opt#--enable-codec=}"
  ;;
  --disable-codec=*) CODEC_LIST="`echo $CODEC_LIST | sed -e \"s#${opt#--disable-codec=}##\"`"
  ;;
  --disable-encoders) CODEC_LIST="`echo $CODEC_LIST | sed 's/[-_a-zA-Z0-9]*encoder//g'`"
  ;;
556 557
  --disable-decoders) CODEC_LIST="`echo $CODEC_LIST | sed 's/[-_a-zA-Z0-9]*decoder//g'`"
  ;;
558 559 560 561
  --disable-muxers) muxers="no"
  ;;
  --disable-demuxers) demuxers="no"
  ;;
562 563 564 565 566
  *)
  echo "Unknown option \"$opt\"."
  echo "See $0 --help for available options."
  exit 1
  ;;
F
Fabrice Bellard 已提交
567 568 569
  esac
done

N
Nilesh Bansal 已提交
570
if test "$theora" = "yes" ; then
571
    if test "$libogg" = "no"; then
D
Diego Biurrun 已提交
572
        echo "libogg must be enabled to enable Theora."
N
Nilesh Bansal 已提交
573 574 575 576 577 578
        fail="yes"
        theora="no"
    fi
fi

if test "$vorbis" = "yes" ; then
579
    if test "$libogg" = "no"; then
D
Diego Biurrun 已提交
580
        echo "libogg must be enabled to enable Vorbis."
N
Nilesh Bansal 已提交
581 582 583 584 585
        fail="yes"
        vorbis="no"
    fi
fi

586 587
if test "$gpl" != "yes"; then
    if test "$pp" != "no" -o "$shared_pp" != "no"; then
D
Diego Biurrun 已提交
588
        echo "The Postprocessing code is under GPL and --enable-gpl is not specified."
589 590 591 592
        fail="yes"
    fi

    if test "$a52" != "no" -o "$a52bin" != "no"; then
D
Diego Biurrun 已提交
593
        echo "liba52 is under GPL and --enable-gpl is not specified."
594 595
        fail="yes"
    fi
596

597
    if test "$xvid" != "no"; then
D
Diego Biurrun 已提交
598
        echo "libxvidcore is under GPL and --enable-gpl is not specified."
599 600 601
        fail="yes"
    fi

602
    if test "$x264" != "no"; then
D
Diego Biurrun 已提交
603
        echo "x264 is under GPL and --enable-gpl is not specified."
604 605 606
        fail="yes"
    fi

607
    if test "$dts" != "no"; then
D
Diego Biurrun 已提交
608
        echo "libdts is under GPL and --enable-gpl is not specified."
609 610
        fail="yes"
    fi
611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626
    
    if test "$faad" != "no" -o "$faadbin" != "no"; then
        cat > $TMPC << EOF
            #include <faad.h>
            int main( void ) { return 0; }
EOF
    
        if $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
            cat > $TMPC << EOF
                #include <faad.h>
                #ifndef FAAD2_VERSION
                ok faad1
                #endif
                int main( void ) { return 0; }
EOF
            if $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
D
Diego Biurrun 已提交
627
                echo "FAAD2 is under GPL and --enable-gpl is not specified."
628 629 630 631 632
                fail="yes"
            fi
        else
            faad="no"
            faadbin="no"
D
Diego Biurrun 已提交
633
            echo "FAAD test failed."
634 635 636 637
        fi
    fi
   

M
10l  
Michael Niedermayer 已提交
638
    if test "$fail" = "yes"; then
639 640 641 642
        exit 1
    fi
fi

D
Diego Biurrun 已提交
643
# compute MMX state
644
if test $mmx = "default"; then
645
    if test $cpu = "x86" -o $cpu = "x86_64"; then
646 647 648 649 650 651
        mmx="yes"
    else
        mmx="no"
    fi
fi

652 653 654 655 656 657 658 659 660 661 662 663 664 665
# check iwmmxt support
if test $iwmmxt = "default" -a $cpu = "armv4l"; then
    cat > $TMPC << EOF
        int main(void) { 
        __asm__ __volatile__ ("wunpckelub wr6, wr4");
        }
EOF

    iwmmxt=no
    if ${cross_prefix}${cc} -o $TMPO $TMPC 2> /dev/null ; then
        iwmmxt=yes
    fi
fi

666
#Darwin CC versions
667
needmdynamicnopic="no"
668
if test $targetos = Darwin; then
669
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
670
	CFLAGS="$CFLAGS -qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto"
671
    else
672
	gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
673 674
	case "$gcc_version" in
	    *2.95*) 
675
		CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer"
676
		;;
677
	    *[34].*)
678
		CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer -force_cpusubtype_ALL -Wno-sign-compare"
679 680 681
		if test "$lshared" = no; then
		   needmdynamicnopic="yes"
		fi
682 683
		;;
	    *)
684
		CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer"
685 686 687
		if test "$lshared" = no; then
		   needmdynamicnopic="yes"
		fi
688 689 690 691 692
		;;
	esac
    fi
fi

693 694 695 696 697 698 699 700 701
# Can only do AltiVec on PowerPC
if test $altivec = "default"; then
    if test $cpu = "powerpc"; then
        altivec="yes"
    else
        altivec="no"
    fi
fi

702 703
# Add processor-specific flags
TUNECPU="generic"
704
POWERPCMODE="32bits"
705 706 707 708 709
if test $tune != "generic"; then
    case $tune in
	601|ppc601|PowerPC601)
	    CFLAGS="$CFLAGS -mcpu=601"
	    if test $altivec = "yes"; then
D
Diego Biurrun 已提交
710
		echo "WARNING: Tuning for PPC601 but AltiVec enabled!";
711 712 713 714 715 716
	    fi
	    TUNECPU=ppc601
	;;
	603*|ppc603*|PowerPC603*)
	    CFLAGS="$CFLAGS -mcpu=603"
	    if test $altivec = "yes"; then
D
Diego Biurrun 已提交
717
		echo "WARNING: Tuning for PPC603 but AltiVec enabled!";
718 719 720 721 722 723
	    fi
	    TUNECPU=ppc603
	;;
	604*|ppc604*|PowerPC604*)
	    CFLAGS="$CFLAGS -mcpu=604"
	    if test $altivec = "yes"; then
D
Diego Biurrun 已提交
724
		echo "WARNING: Tuning for PPC604 but AltiVec enabled!";
725 726 727
	    fi
	    TUNECPU=ppc604
	;;
728
	G3|g3|75*|ppc75*|PowerPC75*)
729
	    CFLAGS="$CFLAGS -mcpu=750 -mtune=750 -mpowerpc-gfxopt"
730
	    if test $altivec = "yes"; then
D
Diego Biurrun 已提交
731
		echo "WARNING: Tuning for PPC75x but AltiVec enabled!";
732 733 734
	    fi
	    TUNECPU=ppc750
	;;
735
	G4|g4|745*|ppc745*|PowerPC745*)
736
	    CFLAGS="$CFLAGS -mcpu=7450 -mtune=7450 -mpowerpc-gfxopt"
737
	    if test $altivec = "no"; then
D
Diego Biurrun 已提交
738
		echo "WARNING: Tuning for PPC745x but AltiVec disabled!";
739 740 741 742
	    fi
	    TUNECPU=ppc7450
	;;
	74*|ppc74*|PowerPC74*)
743
	    CFLAGS="$CFLAGS -mcpu=7400 -mtune=7400 -mpowerpc-gfxopt"
744
	    if test $altivec = "no"; then
D
Diego Biurrun 已提交
745
		echo "WARNING: Tuning for PPC74xx but AltiVec disabled!";
746
	    fi
747
	    TUNECPU=ppc7400
748
	;;
749
	G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
750
	    CFLAGS="$CFLAGS -mcpu=970 -mtune=970 -mpowerpc-gfxopt -mpowerpc64"
751
	    if test $altivec = "no"; then
D
Diego Biurrun 已提交
752
		echo "WARNING: Tuning for PPC970 but AltiVec disabled!";
753 754
	    fi
	    TUNECPU=ppc970
755
            POWERPCMODE="64bits"
756
	;;
757
	i[3456]86|pentium|pentiumpro|pentium-mmx|pentium[234]|prescott|k6|k6-[23]|athlon|athlon-tbird|athlon-4|athlon-[mx]p|winchip-c6|winchip2|c3|nocona|athlon64|k8|opteron|athlon-fx)
758 759
	    CFLAGS="$CFLAGS -march=$tune"
	;;
760
	*)
D
Diego Biurrun 已提交
761
	echo "WARNING: Unknown CPU \"$tune\", ignored."
762 763 764 765
	;;
    esac
fi

766
# AltiVec flags: The FSF version of GCC differs from the Apple version 
767 768
if test $cpu = "powerpc"; then
    if test $altivec = "yes"; then
769
        if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
S
Steven M. Schultz 已提交
770
            CFLAGS="$CFLAGS -faltivec"
771 772 773 774 775 776
        else
            CFLAGS="$CFLAGS -maltivec -mabi=altivec"
        fi
    fi
fi

D
Diego Biurrun 已提交
777
# check if we have <altivec.h>
778 779 780 781 782 783
cat > $TMPC << EOF
#include <altivec.h>
int main( void ) { return 0; }
EOF

_altivec_h="no"
784
if $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
785 786 787
_altivec_h="yes"
fi

D
Diego Biurrun 已提交
788
# check if our compiler supports Motorola AltiVec C API
789
if test $altivec = "yes"; then
790
if test $_altivec_h = "yes"; then
791
cat > $TMPC << EOF
792
#include <altivec.h>
793 794 795 796 797 798
int main(void) {
    vector signed int v1, v2, v3;
    v1 = vec_add(v2,v3);
    return 0;
}
EOF
799 800 801 802 803 804 805 806 807
else
cat > $TMPC << EOF
int main(void) {
    vector signed int v1, v2, v3;
    v1 = vec_add(v2,v3);
    return 0;
}
EOF
fi
808
$cc $CFLAGS -o $TMPE $TMPC 2> /dev/null || altivec="no"
809 810
fi

D
Diego Biurrun 已提交
811
# mmi only available on mips
812 813 814 815 816 817 818 819
if test $mmi = "default"; then
    if test $cpu = "mips"; then
        mmi="yes"
    else
        mmi="no"
    fi
fi

D
Diego Biurrun 已提交
820
# check if our compiler supports mmi
821 822 823 824 825 826 827
if test $mmi = "yes"; then
cat > $TMPC << EOF
int main(void) {
    __asm__ ("lq \$2, 0(\$2)");
    return 0;
}
EOF
828
$cc -o $TMPE $TMPC 2> /dev/null || mmi="no"
829 830
fi

831 832
if test "$mingw32" = "yes" ; then
    v4l="no"
833
    bktr="no"
834
    audio_oss="no"
835
    dv1394="no"
836
    dc1394="no"
F
Fabrice Bellard 已提交
837
    ffserver="no"
838
    network="no"
F
Fabrice Bellard 已提交
839 840 841
    SLIBPREF=""
    SLIBSUF=".dll"
    EXESUF=".exe"
842 843
    if test "$force_prefix" != yes; then prefix="/c/Program Files/FFmpeg"; fi
    if test "$force_libdir" != yes; then bindir="$prefix"; fi
844 845
fi

846 847
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
M
Michael Niedermayer 已提交
848
ranlib="${cross_prefix}${ranlib}"
849 850
strip="${cross_prefix}${strip}"

F
Fabrice Bellard 已提交
851 852
if test -z "$cross_prefix" ; then

853
# ---
D
Diego Biurrun 已提交
854
# big/little-endian test
855 856 857 858 859 860 861 862
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
	volatile uint32_t i=0x01234567;
	return (*((uint8_t*)(&i))) == 0x67;
}
EOF

863 864
if $cc -o $TMPE $TMPC 2>/dev/null ; then
$TMPE && bigendian="yes"
865 866 867 868
else
echo big/little test failed
fi

F
Fabrice Bellard 已提交
869 870
else

D
Diego Biurrun 已提交
871
# programs cannot be launched if cross compiling, so make a static guess
F
Fabrice Bellard 已提交
872 873 874 875 876 877
if test "$cpu" = "powerpc" -o "$cpu" = "mips" ; then
    bigendian="yes"
fi

fi

878 879 880 881 882 883 884 885 886 887 888
# ---
# *inttypes.h* test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
    return 0;
}
EOF

$cc -o $TMPE $TMPC 2>/dev/null || inttypes="no"

889 890 891 892 893 894 895 896 897 898 899 900
# ---
# *int_fast* test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
	volatile uint_fast64_t i=0x01234567;
	return 0;
}
EOF

$cc -o $TMPE $TMPC 2>/dev/null || emu_fast_int="yes"

N
Nick Kurshev 已提交
901 902 903 904 905 906 907 908 909 910
# ---
# check availability of some header files

cat > $TMPC << EOF
#include <malloc.h>
int main( void ) { return 0; }
EOF

_memalign=no
_malloc_h=no
911
if $cc -o $TMPE $TMPC 2> /dev/null ; then
N
Nick Kurshev 已提交
912 913 914 915
_malloc_h=yes
_memalign=yes
# check for memalign - atmos
cat > $TMPC << EOF
916
#include <stdio.h>
N
Nick Kurshev 已提交
917 918 919 920 921 922 923
#include <malloc.h>
int main ( void ) {
char *string = NULL;
string = memalign(64, sizeof(char));
return 0;
}
EOF
924
$cc -o $TMPE $TMPC 2> /dev/null || _memalign=no
N
Nick Kurshev 已提交
925 926
fi

927
if test "$_memalign" = "no" -a "$mmx" = "yes" -a "$memalignhack" != "yes"; then
D
Diego Biurrun 已提交
928
    echo "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
929 930 931
    exit 1
fi

932 933 934 935 936 937 938 939 940 941
cat > $TMPC << EOF
#include <time.h>
int main( void ) { localtime_r(NULL, NULL); }
EOF

localtime_r=no
if $cc -o $TMPE $TMPC 2> /dev/null ; then
  localtime_r=yes
fi

942 943 944 945 946 947 948 949 950 951 952
if test "$zlib" = "yes"; then
# check for zlib - mmu_man
cat > $TMPC << EOF
#include <zlib.h>
int main ( void ) {
if (zlibVersion() != ZLIB_VERSION)
   puts("zlib version differs !!!");
   return 1;
return 0;
}
EOF
953
$cc $CFLAGS $LDFLAGS -o $TMPE $TMPC -lz 2> /dev/null || zlib="no"
954
# $TMPE 2> /dev/null > /dev/null || zlib="no"
955 956 957 958 959 960
# XXX: more tests needed - runtime test
fi
if test "$zlib" = "yes"; then
extralibs="$extralibs -lz"
fi

961 962 963 964 965 966 967 968
# test for lrintf in math.h
cat > $TMPC << EOF
#define _ISOC9X_SOURCE  1
#include <math.h>
int main( void ) { return (lrintf(3.999f) > 0)?0:1; }
EOF

have_lrintf="no"
969
if $cc $extralibs -o $TMPE $TMPC 2> /dev/null ; then
970
  have_lrintf="yes"
971 972 973 974 975
  # allanc@chickenandporn.com: cannot execute cross-compiled
  # code on the host.  Only execute if not cross-compiling.
  if test -z "$cross_prefix" ; then
    $TMPE 2> /dev/null > /dev/null || have_lrintf="no"
  fi
976 977
fi

F
Falk Hüffner 已提交
978 979 980 981 982 983 984 985 986
_restrict=
for restrict_keyword in restrict __restrict__ __restrict; do
  echo "void foo(char * $restrict_keyword p);" > $TMPC
  if $cc -c -o $TMPO $TMPC 2> /dev/null; then
    _restrict=$restrict_keyword
    break;
  fi
done

987 988 989
# test gcc version to see if vector builtins can be used
# currently only used on i386 for MMX builtins
cat > $TMPC << EOF
990
#include <xmmintrin.h>
991 992 993 994 995 996 997 998 999 1000
int main(void) { 
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
return 0;
#else
#error no vector builtins
#endif
}
EOF

builtin_vector=no
1001
if $cc -msse -o $TMPO $TMPC 2> /dev/null ; then
1002
  builtin_vector=yes
1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013
fi

# dlopen/dlfcn.h probing

cat > $TMPC << EOF
#include <dlfcn.h>
int main( void ) { return (int) dlopen("foo", 0); }
EOF

ldl=-ldl

1014
if $cc -o $TMPE $TMPC -ldl > /dev/null 2>&1 ; then
1015 1016 1017 1018
dlfcn=yes
dlopen=yes
fi

1019
if $cc -o $TMPE $TMPC > /dev/null 2>&1 ; then
1020 1021 1022 1023 1024 1025 1026 1027 1028
dlfcn=yes
dlopen=yes
ldl=""
fi

cat > $TMPC << EOF
int main( void ) { return (int) dlopen("foo", 0); }
EOF

1029
if $cc -o $TMPE $TMPC -ldl > /dev/null 2>&1  ; then
1030 1031 1032
dlopen=yes
fi

1033
if $cc -o $TMPE $TMPC > /dev/null 2>&1  ; then
1034 1035 1036 1037 1038 1039 1040 1041
dlopen=yes
ldl=""
fi

if test "$vhook" = "default" ; then
  vhook="$dlopen"
fi

M
Michael Niedermayer 已提交
1042 1043 1044 1045 1046
if test "$vhook" = "yes" -o "$a52bin" = "yes" -o "$faadbin" = "yes"; then
  extralibs="$extralibs $ldl"
fi


1047
##########################################
D
Diego Biurrun 已提交
1048
# imlib check
1049

1050 1051 1052 1053 1054 1055 1056
cat > $TMPC << EOF
#include <X11/Xlib.h>
#include <Imlib2.h>
int main( void ) { return (int) imlib_load_font("foo"); }
EOF

imlib2=no
1057
if $cc $CFLAGS $LDFLAGS -o $TMPE $TMPC -lImlib2 -lm > /dev/null 2>&1  ; then
1058
imlib2=yes
1059 1060
fi

1061
##########################################
D
Diego Biurrun 已提交
1062
# FreeType check
1063

1064 1065 1066 1067 1068 1069
cat > $TMPC << EOF
#include <ft2build.h>
int main( void ) { return (int) FT_Init_FreeType(0); }
EOF

freetype2=no
1070
if test "x$targetos" != "xBeOS" && test "$os2" != "yes"; then
1071
  if (freetype-config --version) >/dev/null 2>&1 ; then
1072
    if $cc -o $TMPE $TMPC `freetype-config --cflags` `freetype-config --libs`  > /dev/null 2>&1 ; then
1073
      freetype2=yes
1074
    fi
1075
  fi
1076 1077
fi

1078
##########################################
D
Diego Biurrun 已提交
1079
# SDL check
1080 1081 1082

cat > $TMPC << EOF
#include <SDL.h>
1083
#undef main /* We don't want SDL to override our main() */
1084 1085 1086 1087 1088
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
EOF

sdl_too_old=no
sdl=no
1089
if (sdl-config --version) >/dev/null 2>&1 ; then
1090
if $cc -o $TMPE `sdl-config --cflags` $TMPC `sdl-config --libs`  > /dev/null 2>&1  ; then
1091 1092 1093 1094 1095 1096 1097
_sdlversion=`sdl-config --version | sed 's/[^0-9]//g'`
if test "$_sdlversion" -lt 121 ; then
sdl_too_old=yes
else
sdl=yes
fi
fi
M
Michael Niedermayer 已提交
1098
fi
1099

1100
##########################################
D
Diego Biurrun 已提交
1101
# texi2html check
1102 1103

texi2html=no
1104
if (texi2html -version) >/dev/null 2>&1; then
1105 1106 1107
texi2html=yes
fi

1108 1109
if test "$network" = "yes" ; then
##########################################
D
Diego Biurrun 已提交
1110
# IPv6 check
1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131

cat > $TMPC << EOF
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
int main( void ) {
  struct sockaddr_storage saddr;
  struct ipv6_mreq mreq6;
  getaddrinfo(0,0,0,0);
  getnameinfo(0,0,0,0,0,0,0);
  IN6_IS_ADDR_MULTICAST(0);
}
EOF

ipv6=no
if $cc -o $TMPE $TMPC > /dev/null 2>&1  ; then
ipv6=yes
fi
fi

1132
case "`$cc -v 2>&1 | grep version`" in
1133
    *gcc*)
1134
	CFLAGS="-Wall -Wno-switch $CFLAGS"
1135 1136 1137 1138 1139
	;;
    *)
	;;
esac

F
Fabrice Bellard 已提交
1140 1141 1142 1143
if test "$sdl" = "no" ; then
   ffplay=no
fi

1144
if test "$debug" = "yes"; then
F
Falk Hüffner 已提交
1145
	CFLAGS="-g $CFLAGS"
1146 1147 1148
fi

if test "$optimize" = "small"; then
1149
#  CFLAGS=${CFLAGS//-O3/-Os}
1150 1151 1152
  CFLAGS="$CFLAGS -Os"
fi

1153
if test "$optimize" = "yes"; then
1154
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
1155 1156 1157
	CFLAGS="$CFLAGS -O5"
	LDFLAGS="$LDFLAGS -O5"
    else
F
Falk Hüffner 已提交
1158
	CFLAGS="-O3 $CFLAGS"
1159
    fi
1160 1161
fi

1162 1163 1164 1165
# PIC flags for shared library objects where they are needed
if test "$lshared" = "yes" ; then
  # LIBOBJFLAGS may have already been set in the OS configuration
  if test -z "$LIBOBJFLAGS" ; then
M
Michael Niedermayer 已提交
1166
    if test "$cpu" = "x86_64" -o "$cpu" = "ia64" ; then
1167 1168 1169 1170 1171
      LIBOBJFLAGS="\$(PIC)"
    fi
  fi
fi

F
Fabrice Bellard 已提交
1172 1173 1174 1175
if test x"$bindir" = x""; then
bindir="${prefix}/bin"
fi

1176 1177 1178 1179
if test x"$libdir" = x""; then
libdir="${prefix}/lib"
fi

F
Fabrice Bellard 已提交
1180 1181 1182 1183
if test x"$mandir" = x""; then
mandir="${prefix}/man"
fi

D
Diego Biurrun 已提交
1184 1185
echo "install prefix   $prefix"
echo "source path      $source_path"
F
Fabrice Bellard 已提交
1186
echo "C compiler       $cc"
1187
echo "make             $make"
1188
echo "CPU              $cpu ($tune)"
1189
if test "$BUILDSUF" != ""; then
D
Diego Biurrun 已提交
1190
echo "build suffix     $BUILDSUF"
1191
fi
D
Diego Biurrun 已提交
1192
echo "big-endian       $bigendian"
1193
echo "inttypes.h       $inttypes"
1194
echo "broken inttypes.h $emu_fast_int"
1195
if test $cpu = "x86" -o $cpu = "x86_64"; then
F
Fabrice Bellard 已提交
1196
echo "MMX enabled      $mmx"
1197
echo "Vector Builtins  $builtin_vector"
F
Fabrice Bellard 已提交
1198
fi
1199 1200 1201
if test $cpu = "armv4l"; then
echo "IWMMXT enabled   $iwmmxt"
fi
F
Fabrice Bellard 已提交
1202
if test $cpu = "mips"; then
1203
echo "MMI enabled      $mmi"
F
Fabrice Bellard 已提交
1204 1205
fi
if test $cpu = "powerpc"; then
1206
echo "AltiVec enabled  $altivec"
F
Fabrice Bellard 已提交
1207
fi
F
Fabrice Bellard 已提交
1208
echo "gprof enabled    $gprof"
1209
echo "zlib enabled     $zlib"
1210
echo "libgsm enabled   $libgsm"
1211
echo "mp3lame enabled  $mp3lame"
1212
echo "libogg enabled   $libogg"
D
Diego Biurrun 已提交
1213 1214 1215
echo "Vorbis enabled   $vorbis"
echo "Theora enabled   $theora"
echo "FAAD enabled     $faad"
Z
Zdenek Kabelac 已提交
1216
echo "faadbin enabled  $faadbin"
D
Diego Biurrun 已提交
1217 1218
echo "FAAC enabled     $faac"
echo "XviD enabled     $xvid"
1219
echo "x264 enabled     $x264"
F
Fabrice Bellard 已提交
1220
echo "a52 support      $a52"
Z
Zdenek Kabelac 已提交
1221
echo "a52 dlopened     $a52bin"
D
Diego Biurrun 已提交
1222
echo "DTS support      $dts"
1223
echo "pp support       $pp"
1224
echo "debug symbols    $debug"
1225
echo "strip symbols    $dostrip"
1226
echo "optimize         $optimize"
1227
echo "shared pp        $shared_pp"
D
Diego Biurrun 已提交
1228
echo "video hooking    $vhook"
1229 1230
echo "SDL support      $sdl"
if test $sdl_too_old = "yes"; then
D
Diego Biurrun 已提交
1231
echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support."
1232
fi
1233 1234

if test "$vhook" = "yes" ; then
1235
echo "Imlib2 support   $imlib2"
D
Diego Biurrun 已提交
1236
echo "FreeType support $freetype2"
1237
fi
1238
echo "Sun medialib support"  $sunmlib
1239
echo "pthreads support"      $pthreads
Z
Zdenek Kabelac 已提交
1240 1241
echo "AMR-NB float support"  $amr_nb
echo "AMR-NB fixed support"  $amr_nb_fixed
1242
echo "AMR-WB float support"  $amr_wb
1243
echo "AMR-WB IF2 support"    $amr_if2
1244 1245 1246 1247
echo "network support      $network"
if test "$network" = "yes" ; then
echo "IPv6 support         $ipv6"
fi
1248 1249 1250 1251 1252
if test "$gpl" = "no" ; then
echo "License: LGPL"
else
echo "License: GPL"
fi
F
Fabrice Bellard 已提交
1253

D
Diego Biurrun 已提交
1254
echo "Creating config.mak and config.h..."
F
Fabrice Bellard 已提交
1255

1256 1257
date >> config.log
echo "   $0 $FFMPEG_CONFIGURATION" >> config.log
D
Diego Biurrun 已提交
1258 1259
echo "# Automatically generated by configure - do not modify!" > config.mak
echo "/* Automatically generated by configure - do not modify! */" > $TMPH
1260
echo "#define FFMPEG_CONFIGURATION "'"'"$FFMPEG_CONFIGURATION"'"' >> $TMPH
F
Fabrice Bellard 已提交
1261

1262
echo "prefix=$prefix" >> config.mak
1263
echo "libdir=$libdir" >> config.mak
F
Fabrice Bellard 已提交
1264
echo "bindir=$bindir" >> config.mak
F
Fabrice Bellard 已提交
1265
echo "mandir=$mandir" >> config.mak
1266
echo "MAKE=$make" >> config.mak
1267 1268
echo "CC=$cc" >> config.mak
echo "AR=$ar" >> config.mak
M
Michael Niedermayer 已提交
1269
echo "RANLIB=$ranlib" >> config.mak
1270
if test "$dostrip" = "yes" ; then
1271
echo "STRIP=$strip" >> config.mak
1272 1273 1274 1275 1276
echo "INSTALLSTRIP=-s" >> config.mak
else
echo "STRIP=echo ignoring strip" >> config.mak
echo "INSTALLSTRIP=" >> config.mak
fi
1277

D
Diego Biurrun 已提交
1278
# SHCFLAGS is a copy of CFLAGS without -mdynamic-no-pic, used when building
1279 1280 1281 1282 1283 1284
# shared modules on OS/X (vhook/Makefile).
SHCFLAGS=$CFLAGS
if test "$needmdynamicnopic" = yes; then
   CFLAGS="$CFLAGS -mdynamic-no-pic"
fi

N
Nick Kurshev 已提交
1285
echo "OPTFLAGS=$CFLAGS" >> config.mak
1286
echo "SHCFLAGS=$SHCFLAGS">>config.mak
1287
echo "LDFLAGS=$LDFLAGS" >> config.mak
1288
echo "LDCONFIG=$LDCONFIG" >> config.mak
1289
echo "FFSLDFLAGS=$FFSLDFLAGS" >> config.mak
1290
echo "SHFLAGS=$SHFLAGS" >> config.mak
1291
echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak
1292
echo "BUILDSUF=$BUILDSUF" >> config.mak
1293
echo "LIBPREF=$LIBPREF" >> config.mak
1294
echo "LIBSUF=\${BUILDSUF}$LIBSUF" >> config.mak
1295
echo "SLIBPREF=$SLIBPREF" >> config.mak
1296 1297
echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
1298
echo "TARGET_OS=$TARGET_OS" >> config.mak
Z
Zdenek Kabelac 已提交
1299
if test "$cpu" = "x86" ; then
1300
  echo "TARGET_ARCH_X86=yes" >> config.mak
1301
  echo "#define ARCH_X86 1" >> $TMPH
1302 1303 1304
elif test "$cpu" = "x86_64" ; then
  echo "TARGET_ARCH_X86_64=yes" >> config.mak
  echo "#define ARCH_X86_64 1" >> $TMPH
1305
elif test "$cpu" = "armv4l" ; then
1306
  echo "TARGET_ARCH_ARMV4L=yes" >> config.mak
1307
  echo "#define ARCH_ARMV4L 1" >> $TMPH
1308
elif test "$cpu" = "alpha" ; then
1309
  echo "TARGET_ARCH_ALPHA=yes" >> config.mak
1310
  echo "#define ARCH_ALPHA 1" >> $TMPH
1311 1312 1313
elif test "$cpu" = "sparc64" ; then
  echo "TARGET_ARCH_SPARC64=yes" >> config.mak
  echo "#define ARCH_SPARC64 1" >> $TMPH
1314 1315 1316 1317 1318
  echo "TARGET_ARCH_SPARC=yes" >> config.mak
  echo "#define ARCH_SPARC 1" >> $TMPH
elif test "$cpu" = "sparc" ; then
  echo "TARGET_ARCH_SPARC=yes" >> config.mak
  echo "#define ARCH_SPARC 1" >> $TMPH
1319 1320 1321
elif test "$cpu" = "powerpc" ; then
  echo "TARGET_ARCH_POWERPC=yes" >> config.mak
  echo "#define ARCH_POWERPC 1" >> $TMPH
1322 1323 1324 1325 1326
  if test $POWERPCMODE = "32bits"; then
    echo "#define POWERPC_MODE_32BITS 1" >> $TMPH
  else
    echo "#define POWERPC_MODE_64BITS 1" >> $TMPH
  fi
1327 1328 1329
  if test "$powerpc_perf" = "yes"; then
    echo "#define POWERPC_PERFORMANCE_REPORT 1" >> $TMPH
  fi
1330 1331 1332
elif test "$cpu" = "mips" ; then
  echo "TARGET_ARCH_MIPS=yes" >> config.mak
  echo "#define ARCH_MIPS 1" >> $TMPH
A
Alex Beregszaszi 已提交
1333 1334 1335
elif test "$cpu" = "sh4" ; then
  echo "TARGET_ARCH_SH4=yes" >> config.mak
  echo "#define ARCH_SH4 1" >> $TMPH
1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347
elif test "$cpu" = "parisc" ; then
  echo "TARGET_ARCH_PARISC=yes" >> config.mak
  echo "#define ARCH_PARISC 1" >> $TMPH
elif test "$cpu" = "s390" ; then
  echo "TARGET_ARCH_S390=yes" >> config.mak
  echo "#define ARCH_S390 1" >> $TMPH
elif test "$cpu" = "m68k" ; then
  echo "TARGET_ARCH_M68K=yes" >> config.mak
  echo "#define ARCH_M68K 1" >> $TMPH
elif test "$cpu" = "ia64" ; then
  echo "TARGET_ARCH_IA64=yes" >> config.mak
  echo "#define ARCH_IA64 1" >> $TMPH
A
Alex Beregszaszi 已提交
1348
fi
1349
echo "#define TUNECPU $TUNECPU" >> $TMPH
1350 1351 1352
if test "$bigendian" = "yes" ; then
  echo "WORDS_BIGENDIAN=yes" >> config.mak
  echo "#define WORDS_BIGENDIAN 1" >> $TMPH
1353
fi
1354 1355
if test "$inttypes" != "yes" ; then
  echo "#define EMULATE_INTTYPES 1" >> $TMPH
1356
fi
1357
if test "$emu_fast_int" = "yes" ; then
1358
  echo "#define EMULATE_FAST_INT 1" >> $TMPH
1359
fi
Z
Zdenek Kabelac 已提交
1360
if test "$mmx" = "yes" ; then
1361
  echo "TARGET_MMX=yes" >> config.mak
1362
  echo "#define HAVE_MMX 1" >> $TMPH
M
Michael Niedermayer 已提交
1363
  echo "#define __CPU__ 586" >> $TMPH
F
Fabrice Bellard 已提交
1364
fi
1365 1366 1367 1368
if test "$builtin_vector" = "yes" ; then
  echo "TARGET_BUILTIN_VECTOR=yes" >> config.mak
  echo "#define HAVE_BUILTIN_VECTOR 1" >> $TMPH
fi
1369 1370 1371 1372
if test "$iwmmxt" = "yes" ; then
  echo "TARGET_IWMMXT=yes" >> config.mak
  echo "#define HAVE_IWMMXT 1" >> $TMPH
fi
1373 1374 1375 1376
if test "$mmi" = "yes" ; then
  echo "TARGET_MMI=yes" >> config.mak
  echo "#define HAVE_MMI 1" >> $TMPH
fi
1377 1378 1379
if test "$altivec" = "yes" ; then
  echo "TARGET_ALTIVEC=yes" >> config.mak
  echo "#define HAVE_ALTIVEC 1" >> $TMPH
1380 1381
  echo "// Enable the next line to use the reference C code instead of AltiVec" >> $TMPH
  echo "// #define ALTIVEC_USE_REFERENCE_C_CODE 1" >> $TMPH
1382 1383 1384
  if test "$_altivec_h" = "yes" ; then
    echo "#define HAVE_ALTIVEC_H 1" >> $TMPH
  else
A
1l  
Alex Beregszaszi 已提交
1385
    echo "#undef HAVE_ALTIVEC_H" >> $TMPH
1386
  fi
1387
fi
Z
Zdenek Kabelac 已提交
1388
if test "$gprof" = "yes" ; then
1389
  echo "TARGET_GPROF=yes" >> config.mak
1390
  echo "#define HAVE_GPROF 1" >> $TMPH
F
Fabrice Bellard 已提交
1391
fi
1392 1393 1394
if test "$localtime_r" = "yes" ; then
  echo "#define HAVE_LOCALTIME_R 1" >> $TMPH
fi
1395 1396 1397
if test "$imlib2" = "yes" ; then
  echo "HAVE_IMLIB2=yes" >> config.mak
fi
1398 1399 1400
if test "$freetype2" = "yes" ; then
  echo "HAVE_FREETYPE2=yes" >> config.mak
fi
1401 1402 1403 1404 1405
if test "$sunmlib" = "yes" ; then
  echo "HAVE_MLIB=yes" >> config.mak
  echo "#define HAVE_MLIB 1" >> $TMPH
  extralibs="$extralibs -lmlib"
fi
1406 1407 1408
if test "$pthreads" = "yes" ; then
  echo "HAVE_PTHREADS=yes" >> config.mak
  echo "#define HAVE_PTHREADS 1" >> $TMPH
1409
  echo "#define HAVE_THREADS 1" >> $TMPH
1410
  if test $targetos != FreeBSD -a $targetos != OpenBSD ; then
1411 1412
     extralibs="$extralibs -lpthread"
  fi
1413
fi
1414 1415 1416 1417 1418
if test "$sdl" = "yes" ; then
  echo "CONFIG_SDL=yes" >> config.mak
  echo "SDL_LIBS=`sdl-config --libs`" >> config.mak
  echo "SDL_CFLAGS=`sdl-config --cflags`" >> config.mak
fi
1419 1420 1421
if test "$texi2html" = "yes"; then
  echo "BUILD_DOC=yes" >> config.mak
fi
1422 1423 1424
if test "$have_lrintf" = "yes" ; then
  echo "#define HAVE_LRINTF 1" >> $TMPH
fi
1425 1426 1427 1428
if test "$vhook" = "yes" ; then
  echo "BUILD_VHOOK=yes" >> config.mak
  echo "#define HAVE_VHOOK 1" >> $TMPH
fi
Z
Zdenek Kabelac 已提交
1429
if test "$lshared" = "yes" ; then
N
Nick Kurshev 已提交
1430
  echo "BUILD_SHARED=yes" >> config.mak
1431
  echo "PIC=-fPIC -DPIC" >> config.mak
1432 1433
  echo "SPPMAJOR=0" >> config.mak
  echo "SPPVERSION=0.0.1" >> config.mak 
N
Nick Kurshev 已提交
1434
fi
1435
echo "EXTRALIBS=$extralibs" >> config.mak
M
Michael Niedermayer 已提交
1436
version=`grep '#define FFMPEG_VERSION ' "$source_path/libavcodec/avcodec.h" |
1437 1438
 cut -d '"' -f 2`
echo "VERSION=$version" >>config.mak
D
Diego Biurrun 已提交
1439
# If you do not want to use encoders, disable them.
1440
echo "#define CONFIG_ENCODERS 1" >> $TMPH
1441 1442
echo "CONFIG_ENCODERS=yes" >> config.mak

D
Diego Biurrun 已提交
1443
# If you do not want to use decoders, disable them.
1444
echo "#define CONFIG_DECODERS 1" >> $TMPH
1445 1446
echo "CONFIG_DECODERS=yes" >> config.mak

1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458
# muxers
if test "$muxers" = "yes" ; then
  echo "#define CONFIG_MUXERS 1" >> $TMPH
  echo "CONFIG_MUXERS=yes" >> config.mak
fi

# demuxers
if test "$demuxers" = "yes" ; then
  echo "#define CONFIG_DEMUXERS 1" >> $TMPH
  echo "CONFIG_DEMUXERS=yes" >> config.mak
fi

F
Fabrice Bellard 已提交
1459 1460 1461 1462
# AC3
if test "$a52" = "yes" ; then
  echo "#define CONFIG_AC3 1" >> $TMPH
  echo "CONFIG_AC3=yes" >> config.mak
1463

F
Fabrice Bellard 已提交
1464 1465 1466 1467 1468 1469
  if test "$a52bin" = "yes" ; then
    echo "#define CONFIG_A52BIN 1" >> $TMPH
    echo "CONFIG_A52BIN=yes" >> config.mak
  fi
fi

1470 1471 1472 1473 1474 1475
# DTS
if test "$dts" = "yes" ; then
  echo "#define CONFIG_DTS 1" >> $TMPH
  echo "CONFIG_DTS=yes" >> config.mak
fi

1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486
# PP
if test "$pp" = "yes" ; then
  echo "#define CONFIG_PP 1" >> $TMPH
  echo "CONFIG_PP=yes" >> config.mak

  if test "$shared_pp" = "yes" ; then
    echo "#define SHARED_PP 1" >> $TMPH
    echo "SHARED_PP=yes" >> config.mak
  fi
fi

D
Diego Biurrun 已提交
1487
# MPEG audio high precision mode
1488 1489 1490 1491
if test "$mpegaudio_hp" = "yes" ; then
  echo "#define CONFIG_MPEGAUDIO_HP 1" >> $TMPH
fi

F
Fabrice Bellard 已提交
1492 1493 1494 1495 1496
if test "$v4l" = "yes" ; then
  echo "#define CONFIG_VIDEO4LINUX 1" >> $TMPH
  echo "CONFIG_VIDEO4LINUX=yes" >> config.mak
fi

1497 1498 1499 1500 1501
if test "$bktr" = "yes" ; then
  echo "#define CONFIG_BKTR 1" >> $TMPH
  echo "CONFIG_BKTR=yes" >> config.mak
fi

1502 1503 1504 1505 1506
if test "$dv1394" = "yes" ; then
  echo "#define CONFIG_DV1394 1" >> $TMPH
  echo "CONFIG_DV1394=yes" >> config.mak
fi

1507 1508 1509 1510 1511
if test "$dc1394" = "yes" ; then
  echo "#define CONFIG_DC1394 1" >> $TMPH
  echo "CONFIG_DC1394=yes" >> config.mak
fi

1512 1513 1514 1515 1516 1517 1518 1519
if test "$dlopen" = "yes" ; then
  echo "#define CONFIG_HAVE_DLOPEN 1" >> $TMPH
fi

if test "$dlfcn" = "yes" ; then
  echo "#define CONFIG_HAVE_DLFCN 1" >> $TMPH
fi

F
Fabrice Bellard 已提交
1520 1521 1522
if test "$audio_oss" = "yes" ; then
  echo "#define CONFIG_AUDIO_OSS 1" >> $TMPH
  echo "CONFIG_AUDIO_OSS=yes" >> config.mak
Z
Zdenek Kabelac 已提交
1523 1524
fi

1525 1526 1527 1528 1529
if test "$audio_beos" = "yes" ; then
  echo "#define CONFIG_AUDIO_BEOS 1" >> $TMPH
  echo "CONFIG_AUDIO_BEOS=yes" >> config.mak
fi

F
Fabrice Bellard 已提交
1530 1531 1532
if test "$network" = "yes" ; then
  echo "#define CONFIG_NETWORK 1" >> $TMPH
  echo "CONFIG_NETWORK=yes" >> config.mak
1533
fi
1534

1535 1536 1537 1538
if test "$ipv6" = "yes" ; then
  echo "#define CONFIG_IPV6 1" >> $TMPH
fi

1539 1540 1541 1542 1543
if test "$zlib" = "yes" ; then
  echo "#define CONFIG_ZLIB 1" >> $TMPH
  echo "CONFIG_ZLIB=yes" >> config.mak
fi

1544 1545 1546 1547 1548
if test "$libgsm" = "yes" ; then
  echo "#define CONFIG_LIBGSM 1" >> $TMPH
  echo "CONFIG_LIBGSM=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1549
if test "$mp3lame" = "yes" ; then
1550
  echo "#define CONFIG_MP3LAME 1" >> $TMPH
1551 1552 1553
  echo "CONFIG_MP3LAME=yes" >> config.mak
fi

1554
if test "$libogg" = "yes" ; then
N
Nilesh Bansal 已提交
1555 1556 1557 1558
  echo "#define CONFIG_LIBOGG 1" >> $TMPH
  echo "CONFIG_LIBOGG=yes" >> config.mak
fi

1559
if test "$vorbis" = "yes" ; then
N
Nilesh Bansal 已提交
1560 1561 1562 1563 1564 1565 1566
  echo "#define CONFIG_LIBVORBIS 1" >> $TMPH
  echo "CONFIG_LIBVORBIS=yes" >> config.mak
fi

if test "$theora" = "yes" ; then
  echo "#define CONFIG_LIBTHEORA 1" >> $TMPH
  echo "CONFIG_LIBTHEORA=yes" >> config.mak
1567 1568
fi

1569 1570 1571 1572 1573 1574 1575
if test "$faad" = "yes" ; then
  echo "#define CONFIG_FAAD 1" >> $TMPH
  echo "CONFIG_FAAD=yes" >> config.mak
fi

if test "$faadbin" = "yes" ; then
  echo "#define CONFIG_FAADBIN 1" >> $TMPH
Z
Zdenek Kabelac 已提交
1576
  echo "CONFIG_FAADBIN=yes" >> config.mak
1577 1578
fi

1579 1580 1581 1582 1583
if test "$faac" = "yes" ; then
  echo "#define CONFIG_FAAC 1" >> $TMPH
  echo "CONFIG_FAAC=yes" >> config.mak
fi

1584 1585 1586 1587 1588
if test "$xvid" = "yes" ; then
  echo "#define CONFIG_XVID 1" >> $TMPH
  echo "CONFIG_XVID=yes" >> config.mak
fi

1589 1590 1591 1592 1593
if test "$x264" = "yes" ; then
  echo "#define CONFIG_X264 1" >> $TMPH
  echo "CONFIG_X264=yes" >> config.mak
fi

1594 1595 1596
if test "$mingw32" = "yes" ; then
  echo "#define CONFIG_WIN32 1" >> $TMPH
  echo "CONFIG_WIN32=yes" >> config.mak
1597 1598
  echo "HAVE_W32THREADS=yes" >> config.mak
  echo "#define HAVE_W32THREADS 1" >> $TMPH
1599
  echo "#define HAVE_THREADS 1" >> $TMPH
1600
  echo "#ifndef __MINGW32__" >> $TMPH
1601
  echo "#define __MINGW32__ 1" >> $TMPH
1602
  echo "#endif" >> $TMPH
1603 1604
fi

1605 1606 1607 1608 1609
if test "$os2" = "yes" ; then
  echo "#define CONFIG_OS2 1" >> $TMPH
  echo "CONFIG_OS2=yes" >> config.mak
fi

1610 1611 1612 1613
if test "$TARGET_OS" = "SunOS" ; then
  echo "#define CONFIG_SUNOS 1" >> $TMPH
fi

1614 1615 1616 1617 1618 1619
if test "$TARGET_OS" = "BeOS" ; then
  echo "HAVE_BEOSTHREADS=yes" >> config.mak
  echo "#define HAVE_BEOSTHREADS 1" >> $TMPH
  echo "#define HAVE_THREADS 1" >> $TMPH
fi

1620 1621 1622 1623 1624
if test "$darwin" = "yes"; then
  echo "#define CONFIG_DARWIN 1"  >> $TMPH
  echo "CONFIG_DARWIN=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1625
if test "$_malloc_h" = "yes" ; then
1626
  echo "#define HAVE_MALLOC_H 1" >> $TMPH
N
Nick Kurshev 已提交
1627
else
1628
  echo "#undef  HAVE_MALLOC_H" >> $TMPH
N
Nick Kurshev 已提交
1629 1630
fi

Z
Zdenek Kabelac 已提交
1631
if test "$_memalign" = "yes" ; then
1632 1633 1634 1635 1636
  echo "#define HAVE_MEMALIGN 1" >> $TMPH
else
  echo "#undef  HAVE_MEMALIGN" >> $TMPH
fi

1637 1638 1639 1640 1641
if test "$memalignhack" = "yes" ; then
  echo "#define MEMALIGN_HACK 1" >> $TMPH
fi


1642 1643 1644 1645 1646
if test "$netserver" = "yes" ; then
  echo "#define CONFIG_BEOS_NETSERVER 1" >> $TMPH
  echo "CONFIG_BEOS_NETSERVER=yes" >> config.mak
fi

1647 1648 1649 1650
if test "$need_inet_aton" = "yes" ; then
  echo "NEED_INET_ATON=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1651
if test "$simpleidct" = "yes" ; then
1652 1653 1654
  echo "#define SIMPLE_IDCT 1" >> $TMPH
fi

1655 1656 1657 1658 1659
if test "$ffserver" = "yes" ; then
  echo "#define CONFIG_FFSERVER 1" >> $TMPH
  echo "CONFIG_FFSERVER=yes" >> config.mak
fi

1660 1661 1662 1663
if test "$ffplay" = "yes" ; then
  echo "CONFIG_FFPLAY=yes" >> config.mak
fi

1664 1665 1666 1667 1668
if test "$gpl" = "yes" ; then
  echo "#define CONFIG_GPL 1" >> $TMPH
  echo "CONFIG_GPL=yes" >> config.mak
fi

F
Falk Hüffner 已提交
1669 1670
echo "#define restrict $_restrict" >> $TMPH

1671 1672 1673 1674
if test "$optimize" = "small"; then
  echo "#define always_inline"  >> $TMPH
fi

1675 1676
# build tree in object directory if source path is different from current one
if test "$source_path_used" = "yes" ; then
1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703
    DIRS="\
         doc \
         libavformat \
         libavcodec \
         libavcodec/alpha \
         libavcodec/armv4l \
         libavcodec/i386 \
         libavcodec/sparc \
         libavcodec/mlib \
         libavcodec/ppc \
         libavcodec/liba52 \
         libavcodec/libpostproc \
         libavutil \
         tests \
         vhook \
         "
    FILES="\
          Makefile \
          libavformat/Makefile \
          libavcodec/Makefile \
          libavcodec/libpostproc/Makefile \
          libavutil/Makefile \
          tests/Makefile \
          vhook/Makefile \
          doc/Makefile \
          doc/texi2pod.pl \
          "
1704 1705 1706 1707
    for dir in $DIRS ; do
            mkdir -p $dir
    done
    for f in $FILES ; do
M
Michael Niedermayer 已提交
1708
        ln -sf "$source_path/$f" $f
1709
    done
1710 1711 1712
    echo "SRC_PATH=$source_path" >> config.mak
else
    echo "SRC_PATH='$source_path'" >> config.mak
1713 1714
fi

1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725
if test "$amr_wb" = "yes" ; then
  echo "#define AMR_WB 1" >> $TMPH
  echo "AMR_WB=yes" >> config.mak
  echo
  echo "AMR WB FLOAT NOTICE ! Make sure you have downloaded TS26.204"
  echo "V5.1.0 from "
  echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip"
  echo "and extracted the source to libavcodec/amrwb_float"
  echo
fi

1726 1727 1728 1729
if test "$amr_nb" = "yes" ; then
  echo "#define AMR_NB 1" >> $TMPH
  echo "AMR_NB=yes" >> config.mak
  echo
Z
Zdenek Kabelac 已提交
1730 1731 1732 1733 1734
if test "$amr_nb_fixed" = "yes" ; then
  echo "AMR_NB_FIXED=yes" >> config.mak
  echo "#define AMR_NB_FIXED 1" >> $TMPH
  echo "AMR NB FIXED POINT NOTICE! Make sure you have downloaded TS26.073 "
  echo "REL-5 version 5.1.0 from "
M
Michael Niedermayer 已提交
1735
  echo "http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26073-5??.zip"
1736
  echo "and extracted src to libavcodec/amr"
Z
Zdenek Kabelac 已提交
1737 1738 1739 1740 1741 1742
  echo "You must also add -DMMS_IO and remove -pedantic-errors to/from CFLAGS in libavcodec/amr/makefile."
  echo "i.e. CFLAGS = -Wall -I. \$(CFLAGS_\$(MODE)) -D\$(VAD) -DMMS_IO"
  echo
else
  echo "AMR NB FLOAT NOTICE ! Make sure you have downloaded TS26.104"
  echo "REL-5 V5.1.0 from "
M
Michael Niedermayer 已提交
1743
  echo "http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26104-5??.zip"
Z
Zdenek Kabelac 已提交
1744
  echo "and extracted the source to libavcodec/amr_float"
M
Michael Niedermayer 已提交
1745
  echo "and if u try this on an alpha, u may need to change Word32 to int in amr/typedef.h"
1746 1747 1748
  echo
fi

1749 1750 1751 1752
if test "$amr_if2" = "yes" ; then
  echo "AMR_CFLAGS=-DIF2=1" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1753 1754
fi

1755
for codec in $CODEC_LIST ; do
1756 1757
    echo "#define CONFIG_`echo $codec | tr a-z A-Z` 1" >> $TMPH
    echo "CONFIG_`echo $codec | tr a-z A-Z`=yes" >> config.mak
1758 1759
done

Z
Zdenek Kabelac 已提交
1760
diff $TMPH config.h >/dev/null 2>&1
1761 1762
if test $? -ne 0 ; then
	mv -f $TMPH config.h
N
Nick Kurshev 已提交
1763
else
1764
	echo "config.h is unchanged"
N
Nick Kurshev 已提交
1765 1766
fi

1767
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
1768 1769


D
Diego Biurrun 已提交
1770
# build pkg-config files libav*.pc and libpostproc.pc
1771 1772 1773
lavc_version=`grep '#define LIBAVCODEC_VERSION ' "$source_path/libavcodec/avcodec.h" | sed 's/[^0-9\.]//g'`
lavf_version=`grep '#define LIBAVFORMAT_VERSION ' "$source_path/libavformat/avformat.h" | sed 's/[^0-9\.]//g'`
lavu_version=`grep '#define LIBAVUTIL_VERSION ' "$source_path/libavutil/avutil.h" | sed 's/[^0-9\.]//g'`
1774 1775

requires=
1776 1777
test "$dc1394" = "yes" && extralibs="$extralibs -ldc1394_control" && requires="$requires libraw1394"
test "$libgsm" = "yes" && extralibs="$extralibs -lgsm"
1778 1779
test "$libogg" = "yes" && requires="$requires ogg >= 1.1"
test "$vorbis" = "yes" && requires="$requires vorbis"
1780
test "$mp3lame" = "yes" && extralibs="$extralibs -lmp3lame"
1781
test "$theora" = "yes" && requires="$requires theora"
1782
test "$faad" = "yes" && test "$faadbin" = "no" && extralibs="$extralibs -lfaad"
1783 1784
test "$faac" = "yes" && extralibs="$extralibs -lfaac"
test "$xvid" = "yes" && extralibs="$extralibs -lxvidcore"
1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815

# libavutil.pc
cat <<EOF >libavutil.pc
prefix=$prefix
exec_prefix=\${prefix}
libdir=\${exec_prefix}/lib
includedir=\${prefix}/include

Name: libavutil
Description: FFmpeg utility library
Version: $lavu_version
Requires: 
Conflicts:
Libs: -L\${libdir} -lavutil
Cflags: -I\${includedir} -I\${includedir}/ffmpeg
EOF

cat <<EOF >libavutil-uninstalled.pc
prefix=
exec_prefix=
libdir=\${pcfiledir}/libavutil
includedir=\${pcfiledir}/libavutil

Name: libavutil
Description: FFmpeg utility library
Version: $lavu_version
Requires: 
Conflicts:
Libs: \${libdir}/${LIBPREF}avutil${LIBSUF}
Cflags: -I\${includedir}
EOF
1816 1817 1818 1819 1820 1821 1822 1823 1824 1825

# libavcodec.pc
cat <<EOF >libavcodec.pc
prefix=$prefix
exec_prefix=\${prefix}
libdir=\${exec_prefix}/lib
includedir=\${prefix}/include

Name: libavcodec
Description: FFmpeg codec library
1826 1827
Version: $lavc_version
Requires: $requires libavutil = $lavu_version
1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840
Conflicts:
Libs: -L\${libdir} -lavcodec $extralibs
Cflags: -I\${includedir} -I\${includedir}/ffmpeg
EOF

cat <<EOF >libavcodec-uninstalled.pc
prefix=
exec_prefix=
libdir=\${pcfiledir}/libavcodec
includedir=\${pcfiledir}/libavcodec

Name: libavcodec
Description: FFmpeg codec library
1841 1842
Version: $lavc_version
Requires: $requires libavutil = $lavu_version
1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856
Conflicts:
Libs: \${libdir}/${LIBPREF}avcodec${LIBSUF} $extralibs
Cflags: -I\${includedir}
EOF

# libavformat.pc
cat <<EOF >libavformat.pc
prefix=$prefix
exec_prefix=\${prefix}
libdir=\${exec_prefix}/lib
includedir=\${prefix}/include

Name: libavformat
Description: FFmpeg container format library
1857 1858
Version: $lavf_version
Requires: $requires libavcodec = $lavc_version
1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871
Conflicts:
Libs: -L\${libdir} -lavformat $extralibs
Cflags: -I\${includedir} -I\${includedir}/ffmpeg
EOF

cat <<EOF >libavformat-uninstalled.pc
prefix=
exec_prefix=
libdir=\${pcfiledir}/libavformat
includedir=\${pcfiledir}/libavformat

Name: libavformat
Description: FFmpeg container format library
1872 1873
Version: $lavf_version
Requires: $requires libavcodec = $lavc_version
1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888
Conflicts:
Libs: \${libdir}/${LIBPREF}avformat${LIBSUF} $extralibs
Cflags: -I\${includedir}
EOF


# libpostproc.pc
cat <<EOF >libpostproc.pc
prefix=$prefix
exec_prefix=\${prefix}
libdir=\${exec_prefix}/lib
includedir=\${prefix}/include

Name: libpostproc
Description: FFmpeg post processing library
1889
Version: $lavc_version
1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903
Requires: 
Conflicts:
Libs: -L\${libdir} -lpostproc
Cflags: -I\${includedir} -I\${includedir}/postproc
EOF

cat <<EOF >libpostproc-uninstalled.pc
prefix=
exec_prefix=
libdir=\${pcfiledir}/libavcodec/libpostproc
includedir=\${pcfiledir}/libavcodec/libpostproc

Name: libpostproc
Description: FFmpeg post processing library
1904
Version: $lavc_version
1905 1906 1907 1908 1909
Requires: 
Conflicts:
Libs: \${libdir}/${LIBPREF}postproc${LIBSUF}
Cflags: -I\${includedir}
EOF