configure 62.0 KB
Newer Older
F
Fabrice Bellard 已提交
1
#!/bin/sh
2
#
F
Fabrice Bellard 已提交
3
# ffmpeg configure script (c) 2000, 2001, 2002 Fabrice Bellard
4
#
5

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

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

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

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

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

673 674 675 676 677
FFMPEG_CONFIGURATION=" "
for opt do
  FFMPEG_CONFIGURATION="$FFMPEG_CONFIGURATION""$opt "
done

M
Måns Rullgård 已提交
678 679
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/'`
680
PARSER_LIST=`grep 'av_register_codec_parser(&[a-z]' $source_path/libavcodec/allcodecs.c  | sed 's/.*&\(.*\)).*/\1/'`
681 682
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/'`
683

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

876 877
if test "$logging" != no; then
    test "$logging" = yes || logfile="$logging"
878 879
    echo "# $0 $@" >$logfile
    set >>$logfile
880 881
else
    logfile=/dev/null
882
fi
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
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"
908 909
    SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
910
    SLIB_EXTRA_CMD="-lib /machine:i386 /def:\$(@:${SLIBSUF}=.def)"
911
    SHFLAGS="-shared -Wl,--output-def,\$(@:${SLIBSUF}=.def),--out-implib,lib\$(SLIBNAME:\$(SLIBSUF)=.dll.a)"
912
    if test "$force_prefix" != yes; then PREFIX="$PROGRAMFILES/FFmpeg"; fi
913 914
    if test "$force_libdir" != yes; then bindir='${PREFIX}'; fi
    shlibdir='${PREFIX}'
915 916
fi

917 918
# Combine FFLDFLAGS, EXTRALDFLAGS and the LDFLAGS environment variable.
LDFLAGS="$FFLDFLAGS $EXTRALDFLAGS $LDFLAGS"
919

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

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

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

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

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

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

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

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

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

996 997
if test "$fail" = "yes"; then
    exit 1
998 999
fi

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

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

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

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

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

1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134
# 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
1135
rm $TMPE
1136

M
Måns Rullgård 已提交
1137 1138 1139 1140 1141 1142 1143 1144 1145 1146
# 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."
1147
        echo "Only do this if you know what cross compiling means."
M
Måns Rullgård 已提交
1148 1149 1150 1151
    fi
    die "C compiler test failed."
fi

1152 1153
# check for assembler specific support

1154
if test $arch = "powerpc"; then
1155 1156 1157 1158 1159 1160 1161 1162 1163 1164
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

1165 1166
# check for SIMD availability

1167
# AltiVec flags: The FSF version of GCC differs from the Apple version
1168
if test $arch = "powerpc"; then
1169
    if test $altivec = "yes"; then
1170
        if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
1171
            add_cflags "-faltivec"
1172
        else
1173
            add_cflags "-maltivec -mabi=altivec"
1174 1175 1176 1177
        fi
    fi
fi

1178
check_header altivec.h && _altivec_h=yes || _altivec_h=no
1179

D
Diego Biurrun 已提交
1180
# check if our compiler supports Motorola AltiVec C API
1181
if test $altivec = "yes"; then
M
Måns Rullgård 已提交
1182 1183 1184 1185 1186 1187
    if test $_altivec_h = "yes"; then
        inc_altivec_h="#include <altivec.h>"
    else
        inc_altivec_h=
    fi
    check_cc <<EOF || altivec=no
1188
$inc_altivec_h
1189 1190 1191 1192 1193 1194 1195
int main(void) {
    vector signed int v1, v2, v3;
    v1 = vec_add(v2,v3);
    return 0;
}
EOF
fi
1196

1197
# check armv5te instructions support
1198
if test $armv5te = "default" -a $arch = "armv4l"; then
1199 1200 1201 1202 1203 1204 1205 1206 1207
    armv5te=no
    check_cc <<EOF && armv5te=yes
        int main(void) {
        __asm__ __volatile__ ("qadd r0, r0, r0");
        }
EOF
fi

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

D
Diego Biurrun 已提交
1217
# mmi only available on mips
1218
if test $mmi = "default"; then
1219
    if test $arch = "mips"; then
1220 1221 1222 1223 1224 1225
        mmi="yes"
    else
        mmi="no"
    fi
fi

D
Diego Biurrun 已提交
1226
# check if our compiler supports mmi
1227
enabled mmi && check_cc <<EOF || mmi="no"
1228 1229 1230 1231 1232
int main(void) {
    __asm__ ("lq \$2, 0(\$2)");
    return 0;
}
EOF
1233 1234 1235

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

1251 1252
# ---
# *inttypes.h* test
1253
check_header inttypes.h || inttypes=no
1254

