configure 53.3 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 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
show_help(){
  echo "Usage: configure [options]"
  echo "Options: [defaults in brackets after descriptions]"
  echo
  echo "Standard options:"
  echo "  --help                   print this message"
  echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
  echo "  --libdir=DIR             install libs in DIR [PREFIX/lib]"
  echo "  --incdir=DIR             install includes in DIR [PREFIX/include/ffmpeg]"
  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]"
  echo "  --enable-x264            enable H.264 encoding via x264 [default=no]"
  echo "  --enable-mingw32         enable MinGW native/cross Windows compile"
  echo "  --enable-mingwce         enable MinGW native/cross WinCE compile"
  echo "  --enable-a52             enable GPLed A52 support [default=no]"
  echo "  --enable-a52bin          open liba52.so.0 at runtime [default=no]"
  echo "  --enable-dts             enable GPLed DTS support [default=no]"
  echo "  --enable-pp              enable GPLed postprocessing support [default=no]"
  echo "  --enable-static          build static libraries [default=yes]"
  echo "  --disable-static         do not build static libraries [default=no]"
  echo "  --enable-shared          build shared libraries [default=no]"
  echo "  --disable-shared         do not build shared libraries [default=yes]"
  echo "  --enable-amr_nb          enable amr_nb float audio codec"
  echo "  --enable-amr_nb-fixed    use fixed point for amr-nb codec"
  echo "  --enable-amr_wb          enable amr_wb float audio codec"
  echo "  --enable-amr_if2         enable amr_wb IF2 audio codec"
  echo "  --enable-sunmlib         use Sun medialib [default=no]"
  echo "  --enable-pthreads        use pthreads [default=no]"
  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]"
  echo ""
  echo "Advanced options (experts only):"
  echo "  --source-path=PATH       path to source code [$source_path]"
  echo "  --cross-prefix=PREFIX    use PREFIX for compilation tools [$cross_prefix]"
  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]"
  echo "  --build-suffix=SUFFIX    suffix for application specific build []"
  echo "  --cpu=CPU                force cpu to CPU  [$cpu]"
  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"
  echo "  --disable-iwmmxt         disable iwmmxt usage"
  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]"
  echo "  --disable-v4l2           disable video4linux2 grabbing [default=no]"
  echo "  --disable-bktr           disable bktr video grabbing [default=no]"
  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-lzo            disable lzo [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)"
  echo "                           MPEG audio decoding [default=no]"
  echo "  --disable-protocols      disable I/O protocols support [default=no]"
  echo "  --disable-ffserver       disable ffserver build"
  echo "  --disable-ffplay         disable ffplay build"
  echo "  --enable-small           optimize for size instead of speed"
  echo "  --enable-memalign-hack   emulate memalign, interferes with memory debuggers"
  echo "  --disable-strip          disable stripping of executables and shared libraries"
  echo "  --disable-encoder=NAME   disables encoder NAME"
  echo "  --enable-encoder=NAME    enables encoder NAME"
  echo "  --disable-decoder=NAME   disables decoder NAME"
  echo "  --enable-decoder=NAME    enables decoder NAME"
  echo "  --disable-encoders       disables all encoders"
  echo "  --disable-decoders       disables all decoders"
  echo "  --disable-muxers         disables all muxers"
  echo "  --disable-demuxers       disables all demuxers"
  echo ""
  echo "NOTE: Object files are built at the place where configure is launched."
  exit 1
}
98

99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
save_flags(){
    (:${SAVE_CFLAGS?}) 2>/dev/null && return
    SAVE_CFLAGS="$CFLAGS"
    SAVE_LDFLAGS="$LDFLAGS"
    SAVE_extralibs="$extralibs"
}

restore_flags(){
    CFLAGS="$SAVE_CFLAGS"
    LDFLAGS="$SAVE_LDFLAGS"
    extralibs="$SAVE_extralibs"
    unset SAVE_CFLAGS
    unset SAVE_LDFLAGS
    unset SAVE_extralibs
}

temp_cflags(){
    save_flags
    CFLAGS="$CFLAGS $*"
}

temp_ldflags(){
    save_flags
    LDFLAGS="$LDFLAGS $*"
}

temp_extralibs(){
    save_flags
    extralibs="$extralibs $*"
}

check_cc(){
    cat >$TMPC
132
    $cc $CFLAGS "$@" -c -o $TMPO $TMPC >/dev/null 2>&1
133 134 135 136
}

check_ld(){
    cat >$TMPC
137
    $cc $CFLAGS $LDFLAGS "$@" -o $TMPE $TMPC $extralibs >/dev/null 2>&1
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
}

check_cflags(){
    check_cc "$@" <<EOF && CFLAGS="$CFLAGS $*"
int x;
EOF
}

check_ldflags(){
    check_ld "$@" <<EOF && LDFLAGS="$LDFLAGS $*"
int x;
EOF
}

check_header(){
    header=$1
    shift
    check_cc "$@" <<EOF
#include <$header>
int x;
EOF
}

check_func(){
    func=$1
    shift
    check_ld "$@" <<EOF
extern int $func();
int main(){
    $func();
}
EOF
}

check_exec(){
    check_ld "$@" && (test -z "$cross_prefix" && $TMPE || true)
}

176 177
if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
    show_help
178 179
fi

180
# set temporary file name
Z
Zdenek Kabelac 已提交
181
if test ! -z "$TMPDIR" ; then
182
    TMPDIR1="${TMPDIR}"
Z
Zdenek Kabelac 已提交
183
elif test ! -z "$TEMPDIR" ; then
184
    TMPDIR1="${TEMPDIR}"
N
Nick Kurshev 已提交
185
else
186
    TMPDIR1="/tmp"
N
Nick Kurshev 已提交
187 188
fi

189 190
TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
191
TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}"
192 193 194
TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"

F
Fabrice Bellard 已提交
195 196
# default parameters
prefix="/usr/local"
197
libdir=""
D
Diego Biurrun 已提交
198
incdir=""
F
Fabrice Bellard 已提交
199
mandir=""
F
Fabrice Bellard 已提交
200
bindir=""
201
cross_prefix=""
F
Fabrice Bellard 已提交
202 203
cc="gcc"
ar="ar"
M
Michael Niedermayer 已提交
204
ranlib="ranlib"
205
make="make"
206
strip="strip"
F
Fabrice Bellard 已提交
207
cpu=`uname -m`
208
tune="generic"
209
powerpc_perf="no"
210
mmx="default"
211
iwmmxt="default"
212
altivec="default"
213
mmi="default"
F
Fabrice Bellard 已提交
214
case "$cpu" in
215
  i386|i486|i586|i686|i86pc|BePC)
F
Fabrice Bellard 已提交
216 217
    cpu="x86"
  ;;
218 219 220 221 222 223 224
  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
225 226
    fi
  ;;
227 228
  # armv4l is a subset of armv5tel
  armv4l|armv5tel)
229 230
    cpu="armv4l"
  ;;
231 232 233
  alpha)
    cpu="alpha"
  ;;
A
Alex Beregszaszi 已提交
234
  "Power Macintosh"|ppc|powerpc)
235 236
    cpu="powerpc"
  ;;
237
  mips|mipsel)
238 239
    cpu="mips"
  ;;
240
  sun4u|sparc64)
241 242
    cpu="sparc64"
  ;;
243 244 245
  sparc)
    cpu="sparc"
  ;;
A
Alex Beregszaszi 已提交
246 247 248
  sh4)
    cpu="sh4"
  ;;
249 250 251 252 253 254 255 256 257 258 259 260
  parisc|parisc64)
    cpu="parisc"
  ;;
  s390|s390x)
    cpu="s390"
  ;;
  m68k)
    cpu="m68k"
  ;;
  ia64)
    cpu="ia64"
  ;;
F
Fabrice Bellard 已提交
261
  *)
262
    cpu="unknown"
F
Fabrice Bellard 已提交
263 264 265
  ;;
esac
gprof="no"
F
Fabrice Bellard 已提交
266
v4l="yes"
L
Luca Abeni 已提交
267
v4l2="yes"
268
bktr="no"
F
Fabrice Bellard 已提交
269
audio_oss="yes"
270
audio_beos="no"
271
dv1394="yes"
272
dc1394="no"
F
Fabrice Bellard 已提交
273
network="yes"
274
zlib="yes"
275
lzo="yes"
276
libgsm="no"
277
mp3lame="no"
278
libogg="no"
279
vorbis="no"
N
Nilesh Bansal 已提交
280
theora="no"
281 282
faad="no"
faadbin="no"
283
faac="no"
284
xvid="no"
285
x264="no"
286
a52="no"
Z
Zdenek Kabelac 已提交
287
a52bin="no"
288
dts="no"
289
pp="no"
290
mingw32="no"
G
Gildas Bazin 已提交
291
mingwce="no"
292
cygwin="no"
293
os2="no"
294
lstatic="yes"
295
lshared="no"
296 297
optimize="yes"
debug="yes"
298
dostrip="yes"
299
installstrip="-s"
300
extralibs="-lm"
301
simpleidct="yes"
302
bigendian="no"
303
inttypes="yes"
304
emu_fast_int="no"
305
vhook="default"
306 307
dlfcn="no"
dlopen="no"
308
mpegaudio_hp="yes"
309
SHFLAGS='-shared -Wl,-soname,$@'
310
netserver="no"
311
need_inet_aton="no"
312
protocols="yes"
313
ffserver="yes"
314
ffplay="yes"
315
LIBOBJFLAGS=""
316
FFLDFLAGS=-Wl,--warn-common
317
FFSLDFLAGS=-Wl,-E
318
LDCONFIG="ldconfig"
319 320
LIBPREF="lib"
LIBSUF=".a"
321
LIB='$(LIBPREF)$(NAME)$(LIBSUF)'
322 323
SLIBPREF="lib"
SLIBSUF=".so"
324
SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF)'
325 326
SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
F
Fabrice Bellard 已提交
327
EXESUF=""
328
BUILDSUF=""
329
amr_nb="no"
330
amr_wb="no"
Z
Zdenek Kabelac 已提交
331
amr_nb_fixed="no"
332
amr_if2="no"
333
sunmlib="no"
334
pthreads="no"
335
gpl="no"
336
memalignhack="no"
337 338
muxers="yes"
demuxers="yes"
339 340 341 342 343 344 345

