configure 61.6 KB
Newer Older
glantau's avatar
glantau committed
1
#!/bin/sh
2
#
glantau's avatar
glantau committed
3
# ffmpeg configure script (c) 2000, 2001, 2002 Fabrice Bellard
4
#
5

6
# make sure we are running under a compatible shell
mru's avatar
mru committed
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]"
lucabe's avatar
lucabe committed
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(){
mru's avatar
mru committed
131 132 133 134 135
    log BEGIN $1
    cat -n $1 >>$logfile
    log END $1
}

136
echolog(){
mru's avatar
mru committed
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(){
mru's avatar
mru committed
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 "$@"
mru's avatar
mru committed
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
}

mru's avatar
mru committed
308 309 310 311 312 313
filter_out(){
    pattern="$1"
    shift
    echo "$@" | sed "s%\\<$pattern\\>%%g"
}

314
# set temporary file name
kabi's avatar
kabi committed
315
if test ! -z "$TMPDIR" ; then
316
    TMPDIR1="${TMPDIR}"
kabi's avatar
kabi committed
317
elif test ! -z "$TEMPDIR" ; then
318
    TMPDIR1="${TEMPDIR}"
nickols_k's avatar
nickols_k committed
319
else
320
    TMPDIR1="/tmp"
nickols_k's avatar
nickols_k committed
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"

glantau's avatar
glantau committed
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"
glantau's avatar
glantau committed
340 341
cc="gcc"
ar="ar"
michaelni's avatar
michaelni committed
342
ranlib="ranlib"
al3x's avatar
al3x committed
343
make="make"
344
strip="strip"
345
arch=`uname -m`
346
cpu="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"
glantau's avatar
glantau committed
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
  ;;
al3x's avatar
al3x committed
386
  sh4)
387
    arch="sh4"
al3x's avatar
al3x committed
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
  ;;
diego's avatar
diego committed
401
  bfin)
402
    arch="bfin"
diego's avatar
diego committed
403
  ;;
glantau's avatar
glantau committed
404
  *)
405
    arch="unknown"
glantau's avatar
glantau committed
406 407 408
  ;;
esac
gprof="no"
glantau's avatar
glantau committed
409
v4l="yes"
diego's avatar
diego committed
410
v4l2="yes"
411
bktr="no"
glantau's avatar
glantau committed
412
audio_oss="yes"
413
audio_beos="no"
414
dv1394="yes"
romansh's avatar
 
romansh committed
415
dc1394="no"
glantau's avatar
glantau committed
416
network="yes"
417
ipv6="yes"
418
zlib="yes"
419
libgsm="no"
420
mp3lame="no"
421
libogg="no"
michaelni's avatar
 
michaelni committed
422
vorbis="no"
423 424
faad="no"
faadbin="no"
425
faac="no"
426
xvid="no"
427
x264="no"
michaelni's avatar
michaelni committed
428
a52="no"
kabi's avatar
kabi committed
429
a52bin="no"
430
dts="no"
michaelni's avatar
michaelni committed
431
pp="no"
432
mingw32="no"
diego's avatar
diego committed
433
mingwce="no"
434
os2="no"
435
lstatic="yes"
kabi's avatar
kabi committed
436
lshared="no"
437 438
optimize="yes"
debug="yes"
439
dostrip="yes"
440
installstrip="-s"
441
extralibs="-lm"
michaelni's avatar
 
michaelni committed
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"
bellard's avatar
bellard committed
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)'
bellard's avatar
bellard committed
470
EXESUF=""
471
BUILDSUF=""
472
amr_nb="no"
473
amr_wb="no"
kabi's avatar
kabi committed
474
amr_nb_fixed="no"
475
amr_if2="no"
romansh's avatar
 
romansh committed
476
sunmlib="no"
477
pthreads="no"
lucabe's avatar
lucabe committed
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
romansh's avatar
 
