configure 30.1 KB
Newer Older
F
Fabrice Bellard 已提交
1
#!/bin/sh
2
#
F
Fabrice Bellard 已提交
3
# ffmpeg configure script (c) 2000, 2001, 2002 Fabrice Bellard
4
#
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
cat << EOF

Usage: configure [options]
Options: [defaults in brackets after descriptions]

EOF
echo "Standard options:"
echo "  --help                   print this message"
echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
echo "  --mandir=DIR             man documentation in DIR [PREFIX/man]"
echo "  --enable-mp3lame         enable mp3 encoding via libmp3lame [default=no]"
echo "  --enable-vorbis          enable vorbis support via libvorbisenc [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-mingw32         enable mingw32 native/cross windows compile"
echo "  --enable-a52             enable GPL'ed A52 support [default=no]"
echo "  --enable-a52bin          open liba52.so.0 at runtime [default=no]"
echo "  --enable-pp              enable GPL'ed post processing support [default=no]"
echo "  --enable-shared-pp       use libpostproc.so [default=no]"
echo "  --enable-shared          build shared libraries [default=no]"
echo "  --enable-amr_nb          enable amr_nb float audio codec"
echo "  --enable-amr_nb-fixed    use fixed point for amr-nb codec"
30
echo "  --enable-amr_wb          enable amr_wb float audio codec"
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
echo "  --enable-sunmlib         use Sun medialib [default=no]"
echo ""
echo "Advanced options (experts only):"
echo "  --source-path=PATH       path of source code [$source_path]"
echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
echo "  --cc=CC                  use C compiler CC [$cc]"
echo "  --make=MAKE              use specified make [$make]"
echo "  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS [$CFLAGS]"
echo "  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]"
echo "  --extra-libs=ELIBS       add ELIBS [$ELIBS]"
echo "  --cpu=CPU                force cpu to CPU  [$cpu]"
echo "  --tune=PROCESSOR         tune code for a particular CPU (may fails or misperforms on other CPUs)"
echo "  --powerpc-perf-enable    enable performance report on PPC (requires enabling PMC)"
echo "  --disable-mmx            disable mmx 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-dv1394         disable DV1394 grabbing [default=no]"
echo "  --disable-network        disable network support [default=no]"
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 "                           mpegaudio decoding [default=no]"
echo "  --disable-ffserver       disable ffserver build"
echo "  --disable-ffplay         disable ffplay build"
echo "  --disable-risky          disables patent encumbered codecs"
echo "  --enable-small           optimize for size instead of speed"
echo ""
echo "NOTE: The object files are build at the place where configure is launched"
exit 1
fi

68
# set temporary file name
Z
Zdenek Kabelac 已提交
69
if test ! -z "$TMPDIR" ; then
70
    TMPDIR1="${TMPDIR}"
Z
Zdenek Kabelac 已提交
71
elif test ! -z "$TEMPDIR" ; then
72
    TMPDIR1="${TEMPDIR}"
N
Nick Kurshev 已提交
73
else
74
    TMPDIR1="/tmp"
N
Nick Kurshev 已提交
75 76
fi

77 78
TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
79
TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}"
80 81 82
TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"

F
Fabrice Bellard 已提交
83 84
# default parameters
prefix="/usr/local"
F
Fabrice Bellard 已提交
85
mandir=""
F
Fabrice Bellard 已提交
86
bindir=""
87
cross_prefix=""
F
Fabrice Bellard 已提交
88 89
cc="gcc"
ar="ar"
M
Michael Niedermayer 已提交
90
ranlib="ranlib"
91
make="make"
92
strip="strip"
F
Fabrice Bellard 已提交
93
cpu=`uname -m`
94
tune="generic"
95
powerpc_perf="no"
96
mmx="default"
97
altivec="default"
98
mmi="default"
F
Fabrice Bellard 已提交
99
case "$cpu" in
100
  i386|i486|i586|i686|i86pc|BePC)
F
Fabrice Bellard 已提交
101 102
    cpu="x86"
  ;;
103 104
  # armv4l is a subset of armv5tel
  armv4l|armv5tel)
105 106
    cpu="armv4l"
  ;;
107 108 109
  alpha)
    cpu="alpha"
  ;;
110
  "Power Macintosh"|ppc)
111 112
    cpu="powerpc"
  ;;
113 114 115
  mips)
    cpu="mips"
  ;;
116 117 118
  sun4u)
    cpu="sparc64"
  ;;
A
Alex Beregszaszi 已提交
119 120 121
  sh4)
    cpu="sh4"
  ;;
F
Fabrice Bellard 已提交
122
  *)
123
    cpu="unknown"
F
Fabrice Bellard 已提交
124 125 126
  ;;
esac
gprof="no"
F
Fabrice Bellard 已提交
127 128
v4l="yes"
audio_oss="yes"
129
audio_beos="no"
130
dv1394="yes"
F
Fabrice Bellard 已提交
131
network="yes"
132
zlib="yes"
133
mp3lame="no"
134
vorbis="no"
135 136
faad="no"
faadbin="no"
137
faac="no"
138
a52="no"
Z
Zdenek Kabelac 已提交
139
a52bin="no"
140
pp="no"
141
shared_pp="no"
142
mingw32="no"
143
cygwin="no"
144
os2="no"
145
lshared="no"
146 147
optimize="yes"
debug="yes"
148
extralibs="-lm"
149
simpleidct="yes"
150
bigendian="no"
151
emu_fast_int="no"
152
vhook="default"
153 154
dlfcn="no"
dlopen="no"
155
mpegaudio_hp="yes"
156
SHFLAGS=-shared
157
netserver="no"
158
need_inet_aton="no"
159
ffserver="yes"
160
ffplay="yes"
161 162
LDFLAGS=-Wl,--warn-common
FFSLDFLAGS=-Wl,-E
163 164 165 166
LIBPREF="lib"
LIBSUF=".a"
SLIBPREF="lib"
SLIBSUF=".so"
F
Fabrice Bellard 已提交
167
EXESUF=""
M
Michael Niedermayer 已提交
168
risky="yes"
169
amr_nb="no"
170
amr_wb="no"
Z
Zdenek Kabelac 已提交
171
amr_nb_fixed="no"
172
sunmlib="no"
173 174 175 176 177 178 179