1255 1256
# ---
# *int_fast* test
1257
check_cc <<EOF || emu_fast_int=yes
1258 1259
#include <inttypes.h>
int main(int argc, char ** argv){
1260 1261
        volatile uint_fast64_t i=0x01234567;
        return 0;
1262 1263 1264
}
EOF

N
Nick Kurshev 已提交
1265 1266 1267 1268 1269
# ---
# check availability of some header files

_memalign=no
_malloc_h=no
1270 1271 1272 1273
if check_header malloc.h; then
    _malloc_h=yes
    _memalign=yes
    check_func memalign || _memalign="no"
N
Nick Kurshev 已提交
1274 1275
fi

1276
if test "$_memalign" = "no" -a "$mmx" = "yes" -a \
1277 1278
        "$memalignhack" != "yes" -a "$targetos" != "Darwin" -a \
        "$targetos" != "FreeBSD" ; then
1279
    die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
1280 1281
fi

1282
check_func localtime_r && localtime_r=yes || localtime_r=no
1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298
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 已提交
1299
enabled vorbis  && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc -logg
1300
enabled libogg  && require libogg ogg/ogg.h ogg_sync_init -logg
1301 1302 1303 1304
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
1305

1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322
# 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

1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337
# 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

1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353
# 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


1354
# test for lrintf in math.h
1355
check_exec <<EOF && have_lrintf=yes || have_lrintf=no
1356 1357 1358 1359 1360
#define _ISOC9X_SOURCE  1
#include <math.h>
int main( void ) { return (lrintf(3.999f) > 0)?0:1; }
EOF

F
Falk Hüffner 已提交
1361 1362
_restrict=
for restrict_keyword in restrict __restrict__ __restrict; do
1363
    check_cc <<EOF && _restrict=$restrict_keyword && break
1364 1365
void foo(char * $restrict_keyword p);
EOF
F
Falk Hüffner 已提交
1366 1367
done

1368 1369
# dlopen/dlfcn.h probing

1370
check_header dlfcn.h && dlfcn=yes
1371

1372 1373 1374 1375
temp_extralibs -ldl
if check_func dlopen; then
    dlopen=yes
    ldl=-ldl
1376
fi
1377
restore_flags
1378

1379 1380 1381
if check_func dlopen; then
    dlopen=yes
    ldl=
1382 1383
fi

M
Måns Rullgård 已提交
1384 1385
if test "$vhook" = "default"; then
    vhook="$dlopen"
1386 1387
fi

M
Michael Niedermayer 已提交
1388
if test "$vhook" = "yes" -o "$a52bin" = "yes" -o "$faadbin" = "yes"; then
1389
    add_extralibs $ldl
M
Michael Niedermayer 已提交
1390 1391
fi

1392 1393 1394 1395 1396 1397 1398 1399
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

1400 1401 1402 1403
if enabled vhook; then
    check_ldflags -rdynamic
    check_ldflags -export-dynamic
fi
M
Michael Niedermayer 已提交
1404

1405
##########################################
D
Diego Biurrun 已提交
1406
# imlib check
1407

1408 1409
temp_extralibs -lImlib2
check_ld <<EOF && imlib2=yes || imlib2=no
1410 1411 1412 1413
#include <X11/Xlib.h>
#include <Imlib2.h>
int main( void ) { return (int) imlib_load_font("foo"); }
EOF
1414
restore_flags
1415

1416
##########################################
D
Diego Biurrun 已提交
1417
# FreeType check
1418

1419
freetype2=no
1420
if test "x$targetos" != "xBeOS"; then
1421
  if (freetype-config --version) >/dev/null 2>&1 ; then
1422 1423 1424 1425 1426 1427 1428
      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
1429
  fi
1430 1431
fi

1432
##########################################
D
Diego Biurrun 已提交
1433
# SDL check
1434 1435 1436

sdl_too_old=no
sdl=no
1437 1438
SDL_CONFIG="${cross_prefix}sdl-config"
if ("${SDL_CONFIG}" --version) >/dev/null 2>&1 ; then
1439 1440 1441 1442 1443 1444 1445 1446 1447
    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'`
1448
        if test "$_sdlversion" -lt 121 ; then
1449 1450 1451
            sdl_too_old=yes
        else
            sdl=yes
1452 1453 1454 1455 1456 1457 1458 1459
            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
1460 1461
        fi
    fi
1462
    restore_flags
M
Michael Niedermayer 已提交
1463
fi
1464

1465 1466
enabled sdl || ffplay=no

1467
##########################################
D
Diego Biurrun 已提交
1468
# texi2html check
1469 1470

texi2html=no
1471
if (texi2html -version) >/dev/null 2>&1; then
1472 1473 1474
texi2html=yes
fi

1475
##########################################
D
Diego Biurrun 已提交
1476
# IPv6 check
1477

1478
enabled network && enabled ipv6 && check_ld <<EOF && ipv6=yes || ipv6=no
1479 1480 1481 1482 1483 1484 1485 1486 1487
#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);
1488
  IN6_IS_ADDR_MULTICAST((const struct in6_addr *)0);