# OS specific
targetos=`uname -s`
case $targetos in
BeOS)
prefix="/boot/home/config"
# helps building libavcodec
346
CFLAGS="$CFLAGS -DPIC -fomit-frame-pointer"
347
# 3 gcc releases known for BeOS, each with ugly bugs
348
gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
349 350 351 352 353 354 355 356
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
357
SHFLAGS=-nostart
D
Diego Biurrun 已提交
358
# disable Linux things
359
audio_oss="no"
F
Fabrice Bellard 已提交
360
v4l="no"
L
Luca Abeni 已提交
361
v4l2="no"
362
dv1394="no"
D
Diego Biurrun 已提交
363
# enable BeOS things
364
audio_beos="yes"
365 366 367 368 369
# 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
370
netserver="yes"
371
need_inet_aton="yes"
372
extralibs="-lnet"
373
fi ;;
374 375
SunOS)
v4l="no"
L
Luca Abeni 已提交
376
v4l2="no"
377
audio_oss="no"
378
dv1394="no"
379
make="gmake"
380
FFLDFLAGS=""
381 382 383 384
FFSLDFLAGS=""
need_inet_aton="yes"
extralibs="$extralibs -lsocket -lnsl"
;;
385 386
NetBSD)
v4l="no"
L
Luca Abeni 已提交
387
v4l2="no"
388
bktr="yes"
389 390 391
audio_oss="yes"
dv1394="no"
make="gmake"
392
FFLDFLAGS="$FFLDFLAGS -export-dynamic"
393
extralibs="$extralibs -lossaudio"
394
;;
395 396
OpenBSD)
v4l="no"
L
Luca Abeni 已提交
397
v4l2="no"
398
bktr="yes"
399 400 401
audio_oss="yes"
dv1394="no"
make="gmake"
402
LIBOBJFLAGS="\$(PIC)"
403
FFLDFLAGS="$FFLDFLAGS -export-dynamic -pthread"
404
LDCONFIG="ldconfig -m \$(libdir)"
405 406
extralibs="$extralibs -lossaudio"
;;
407 408
FreeBSD)
v4l="no"
L
Luca Abeni 已提交
409
v4l2="no"
410
bktr="yes"
411
audio_oss="yes"
412
dv1394="no"
413
make="gmake"
414
CFLAGS="$CFLAGS -pthread"
415
FFLDFLAGS="$FFLDFLAGS -export-dynamic -pthread"
416
;;
417 418 419 420 421 422 423 424 425
GNU/kFreeBSD)
v4l="no"
v4l2="no"
bktr="yes"
audio_oss="yes"
dv1394="no"
CFLAGS="$CFLAGS -pthread"
LDFLAGS="$LDFLAGS -rdynamic"
;;
426
BSD/OS)
F
Fabrice Bellard 已提交
427
v4l="no"
L
Luca Abeni 已提交
428
v4l2="no"
429
bktr="yes"
F
Fabrice Bellard 已提交
430
audio_oss="yes"
431
dv1394="no"
432 433
extralibs="-lpoll -lgnugetopt -lm"
make="gmake"
434 435
strip="strip -d"
installstrip=""
436
;;
437
Darwin)
438
cc="cc"
439
v4l="no"
L
Luca Abeni 已提交
440
v4l2="no"
441
audio_oss="no"
442
dv1394="no"
443
SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(libdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION)"
444
extralibs=""
445
darwin="yes"
446
strip="strip -x"
447
installstrip=""
448
FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
449
SLIBSUF=".dylib"
450 451
SLIBNAME_WITH_FULLVERSION='$(SLIBPREF)$(NAME).$(LIBVERSION)$(SLIBSUF)'
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)'
452
FFSLDFLAGS=-Wl,-bind_at_load
453
;;
454
MINGW32*)
F
Fabrice Bellard 已提交
455
# Note: the rest of the mingw32 config is done afterwards as mingw32
D
Diego Biurrun 已提交
456
# can be forced on the command line for Linux cross compilation.
457 458
mingw32="yes"
;;
459 460
CYGWIN*)
v4l="no"
L
Luca Abeni 已提交
461
v4l2="no"
462
audio_oss="yes"
463
dv1394="no"
464
vhook="no"
465 466
extralibs=""
cygwin="yes"
467
EXESUF=".exe"
468
;;
469
Linux)
470
FFLDFLAGS="$FFLDFLAGS -rdynamic -Wl,--as-needed -Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil"
471
;;
472 473 474
IRIX*)
ranlib="echo ignoring ranlib"
v4l="no"
L
Luca Abeni 已提交
475
v4l2="no"
476 477 478
audio_oss="no"
make="gmake"
;;
479 480
OS/2)
TMPE=$TMPE".exe"
481
ar="emxomfar -p128"
482 483
ranlib="echo ignoring ranlib"
strip="echo ignoring strip"
484
CFLAGS="$CFLAGS -Zomf"
485
FFLDFLAGS="-Zomf -Zstack 16384 -s"
486
SHFLAGS="-Zdll -Zomf"
487 488 489 490 491
FFSLDFLAGS=""
LIBPREF=""
LIBSUF=".lib"
SLIBPREF=""
SLIBSUF=".dll"
F
Fabrice Bellard 已提交
492
EXESUF=".exe"
493
extralibs=""
494
pkg_requires=""
495
v4l="no"
L
Luca Abeni 已提交
496
v4l2="no"
497
audio_oss="no"
498
dv1394="no"
499
ffserver="no"
500
vhook="no"
501
os2="yes"
502

503
;;
504 505
*) ;;
esac
F
Fabrice Bellard 已提交
506

D
Diego Biurrun 已提交
507
# From MPlayer configure. We need TARGET_OS available
508
# to the Makefile, so it can distinguish between flavors
D
Diego Biurrun 已提交
509
# of AltiVec on PowerPC.
510 511
TARGET_OS=`( uname -s ) 2>&1`
  case "$TARGET_OS" in
A
Alex Beregszaszi 已提交
512
  Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU|BeOS|MorphOS)
513 514 515 516 517 518 519 520 521 522 523 524 525 526 527
    ;;
  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

528
# find source path
529
source_path="`dirname $0`"
530 531 532 533
source_path_used="yes"
if test -z "$source_path" -o "$source_path" = "." ; then
    source_path=`pwd`
    source_path_used="no"
534 535
else
    source_path="`cd \"$source_path\"; pwd`"
F
Fabrice Bellard 已提交
536 537
fi

538 539 540 541 542
FFMPEG_CONFIGURATION=" "
for opt do
  FFMPEG_CONFIGURATION="$FFMPEG_CONFIGURATION""$opt "
done

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

F
Fabrice Bellard 已提交
545 546
for opt do
  case "$opt" in