romansh committed
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
diego's avatar
diego committed
502
# disable Linux things
503
audio_oss="no"
glantau's avatar
glantau committed
504
v4l="no"
diego's avatar
diego committed
505
v4l2="no"
506
dv1394="no"
diego's avatar
diego committed
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"
diego's avatar
diego committed
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"
diego's avatar
diego committed
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"
diego's avatar
diego committed
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"
diego's avatar
diego committed
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
;;
al3x's avatar
al3x committed
567
BSD/OS)
glantau's avatar
glantau committed
568
v4l="no"
diego's avatar
diego committed
569
v4l2="no"
570
bktr="yes"
bellard's avatar
bellard committed
571
audio_oss="yes"
572
dv1394="no"
al3x's avatar
al3x committed
573 574
extralibs="-lpoll -lgnugetopt -lm"
make="gmake"
575 576
strip="strip -d"
installstrip=""
al3x's avatar
al3x committed
577
;;
578
Darwin)
579
cc="cc"
580
v4l="no"
diego's avatar
diego committed
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*)
bellard's avatar
bellard committed
597
# Note: the rest of the mingw32 config is done afterwards as mingw32
diego's avatar
diego committed
598
# can be forced on the command line for Linux cross compilation.
599 600
mingw32="yes"
;;
601
CYGWIN*)
diego's avatar
diego committed
602
targetos=CYGWIN
603
shlibdir='${PREFIX}/bin'
604
v4l="no"
diego's avatar
diego committed
605
v4l2="no"
606
audio_oss="yes"
607
dv1394="no"
diego's avatar
diego committed
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*)
diego's avatar
diego committed
621
targetos=IRIX
622 623
ranlib="echo ignoring ranlib"
v4l="no"
diego's avatar
diego committed
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"
bellard's avatar
bellard committed
641
EXESUF=".exe"
642
extralibs=""
643
pkg_requires=""
644
v4l="no"
diego's avatar
diego committed
645
v4l2="no"
646
audio_oss="no"
647
dv1394="no"
648
ffserver="no"
649
vhook="no"
650
os2="yes"
651