# OS specific
targetos=`uname -s`
case $targetos in
BeOS)
prefix="/boot/home/config"
# helps building libavcodec
180
CFLAGS="-DPIC -fomit-frame-pointer"
181
# 3 gcc releases known for BeOS, each with ugly bugs
182
gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
183 184 185 186 187 188 189 190
case "$gcc_version" in
2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
mmx="no"
;;
*20010315*) echo "BeBits gcc"
CFLAGS="$CFLAGS -fno-expensive-optimizations"
;;
esac
191 192 193
SHFLAGS=-nostart
# disable linux things
audio_oss="no"
F
Fabrice Bellard 已提交
194
v4l="no"
195
dv1394="no"
196 197
# enable beos things
audio_beos="yes"
198 199 200 201 202
# 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
203
netserver="yes"
204
need_inet_aton="yes"
205
extralibs="-lnet"
206
fi ;;
207 208 209
SunOS)
v4l="no"
audio_oss="no"
210
dv1394="no"
211 212 213 214 215 216
make="gmake"
LDFLAGS=""
FFSLDFLAGS=""
need_inet_aton="yes"
extralibs="$extralibs -lsocket -lnsl"
;;
217 218 219
FreeBSD)
v4l="no"
audio_oss="yes"
220
dv1394="no"
221
make="gmake"
222
LDFLAGS="$LDFLAGS -export-dynamic"
223
;;
224
BSD/OS)
F
Fabrice Bellard 已提交
225
v4l="no"
F
Fabrice Bellard 已提交
226
audio_oss="yes"
227
dv1394="no"
228 229 230
extralibs="-lpoll -lgnugetopt -lm"
make="gmake"
;;
231
Darwin)
232
cc="cc"
233 234
v4l="no"
audio_oss="no"
235
dv1394="no"
236
ffserver="no"
237
SHFLAGS="-dynamiclib"
238
extralibs=""
239
darwin="yes"
240
strip="strip -x"
241
LDFLAGS="-Wl,-d"
242
FFSLDFLAGS=-Wl,-bind_at_load
243
;;
244
MINGW32*)
F
Fabrice Bellard 已提交
245 246
# Note: the rest of the mingw32 config is done afterwards as mingw32
# can be forced on command line for linux cross compilation
247 248
mingw32="yes"
;;
249 250 251
CYGWIN*)
v4l="no"
audio_oss="yes"
252
dv1394="no"
253 254 255 256 257 258 259
extralibs=""
cygwin="yes"
test -f /usr/include/inttypes.h || \
test -f /usr/local/include/inttypes.h || \
echo "Missing inttypes.h, please copy cygwin_inttypes.h to" \
     "/usr/include/inttypes.h !!!"
;;
260
Linux)
261
LDFLAGS="$LDFLAGS -rdynamic"
262
;;
263 264 265 266 267 268
IRIX*)
ranlib="echo ignoring ranlib"
v4l="no"
audio_oss="no"
make="gmake"
;;
269 270
OS/2)
TMPE=$TMPE".exe"
271 272 273
ar="emxomfar -p64"
ranlib="echo ignoring ranlib"
strip="echo ignoring strip"
274
CFLAGS="-Zomf"
275
LDFLAGS="-Zomf -Zstack 16384 -s"
276 277 278 279 280 281
SHFLAGS=""
FFSLDFLAGS=""
LIBPREF=""
LIBSUF=".lib"
SLIBPREF=""
SLIBSUF=".dll"
F
Fabrice Bellard 已提交
282
EXESUF=".exe"
283 284 285
extralibs=""
v4l="no"
audio_oss="no"
286
dv1394="no"
287 288 289 290
network="no"
ffserver="no"
os2="yes"
;;
291 292
*) ;;
esac
F
Fabrice Bellard 已提交
293

294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314
# From mplayer configure. We need TARGET_OS available
# to the Makefile, so it can distinguish between flavors
# of AltiVec on PowerPC
TARGET_OS=`( uname -s ) 2>&1`
  case "$TARGET_OS" in
  Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU)
    ;;
  IRIX*)
    TARGET_OS=IRIX
    ;;
  HP-UX*)
    TARGET_OS=HP-UX
    ;;
  [cC][yY][gG][wW][iI][nN]*)
    TARGET_OS=CYGWIN
    ;;
  *)
    TARGET_OS="$TARGET_OS-UNKNOWN"
    ;;
  esac

315 316 317
# find source path
# XXX: we assume an absolute path is given when launching configure, 
# except in './configure' case.
318
source_path="`echo $0 | sed -e 's#/configure##'`"
319 320 321 322
source_path_used="yes"
if test -z "$source_path" -o "$source_path" = "." ; then
    source_path=`pwd`
    source_path_used="no"
F
Fabrice Bellard 已提交
323 324 325 326 327 328
fi

