configure 62.4 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
# make sure we are running under a compatible shell
M
Måns Rullgård 已提交
7 8
unset foo
(: ${foo%%bar}) 2>/dev/null && ! (: ${foo?}) 2>/dev/null
9 10 11 12 13 14 15 16 17 18 19 20
if test "$?" != 0; then
    if test "x$FFMPEG_CONFIGURE_EXEC" = x; then
        FFMPEG_CONFIGURE_EXEC=1
        export FFMPEG_CONFIGURE_EXEC
        exec bash "$0" "$@"
        exec ksh "$0" "$@"
        exec /usr/xpg4/bin/sh "$0" "$@"
    fi
    echo "No compatible shell script interpreter found."
    exit 1
fi

21 22 23 24 25 26
show_help(){
  echo "Usage: configure [options]"
  echo "Options: [defaults in brackets after descriptions]"
  echo
  echo "Standard options:"
  echo "  --help                   print this message"
27
  echo "  --log[=FILE|yes|no]      log tests and output to FILE [config.err]"
28
  echo "  --prefix=PREFIX          install in PREFIX [$PREFIX]"
29
  echo "  --libdir=DIR             install libs in DIR [PREFIX/lib]"
30
  echo "  --shlibdir=DIR           install shared libs in DIR [PREFIX/lib]"
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
  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-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]"
L
Luca Abeni 已提交
60
  echo "  --enable-swscaler        software scaler support [default=no]"
61
  echo "  --enable-avisynth        allow reading AVISynth script files [default=no]"
62 63 64 65 66 67
  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]"
68
  echo "  --cross-compile          assume a cross-compiler is used"
69 70 71 72 73 74
  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 []"
75
  echo "  --arch=ARCH              select architecture  [$arch]"
76 77
  echo "  --cpu=CPU                selects the minimum cpu required (affects
                                   instruction selection, may crash on older CPUs)"
78 79 80
  echo "  --powerpc-perf-enable    enable performance report on PPC"
  echo "                           (requires enabling PMC)"
  echo "  --disable-mmx            disable MMX usage"
81
  echo "  --disable-armv5te        disable armv5te usage"
82 83 84 85 86 87 88 89 90
  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]"
91
  echo "  --disable-ipv6           disable ipv6 support [default=no]"
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
  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)"
  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"
112 113
  echo "  --disable-muxer=NAME     disables muxer NAME"
  echo "  --enable-muxer=NAME      enables muxer NAME"
114
  echo "  --disable-muxers         disables all muxers"
115 116
  echo "  --disable-demuxer=NAME   disables demuxer NAME"
  echo "  --enable-demuxer=NAME    enables demuxer NAME"
117
  echo "  --disable-demuxers       disables all demuxers"
118 119 120
  echo "  --enable-parser=NAME     enables parser NAME"
  echo "  --disable-parser=NAME    disables parser NAME"
  echo "  --disable-parsers        disables all parsers"
121 122 123 124
  echo ""
  echo "NOTE: Object files are built at the place where configure is launched."
  exit 1
}
125

126 127 128 129
log(){
    echo "$@" >>$logfile
}

130
log_file(){
M
Måns Rullgård 已提交
131 132 133 134 135
    log BEGIN $1
    cat -n $1 >>$logfile
    log END $1
}

136
echolog(){
M
Måns Rullgård 已提交
137
    log "$@"
138
    echo "$@"
139 140 141 142 143 144 145 146 147
}

die(){
    echolog "$@"
    cat <<EOF
If you think configure made a mistake, make sure you are using the latest
version from SVN.  If the latest version fails, report the problem to the
ffmpeg-devel@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net.
EOF
148
    if enabled logging; then
149 150 151 152 153 154 155 156 157 158
        cat <<EOF
Include the log file "$logfile" produced by configure as this will help
solving the problem.
EOF
    else
cat <<EOF
Rerun configure with logging enabled (do not use --log=no), and include the
log this produces with your report.
EOF
    fi
159 160 161 162 163 164 165 166 167 168 169 170
    rm -f $TMPC $TMPO $TMPE $TMPS $TMPH
    exit 1
}

enabled(){
    eval test "\$$1" = "yes"
}

flags_saved(){
    (: ${SAVE_CFLAGS?}) 2>/dev/null
}

171
save_flags(){
172
    flags_saved && return
173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201
    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 $*"
}

202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
append(){
    var=$1
    shift
    flags_saved && eval "SAVE_$var=\"\$SAVE_$var $*\""
    eval "$var=\"\$$var $*\""
}

add_cflags(){
    append CFLAGS "$@"
}

add_ldflags(){
    append LDFLAGS "$@"
}

add_extralibs(){
    append extralibs "$@"
}

221
check_cmd(){
M
Måns Rullgård 已提交
222
    log "$@"
223
    "$@" >>$logfile 2>&1
224 225
}

226
check_cc(){
227 228
    log check_cc "$@"
    cat >$TMPC
229
    log_file $TMPC
230
    check_cmd $cc $CFLAGS "$@" -c -o $TMPO $TMPC
231 232 233 234
}

check_cpp(){
    log check_cpp "$@"
235
    cat >$TMPC
236
    log_file $TMPC
237
    check_cmd $cc $CFLAGS "$@" -E -o $TMPO $TMPC
238 239 240
}

check_ld(){
241
    log check_ld "$@"
242
    check_cc || return
243
    check_cmd $cc $LDFLAGS "$@" -o $TMPE $TMPO $extralibs
244 245 246
}

check_cflags(){
247 248
    log check_cflags "$@"
    check_cc "$@" <<EOF && add_cflags "$@"
249 250 251 252 253
int x;
EOF
}

check_ldflags(){
254 255 256 257 258
    log check_ldflags "$@"
    check_ld "$@" <<EOF && add_ldflags "$@"
int main(){
    return 0;
}
259 260 261 262
EOF
}

check_header(){
263
    log check_header "$@"
264 265
    header=$1
    shift
266
    check_cpp "$@" <<EOF
267 268 269 270 271 272
#include <$header>
int x;
EOF
}

check_func(){
273
    log check_func "$@"
274 275 276 277 278 279 280 281 282 283
    func=$1
    shift
    check_ld "$@" <<EOF
extern int $func();
int main(){
    $func();
}
EOF
}

284 285 286 287 288 289 290 291 292 293 294 295
check_lib(){
    log check_lib "$@"
    header="$1"
    func="$2"
    shift 2
    temp_extralibs "$@"
    check_header $header && check_func $func && add_extralibs "$@"
    err=$?
    restore_flags
    return $err
}

296
check_exec(){
297
    check_ld "$@" && { test "$cross_compile" = yes || $TMPE >>$logfile 2>&1; }
298 299 300 301 302 303 304 305
}

require(){
    name="$1"
    header="$2"
    func="$3"
    shift 3
    check_lib $header $func "$@" || die "ERROR: $name not found"
306 307
}

M
Måns Rullgård 已提交
308 309 310 311 312 313
filter_out(){
    pattern="$1"
    shift
    echo "$@" | sed "s%\\<$pattern\\>%%g"
}

314
# set temporary file name
Z
Zdenek Kabelac 已提交
315
if test ! -z "$TMPDIR" ; then
316
    TMPDIR1="${TMPDIR}"
Z
Zdenek Kabelac 已提交
317
elif test ! -z "$TEMPDIR" ; then
318
    TMPDIR1="${TEMPDIR}"
N
Nick Kurshev 已提交
319
else
320
    TMPDIR1="/tmp"
N
Nick Kurshev 已提交
321 322
fi

323 324
TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
325
TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}"
326 327 328
TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"

F
Fabrice Bellard 已提交
329
# default parameters
330
logging="yes"
331
logfile="config.err"
332 333
PREFIX="/usr/local"
libdir='${PREFIX}/lib'
334
shlibdir="$libdir"
335 336 337
incdir='${PREFIX}/include/ffmpeg'
mandir='${PREFIX}/man'
bindir='${PREFIX}/bin'
338
cross_prefix=""
339
cross_compile="no"
F
Fabrice Bellard 已提交
340 341
cc="gcc"
ar="ar"
M
Michael Niedermayer 已提交
342
ranlib="ranlib"
343
make="make"
344
strip="strip"
345
arch=`uname -m`
346
cpu="generic"
347
powerpc_perf="no"
348
mmx="default"
349
cmov="no"
350
cmov_is_fast="no"
351
armv5te="default"
352
iwmmxt="default"
353
altivec="default"
354
dcbzl="no"
355
mmi="default"
356
case "$arch" in
357
  i386|i486|i586|i686|i86pc|BePC)
358
    arch="x86"
F
Fabrice Bellard 已提交
359
  ;;
360
  x86_64|amd64)
361
    arch="x86"
362
    canon_arch="`$cc -dumpmachine | sed -e 's,\([^-]*\)-.*,\1,'`"
363 364
    if [ x"$canon_arch" = x"x86_64" -o x"$canon_arch" = x"amd64" ]; then
      if [ -z "`echo $CFLAGS | grep -- -m32`"  ]; then
365
        arch="x86_64"
366
      fi
367 368
    fi
  ;;
369
  # armv4l is a subset of armv5tel
370
  arm|armv4l|armv5tel)
371
    arch="armv4l"
372
  ;;
373
  alpha)
374
    arch="alpha"
375
  ;;
376
  "Power Macintosh"|ppc|ppc64|powerpc)
377
    arch="powerpc"
378
  ;;
379
  mips|mipsel|IP*)
380
    arch="mips"
381
  ;;
382
  sun4u|sparc64)
383
    arch="sparc64"
384
  ;;
385
  sparc)
386
    arch="sparc"
387
  ;;
A
Alex Beregszaszi 已提交
388
  sh4)
389
    arch="sh4"
A
Alex Beregszaszi 已提交
390
  ;;
391
  parisc|parisc64)
392
    arch="parisc"
393 394
  ;;
  s390|s390x)
395
    arch="s390"
396 397
  ;;
  m68k)
398
    arch="m68k"
399 400
  ;;
  ia64)
401
    arch="ia64"
402
  ;;
M
Michael Benjamin 已提交
403
  bfin)
404
    arch="bfin"
M
Michael Benjamin 已提交
405
  ;;
F
Fabrice Bellard 已提交
406
  *)
407
    arch="unknown"
F
Fabrice Bellard 已提交
408 409 410
  ;;