652
;;
diego's avatar
diego committed
653 654 655
*)
targetos="${targetos}-UNKNOWN"
;;
656
esac
glantau's avatar
glantau committed
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`"
glantau's avatar
glantau committed
666 667
fi

mru's avatar
mru committed
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

mru's avatar
mru committed
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

glantau's avatar
glantau committed
683
for opt do
mru's avatar
mru committed
684
  optval="${opt#*=}"
glantau's avatar
glantau committed
685
  case "$opt" in
686 687
  --log)
  ;;
mru's avatar
mru committed
688
  --log=*) logging="$optval"
689
  ;;
690
  --prefix=*) PREFIX="$optval"; force_prefix=yes
glantau's avatar
glantau committed
691
  ;;
mru's avatar
mru committed
692
  --libdir=*) libdir="$optval"; force_libdir=yes
693
  ;;
694 695
  --shlibdir=*) shlibdir="$optval"
  ;;
mru's avatar
mru committed
696
  --incdir=*) incdir="$optval"
diego's avatar
diego committed
697
  ;;
mru's avatar
mru committed
698
  --mandir=*) mandir="$optval"
bellard's avatar
bellard committed
699
  ;;
mru's avatar
mru committed
700
  --source-path=*) source_path="$optval"
701
  ;;
mru's avatar
mru committed
702
  --cross-prefix=*) cross_prefix="$optval"
703
  ;;
704 705
  --cross-compile) cross_compile=yes
  ;;
mru's avatar
mru committed
706
  --cc=*) cc="$optval"
glantau's avatar
glantau committed
707
  ;;
mru's avatar
mru committed
708
  --make=*) make="$optval"
al3x's avatar
al3x committed
709
  ;;
710
  --extra-cflags=*) add_cflags "$optval"
711
  ;;
712
  --extra-ldflags=*) EXTRALDFLAGS="$optval"
713
  ;;
mru's avatar
mru committed
714
  --extra-libs=*) extralibs="$optval"
715
  ;;
mru's avatar
mru committed
716
  --build-suffix=*) BUILDSUF="$optval"
717
  ;;
718
  --arch=*) arch="$optval"
glantau's avatar
glantau committed
719
  ;;
720
  --cpu=*) cpu="$optval"
721
  ;;
722 723
  --powerpc-perf-enable) powerpc_perf="yes"
  ;;
glantau's avatar
glantau committed
724 725
  --disable-mmx) mmx="no"
  ;;
726 727
  --disable-armv5te) armv5te="no"
  ;;
728 729
  --disable-iwmmxt) iwmmxt="no"
  ;;
730 731
  --disable-altivec) altivec="no"
  ;;
glantau's avatar
glantau committed
732 733
  --enable-gprof) gprof="yes"
  ;;
glantau's avatar
glantau committed
734 735
  --disable-v4l) v4l="no"
  ;;
diego's avatar
diego committed
736 737
  --disable-v4l2) v4l2="no"
  ;;
738 739
  --disable-bktr) bktr="no"
  ;;
glantau's avatar
glantau committed
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"
glantau's avatar
glantau committed
747
  ;;
748 749
  --disable-ipv6) ipv6="no";
  ;;
750 751
  --disable-zlib) zlib="no"
  ;;
michaelni's avatar
michaelni committed
752
  --enable-a52) a52="yes"
753
  ;;
michael's avatar
michael committed
754
  --enable-a52bin) a52bin="yes"
kabi's avatar
kabi committed
755
  ;;
756
  --enable-dts) dts="yes"
757
  ;;
michaelni's avatar
michaelni committed
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"
michael's avatar
michael committed
766
  ;;
michaelni's avatar
 
michaelni committed
767
  --enable-vorbis) vorbis="yes"
768
    pkg_requires="$pkg_requires vorbis vorbisenc"
michaelni's avatar
 
michaelni committed
769
  ;;
kabi's avatar
kabi committed
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";
  ;;
romansh's avatar
 
romansh committed
782
  --enable-dc1394) dc1394="yes"
783
    pkg_requires="$pkg_requires libraw1394"
romansh's avatar
 
romansh committed
784
  ;;
785 786
  --disable-vhook) vhook="no"
  ;;
michaelni's avatar
 
michaelni committed
787
  --disable-simple_idct) simpleidct="no"
kabi's avatar
kabi committed
788
  ;;
789 790
  --enable-mingw32) mingw32="yes"
  ;;
diego's avatar
diego committed
791 792
  --enable-mingwce) mingwce="yes"
  ;;
793 794 795 796
  --enable-static) lstatic="yes"
  ;;
  --disable-static) lstatic="no"
  ;;
kabi's avatar
kabi committed
797
  --enable-shared) lshared="yes"
nickols_k's avatar
nickols_k committed
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"
  ;;
bellard's avatar
bellard committed
811 812
  --disable-ffplay) ffplay="no"
  ;;
813
  --enable-small) optimize="small"
814
  ;;
diego's avatar
diego committed
815
  --enable-amr_nb) amr="yes"; amr_nb="yes"; amr_nb_fixed="no"
816
  ;;
diego's avatar
diego committed
817
  --enable-amr_nb-fixed) amr="yes"; amr_nb_fixed="yes"; amr_nb="no"
kabi's avatar
kabi committed
818
  ;;
diego's avatar
diego committed
819
  --enable-amr_wb) amr="yes"; amr_wb="yes"
820
  ;;
diego's avatar
diego committed
821
  --enable-amr_if2) amr="yes"; amr_if2="yes"
822
  ;;
romansh's avatar
 
romansh committed
823 824
  --enable-sunmlib) sunmlib="yes"
  ;;
825 826
  --enable-pthreads) pthreads="yes"
  ;;
lucabe's avatar
lucabe committed
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"
  ;;
mru's avatar
mru committed
835
  --enable-encoder=*) ENCODER_LIST="$ENCODER_LIST ${optval}_encoder"
836
  ;;
mru's avatar
mru committed
837
  --enable-decoder=*) DECODER_LIST="$DECODER_LIST ${optval}_decoder"
838
  ;;
mru's avatar
mru committed
839
  --disable-encoder=*) ENCODER_LIST="`filter_out ${optval}_encoder $ENCODER_LIST`"
840
  ;;
mru's avatar
mru committed
841
  --disable-decoder=*) DECODER_LIST="`filter_out ${optval}_decoder $DECODER_LIST`"
842
  ;;
843
  --disable-encoders) ENCODER_LIST=""
844
  ;;
845
  --disable-decoders) DECODER_LIST=""
846
  ;;
mru's avatar
mru committed
847
  --enable-muxer=*) MUXER_LIST="$MUXER_LIST ${optval}_muxer"
848
  ;;
mru's avatar
mru committed
849
  --disable-muxer=*) MUXER_LIST="`filter_out ${optval}_muxer $MUXER_LIST`"
850 851 852
  ;;
  --disable-muxers) MUXER_LIST=""; ffserver="no"
  ;;
mru's avatar
mru committed
853
  --enable-demuxer=*) DEMUXER_LIST="$DEMUXER_LIST ${optval}_demuxer"
854
  ;;
mru's avatar
mru committed
855
  --disable-demuxer=*) DEMUXER_LIST="`filter_out ${optval}_demuxer $DEMUXER_LIST`"
856 857
  ;;
  --disable-demuxers) DEMUXER_LIST=""
858
  ;;
mru's avatar
mru committed
859
  --enable-parser=*) PARSER_LIST="$PARSER_LIST ${optval}_parser"
860
  ;;
mru's avatar
mru committed
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
  ;;
glantau's avatar
glantau committed
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
mru's avatar
mru committed
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

michael's avatar
michael committed
936
if test "$vorbis" = "yes" ; then
937
    if test "$libogg" = "no"; then
diego's avatar
diego committed
938
        echo "libogg must be enabled to enable Vorbis."
michael's avatar
michael committed
939 940 941 942
        fail="yes"
    fi
fi

943
if test "$gpl" != "yes"; then
944
    if test "$pp" != "no"; then
diego's avatar
diego committed
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
diego's avatar
diego committed
950
        echo "liba52 is under GPL and --enable-gpl is not specified."
951 952
        fail="yes"
    fi
953

954
    if test "$xvid" != "no"; then
diego's avatar
diego committed
955
        echo "libxvidcore is under GPL and --enable-gpl is not specified."
956 957 958
        fail="yes"
    fi

959
    if test "$x264" != "no"; then
diego's avatar
diego committed
960
        echo "x264 is under GPL and --enable-gpl is not specified."
961 962 963
        fail="yes"
    fi

964
    if test "$dts" != "no"; then
diego's avatar
diego committed
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
diego's avatar
diego committed
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"
diego's avatar
diego committed
985
            echo "FAAD test failed."
986 987
        fi
    fi
988

lucabe's avatar
lucabe committed
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

diego's avatar
diego committed
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
romansh's avatar
 
romansh committed
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 $cpu != "generic"; then
    case $cpu 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 -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 -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 -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 -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=$cpu"
1105
        ;;
1106
        sparc64)
1107
            add_cflags "-mcpu=v9"
1108
        ;;
1109
        *)
1110
        echo "WARNING: Unknown CPU \"$cpu\", ignored."
1111
        ;;
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

mru's avatar
mru committed
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."
mru's avatar
mru committed
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
romansh's avatar
 
romansh committed
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

diego's avatar
diego committed
1172
# check if our compiler supports Motorola AltiVec C API
1173
if test $altivec = "yes"; then
mru's avatar
mru committed
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

diego's avatar
diego committed
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

diego's avatar
diego committed
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"
michaelni's avatar
michaelni committed
1230 1231
#include <inttypes.h>
int main(int argc, char ** argv){
1232 1233
        volatile uint32_t i=0x01234567;
        return (*((uint8_t*)(&i))) == 0x67;
michaelni's avatar
michaelni committed
1234 1235
}
EOF
bellard's avatar
bellard committed
1236
else
mru's avatar
mru committed
1237
    # programs cannot be launched if cross compiling, so make a static guess
1238
    if test "$arch" = "powerpc" -o "$arch" = "mips" ; then
mru's avatar
mru committed
1239 1240
        bigendian="yes"
    fi
bellard's avatar
bellard committed
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

nickols_k's avatar
nickols_k committed
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"
nickols_k's avatar
nickols_k committed
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
mru's avatar
mru committed
1291
enabled vorbis  && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc -logg
mru's avatar
mru committed
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

mellum's avatar
mellum committed
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
mellum's avatar
mellum committed
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

mru's avatar
mru committed
1376 1377
if test "$vhook" = "default"; then
    vhook="$dlopen"
1378 1379
fi

michael's avatar
michael committed
1380
if test "$vhook" = "yes" -o "$a52bin" = "yes" -o "$faadbin" = "yes"; then
1381
    add_extralibs $ldl
michael's avatar
michael committed
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
michael's avatar
michael committed
1396

bellard's avatar
bellard committed
1397
##########################################
diego's avatar
diego committed
1398
# imlib check
bellard's avatar
bellard committed
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

bellard's avatar
bellard committed
1408
##########################################
diego's avatar
diego committed
1409
# FreeType check
bellard's avatar
bellard committed
1410

1411
freetype2=no
1412
if test "x$targetos" != "xBeOS"; then
romansh's avatar
 
romansh committed
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

bellard's avatar
bellard committed
1424
##########################################
diego's avatar
diego committed
1425
# SDL check
bellard's avatar
bellard committed
1426 1427 1428

sdl_too_old=no
sdl=no
mru's avatar
mru committed
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
michael's avatar
michael committed
1455
fi
bellard's avatar
bellard committed
1456

1457 1458
enabled sdl || ffplay=no

1459
##########################################
diego's avatar
diego committed
1460
# texi2html check
1461 1462

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

1467
##########################################
diego's avatar
diego committed
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
michael's avatar
michael committed
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'
bellard's avatar
bellard committed
1506

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

1510
if enabled optimize; then
romansh's avatar
 
romansh committed
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
mru's avatar
mru committed
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"
diego's avatar
diego committed
1541
echo "source path      $source_path"
glantau's avatar
glantau committed
1542
echo "C compiler       $cc"
al3x's avatar
al3x committed
1543
echo "make             $make"
1544
echo "ARCH             $arch ($cpu)"
1545
if test "$BUILDSUF" != ""; then
mru's avatar
mru committed
1546
    echo "build suffix     $BUILDSUF"
1547
fi
diego's avatar
diego committed
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
mru's avatar
mru committed
1552
    echo "MMX enabled      $mmx"
bellard's avatar
bellard committed
1553
fi
1554
if test $arch = "armv4l"; then
1555
    echo "ARMv5TE enabled  $armv5te"
mru's avatar
mru committed
1556
    echo "IWMMXT enabled   $iwmmxt"
1557
fi
1558
if test $arch = "mips"; then
mru's avatar
mru committed
1559
    echo "MMI enabled      $mmi"
bellard's avatar
bellard committed
1560
fi
1561
if test $arch = "powerpc"; then
mru's avatar
mru committed
1562
    echo "AltiVec enabled  $altivec"
1563
    echo "dcbzl available  $dcbzl"
bellard's avatar
bellard committed
1564
fi
glantau's avatar
glantau committed
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"
diego's avatar
diego committed
1570 1571
echo "Vorbis enabled   $vorbis"
echo "FAAD enabled     $faad"
kabi's avatar
kabi committed
1572
echo "faadbin enabled  $faadbin"
diego's avatar
diego committed
1573 1574
echo "FAAC enabled     $faac"
echo "XviD enabled     $xvid"
1575
echo "x264 enabled     $x264"
glantau's avatar
glantau committed
1576
echo "a52 support      $a52"
kabi's avatar
kabi committed
1577
echo "a52 dlopened     $a52bin"
diego's avatar
diego committed
1578
echo "DTS support      $dts"
1579
echo "pp support       $pp"
lucabe's avatar
lucabe committed
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"
diego's avatar
typo  
diego committed
1586
echo "shared           $lshared"
diego's avatar
diego committed
1587
echo "video hooking    $vhook"
bellard's avatar
bellard committed
1588 1589
echo "SDL support      $sdl"
if test $sdl_too_old = "yes"; then
mru's avatar
mru committed
1590
    echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support."
bellard's avatar
bellard committed
1591
fi
1592

mru's avatar
mru committed
1593 1594 1595
if test "$vhook" = "yes"; then
    echo "Imlib2 support   $imlib2"
    echo "FreeType support $freetype2"
1596
fi
romansh's avatar
 
romansh committed
1597
echo "Sun medialib support"  $sunmlib
1598
echo "pthreads support"      $pthreads
kabi's avatar
kabi committed
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
mru's avatar
mru committed
1605
    echo "IPv6 support         $ipv6"
1606
fi
1607
echo ".align is power-of-two" $asmalign_pot
1608
if test "$gpl" = "no" ; then
mru's avatar
mru committed
1609
    echo "License: LGPL"
1610
else
mru's avatar
mru committed
1611
    echo "License: GPL"
1612
fi
glantau's avatar
glantau committed
1613

diego's avatar
diego committed
1614
echo "Creating config.mak and config.h..."
glantau's avatar
glantau committed
1615

1616 1617
date >> config.log
echo "   $0 $FFMPEG_CONFIGURATION" >> config.log
diego's avatar
diego committed
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
glantau's avatar
glantau committed
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
diego's avatar
diego committed
1626
echo "incdir=\$(DESTDIR)$incdir" >> config.mak
1627 1628
echo "bindir=\$(DESTDIR)$bindir" >> config.mak
echo "mandir=\$(DESTDIR)$mandir" >> config.mak
al3x's avatar
al3x committed
1629
echo "MAKE=$make" >> config.mak
1630 1631
echo "CC=$cc" >> config.mak
echo "AR=$ar" >> config.mak
michaelni's avatar
michaelni committed
1632
echo "RANLIB=$ranlib" >> config.mak
1633
if test "$dostrip" = "yes" ; then
mru's avatar
mru committed
1634 1635
    echo "STRIP=$strip" >> config.mak
    echo "INSTALLSTRIP=$installstrip" >> config.mak
1636
else
mru's avatar
mru committed
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

nickols_k's avatar
nickols_k committed
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
diego's avatar
diego committed
1665
echo "TARGET_OS=$targetos" >> config.mak
1666
if test "$arch" = "x86" ; then
1667
  echo "TARGET_ARCH_X86=yes" >> config.mak
kabi's avatar
kabi committed
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
kabi's avatar
kabi committed
1674
  echo "#define ARCH_ARMV4L 1" >> $TMPH
1675
elif test "$arch" = "alpha" ; then
1676
  echo "TARGET_ARCH_ALPHA=yes" >> config.mak
kabi's avatar
kabi committed
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
al3x's avatar
al3x committed
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
diego's avatar
diego committed
1716 1717
  echo "TARGET_ARCH_BFIN=yes" >> config.mak
  echo "#define ARCH_BFIN 1" >> $TMPH
al3x's avatar
al3x committed
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
romansh's avatar
 
romansh committed
1728
  echo "#define EMULATE_FAST_INT 1" >> $TMPH
1729
fi
kabi's avatar
kabi committed
1730
if test "$mmx" = "yes" ; then
1731
  echo "TARGET_MMX=yes" >> config.mak
kabi's avatar
kabi committed
1732
  echo "#define HAVE_MMX 1" >> $TMPH
michaelni's avatar
michaelni committed
1733
  echo "#define __CPU__ 586" >> $TMPH
glantau's avatar
glantau committed
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
al3x's avatar
1l  
al3x committed
1760
    echo "#undef HAVE_ALTIVEC_H" >> $TMPH
1761
  fi
1762
fi
kabi's avatar
kabi committed
1763
if test "$gprof" = "yes" ; then
kabi's avatar
kabi committed
1764
  echo "#define HAVE_GPROF 1" >> $TMPH
glantau's avatar
glantau committed
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
romansh's avatar
 
romansh committed
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
bellard's avatar
bellard committed
1784 1785
if test "$sdl" = "yes" ; then
  echo "CONFIG_SDL=yes" >> config.mak
mru's avatar
mru committed
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
bellard's avatar
bellard committed
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
diego's avatar
diego committed
1802

lucabe's avatar
lucabe committed
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'`
diego's avatar
diego committed
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'`