547
  --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`; force_prefix=yes
F
Fabrice Bellard 已提交
548
  ;;
549
  --libdir=*) libdir=`echo $opt | cut -d '=' -f 2`; force_libdir=yes
550
  ;;
D
Diego Biurrun 已提交
551 552
  --incdir=*) incdir=`echo $opt | cut -d '=' -f 2`;
  ;;
F
Fabrice Bellard 已提交
553 554
  --mandir=*) mandir=`echo $opt | cut -d '=' -f 2`
  ;;
555 556 557 558
  --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
  ;;
  --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
  ;;
559
  --cc=*) cc=`echo $opt | cut -d '=' -f 2-`
F
Fabrice Bellard 已提交
560
  ;;
561 562
  --make=*) make=`echo $opt | cut -d '=' -f 2`
  ;;
563
  --extra-cflags=*) CFLAGS="$CFLAGS ${opt#--extra-cflags=}"
564
  ;;
565
  --extra-ldflags=*) FFLDFLAGS="$FFLDFLAGS ${opt#--extra-ldflags=}"
566 567 568
  ;;
  --extra-libs=*) extralibs=${opt#--extra-libs=}
  ;;
569 570
  --build-suffix=*) BUILDSUF=${opt#--build-suffix=}
  ;;
F
Fabrice Bellard 已提交
571 572
  --cpu=*) cpu=`echo $opt | cut -d '=' -f 2`
  ;;
573 574
  --tune=*) tune=`echo $opt | cut -d '=' -f 2`
  ;;
575 576
  --powerpc-perf-enable) powerpc_perf="yes"
  ;;
F
Fabrice Bellard 已提交
577 578
  --disable-mmx) mmx="no"
  ;;
579 580
  --disable-iwmmxt) iwmmxt="no"
  ;;
581 582
  --disable-altivec) altivec="no"
  ;;
F
Fabrice Bellard 已提交
583 584
  --enable-gprof) gprof="yes"
  ;;
F
Fabrice Bellard 已提交
585 586
  --disable-v4l) v4l="no"
  ;;
L
Luca Abeni 已提交
587 588
  --disable-v4l2) v4l2="no"
  ;;
589 590
  --disable-bktr) bktr="no"
  ;;
F
Fabrice Bellard 已提交
591 592
  --disable-audio-oss) audio_oss="no"
  ;;
593 594
  --disable-audio-beos) audio_beos="no"
  ;;
595 596
  --disable-dv1394) dv1394="no"
  ;;
597
  --disable-network) network="no"; ffserver="no"
F
Fabrice Bellard 已提交
598
  ;;
599 600
  --disable-zlib) zlib="no"
  ;;
601 602
  --disable-lzo) lzo="no"
  ;;
603
  --enable-a52) a52="yes"
604
  ;;
M
Michael Niedermayer 已提交
605
  --enable-a52bin) a52bin="yes"
Z
Zdenek Kabelac 已提交
606
  ;;
607 608
  --enable-dts) dts="yes"
    extralibs="$extralibs -ldts"
609
  ;;
610
  --enable-pp) pp="yes"
611
  ;;
612
  --enable-libgsm) libgsm="yes"
613
    extralibs="$extralibs -lgsm"
614
  ;;
615 616
  --enable-mp3lame) mp3lame="yes"
    extralibs="$extralibs -lmp3lame"
617
  ;;
618
  --enable-libogg) libogg="yes"
619 620
    extralibs="$extralibs -logg"
    pkg_requires="$pkg_requires ogg >= 1.1"
N
Nilesh Bansal 已提交
621
  ;;
622
  --enable-vorbis) vorbis="yes"
623 624
    extralibs="$extralibs -lvorbis -lvorbisenc"
    pkg_requires="$pkg_requires vorbis vorbisenc"
625
  ;;
N
Nilesh Bansal 已提交
626
  --enable-theora) theora="yes"
627 628
    extralibs="$extralibs -ltheora"
    pkg_requires="$pkg_requires theora"
N
Nilesh Bansal 已提交
629
  ;;
Z
Zdenek Kabelac 已提交
630
  --enable-faad) faad="yes"
631
    extralibs="$extralibs -lfaad"
Z
Zdenek Kabelac 已提交
632 633 634
  ;;
  --enable-faadbin) faadbin="yes"
  ;;
635 636
  --enable-faac) faac="yes"
    extralibs="$extralibs -lfaac"
637
  ;;
638
  --enable-xvid) xvid="yes"
639
    extralibs="$extralibs -lxvidcore"
640
  ;;
641 642
  --enable-x264) x264="yes"
    extralibs="$extralibs -lx264"
643
  ;;
644
  --enable-dc1394) dc1394="yes"
645 646
    extralibs="$extralibs -ldc1394_control -lraw1394"
    pkg_requires="$pkg_requires libraw1394"
647
  ;;
648 649
  --disable-vhook) vhook="no"
  ;;
650
  --disable-simple_idct) simpleidct="no"
651
  ;;
652 653
  --enable-mingw32) mingw32="yes"
  ;;
G
Gildas Bazin 已提交
654 655
  --enable-mingwce) mingwce="yes"
  ;;
656 657 658 659
  --enable-static) lstatic="yes"
  ;;
  --disable-static) lstatic="no"
  ;;
660
  --enable-shared) lshared="yes"
N
Nick Kurshev 已提交
661
  ;;
662 663
  --disable-shared) lshared="no"
  ;;
664 665 666 667
  --disable-debug) debug="no"
  ;;
  --disable-opts) optimize="no"
  ;;
668 669
  --disable-mpegaudio-hp) mpegaudio_hp="no"
  ;;
670 671
  --disable-protocols) protocols="no"; network="no"; ffserver="no"
  ;;
672 673
  --disable-ffserver) ffserver="no"
  ;;
674 675
  --disable-ffplay) ffplay="no"
  ;;
676
  --enable-small) optimize="small"
677
  ;;
D
Diego Biurrun 已提交
678
  --enable-amr_nb) amr="yes"; amr_nb="yes"; amr_nb_fixed="no"
679
  ;;
D
Diego Biurrun 已提交
680
  --enable-amr_nb-fixed) amr="yes"; amr_nb_fixed="yes"; amr_nb="no"
Z
Zdenek Kabelac 已提交
681
  ;;
D
Diego Biurrun 已提交
682
  --enable-amr_wb) amr="yes"; amr_wb="yes"
683
  ;;
D
Diego Biurrun 已提交
684
  --enable-amr_if2) amr="yes"; amr_if2="yes"
685
  ;;
686 687
  --enable-sunmlib) sunmlib="yes"
  ;;
688 689
  --enable-pthreads) pthreads="yes"
  ;;
690 691
  --enable-gpl) gpl="yes"
  ;;
692 693
  --enable-memalign-hack) memalignhack="yes"
  ;;
694 695
  --disable-strip) dostrip="no"
  ;;
696
  --enable-encoder=*) CODEC_LIST="$CODEC_LIST ${opt#--enable-encoder=}_encoder"
697
  ;;
698 699 700 701 702
  --enable-decoder=*) CODEC_LIST="$CODEC_LIST ${opt#--enable-decoder=}_decoder"
  ;;
  --disable-encoder=*) CODEC_LIST="`echo $CODEC_LIST | sed -e \"s#${opt#--disable-encoder=}_encoder##\"`"
  ;;
  --disable-decoder=*) CODEC_LIST="`echo $CODEC_LIST | sed -e \"s#${opt#--disable-decoder=}_decoder##\"`"
703 704 705
  ;;
  --disable-encoders) CODEC_LIST="`echo $CODEC_LIST | sed 's/[-_a-zA-Z0-9]*encoder//g'`"
  ;;
706 707
  --disable-decoders) CODEC_LIST="`echo $CODEC_LIST | sed 's/[-_a-zA-Z0-9]*decoder//g'`"
  ;;
708
  --disable-muxers) muxers="no"; ffserver="no"
709 710 711
  ;;
  --disable-demuxers) demuxers="no"
  ;;
712 713
  --help) show_help
  ;;
714 715 716 717 718
  *)
  echo "Unknown option \"$opt\"."
  echo "See $0 --help for available options."
  exit 1
  ;;
F
Fabrice Bellard 已提交
719 720 721
  esac
done

722 723 724 725

# Combine FFLDFLAGS and the LDFLAGS environment variable
LDFLAGS="$FFLDFLAGS $LDFLAGS"

726 727 728 729 730
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
ranlib="${cross_prefix}${ranlib}"
strip="${cross_prefix}${strip}"

731 732 733 734 735 736 737 738 739 740 741
# we need to build at least one lib type
if test "$lstatic" = "no" && test "$lshared" = "no" ; then
    cat <<EOF
At least one library type must be built.
Specify --enable-static to build the static libraries or --enable-shared to
build the shared libraries as well. To only build the shared libraries specify
--disable-static in addition to --enable-shared.
EOF
    exit 1;
fi

N
Nilesh Bansal 已提交
742
if test "$theora" = "yes" ; then
743
    if test "$libogg" = "no"; then
D
Diego Biurrun 已提交
744
        echo "libogg must be enabled to enable Theora."
N
Nilesh Bansal 已提交
745 746 747 748 749 750
        fail="yes"
        theora="no"
    fi
fi

if test "$vorbis" = "yes" ; then
751
    if test "$libogg" = "no"; then
D
Diego Biurrun 已提交
752
        echo "libogg must be enabled to enable Vorbis."
N
Nilesh Bansal 已提交
753 754 755 756 757
        fail="yes"
        vorbis="no"
    fi
fi

758
if test "$gpl" != "yes"; then
759
    if test "$pp" != "no"; then
D
Diego Biurrun 已提交
760
        echo "The Postprocessing code is under GPL and --enable-gpl is not specified."
761 762 763 764
        fail="yes"
    fi

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

769
    if test "$xvid" != "no"; then
D
Diego Biurrun 已提交
770
        echo "libxvidcore is under GPL and --enable-gpl is not specified."
771 772 773
        fail="yes"
    fi

774
    if test "$x264" != "no"; then
D
Diego Biurrun 已提交
775
        echo "x264 is under GPL and --enable-gpl is not specified."
776 777 778
        fail="yes"
    fi

779
    if test "$dts" != "no"; then
D
Diego Biurrun 已提交
780
        echo "libdts is under GPL and --enable-gpl is not specified."
781 782
        fail="yes"
    fi
783

784
    if test "$faad" != "no" -o "$faadbin" != "no"; then
785 786
        if check_header faad.h; then
            check_cc << EOF
787 788 789 790 791 792
                #include <faad.h>
                #ifndef FAAD2_VERSION
                ok faad1
                #endif
                int main( void ) { return 0; }
EOF
793
            if test $? = 0 ; then
D
Diego Biurrun 已提交
794
                echo "FAAD2 is under GPL and --enable-gpl is not specified."
795 796 797 798 799
                fail="yes"
            fi
        else
            faad="no"
            faadbin="no"
D
Diego Biurrun 已提交
800
            echo "FAAD test failed."
801 802
        fi
    fi
803

804

M
10l  
Michael Niedermayer 已提交
805
    if test "$fail" = "yes"; then
806 807 808 809
        exit 1
    fi
fi

D
Diego Biurrun 已提交
810
# compute MMX state
811
if test $mmx = "default"; then
812
    if test $cpu = "x86" -o $cpu = "x86_64"; then
813 814 815 816 817 818
        mmx="yes"
    else
        mmx="no"
    fi
fi

819 820
# check iwmmxt support
if test $iwmmxt = "default" -a $cpu = "armv4l"; then
821 822
    iwmmxt=no
    check_cc <<EOF && iwmmxt=yes
823
        int main(void) {
824 825 826 827 828
        __asm__ __volatile__ ("wunpckelub wr6, wr4");
        }
EOF
fi

829
#Darwin CC versions
830
needmdynamicnopic="no"
831
if test $targetos = Darwin; then
832
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
833
        CFLAGS="$CFLAGS -qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto"
834
    else