esac
gprof="no"
F
Fabrice Bellard 已提交
411
v4l="yes"
L
Luca Abeni 已提交
412
v4l2="yes"
413
bktr="no"
F
Fabrice Bellard 已提交
414
audio_oss="yes"
415
audio_beos="no"
416
dv1394="yes"
417
dc1394="no"
F
Fabrice Bellard 已提交
418
network="yes"
419
ipv6="yes"
420
zlib="yes"
421
libgsm="no"
422
mp3lame="no"
423
libogg="no"
424
vorbis="no"
425 426
faad="no"
faadbin="no"
427
faac="no"
428
xvid="no"
429
x264="no"
430
a52="no"
Z
Zdenek Kabelac 已提交
431
a52bin="no"
432
dts="no"
433
pp="no"
434
mingw32="no"
G
Gildas Bazin 已提交
435
mingwce="no"
436
os2="no"
437
lstatic="yes"
438
lshared="no"
439 440
optimize="yes"
debug="yes"
441
dostrip="yes"
442
installstrip="-s"
443
extralibs="-lm"
444
simpleidct="yes"
445
bigendian="no"
446
inttypes="yes"
447
emu_fast_int="no"
448
vhook="default"
449
avisynth="no"
450 451
dlfcn="no"
dlopen="no"
452
mpegaudio_hp="yes"
453
SHFLAGS='-shared -Wl,-soname,$@'
454
VHOOKSHFLAGS='$(SHFLAGS)'
455
netserver="no"
456
need_inet_aton="no"
457
protocols="yes"
458
ffserver="yes"
459
ffplay="yes"
460
LIBOBJFLAGS=""
461
FFLDFLAGS=-Wl,--warn-common
462
FFSERVERLDFLAGS=-Wl,-E
463
LDCONFIG="ldconfig"
464 465
LIBPREF="lib"
LIBSUF=".a"
466
LIB='$(LIBPREF)$(NAME)$(LIBSUF)'
467 468
SLIBPREF="lib"
SLIBSUF=".so"
469
SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF)'
470 471
SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
F
Fabrice Bellard 已提交
472
EXESUF=""
473
BUILDSUF=""
474
amr_nb="no"
475
amr_wb="no"
Z
Zdenek Kabelac 已提交
476
amr_nb_fixed="no"
477
amr_if2="no"
478
sunmlib="no"
479
pthreads="no"
L
Luca Abeni 已提交
480
swscaler="no"
481
gpl="no"
482
memalignhack="no"
483
asmalign_pot="unknown"
484
LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(libdir)/$(LIB)"'
485 486 487 488 489

# OS specific
targetos=`uname -s`
case $targetos in
BeOS)
490
PREFIX="/boot/home/config"
491
# helps building libavcodec
492
add_cflags "-DPIC -fomit-frame-pointer"
493
# 3 gcc releases known for BeOS, each with ugly bugs
494
gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
495 496 497 498 499
case "$gcc_version" in
2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
mmx="no"
;;
*20010315*) echo "BeBits gcc"
500
add_cflags "-fno-expensive-optimizations"
501 502
;;
esac
503
SHFLAGS=-nostart
D
Diego Biurrun 已提交
504
# disable Linux things
505
audio_oss="no"
F
Fabrice Bellard 已提交
506
v4l="no"
L
Luca Abeni 已提交
507
v4l2="no"
508
dv1394="no"
D
Diego Biurrun 已提交
509
# enable BeOS things
510
audio_beos="yes"
511 512 513 514 515
# 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
516
netserver="yes"
517
need_inet_aton="yes"
518
extralibs="-lnet"
519
fi ;;
520 521
SunOS)
v4l="no"
L
Luca Abeni 已提交
522
v4l2="no"
523
audio_oss="no"
524
dv1394="no"
525
make="gmake"
526
FFLDFLAGS=""
527
FFSERVERLDFLAGS=""
528
SHFLAGS="-shared -Wl,-h,\$@"
529
need_inet_aton="yes"
530
add_extralibs "-lsocket -lnsl"
531
;;
532 533
NetBSD)
v4l="no"
L
Luca Abeni 已提交
534
v4l2="no"
535
bktr="yes"
536 537 538
audio_oss="yes"
dv1394="no"
make="gmake"
539
add_extralibs "-lossaudio"
540
;;
541 542
OpenBSD)
v4l="no"
L
Luca Abeni 已提交
543
v4l2="no"
544
bktr="yes"
545 546 547
audio_oss="yes"
dv1394="no"
make="gmake"
548
LIBOBJFLAGS="\$(PIC)"
549
LDCONFIG="ldconfig -m \$(shlibdir)"
550
add_extralibs "-lossaudio"
551
;;
552 553
FreeBSD)
v4l="no"
L
Luca Abeni 已提交
554
v4l2="no"
555
bktr="yes"
556
audio_oss="yes"
557
dv1394="no"
558
make="gmake"
559
add_cflags "-pthread"
560
;;
561 562 563 564 565 566
GNU/kFreeBSD)
v4l="no"
v4l2="no"
bktr="yes"
audio_oss="yes"
dv1394="no"
567
add_cflags "-pthread"
568
;;
569
BSD/OS)
F
Fabrice Bellard 已提交
570
v4l="no"
L
Luca Abeni 已提交
571
v4l2="no"
572
bktr="yes"
F
Fabrice Bellard 已提交
573
audio_oss="yes"
574
dv1394="no"
575 576
extralibs="-lpoll -lgnugetopt -lm"
make="gmake"
577 578
strip="strip -d"
installstrip=""
579
;;
580
Darwin)
581
cc="cc"
582
v4l="no"
L
Luca Abeni 已提交
583
v4l2="no"
584
audio_oss="no"
585
dv1394="no"
586
SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(shlibdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION)"
587
VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(shlibdir)/vhook/$@'
588
extralibs=""
589
strip="strip -x"
590
installstrip=""
591
FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
592
SLIBSUF=".dylib"
593 594
SLIBNAME_WITH_FULLVERSION='$(SLIBPREF)$(NAME).$(LIBVERSION)$(SLIBSUF)'
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)'
595
FFSERVERLDFLAGS=-Wl,-bind_at_load
596
LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(libdir)/$(LIB)"'
597
;;
598
MINGW32*)
F
Fabrice Bellard 已提交
599
# Note: the rest of the mingw32 config is done afterwards as mingw32
D
Diego Biurrun 已提交
600
# can be forced on the command line for Linux cross compilation.
601 602
mingw32="yes"
;;
603
CYGWIN*)
604
targetos=CYGWIN
605
shlibdir='${PREFIX}/bin'
606
v4l="no"
L
Luca Abeni 已提交
607
v4l2="no"
608
audio_oss="yes"
609
dv1394="no"
D
Diego Biurrun 已提交
610
VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil'
611
VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
612
extralibs=""
613
EXESUF=".exe"
614 615 616 617 618
SLIBPREF="cyg"
SLIBSUF=".dll"
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
SHFLAGS='-shared -Wl,--out-implib=lib$(NAME).dll.a'
619
;;
620
Linux)
621
check_ldflags '-Wl,--as-needed'
622
;;
623
IRIX*)
624
targetos=IRIX
625 626
ranlib="echo ignoring ranlib"
v4l="no"
L
Luca Abeni 已提交
627
v4l2="no"
628 629 630
audio_oss="no"
make="gmake"
;;
631 632
OS/2)
TMPE=$TMPE".exe"
633
ar="emxomfar -p128"
634 635
ranlib="echo ignoring ranlib"
strip="echo ignoring strip"
636
add_cflags "-Zomf"
637
FFLDFLAGS="-Zomf -Zstack 16384 -s"
638
SHFLAGS="-Zdll -Zomf"
639
FFSERVERLDFLAGS=""
640 641 642 643
LIBPREF=""
LIBSUF=".lib"
SLIBPREF=""
SLIBSUF=".dll"
F
Fabrice Bellard 已提交
644
EXESUF=".exe"
645
extralibs=""
646
pkg_requires=""
647
v4l="no"
L
Luca Abeni 已提交
648
v4l2="no"
649
audio_oss="no"
650
dv1394="no"
651
ffserver="no"
652
vhook="no"
653
os2="yes"
654

655
;;
656 657 658
*)
targetos="${targetos}-UNKNOWN"
;;
659
esac
F
Fabrice Bellard 已提交
660

661
# find source path
662
source_path="`dirname $0`"
663 664 665 666
source_path_used="yes"
if test -z "$source_path" -o "$source_path" = "." ; then
    source_path=`pwd`
    source_path_used="no"
667 668
else
    source_path="`cd \"$source_path\"; pwd`"
F
Fabrice Bellard 已提交
669 670
fi

671 672 673 674
if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
    show_help
fi

675 676 677 678 679
FFMPEG_CONFIGURATION=" "
for opt do
  FFMPEG_CONFIGURATION="$FFMPEG_CONFIGURATION""$opt "
done

M
Måns Rullgård 已提交
680 681
ENCODER_LIST=`grep 'register_avcodec(&[a-z0-9_]*_encoder)' $source_path/libavcodec/allcodecs.c  | sed 's/.*&\(.*\)).*/\1/'`
DECODER_LIST=`grep 'register_avcodec(&[a-z0-9_]*_decoder)' $source_path/libavcodec/allcodecs.c  | sed 's/.*&\(.*\)).*/\1/'`
682
PARSER_LIST=`grep 'av_register_codec_parser(&[a-z]' $source_path/libavcodec/allcodecs.c  | sed 's/.*&\(.*\)).*/\1/'`
683 684
MUXER_LIST=`grep 'av_register_output_format(&[a-z]' $source_path/libavformat/allformats.c  | sed 's/.*&\(.*\)).*/\1/'`
DEMUXER_LIST=`grep 'av_register_input_format(&[a-z]' $source_path/libavformat/allformats.c  | sed 's/.*&\(.*\)).*/\1/'`
685

F
Fabrice Bellard 已提交
686
for opt do
M
Måns Rullgård 已提交
687
  optval="${opt#*=}"
F
Fabrice Bellard 已提交
688
  case "$opt" in
689 690
  --log)
  ;;
M
Måns Rullgård 已提交
691
  --log=*) logging="$optval"
692
  ;;
693
  --prefix=*) PREFIX="$optval"; force_prefix=yes
F
Fabrice Bellard 已提交
694
  ;;
M
Måns Rullgård 已提交
695
  --libdir=*) libdir="$optval"; force_libdir=yes
696
  ;;
697 698
  --shlibdir=*) shlibdir="$optval"
  ;;
M
Måns Rullgård 已提交
699
  --incdir=*) incdir="$optval"
D
Diego Biurrun 已提交
700
  ;;
M
Måns Rullgård 已提交
701
  --mandir=*) mandir="$optval"
F
Fabrice Bellard 已提交
702
  ;;
M
Måns Rullgård 已提交
703
  --source-path=*) source_path="$optval"
704
  ;;
M
Måns Rullgård 已提交
705
  --cross-prefix=*) cross_prefix="$optval"
706
  ;;
707 708
  --cross-compile) cross_compile=yes
  ;;
M
Måns Rullgård 已提交
709
  --cc=*) cc="$optval"
F
Fabrice Bellard 已提交
710
  ;;
M
Måns Rullgård 已提交
711
  --make=*) make="$optval"
712
  ;;
713
  --extra-cflags=*) add_cflags "$optval"
714
  ;;
715
  --extra-ldflags=*) EXTRALDFLAGS="$optval"
716
  ;;
M
Måns Rullgård 已提交
717
  --extra-libs=*) extralibs="$optval"
718
  ;;
M
Måns Rullgård 已提交
719
  --build-suffix=*) BUILDSUF="$optval"
720
  ;;
721
  --arch=*) arch="$optval"
F
Fabrice Bellard 已提交
722
  ;;
723
  --cpu=*) cpu="$optval"
724
  ;;
725 726
  --powerpc-perf-enable) powerpc_perf="yes"
  ;;
F
Fabrice Bellard 已提交
727 728
  --disable-mmx) mmx="no"
  ;;
729 730
  --disable-armv5te) armv5te="no"
  ;;
731 732
  --disable-iwmmxt) iwmmxt="no"
  ;;
733 734
  --disable-altivec) altivec="no"
  ;;