kabi's avatar
kabi committed
1811
if test "$lshared" = "yes" ; then
1812
  echo "#define BUILD_SHARED_AV 1" >> $TMPH
nickols_k's avatar
nickols_k committed
1813
  echo "BUILD_SHARED=yes" >> config.mak
1814
  echo "PIC=-fPIC -DPIC" >> config.mak
1815
  echo "SPPMAJOR=${lavc_version%%.*}" >> config.mak
diego's avatar
diego committed
1816
  echo "SPPVERSION=$lavc_version" >> config.mak
1817
  echo "LAVCMAJOR=${lavc_version%%.*}" >> config.mak
diego's avatar
diego committed
1818
  echo "LAVCVERSION=$lavc_version" >> config.mak
1819
  echo "LAVFMAJOR=${lavf_version%%.*}" >> config.mak
diego's avatar
diego committed
1820
  echo "LAVFVERSION=$lavf_version" >> config.mak
1821
  echo "LAVUMAJOR=${lavu_version%%.*}" >> config.mak
diego's avatar
diego committed
1822
  echo "LAVUVERSION=$lavu_version" >> config.mak
lucabe's avatar
lucabe committed
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
nickols_k's avatar
nickols_k committed
1829
fi
1830
echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak
1831
echo "EXTRALIBS=$extralibs" >> config.mak
1832