1489 1490 1491
}
EOF

1492
# check for video4linux2 --- V4L2_PIX_FMT_YUV420
1493
enabled v4l2 && check_cc <<EOF || v4l2="no"
1494
#include <sys/time.h>
1495 1496
#include <asm/types.h>
#include <linux/videodev2.h>
1497
int dummy = V4L2_PIX_FMT_YUV420;
1498
struct v4l2_buffer dummy1;
1499 1500
EOF

1501 1502 1503 1504
enabled debug && add_cflags -g

# add some useful compiler flags if supported
check_cflags -Wdeclaration-after-statement
1505 1506
check_cflags -Wall
check_cflags -Wno-switch
M
Michael Niedermayer 已提交
1507 1508 1509 1510
check_cflags -Wdisabled-optimization
check_cflags -Wpointer-arith
check_cflags -Wredundant-decls
check_cflags -Winline
1511

1512 1513
# add some linker flags
check_ldflags '-Wl,--as-needed' '-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec' '-Wl,-rpath-link,\$(BUILD_ROOT)/libavformat' '-Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
F
Fabrice Bellard 已提交
1514

1515 1516
# not all compilers support -Os
test "$optimize" = "small" && check_cflags -Os
1517

1518
if enabled optimize; then
1519
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
1520 1521
        add_cflags  "-O5"
        add_ldflags "-O5"
1522
    else
1523
        add_cflags "-O3"
1524
    fi
1525 1526
fi

1527 1528
# PIC flags for shared library objects where they are needed
if test "$lshared" = "yes" ; then
M
Måns Rullgård 已提交
1529 1530
    # LIBOBJFLAGS may have already been set in the OS configuration
    if test -z "$LIBOBJFLAGS" ; then
1531
        case "$arch" in
1532 1533
            x86_64|ia64|alpha|sparc*) LIBOBJFLAGS="\$(PIC)" ;;
        esac
1534 1535 1536
    fi
fi

1537
if test "$gprof" = "yes" ; then
1538 1539
    add_cflags  "-p"
    add_ldflags "-p"
1540 1541
fi

1542 1543 1544 1545 1546 1547
# 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

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

M
Måns Rullgård 已提交
1602 1603 1604
if test "$vhook" = "yes"; then
    echo "Imlib2 support   $imlib2"
    echo "FreeType support $freetype2"
1605
fi
1606
echo "Sun medialib support"  $sunmlib
1607
echo "pthreads support"      $pthreads
Z
Zdenek Kabelac 已提交
1608 1609
echo "AMR-NB float support"  $amr_nb
echo "AMR-NB fixed support"  $amr_nb_fixed
1610
echo "AMR-WB float support"  $amr_wb
1611
echo "AMR-WB IF2 support"    $amr_if2
1612 1613
echo "network support      $network"
if test "$network" = "yes" ; then
M
Måns Rullgård 已提交
1614
    echo "IPv6 support         $ipv6"
1615
fi
1616
echo ".align is power-of-two" $asmalign_pot
1617
if test "$gpl" = "no" ; then
M
Måns Rullgård 已提交
1618
    echo "License: LGPL"
1619
else
M
Måns Rullgård 已提交
1620
    echo "License: GPL"
1621
fi
F
Fabrice Bellard 已提交
1622

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

1625 1626
date >> config.log
echo "   $0 $FFMPEG_CONFIGURATION" >> config.log
D
Diego Biurrun 已提交
1627 1628
echo "# Automatically generated by configure - do not modify!" > config.mak
echo "/* Automatically generated by configure - do not modify! */" > $TMPH
1629
echo "#define FFMPEG_CONFIGURATION "'"'"$FFMPEG_CONFIGURATION"'"' >> $TMPH
F
Fabrice Bellard 已提交
1630

1631 1632
echo "PREFIX=$PREFIX" >> config.mak
echo "prefix=\$(DESTDIR)\${PREFIX}" >> config.mak
1633
echo "libdir=\$(DESTDIR)$libdir" >> config.mak
1634
echo "shlibdir=\$(DESTDIR)$shlibdir" >> config.mak
D
Diego Biurrun 已提交
1635
echo "incdir=\$(DESTDIR)$incdir" >> config.mak
1636 1637
echo "bindir=\$(DESTDIR)$bindir" >> config.mak
echo "mandir=\$(DESTDIR)$mandir" >> config.mak
1638
echo "MAKE=$make" >> config.mak
1639 1640
echo "CC=$cc" >> config.mak
echo "AR=$ar" >> config.mak
M
Michael Niedermayer 已提交
1641
echo "RANLIB=$ranlib" >> config.mak
1642
if test "$dostrip" = "yes" ; then
M
Måns Rullgård 已提交
1643 1644
    echo "STRIP=$strip" >> config.mak
    echo "INSTALLSTRIP=$installstrip" >> config.mak