F
Fabrice Bellard 已提交
735 736
  --enable-gprof) gprof="yes"
  ;;
F
Fabrice Bellard 已提交
737 738
  --disable-v4l) v4l="no"
  ;;
L
Luca Abeni 已提交
739 740
  --disable-v4l2) v4l2="no"
  ;;
741 742
  --disable-bktr) bktr="no"
  ;;
F
Fabrice Bellard 已提交
743 744
  --disable-audio-oss) audio_oss="no"
  ;;
745 746
  --disable-audio-beos) audio_beos="no"
  ;;
747 748
  --disable-dv1394) dv1394="no"
  ;;
749
  --disable-network) network="no"; ffserver="no"
F
Fabrice Bellard 已提交
750
  ;;
751 752
  --disable-ipv6) ipv6="no";
  ;;
753 754
  --disable-zlib) zlib="no"
  ;;
755
  --enable-a52) a52="yes"
756
  ;;
M
Michael Niedermayer 已提交
757
  --enable-a52bin) a52bin="yes"
Z
Zdenek Kabelac 已提交
758
  ;;
759
  --enable-dts) dts="yes"
760
  ;;
761
  --enable-pp) pp="yes"
762
  ;;
763 764
  --enable-libgsm) libgsm="yes"
  ;;
765
  --enable-mp3lame) mp3lame="yes"
766
  ;;
767
  --enable-libogg) libogg="yes"
768
    pkg_requires="$pkg_requires ogg >= 1.1"
N
Nilesh Bansal 已提交
769
  ;;
770
  --enable-vorbis) vorbis="yes"
771
    pkg_requires="$pkg_requires vorbis vorbisenc"
772
  ;;
Z
Zdenek Kabelac 已提交
773 774 775 776
  --enable-faad) faad="yes"
  ;;
  --enable-faadbin) faadbin="yes"
  ;;
777
  --enable-faac) faac="yes"
778
  ;;
779 780
  --enable-xvid) xvid="yes"
  ;;
781
  --enable-x264) x264="yes"
782
  ;;
783 784
  --enable-avisynth) avisynth="yes";
  ;;
785
  --enable-dc1394) dc1394="yes"
786
    pkg_requires="$pkg_requires libraw1394"
787
  ;;
788 789
  --disable-vhook) vhook="no"
  ;;
790
  --disable-simple_idct) simpleidct="no"
791
  ;;
792 793
  --enable-mingw32) mingw32="yes"
  ;;
G
Gildas Bazin 已提交
794 795
  --enable-mingwce) mingwce="yes"
  ;;
796 797 798 799
  --enable-static) lstatic="yes"
  ;;
  --disable-static) lstatic="no"
  ;;
800
  --enable-shared) lshared="yes"
N
Nick Kurshev 已提交
801
  ;;
802 803
  --disable-shared) lshared="no"
  ;;
804 805 806 807
  --disable-debug) debug="no"
  ;;
  --disable-opts) optimize="no"
  ;;
808 809
  --disable-mpegaudio-hp) mpegaudio_hp="no"
  ;;
810 811
  --disable-protocols) protocols="no"; network="no"; ffserver="no"
  ;;
812 813
  --disable-ffserver) ffserver="no"
  ;;
814 815
  --disable-ffplay) ffplay="no"
  ;;
816
  --enable-small) optimize="small"
817
  ;;
D
Diego Biurrun 已提交
818
  --enable-amr_nb) amr="yes"; amr_nb="yes"; amr_nb_fixed="no"
819
  ;;
D
Diego Biurrun 已提交
820
  --enable-amr_nb-fixed) amr="yes"; amr_nb_fixed="yes"; amr_nb="no"
Z
Zdenek Kabelac 已提交
821
  ;;
D
Diego Biurrun 已提交
822
  --enable-amr_wb) amr="yes"; amr_wb="yes"
823
  ;;
D
Diego Biurrun 已提交
824
  --enable-amr_if2) amr="yes"; amr_if2="yes"
825
  ;;
826 827
  --enable-sunmlib) sunmlib="yes"
  ;;
828 829
  --enable-pthreads) pthreads="yes"
  ;;
L
Luca Abeni 已提交
830 831
  --enable-swscaler) swscaler="yes"
  ;;
832 833
  --enable-gpl) gpl="yes"
  ;;
834 835
  --enable-memalign-hack) memalignhack="yes"
  ;;
836 837
  --disable-strip) dostrip="no"
  ;;
M
Måns Rullgård 已提交
838
  --enable-encoder=*) ENCODER_LIST="$ENCODER_LIST ${optval}_encoder"
839
  ;;
M
Måns Rullgård 已提交
840
  --enable-decoder=*) DECODER_LIST="$DECODER_LIST ${optval}_decoder"
841
  ;;
M
Måns Rullgård 已提交
842
  --disable-encoder=*) ENCODER_LIST="`filter_out ${optval}_encoder $ENCODER_LIST`"
843
  ;;
M
Måns Rullgård 已提交
844
  --disable-decoder=*) DECODER_LIST="`filter_out ${optval}_decoder $DECODER_LIST`"
845
  ;;
846
  --disable-encoders) ENCODER_LIST=""
847
  ;;
848
  --disable-decoders) DECODER_LIST=""
849
  ;;
M
Måns Rullgård 已提交
850
  --enable-muxer=*) MUXER_LIST="$MUXER_LIST ${optval}_muxer"
851
  ;;
M
Måns Rullgård 已提交
852
  --disable-muxer=*) MUXER_LIST="`filter_out ${optval}_muxer $MUXER_LIST`"
853 854 855
  ;;
  --disable-muxers) MUXER_LIST=""; ffserver="no"
  ;;
M
Måns Rullgård 已提交
856
  --enable-demuxer=*) DEMUXER_LIST="$DEMUXER_LIST ${optval}_demuxer"
857
  ;;
M
Måns Rullgård 已提交
858
  --disable-demuxer=*) DEMUXER_LIST="`filter_out ${optval}_demuxer $DEMUXER_LIST`"
859 860
  ;;
  --disable-demuxers) DEMUXER_LIST=""
861
  ;;
M
Måns Rullgård 已提交
862
  --enable-parser=*) PARSER_LIST="$PARSER_LIST ${optval}_parser"
863
  ;;
M
Måns Rullgård 已提交
864
  --disable-parser=*) PARSER_LIST="`filter_out ${optval}_parser $PARSER_LIST`"
865 866 867
  ;;
  --disable-parsers) PARSER_LIST=""
  ;;
868 869
  --help) show_help
  ;;
870 871 872 873 874
  *)
  echo "Unknown option \"$opt\"."
  echo "See $0 --help for available options."
  exit 1
  ;;
F
Fabrice Bellard 已提交
875 876 877
  esac
done

878 879
if test "$logging" != no; then
    test "$logging" = yes || logfile="$logging"
880 881
    echo "# $0 $@" >$logfile
    set >>$logfile
882 883
else
    logfile=/dev/null
884
fi
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
if test "$mingw32" = "yes" -o "$mingwce" = "yes"; then
    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
you do not need to pass additional options.
EOF
        exit 1
    fi
    v4l="no"
    v4l2="no"
    bktr="no"
    audio_oss="no"
    dv1394="no"
    dc1394="no"
    ffserver="no"
    network="no"
    if test "$mingwce" = "yes"; then
        protocols="no"
    fi
    SLIBPREF=""
    SLIBSUF=".dll"
    EXESUF=".exe"
910 911
    SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
912
    SLIB_EXTRA_CMD="-lib /machine:i386 /def:\$(@:${SLIBSUF}=.def)"
913
    SHFLAGS="-shared -Wl,--output-def,\$(@:${SLIBSUF}=.def),--out-implib,lib\$(SLIBNAME:\$(SLIBSUF)=.dll.a)"
914
    if test "$force_prefix" != yes; then PREFIX="$PROGRAMFILES/FFmpeg"; fi
915 916
    if test "$force_libdir" != yes; then bindir='${PREFIX}'; fi
    shlibdir='${PREFIX}'
917 918
fi

919 920
# Combine FFLDFLAGS, EXTRALDFLAGS and the LDFLAGS environment variable.
LDFLAGS="$FFLDFLAGS $EXTRALDFLAGS $LDFLAGS"
921

922
test -n "$cross_prefix" && cross_compile=yes
923 924 925 926 927
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
ranlib="${cross_prefix}${ranlib}"
strip="${cross_prefix}${strip}"

928 929 930 931 932 933 934 935 936 937 938
# 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 已提交
939
if test "$vorbis" = "yes" ; then
940
    if test "$libogg" = "no"; then
D
Diego Biurrun 已提交
941
        echo "libogg must be enabled to enable Vorbis."
N
Nilesh Bansal 已提交
942 943 944 945
        fail="yes"
    fi
fi

946
if test "$gpl" != "yes"; then
947
    if test "$pp" != "no"; then
D
Diego Biurrun 已提交
948
        echo "The Postprocessing code is under GPL and --enable-gpl is not specified."
949 950 951 952
        fail="yes"
    fi

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

957
    if test "$xvid" != "no"; then
D
Diego Biurrun 已提交
958
        echo "libxvidcore is under GPL and --enable-gpl is not specified."
959 960 961
        fail="yes"
    fi

962
    if test "$x264" != "no"; then
D
Diego Biurrun 已提交
963
        echo "x264 is under GPL and --enable-gpl is not specified."
964 965 966
        fail="yes"
    fi

967
    if test "$dts" != "no"; then
D
Diego Biurrun 已提交
968
        echo "libdts is under GPL and --enable-gpl is not specified."
969 970
        fail="yes"
    fi
971

972
    if test "$faad" != "no" -o "$faadbin" != "no"; then
973 974
        if check_header faad.h; then
            check_cc << EOF
975 976 977 978 979 980
                #include <faad.h>
                #ifndef FAAD2_VERSION
                ok faad1
                #endif
                int main( void ) { return 0; }
EOF
981
            if test $? = 0 ; then
D
Diego Biurrun 已提交
982
                echo "FAAD2 is under GPL and --enable-gpl is not specified."
983 984 985 986 987
                fail="yes"
            fi
        else
            faad="no"
            faadbin="no"
D
Diego Biurrun 已提交
988
            echo "FAAD test failed."
989 990
        fi
    fi
991

L
Luca Abeni 已提交
992 993 994 995
    if test "$swscaler" != "no"; then
        echo "The software scaler is under GPL and --enable-gpl is not specified."
        fail="yes"
    fi
996
fi
997

998 999
if test "$fail" = "yes"; then
    exit 1
1000 1001
fi

D
Diego Biurrun 已提交
1002
# compute MMX state
1003
if test $mmx = "default"; then
1004
    if test $arch = "x86" -o $arch = "x86_64"; then
1005 1006 1007 1008 1009 1010
        mmx="yes"
    else
        mmx="no"
    fi
fi

1011
#Darwin CC versions
1012
needmdynamicnopic="no"
1013
if test $targetos = Darwin; then
1014
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
1015
        add_cflags "-qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto"
1016
    else
1017 1018 1019
        gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
        case "$gcc_version" in
            *2.95*)
1020
                add_cflags "-no-cpp-precomp -pipe"
1021 1022
                ;;
            *[34].*)
1023
                add_cflags "-no-cpp-precomp -pipe -force_cpusubtype_ALL -Wno-sign-compare"