for opt do
  case "$opt" in
  --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`
  ;;
F
Fabrice Bellard 已提交
329 330
  --mandir=*) mandir=`echo $opt | cut -d '=' -f 2`
  ;;
331 332 333 334
  --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
  ;;
  --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
  ;;
F
Fabrice Bellard 已提交
335 336
  --cc=*) cc=`echo $opt | cut -d '=' -f 2`
  ;;
337 338
  --make=*) make=`echo $opt | cut -d '=' -f 2`
  ;;
339 340 341 342 343 344
  --extra-cflags=*) CFLAGS="${opt#--extra-cflags=}"
  ;;
  --extra-ldflags=*) LDFLAGS=${opt#--extra-ldflags=}
  ;;
  --extra-libs=*) extralibs=${opt#--extra-libs=}
  ;;
F
Fabrice Bellard 已提交
345 346
  --cpu=*) cpu=`echo $opt | cut -d '=' -f 2`
  ;;
347 348
  --tune=*) tune=`echo $opt | cut -d '=' -f 2`
  ;;
349 350
  --powerpc-perf-enable) powerpc_perf="yes"
  ;;
F
Fabrice Bellard 已提交
351 352
  --disable-mmx) mmx="no"
  ;;
353 354
  --disable-altivec) altivec="no"
  ;;
F
Fabrice Bellard 已提交
355 356
  --enable-gprof) gprof="yes"
  ;;
F
Fabrice Bellard 已提交
357 358 359 360
  --disable-v4l) v4l="no"
  ;;
  --disable-audio-oss) audio_oss="no"
  ;;
361 362
  --disable-audio-beos) audio_beos="no"
  ;;
363 364
  --disable-dv1394) dv1394="no"
  ;;
F
Fabrice Bellard 已提交
365 366
  --disable-network) network="no"
  ;;
367 368
  --disable-zlib) zlib="no"
  ;;
369
  --enable-a52) a52="yes"
370
  ;;
371
  --enable-a52bin) a52bin="yes" ; extralibs="$ldl $extralibs"
Z
Zdenek Kabelac 已提交
372
  ;;
373
  --enable-pp) pp="yes"
374 375 376
  ;;
  --enable-shared-pp) shared_pp="yes"
  ;;
377 378
  --enable-mp3lame) mp3lame="yes"
  ;;
379 380
  --enable-vorbis) vorbis="yes"
  ;;
Z
Zdenek Kabelac 已提交
381 382 383 384
  --enable-faad) faad="yes"
  ;;
  --enable-faadbin) faadbin="yes"
  ;;
385 386
  --enable-faac) faac="yes"
  ;;
387 388
  --disable-vhook) vhook="no"
  ;;
389
  --disable-simple_idct) simpleidct="no"
390
  ;;
391 392
  --enable-mingw32) mingw32="yes"
  ;;
393
  --enable-shared) lshared="yes"
N
Nick Kurshev 已提交
394
  ;;
395 396 397 398
  --disable-debug) debug="no"
  ;;
  --disable-opts) optimize="no"
  ;;
399 400
  --disable-mpegaudio-hp) mpegaudio_hp="no"
  ;;
401 402
  --disable-ffserver) ffserver="no"
  ;;
403 404
  --disable-ffplay) ffplay="no"
  ;;
M
Michael Niedermayer 已提交
405 406
  --disable-risky) risky="no"
  ;;
407
  --enable-small) optimize="small"
408
  ;;
409 410
  --enable-amr_nb) amr_nb="yes"
  ;;
Z
Zdenek Kabelac 已提交
411 412
  --enable-amr_nb-fixed) amr_nb_fixed="yes"
  ;;
413 414
  --enable-amr_wb) amr_wb="yes"
  ;; 
415 416
  --enable-sunmlib) sunmlib="yes"
  ;;
F
Fabrice Bellard 已提交
417 418 419
  esac
done

420 421 422 423 424 425 426 427 428
# compute mmx state
if test $mmx = "default"; then
    if test $cpu = "x86"; then
        mmx="yes"
    else
        mmx="no"
    fi
fi

429
#Darwin CC versions
430
needmdynamicnopic="no"
431
if test $targetos = Darwin; then
432
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
433 434
	CFLAGS="-qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto"
    else
435
	gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
436 437 438 439
	case "$gcc_version" in
	    *2.95*) 
		CFLAGS="-no-cpp-precomp -pipe -fomit-frame-pointer"
		;;
440
	    *3.*)
441
		CFLAGS="-no-cpp-precomp -pipe -fomit-frame-pointer -force_cpusubtype_ALL -Wno-sign-compare"
442 443 444
		if test "$lshared" = no; then
		   needmdynamicnopic="yes"
		fi
445 446
		;;
	    *)
447 448 449 450
		CFLAGS="-no-cpp-precomp -pipe -fomit-frame-pointer"
		if test "$lshared" = no; then
		   needmdynamicnopic="yes"
		fi
451 452 453 454 455
		;;
	esac
    fi
fi

456 457 458 459 460 461 462 463 464
# Can only do AltiVec on PowerPC
if test $altivec = "default"; then
    if test $cpu = "powerpc"; then
        altivec="yes"
    else
        altivec="no"
    fi
fi

465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489
# Add processor-specific flags
TUNECPU="generic"
if test $tune != "generic"; then
    case $tune in
	601|ppc601|PowerPC601)
	    CFLAGS="$CFLAGS -mcpu=601"
	    if test $altivec = "yes"; then
		echo "WARNING: tuning for PPC601 but altivec enabled !";
	    fi
	    TUNECPU=ppc601
	;;
	603*|ppc603*|PowerPC603*)
	    CFLAGS="$CFLAGS -mcpu=603"
	    if test $altivec = "yes"; then
		echo "WARNING: tuning for PPC603 but altivec enabled !";
	    fi
	    TUNECPU=ppc603
	;;
	604*|ppc604*|PowerPC604*)
	    CFLAGS="$CFLAGS -mcpu=604"
	    if test $altivec = "yes"; then
		echo "WARNING: tuning for PPC604 but altivec enabled !";
	    fi
	    TUNECPU=ppc604
	;;
490
	G3|g3|75*|ppc75*|PowerPC75*)
491
	    CFLAGS="$CFLAGS -mcpu=750 -mtune=750 -mpowerpc-gfxopt"
492 493 494 495 496
	    if test $altivec = "yes"; then
		echo "WARNING: tuning for PPC75x but altivec enabled !";
	    fi
	    TUNECPU=ppc750
	;;
497
	G4|g4|745*|ppc745*|PowerPC745*)
498
	    CFLAGS="$CFLAGS -mcpu=7450 -mtune=7450 -mpowerpc-gfxopt"
499 500 501 502 503 504
	    if test $altivec = "no"; then
		echo "WARNING: tuning for PPC745x but altivec disabled !";
	    fi
	    TUNECPU=ppc7450
	;;
	74*|ppc74*|PowerPC74*)
505
	    CFLAGS="$CFLAGS -mcpu=7400 -mtune=7400 -mpowerpc-gfxopt"
506 507 508
	    if test $altivec = "no"; then
		echo "WARNING: tuning for PPC74xx but altivec disabled !";
	    fi
509
	    TUNECPU=ppc7400
510
	;;
511
	G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
512 513 514 515 516 517 518 519 520 521 522 523
	    CFLAGS="$CFLAGS -mcpu=970 -mtune=970 -mpowerpc64 -force_cpusubtype_ALL "
	    if test $altivec = "no"; then
		echo "WARNING: tuning for PPC970 but altivec disabled !";
	    fi
	    TUNECPU=ppc970
	;;
	*)
	echo "WARNING: unknown CPU "$tune", ignored"
	;;
    esac
fi

524
# AltiVec flags: The FSF version of GCC differs from the Apple version 
525 526
if test $cpu = "powerpc"; then
    if test $altivec = "yes"; then
527
        if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
528 529 530 531 532 533 534
            CFLAGS="$CFLAGS -faltivec"
        else
            CFLAGS="$CFLAGS -maltivec -mabi=altivec"
        fi
    fi
fi

535 536 537 538 539 540 541
# See if we have <altivec.h>
cat > $TMPC << EOF
#include <altivec.h>
int main( void ) { return 0; }
EOF

_altivec_h="no"
542
if $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
543 544 545
_altivec_h="yes"
fi

546 547
# See does our compiler support Motorola AltiVec C API
if test $altivec = "yes"; then
548
if test $_altivec_h = "yes"; then
549
cat > $TMPC << EOF
550
#include <altivec.h>
551 552 553 554 555 556
int main(void) {
    vector signed int v1, v2, v3;
    v1 = vec_add(v2,v3);
    return 0;
}
EOF
557 558 559 560 561 562 563 564 565
else
cat > $TMPC << EOF
int main(void) {
    vector signed int v1, v2, v3;
    v1 = vec_add(v2,v3);
    return 0;
}
EOF
fi
566
$cc $CFLAGS -o $TMPE $TMPC 2> /dev/null || altivec="no"
567 568
fi

569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585
# Can only do mmi on mips
if test $mmi = "default"; then
    if test $cpu = "mips"; then
        mmi="yes"
    else
        mmi="no"
    fi
fi

# See does our compiler support mmi
if test $mmi = "yes"; then
cat > $TMPC << EOF
int main(void) {
    __asm__ ("lq \$2, 0(\$2)");
    return 0;
}
EOF
586
$cc -o $TMPE $TMPC 2> /dev/null || mmi="no"
587 588
fi

589 590 591
if test "$mingw32" = "yes" ; then
    v4l="no"
    audio_oss="no"
592
    dv1394="no"
F
Fabrice Bellard 已提交
593
    ffserver="no"
594
    network="no"
F
Fabrice Bellard 已提交
595 596 597 598 599 600 601
    LIBPREF=""
    LIBSUF=".lib"
    SLIBPREF=""
    SLIBSUF=".dll"
    EXESUF=".exe"
    prefix="/c/Program Files/FFmpeg"
    bindir="$prefix"
602 603
fi

604 605
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
M
Michael Niedermayer 已提交
606
ranlib="${cross_prefix}${ranlib}"
607 608
strip="${cross_prefix}${strip}"

F
Fabrice Bellard 已提交
609 610
if test -z "$cross_prefix" ; then

611 612 613 614 615 616 617 618 619 620
# ---
# big/little endian test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
	volatile uint32_t i=0x01234567;
	return (*((uint8_t*)(&i))) == 0x67;
}
EOF

621 622
if $cc -o $TMPE $TMPC 2>/dev/null ; then
$TMPE && bigendian="yes"
623 624 625 626
else
echo big/little test failed
fi

F
Fabrice Bellard 已提交
627 628 629 630 631 632 633 634 635
else

# if cross compiling, cannot launch a program, so make a static guess
if test "$cpu" = "powerpc" -o "$cpu" = "mips" ; then
    bigendian="yes"
fi

fi

636 637 638 639 640 641 642 643 644 645 646 647
# ---
# *int_fast* test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
	volatile uint_fast64_t i=0x01234567;
	return 0;
}
EOF

$cc -o $TMPE $TMPC 2>/dev/null || emu_fast_int="yes"

N
Nick Kurshev 已提交
648 649 650 651 652 653 654 655 656 657
# ---
# check availability of some header files

cat > $TMPC << EOF
#include <malloc.h>
int main( void ) { return 0; }
EOF

_memalign=no
_malloc_h=no
658
if $cc -o $TMPE $TMPC 2> /dev/null ; then
N
Nick Kurshev 已提交
659 660 661 662 663 664 665 666 667 668 669
_malloc_h=yes
_memalign=yes
# check for memalign - atmos
cat > $TMPC << EOF
#include <malloc.h>
int main ( void ) {
char *string = NULL;
string = memalign(64, sizeof(char));
return 0;
}
EOF
670
$cc -o $TMPE $TMPC 2> /dev/null || _memalign=no
N
Nick Kurshev 已提交
671 672
fi

673 674 675 676 677 678 679 680 681 682
cat > $TMPC << EOF
#include <time.h>
int main( void ) { localtime_r(NULL, NULL); }
EOF

localtime_r=no
if $cc -o $TMPE $TMPC 2> /dev/null ; then
  localtime_r=yes
fi

683 684 685 686 687 688 689 690 691 692 693
if test "$zlib" = "yes"; then
# check for zlib - mmu_man
cat > $TMPC << EOF
#include <zlib.h>
int main ( void ) {
if (zlibVersion() != ZLIB_VERSION)
   puts("zlib version differs !!!");
   return 1;
return 0;
}
EOF
694 695
$cc -o $TMPE $TMPC -lz 2> /dev/null || zlib="no"
# $TMPE 2> /dev/null > /dev/null || zlib="no"
696 697 698 699 700 701
# XXX: more tests needed - runtime test
fi
if test "$zlib" = "yes"; then
extralibs="$extralibs -lz"
fi

702 703 704 705 706 707 708 709
# test for lrintf in math.h
cat > $TMPC << EOF
#define _ISOC9X_SOURCE  1
#include <math.h>
int main( void ) { return (lrintf(3.999f) > 0)?0:1; }
EOF

have_lrintf="no"
710
if $cc $extralibs -o $TMPE $TMPC 2> /dev/null ; then
711
  have_lrintf="yes"
712
  $TMPE 2> /dev/null > /dev/null || have_lrintf="no"
713 714
fi

F
Falk Hüffner 已提交
715 716 717 718 719 720 721 722 723
_restrict=
for restrict_keyword in restrict __restrict__ __restrict; do
  echo "void foo(char * $restrict_keyword p);" > $TMPC
  if $cc -c -o $TMPO $TMPC 2> /dev/null; then
    _restrict=$restrict_keyword
    break;
  fi
done

724 725 726 727 728 729 730 731 732 733 734 735 736 737 738
# test gcc version to see if vector builtins can be used
# currently only used on i386 for MMX builtins
cat > $TMPC << EOF
int main(void) { 
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
return 0;
#else
#error no vector builtins
#endif
}
EOF

builtin_vector=no
if $cc -o $TMPO $TMPC 2> /dev/null ; then
  builtin_vector=yes
739 740 741 742 743 744 745 746 747 748 749
fi

# dlopen/dlfcn.h probing

cat > $TMPC << EOF
#include <dlfcn.h>
int main( void ) { return (int) dlopen("foo", 0); }
EOF

ldl=-ldl

750
if $cc -o $TMPE $TMPC -ldl > /dev/null 2>&1 ; then
751 752 753 754
dlfcn=yes
dlopen=yes
fi

755
if $cc -o $TMPE $TMPC > /dev/null 2>&1 ; then
756 757 758 759 760 761 762 763 764
dlfcn=yes
dlopen=yes
ldl=""
fi

cat > $TMPC << EOF
int main( void ) { return (int) dlopen("foo", 0); }
EOF

765
if $cc -o $TMPE $TMPC -ldl > /dev/null 2>&1  ; then
766 767 768
dlopen=yes
fi

769
if $cc -o $TMPE $TMPC > /dev/null 2>&1  ; then
770 771 772 773 774 775 776 777
dlopen=yes
ldl=""
fi

if test "$vhook" = "default" ; then
  vhook="$dlopen"
fi

778 779 780
##########################################
# imlib probe

781 782 783 784 785 786 787
cat > $TMPC << EOF
#include <X11/Xlib.h>
#include <Imlib2.h>
int main( void ) { return (int) imlib_load_font("foo"); }
EOF

imlib2=no
788
if $cc -o $TMPE $TMPC -lImlib2 > /dev/null 2>&1  ; then
789
imlib2=yes
790 791
fi

792 793 794
##########################################
# freetype probe

795 796 797 798 799 800
cat > $TMPC << EOF
#include <ft2build.h>
int main( void ) { return (int) FT_Init_FreeType(0); }
EOF

freetype2=no
801
if test "x$targetos" != "xBeOS" && test "$os2" != "yes"; then
802
  if test "`which freetype-config`" != ""; then
803
    if $cc -o $TMPE $TMPC `freetype-config --cflags` `freetype-config --libs`  > /dev/null 2>&1 ; then
804
      freetype2=yes
805
    fi
806
  fi
807 808
fi

809 810 811 812 813
##########################################
# SDL probe

cat > $TMPC << EOF
#include <SDL.h>
814
#undef main /* We don't want SDL to override our main() */
815 816 817 818 819
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
EOF

sdl_too_old=no
sdl=no
820
if $cc -o $TMPE `sdl-config --cflags` $TMPC `sdl-config --libs`  > /dev/null 2>&1  ; then
821 822 823 824 825 826 827 828
_sdlversion=`sdl-config --version | sed 's/[^0-9]//g'`
if test "$_sdlversion" -lt 121 ; then
sdl_too_old=yes
else
sdl=yes
fi
fi

829
case "`$cc -v 2>&1 | grep version`" in
830 831 832 833 834 835 836
    *gcc*)
	CFLAGS="-Wall $CFLAGS"
	;;
    *)
	;;
esac

F
Fabrice Bellard 已提交
837 838 839 840
if test "$sdl" = "no" ; then
   ffplay=no
fi

841 842 843 844 845
if test "$debug" = "yes"; then
	CFLAGS="$CFLAGS -g"
fi

if test "$optimize" = "small"; then
846
#  CFLAGS=${CFLAGS//-O3/-Os}
847 848 849
  CFLAGS="$CFLAGS -Os"
fi

850
if test "$optimize" = "yes"; then
851
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
852 853 854
	CFLAGS="$CFLAGS -O5"
	LDFLAGS="$LDFLAGS -O5"
    else
855
	CFLAGS="$CFLAGS -O3"
856
    fi
857 858
fi

F
Fabrice Bellard 已提交
859 860 861 862
if test x"$bindir" = x""; then
bindir="${prefix}/bin"
fi

F
Fabrice Bellard 已提交
863 864 865 866
if test x"$mandir" = x""; then
mandir="${prefix}/man"
fi

F
Fabrice Bellard 已提交
867
echo "Install prefix   $prefix"
868
echo "Source path      $source_path"
F
Fabrice Bellard 已提交
869
echo "C compiler       $cc"
870
echo "make             $make"
871
echo "CPU              $cpu ($tune)"
872
echo "Big Endian       $bigendian"
873
echo "broken inttypes.h $emu_fast_int"
F
Fabrice Bellard 已提交
874
if test $cpu = "x86"; then
F
Fabrice Bellard 已提交
875
echo "MMX enabled      $mmx"
876
echo "Vector Builtins  $builtin_vector"
F
Fabrice Bellard 已提交
877 878
fi
if test $cpu = "mips"; then
879
echo "MMI enabled      $mmi"
F
Fabrice Bellard 已提交
880 881
fi
if test $cpu = "powerpc"; then
882
echo "AltiVec enabled  $altivec"
F
Fabrice Bellard 已提交
883
fi
F
Fabrice Bellard 已提交
884
echo "gprof enabled    $gprof"
885
echo "zlib enabled     $zlib"
886
echo "mp3lame enabled  $mp3lame"
887
echo "vorbis enabled   $vorbis"
Z
Zdenek Kabelac 已提交
888 889
echo "faad enabled     $faad"
echo "faadbin enabled  $faadbin"
890
echo "faac enabled     $faac"
F
Fabrice Bellard 已提交
891
echo "a52 support      $a52"
Z
Zdenek Kabelac 已提交
892
echo "a52 dlopened     $a52bin"
893
echo "pp support       $pp"
894 895
echo "debug symbols    $debug"
echo "optimize         $optimize"
896
echo "shared pp        $shared_pp"
897
echo "Video hooking    $vhook"
898 899 900 901
echo "SDL support      $sdl"
if test $sdl_too_old = "yes"; then
echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support"
fi
M
Michael Niedermayer 已提交
902
echo "risky / patent encumbered codecs $risky"
903 904

if test "$vhook" = "yes" ; then
905
echo "Imlib2 support   $imlib2"
906
echo "freetype support $freetype2"
907
fi
908
echo "Sun medialib support"  $sunmlib
Z
Zdenek Kabelac 已提交
909 910
echo "AMR-NB float support"  $amr_nb
echo "AMR-NB fixed support"  $amr_nb_fixed
911
echo "AMR-WB float support"  $amr_wb
F
Fabrice Bellard 已提交
912

913
echo "Creating config.mak and config.h"
F
Fabrice Bellard 已提交
914

915
echo "# Automatically generated by configure - do not modify" > config.mak
916
echo "/* Automatically generated by configure - do not modify */" > $TMPH
F
Fabrice Bellard 已提交
917

918
echo "prefix=$prefix" >> config.mak
F
Fabrice Bellard 已提交
919
echo "bindir=$bindir" >> config.mak
F
Fabrice Bellard 已提交
920
echo "mandir=$mandir" >> config.mak
921
echo "MAKE=$make" >> config.mak
922 923
echo "CC=$cc" >> config.mak
echo "AR=$ar" >> config.mak
M
Michael Niedermayer 已提交
924
echo "RANLIB=$ranlib" >> config.mak
925
echo "STRIP=$strip" >> config.mak
926 927 928 929 930 931 932 933

# SHCFLAGS is a copy of CFLAGS without -mdynamic-no-pic.  Used when building 
# shared modules on OS/X (vhook/Makefile).
SHCFLAGS=$CFLAGS
if test "$needmdynamicnopic" = yes; then
   CFLAGS="$CFLAGS -mdynamic-no-pic"
fi

N
Nick Kurshev 已提交
934
echo "OPTFLAGS=$CFLAGS" >> config.mak
935
echo "SHCFLAGS=$SHCFLAGS">>config.mak
936
echo "LDFLAGS=$LDFLAGS" >> config.mak
937
echo "FFSLDFLAGS=$FFSLDFLAGS" >> config.mak
938
echo "SHFLAGS=$SHFLAGS" >> config.mak
939 940 941 942
echo "LIBPREF=$LIBPREF" >> config.mak
echo "LIBSUF=$LIBSUF" >> config.mak
echo "SLIBPREF=$SLIBPREF" >> config.mak
echo "SLIBSUF=$SLIBSUF" >> config.mak
F
Fabrice Bellard 已提交
943
echo "EXESUF=$EXESUF" >> config.mak
944
echo "TARGET_OS=$TARGET_OS" >> config.mak
Z
Zdenek Kabelac 已提交
945
if test "$cpu" = "x86" ; then
946
  echo "TARGET_ARCH_X86=yes" >> config.mak
947
  echo "#define ARCH_X86 1" >> $TMPH
948
elif test "$cpu" = "armv4l" ; then
949
  echo "TARGET_ARCH_ARMV4L=yes" >> config.mak
950
  echo "#define ARCH_ARMV4L 1" >> $TMPH
951
elif test "$cpu" = "alpha" ; then
952
  echo "TARGET_ARCH_ALPHA=yes" >> config.mak
953
  echo "#define ARCH_ALPHA 1" >> $TMPH
954 955 956
elif test "$cpu" = "sparc64" ; then
  echo "TARGET_ARCH_SPARC64=yes" >> config.mak
  echo "#define ARCH_SPARC64 1" >> $TMPH
957 958 959
elif test "$cpu" = "powerpc" ; then
  echo "TARGET_ARCH_POWERPC=yes" >> config.mak
  echo "#define ARCH_POWERPC 1" >> $TMPH
960 961 962
  if test "$powerpc_perf" = "yes"; then
    echo "#define POWERPC_PERFORMANCE_REPORT 1" >> $TMPH
  fi
963 964 965
elif test "$cpu" = "mips" ; then
  echo "TARGET_ARCH_MIPS=yes" >> config.mak
  echo "#define ARCH_MIPS 1" >> $TMPH
A
Alex Beregszaszi 已提交
966 967 968 969
elif test "$cpu" = "sh4" ; then
  echo "TARGET_ARCH_SH4=yes" >> config.mak
  echo "#define ARCH_SH4 1" >> $TMPH
fi
970
echo "#define TUNECPU $TUNECPU" >> $TMPH
971 972 973
if test "$bigendian" = "yes" ; then
  echo "WORDS_BIGENDIAN=yes" >> config.mak
  echo "#define WORDS_BIGENDIAN 1" >> $TMPH
974
fi
975
if test "$emu_fast_int" = "yes" ; then
976
  echo "#define EMULATE_FAST_INT 1" >> $TMPH
977
fi
Z
Zdenek Kabelac 已提交
978
if test "$mmx" = "yes" ; then
979
  echo "TARGET_MMX=yes" >> config.mak
980
  echo "#define HAVE_MMX 1" >> $TMPH
M
Michael Niedermayer 已提交
981
  echo "#define __CPU__ 586" >> $TMPH
F
Fabrice Bellard 已提交
982
fi
983 984 985 986
if test "$builtin_vector" = "yes" ; then
  echo "TARGET_BUILTIN_VECTOR=yes" >> config.mak
  echo "#define HAVE_BUILTIN_VECTOR 1" >> $TMPH
fi
987 988 989 990
if test "$mmi" = "yes" ; then
  echo "TARGET_MMI=yes" >> config.mak
  echo "#define HAVE_MMI 1" >> $TMPH
fi
991 992 993
if test "$altivec" = "yes" ; then
  echo "TARGET_ALTIVEC=yes" >> config.mak
  echo "#define HAVE_ALTIVEC 1" >> $TMPH
994 995
  echo "// Enable the next line to use the reference C code instead of AltiVec" >> $TMPH
  echo "// #define ALTIVEC_USE_REFERENCE_C_CODE 1" >> $TMPH
996 997 998
  if test "$_altivec_h" = "yes" ; then
    echo "#define HAVE_ALTIVEC_H 1" >> $TMPH
  else
A
1l  
Alex Beregszaszi 已提交
999
    echo "#undef HAVE_ALTIVEC_H" >> $TMPH
1000
  fi
1001
fi
Z
Zdenek Kabelac 已提交
1002
if test "$gprof" = "yes" ; then
1003
  echo "TARGET_GPROF=yes" >> config.mak
1004
  echo "#define HAVE_GPROF 1" >> $TMPH
F
Fabrice Bellard 已提交
1005
fi
1006 1007 1008
if test "$localtime_r" = "yes" ; then
  echo "#define HAVE_LOCALTIME_R 1" >> $TMPH
fi
1009 1010 1011
if test "$imlib2" = "yes" ; then
  echo "HAVE_IMLIB2=yes" >> config.mak
fi
1012 1013 1014
if test "$freetype2" = "yes" ; then
  echo "HAVE_FREETYPE2=yes" >> config.mak
fi
1015 1016 1017 1018 1019
if test "$sunmlib" = "yes" ; then
  echo "HAVE_MLIB=yes" >> config.mak
  echo "#define HAVE_MLIB 1" >> $TMPH
  extralibs="$extralibs -lmlib"
fi
1020 1021 1022 1023 1024
if test "$sdl" = "yes" ; then
  echo "CONFIG_SDL=yes" >> config.mak
  echo "SDL_LIBS=`sdl-config --libs`" >> config.mak
  echo "SDL_CFLAGS=`sdl-config --cflags`" >> config.mak
fi
1025 1026 1027
if test "$have_lrintf" = "yes" ; then
  echo "#define HAVE_LRINTF 1" >> $TMPH
fi
1028 1029 1030
if test "$vhook" = "yes" ; then
  echo "BUILD_VHOOK=yes" >> config.mak
  echo "#define HAVE_VHOOK 1" >> $TMPH
1031
  extralibs="$extralibs $ldl"
1032
fi
Z
Zdenek Kabelac 已提交
1033
if test "$lshared" = "yes" ; then
N
Nick Kurshev 已提交
1034
  echo "BUILD_SHARED=yes" >> config.mak
F
Fabrice Bellard 已提交
1035
  echo "PIC=-fPIC" >> config.mak
N
Nick Kurshev 已提交
1036
fi
1037
echo "EXTRALIBS=$extralibs" >> config.mak
1038 1039 1040
version=`grep '#define FFMPEG_VERSION ' $source_path/libavcodec/avcodec.h |
 cut -d '"' -f 2`
echo "VERSION=$version" >>config.mak
1041
# if you do not want to use encoders, disable that.
1042
echo "#define CONFIG_ENCODERS 1" >> $TMPH
1043 1044 1045
echo "CONFIG_ENCODERS=yes" >> config.mak

# if you do not want to use decoders, disable that.
1046
echo "#define CONFIG_DECODERS 1" >> $TMPH
1047 1048
echo "CONFIG_DECODERS=yes" >> config.mak

F
Fabrice Bellard 已提交
1049 1050 1051 1052
# AC3
if test "$a52" = "yes" ; then
  echo "#define CONFIG_AC3 1" >> $TMPH
  echo "CONFIG_AC3=yes" >> config.mak
1053

F
Fabrice Bellard 已提交
1054 1055 1056 1057 1058 1059
  if test "$a52bin" = "yes" ; then
    echo "#define CONFIG_A52BIN 1" >> $TMPH
    echo "CONFIG_A52BIN=yes" >> config.mak
  fi
fi

1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070
# PP
if test "$pp" = "yes" ; then
  echo "#define CONFIG_PP 1" >> $TMPH
  echo "CONFIG_PP=yes" >> config.mak

  if test "$shared_pp" = "yes" ; then
    echo "#define SHARED_PP 1" >> $TMPH
    echo "SHARED_PP=yes" >> config.mak
  fi
fi

1071 1072 1073 1074 1075
# mpeg audio high precision mode
if test "$mpegaudio_hp" = "yes" ; then
  echo "#define CONFIG_MPEGAUDIO_HP 1" >> $TMPH
fi

F
Fabrice Bellard 已提交
1076 1077 1078 1079 1080
if test "$v4l" = "yes" ; then
  echo "#define CONFIG_VIDEO4LINUX 1" >> $TMPH
  echo "CONFIG_VIDEO4LINUX=yes" >> config.mak
fi

1081 1082 1083 1084 1085
if test "$dv1394" = "yes" ; then
  echo "#define CONFIG_DV1394 1" >> $TMPH
  echo "CONFIG_DV1394=yes" >> config.mak
fi

1086 1087 1088 1089 1090 1091 1092 1093
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 已提交
1094 1095 1096
if test "$audio_oss" = "yes" ; then
  echo "#define CONFIG_AUDIO_OSS 1" >> $TMPH
  echo "CONFIG_AUDIO_OSS=yes" >> config.mak
Z
Zdenek Kabelac 已提交
1097 1098
fi

1099 1100 1101 1102 1103
if test "$audio_beos" = "yes" ; then
  echo "#define CONFIG_AUDIO_BEOS 1" >> $TMPH
  echo "CONFIG_AUDIO_BEOS=yes" >> config.mak
fi

F
Fabrice Bellard 已提交
1104 1105 1106
if test "$network" = "yes" ; then
  echo "#define CONFIG_NETWORK 1" >> $TMPH
  echo "CONFIG_NETWORK=yes" >> config.mak
1107
fi
1108

1109 1110 1111 1112 1113
if test "$zlib" = "yes" ; then
  echo "#define CONFIG_ZLIB 1" >> $TMPH
  echo "CONFIG_ZLIB=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1114
if test "$mp3lame" = "yes" ; then
1115
  echo "#define CONFIG_MP3LAME 1" >> $TMPH
1116 1117 1118
  echo "CONFIG_MP3LAME=yes" >> config.mak
fi

1119 1120 1121 1122 1123
if test "$vorbis" = "yes" ; then
  echo "#define CONFIG_VORBIS 1" >> $TMPH
  echo "CONFIG_VORBIS=yes" >> config.mak
fi

1124 1125 1126 1127 1128 1129 1130
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 已提交
1131
  echo "CONFIG_FAADBIN=yes" >> config.mak
1132 1133
fi

1134 1135 1136 1137 1138
if test "$faac" = "yes" ; then
  echo "#define CONFIG_FAAC 1" >> $TMPH
  echo "CONFIG_FAAC=yes" >> config.mak
fi

1139 1140 1141
if test "$mingw32" = "yes" ; then
  echo "#define CONFIG_WIN32 1" >> $TMPH
  echo "CONFIG_WIN32=yes" >> config.mak
1142
  echo "#ifndef __MINGW32__" >> $TMPH
1143
  echo "#define __MINGW32__ 1" >> $TMPH
1144
  echo "#endif" >> $TMPH
1145 1146
fi

1147 1148 1149 1150 1151
if test "$os2" = "yes" ; then
  echo "#define CONFIG_OS2 1" >> $TMPH
  echo "CONFIG_OS2=yes" >> config.mak
fi

1152 1153 1154 1155
if test "$TARGET_OS" = "SunOS" ; then
  echo "#define CONFIG_SUNOS 1" >> $TMPH
fi

1156 1157 1158 1159 1160
if test "$darwin" = "yes"; then
  echo "#define CONFIG_DARWIN 1"  >> $TMPH
  echo "CONFIG_DARWIN=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1161
if test "$_malloc_h" = "yes" ; then
1162
  echo "#define HAVE_MALLOC_H 1" >> $TMPH
N
Nick Kurshev 已提交
1163
else
1164
  echo "#undef  HAVE_MALLOC_H" >> $TMPH
N
Nick Kurshev 已提交
1165 1166
fi

Z
Zdenek Kabelac 已提交
1167
if test "$_memalign" = "yes" ; then
1168 1169 1170 1171 1172
  echo "#define HAVE_MEMALIGN 1" >> $TMPH
else
  echo "#undef  HAVE_MEMALIGN" >> $TMPH
fi

1173 1174 1175 1176 1177
if test "$netserver" = "yes" ; then
  echo "#define CONFIG_BEOS_NETSERVER 1" >> $TMPH
  echo "CONFIG_BEOS_NETSERVER=yes" >> config.mak
fi

1178 1179 1180 1181
if test "$need_inet_aton" = "yes" ; then
  echo "NEED_INET_ATON=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1182
if test "$simpleidct" = "yes" ; then
1183 1184 1185
  echo "#define SIMPLE_IDCT 1" >> $TMPH
fi

1186 1187 1188 1189 1190
if test "$ffserver" = "yes" ; then
  echo "#define CONFIG_FFSERVER 1" >> $TMPH
  echo "CONFIG_FFSERVER=yes" >> config.mak
fi

1191 1192 1193 1194
if test "$ffplay" = "yes" ; then
  echo "CONFIG_FFPLAY=yes" >> config.mak
fi

M
Michael Niedermayer 已提交
1195 1196 1197 1198 1199
if test "$risky" = "yes" ; then
  echo "#define CONFIG_RISKY 1" >> $TMPH
  echo "CONFIG_RISKY=yes" >> config.mak
fi

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

1202 1203
# build tree in object directory if source path is different from current one
if test "$source_path_used" = "yes" ; then
F
Fabrice Bellard 已提交
1204
    DIRS="libavformat libavcodec libavcodec/alpha libavcodec/armv4l libavcodec/i386 \
1205 1206
          libavcodec/ppc libavcodec/liba52 libavcodec/mlib libavcodec/libpostproc tests vhook"
    FILES="Makefile libavformat/Makefile libavcodec/Makefile libavcodec/libpostproc/Makefile tests/Makefile vhook/Makefile"
1207 1208 1209 1210 1211 1212 1213 1214 1215
    for dir in $DIRS ; do
            mkdir -p $dir
    done
    for f in $FILES ; do
        ln -sf $source_path/$f $f
    done
fi
echo "SRC_PATH=$source_path" >> config.mak

1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226
if test "$amr_wb" = "yes" ; then
  echo "#define AMR_WB 1" >> $TMPH
  echo "AMR_WB=yes" >> config.mak
  echo
  echo "AMR WB FLOAT NOTICE ! Make sure you have downloaded TS26.204"
  echo "V5.1.0 from "
  echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip"
  echo "and extracted the source to libavcodec/amrwb_float"
  echo
fi

1227 1228 1229 1230
if test "$amr_nb" = "yes" ; then
  echo "#define AMR_NB 1" >> $TMPH
  echo "AMR_NB=yes" >> config.mak
  echo
Z
Zdenek Kabelac 已提交
1231 1232 1233 1234 1235
if test "$amr_nb_fixed" = "yes" ; then
  echo "AMR_NB_FIXED=yes" >> config.mak
  echo "#define AMR_NB_FIXED 1" >> $TMPH
  echo "AMR NB FIXED POINT NOTICE! Make sure you have downloaded TS26.073 "
  echo "REL-5 version 5.1.0 from "
1236 1237
  echo "http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26073-510.zip"
  echo "and extracted src to libavcodec/amr"
Z
Zdenek Kabelac 已提交
1238 1239 1240 1241 1242 1243 1244 1245
  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"
  echo
else
  echo "AMR NB FLOAT NOTICE ! Make sure you have downloaded TS26.104"
  echo "REL-5 V5.1.0 from "
  echo "http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26104-510.zip"
  echo "and extracted the source to libavcodec/amr_float"
1246 1247 1248
  echo
fi

Z
Zdenek Kabelac 已提交
1249 1250
fi

Z
Zdenek Kabelac 已提交
1251
diff $TMPH config.h >/dev/null 2>&1
1252 1253
if test $? -ne 0 ; then
	mv -f $TMPH config.h
N
Nick Kurshev 已提交
1254
else
1255
	echo "config.h is unchanged"
N
Nick Kurshev 已提交
1256 1257
fi

1258
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH