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

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

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

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

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

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

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

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

875 876
if test "$logging" != no; then
    test "$logging" = yes || logfile="$logging"
877 878
    echo "# $0 $@" >$logfile
    set >>$logfile
879 880
else
    logfile=/dev/null
881
fi
882

883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906
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"
907 908
    SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
909
    SLIB_EXTRA_CMD="-lib /machine:i386 /def:\$(@:${SLIBSUF}=.def)"
910
    SHFLAGS="-shared -Wl,--output-def,\$(@:${SLIBSUF}=.def),--out-implib,lib\$(SLIBNAME:\$(SLIBSUF)=.dll.a)"
911
    if test "$force_prefix" != yes; then PREFIX="$PROGRAMFILES/FFmpeg"; fi
912 913
    if test "$force_libdir" != yes; then bindir='${PREFIX}'; fi
    shlibdir='${PREFIX}'
914 915
fi

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126
# 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
1127
rm $TMPE
1128

M
Måns Rullgård 已提交
1129 1130 1131 1132 1133 1134 1135 1136 1137 1138
# 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."
1139
        echo "Only do this if you know what cross compiling means."
M
Måns Rullgård 已提交
1140 1141 1142 1143
    fi
    die "C compiler test failed."
fi

1144 1145
# check for assembler specific support

1146
if test $arch = "powerpc"; then
1147 1148 1149 1150 1151 1152 1153 1154 1155 1156
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

1157 1158
# check for SIMD availability

1159
# AltiVec flags: The FSF version of GCC differs from the Apple version
1160
if test $arch = "powerpc"; then
1161
    if test $altivec = "yes"; then
1162
        if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
1163
            add_cflags "-faltivec"
1164
        else
1165
            add_cflags "-maltivec -mabi=altivec"
1166 1167 1168 1169
        fi
    fi
fi

1170
check_header altivec.h && _altivec_h=yes || _altivec_h=no
1171

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

1189
# check armv5te instructions support
1190
if test $armv5te = "default" -a $arch = "armv4l"; then
1191 1192 1193 1194 1195 1196 1197 1198 1199
    armv5te=no
    check_cc <<EOF && armv5te=yes
        int main(void) {
        __asm__ __volatile__ ("qadd r0, r0, r0");
        }
EOF
fi

# check iwmmxt support
1200
if test $iwmmxt = "default" -a $arch = "armv4l"; then
1201 1202 1203 1204 1205 1206 1207 1208
    iwmmxt=no
    check_cc <<EOF && iwmmxt=yes
        int main(void) {
        __asm__ __volatile__ ("wunpckelub wr6, wr4");
        }
EOF
fi

D
Diego Biurrun 已提交
1209
# mmi only available on mips
1210
if test $mmi = "default"; then
1211
    if test $arch = "mips"; then
1212 1213 1214 1215 1216 1217
        mmi="yes"
    else
        mmi="no"
    fi
fi

D
Diego Biurrun 已提交
1218
# check if our compiler supports mmi
1219
enabled mmi && check_cc <<EOF || mmi="no"
1220 1221 1222 1223 1224
int main(void) {
    __asm__ ("lq \$2, 0(\$2)");
    return 0;
}
EOF
1225 1226 1227

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

1243 1244
# ---
# *inttypes.h* test
1245
check_header inttypes.h || inttypes=no
1246

1247 1248
# ---
# *int_fast* test
1249
check_cc <<EOF || emu_fast_int=yes
1250 1251
#include <inttypes.h>
int main(int argc, char ** argv){
1252 1253
        volatile uint_fast64_t i=0x01234567;
        return 0;
1254 1255 1256
}
EOF

N
Nick Kurshev 已提交
1257 1258 1259 1260 1261
# ---
# check availability of some header files

_memalign=no
_malloc_h=no
1262 1263 1264 1265
if check_header malloc.h; then
    _malloc_h=yes
    _memalign=yes
    check_func memalign || _memalign="no"
N
Nick Kurshev 已提交
1266 1267
fi

1268
if test "$_memalign" = "no" -a "$mmx" = "yes" -a \
1269 1270
        "$memalignhack" != "yes" -a "$targetos" != "Darwin" -a \
        "$targetos" != "FreeBSD" ; then
1271
    die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
1272 1273
fi