1024 1025 1026 1027 1028
                if test "$lshared" = no; then
                   needmdynamicnopic="yes"
                fi
                ;;
            *)
1029
                add_cflags "-no-cpp-precomp -pipe"
1030 1031 1032 1033 1034
                if test "$lshared" = no; then
                   needmdynamicnopic="yes"
                fi
                ;;
        esac
1035
    fi
1036 1037 1038 1039
fi

if test $optimize != "no"; then
    add_cflags "-fomit-frame-pointer"
1040 1041
fi

1042 1043
# Can only do AltiVec on PowerPC
if test $altivec = "default"; then
1044
    if test $arch = "powerpc"; then
1045 1046 1047 1048 1049 1050
        altivec="yes"
    else
        altivec="no"
    fi
fi

1051 1052
# Add processor-specific flags
TUNECPU="generic"
1053
POWERPCMODE="32bits"
1054 1055
if test $cpu != "generic"; then
    case $cpu in
1056
        601|ppc601|PowerPC601)
1057
            add_cflags "-mcpu=601"
1058 1059 1060 1061 1062 1063
            if test $altivec = "yes"; then
                echo "WARNING: Tuning for PPC601 but AltiVec enabled!";
            fi
            TUNECPU=ppc601
        ;;
        603*|ppc603*|PowerPC603*)
1064
            add_cflags "-mcpu=603"
1065 1066 1067 1068 1069 1070
            if test $altivec = "yes"; then
                echo "WARNING: Tuning for PPC603 but AltiVec enabled!";
            fi
            TUNECPU=ppc603
        ;;
        604*|ppc604*|PowerPC604*)
1071
            add_cflags "-mcpu=604"
1072 1073 1074 1075 1076 1077
            if test $altivec = "yes"; then
                echo "WARNING: Tuning for PPC604 but AltiVec enabled!";
            fi
            TUNECPU=ppc604
        ;;
        G3|g3|75*|ppc75*|PowerPC75*)
1078
            add_cflags "-mcpu=750 -mpowerpc-gfxopt"
1079 1080 1081 1082 1083 1084
            if test $altivec = "yes"; then
                echo "WARNING: Tuning for PPC75x but AltiVec enabled!";
            fi
            TUNECPU=ppc750
        ;;
        G4|g4|745*|ppc745*|PowerPC745*)
1085
            add_cflags "-mcpu=7450 -mpowerpc-gfxopt"
1086 1087 1088 1089 1090 1091
            if test $altivec = "no"; then
                echo "WARNING: Tuning for PPC745x but AltiVec disabled!";
            fi
            TUNECPU=ppc7450
        ;;
        74*|ppc74*|PowerPC74*)
1092
            add_cflags "-mcpu=7400 -mpowerpc-gfxopt"
1093 1094 1095 1096 1097 1098
            if test $altivec = "no"; then
                echo "WARNING: Tuning for PPC74xx but AltiVec disabled!";
            fi
            TUNECPU=ppc7400
        ;;
        G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
1099
            add_cflags "-mcpu=970 -mpowerpc-gfxopt -mpowerpc64"
1100 1101 1102 1103
            if test $altivec = "no"; then
                echo "WARNING: Tuning for PPC970 but AltiVec disabled!";
            fi
            TUNECPU=ppc970
1104
            POWERPCMODE="64bits"
1105
        ;;
1106 1107
        # targets that do NOT support conditional mov (cmov)
        i[345]86|pentium|pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3)
1108
            add_cflags "-march=$cpu"
1109 1110 1111
            cmov="no"
        ;;
        # targets that do support conditional mov (cmov)
1112
        i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64|k8|opteron|athlon-fx)
1113
            add_cflags "-march=$cpu"
1114
            cmov="yes"
1115 1116 1117 1118 1119 1120 1121
            cmov_is_fast="yes"
        ;;
        # targets that do support conditional mov but on which it's slow
        pentium4|prescott|nocona)
            add_cflags "-march=$cpu"
            cmov="yes"
            cmov_is_fast="no"
1122
        ;;
1123
        sparc64)
1124
            add_cflags "-mcpu=v9"
1125
        ;;
1126
        *)
1127
        echo "WARNING: Unknown CPU \"$cpu\", ignored."
1128
        ;;
1129 1130 1131
    esac
fi

1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143
# make sure we can execute files in $TMPDIR
cat >$TMPE 2>>$logfile <<EOF
#! /bin/sh
EOF
chmod +x $TMPE >>$logfile 2>&1
if ! $TMPE >>$logfile 2>&1; then
    cat <<EOF
Unable to create and execute files in $TMPDIR1.  Set the TMPDIR environment
variable to another directory.
EOF
    die "Sanity test failed."
fi
1144
rm $TMPE
1145

M
Måns Rullgård 已提交
1146 1147 1148 1149 1150 1151 1152 1153 1154 1155
# compiler sanity check
check_exec <<EOF
int main(){
    return 0;
}
EOF
if test "$?" != 0; then
    echo "$cc is unable to create an executable file."
    if test -z "$cross_prefix" -a "$cross_compile" = no; then
        echo "If $cc is a cross-compiler, use the --cross-compile option."
1156
        echo "Only do this if you know what cross compiling means."
M
Måns Rullgård 已提交
1157 1158 1159 1160
    fi
    die "C compiler test failed."
fi

1161 1162
# check for assembler specific support

1163
if test $arch = "powerpc"; then
1164 1165 1166 1167 1168 1169 1170 1171 1172 1173
check_cc <<EOF && dcbzl=yes
int main(void) {
    register long zero = 0;
    char data[1024];
    asm volatile("dcbzl %0, %1" : : "b" (data), "r" (zero));
return 0;
}
EOF
fi

1174 1175
# check for SIMD availability

1176
# AltiVec flags: The FSF version of GCC differs from the Apple version
1177
if test $arch = "powerpc"; then
1178
    if test $altivec = "yes"; then
1179
        if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
1180
            add_cflags "-faltivec"
1181
        else
1182
            add_cflags "-maltivec -mabi=altivec"
1183 1184 1185 1186
        fi
    fi
fi

1187
check_header altivec.h && _altivec_h=yes || _altivec_h=no
1188

D
Diego Biurrun 已提交
1189
# check if our compiler supports Motorola AltiVec C API
1190
if test $altivec = "yes"; then
M
Måns Rullgård 已提交
1191 1192 1193 1194 1195 1196
    if test $_altivec_h = "yes"; then
        inc_altivec_h="#include <altivec.h>"
    else
        inc_altivec_h=
    fi
    check_cc <<EOF || altivec=no
1197
$inc_altivec_h
1198 1199 1200 1201 1202 1203 1204
int main(void) {
    vector signed int v1, v2, v3;
    v1 = vec_add(v2,v3);
    return 0;
}
EOF
fi
1205

1206
# check armv5te instructions support
1207
if test $armv5te = "default" -a $arch = "armv4l"; then
1208 1209 1210 1211 1212 1213 1214 1215 1216
    armv5te=no
    check_cc <<EOF && armv5te=yes
        int main(void) {
        __asm__ __volatile__ ("qadd r0, r0, r0");
        }
EOF
fi

# check iwmmxt support
1217
if test $iwmmxt = "default" -a $arch = "armv4l"; then
1218 1219 1220 1221 1222 1223 1224 1225
    iwmmxt=no
    check_cc <<EOF && iwmmxt=yes
        int main(void) {
        __asm__ __volatile__ ("wunpckelub wr6, wr4");
        }
EOF
fi

D
Diego Biurrun 已提交
1226
# mmi only available on mips
1227
if test $mmi = "default"; then
1228
    if test $arch = "mips"; then
1229 1230 1231 1232 1233 1234
        mmi="yes"
    else
        mmi="no"
    fi
fi

D
Diego Biurrun 已提交
1235
# check if our compiler supports mmi
1236
enabled mmi && check_cc <<EOF || mmi="no"
1237 1238 1239 1240 1241
int main(void) {
    __asm__ ("lq \$2, 0(\$2)");
    return 0;
}
EOF
1242 1243 1244

# ---
# big/little-endian test
1245
if test "$cross_compile" = "no"; then
1246
    check_ld <<EOF || die "endian test failed" && $TMPE && bigendian="yes"
1247 1248
#include <inttypes.h>
int main(int argc, char ** argv){
1249 1250
        volatile uint32_t i=0x01234567;
        return (*((uint8_t*)(&i))) == 0x67;
1251 1252
}
EOF
F
Fabrice Bellard 已提交
1253
else
M
Måns Rullgård 已提交
1254
    # programs cannot be launched if cross compiling, so make a static guess
1255
    if test "$arch" = "powerpc" -o "$arch" = "mips" ; then
M
Måns Rullgård 已提交
1256 1257
        bigendian="yes"
    fi
F
Fabrice Bellard 已提交
1258 1259
fi

1260 1261
# ---
# *inttypes.h* test
1262
check_header inttypes.h || inttypes=no
1263

1264 1265
# ---
# *int_fast* test
1266
check_cc <<EOF || emu_fast_int=yes
1267 1268
#include <inttypes.h>
int main(int argc, char ** argv){
1269 1270
        volatile uint_fast64_t i=0x01234567;
        return 0;
1271 1272 1273
}
EOF

N
Nick Kurshev 已提交
1274 1275 1276 1277 1278
# ---
# check availability of some header files

_memalign=no
_malloc_h=no
1279 1280 1281 1282
if check_header malloc.h; then
    _malloc_h=yes
    _memalign=yes
    check_func memalign || _memalign="no"
N
Nick Kurshev 已提交
1283 1284
fi

1285
if test "$_memalign" = "no" -a "$mmx" = "yes" -a \
1286 1287
        "$memalignhack" != "yes" -a "$targetos" != "Darwin" -a \
        "$targetos" != "FreeBSD" ; then
1288
    die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
1289 1290
fi

1291
check_func localtime_r && localtime_r=yes || localtime_r=no
1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307
enabled zlib && check_lib zlib.h zlibVersion -lz || zlib="no"

# check for some common methods of building with pthread support
# do this before the optional library checks as some of them require pthreads
if enabled pthreads; then
    { check_cflags -pthread && check_ldflags -pthread; } ||
    { check_cflags -pthreads && check_ldflags -pthreads; } ||
    check_lib pthread.h pthread_create -lpthread ||
    check_func pthread_create ||
    die "ERROR: can't find pthreads library"
fi

# these are off by default, so fail if requested and not available
enabled dts     && require libdts dts.h dts_init -ldts
enabled libgsm  && require libgsm gsm.h gsm_create -lgsm
enabled mp3lame && require LAME lame/lame.h lame_init -lmp3lame
M
Måns Rullgård 已提交
1308
enabled vorbis  && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc -logg
1309
enabled libogg  && require libogg ogg/ogg.h ogg_sync_init -logg
1310 1311 1312 1313
enabled xvid    && require XviD xvid.h xvid_global -lxvidcore
enabled x264    && require x264 x264.h x264_encoder_open -lx264
enabled dc1394  && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394
enabled sunmlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
1314

1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331
# Ugh, faac uses stdcall calling convention on win32 so we can't use
# the generic test functions
if enabled faac; then
    save_flags
    temp_extralibs -lfaac
    check_ld <<EOF && add_extralibs -lfaac || die "ERROR: libfaac not found"