835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852
        gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
        case "$gcc_version" in
            *2.95*)
                CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer"
                ;;
            *[34].*)
                CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer -force_cpusubtype_ALL -Wno-sign-compare"
                if test "$lshared" = no; then
                   needmdynamicnopic="yes"
                fi
                ;;
            *)
                CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer"
                if test "$lshared" = no; then
                   needmdynamicnopic="yes"
                fi
                ;;
        esac
853 854 855
    fi
fi

856 857 858 859 860 861 862 863 864
# Can only do AltiVec on PowerPC
if test $altivec = "default"; then
    if test $cpu = "powerpc"; then
        altivec="yes"
    else
        altivec="no"
    fi
fi

865 866
# Add processor-specific flags
TUNECPU="generic"
867
POWERPCMODE="32bits"
868 869
if test $tune != "generic"; then
    case $tune in
870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917
        601|ppc601|PowerPC601)
            CFLAGS="$CFLAGS -mcpu=601"
            if test $altivec = "yes"; then
                echo "WARNING: Tuning for PPC601 but AltiVec enabled!";
            fi
            TUNECPU=ppc601
        ;;
        603*|ppc603*|PowerPC603*)
            CFLAGS="$CFLAGS -mcpu=603"
            if test $altivec = "yes"; then
                echo "WARNING: Tuning for PPC603 but AltiVec enabled!";
            fi
            TUNECPU=ppc603
        ;;
        604*|ppc604*|PowerPC604*)
            CFLAGS="$CFLAGS -mcpu=604"
            if test $altivec = "yes"; then
                echo "WARNING: Tuning for PPC604 but AltiVec enabled!";
            fi
            TUNECPU=ppc604
        ;;
        G3|g3|75*|ppc75*|PowerPC75*)
            CFLAGS="$CFLAGS -mcpu=750 -mtune=750 -mpowerpc-gfxopt"
            if test $altivec = "yes"; then
                echo "WARNING: Tuning for PPC75x but AltiVec enabled!";
            fi
            TUNECPU=ppc750
        ;;
        G4|g4|745*|ppc745*|PowerPC745*)
            CFLAGS="$CFLAGS -mcpu=7450 -mtune=7450 -mpowerpc-gfxopt"
            if test $altivec = "no"; then
                echo "WARNING: Tuning for PPC745x but AltiVec disabled!";
            fi
            TUNECPU=ppc7450
        ;;
        74*|ppc74*|PowerPC74*)
            CFLAGS="$CFLAGS -mcpu=7400 -mtune=7400 -mpowerpc-gfxopt"
            if test $altivec = "no"; then
                echo "WARNING: Tuning for PPC74xx but AltiVec disabled!";
            fi
            TUNECPU=ppc7400
        ;;
        G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
            CFLAGS="$CFLAGS -mcpu=970 -mtune=970 -mpowerpc-gfxopt -mpowerpc64"
            if test $altivec = "no"; then
                echo "WARNING: Tuning for PPC970 but AltiVec disabled!";
            fi
            TUNECPU=ppc970
918
            POWERPCMODE="64bits"
919 920 921 922 923 924 925
        ;;
        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)
            CFLAGS="$CFLAGS -march=$tune"
        ;;
        *)
        echo "WARNING: Unknown CPU \"$tune\", ignored."
        ;;
926 927 928
    esac
fi

929
# AltiVec flags: The FSF version of GCC differs from the Apple version
930 931
if test $cpu = "powerpc"; then
    if test $altivec = "yes"; then
932
        if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
S
Steven M. Schultz 已提交
933
            CFLAGS="$CFLAGS -faltivec"
934 935 936 937 938 939
        else
            CFLAGS="$CFLAGS -maltivec -mabi=altivec"
        fi
    fi
fi

940
check_header altivec.h && _altivec_h=yes || _altivec_h=no
941

D
Diego Biurrun 已提交
942
# check if our compiler supports Motorola AltiVec C API
943
if test $altivec = "yes"; then
M
Måns Rullgård 已提交
944 945 946 947 948 949
    if test $_altivec_h = "yes"; then
        inc_altivec_h="#include <altivec.h>"
    else
        inc_altivec_h=
    fi
    check_cc <<EOF || altivec=no
950
$inc_altivec_h
951 952 953 954 955 956 957
int main(void) {
    vector signed int v1, v2, v3;
    v1 = vec_add(v2,v3);
    return 0;
}
EOF
fi
958

D
Diego Biurrun 已提交
959
# mmi only available on mips
960 961 962 963 964 965 966 967
if test $mmi = "default"; then
    if test $cpu = "mips"; then
        mmi="yes"
    else
        mmi="no"
    fi
fi

D
Diego Biurrun 已提交
968
# check if our compiler supports mmi
969
if test $mmi = "yes"; then
M
Måns Rullgård 已提交
970
    check_cc <<EOF || mmi="no"
971 972 973 974 975 976 977
int main(void) {
    __asm__ ("lq \$2, 0(\$2)");
    return 0;
}
EOF
fi

G
Gildas Bazin 已提交
978
if test "$mingw32" = "yes" -o "$mingwce" = "yes"; then
979 980 981 982 983
    if test "$lshared" = "yes" && test "$lstatic" = "yes" ; then
        cat <<EOF
You can only build one library type at once on MinGW.
Specify --disable-static --enable-shared to only build
the shared libraries. To build only the static libraries
984
you do not need to pass additional options.
985 986 987
EOF
        exit 1
    fi
988
    v4l="no"
L
Luca Abeni 已提交
989
    v4l2="no"
990
    bktr="no"
991
    audio_oss="no"
992
    dv1394="no"
993
    dc1394="no"
F
Fabrice Bellard 已提交
994
    ffserver="no"
995
    network="no"
M
Måns Rullgård 已提交
996 997 998
    if test "$mingwce" = "yes"; then
        protocols="no"
    fi
F
Fabrice Bellard 已提交
999 1000 1001
    SLIBPREF=""
    SLIBSUF=".dll"
    EXESUF=".exe"
1002 1003
    if test "$force_prefix" != yes; then prefix="/c/Program Files/FFmpeg"; fi
    if test "$force_libdir" != yes; then bindir="$prefix"; fi
1004 1005
fi

F
Fabrice Bellard 已提交
1006
if test -z "$cross_prefix" ; then
M
Måns Rullgård 已提交
1007 1008 1009
    # ---
    # big/little-endian test
    check_ld <<EOF
1010 1011
#include <inttypes.h>
int main(int argc, char ** argv){
1012 1013
        volatile uint32_t i=0x01234567;
        return (*((uint8_t*)(&i))) == 0x67;
1014 1015 1016
}
EOF

M
Måns Rullgård 已提交
1017 1018 1019 1020 1021
    if test $? = 0 ; then
        $TMPE && bigendian="yes"
    else
        echo big/little test failed
    fi
F
Fabrice Bellard 已提交
1022
else
M
Måns Rullgård 已提交
1023 1024 1025 1026
    # programs cannot be launched if cross compiling, so make a static guess
    if test "$cpu" = "powerpc" -o "$cpu" = "mips" ; then
        bigendian="yes"
    fi
F
Fabrice Bellard 已提交
1027 1028
fi

1029 1030
# ---
# *inttypes.h* test
1031
check_header inttypes.h || inttypes=no
1032

1033 1034
# ---
# *int_fast* test
1035
check_cc <<EOF || emu_fast_int=yes
1036 1037
#include <inttypes.h>
int main(int argc, char ** argv){
1038 1039
        volatile uint_fast64_t i=0x01234567;
        return 0;
1040 1041 1042
}
EOF

N
Nick Kurshev 已提交
1043 1044 1045 1046 1047
# ---
# check availability of some header files

_memalign=no
_malloc_h=no
1048 1049 1050 1051
if check_header malloc.h; then
    _malloc_h=yes
    _memalign=yes
    check_func memalign || _memalign="no"
N
Nick Kurshev 已提交
1052 1053
fi

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

1059
check_func localtime_r && localtime_r=yes || localtime_r=no
1060

1061
if test "$zlib" = "yes"; then
1062 1063 1064 1065
    temp_extralibs -lz
    check_header zlib.h && check_func zlibVersion || zlib="no"
    # XXX: more tests needed - runtime test
    restore_flags
1066 1067
fi
if test "$zlib" = "yes"; then
1068
    extralibs="$extralibs -lz"
1069 1070
fi

1071
if test "$lzo" = "yes" -a "$gpl" = "yes"; then
1072 1073 1074
    temp_extralibs -llzo
    check_header lzo1x.h && check_func lzo_version || lzo="no"
    restore_flags
1075
else
1076
    lzo="no"
1077 1078
fi
if test "$lzo" = "yes"; then
1079
    extralibs="$extralibs -llzo"
1080 1081
fi

1082
# test for lrintf in math.h
1083
check_exec <<EOF && have_lrintf=yes || have_lrintf=no
1084 1085 1086 1087 1088
#define _ISOC9X_SOURCE  1
#include <math.h>
int main( void ) { return (lrintf(3.999f) > 0)?0:1; }
EOF

F
Falk Hüffner 已提交
1089 1090
_restrict=
for restrict_keyword in restrict __restrict__ __restrict; do
1091 1092 1093 1094 1095 1096 1097
    check_cc <<EOF
void foo(char * $restrict_keyword p);
EOF
    if test $? = 0; then
        _restrict=$restrict_keyword
        break;
    fi
F
Falk Hüffner 已提交
1098 1099
done

1100 1101
# test gcc version to see if vector builtins can be used
# currently only used on i386 for MMX builtins
1102
check_cc -msse <<EOF && builtin_vector=yes || builtin_vector=no
1103
#include <xmmintrin.h>
1104
int main(void) {
1105 1106 1107 1108 1109 1110 1111 1112
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
return 0;
#else
#error no vector builtins
#endif
}
EOF