1645
else
M
Måns Rullgård 已提交
1646 1647
    echo "STRIP=echo ignoring strip" >> config.mak
    echo "INSTALLSTRIP=" >> config.mak
1648
fi
1649

1650
VHOOKCFLAGS="-fPIC $CFLAGS"
1651
test "$needmdynamicnopic" = yes && add_cflags -mdynamic-no-pic
1652

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

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

1767 1768 1769
if test "$altivec" = "yes" ; then
  echo "TARGET_ALTIVEC=yes" >> config.mak
  echo "#define HAVE_ALTIVEC 1" >> $TMPH
1770 1771 1772
  if test "$_altivec_h" = "yes" ; then
    echo "#define HAVE_ALTIVEC_H 1" >> $TMPH
  else
A
1l  
Alex Beregszaszi 已提交
1773
    echo "#undef HAVE_ALTIVEC_H" >> $TMPH
1774
  fi
1775
fi
Z
Zdenek Kabelac 已提交
1776
if test "$gprof" = "yes" ; then
1777
  echo "#define HAVE_GPROF 1" >> $TMPH
F
Fabrice Bellard 已提交
1778
fi
1779 1780 1781
if test "$localtime_r" = "yes" ; then
  echo "#define HAVE_LOCALTIME_R 1" >> $TMPH
fi
1782 1783 1784
if test "$imlib2" = "yes" ; then
  echo "HAVE_IMLIB2=yes" >> config.mak
fi
1785 1786 1787
if test "$freetype2" = "yes" ; then
  echo "HAVE_FREETYPE2=yes" >> config.mak
fi
1788 1789 1790 1791
if test "$sunmlib" = "yes" ; then
  echo "HAVE_MLIB=yes" >> config.mak
  echo "#define HAVE_MLIB 1" >> $TMPH
fi
1792 1793 1794
if test "$pthreads" = "yes" ; then
  echo "HAVE_PTHREADS=yes" >> config.mak
  echo "#define HAVE_PTHREADS 1" >> $TMPH
1795
  echo "#define HAVE_THREADS 1" >> $TMPH
1796
fi
1797 1798
if test "$sdl" = "yes" ; then
  echo "CONFIG_SDL=yes" >> config.mak
1799 1800
  echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak
  echo "SDL_CFLAGS=`"${SDL_CONFIG}" --cflags`" >> config.mak
1801 1802 1803
  if test "$sdl_video_size" = "yes"; then
    echo "#define HAVE_SDL_VIDEO_SIZE 1" >> $TMPH
  fi
1804
fi
1805 1806 1807
if test "$texi2html" = "yes"; then
  echo "BUILD_DOC=yes" >> config.mak
fi
1808 1809 1810
if test "$have_lrintf" = "yes" ; then
  echo "#define HAVE_LRINTF 1" >> $TMPH
fi
1811 1812 1813 1814
if test "$vhook" = "yes" ; then
  echo "BUILD_VHOOK=yes" >> config.mak
  echo "#define HAVE_VHOOK 1" >> $TMPH
fi
L
Luca Barbato 已提交
1815

L
Luca Abeni 已提交
1816
sws_version=`grep '#define LIBSWSCALE_VERSION ' "$source_path/libswscale/swscale.h" | sed 's/[^0-9\.]//g'`
1817
pp_version=`grep '#define LIBPOSTPROC_VERSION ' "$source_path/libpostproc/postprocess.h" | sed 's/[^0-9\.]//g'`
L
Luca Barbato 已提交
1818 1819 1820 1821 1822 1823
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 已提交
1824
if test "$lshared" = "yes" ; then
1825
  echo "#define BUILD_SHARED_AV 1" >> $TMPH
N
Nick Kurshev 已提交
1826
  echo "BUILD_SHARED=yes" >> config.mak
1827
  echo "PIC=-fPIC -DPIC" >> config.mak
1828
  echo "SPPMAJOR=${lavc_version%%.*}" >> config.mak
L
Luca Barbato 已提交
1829
  echo "SPPVERSION=$lavc_version" >> config.mak
1830
  echo "LAVCMAJOR=${lavc_version%%.*}" >> config.mak
L
Luca Barbato 已提交
1831
  echo "LAVCVERSION=$lavc_version" >> config.mak
1832
  echo "LAVFMAJOR=${lavf_version%%.*}" >> config.mak
L
Luca Barbato 已提交
1833
  echo "LAVFVERSION=$lavf_version" >> config.mak
1834
  echo "LAVUMAJOR=${lavu_version%%.*}" >> config.mak
L
Luca Barbato 已提交
1835
  echo "LAVUVERSION=$lavu_version" >> config.mak