1274
check_func localtime_r && localtime_r=yes || localtime_r=no
1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290
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 已提交
1291
enabled vorbis  && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc -logg
1292
enabled libogg  && require libogg ogg/ogg.h ogg_sync_init -logg
1293 1294 1295 1296
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
1297

1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314
# 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

1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329
# 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

1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345
# 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


1346
# test for lrintf in math.h
1347
check_exec <<EOF && have_lrintf=yes || have_lrintf=no
1348 1349 1350 1351 1352
#define _ISOC9X_SOURCE  1
#include <math.h>
int main( void ) { return (lrintf(3.999f) > 0)?0:1; }
EOF

F
Falk Hüffner 已提交
1353 1354
_restrict=
for restrict_keyword in restrict __restrict__ __restrict; do
1355
    check_cc <<EOF && _restrict=$restrict_keyword && break
1356 1357
void foo(char * $restrict_keyword p);
EOF
F
Falk Hüffner 已提交
1358 1359
done

1360 1361
# dlopen/dlfcn.h probing

1362
check_header dlfcn.h && dlfcn=yes
1363

1364 1365 1366 1367
temp_extralibs -ldl
if check_func dlopen; then
    dlopen=yes
    ldl=-ldl
1368
fi
1369
restore_flags
1370

1371 1372 1373
if check_func dlopen; then
    dlopen=yes
    ldl=
1374 1375
fi

M
Måns Rullgård 已提交
1376 1377
if test "$vhook" = "default"; then
    vhook="$dlopen"
1378 1379
fi

M
Michael Niedermayer 已提交
1380
if test "$vhook" = "yes" -o "$a52bin" = "yes" -o "$faadbin" = "yes"; then
1381
    add_extralibs $ldl
M
Michael Niedermayer 已提交
1382 1383
fi

1384 1385 1386 1387 1388 1389 1390 1391
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

1392 1393 1394 1395
if enabled vhook; then
    check_ldflags -rdynamic
    check_ldflags -export-dynamic
fi
M
Michael Niedermayer 已提交
1396

1397
##########################################
D
Diego Biurrun 已提交
1398
# imlib check
1399

1400 1401
temp_extralibs -lImlib2
check_ld <<EOF && imlib2=yes || imlib2=no
1402 1403 1404 1405
#include <X11/Xlib.h>
#include <Imlib2.h>
int main( void ) { return (int) imlib_load_font("foo"); }
EOF
1406
restore_flags
1407

1408
##########################################
D
Diego Biurrun 已提交
1409
# FreeType check
1410

1411
freetype2=no
1412
if test "x$targetos" != "xBeOS"; then
1413
  if (freetype-config --version) >/dev/null 2>&1 ; then
1414 1415 1416 1417 1418 1419 1420
      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
1421
  fi
1422 1423
fi

1424
##########################################
D
Diego Biurrun 已提交
1425
# SDL check
1426 1427 1428

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

1457 1458
enabled sdl || ffplay=no

1459
##########################################
D
Diego Biurrun 已提交
1460
# texi2html check
1461 1462

texi2html=no
1463
if (texi2html -version) >/dev/null 2>&1; then
1464 1465 1466
texi2html=yes
fi

1467
##########################################
D
Diego Biurrun 已提交
1468
# IPv6 check
1469

1470
enabled network && enabled ipv6 && check_ld <<EOF && ipv6=yes || ipv6=no
1471 1472 1473 1474 1475 1476 1477 1478 1479
#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);
1480
  IN6_IS_ADDR_MULTICAST((const struct in6_addr *)0);
1481 1482 1483
}
EOF

1484
# check for video4linux2 --- V4L2_PIX_FMT_YUV420
1485
enabled v4l2 && check_cc <<EOF || v4l2="no"
1486
#include <sys/time.h>
1487 1488
#include <asm/types.h>
#include <linux/videodev2.h>
1489
int dummy = V4L2_PIX_FMT_YUV420;
1490
struct v4l2_buffer dummy1;
1491 1492
EOF

1493 1494 1495 1496
enabled debug && add_cflags -g

# add some useful compiler flags if supported
check_cflags -Wdeclaration-after-statement
1497 1498
check_cflags -Wall
check_cflags -Wno-switch
M
Michael Niedermayer 已提交
1499 1500 1501 1502
check_cflags -Wdisabled-optimization
check_cflags -Wpointer-arith
check_cflags -Wredundant-decls
check_cflags -Winline
1503

1504 1505
# 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 已提交
1506