diego's avatar
diego committed
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

diego's avatar
diego committed
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

glantau's avatar
glantau committed
1857 1858 1859 1860
# AC3
if test "$a52" = "yes" ; then
  echo "#define CONFIG_AC3 1" >> $TMPH
  echo "CONFIG_AC3=yes" >> config.mak
1861

glantau's avatar
glantau committed
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

lucabe's avatar
lucabe committed
1880 1881 1882 1883 1884
if test "$swscaler" = "yes" ; then
  echo "#define CONFIG_SWSCALER 1" >> $TMPH
  echo "CONFIG_SWSCALER=yes" >> config.mak
fi

diego's avatar
diego committed
1885
# MPEG audio high precision mode
1886 1887 1888 1889
if test "$mpegaudio_hp" = "yes" ; then
  echo "#define CONFIG_MPEGAUDIO_HP 1" >> $TMPH
fi

glantau's avatar
glantau committed
1890 1891 1892 1893 1894
if test "$v4l" = "yes" ; then
  echo "#define CONFIG_VIDEO4LINUX 1" >> $TMPH
  echo "CONFIG_VIDEO4LINUX=yes" >> config.mak
fi

diego's avatar
diego committed
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

romansh's avatar
 
romansh committed
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

glantau's avatar
glantau committed
1923 1924 1925
if test "$audio_oss" = "yes" ; then
  echo "#define CONFIG_AUDIO_OSS 1" >> $TMPH
  echo "CONFIG_AUDIO_OSS=yes" >> config.mak