L
Luca Abeni 已提交
1836 1837
  echo "SWSMAJOR=${sws_version%%.*}" >> config.mak
  echo "SWSVERSION=$sws_version" >> config.mak
1838
  echo "SLIBNAME=${SLIBNAME}" >> config.mak
1839 1840
  echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak
  echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
1841
  echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak
N
Nick Kurshev 已提交
1842
fi
1843
echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak
1844
echo "EXTRALIBS=$extralibs" >> config.mak
1845

D
Diego Biurrun 已提交
1846
# If you do not want to use encoders, disable them.
1847
if echo "$ENCODER_LIST" | grep -q encoder; then
1848 1849 1850
    echo "#define CONFIG_ENCODERS 1" >> $TMPH
    echo "CONFIG_ENCODERS=yes" >> config.mak
fi
1851

D
Diego Biurrun 已提交
1852
# If you do not want to use decoders, disable them.
1853
if echo "$DECODER_LIST" | grep -q decoder; then
1854 1855 1856
    echo "#define CONFIG_DECODERS 1" >> $TMPH
    echo "CONFIG_DECODERS=yes" >> config.mak
fi
1857

1858
# muxers
1859
if echo "$MUXER_LIST" | grep -q muxer; then
1860 1861 1862 1863 1864
  echo "#define CONFIG_MUXERS 1" >> $TMPH
  echo "CONFIG_MUXERS=yes" >> config.mak
fi

# demuxers
1865
if echo "$DEMUXER_LIST" | grep -q demuxer; then
1866 1867 1868 1869
  echo "#define CONFIG_DEMUXERS 1" >> $TMPH
  echo "CONFIG_DEMUXERS=yes" >> config.mak
fi

F
Fabrice Bellard 已提交
1870 1871 1872 1873
# AC3
if test "$a52" = "yes" ; then
  echo "#define CONFIG_AC3 1" >> $TMPH
  echo "CONFIG_AC3=yes" >> config.mak
1874

F
Fabrice Bellard 已提交
1875 1876 1877 1878 1879 1880
  if test "$a52bin" = "yes" ; then
    echo "#define CONFIG_A52BIN 1" >> $TMPH
    echo "CONFIG_A52BIN=yes" >> config.mak
  fi
fi

1881 1882 1883 1884 1885 1886
# DTS
if test "$dts" = "yes" ; then
  echo "#define CONFIG_DTS 1" >> $TMPH
  echo "CONFIG_DTS=yes" >> config.mak
fi

1887 1888 1889 1890 1891 1892
# PP
if test "$pp" = "yes" ; then
  echo "#define CONFIG_PP 1" >> $TMPH
  echo "CONFIG_PP=yes" >> config.mak
fi

L
Luca Abeni 已提交
1893 1894 1895 1896 1897
if test "$swscaler" = "yes" ; then
  echo "#define CONFIG_SWSCALER 1" >> $TMPH
  echo "CONFIG_SWSCALER=yes" >> config.mak
fi

D
Diego Biurrun 已提交
1898
# MPEG audio high precision mode
1899 1900 1901 1902
if test "$mpegaudio_hp" = "yes" ; then
  echo "#define CONFIG_MPEGAUDIO_HP 1" >> $TMPH
fi

F
Fabrice Bellard 已提交
1903 1904 1905 1906 1907
if test "$v4l" = "yes" ; then
  echo "#define CONFIG_VIDEO4LINUX 1" >> $TMPH
  echo "CONFIG_VIDEO4LINUX=yes" >> config.mak
fi

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

1913 1914 1915 1916 1917
if test "$bktr" = "yes" ; then
  echo "#define CONFIG_BKTR 1" >> $TMPH
  echo "CONFIG_BKTR=yes" >> config.mak
fi

1918 1919 1920 1921 1922
if test "$dv1394" = "yes" ; then
  echo "#define CONFIG_DV1394 1" >> $TMPH
  echo "CONFIG_DV1394=yes" >> config.mak
fi

1923 1924 1925 1926 1927
if test "$dc1394" = "yes" ; then
  echo "#define CONFIG_DC1394 1" >> $TMPH
  echo "CONFIG_DC1394=yes" >> config.mak
fi

1928 1929 1930 1931 1932 1933 1934 1935
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 已提交
1936 1937 1938
if test "$audio_oss" = "yes" ; then
  echo "#define CONFIG_AUDIO_OSS 1" >> $TMPH
  echo "CONFIG_AUDIO_OSS=yes" >> config.mak
Z
Zdenek Kabelac 已提交
1939 1940
fi

1941 1942 1943 1944 1945
if test "$audio_beos" = "yes" ; then
  echo "#define CONFIG_AUDIO_BEOS 1" >> $TMPH
  echo "CONFIG_AUDIO_BEOS=yes" >> config.mak
fi