#include <stdint.h>
#include <faac.h>
int main(){
    char *id, *cpr;
    faacEncGetVersion(&id, &cpr);
    return 0;
}
EOF
    restore_flags
fi

1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346
# Ugh, recent faad2 versions have renamed all functions and #define the
# old names in faad.h.  Generic tests won't work.
if enabled faad; then
    save_flags
    temp_extralibs -lfaad
    check_ld <<EOF && add_extralibs -lfaad || die "ERROR: libfaad not found"
#include <faad.h>
int main(){
    faacDecOpen();
    return 0;
}
EOF
    restore_flags
fi

1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362
# Ugh, avisynth uses WINAPI calls. Generic tests won't work.
if enabled avisynth; then
    save_flags
    temp_extralibs -lvfw32
    check_ld <<EOF && add_extralibs -lvfw32 || die "ERROR: vfw32 not found"
#include <windows.h>
#include <vfw.h>
int main(){
    AVIFileInit();
    return 0;
}
EOF
    restore_flags
fi


1363
# test for lrintf in math.h
1364
check_exec <<EOF && have_lrintf=yes || have_lrintf=no
1365 1366 1367 1368 1369
#define _ISOC9X_SOURCE  1
#include <math.h>
int main( void ) { return (lrintf(3.999f) > 0)?0:1; }
EOF

F
Falk Hüffner 已提交
1370 1371
_restrict=
for restrict_keyword in restrict __restrict__ __restrict; do
1372
    check_cc <<EOF && _restrict=$restrict_keyword && break
1373 1374
void foo(char * $restrict_keyword p);
EOF
F
Falk Hüffner 已提交
1375 1376
done

1377 1378
# dlopen/dlfcn.h probing

1379
check_header dlfcn.h && dlfcn=yes
1380

1381 1382 1383 1384
temp_extralibs -ldl
if check_func dlopen; then
    dlopen=yes
    ldl=-ldl
1385
fi
1386
restore_flags
1387

1388 1389 1390
if check_func dlopen; then
    dlopen=yes
    ldl=
1391 1392
fi

M
Måns Rullgård 已提交
1393 1394
if test "$vhook" = "default"; then
    vhook="$dlopen"
1395 1396
fi

M
Michael Niedermayer 已提交
1397
if test "$vhook" = "yes" -o "$a52bin" = "yes" -o "$faadbin" = "yes"; then
1398
    add_extralibs $ldl
M
Michael Niedermayer 已提交
1399 1400
fi

1401 1402 1403 1404 1405 1406 1407 1408
if test "$targetos" = "CYGWIN" -a "$lstatic" = "yes" ; then
    vhook="no"
    echo
    echo "At the moment vhooks don't work on Cygwin static builds."
    echo "Patches welcome."
    echo
fi

1409 1410 1411 1412
if enabled vhook; then
    check_ldflags -rdynamic
    check_ldflags -export-dynamic
fi
M
Michael Niedermayer 已提交
1413

1414
##########################################
D
Diego Biurrun 已提交
1415
# imlib check
1416

1417 1418
temp_extralibs -lImlib2
check_ld <<EOF && imlib2=yes || imlib2=no
1419 1420 1421 1422
#include <X11/Xlib.h>
#include <Imlib2.h>
int main( void ) { return (int) imlib_load_font("foo"); }
EOF
1423
restore_flags
1424

1425
##########################################
D
Diego Biurrun 已提交
1426
# FreeType check
1427

1428
freetype2=no
1429
if test "x$targetos" != "xBeOS"; then
1430
  if (freetype-config --version) >/dev/null 2>&1 ; then
1431 1432 1433 1434 1435 1436 1437
      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
1438
  fi
1439 1440
fi

1441
##########################################
D
Diego Biurrun 已提交
1442
# SDL check
1443 1444 1445

sdl_too_old=no
sdl=no
1446 1447
SDL_CONFIG="${cross_prefix}sdl-config"
if ("${SDL_CONFIG}" --version) >/dev/null 2>&1 ; then
1448 1449 1450 1451 1452 1453 1454 1455 1456
    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'`
1457
        if test "$_sdlversion" -lt 121 ; then
1458 1459 1460
            sdl_too_old=yes
        else
            sdl=yes
1461 1462 1463 1464 1465 1466 1467 1468
            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
1469 1470
        fi
    fi
1471
    restore_flags
M
Michael Niedermayer 已提交
1472
fi
1473

1474 1475
enabled sdl || ffplay=no

1476
##########################################
D
Diego Biurrun 已提交
1477
# texi2html check
1478 1479

texi2html=no
1480
if (texi2html -version) >/dev/null 2>&1; then
1481 1482 1483
texi2html=yes
fi

1484
##########################################
D
Diego Biurrun 已提交
1485
# IPv6 check
1486

1487
enabled network && enabled ipv6 && check_ld <<EOF && ipv6=yes || ipv6=no
1488 1489 1490 1491 1492 1493 1494 1495 1496
#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);
1497
  IN6_IS_ADDR_MULTICAST((const struct in6_addr *)0);
1498 1499 1500
}
EOF

1501
# check for video4linux2 --- V4L2_PIX_FMT_YUV420
1502
enabled v4l2 && check_cc <<EOF || v4l2="no"
1503
#include <sys/time.h>
1504 1505
#include <asm/types.h>
#include <linux/videodev2.h>
1506
int dummy = V4L2_PIX_FMT_YUV420;
1507
struct v4l2_buffer dummy1;
1508 1509
EOF

1510 1511 1512 1513
enabled debug && add_cflags -g

# add some useful compiler flags if supported
check_cflags -Wdeclaration-after-statement
1514 1515
check_cflags -Wall
check_cflags -Wno-switch
M
Michael Niedermayer 已提交
1516 1517 1518 1519
check_cflags -Wdisabled-optimization
check_cflags -Wpointer-arith
check_cflags -Wredundant-decls
check_cflags -Winline
1520

1521
# add some linker flags
1522
check_ldflags '-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec' '-Wl,-rpath-link,\$(BUILD_ROOT)/libavformat' '-Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
F
Fabrice Bellard 已提交
1523

1524 1525
# not all compilers support -Os
test "$optimize" = "small" && check_cflags -Os
1526

1527
if enabled optimize; then
1528
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
1529 1530
        add_cflags  "-O5"
        add_ldflags "-O5"
1531
    else
1532
        add_cflags "-O3"
1533
    fi
1534 1535
fi

1536 1537
# PIC flags for shared library objects where they are needed
if test "$lshared" = "yes" ; then
M
Måns Rullgård 已提交
1538 1539
    # LIBOBJFLAGS may have already been set in the OS configuration
    if test -z "$LIBOBJFLAGS" ; then
1540
        case "$arch" in
1541 1542
            x86_64|ia64|alpha|sparc*) LIBOBJFLAGS="\$(PIC)" ;;
        esac
1543 1544 1545
    fi
fi

1546
if test "$gprof" = "yes" ; then
1547 1548
    add_cflags  "-p"
    add_ldflags "-p"
1549 1550
fi

1551 1552 1553 1554 1555 1556
# find if .align arg is power-of-two or not
if test $asmalign_pot = "unknown"; then
    asmalign_pot="no"
    echo 'asm (".align 3");' | check_cc && asmalign_pot="yes"
fi

1557
echo "install prefix   $PREFIX"
D
Diego Biurrun 已提交
1558
echo "source path      $source_path"
F
Fabrice Bellard 已提交
1559
echo "C compiler       $cc"
1560
echo "make             $make"
1561
echo "ARCH             $arch ($cpu)"
1562
if test "$BUILDSUF" != ""; then
M
Måns Rullgård 已提交
1563
    echo "build suffix     $BUILDSUF"
1564
fi
D
Diego Biurrun 已提交
1565
echo "big-endian       $bigendian"
1566
echo "inttypes.h       $inttypes"
1567
echo "broken inttypes.h $emu_fast_int"
1568
if test $arch = "x86" -o $arch = "x86_64"; then
M
Måns Rullgård 已提交
1569
    echo "MMX enabled      $mmx"
1570
    echo "CMOV enabled     $cmov"
1571
    echo "CMOV is fast     $cmov_is_fast"
F
Fabrice Bellard 已提交
1572
fi
1573
if test $arch = "armv4l"; then
1574
    echo "ARMv5TE enabled  $armv5te"
M
Måns Rullgård 已提交
1575
    echo "IWMMXT enabled   $iwmmxt"
1576
fi
1577
if test $arch = "mips"; then
M
Måns Rullgård 已提交
1578
    echo "MMI enabled      $mmi"
F
Fabrice Bellard 已提交
1579
fi
1580
if test $arch = "powerpc"; then
M
Måns Rullgård 已提交
1581
    echo "AltiVec enabled  $altivec"
1582
    echo "dcbzl available  $dcbzl"
F
Fabrice Bellard 已提交
1583
fi
F
Fabrice Bellard 已提交
1584
echo "gprof enabled    $gprof"
1585
echo "zlib enabled     $zlib"
1586
echo "libgsm enabled   $libgsm"
1587
echo "mp3lame enabled  $mp3lame"
1588
echo "libogg enabled   $libogg"
D
Diego Biurrun 已提交
1589 1590
echo "Vorbis enabled   $vorbis"
echo "FAAD enabled     $faad"
Z
Zdenek Kabelac 已提交
1591
echo "faadbin enabled  $faadbin"
D
Diego Biurrun 已提交
1592 1593
echo "FAAC enabled     $faac"
echo "XviD enabled     $xvid"
1594
echo "x264 enabled     $x264"
F
Fabrice Bellard 已提交
1595
echo "a52 support      $a52"
Z
Zdenek Kabelac 已提交
1596
echo "a52 dlopened     $a52bin"
D
Diego Biurrun 已提交
1597
echo "DTS support      $dts"
1598
echo "pp support       $pp"
L
Luca Abeni 已提交
1599
echo "Software Scaler enabled $swscaler"
1600
echo "AVISynth enabled $avisynth"
1601
echo "debug symbols    $debug"
1602
echo "strip symbols    $dostrip"
1603
echo "optimize         $optimize"
1604
echo "static           $lstatic"
D
typo  
Diego Biurrun 已提交
1605
echo "shared           $lshared"
D
Diego Biurrun 已提交
1606
echo "video hooking    $vhook"
1607 1608
echo "SDL support      $sdl"
if test $sdl_too_old = "yes"; then
M
Måns Rullgård 已提交
1609
    echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support."
1610
fi
1611

M
Måns Rullgård 已提交
1612 1613 1614
if test "$vhook" = "yes"; then
    echo "Imlib2 support   $imlib2"
    echo "FreeType support $freetype2"
1615
fi
1616
echo "Sun medialib support"  $sunmlib
1617
echo "pthreads support"      $pthreads
Z
Zdenek Kabelac 已提交
1618 1619
echo "AMR-NB float support"  $amr_nb
echo "AMR-NB fixed support"  $amr_nb_fixed
1620
echo "AMR-WB float support"  $amr_wb
1621
echo "AMR-WB IF2 support"    $amr_if2
1622 1623
echo "network support      $network"
if test "$network" = "yes" ; then
M
Måns Rullgård 已提交
1624
    echo "IPv6 support         $ipv6"