kabi's avatar
kabi committed
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

glantau's avatar
glantau committed
1933 1934 1935
if test "$network" = "yes" ; then
  echo "#define CONFIG_NETWORK 1" >> $TMPH
  echo "CONFIG_NETWORK=yes" >> config.mak
1936
fi
glantau's avatar
glantau committed
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

kabi's avatar
kabi committed
1952
if test "$mp3lame" = "yes" ; then
kabi's avatar
kabi committed
1953
  echo "#define CONFIG_MP3LAME 1" >> $TMPH
1954 1955 1956
  echo "CONFIG_MP3LAME=yes" >> config.mak
fi

1957
if test "$libogg" = "yes" ; then
michael's avatar
michael committed
1958 1959 1960 1961
  echo "#define CONFIG_LIBOGG 1" >> $TMPH
  echo "CONFIG_LIBOGG=yes" >> config.mak
fi

michaelni's avatar
 
michaelni committed
1962
if test "$vorbis" = "yes" ; then
michael's avatar
michael committed
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
kabi's avatar
kabi committed
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

diego's avatar
diego committed
2007
if test "$mingwce" = "yes" ; then
2008
  echo "CONFIG_MINGW=yes" >> config.mak
diego's avatar
diego committed
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

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

diego's avatar
diego committed
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

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