1113
# test for mm3dnow.h
1114 1115
test "$cpu" = "x86_64" && march=k8 || march=athlon
check_cc -march=$march <<EOF && mm3dnow=yes || mm3dnow=no
1116 1117
#include <mm3dnow.h>
int main(void) {
1118 1119
__m64 b1;
b1 = _m_pswapd(b1);
1120
_m_femms();
1121 1122 1123 1124
return 0;
}
EOF

1125
check_cflags -Wdeclaration-after-statement
1126

1127 1128
# dlopen/dlfcn.h probing

1129
check_header dlfcn.h && dlfcn=yes
1130

1131 1132 1133 1134
temp_extralibs -ldl
if check_func dlopen; then
    dlopen=yes
    ldl=-ldl
1135
fi
1136
restore_flags
1137

1138 1139 1140
if check_func dlopen; then
    dlopen=yes
    ldl=
1141 1142
fi

M
Måns Rullgård 已提交
1143 1144
if test "$vhook" = "default"; then
    vhook="$dlopen"
1145 1146
fi

M
Michael Niedermayer 已提交
1147
if test "$vhook" = "yes" -o "$a52bin" = "yes" -o "$faadbin" = "yes"; then
M
Måns Rullgård 已提交
1148
    extralibs="$extralibs $ldl"
M
Michael Niedermayer 已提交
1149 1150 1151
fi


1152
##########################################
D
Diego Biurrun 已提交
1153
# imlib check
1154

1155 1156
temp_extralibs -lImlib2
check_ld <<EOF && imlib2=yes || imlib2=no
1157 1158 1159 1160
#include <X11/Xlib.h>
#include <Imlib2.h>
int main( void ) { return (int) imlib_load_font("foo"); }
EOF
1161
restore_flags
1162

1163
##########################################
D
Diego Biurrun 已提交
1164
# FreeType check
1165

1166
freetype2=no
1167
if test "x$targetos" != "xBeOS"; then
1168
  if (freetype-config --version) >/dev/null 2>&1 ; then
1169 1170 1171 1172 1173 1174 1175
      temp_cflags `freetype-config --cflags`
      temp_extralibs `freetype-config --libs`
      check_ld <<EOF && freetype2=yes
#include <ft2build.h>
int main( void ) { return (int) FT_Init_FreeType(0); }
EOF
      restore_flags
1176
  fi
1177 1178
fi

1179
##########################################
D
Diego Biurrun 已提交
1180
# SDL check
1181 1182 1183

sdl_too_old=no
sdl=no
1184 1185
SDL_CONFIG="${cross_prefix}sdl-config"
if ("${SDL_CONFIG}" --version) >/dev/null 2>&1 ; then
1186 1187 1188 1189 1190 1191 1192 1193 1194
    temp_cflags `"${SDL_CONFIG}" --cflags`
    temp_extralibs `"${SDL_CONFIG}" --libs`
    check_ld <<EOF
#include <SDL.h>
#undef main /* We don't want SDL to override our main() */
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
EOF
    if test $? = 0; then
        _sdlversion=`"${SDL_CONFIG}" --version | sed 's/[^0-9]//g'`
1195
        if test "$_sdlversion" -lt 121 ; then
1196 1197 1198
            sdl_too_old=yes
        else
            sdl=yes
1199 1200 1201 1202 1203 1204 1205 1206
            check_cc <<EOF && sdl_video_size=yes || sdl_video_size=no
#include <SDL.h>
int main(void){
    const SDL_VideoInfo *vi = SDL_GetVideoInfo();
    int w = vi->current_w;
    return 0;
}
EOF
1207 1208
        fi
    fi
1209
    restore_flags
M
Michael Niedermayer 已提交
1210
fi
1211

1212
##########################################
D
Diego Biurrun 已提交
1213
# texi2html check
1214 1215

texi2html=no
1216
if (texi2html -version) >/dev/null 2>&1; then
1217 1218 1219
texi2html=yes
fi

1220
##########################################
D
Diego Biurrun 已提交
1221
# IPv6 check
1222

1223
test "$network" = "yes" && check_ld <<EOF && ipv6=yes || ipv6=no
1224 1225 1226 1227 1228 1229 1230 1231 1232
#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);
1233
  IN6_IS_ADDR_MULTICAST((const struct in6_addr *)0);
1234 1235 1236
}
EOF

1237
# check for video4linux2 --- V4L2_PIX_FMT_YUV420
1238
test "$v4l2" = "yes" && check_cc <<EOF || v4l2="no"
1239
#include <sys/time.h>
1240 1241
#include <asm/types.h>
#include <linux/videodev2.h>
1242
int dummy = V4L2_PIX_FMT_YUV420;
1243
struct v4l2_buffer dummy1;
1244 1245
EOF

1246 1247
check_cflags -Wall
check_cflags -Wno-switch
1248

M
Måns Rullgård 已提交
1249 1250
if test "$sdl" = "no"; then
    ffplay=no
F
Fabrice Bellard 已提交
1251 1252
fi

1253
if test "$debug" = "yes"; then
1254
    CFLAGS="-g $CFLAGS"
1255 1256 1257
fi

if test "$optimize" = "small"; then
1258
#  CFLAGS=${CFLAGS//-O3/-Os}
1259
    CFLAGS="$CFLAGS -Os"
1260 1261
fi

1262
if test "$optimize" = "yes"; then
1263
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
1264 1265
        CFLAGS="$CFLAGS -O5"
        LDFLAGS="$LDFLAGS -O5"
1266
    else
1267
        CFLAGS="-O3 $CFLAGS"
1268
    fi
1269 1270
fi

1271 1272
# PIC flags for shared library objects where they are needed
if test "$lshared" = "yes" ; then
M
Måns Rullgård 已提交
1273 1274 1275 1276 1277
    # LIBOBJFLAGS may have already been set in the OS configuration
    if test -z "$LIBOBJFLAGS" ; then
        if test "$cpu" = "x86_64" -o "$cpu" = "ia64" -o "$cpu" = "alpha" ; then
            LIBOBJFLAGS="\$(PIC)"
        fi
1278 1279 1280
    fi
fi

F
Fabrice Bellard 已提交
1281
if test x"$bindir" = x""; then
M
Måns Rullgård 已提交
1282
    bindir="${prefix}/bin"
F
Fabrice Bellard 已提交
1283 1284
fi

1285
if test x"$libdir" = x""; then
M
Måns Rullgård 已提交
1286
    libdir="${prefix}/lib"
1287 1288
fi

D
Diego Biurrun 已提交
1289
if test x"$incdir" = x""; then
M
Måns Rullgård 已提交
1290
    incdir="${prefix}/include/ffmpeg"
D
Diego Biurrun 已提交
1291 1292
fi

F
Fabrice Bellard 已提交
1293
if test x"$mandir" = x""; then
M
Måns Rullgård 已提交
1294
    mandir="${prefix}/man"
F
Fabrice Bellard 已提交
1295 1296
fi

D
Diego Biurrun 已提交
1297 1298
echo "install prefix   $prefix"
echo "source path      $source_path"
F
Fabrice Bellard 已提交
1299
echo "C compiler       $cc"
1300
echo "make             $make"
1301
echo "CPU              $cpu ($tune)"
1302
if test "$BUILDSUF" != ""; then
M
Måns Rullgård 已提交
1303
    echo "build suffix     $BUILDSUF"
1304
fi
D
Diego Biurrun 已提交
1305
echo "big-endian       $bigendian"
1306
echo "inttypes.h       $inttypes"
1307
echo "broken inttypes.h $emu_fast_int"
1308
if test $cpu = "x86" -o $cpu = "x86_64"; then
M
Måns Rullgård 已提交
1309 1310 1311
    echo "MMX enabled      $mmx"
    echo "Vector Builtins  $builtin_vector"
    echo "3DNow! Builtins  $mm3dnow"
F
Fabrice Bellard 已提交
1312
fi
1313
if test $cpu = "armv4l"; then
M
Måns Rullgård 已提交
1314
    echo "IWMMXT enabled   $iwmmxt"
1315
fi
F
Fabrice Bellard 已提交
1316
if test $cpu = "mips"; then
M
Måns Rullgård 已提交
1317
    echo "MMI enabled      $mmi"
F
Fabrice Bellard 已提交
1318 1319
fi
if test $cpu = "powerpc"; then
M
Måns Rullgård 已提交
1320
    echo "AltiVec enabled  $altivec"
F
Fabrice Bellard 已提交
1321
fi
F
Fabrice Bellard 已提交
1322
echo "gprof enabled    $gprof"
1323
echo "zlib enabled     $zlib"
1324
echo "lzo enabled      $lzo"
1325
echo "libgsm enabled   $libgsm"
1326
echo "mp3lame enabled  $mp3lame"
1327
echo "libogg enabled   $libogg"
D
Diego Biurrun 已提交
1328 1329 1330
echo "Vorbis enabled   $vorbis"
echo "Theora enabled   $theora"
echo "FAAD enabled     $faad"
Z
Zdenek Kabelac 已提交
1331
echo "faadbin enabled  $faadbin"
D
Diego Biurrun 已提交
1332 1333
echo "FAAC enabled     $faac"
echo "XviD enabled     $xvid"
1334
echo "x264 enabled     $x264"
F
Fabrice Bellard 已提交
1335
echo "a52 support      $a52"
Z
Zdenek Kabelac 已提交
1336
echo "a52 dlopened     $a52bin"
D
Diego Biurrun 已提交
1337
echo "DTS support      $dts"
1338
echo "pp support       $pp"
1339
echo "debug symbols    $debug"
1340
echo "strip symbols    $dostrip"
1341
echo "optimize         $optimize"
1342
echo "static           $lstatic"
D
typo  
Diego Biurrun 已提交
1343
echo "shared           $lshared"
D
Diego Biurrun 已提交
1344
echo "video hooking    $vhook"
1345 1346
echo "SDL support      $sdl"
if test $sdl_too_old = "yes"; then
M
Måns Rullgård 已提交
1347
    echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support."
1348
fi
1349

M
Måns Rullgård 已提交
1350 1351 1352
if test "$vhook" = "yes"; then
    echo "Imlib2 support   $imlib2"
    echo "FreeType support $freetype2"
1353
fi
1354
echo "Sun medialib support"  $sunmlib
1355
echo "pthreads support"      $pthreads
Z
Zdenek Kabelac 已提交
1356 1357
echo "AMR-NB float support"  $amr_nb
echo "AMR-NB fixed support"  $amr_nb_fixed
1358
echo "AMR-WB float support"  $amr_wb
1359
echo "AMR-WB IF2 support"    $amr_if2
1360 1361
echo "network support      $network"
if test "$network" = "yes" ; then
M
Måns Rullgård 已提交
1362
    echo "IPv6 support         $ipv6"
1363
fi
1364
if test "$gpl" = "no" ; then
M
Måns Rullgård 已提交
1365
    echo "License: LGPL"
1366
else
M
Måns Rullgård 已提交
1367
    echo "License: GPL"
1368
fi
F
Fabrice Bellard 已提交
1369

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

1372 1373
date >> config.log
echo "   $0 $FFMPEG_CONFIGURATION" >> config.log
D
Diego Biurrun 已提交
1374 1375
echo "# Automatically generated by configure - do not modify!" > config.mak
echo "/* Automatically generated by configure - do not modify! */" > $TMPH
1376
echo "#define FFMPEG_CONFIGURATION "'"'"$FFMPEG_CONFIGURATION"'"' >> $TMPH
F
Fabrice Bellard 已提交
1377

1378 1379
echo "prefix=\$(DESTDIR)$prefix" >> config.mak
echo "libdir=\$(DESTDIR)$libdir" >> config.mak
D
Diego Biurrun 已提交
1380
echo "incdir=\$(DESTDIR)$incdir" >> config.mak
1381 1382
echo "bindir=\$(DESTDIR)$bindir" >> config.mak
echo "mandir=\$(DESTDIR)$mandir" >> config.mak
1383
echo "MAKE=$make" >> config.mak
1384 1385
echo "CC=$cc" >> config.mak
echo "AR=$ar" >> config.mak
M
Michael Niedermayer 已提交
1386
echo "RANLIB=$ranlib" >> config.mak
1387
if test "$dostrip" = "yes" ; then
M
Måns Rullgård 已提交
1388 1389
    echo "STRIP=$strip" >> config.mak
    echo "INSTALLSTRIP=$installstrip" >> config.mak
1390
else
M
Måns Rullgård 已提交
1391 1392
    echo "STRIP=echo ignoring strip" >> config.mak
    echo "INSTALLSTRIP=" >> config.mak
1393
fi
1394

D
Diego Biurrun 已提交
1395
# SHCFLAGS is a copy of CFLAGS without -mdynamic-no-pic, used when building
1396 1397 1398 1399 1400 1401
# shared modules on OS/X (vhook/Makefile).
SHCFLAGS=$CFLAGS
if test "$needmdynamicnopic" = yes; then
   CFLAGS="$CFLAGS -mdynamic-no-pic"
fi

N
Nick Kurshev 已提交
1402
echo "OPTFLAGS=$CFLAGS" >> config.mak
1403
echo "SHCFLAGS=$SHCFLAGS">>config.mak
1404
echo "LDFLAGS=$LDFLAGS" >> config.mak
1405
echo "LDCONFIG=$LDCONFIG" >> config.mak
1406
echo "FFSLDFLAGS=$FFSLDFLAGS" >> config.mak
1407
echo "SHFLAGS=$SHFLAGS" >> config.mak
1408
echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak
1409
echo "BUILD_STATIC=$lstatic" >> config.mak
1410
echo "BUILDSUF=$BUILDSUF" >> config.mak
1411
echo "LIBPREF=$LIBPREF" >> config.mak
1412
echo "LIBSUF=\${BUILDSUF}$LIBSUF" >> config.mak
1413 1414
if test "$lstatic" = "yes" ; then
  echo "LIB=$LIB" >> config.mak
1415 1416
else # Some Make complain if this variable does not exist.
  echo "LIB=" >> config.mak
1417
fi
1418
echo "SLIBPREF=$SLIBPREF" >> config.mak
1419 1420
echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
1421
echo "TARGET_OS=$TARGET_OS" >> config.mak
Z
Zdenek Kabelac 已提交
1422
if test "$cpu" = "x86" ; then
1423
  echo "TARGET_ARCH_X86=yes" >> config.mak
1424
  echo "#define ARCH_X86 1" >> $TMPH
1425 1426 1427
elif test "$cpu" = "x86_64" ; then
  echo "TARGET_ARCH_X86_64=yes" >> config.mak
  echo "#define ARCH_X86_64 1" >> $TMPH
1428
elif test "$cpu" = "armv4l" ; then
1429
  echo "TARGET_ARCH_ARMV4L=yes" >> config.mak
1430
  echo "#define ARCH_ARMV4L 1" >> $TMPH
1431
elif test "$cpu" = "alpha" ; then
1432
  echo "TARGET_ARCH_ALPHA=yes" >> config.mak
1433
  echo "#define ARCH_ALPHA 1" >> $TMPH
1434 1435 1436
elif test "$cpu" = "sparc64" ; then
  echo "TARGET_ARCH_SPARC64=yes" >> config.mak
  echo "#define ARCH_SPARC64 1" >> $TMPH
1437 1438 1439 1440 1441
  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
1442 1443 1444
elif test "$cpu" = "powerpc" ; then
  echo "TARGET_ARCH_POWERPC=yes" >> config.mak
  echo "#define ARCH_POWERPC 1" >> $TMPH
1445 1446 1447 1448 1449
  if test $POWERPCMODE = "32bits"; then
    echo "#define POWERPC_MODE_32BITS 1" >> $TMPH
  else
    echo "#define POWERPC_MODE_64BITS 1" >> $TMPH
  fi
1450 1451 1452
  if test "$powerpc_perf" = "yes"; then
    echo "#define POWERPC_PERFORMANCE_REPORT 1" >> $TMPH
  fi
1453 1454 1455
elif test "$cpu" = "mips" ; then
  echo "TARGET_ARCH_MIPS=yes" >> config.mak
  echo "#define ARCH_MIPS 1" >> $TMPH
A
Alex Beregszaszi 已提交
1456 1457 1458
elif test "$cpu" = "sh4" ; then
  echo "TARGET_ARCH_SH4=yes" >> config.mak
  echo "#define ARCH_SH4 1" >> $TMPH
1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470
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 已提交
1471
fi
1472
echo "#define TUNECPU $TUNECPU" >> $TMPH
1473 1474 1475
if test "$bigendian" = "yes" ; then
  echo "WORDS_BIGENDIAN=yes" >> config.mak
  echo "#define WORDS_BIGENDIAN 1" >> $TMPH
1476
fi
1477 1478
if test "$inttypes" != "yes" ; then
  echo "#define EMULATE_INTTYPES 1" >> $TMPH
1479
fi
1480
if test "$emu_fast_int" = "yes" ; then
1481
  echo "#define EMULATE_FAST_INT 1" >> $TMPH
1482
fi
Z
Zdenek Kabelac 已提交
1483
if test "$mmx" = "yes" ; then
1484
  echo "TARGET_MMX=yes" >> config.mak
1485
  echo "#define HAVE_MMX 1" >> $TMPH
M
Michael Niedermayer 已提交
1486
  echo "#define __CPU__ 586" >> $TMPH
F
Fabrice Bellard 已提交
1487
fi
1488 1489 1490 1491
if test "$builtin_vector" = "yes" ; then
  echo "TARGET_BUILTIN_VECTOR=yes" >> config.mak
  echo "#define HAVE_BUILTIN_VECTOR 1" >> $TMPH
fi
1492 1493 1494 1495
if test "$mm3dnow" = "yes" ; then
  echo "TARGET_BUILTIN_3DNOW=yes" >> config.mak
  echo "#define HAVE_MM3DNOW 1" >> $TMPH
fi
1496 1497 1498 1499
if test "$iwmmxt" = "yes" ; then
  echo "TARGET_IWMMXT=yes" >> config.mak
  echo "#define HAVE_IWMMXT 1" >> $TMPH
fi
1500 1501 1502 1503
if test "$mmi" = "yes" ; then
  echo "TARGET_MMI=yes" >> config.mak
  echo "#define HAVE_MMI 1" >> $TMPH
fi
1504 1505 1506
if test "$altivec" = "yes" ; then
  echo "TARGET_ALTIVEC=yes" >> config.mak
  echo "#define HAVE_ALTIVEC 1" >> $TMPH
1507 1508
  echo "// Enable the next line to use the reference C code instead of AltiVec" >> $TMPH
  echo "// #define ALTIVEC_USE_REFERENCE_C_CODE 1" >> $TMPH
1509 1510 1511
  if test "$_altivec_h" = "yes" ; then
    echo "#define HAVE_ALTIVEC_H 1" >> $TMPH
  else
A
1l  
Alex Beregszaszi 已提交
1512
    echo "#undef HAVE_ALTIVEC_H" >> $TMPH
1513
  fi
1514
fi
Z
Zdenek Kabelac 已提交
1515
if test "$gprof" = "yes" ; then
1516
  echo "TARGET_GPROF=yes" >> config.mak
1517
  echo "#define HAVE_GPROF 1" >> $TMPH
F
Fabrice Bellard 已提交
1518
fi
1519 1520 1521
if test "$localtime_r" = "yes" ; then
  echo "#define HAVE_LOCALTIME_R 1" >> $TMPH
fi
1522 1523 1524
if test "$imlib2" = "yes" ; then
  echo "HAVE_IMLIB2=yes" >> config.mak
fi
1525 1526 1527
if test "$freetype2" = "yes" ; then
  echo "HAVE_FREETYPE2=yes" >> config.mak
fi
1528 1529 1530 1531 1532
if test "$sunmlib" = "yes" ; then
  echo "HAVE_MLIB=yes" >> config.mak
  echo "#define HAVE_MLIB 1" >> $TMPH
  extralibs="$extralibs -lmlib"
fi
1533 1534 1535
if test "$pthreads" = "yes" ; then
  echo "HAVE_PTHREADS=yes" >> config.mak
  echo "#define HAVE_PTHREADS 1" >> $TMPH
1536
  echo "#define HAVE_THREADS 1" >> $TMPH
1537
  if test $targetos != FreeBSD -a $targetos != OpenBSD ; then
1538 1539
     extralibs="$extralibs -lpthread"
  fi
1540
fi
1541 1542
if test "$sdl" = "yes" ; then
  echo "CONFIG_SDL=yes" >> config.mak
1543 1544
  echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak
  echo "SDL_CFLAGS=`"${SDL_CONFIG}" --cflags`" >> config.mak
1545 1546 1547
  if test "$sdl_video_size" = "yes"; then
    echo "#define HAVE_SDL_VIDEO_SIZE 1" >> $TMPH
  fi
1548
fi
1549 1550 1551
if test "$texi2html" = "yes"; then
  echo "BUILD_DOC=yes" >> config.mak
fi
1552 1553 1554
if test "$have_lrintf" = "yes" ; then
  echo "#define HAVE_LRINTF 1" >> $TMPH
fi
1555 1556 1557 1558
if test "$vhook" = "yes" ; then
  echo "BUILD_VHOOK=yes" >> config.mak
  echo "#define HAVE_VHOOK 1" >> $TMPH
fi
L
Luca Barbato 已提交
1559

1560
pp_version=`grep '#define LIBPOSTPROC_VERSION ' "$source_path/libpostproc/postprocess.h" | sed 's/[^0-9\.]//g'`
L
Luca Barbato 已提交
1561 1562 1563 1564 1565 1566
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'`



Z
Zdenek Kabelac 已提交
1567
if test "$lshared" = "yes" ; then
1568
  echo "#define BUILD_SHARED_AV 1" >> $TMPH
N
Nick Kurshev 已提交
1569
  echo "BUILD_SHARED=yes" >> config.mak
1570
  echo "PIC=-fPIC -DPIC" >> config.mak
1571
  echo "SPPMAJOR=${lavc_version%%.*}" >> config.mak
L
Luca Barbato 已提交
1572
  echo "SPPVERSION=$lavc_version" >> config.mak
1573
  echo "LAVCMAJOR=${lavc_version%%.*}" >> config.mak
L
Luca Barbato 已提交
1574
  echo "LAVCVERSION=$lavc_version" >> config.mak
1575
  echo "LAVFMAJOR=${lavf_version%%.*}" >> config.mak
L
Luca Barbato 已提交
1576
  echo "LAVFVERSION=$lavf_version" >> config.mak
1577
  echo "LAVUMAJOR=${lavu_version%%.*}" >> config.mak
L
Luca Barbato 已提交
1578
  echo "LAVUVERSION=$lavu_version" >> config.mak
1579
  echo "SLIBNAME=${SLIBNAME}" >> config.mak
1580 1581
  echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak
  echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
N
Nick Kurshev 已提交
1582
fi
1583
echo "EXTRALIBS=$extralibs" >> config.mak
M
Michael Niedermayer 已提交
1584
version=`grep '#define FFMPEG_VERSION ' "$source_path/libavcodec/avcodec.h" |
1585 1586
 cut -d '"' -f 2`
echo "VERSION=$version" >>config.mak
D
Diego Biurrun 已提交
1587
# If you do not want to use encoders, disable them.
1588
echo "#define CONFIG_ENCODERS 1" >> $TMPH
1589 1590
echo "CONFIG_ENCODERS=yes" >> config.mak

D
Diego Biurrun 已提交
1591
# If you do not want to use decoders, disable them.
1592
echo "#define CONFIG_DECODERS 1" >> $TMPH
1593 1594
echo "CONFIG_DECODERS=yes" >> config.mak

1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606
# 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 已提交
1607 1608 1609 1610
# AC3
if test "$a52" = "yes" ; then
  echo "#define CONFIG_AC3 1" >> $TMPH
  echo "CONFIG_AC3=yes" >> config.mak
1611

F
Fabrice Bellard 已提交
1612 1613 1614 1615 1616 1617
  if test "$a52bin" = "yes" ; then
    echo "#define CONFIG_A52BIN 1" >> $TMPH
    echo "CONFIG_A52BIN=yes" >> config.mak
  fi
fi

1618 1619 1620 1621 1622 1623
# DTS
if test "$dts" = "yes" ; then
  echo "#define CONFIG_DTS 1" >> $TMPH
  echo "CONFIG_DTS=yes" >> config.mak
fi

1624 1625 1626 1627 1628 1629
# PP
if test "$pp" = "yes" ; then
  echo "#define CONFIG_PP 1" >> $TMPH
  echo "CONFIG_PP=yes" >> config.mak
fi

D
Diego Biurrun 已提交
1630
# MPEG audio high precision mode
1631 1632 1633 1634
if test "$mpegaudio_hp" = "yes" ; then
  echo "#define CONFIG_MPEGAUDIO_HP 1" >> $TMPH
fi

F
Fabrice Bellard 已提交
1635 1636 1637 1638 1639
if test "$v4l" = "yes" ; then
  echo "#define CONFIG_VIDEO4LINUX 1" >> $TMPH
  echo "CONFIG_VIDEO4LINUX=yes" >> config.mak
fi

L
Luca Abeni 已提交
1640 1641 1642 1643 1644
if test "$v4l2" = "yes" ; then
  echo "#define CONFIG_VIDEO4LINUX2 1" >> $TMPH
  echo "CONFIG_VIDEO4LINUX2=yes" >> config.mak
fi

1645 1646 1647 1648 1649
if test "$bktr" = "yes" ; then
  echo "#define CONFIG_BKTR 1" >> $TMPH
  echo "CONFIG_BKTR=yes" >> config.mak
fi

1650 1651 1652 1653 1654
if test "$dv1394" = "yes" ; then
  echo "#define CONFIG_DV1394 1" >> $TMPH
  echo "CONFIG_DV1394=yes" >> config.mak
fi

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

1660 1661 1662 1663 1664 1665 1666 1667
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 已提交
1668 1669 1670
if test "$audio_oss" = "yes" ; then
  echo "#define CONFIG_AUDIO_OSS 1" >> $TMPH
  echo "CONFIG_AUDIO_OSS=yes" >> config.mak
Z
Zdenek Kabelac 已提交
1671 1672
fi

1673 1674 1675 1676 1677
if test "$audio_beos" = "yes" ; then
  echo "#define CONFIG_AUDIO_BEOS 1" >> $TMPH
  echo "CONFIG_AUDIO_BEOS=yes" >> config.mak
fi

F
Fabrice Bellard 已提交
1678 1679 1680
if test "$network" = "yes" ; then
  echo "#define CONFIG_NETWORK 1" >> $TMPH
  echo "CONFIG_NETWORK=yes" >> config.mak
1681
fi
1682

1683 1684 1685 1686
if test "$ipv6" = "yes" ; then
  echo "#define CONFIG_IPV6 1" >> $TMPH
fi

1687 1688 1689 1690 1691
if test "$zlib" = "yes" ; then
  echo "#define CONFIG_ZLIB 1" >> $TMPH
  echo "CONFIG_ZLIB=yes" >> config.mak
fi

1692 1693 1694 1695 1696
if test "$lzo" = "yes" ; then
  echo "#define CONFIG_LZO 1" >> $TMPH
  echo "CONFIG_LZO=yes" >> config.mak
fi

1697 1698 1699 1700 1701
if test "$libgsm" = "yes" ; then
  echo "#define CONFIG_LIBGSM 1" >> $TMPH
  echo "CONFIG_LIBGSM=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1702
if test "$mp3lame" = "yes" ; then
1703
  echo "#define CONFIG_MP3LAME 1" >> $TMPH
1704 1705 1706
  echo "CONFIG_MP3LAME=yes" >> config.mak
fi

1707
if test "$libogg" = "yes" ; then
N
Nilesh Bansal 已提交
1708 1709 1710 1711
  echo "#define CONFIG_LIBOGG 1" >> $TMPH
  echo "CONFIG_LIBOGG=yes" >> config.mak
fi

1712
if test "$vorbis" = "yes" ; then
N
Nilesh Bansal 已提交
1713 1714 1715 1716 1717 1718 1719
  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
1720 1721
fi

1722 1723 1724 1725 1726 1727 1728
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 已提交
1729
  echo "CONFIG_FAADBIN=yes" >> config.mak
1730 1731
fi

1732 1733 1734 1735 1736
if test "$faac" = "yes" ; then
  echo "#define CONFIG_FAAC 1" >> $TMPH
  echo "CONFIG_FAAC=yes" >> config.mak
fi

1737 1738 1739 1740 1741
if test "$xvid" = "yes" ; then
  echo "#define CONFIG_XVID 1" >> $TMPH
  echo "CONFIG_XVID=yes" >> config.mak
fi

1742 1743 1744 1745 1746
if test "$x264" = "yes" ; then
  echo "#define CONFIG_X264 1" >> $TMPH
  echo "CONFIG_X264=yes" >> config.mak
fi

1747 1748 1749
if test "$mingw32" = "yes" ; then
  echo "#define CONFIG_WIN32 1" >> $TMPH
  echo "CONFIG_WIN32=yes" >> config.mak
1750 1751
  echo "HAVE_W32THREADS=yes" >> config.mak
  echo "#define HAVE_W32THREADS 1" >> $TMPH
1752
  echo "#define HAVE_THREADS 1" >> $TMPH
1753
  echo "#ifndef __MINGW32__" >> $TMPH
1754
  echo "#define __MINGW32__ 1" >> $TMPH
1755
  echo "#endif" >> $TMPH
1756 1757
fi

G
Gildas Bazin 已提交
1758 1759 1760 1761 1762 1763 1764 1765 1766 1767
if test "$mingwce" = "yes" ; then
  echo "#define CONFIG_WIN32 1" >> $TMPH
  echo "CONFIG_WIN32=yes" >> config.mak
  echo "#define CONFIG_WINCE 1" >> $TMPH
  echo "CONFIG_WINCE=yes" >> config.mak
  echo "#ifndef __MINGW32__" >> $TMPH
  echo "#define __MINGW32__ 1" >> $TMPH
  echo "#endif" >> $TMPH
fi

1768 1769 1770
if test "$os2" = "yes" ; then
  echo "#define CONFIG_OS2 1" >> $TMPH
  echo "CONFIG_OS2=yes" >> config.mak
1771 1772 1773
  echo "HAVE_OS2THREADS=yes" >> config.mak
  echo "#define HAVE_OS2THREADS 1" >> $TMPH
  echo "#define HAVE_THREADS 1" >> $TMPH
1774 1775
fi

1776 1777 1778 1779
if test "$TARGET_OS" = "SunOS" ; then
  echo "#define CONFIG_SUNOS 1" >> $TMPH
fi

1780 1781 1782 1783 1784 1785
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

1786 1787 1788 1789 1790
if test "$darwin" = "yes"; then
  echo "#define CONFIG_DARWIN 1"  >> $TMPH
  echo "CONFIG_DARWIN=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1791
if test "$_malloc_h" = "yes" ; then
1792
  echo "#define HAVE_MALLOC_H 1" >> $TMPH
N
Nick Kurshev 已提交
1793
else
1794
  echo "#undef  HAVE_MALLOC_H" >> $TMPH
N
Nick Kurshev 已提交
1795 1796
fi

Z
Zdenek Kabelac 已提交
1797
if test "$_memalign" = "yes" ; then
1798 1799 1800 1801 1802
  echo "#define HAVE_MEMALIGN 1" >> $TMPH
else
  echo "#undef  HAVE_MEMALIGN" >> $TMPH
fi

1803 1804 1805 1806 1807
if test "$memalignhack" = "yes" ; then
  echo "#define MEMALIGN_HACK 1" >> $TMPH
fi


1808 1809 1810 1811 1812
if test "$netserver" = "yes" ; then
  echo "#define CONFIG_BEOS_NETSERVER 1" >> $TMPH
  echo "CONFIG_BEOS_NETSERVER=yes" >> config.mak
fi

1813 1814 1815 1816
if test "$need_inet_aton" = "yes" ; then
  echo "NEED_INET_ATON=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1817
if test "$simpleidct" = "yes" ; then
1818 1819 1820
  echo "#define SIMPLE_IDCT 1" >> $TMPH
fi

1821 1822 1823 1824 1825
if test "$protocols" = "yes" ; then
  echo "#define CONFIG_PROTOCOLS 1" >> $TMPH
  echo "CONFIG_PROTOCOLS=yes" >> config.mak
fi

1826 1827 1828 1829 1830
if test "$ffserver" = "yes" ; then
  echo "#define CONFIG_FFSERVER 1" >> $TMPH
  echo "CONFIG_FFSERVER=yes" >> config.mak
fi

1831 1832 1833 1834
if test "$ffplay" = "yes" ; then
  echo "CONFIG_FFPLAY=yes" >> config.mak
fi

1835 1836 1837 1838 1839
if test "$gpl" = "yes" ; then
  echo "#define CONFIG_GPL 1" >> $TMPH
  echo "CONFIG_GPL=yes" >> config.mak
fi

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

1842 1843 1844 1845
if test "$optimize" = "small"; then
  echo "#define always_inline"  >> $TMPH
fi

1846 1847
# build tree in object directory if source path is different from current one
if test "$source_path_used" = "yes" ; then
1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858
    DIRS="\
         doc \
         libavformat \
         libavcodec \
         libavcodec/alpha \
         libavcodec/armv4l \
         libavcodec/i386 \
         libavcodec/sparc \
         libavcodec/mlib \
         libavcodec/ppc \
         libavcodec/liba52 \
1859
         libpostproc \
1860 1861 1862 1863 1864 1865 1866 1867
         libavutil \
         tests \
         vhook \
         "
    FILES="\
          Makefile \
          libavformat/Makefile \
          libavcodec/Makefile \
1868
          libpostproc/Makefile \
1869 1870 1871 1872 1873 1874
          libavutil/Makefile \
          tests/Makefile \
          vhook/Makefile \
          doc/Makefile \
          doc/texi2pod.pl \
          "
1875 1876 1877 1878
    for dir in $DIRS ; do
            mkdir -p $dir
    done
    for f in $FILES ; do
M
Michael Niedermayer 已提交
1879
        ln -sf "$source_path/$f" $f
1880 1881
    done
fi
1882
echo "SRC_PATH=$source_path" >> config.mak
1883
echo "BUILD_ROOT=$PWD" >> config.mak
1884

D
Diego Biurrun 已提交
1885 1886 1887 1888 1889
if test "$amr" = "yes" ; then
  echo "#define AMR 1" >> $TMPH
  echo "AMR=yes" >> config.mak
fi

1890 1891 1892 1893 1894 1895 1896 1897 1898 1899
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"
fi

1900 1901 1902 1903
if test "$amr_nb" = "yes" ; then
  echo "#define AMR_NB 1" >> $TMPH
  echo "AMR_NB=yes" >> config.mak
  echo
1904 1905
  echo "AMR NB FLOAT NOTICE ! Make sure you have downloaded TS26.104"
  echo "REL-5 V5.1.0 from "
D
Diego Biurrun 已提交
1906
  echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip"
1907 1908 1909 1910
  echo "and extracted the source to libavcodec/amr_float"
  echo "If you try this on alpha, you may need to change Word32 to int in amr/typedef.h"
fi

Z
Zdenek Kabelac 已提交
1911 1912
if test "$amr_nb_fixed" = "yes" ; then
  echo "#define AMR_NB_FIXED 1" >> $TMPH
D
Diego Biurrun 已提交
1913
  echo "AMR_NB_FIXED=yes" >> config.mak
D
Diego Biurrun 已提交
1914
  echo
Z
Zdenek Kabelac 已提交
1915 1916
  echo "AMR NB FIXED POINT NOTICE! Make sure you have downloaded TS26.073 "
  echo "REL-5 version 5.1.0 from "
D
Diego Biurrun 已提交
1917
  echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.073/26073-510.zip"
1918
  echo "and extracted src to libavcodec/amr"
Z
Zdenek Kabelac 已提交
1919 1920
  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"
1921 1922
fi

1923 1924 1925 1926
if test "$amr_if2" = "yes" ; then
  echo "AMR_CFLAGS=-DIF2=1" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1927

1928
for codec in $CODEC_LIST ; do
1929 1930
    echo "#define CONFIG_`echo $codec | tr a-z A-Z` 1" >> $TMPH
    echo "CONFIG_`echo $codec | tr a-z A-Z`=yes" >> config.mak
1931 1932
done

1933 1934
# Do not overwrite config.h if unchanged to avoid superfluous rebuilds.
diff $TMPH config.h >/dev/null 2>&1
1935
if test "$?" != "0" ; then
1936 1937 1938 1939
        mv -f $TMPH config.h
else
        echo "config.h is unchanged"
fi
N
Nick Kurshev 已提交
1940

1941
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
1942 1943


D
Diego Biurrun 已提交
1944
# build pkg-config files libav*.pc and libpostproc.pc
1945 1946 1947 1948 1949 1950 1951 1952 1953 1954
# 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
1955
Requires:
1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969
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
1970
Requires:
1971 1972 1973 1974
Conflicts:
Libs: \${libdir}/${LIBPREF}avutil${LIBSUF}
Cflags: -I\${includedir}
EOF
1975 1976 1977 1978 1979 1980 1981 1982 1983 1984

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

Name: libavcodec
Description: FFmpeg codec library
1985
Version: $lavc_version
1986
Requires: $pkg_requires libavutil = $lavu_version
1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999
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
2000
Version: $lavc_version
2001
Requires: $pkg_requires libavutil = $lavu_version
2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015
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
2016
Version: $lavf_version
2017
Requires: $pkg_requires libavcodec = $lavc_version
2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030
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
2031
Version: $lavf_version
2032
Requires: $pkg_requires libavcodec = $lavc_version
2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047
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
2048
Version: $lavc_version
2049
Requires:
2050 2051 2052 2053 2054 2055 2056 2057
Conflicts:
Libs: -L\${libdir} -lpostproc
Cflags: -I\${includedir} -I\${includedir}/postproc
EOF

cat <<EOF >libpostproc-uninstalled.pc
prefix=
exec_prefix=
2058 2059
libdir=\${pcfiledir}/libpostproc
includedir=\${pcfiledir}/libpostproc
2060 2061 2062

Name: libpostproc
Description: FFmpeg post processing library
2063
Version: $lavc_version
2064
Requires:
2065 2066 2067 2068
Conflicts:
Libs: \${libdir}/${LIBPREF}postproc${LIBSUF}
Cflags: -I\${includedir}
EOF