F
Fabrice Bellard 已提交
1946 1947 1948
if test "$network" = "yes" ; then
  echo "#define CONFIG_NETWORK 1" >> $TMPH
  echo "CONFIG_NETWORK=yes" >> config.mak
1949
fi
1950

1951 1952 1953 1954
if test "$ipv6" = "yes" ; then
  echo "#define CONFIG_IPV6 1" >> $TMPH
fi

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

1960 1961 1962 1963 1964
if test "$libgsm" = "yes" ; then
  echo "#define CONFIG_LIBGSM 1" >> $TMPH
  echo "CONFIG_LIBGSM=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1965
if test "$mp3lame" = "yes" ; then
1966
  echo "#define CONFIG_MP3LAME 1" >> $TMPH
1967 1968 1969
  echo "CONFIG_MP3LAME=yes" >> config.mak
fi

1970
if test "$libogg" = "yes" ; then
N
Nilesh Bansal 已提交
1971 1972 1973 1974
  echo "#define CONFIG_LIBOGG 1" >> $TMPH
  echo "CONFIG_LIBOGG=yes" >> config.mak
fi

1975
if test "$vorbis" = "yes" ; then
N
Nilesh Bansal 已提交
1976 1977 1978 1979
  echo "#define CONFIG_LIBVORBIS 1" >> $TMPH
  echo "CONFIG_LIBVORBIS=yes" >> config.mak
fi

1980 1981 1982 1983 1984 1985 1986
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 已提交
1987
  echo "CONFIG_FAADBIN=yes" >> config.mak
1988 1989
fi

1990 1991 1992 1993 1994
if test "$faac" = "yes" ; then
  echo "#define CONFIG_FAAC 1" >> $TMPH
  echo "CONFIG_FAAC=yes" >> config.mak
fi

1995 1996 1997 1998 1999
if test "$xvid" = "yes" ; then
  echo "#define CONFIG_XVID 1" >> $TMPH
  echo "CONFIG_XVID=yes" >> config.mak
fi

2000 2001 2002 2003 2004
if test "$x264" = "yes" ; then
  echo "#define CONFIG_X264 1" >> $TMPH
  echo "CONFIG_X264=yes" >> config.mak
fi

2005 2006 2007 2008 2009
if test "$avisynth" = "yes" ; then
  echo "#define CONFIG_AVISYNTH 1" >> $TMPH
  echo "CONFIG_AVISYNTH=yes" >> config.mak
fi

2010
if test "$mingw32" = "yes" ; then
2011
  echo "CONFIG_MINGW=yes" >> config.mak
2012 2013
  echo "HAVE_W32THREADS=yes" >> config.mak
  echo "#define HAVE_W32THREADS 1" >> $TMPH
2014
  echo "#define HAVE_THREADS 1" >> $TMPH
2015
  echo "#ifndef __MINGW32__" >> $TMPH
2016
  echo "#define __MINGW32__ 1" >> $TMPH
2017
  echo "#endif" >> $TMPH
2018 2019
fi

G
Gildas Bazin 已提交
2020
if test "$mingwce" = "yes" ; then
2021
  echo "CONFIG_MINGW=yes" >> config.mak
G
Gildas Bazin 已提交
2022 2023 2024 2025 2026 2027 2028
  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

2029 2030 2031
if test "$os2" = "yes" ; then
  echo "#define CONFIG_OS2 1" >> $TMPH
  echo "CONFIG_OS2=yes" >> config.mak
2032 2033 2034
  echo "HAVE_OS2THREADS=yes" >> config.mak
  echo "#define HAVE_OS2THREADS 1" >> $TMPH
  echo "#define HAVE_THREADS 1" >> $TMPH
2035 2036
fi

2037
if test "$targetos" = "SunOS" ; then
2038 2039 2040
  echo "#define CONFIG_SUNOS 1" >> $TMPH
fi

2041
if test "$targetos" = "BeOS" ; then
2042 2043 2044 2045 2046
  echo "HAVE_BEOSTHREADS=yes" >> config.mak
  echo "#define HAVE_BEOSTHREADS 1" >> $TMPH
  echo "#define HAVE_THREADS 1" >> $TMPH
fi

2047
if test "$targetos" = "Darwin"; then
2048 2049 2050 2051
  echo "#define CONFIG_DARWIN 1"  >> $TMPH
  echo "CONFIG_DARWIN=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
2052
if test "$_malloc_h" = "yes" ; then
2053
  echo "#define HAVE_MALLOC_H 1" >> $TMPH
N
Nick Kurshev 已提交
2054
else
2055
  echo "#undef  HAVE_MALLOC_H" >> $TMPH
N
Nick Kurshev 已提交
2056 2057
fi

Z
Zdenek Kabelac 已提交
2058
if test "$_memalign" = "yes" ; then
2059 2060 2061 2062 2063
  echo "#define HAVE_MEMALIGN 1" >> $TMPH