1625
fi
1626
echo ".align is power-of-two" $asmalign_pot
1627
if test "$gpl" = "no" ; then
M
Måns Rullgård 已提交
1628
    echo "License: LGPL"
1629
else
M
Måns Rullgård 已提交
1630
    echo "License: GPL"
1631
fi
F
Fabrice Bellard 已提交
1632

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

1635 1636
date >> config.log
echo "   $0 $FFMPEG_CONFIGURATION" >> config.log
D
Diego Biurrun 已提交
1637 1638
echo "# Automatically generated by configure - do not modify!" > config.mak
echo "/* Automatically generated by configure - do not modify! */" > $TMPH
1639
echo "#define FFMPEG_CONFIGURATION "'"'"$FFMPEG_CONFIGURATION"'"' >> $TMPH
F
Fabrice Bellard 已提交
1640

1641 1642
echo "PREFIX=$PREFIX" >> config.mak
echo "prefix=\$(DESTDIR)\${PREFIX}" >> config.mak
1643
echo "libdir=\$(DESTDIR)$libdir" >> config.mak
1644
echo "shlibdir=\$(DESTDIR)$shlibdir" >> config.mak
D
Diego Biurrun 已提交
1645
echo "incdir=\$(DESTDIR)$incdir" >> config.mak
1646 1647
echo "bindir=\$(DESTDIR)$bindir" >> config.mak
echo "mandir=\$(DESTDIR)$mandir" >> config.mak
1648
echo "MAKE=$make" >> config.mak
1649 1650
echo "CC=$cc" >> config.mak
echo "AR=$ar" >> config.mak
M
Michael Niedermayer 已提交
1651
echo "RANLIB=$ranlib" >> config.mak
1652
if test "$dostrip" = "yes" ; then
M
Måns Rullgård 已提交
1653 1654
    echo "STRIP=$strip" >> config.mak
    echo "INSTALLSTRIP=$installstrip" >> config.mak
1655
else
M
Måns Rullgård 已提交
1656 1657
    echo "STRIP=echo ignoring strip" >> config.mak
    echo "INSTALLSTRIP=" >> config.mak
1658
fi
1659

1660
VHOOKCFLAGS="-fPIC $CFLAGS"
1661
test "$needmdynamicnopic" = yes && add_cflags -mdynamic-no-pic
1662

N
Nick Kurshev 已提交
1663
echo "OPTFLAGS=$CFLAGS" >> config.mak
1664
echo "VHOOKCFLAGS=$VHOOKCFLAGS">>config.mak
1665
echo "LDFLAGS=$LDFLAGS" >> config.mak
1666
echo "LDCONFIG=$LDCONFIG" >> config.mak
1667
echo "FFSERVERLDFLAGS=$FFSERVERLDFLAGS" >> config.mak
1668
echo "SHFLAGS=$SHFLAGS" >> config.mak
1669
echo "VHOOKSHFLAGS=$VHOOKSHFLAGS" >> config.mak
1670
echo "VHOOKLIBS=$VHOOKLIBS" >> config.mak
1671
echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak
1672
echo "BUILD_STATIC=$lstatic" >> config.mak
1673
echo "BUILDSUF=$BUILDSUF" >> config.mak
1674
echo "LIBPREF=$LIBPREF" >> config.mak
1675
echo "LIBSUF=\${BUILDSUF}$LIBSUF" >> config.mak
1676 1677
if test "$lstatic" = "yes" ; then
  echo "LIB=$LIB" >> config.mak
1678 1679
else # Some Make complain if this variable does not exist.
  echo "LIB=" >> config.mak
1680
fi
1681
echo "SLIBPREF=$SLIBPREF" >> config.mak
1682 1683
echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
1684
echo "TARGET_OS=$targetos" >> config.mak
1685
if test "$arch" = "x86" ; then
1686
  echo "TARGET_ARCH_X86=yes" >> config.mak
1687
  echo "#define ARCH_X86 1" >> $TMPH
1688
elif test "$arch" = "x86_64" ; then
1689 1690
  echo "TARGET_ARCH_X86_64=yes" >> config.mak
  echo "#define ARCH_X86_64 1" >> $TMPH
1691
elif test "$arch" = "armv4l" ; then
1692
  echo "TARGET_ARCH_ARMV4L=yes" >> config.mak
1693
  echo "#define ARCH_ARMV4L 1" >> $TMPH
1694
elif test "$arch" = "alpha" ; then
1695
  echo "TARGET_ARCH_ALPHA=yes" >> config.mak
1696
  echo "#define ARCH_ALPHA 1" >> $TMPH
1697
elif test "$arch" = "sparc64" ; then
1698 1699
  echo "TARGET_ARCH_SPARC64=yes" >> config.mak
  echo "#define ARCH_SPARC64 1" >> $TMPH
1700 1701
  echo "TARGET_ARCH_SPARC=yes" >> config.mak
  echo "#define ARCH_SPARC 1" >> $TMPH
1702
elif test "$arch" = "sparc" ; then
1703 1704
  echo "TARGET_ARCH_SPARC=yes" >> config.mak
  echo "#define ARCH_SPARC 1" >> $TMPH
1705
elif test "$arch" = "powerpc" ; then
1706 1707
  echo "TARGET_ARCH_POWERPC=yes" >> config.mak
  echo "#define ARCH_POWERPC 1" >> $TMPH
1708 1709 1710 1711 1712
  if test $POWERPCMODE = "32bits"; then
    echo "#define POWERPC_MODE_32BITS 1" >> $TMPH
  else
    echo "#define POWERPC_MODE_64BITS 1" >> $TMPH
  fi
1713 1714 1715
  if test "$powerpc_perf" = "yes"; then
    echo "#define POWERPC_PERFORMANCE_REPORT 1" >> $TMPH
  fi
1716
elif test "$arch" = "mips" ; then
1717 1718
  echo "TARGET_ARCH_MIPS=yes" >> config.mak
  echo "#define ARCH_MIPS 1" >> $TMPH
1719
elif test "$arch" = "sh4" ; then
A
Alex Beregszaszi 已提交
1720 1721
  echo "TARGET_ARCH_SH4=yes" >> config.mak
  echo "#define ARCH_SH4 1" >> $TMPH
1722
elif test "$arch" = "parisc" ; then
1723 1724
  echo "TARGET_ARCH_PARISC=yes" >> config.mak
  echo "#define ARCH_PARISC 1" >> $TMPH
1725
elif test "$arch" = "s390" ; then
1726 1727
  echo "TARGET_ARCH_S390=yes" >> config.mak
  echo "#define ARCH_S390 1" >> $TMPH
1728
elif test "$arch" = "m68k" ; then
1729 1730
  echo "TARGET_ARCH_M68K=yes" >> config.mak
  echo "#define ARCH_M68K 1" >> $TMPH
1731
elif test "$arch" = "ia64" ; then
1732 1733
  echo "TARGET_ARCH_IA64=yes" >> config.mak
  echo "#define ARCH_IA64 1" >> $TMPH
1734
elif test "$arch" = "bfin" ; then
M
Michael Benjamin 已提交
1735 1736
  echo "TARGET_ARCH_BFIN=yes" >> config.mak
  echo "#define ARCH_BFIN 1" >> $TMPH
A
Alex Beregszaszi 已提交
1737
fi
1738
echo "#define TUNECPU $TUNECPU" >> $TMPH
1739 1740 1741
if test "$bigendian" = "yes" ; then
  echo "WORDS_BIGENDIAN=yes" >> config.mak
  echo "#define WORDS_BIGENDIAN 1" >> $TMPH
1742
fi
1743 1744
if test "$inttypes" != "yes" ; then
  echo "#define EMULATE_INTTYPES 1" >> $TMPH
1745
fi
1746
if test "$emu_fast_int" = "yes" ; then
1747
  echo "#define EMULATE_FAST_INT 1" >> $TMPH
1748
fi
Z
Zdenek Kabelac 已提交
1749
if test "$mmx" = "yes" ; then
1750
  echo "TARGET_MMX=yes" >> config.mak
1751
  echo "#define HAVE_MMX 1" >> $TMPH
M
Michael Niedermayer 已提交
1752
  echo "#define __CPU__ 586" >> $TMPH
F
Fabrice Bellard 已提交
1753
fi
1754 1755 1756 1757
if test "$cmov" = "yes" ; then
  echo "TARGET_CMOV=yes" >> config.mak
  echo "#define HAVE_CMOV 1" >> $TMPH
fi
1758 1759 1760 1761
if test "$cmov_is_fast" = "yes" ; then
  echo "TARGET_CMOV_IS_FAST=yes" >> config.mak
  echo "#define CMOV_IS_FAST 1" >> $TMPH
fi
1762 1763 1764 1765
if test "$armv5te" = "yes" ; then
  echo "TARGET_ARMV5TE=yes" >> config.mak
  echo "#define HAVE_ARMV5TE 1" >> $TMPH
fi
1766 1767 1768 1769
if test "$iwmmxt" = "yes" ; then
  echo "TARGET_IWMMXT=yes" >> config.mak
  echo "#define HAVE_IWMMXT 1" >> $TMPH
fi
1770 1771 1772 1773
if test "$mmi" = "yes" ; then
  echo "TARGET_MMI=yes" >> config.mak
  echo "#define HAVE_MMI 1" >> $TMPH
fi
1774 1775 1776 1777 1778 1779 1780

if test "$dcbzl" = "yes" ; then
  echo "#define HAVE_DCBZL 1" >> $TMPH
else
  echo "#undef HAVE_DCBZL" >> $TMPH
fi

1781 1782 1783
if test "$altivec" = "yes" ; then
  echo "TARGET_ALTIVEC=yes" >> config.mak
  echo "#define HAVE_ALTIVEC 1" >> $TMPH
1784 1785 1786
  if test "$_altivec_h" = "yes" ; then
    echo "#define HAVE_ALTIVEC_H 1" >> $TMPH
  else
A
1l  
Alex Beregszaszi 已提交
1787
    echo "#undef HAVE_ALTIVEC_H" >> $TMPH
1788
  fi
1789
fi
Z
Zdenek Kabelac 已提交
1790
if test "$gprof" = "yes" ; then
1791
  echo "#define HAVE_GPROF 1" >> $TMPH
F
Fabrice Bellard 已提交
1792
fi
1793 1794 1795
if test "$localtime_r" = "yes" ; then
  echo "#define HAVE_LOCALTIME_R 1" >> $TMPH
fi
1796 1797 1798
if test "$imlib2" = "yes" ; then
  echo "HAVE_IMLIB2=yes" >> config.mak
fi
1799 1800 1801
if test "$freetype2" = "yes" ; then
  echo "HAVE_FREETYPE2=yes" >> config.mak
fi
1802 1803 1804 1805
if test "$sunmlib" = "yes" ; then
  echo "HAVE_MLIB=yes" >> config.mak
  echo "#define HAVE_MLIB 1" >> $TMPH
fi
1806 1807 1808
if test "$pthreads" = "yes" ; then
  echo "HAVE_PTHREADS=yes" >> config.mak
  echo "#define HAVE_PTHREADS 1" >> $TMPH
1809
  echo "#define HAVE_THREADS 1" >> $TMPH
1810
fi
1811 1812
if test "$sdl" = "yes" ; then
  echo "CONFIG_SDL=yes" >> config.mak