1507 1508
# not all compilers support -Os
test "$optimize" = "small" && check_cflags -Os
1509

1510
if enabled optimize; then
1511
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
1512 1513
        add_cflags  "-O5"
        add_ldflags "-O5"
1514
    else
1515
        add_cflags "-O3"
1516
    fi
1517 1518
fi

1519 1520
# PIC flags for shared library objects where they are needed
if test "$lshared" = "yes" ; then
M
Måns Rullgård 已提交
1521 1522
    # LIBOBJFLAGS may have already been set in the OS configuration
    if test -z "$LIBOBJFLAGS" ; then
1523
        case "$arch" in
1524 1525
            x86_64|ia64|alpha|sparc*) LIBOBJFLAGS="\$(PIC)" ;;
        esac
1526 1527 1528
    fi
fi

1529
if test "$gprof" = "yes" ; then
1530 1531
    add_cflags  "-p"
    add_ldflags "-p"
1532 1533
fi

1534 1535 1536 1537 1538 1539
# 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

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

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

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

1616 1617
date >> config.log
echo "   $0 $FFMPEG_CONFIGURATION" >> config.log
D
Diego Biurrun 已提交
1618 1619
echo "# Automatically generated by configure - do not modify!" > config.mak
echo "/* Automatically generated by configure - do not modify! */" > $TMPH
1620
echo "#define FFMPEG_CONFIGURATION "'"'"$FFMPEG_CONFIGURATION"'"' >> $TMPH
F
Fabrice Bellard 已提交
1621

1622 1623
echo "PREFIX=$PREFIX" >> config.mak
echo "prefix=\$(DESTDIR)\${PREFIX}" >> config.mak
1624
echo "libdir=\$(DESTDIR)$libdir" >> config.mak
1625
echo "shlibdir=\$(DESTDIR)$shlibdir" >> config.mak
D
Diego Biurrun 已提交
1626
echo "incdir=\$(DESTDIR)$incdir" >> config.mak
1627 1628
echo "bindir=\$(DESTDIR)$bindir" >> config.mak
echo "mandir=\$(DESTDIR)$mandir" >> config.mak
1629
echo "MAKE=$make" >> config.mak
1630 1631
echo "CC=$cc" >> config.mak
echo "AR=$ar" >> config.mak
M
Michael Niedermayer 已提交
1632
echo "RANLIB=$ranlib" >> config.mak
1633
if test "$dostrip" = "yes" ; then
M
Måns Rullgård 已提交
1634 1635
    echo "STRIP=$strip" >> config.mak
    echo "INSTALLSTRIP=$installstrip" >> config.mak
1636
else
M
Måns Rullgård 已提交
1637 1638
    echo "STRIP=echo ignoring strip" >> config.mak
    echo "INSTALLSTRIP=" >> config.mak
1639
fi
1640

1641
VHOOKCFLAGS="-fPIC $CFLAGS"
1642
test "$needmdynamicnopic" = yes && add_cflags -mdynamic-no-pic
1643

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

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

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

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

D
Diego Biurrun 已提交
1833
# If you do not want to use encoders, disable them.
1834
if echo "$ENCODER_LIST" | grep -q encoder; then
1835 1836 1837
    echo "#define CONFIG_ENCODERS 1" >> $TMPH
    echo "CONFIG_ENCODERS=yes" >> config.mak
fi
1838

D
Diego Biurrun 已提交
1839
# If you do not want to use decoders, disable them.
1840
if echo "$DECODER_LIST" | grep -q decoder; then
1841 1842 1843
    echo "#define CONFIG_DECODERS 1" >> $TMPH
    echo "CONFIG_DECODERS=yes" >> config.mak
fi
1844

1845
# muxers
1846
if echo "$MUXER_LIST" | grep -q muxer; then
1847 1848 1849 1850 1851
  echo "#define CONFIG_MUXERS 1" >> $TMPH
  echo "CONFIG_MUXERS=yes" >> config.mak
fi

# demuxers
1852
if echo "$DEMUXER_LIST" | grep -q demuxer; then
1853 1854 1855 1856
  echo "#define CONFIG_DEMUXERS 1" >> $TMPH
  echo "CONFIG_DEMUXERS=yes" >> config.mak
fi

F
Fabrice Bellard 已提交
1857 1858 1859 1860
# AC3
if test "$a52" = "yes" ; then
  echo "#define CONFIG_AC3 1" >> $TMPH
  echo "CONFIG_AC3=yes" >> config.mak