else
  echo "#undef  HAVE_MEMALIGN" >> $TMPH
fi

2064 2065 2066 2067 2068
if test "$memalignhack" = "yes" ; then
  echo "#define MEMALIGN_HACK 1" >> $TMPH
fi


2069 2070 2071 2072 2073
if test "$netserver" = "yes" ; then
  echo "#define CONFIG_BEOS_NETSERVER 1" >> $TMPH
  echo "CONFIG_BEOS_NETSERVER=yes" >> config.mak
fi

2074 2075 2076 2077
if test "$need_inet_aton" = "yes" ; then
  echo "NEED_INET_ATON=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
2078
if test "$simpleidct" = "yes" ; then
2079 2080 2081
  echo "#define SIMPLE_IDCT 1" >> $TMPH
fi

2082 2083 2084 2085 2086
if test "$protocols" = "yes" ; then
  echo "#define CONFIG_PROTOCOLS 1" >> $TMPH
  echo "CONFIG_PROTOCOLS=yes" >> config.mak
fi

2087 2088 2089 2090 2091
if test "$ffserver" = "yes" ; then
  echo "#define CONFIG_FFSERVER 1" >> $TMPH
  echo "CONFIG_FFSERVER=yes" >> config.mak
fi

2092 2093 2094 2095
if test "$ffplay" = "yes" ; then
  echo "CONFIG_FFPLAY=yes" >> config.mak
fi

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

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

2103 2104
if test "$optimize" = "small"; then
  echo "#define always_inline"  >> $TMPH
2105
  echo "#define CONFIG_SMALL 1" >> $TMPH
2106 2107
fi

2108 2109
# build tree in object directory if source path is different from current one
if test "$source_path_used" = "yes" ; then
2110 2111 2112 2113 2114 2115
    DIRS="\
         doc \
         libavformat \
         libavcodec \
         libavcodec/alpha \
         libavcodec/armv4l \
2116
         libavcodec/bfin \
2117 2118 2119 2120 2121
         libavcodec/i386 \
         libavcodec/sparc \
         libavcodec/mlib \
         libavcodec/ppc \
         libavcodec/liba52 \
2122
         libpostproc \
2123
         libavutil \
L
Luca Abeni 已提交
2124
         libswscale \
2125 2126 2127 2128 2129 2130 2131
         tests \
         vhook \
         "
    FILES="\
          Makefile \
          libavformat/Makefile \
          libavcodec/Makefile \
2132
          libpostproc/Makefile \
2133
          libavutil/Makefile \
L
Luca Abeni 已提交
2134
          libswscale/Makefile \
2135 2136 2137 2138 2139
          tests/Makefile \
          vhook/Makefile \
          doc/Makefile \
          doc/texi2pod.pl \
          "
2140 2141 2142 2143
    for dir in $DIRS ; do
            mkdir -p $dir
    done
    for f in $FILES ; do
M
Michael Niedermayer 已提交
2144
        ln -sf "$source_path/$f" $f
2145 2146
    done
fi
2147
echo "SRC_PATH=$source_path" >> config.mak
2148
echo "BUILD_ROOT=$PWD" >> config.mak
2149

D
Diego Biurrun 已提交
2150
if test "$amr" = "yes" ; then
2151 2152
  echo "#define CONFIG_AMR 1" >> $TMPH
  echo "CONFIG_AMR=yes" >> config.mak
D
Diego Biurrun 已提交
2153 2154
fi

2155
if test "$amr_wb" = "yes" ; then
2156 2157
  echo "#define CONFIG_AMR_WB 1" >> $TMPH
  echo "CONFIG_AMR_WB=yes" >> config.mak
2158 2159 2160 2161 2162 2163 2164
  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

2165
if test "$amr_nb" = "yes" ; then
2166 2167
  echo "#define CONFIG_AMR_NB 1" >> $TMPH
  echo "CONFIG_AMR_NB=yes" >> config.mak
2168
  echo
2169 2170
  echo "AMR NB FLOAT NOTICE ! Make sure you have downloaded TS26.104"
  echo "REL-5 V5.1.0 from "
D
Diego Biurrun 已提交
2171
  echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip"
2172 2173 2174 2175
  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 已提交
2176
if test "$amr_nb_fixed" = "yes" ; then
2177 2178
  echo "#define CONFIG_AMR_NB_FIXED 1" >> $TMPH
  echo "CONFIG_AMR_NB_FIXED=yes" >> config.mak
D
Diego Biurrun 已提交
2179
  echo
Z
Zdenek Kabelac 已提交
2180 2181
  echo "AMR NB FIXED POINT NOTICE! Make sure you have downloaded TS26.073 "
  echo "REL-5 version 5.1.0 from "
D
Diego Biurrun 已提交
2182
  echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.073/26073-510.zip"
2183
  echo "and extracted src to libavcodec/amr"
Z
Zdenek Kabelac 已提交
2184 2185
  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"
2186 2187
fi

2188 2189 2190 2191
if test "$amr_if2" = "yes" ; then
  echo "AMR_CFLAGS=-DIF2=1" >> config.mak
fi

2192
# Apparently it's not possible to portably echo a backslash.
2193
if test "$asmalign_pot" = "yes" ; then
2194
  printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH
2195
else
2196
  printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH
2197 2198
fi

Z
Zdenek Kabelac 已提交
2199

2200
# "tr '[a-z]' '[A-Z]'" is a workaround for Solaris tr not grokking "tr a-z A-Z"
2201
for codec in $DECODER_LIST $ENCODER_LIST $PARSER_LIST $DEMUXER_LIST $MUXER_LIST; do
2202 2203
    echo "#define CONFIG_`echo $codec | tr '[a-z]' '[A-Z]'` 1" >> $TMPH
    echo "CONFIG_`echo $codec | tr '[a-z]' '[A-Z]'`=yes" >> config.mak
2204 2205
done

2206 2207
# Do not overwrite config.h if unchanged to avoid superfluous rebuilds.
diff $TMPH config.h >/dev/null 2>&1
2208
if test "$?" != "0" ; then
2209 2210 2211 2212
        mv -f $TMPH config.h
else
        echo "config.h is unchanged"
fi
N
Nick Kurshev 已提交
2213

2214
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
2215 2216


D
Diego Biurrun 已提交
2217
# build pkg-config files libav*.pc and libpostproc.pc
2218 2219
# libavutil.pc
cat <<EOF >libavutil.pc
2220
prefix=$PREFIX
2221
exec_prefix=\${prefix}
2222
libdir=\${exec_prefix}/lib
2223
includedir=\${prefix}/include
2224 2225 2226 2227

Name: libavutil
Description: FFmpeg utility library
Version: $lavu_version
2228
Requires:
2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242
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
2243
Requires:
2244 2245 2246 2247
Conflicts:
Libs: \${libdir}/${LIBPREF}avutil${LIBSUF}
Cflags: -I\${includedir}
EOF
2248 2249 2250

# libavcodec.pc
cat <<EOF >libavcodec.pc
2251
prefix=$PREFIX
2252
exec_prefix=\${prefix}
2253
libdir=\${exec_prefix}/lib
2254
includedir=\${prefix}/include
2255 2256 2257

Name: libavcodec
Description: FFmpeg codec library
2258
Version: $lavc_version
2259
Requires: $pkg_requires libavutil = $lavu_version
2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272
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
2273
Version: $lavc_version
2274
Requires: $pkg_requires libavutil = $lavu_version
2275 2276 2277 2278 2279 2280 2281
Conflicts:
Libs: \${libdir}/${LIBPREF}avcodec${LIBSUF} $extralibs
Cflags: -I\${includedir}
EOF

# libavformat.pc
cat <<EOF >libavformat.pc
2282
prefix=$PREFIX
2283
exec_prefix=\${prefix}
2284
libdir=\${exec_prefix}/lib
2285
includedir=\${prefix}/include
2286 2287 2288

Name: libavformat
Description: FFmpeg container format library
2289
Version: $lavf_version
2290
Requires: $pkg_requires libavcodec = $lavc_version
2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303
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
2304
Version: $lavf_version
2305
Requires: $pkg_requires libavcodec = $lavc_version
2306 2307 2308 2309 2310 2311 2312 2313
Conflicts:
Libs: \${libdir}/${LIBPREF}avformat${LIBSUF} $extralibs
Cflags: -I\${includedir}
EOF


# libpostproc.pc
cat <<EOF >libpostproc.pc
2314
prefix=$PREFIX
2315
exec_prefix=\${prefix}
2316
libdir=\${exec_prefix}/lib
2317
includedir=\${prefix}/include
2318 2319 2320

Name: libpostproc
Description: FFmpeg post processing library
2321
Version: $lavc_version
2322
Requires:
2323 2324 2325 2326 2327 2328 2329 2330
Conflicts:
Libs: -L\${libdir} -lpostproc
Cflags: -I\${includedir} -I\${includedir}/postproc
EOF

cat <<EOF >libpostproc-uninstalled.pc
prefix=
exec_prefix=
2331 2332
libdir=\${pcfiledir}/libpostproc
includedir=\${pcfiledir}/libpostproc
2333 2334 2335

Name: libpostproc
Description: FFmpeg post processing library
2336
Version: $lavc_version
2337
Requires:
2338 2339 2340 2341
Conflicts:
Libs: \${libdir}/${LIBPREF}postproc${LIBSUF}
Cflags: -I\${includedir}
EOF
L
Luca Abeni 已提交
2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372

# 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