1813 1814
  echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak
  echo "SDL_CFLAGS=`"${SDL_CONFIG}" --cflags`" >> config.mak
1815 1816 1817
  if test "$sdl_video_size" = "yes"; then
    echo "#define HAVE_SDL_VIDEO_SIZE 1" >> $TMPH
  fi
1818
fi
1819 1820 1821
if test "$texi2html" = "yes"; then
  echo "BUILD_DOC=yes" >> config.mak
fi
1822 1823 1824
if test "$have_lrintf" = "yes" ; then
  echo "#define HAVE_LRINTF 1" >> $TMPH
fi
1825 1826 1827 1828
if test "$vhook" = "yes" ; then
  echo "BUILD_VHOOK=yes" >> config.mak
  echo "#define HAVE_VHOOK 1" >> $TMPH
fi
L
Luca Barbato 已提交
1829

L
Luca Abeni 已提交
1830
sws_version=`grep '#define LIBSWSCALE_VERSION ' "$source_path/libswscale/swscale.h" | sed 's/[^0-9\.]//g'`
1831
pp_version=`grep '#define LIBPOSTPROC_VERSION ' "$source_path/libpostproc/postprocess.h" | sed 's/[^0-9\.]//g'`
L
Luca Barbato 已提交
1832 1833 1834 1835 1836 1837
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 已提交
1838
if test "$lshared" = "yes" ; then
1839
  echo "#define BUILD_SHARED_AV 1" >> $TMPH
N
Nick Kurshev 已提交
1840
  echo "BUILD_SHARED=yes" >> config.mak
1841
  echo "PIC=-fPIC -DPIC" >> config.mak
1842
  echo "SPPMAJOR=${lavc_version%%.*}" >> config.mak
L
Luca Barbato 已提交
1843
  echo "SPPVERSION=$lavc_version" >> config.mak
1844
  echo "LAVCMAJOR=${lavc_version%%.*}" >> config.mak
L
Luca Barbato 已提交
1845
  echo "LAVCVERSION=$lavc_version" >> config.mak
1846
  echo "LAVFMAJOR=${lavf_version%%.*}" >> config.mak
L
Luca Barbato 已提交
1847
  echo "LAVFVERSION=$lavf_version" >> config.mak
1848
  echo "LAVUMAJOR=${lavu_version%%.*}" >> config.mak
L
Luca Barbato 已提交
1849
  echo "LAVUVERSION=$lavu_version" >> config.mak
L
Luca Abeni 已提交
1850 1851
  echo "SWSMAJOR=${sws_version%%.*}" >> config.mak
  echo "SWSVERSION=$sws_version" >> config.mak
1852
  echo "SLIBNAME=${SLIBNAME}" >> config.mak
1853 1854
  echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak
  echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
1855
  echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak
N
Nick Kurshev 已提交
1856
fi
1857
echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak
1858
echo "EXTRALIBS=$extralibs" >> config.mak
1859

D
Diego Biurrun 已提交
1860
# If you do not want to use encoders, disable them.
1861
if echo "$ENCODER_LIST" | grep -q encoder; then
1862 1863 1864
    echo "#define CONFIG_ENCODERS 1" >> $TMPH
    echo "CONFIG_ENCODERS=yes" >> config.mak
fi
1865

D
Diego Biurrun 已提交
1866
# If you do not want to use decoders, disable them.
1867
if echo "$DECODER_LIST" | grep -q decoder; then
1868 1869 1870
    echo "#define CONFIG_DECODERS 1" >> $TMPH
    echo "CONFIG_DECODERS=yes" >> config.mak
fi
1871

1872
# muxers
1873
if echo "$MUXER_LIST" | grep -q muxer; then
1874 1875 1876 1877 1878
  echo "#define CONFIG_MUXERS 1" >> $TMPH
  echo "CONFIG_MUXERS=yes" >> config.mak
fi

# demuxers
1879
if echo "$DEMUXER_LIST" | grep -q demuxer; then
1880 1881 1882 1883
  echo "#define CONFIG_DEMUXERS 1" >> $TMPH
  echo "CONFIG_DEMUXERS=yes" >> config.mak
fi

F
Fabrice Bellard 已提交
1884 1885 1886 1887
# AC3
if test "$a52" = "yes" ; then
  echo "#define CONFIG_AC3 1" >> $TMPH
  echo "CONFIG_AC3=yes" >> config.mak
1888

F
Fabrice Bellard 已提交
1889 1890 1891 1892 1893 1894
  if test "$a52bin" = "yes" ; then
    echo "#define CONFIG_A52BIN 1" >> $TMPH
    echo "CONFIG_A52BIN=yes" >> config.mak
  fi
fi

1895 1896 1897 1898 1899 1900
# DTS
if test "$dts" = "yes" ; then
  echo "#define CONFIG_DTS 1" >> $TMPH
  echo "CONFIG_DTS=yes" >> config.mak
fi

1901 1902 1903 1904 1905 1906
# PP
if test "$pp" = "yes" ; then
  echo "#define CONFIG_PP 1" >> $TMPH
  echo "CONFIG_PP=yes" >> config.mak
fi

L
Luca Abeni 已提交
1907 1908 1909 1910 1911
if test "$swscaler" = "yes" ; then
  echo "#define CONFIG_SWSCALER 1" >> $TMPH
  echo "CONFIG_SWSCALER=yes" >> config.mak
fi

D
Diego Biurrun 已提交
1912
# MPEG audio high precision mode
1913 1914 1915 1916
if test "$mpegaudio_hp" = "yes" ; then
  echo "#define CONFIG_MPEGAUDIO_HP 1" >> $TMPH
fi

F
Fabrice Bellard 已提交
1917 1918 1919 1920 1921
if test "$v4l" = "yes" ; then
  echo "#define CONFIG_VIDEO4LINUX 1" >> $TMPH
  echo "CONFIG_VIDEO4LINUX=yes" >> config.mak
fi

L
Luca Abeni 已提交
1922 1923 1924 1925 1926
if test "$v4l2" = "yes" ; then
  echo "#define CONFIG_VIDEO4LINUX2 1" >> $TMPH
  echo "CONFIG_VIDEO4LINUX2=yes" >> config.mak
fi

1927 1928 1929 1930 1931
if test "$bktr" = "yes" ; then
  echo "#define CONFIG_BKTR 1" >> $TMPH
  echo "CONFIG_BKTR=yes" >> config.mak
fi

1932 1933 1934 1935 1936
if test "$dv1394" = "yes" ; then
  echo "#define CONFIG_DV1394 1" >> $TMPH
  echo "CONFIG_DV1394=yes" >> config.mak
fi

1937 1938 1939 1940 1941
if test "$dc1394" = "yes" ; then
  echo "#define CONFIG_DC1394 1" >> $TMPH
  echo "CONFIG_DC1394=yes" >> config.mak
fi

1942 1943 1944 1945 1946 1947 1948 1949
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 已提交
1950 1951 1952
if test "$audio_oss" = "yes" ; then
  echo "#define CONFIG_AUDIO_OSS 1" >> $TMPH
  echo "CONFIG_AUDIO_OSS=yes" >> config.mak
Z
Zdenek Kabelac 已提交
1953 1954
fi

1955 1956 1957 1958 1959
if test "$audio_beos" = "yes" ; then
  echo "#define CONFIG_AUDIO_BEOS 1" >> $TMPH
  echo "CONFIG_AUDIO_BEOS=yes" >> config.mak
fi

F
Fabrice Bellard 已提交
1960 1961 1962
if test "$network" = "yes" ; then
  echo "#define CONFIG_NETWORK 1" >> $TMPH
  echo "CONFIG_NETWORK=yes" >> config.mak
1963
fi
1964

1965 1966 1967 1968
if test "$ipv6" = "yes" ; then
  echo "#define CONFIG_IPV6 1" >> $TMPH
fi

1969 1970 1971 1972 1973
if test "$zlib" = "yes" ; then
  echo "#define CONFIG_ZLIB 1" >> $TMPH
  echo "CONFIG_ZLIB=yes" >> config.mak
fi

1974 1975 1976 1977 1978
if test "$libgsm" = "yes" ; then
  echo "#define CONFIG_LIBGSM 1" >> $TMPH
  echo "CONFIG_LIBGSM=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1979
if test "$mp3lame" = "yes" ; then
1980
  echo "#define CONFIG_MP3LAME 1" >> $TMPH
1981 1982 1983
  echo "CONFIG_MP3LAME=yes" >> config.mak
fi

1984
if test "$libogg" = "yes" ; then
N
Nilesh Bansal 已提交
1985 1986 1987 1988
  echo "#define CONFIG_LIBOGG 1" >> $TMPH
  echo "CONFIG_LIBOGG=yes" >> config.mak
fi

1989
if test "$vorbis" = "yes" ; then
N
Nilesh Bansal 已提交
1990 1991 1992 1993
  echo "#define CONFIG_LIBVORBIS 1" >> $TMPH
  echo "CONFIG_LIBVORBIS=yes" >> config.mak
fi

1994 1995 1996 1997 1998 1999 2000
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 已提交
2001
  echo "CONFIG_FAADBIN=yes" >> config.mak
2002 2003
fi

2004 2005 2006 2007 2008
if test "$faac" = "yes" ; then
  echo "#define CONFIG_FAAC 1" >> $TMPH
  echo "CONFIG_FAAC=yes" >> config.mak
fi

2009 2010 2011 2012 2013
if test "$xvid" = "yes" ; then
  echo "#define CONFIG_XVID 1" >> $TMPH
  echo "CONFIG_XVID=yes" >> config.mak
fi

2014 2015 2016 2017 2018
if test "$x264" = "yes" ; then
  echo "#define CONFIG_X264 1" >> $TMPH
  echo "CONFIG_X264=yes" >> config.mak
fi

2019 2020 2021 2022 2023
if test "$avisynth" = "yes" ; then
  echo "#define CONFIG_AVISYNTH 1" >> $TMPH
  echo "CONFIG_AVISYNTH=yes" >> config.mak
fi

2024
if test "$mingw32" = "yes" ; then
2025
  echo "CONFIG_MINGW=yes" >> config.mak
2026 2027
  echo "HAVE_W32THREADS=yes" >> config.mak
  echo "#define HAVE_W32THREADS 1" >> $TMPH
2028
  echo "#define HAVE_THREADS 1" >> $TMPH
2029
  echo "#ifndef __MINGW32__" >> $TMPH
2030
  echo "#define __MINGW32__ 1" >> $TMPH
2031
  echo "#endif" >> $TMPH
2032 2033
fi

G
Gildas Bazin 已提交
2034
if test "$mingwce" = "yes" ; then
2035
  echo "CONFIG_MINGW=yes" >> config.mak
G
Gildas Bazin 已提交
2036 2037 2038 2039 2040 2041 2042
  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

2043 2044 2045
if test "$os2" = "yes" ; then
  echo "#define CONFIG_OS2 1" >> $TMPH
  echo "CONFIG_OS2=yes" >> config.mak
2046 2047 2048
  echo "HAVE_OS2THREADS=yes" >> config.mak
  echo "#define HAVE_OS2THREADS 1" >> $TMPH
  echo "#define HAVE_THREADS 1" >> $TMPH
2049 2050
fi

2051
if test "$targetos" = "SunOS" ; then
2052 2053 2054
  echo "#define CONFIG_SUNOS 1" >> $TMPH
fi

2055
if test "$targetos" = "BeOS" ; then
2056 2057 2058 2059 2060
  echo "HAVE_BEOSTHREADS=yes" >> config.mak
  echo "#define HAVE_BEOSTHREADS 1" >> $TMPH
  echo "#define HAVE_THREADS 1" >> $TMPH
fi

2061
if test "$targetos" = "Darwin"; then
2062 2063 2064 2065
  echo "#define CONFIG_DARWIN 1"  >> $TMPH
  echo "CONFIG_DARWIN=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
2066
if test "$_malloc_h" = "yes" ; then
2067
  echo "#define HAVE_MALLOC_H 1" >> $TMPH
N
Nick Kurshev 已提交
2068
else
2069
  echo "#undef  HAVE_MALLOC_H" >> $TMPH
N
Nick Kurshev 已提交
2070 2071
fi

Z
Zdenek Kabelac 已提交
2072
if test "$_memalign" = "yes" ; then
2073 2074 2075 2076 2077
  echo "#define HAVE_MEMALIGN 1" >> $TMPH
else
  echo "#undef  HAVE_MEMALIGN" >> $TMPH
fi

2078 2079 2080 2081 2082
if test "$memalignhack" = "yes" ; then
  echo "#define MEMALIGN_HACK 1" >> $TMPH
fi


2083 2084 2085 2086 2087
if test "$netserver" = "yes" ; then
  echo "#define CONFIG_BEOS_NETSERVER 1" >> $TMPH
  echo "CONFIG_BEOS_NETSERVER=yes" >> config.mak
fi

2088 2089 2090 2091
if test "$need_inet_aton" = "yes" ; then
  echo "NEED_INET_ATON=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
2092
if test "$simpleidct" = "yes" ; then
2093 2094 2095
  echo "#define SIMPLE_IDCT 1" >> $TMPH
fi

2096 2097 2098 2099 2100
if test "$protocols" = "yes" ; then
  echo "#define CONFIG_PROTOCOLS 1" >> $TMPH
  echo "CONFIG_PROTOCOLS=yes" >> config.mak
fi

2101 2102 2103 2104 2105
if test "$ffserver" = "yes" ; then
  echo "#define CONFIG_FFSERVER 1" >> $TMPH
  echo "CONFIG_FFSERVER=yes" >> config.mak
fi

2106 2107 2108 2109
if test "$ffplay" = "yes" ; then
  echo "CONFIG_FFPLAY=yes" >> config.mak
fi

2110 2111 2112 2113 2114
if test "$gpl" = "yes" ; then
  echo "#define CONFIG_GPL 1" >> $TMPH
  echo "CONFIG_GPL=yes" >> config.mak
fi

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

2117 2118
if test "$optimize" = "small"; then
  echo "#define always_inline"  >> $TMPH
2119
  echo "#define CONFIG_SMALL 1" >> $TMPH
2120 2121
fi

2122 2123
# build tree in object directory if source path is different from current one
if test "$source_path_used" = "yes" ; then
2124 2125 2126 2127 2128 2129
    DIRS="\
         doc \
         libavformat \
         libavcodec \
         libavcodec/alpha \
         libavcodec/armv4l \
2130
         libavcodec/bfin \
2131 2132 2133 2134 2135
         libavcodec/i386 \
         libavcodec/sparc \
         libavcodec/mlib \
         libavcodec/ppc \
         libavcodec/liba52 \
2136
         libpostproc \
2137
         libavutil \
L
Luca Abeni 已提交
2138
         libswscale \
2139 2140 2141 2142 2143 2144 2145
         tests \
         vhook \
         "
    FILES="\
          Makefile \
          libavformat/Makefile \
          libavcodec/Makefile \
2146
          libpostproc/Makefile \
2147
          libavutil/Makefile \
L
Luca Abeni 已提交
2148
          libswscale/Makefile \
2149 2150 2151 2152 2153
          tests/Makefile \
          vhook/Makefile \
          doc/Makefile \
          doc/texi2pod.pl \
          "
2154 2155 2156 2157
    for dir in $DIRS ; do
            mkdir -p $dir
    done
    for f in $FILES ; do
M
Michael Niedermayer 已提交
2158
        ln -sf "$source_path/$f" $f
2159 2160
    done
fi
2161
echo "SRC_PATH=$source_path" >> config.mak
2162
echo "BUILD_ROOT=$PWD" >> config.mak
2163

D
Diego Biurrun 已提交
2164
if test "$amr" = "yes" ; then
2165 2166
  echo "#define CONFIG_AMR 1" >> $TMPH
  echo "CONFIG_AMR=yes" >> config.mak
D
Diego Biurrun 已提交
2167 2168
fi

2169
if test "$amr_wb" = "yes" ; then
2170 2171
  echo "#define CONFIG_AMR_WB 1" >> $TMPH
  echo "CONFIG_AMR_WB=yes" >> config.mak
2172 2173 2174 2175 2176 2177 2178
  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

2179
if test "$amr_nb" = "yes" ; then
2180 2181
  echo "#define CONFIG_AMR_NB 1" >> $TMPH
  echo "CONFIG_AMR_NB=yes" >> config.mak
2182
  echo
2183 2184
  echo "AMR NB FLOAT NOTICE ! Make sure you have downloaded TS26.104"
  echo "REL-5 V5.1.0 from "
D
Diego Biurrun 已提交
2185
  echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip"
2186 2187 2188 2189
  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 已提交
2190
if test "$amr_nb_fixed" = "yes" ; then
2191 2192
  echo "#define CONFIG_AMR_NB_FIXED 1" >> $TMPH
  echo "CONFIG_AMR_NB_FIXED=yes" >> config.mak
D
Diego Biurrun 已提交
2193
  echo
Z
Zdenek Kabelac 已提交
2194 2195
  echo "AMR NB FIXED POINT NOTICE! Make sure you have downloaded TS26.073 "
  echo "REL-5 version 5.1.0 from "
D
Diego Biurrun 已提交
2196
  echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.073/26073-510.zip"
2197
  echo "and extracted src to libavcodec/amr"
Z
Zdenek Kabelac 已提交
2198 2199
  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"
2200 2201
fi

2202 2203 2204 2205
if test "$amr_if2" = "yes" ; then
  echo "AMR_CFLAGS=-DIF2=1" >> config.mak
fi

2206
# Apparently it's not possible to portably echo a backslash.
2207
if test "$asmalign_pot" = "yes" ; then
2208
  printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH
2209
else
2210
  printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH
2211 2212
fi

Z
Zdenek Kabelac 已提交
2213

2214
# "tr '[a-z]' '[A-Z]'" is a workaround for Solaris tr not grokking "tr a-z A-Z"
2215
for codec in $DECODER_LIST $ENCODER_LIST $PARSER_LIST $DEMUXER_LIST $MUXER_LIST; do
2216 2217
    echo "#define CONFIG_`echo $codec | tr '[a-z]' '[A-Z]'` 1" >> $TMPH
    echo "CONFIG_`echo $codec | tr '[a-z]' '[A-Z]'`=yes" >> config.mak
2218 2219
done

2220 2221
# Do not overwrite config.h if unchanged to avoid superfluous rebuilds.
diff $TMPH config.h >/dev/null 2>&1
2222
if test "$?" != "0" ; then
2223 2224 2225 2226
        mv -f $TMPH config.h
else
        echo "config.h is unchanged"
fi
N
Nick Kurshev 已提交
2227

2228
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
2229 2230


D
Diego Biurrun 已提交
2231
# build pkg-config files libav*.pc and libpostproc.pc
2232 2233
# libavutil.pc
cat <<EOF >libavutil.pc
2234
prefix=$PREFIX
2235
exec_prefix=\${prefix}
2236
libdir=\${exec_prefix}/lib
2237
includedir=\${prefix}/include
2238 2239 2240 2241

Name: libavutil
Description: FFmpeg utility library
Version: $lavu_version
2242
Requires:
2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256
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
2257
Requires:
2258 2259 2260 2261
Conflicts:
Libs: \${libdir}/${LIBPREF}avutil${LIBSUF}
Cflags: -I\${includedir}
EOF
2262 2263 2264

# libavcodec.pc
cat <<EOF >libavcodec.pc
2265
prefix=$PREFIX
2266
exec_prefix=\${prefix}
2267
libdir=\${exec_prefix}/lib
2268
includedir=\${prefix}/include
2269 2270 2271

Name: libavcodec
Description: FFmpeg codec library
2272
Version: $lavc_version
2273
Requires: $pkg_requires libavutil = $lavu_version
2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286
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
2287
Version: $lavc_version
2288
Requires: $pkg_requires libavutil = $lavu_version
2289 2290 2291 2292 2293 2294 2295
Conflicts:
Libs: \${libdir}/${LIBPREF}avcodec${LIBSUF} $extralibs
Cflags: -I\${includedir}
EOF

# libavformat.pc
cat <<EOF >libavformat.pc
2296
prefix=$PREFIX
2297
exec_prefix=\${prefix}
2298
libdir=\${exec_prefix}/lib
2299
includedir=\${prefix}/include
2300 2301 2302

Name: libavformat
Description: FFmpeg container format library
2303
Version: $lavf_version
2304
Requires: $pkg_requires libavcodec = $lavc_version
2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317
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
2318
Version: $lavf_version
2319
Requires: $pkg_requires libavcodec = $lavc_version
2320 2321 2322 2323 2324 2325 2326 2327
Conflicts:
Libs: \${libdir}/${LIBPREF}avformat${LIBSUF} $extralibs
Cflags: -I\${includedir}
EOF


# libpostproc.pc
cat <<EOF >libpostproc.pc
2328
prefix=$PREFIX
2329
exec_prefix=\${prefix}
2330
libdir=\${exec_prefix}/lib
2331
includedir=\${prefix}/include
2332 2333 2334

Name: libpostproc
Description: FFmpeg post processing library
2335
Version: $lavc_version
2336
Requires:
2337 2338 2339 2340 2341 2342 2343 2344
Conflicts:
Libs: -L\${libdir} -lpostproc
Cflags: -I\${includedir} -I\${includedir}/postproc
EOF

cat <<EOF >libpostproc-uninstalled.pc
prefix=
exec_prefix=
2345 2346
libdir=\${pcfiledir}/libpostproc
includedir=\${pcfiledir}/libpostproc
2347 2348 2349

Name: libpostproc
Description: FFmpeg post processing library
2350
Version: $lavc_version
2351
Requires:
2352 2353 2354 2355
Conflicts:
Libs: \${libdir}/${LIBPREF}postproc${LIBSUF}
Cflags: -I\${includedir}
EOF
L
Luca Abeni 已提交
2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386

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

Name: libswscale
Description: FFmpeg image rescaling library
Version: $sws_version
Requires: $pkg_requires libavutil = $lavu_version
Conflicts:
Libs: -L\${libdir} -lswscale
Cflags: -I\${includedir} -I\${includedir}/swscale
EOF

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

Name: libswscale
Description: FFmpeg image rescaling library
Version: $sws_version
Requires: $pkg_requires libavutil = $lavu_version
Conflicts:
Libs: \${libdir}/${LIBPREF}swscale${LIBSUF}
Cflags: -I\${includedir}
EOF