1861

F
Fabrice Bellard 已提交
1862 1863 1864 1865 1866 1867
  if test "$a52bin" = "yes" ; then
    echo "#define CONFIG_A52BIN 1" >> $TMPH
    echo "CONFIG_A52BIN=yes" >> config.mak
  fi
fi

1868 1869 1870 1871 1872 1873
# DTS
if test "$dts" = "yes" ; then
  echo "#define CONFIG_DTS 1" >> $TMPH
  echo "CONFIG_DTS=yes" >> config.mak
fi

1874 1875 1876 1877 1878 1879
# PP
if test "$pp" = "yes" ; then
  echo "#define CONFIG_PP 1" >> $TMPH
  echo "CONFIG_PP=yes" >> config.mak
fi

L
Luca Abeni 已提交
1880 1881 1882 1883 1884
if test "$swscaler" = "yes" ; then
  echo "#define CONFIG_SWSCALER 1" >> $TMPH
  echo "CONFIG_SWSCALER=yes" >> config.mak
fi

D
Diego Biurrun 已提交
1885
# MPEG audio high precision mode
1886 1887 1888 1889
if test "$mpegaudio_hp" = "yes" ; then
  echo "#define CONFIG_MPEGAUDIO_HP 1" >> $TMPH
fi

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

L
Luca Abeni 已提交
1895 1896 1897 1898 1899
if test "$v4l2" = "yes" ; then
  echo "#define CONFIG_VIDEO4LINUX2 1" >> $TMPH
  echo "CONFIG_VIDEO4LINUX2=yes" >> config.mak
fi

1900 1901 1902 1903 1904
if test "$bktr" = "yes" ; then
  echo "#define CONFIG_BKTR 1" >> $TMPH
  echo "CONFIG_BKTR=yes" >> config.mak
fi

1905 1906 1907 1908 1909
if test "$dv1394" = "yes" ; then
  echo "#define CONFIG_DV1394 1" >> $TMPH
  echo "CONFIG_DV1394=yes" >> config.mak
fi

1910 1911 1912 1913 1914
if test "$dc1394" = "yes" ; then
  echo "#define CONFIG_DC1394 1" >> $TMPH
  echo "CONFIG_DC1394=yes" >> config.mak
fi

1915 1916 1917 1918 1919 1920 1921 1922
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 已提交
1923 1924 1925
if test "$audio_oss" = "yes" ; then
  echo "#define CONFIG_AUDIO_OSS 1" >> $TMPH
  echo "CONFIG_AUDIO_OSS=yes" >> config.mak
Z
Zdenek Kabelac 已提交
1926 1927
fi

1928 1929 1930 1931 1932
if test "$audio_beos" = "yes" ; then
  echo "#define CONFIG_AUDIO_BEOS 1" >> $TMPH
  echo "CONFIG_AUDIO_BEOS=yes" >> config.mak
fi

F
Fabrice Bellard 已提交
1933 1934 1935
if test "$network" = "yes" ; then
  echo "#define CONFIG_NETWORK 1" >> $TMPH
  echo "CONFIG_NETWORK=yes" >> config.mak
1936
fi
1937

1938 1939 1940 1941
if test "$ipv6" = "yes" ; then
  echo "#define CONFIG_IPV6 1" >> $TMPH
fi

1942 1943 1944 1945 1946
if test "$zlib" = "yes" ; then
  echo "#define CONFIG_ZLIB 1" >> $TMPH
  echo "CONFIG_ZLIB=yes" >> config.mak
fi

1947 1948 1949 1950 1951
if test "$libgsm" = "yes" ; then
  echo "#define CONFIG_LIBGSM 1" >> $TMPH
  echo "CONFIG_LIBGSM=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1952
if test "$mp3lame" = "yes" ; then
1953
  echo "#define CONFIG_MP3LAME 1" >> $TMPH
1954 1955 1956
  echo "CONFIG_MP3LAME=yes" >> config.mak
fi

1957
if test "$libogg" = "yes" ; then
N
Nilesh Bansal 已提交
1958 1959 1960 1961
  echo "#define CONFIG_LIBOGG 1" >> $TMPH
  echo "CONFIG_LIBOGG=yes" >> config.mak
fi

1962
if test "$vorbis" = "yes" ; then
N
Nilesh Bansal 已提交
1963 1964 1965 1966
  echo "#define CONFIG_LIBVORBIS 1" >> $TMPH
  echo "CONFIG_LIBVORBIS=yes" >> config.mak
fi

1967 1968 1969 1970 1971 1972 1973
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 已提交
1974
  echo "CONFIG_FAADBIN=yes" >> config.mak
1975 1976
fi

1977 1978 1979 1980 1981
if test "$faac" = "yes" ; then
  echo "#define CONFIG_FAAC 1" >> $TMPH
  echo "CONFIG_FAAC=yes" >> config.mak
fi

1982 1983 1984 1985 1986
if test "$xvid" = "yes" ; then
  echo "#define CONFIG_XVID 1" >> $TMPH
  echo "CONFIG_XVID=yes" >> config.mak
fi

1987 1988 1989 1990 1991
if test "$x264" = "yes" ; then
  echo "#define CONFIG_X264 1" >> $TMPH
  echo "CONFIG_X264=yes" >> config.mak
fi

1992 1993 1994 1995 1996
if test "$avisynth" = "yes" ; then
  echo "#define CONFIG_AVISYNTH 1" >> $TMPH
  echo "CONFIG_AVISYNTH=yes" >> config.mak
fi

1997
if test "$mingw32" = "yes" ; then
1998
  echo "CONFIG_MINGW=yes" >> config.mak
1999 2000
  echo "HAVE_W32THREADS=yes" >> config.mak
  echo "#define HAVE_W32THREADS 1" >> $TMPH
2001
  echo "#define HAVE_THREADS 1" >> $TMPH
2002
  echo "#ifndef __MINGW32__" >> $TMPH
2003
  echo "#define __MINGW32__ 1" >> $TMPH
2004
  echo "#endif" >> $TMPH
2005 2006
fi

G
Gildas Bazin 已提交
2007
if test "$mingwce" = "yes" ; then
2008
  echo "CONFIG_MINGW=yes" >> config.mak
G
Gildas Bazin 已提交
2009 2010 2011 2012 2013 2014 2015
  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

2016 2017 2018
if test "$os2" = "yes" ; then
  echo "#define CONFIG_OS2 1" >> $TMPH
  echo "CONFIG_OS2=yes" >> config.mak
2019 2020 2021
  echo "HAVE_OS2THREADS=yes" >> config.mak
  echo "#define HAVE_OS2THREADS 1" >> $TMPH
  echo "#define HAVE_THREADS 1" >> $TMPH
2022 2023
fi

2024
if test "$targetos" = "SunOS" ; then
2025 2026 2027
  echo "#define CONFIG_SUNOS 1" >> $TMPH
fi

2028
if test "$targetos" = "BeOS" ; then
2029 2030 2031 2032 2033
  echo "HAVE_BEOSTHREADS=yes" >> config.mak
  echo "#define HAVE_BEOSTHREADS 1" >> $TMPH
  echo "#define HAVE_THREADS 1" >> $TMPH
fi

2034
if test "$targetos" = "Darwin"; then
2035 2036 2037 2038
  echo "#define CONFIG_DARWIN 1"  >> $TMPH
  echo "CONFIG_DARWIN=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
2039
if test "$_malloc_h" = "yes" ; then
2040
  echo "#define HAVE_MALLOC_H 1" >> $TMPH
N
Nick Kurshev 已提交
2041
else
2042
  echo "#undef  HAVE_MALLOC_H" >> $TMPH
N
Nick Kurshev 已提交
2043 2044
fi

Z
Zdenek Kabelac 已提交
2045
if test "$_memalign" = "yes" ; then
2046 2047 2048 2049 2050
  echo "#define HAVE_MEMALIGN 1" >> $TMPH
else
  echo "#undef  HAVE_MEMALIGN" >> $TMPH
fi

2051 2052 2053 2054 2055
if test "$memalignhack" = "yes" ; then
  echo "#define MEMALIGN_HACK 1" >> $TMPH
fi


2056 2057 2058 2059 2060
if test "$netserver" = "yes" ; then
  echo "#define CONFIG_BEOS_NETSERVER 1" >> $TMPH
  echo "CONFIG_BEOS_NETSERVER=yes" >> config.mak
fi

2061 2062 2063 2064
if test "$need_inet_aton" = "yes" ; then
  echo "NEED_INET_ATON=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