kabi's avatar
kabi committed
2039
if test "$_malloc_h" = "yes" ; then
kabi's avatar
kabi committed
2040
  echo "#define HAVE_MALLOC_H 1" >> $TMPH
nickols_k's avatar
nickols_k committed
2041
else
kabi's avatar
kabi committed
2042
  echo "#undef  HAVE_MALLOC_H" >> $TMPH
nickols_k's avatar
nickols_k committed
2043 2044
fi

kabi's avatar
kabi committed
2045
if test "$_memalign" = "yes" ; then
kabi's avatar
kabi committed
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

kabi's avatar
kabi committed
2065
if test "$simpleidct" = "yes" ; then
kabi's avatar
kabi committed
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

bellard's avatar
bellard committed
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

mellum's avatar
mellum committed
2088 2089
echo "#define restrict $_restrict" >> $TMPH

michael's avatar
michael committed
2090 2091
if test "$optimize" = "small"; then
  echo "#define always_inline"  >> $TMPH
2092
  echo "#define CONFIG_SMALL 1" >> $TMPH
michael's avatar
michael committed
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 \
lucabe's avatar
lucabe committed
2111
         libswscale \
2112 2113 2114 2115 2116 2117 2118
         tests \
         vhook \
         "
    FILES="\
          Makefile \
          libavformat/Makefile \
          libavcodec/Makefile \
2119
          libpostproc/Makefile \
2120
          libavutil/Makefile \
lucabe's avatar
lucabe committed
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
michael's avatar
michael committed
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

diego's avatar
diego committed
2137
if test "$amr" = "yes" ; then
2138 2139
  echo "#define CONFIG_AMR 1" >> $TMPH
  echo "CONFIG_AMR=yes" >> config.mak
diego's avatar
diego committed
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 "
diego's avatar
diego committed
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

kabi's avatar
kabi committed
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
diego's avatar
diego committed
2166
  echo
kabi's avatar
kabi committed
2167 2168
  echo "AMR NB FIXED POINT NOTICE! Make sure you have downloaded TS26.073 "
  echo "REL-5 version 5.1.0 from "
diego's avatar
diego committed
2169
  echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.073/26073-510.zip"
2170
  echo "and extracted src to libavcodec/amr"
kabi's avatar
kabi committed
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

kabi's avatar
kabi committed
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
nickols_k's avatar
nickols_k committed
2200

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


diego's avatar
diego committed
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
lucabe's avatar
lucabe committed
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