2065
if test "$simpleidct" = "yes" ; then
2066 2067 2068
  echo "#define SIMPLE_IDCT 1" >> $TMPH
fi

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

2074 2075 2076 2077 2078
if test "$ffserver" = "yes" ; then
  echo "#define CONFIG_FFSERVER 1" >> $TMPH
  echo "CONFIG_FFSERVER=yes" >> config.mak
fi

2079 2080 2081 2082
if test "$ffplay" = "yes" ; then
  echo "CONFIG_FFPLAY=yes" >> config.mak
fi

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

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

2090 2091
if test "$optimize" = "small"; then
  echo "#define always_inline"  >> $TMPH
2092
  echo "#define CONFIG_SMALL 1" >> $TMPH
2093 2094
fi

2095 2096
# build tree in object directory if source path is different from current one
if test "$source_path_used" = "yes" ; then
2097 2098 2099 2100 2101 2102
    DIRS="\
         doc \
         libavformat \
         libavcodec \
         libavcodec/alpha \
         libavcodec/armv4l \
2103
         libavcodec/bfin \
2104 2105 2106 2107 2108
         libavcodec/i386 \
         libavcodec/sparc \
         libavcodec/mlib \
         libavcodec/ppc \
         libavcodec/liba52 \
2109
         libpostproc \
2110
         libavutil \
L
Luca Abeni 已提交
2111
         libswscale \
2112 2113 2114 2115 2116 2117 2118
         tests \
         vhook \
         "
    FILES="\
          Makefile \
          libavformat/Makefile \
          libavcodec/Makefile \
2119
          libpostproc/Makefile \
2120
          libavutil/Makefile \
L
Luca Abeni 已提交
2121
          libswscale/Makefile \
2122 2123 2124 2125 2126
          tests/Makefile \
          vhook/Makefile \
          doc/Makefile \
          doc/texi2pod.pl \
          "
2127 2128 2129 2130
    for dir in $DIRS ; do
            mkdir -p $dir
    done
    for f in $FILES ; do
M
Michael Niedermayer 已提交
2131
        ln -sf "$source_path/$f" $f
2132 2133
    done
fi
2134
echo "SRC_PATH=$source_path" >> config.mak
2135
echo "BUILD_ROOT=$PWD" >> config.mak
2136

D
Diego Biurrun 已提交
2137
if test "$amr" = "yes" ; then
2138 2139
  echo "#define CONFIG_AMR 1" >> $TMPH
  echo "CONFIG_AMR=yes" >> config.mak
D
Diego Biurrun 已提交
2140 2141
fi

2142
if test "$amr_wb" = "yes" ; then
2143 2144
  echo "#define CONFIG_AMR_WB 1" >> $TMPH
  echo "CONFIG_AMR_WB=yes" >> config.mak
2145 2146 2147 2148 2149 2150 2151
  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

2152
if test "$amr_nb" = "yes" ; then
2153 2154
  echo "#define CONFIG_AMR_NB 1" >> $TMPH
  echo "CONFIG_AMR_NB=yes" >> config.mak
2155
  echo
2156 2157
  echo "AMR NB FLOAT NOTICE ! Make sure you have downloaded TS26.104"
  echo "REL-5 V5.1.0 from "
D
Diego Biurrun 已提交
2158
  echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip"
2159 2160 2161 2162
  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 已提交
2163
if test "$amr_nb_fixed" = "yes" ; then
2164 2165
  echo "#define CONFIG_AMR_NB_FIXED 1" >> $TMPH
  echo "CONFIG_AMR_NB_FIXED=yes" >> config.mak
D
Diego Biurrun 已提交
2166
  echo
Z
Zdenek Kabelac 已提交
2167 2168
  echo "AMR NB FIXED POINT NOTICE! Make sure you have downloaded TS26.073 "
  echo "REL-5 version 5.1.0 from "
D
Diego Biurrun 已提交
2169
  echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.073/26073-510.zip"
2170
  echo "and extracted src to libavcodec/amr"
Z
Zdenek Kabelac 已提交
2171 2172
  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"
2173 2174
fi

2175 2176 2177 2178
if test "$amr_if2" = "yes" ; then
  echo "AMR_CFLAGS=-DIF2=1" >> config.mak
fi

2179
# Apparently it's not possible to portably echo a backslash.
2180
if test "$asmalign_pot" = "yes" ; then
2181
  printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH
2182
else
2183
  printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH
2184 2185
fi

Z
Zdenek Kabelac 已提交
2186

2187
# "tr '[a-z]' '[A-Z]'" is a workaround for Solaris tr not grokking "tr a-z A-Z"
2188
for codec in $DECODER_LIST $ENCODER_LIST $PARSER_LIST $DEMUXER_LIST $MUXER_LIST; do
2189 2190
    echo "#define CONFIG_`echo $codec | tr '[a-z]' '[A-Z]'` 1" >> $TMPH
    echo "CONFIG_`echo $codec | tr '[a-z]' '[A-Z]'`=yes" >> config.mak
2191 2192
done

2193 2194
# Do not overwrite config.h if unchanged to avoid superfluous rebuilds.
diff $TMPH config.h >/dev/null 2>&1
2195
if test "$?" != "0" ; then
2196 2197 2198 2199
        mv -f $TMPH config.h
else
        echo "config.h is unchanged"
fi
N
Nick Kurshev 已提交
2200

2201
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
2202 2203


D
Diego Biurrun 已提交
2204
# build pkg-config files libav*.pc and libpostproc.pc
2205 2206
# libavutil.pc
cat <<EOF >libavutil.pc
2207
prefix=$PREFIX
2208
exec_prefix=\${prefix}
2209
libdir=\${exec_prefix}/lib
2210
includedir=\${prefix}/include
2211 2212 2213 2214

Name: libavutil
Description: FFmpeg utility library
Version: $lavu_version
2215
Requires:
2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229
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
2230
Requires:
2231 2232 2233 2234
Conflicts:
Libs: \${libdir}/${LIBPREF}avutil${LIBSUF}
Cflags: -I\${includedir}
EOF
2235 2236 2237

# libavcodec.pc
cat <<EOF >libavcodec.pc
2238
prefix=$PREFIX
2239
exec_prefix=\${prefix}
2240
libdir=\${exec_prefix}/lib
2241
includedir=\${prefix}/include
2242 2243 2244

Name: libavcodec
Description: FFmpeg codec library
2245
Version: $lavc_version
2246
Requires: $pkg_requires libavutil = $lavu_version
2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259
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
2260
Version: $lavc_version
2261
Requires: $pkg_requires libavutil = $lavu_version
2262 2263 2264 2265 2266 2267 2268
Conflicts:
Libs: \${libdir}/${LIBPREF}avcodec${LIBSUF} $extralibs
Cflags: -I\${includedir}
EOF

# libavformat.pc
cat <<EOF >libavformat.pc
2269
prefix=$PREFIX
2270
exec_prefix=\${prefix}
2271
libdir=\${exec_prefix}/lib
2272
includedir=\${prefix}/include
2273 2274 2275

Name: libavformat
Description: FFmpeg container format library
2276
Version: $lavf_version
2277
Requires: $pkg_requires libavcodec = $lavc_version
2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290
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
2291
Version: $lavf_version
2292
Requires: $pkg_requires libavcodec = $lavc_version
2293 2294 2295 2296 2297 2298 2299 2300
Conflicts:
Libs: \${libdir}/${LIBPREF}avformat${LIBSUF} $extralibs
Cflags: -I\${includedir}
EOF


# libpostproc.pc
cat <<EOF >libpostproc.pc
2301
prefix=$PREFIX
2302
exec_prefix=\${prefix}
2303
libdir=\${exec_prefix}/lib
2304
includedir=\${prefix}/include
2305 2306 2307

Name: libpostproc
Description: FFmpeg post processing library
2308
Version: $lavc_version
2309
Requires:
2310 2311 2312 2313 2314 2315 2316 2317
Conflicts:
Libs: -L\${libdir} -lpostproc
Cflags: -I\${includedir} -I\${includedir}/postproc
EOF

cat <<EOF >libpostproc-uninstalled.pc
prefix=
exec_prefix=
2318 2319
libdir=\${pcfiledir}/libpostproc
includedir=\${pcfiledir}/libpostproc
2320 2321 2322

Name: libpostproc
Description: FFmpeg post processing library
2323
Version: $lavc_version
2324
Requires:
2325 2326 2327 2328
Conflicts:
Libs: \${libdir}/${LIBPREF}postproc${LIBSUF}
Cflags: -I\${includedir}
EOF
L
Luca Abeni 已提交
2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359

# 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