configure 48.9 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

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]"
16
echo "  --libdir=DIR             install libs in DIR [PREFIX/lib]"
D
Diego Biurrun 已提交
17 18 19 20 21 22 23 24 25 26
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-theora          enable Theora support via libtheora [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]"
27
echo "  --enable-x264            enable H.264 encoding via x264 [default=no]"
D
Diego Biurrun 已提交
28 29
echo "  --enable-mingw32         enable MinGW native/cross Windows compile"
echo "  --enable-a52             enable GPLed A52 support [default=no]"
30
echo "  --enable-a52bin          open liba52.so.0 at runtime [default=no]"
D
Diego Biurrun 已提交
31 32
echo "  --enable-dts             enable GPLed DTS support [default=no]"
echo "  --enable-pp              enable GPLed postprocessing support [default=no]"
33 34 35 36
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"
37
echo "  --enable-amr_wb          enable amr_wb float audio codec"
D
Diego Biurrun 已提交
38
echo "  --enable-amr_if2         enable amr_wb IF2 audio codec"
39
echo "  --enable-sunmlib         use Sun medialib [default=no]"
40
echo "  --enable-pthreads        use pthreads [default=no]"
D
Diego Biurrun 已提交
41 42 43 44
echo "  --enable-dc1394          enable IIDC-1394 grabbing using libdc1394"
echo "                           and libraw1394 [default=no]"
echo "  --enable-gpl             allow use of GPL code, the resulting libav*"
echo "                           and ffmpeg will be under GPL [default=no]"
45 46
echo ""
echo "Advanced options (experts only):"
D
Diego Biurrun 已提交
47 48
echo "  --source-path=PATH       path to source code [$source_path]"
echo "  --cross-prefix=PREFIX    use PREFIX for compilation tools [$cross_prefix]"
49 50 51 52 53
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]"
54
echo "  --build-suffix=SUFFIX    suffix for application specific build []"
55
echo "  --cpu=CPU                force cpu to CPU  [$cpu]"
D
Diego Biurrun 已提交
56 57 58 59 60
echo "  --tune=CPU               tune code for a particular CPU"
echo "                           (may fail or perform badly on other CPUs)"
echo "  --powerpc-perf-enable    enable performance report on PPC"
echo "                           (requires enabling PMC)"
echo "  --disable-mmx            disable MMX usage"
61
echo "  --disable-iwmmxt         disable iwmmxt usage"
62 63 64 65
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]"
66
echo "  --disable-bktr           disable bktr video grabbing [default=no]"
67 68 69 70 71 72 73 74 75
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)"
D
Diego Biurrun 已提交
76
echo "                           MPEG audio decoding [default=no]"
77 78 79
echo "  --disable-ffserver       disable ffserver build"
echo "  --disable-ffplay         disable ffplay build"
echo "  --enable-small           optimize for size instead of speed"
80
echo "  --enable-memalign-hack   emulate memalign, interferes with memory debuggers"
81
echo "  --disable-strip          disable stripping of executables and shared libraries"
82 83 84 85
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"
86
echo "  --disable-encoders       disables all encoders"
87
echo "  --disable-decoders       disables all decoders"
88 89
echo "  --disable-muxers         disables all muxers"
echo "  --disable-demuxers       disables all demuxers"
90
echo ""
D
Diego Biurrun 已提交
91
echo "NOTE: Object files are built at the place where configure is launched."
92 93 94
exit 1
fi

95
# set temporary file name
Z
Zdenek Kabelac 已提交
96
if test ! -z "$TMPDIR" ; then
97
    TMPDIR1="${TMPDIR}"
Z
Zdenek Kabelac 已提交
98
elif test ! -z "$TEMPDIR" ; then
99
    TMPDIR1="${TEMPDIR}"
N
Nick Kurshev 已提交
100
else
101
    TMPDIR1="/tmp"
N
Nick Kurshev 已提交
102 103
fi

104 105
TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
106
TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}"
107 108 109
TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"

F
Fabrice Bellard 已提交
110 111
# default parameters
prefix="/usr/local"
112
libdir=""
F
Fabrice Bellard 已提交
113
mandir=""
F
Fabrice Bellard 已提交
114
bindir=""
115
cross_prefix=""
F
Fabrice Bellard 已提交
116 117
cc="gcc"
ar="ar"
M
Michael Niedermayer 已提交
118
ranlib="ranlib"
119
make="make"
120
strip="strip"
F
Fabrice Bellard 已提交
121
cpu=`uname -m`
122
tune="generic"
123
powerpc_perf="no"
124
mmx="default"
125
iwmmxt="default"
126
altivec="default"
127
mmi="default"
F
Fabrice Bellard 已提交
128
case "$cpu" in
129
  i386|i486|i586|i686|i86pc|BePC)
F
Fabrice Bellard 已提交
130 131
    cpu="x86"
  ;;
132 133 134 135 136 137 138
  x86_64|amd64)
    cpu="x86"
    canon_arch="`cc -dumpmachine | sed -e 's,\([^-]*\)-.*,\1,'`"
    if [ x"$canon_arch" = x"x86_64" -o x"$canon_arch" = x"amd64" ]; then
      if [ -z "`echo $CFLAGS | grep -- -m32`"  ]; then
        cpu="x86_64"
      fi
139 140
    fi
  ;;
141 142
  # armv4l is a subset of armv5tel
  armv4l|armv5tel)
143 144
    cpu="armv4l"
  ;;
145 146 147
  alpha)
    cpu="alpha"
  ;;
A
Alex Beregszaszi 已提交
148
  "Power Macintosh"|ppc|powerpc)
149 150
    cpu="powerpc"
  ;;
151
  mips|mipsel)
152 153
    cpu="mips"
  ;;
154
  sun4u|sparc64)
155 156
    cpu="sparc64"
  ;;
157 158 159
  sparc)
    cpu="sparc"
  ;;
A
Alex Beregszaszi 已提交
160 161 162
  sh4)
    cpu="sh4"
  ;;
163 164 165 166 167 168 169 170 171 172 173 174
  parisc|parisc64)
    cpu="parisc"
  ;;
  s390|s390x)
    cpu="s390"
  ;;
  m68k)
    cpu="m68k"
  ;;
  ia64)
    cpu="ia64"
  ;;
F
Fabrice Bellard 已提交
175
  *)
176
    cpu="unknown"
F
Fabrice Bellard 已提交
177 178 179
  ;;
esac
gprof="no"
F
Fabrice Bellard 已提交
180
v4l="yes"
181
bktr="no"
F
Fabrice Bellard 已提交
182
audio_oss="yes"
183
audio_beos="no"
184
dv1394="yes"
185
dc1394="no"
F
Fabrice Bellard 已提交
186
network="yes"
187
zlib="yes"
188
libgsm="no"
189
mp3lame="no"
190
libogg="no"
191
vorbis="no"
N
Nilesh Bansal 已提交
192
theora="no"
193 194
faad="no"
faadbin="no"
195
faac="no"
196
xvid="no"
197
x264="no"
198
a52="no"
Z
Zdenek Kabelac 已提交
199
a52bin="no"
200
dts="no"
201
pp="no"
202
shared_pp="no"
203
mingw32="no"
204
cygwin="no"
205
os2="no"
206
lshared="no"
207 208
optimize="yes"
debug="yes"
209
dostrip="yes"
210
installstrip="-s"
211
extralibs="-lm"
212
simpleidct="yes"
213
bigendian="no"
214
inttypes="yes"
215
emu_fast_int="no"
216
vhook="default"
217 218
dlfcn="no"
dlopen="no"
219
mpegaudio_hp="yes"
L
Luca Barbato 已提交
220
SHFLAGS='-shared -Wl,-soname,$@.$(LIBVERSION)'
221
netserver="no"
222
need_inet_aton="no"
223
ffserver="yes"
224
ffplay="yes"
225
LIBOBJFLAGS=""
226 227
LDFLAGS=-Wl,--warn-common
FFSLDFLAGS=-Wl,-E
228
LDCONFIG="ldconfig"
229 230 231 232
LIBPREF="lib"
LIBSUF=".a"
SLIBPREF="lib"
SLIBSUF=".so"
F
Fabrice Bellard 已提交
233
EXESUF=""
234
BUILDSUF=""
235
amr_nb="no"
236
amr_wb="no"
Z
Zdenek Kabelac 已提交
237
amr_nb_fixed="no"
238
amr_if2="no"
239
sunmlib="no"
240
pthreads="no"
241
gpl="no"
242
memalignhack="no"
243 244
muxers="yes"
demuxers="yes"
245 246 247 248 249 250 251

# OS specific
targetos=`uname -s`
case $targetos in
BeOS)
prefix="/boot/home/config"
# helps building libavcodec
252
CFLAGS="-DPIC -fomit-frame-pointer"
253
# 3 gcc releases known for BeOS, each with ugly bugs
254
gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
255 256 257 258 259 260 261 262
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
263
SHFLAGS=-nostart
D
Diego Biurrun 已提交
264
# disable Linux things
265
audio_oss="no"
F
Fabrice Bellard 已提交
266
v4l="no"
267
dv1394="no"
D
Diego Biurrun 已提交
268
# enable BeOS things
269
audio_beos="yes"
270 271 272 273 274
# 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
275
netserver="yes"
276
need_inet_aton="yes"
277
extralibs="-lnet"
278
fi ;;
279 280 281
SunOS)
v4l="no"
audio_oss="no"
282
dv1394="no"
283 284 285 286 287 288
make="gmake"
LDFLAGS=""
FFSLDFLAGS=""
need_inet_aton="yes"
extralibs="$extralibs -lsocket -lnsl"
;;
289 290
NetBSD)
v4l="no"
291
bktr="yes"
292 293 294 295 296
audio_oss="yes"
dv1394="no"
make="gmake"
LDFLAGS="$LDFLAGS -export-dynamic"
case `uname -r` in
297
2.*) extralibs="$extralibs -lossaudio"
298 299 300
;;
esac
;;
301 302
OpenBSD)
v4l="no"
303
bktr="yes"
304 305 306
audio_oss="yes"
dv1394="no"
make="gmake"
307
LIBOBJFLAGS="\$(PIC)"
308
LDFLAGS="$LDFLAGS -export-dynamic -pthread"
309
LDCONFIG="ldconfig -m \$(libdir)"
310 311
extralibs="$extralibs -lossaudio"
;;
312 313
FreeBSD)
v4l="no"
314
bktr="yes"
315
audio_oss="yes"
316
dv1394="no"
317
make="gmake"
318 319
CFLAGS="-pthread"
LDFLAGS="$LDFLAGS -export-dynamic -pthread"
320
;;
321
BSD/OS)
F
Fabrice Bellard 已提交
322
v4l="no"
323
bktr="yes"
F
Fabrice Bellard 已提交
324
audio_oss="yes"
325
dv1394="no"
326 327
extralibs="-lpoll -lgnugetopt -lm"
make="gmake"
328 329
strip="strip -d"
installstrip=""
330
;;
331
Darwin)
332
cc="cc"
333 334
v4l="no"
audio_oss="no"
335
dv1394="no"
336
ffserver="no"
337
SHFLAGS="-dynamiclib -Wl,-single_module"
338
extralibs=""
339
darwin="yes"
340
strip="strip -x"
341
installstrip=""
342 343
LDFLAGS="-Wl,-dynamic,-search_paths_first"
SLIBSUF=".dylib"
344
FFSLDFLAGS=-Wl,-bind_at_load
345
;;
346
MINGW32*)
F
Fabrice Bellard 已提交
347
# Note: the rest of the mingw32 config is done afterwards as mingw32
D
Diego Biurrun 已提交
348
# can be forced on the command line for Linux cross compilation.
349 350
mingw32="yes"
;;
351 352 353
CYGWIN*)
v4l="no"
audio_oss="yes"
354
dv1394="no"
355
vhook="no"
356 357
extralibs=""
cygwin="yes"
358
EXESUF=".exe"
359
;;
360
Linux)
361
LDFLAGS="$LDFLAGS -rdynamic"
362
;;
363 364 365 366 367 368
IRIX*)
ranlib="echo ignoring ranlib"
v4l="no"
audio_oss="no"
make="gmake"
;;
369 370
OS/2)
TMPE=$TMPE".exe"
371
ar="emxomfar -p128"
372 373
ranlib="echo ignoring ranlib"
strip="echo ignoring strip"
374
CFLAGS="-Zomf"
375
LDFLAGS="-Zomf -Zstack 16384 -s"
376
SHFLAGS="-Zdll -Zomf"
377 378 379 380 381
FFSLDFLAGS=""
LIBPREF=""
LIBSUF=".lib"
SLIBPREF=""
SLIBSUF=".dll"
F
Fabrice Bellard 已提交
382
EXESUF=".exe"
383
extralibs=""
384
pkg_requires=""
385 386
v4l="no"
audio_oss="no"
387
dv1394="no"
388 389
network="no"
ffserver="no"
390
vhook="no"
391
os2="yes"
392

393
;;
394 395
*) ;;
esac
F
Fabrice Bellard 已提交
396

D
Diego Biurrun 已提交
397
# From MPlayer configure. We need TARGET_OS available
398
# to the Makefile, so it can distinguish between flavors
D
Diego Biurrun 已提交
399
# of AltiVec on PowerPC.
400 401
TARGET_OS=`( uname -s ) 2>&1`
  case "$TARGET_OS" in
A
Alex Beregszaszi 已提交
402
  Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU|BeOS|MorphOS)
403 404 405 406 407 408 409 410 411 412 413 414 415 416 417
    ;;
  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

418
# find source path
419
source_path="`echo $0 | sed -e 's#/configure##'`"
420 421 422 423
source_path_used="yes"
if test -z "$source_path" -o "$source_path" = "." ; then
    source_path=`pwd`
    source_path_used="no"
424 425
else
    source_path="`cd \"$source_path\"; pwd`"
F
Fabrice Bellard 已提交
426 427
fi

428 429 430 431 432
FFMPEG_CONFIGURATION=" "
for opt do
  FFMPEG_CONFIGURATION="$FFMPEG_CONFIGURATION""$opt "
done

433
CODEC_LIST=`grep 'register_avcodec(&[a-z]' $source_path/libavcodec/allcodecs.c  | sed 's/.*&\(.*\)).*/\1/'`
434

F
Fabrice Bellard 已提交
435 436
for opt do
  case "$opt" in
437
  --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`; force_prefix=yes
F
Fabrice Bellard 已提交
438
  ;;
439
  --libdir=*) libdir=`echo $opt | cut -d '=' -f 2`; force_libdir=yes
440
  ;;
F
Fabrice Bellard 已提交
441 442
  --mandir=*) mandir=`echo $opt | cut -d '=' -f 2`
  ;;
443 444 445 446
  --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
  ;;
  --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
  ;;
447
  --cc=*) cc=`echo $opt | cut -d '=' -f 2-`
F
Fabrice Bellard 已提交
448
  ;;
449 450
  --make=*) make=`echo $opt | cut -d '=' -f 2`
  ;;
451
  --extra-cflags=*) CFLAGS="$CFLAGS ${opt#--extra-cflags=}"
452
  ;;
453
  --extra-ldflags=*) LDFLAGS="$LDFLAGS ${opt#--extra-ldflags=}"
454 455 456
  ;;
  --extra-libs=*) extralibs=${opt#--extra-libs=}
  ;;
457 458
  --build-suffix=*) BUILDSUF=${opt#--build-suffix=}
  ;;
F
Fabrice Bellard 已提交
459 460
  --cpu=*) cpu=`echo $opt | cut -d '=' -f 2`
  ;;
461 462
  --tune=*) tune=`echo $opt | cut -d '=' -f 2`
  ;;
463 464
  --powerpc-perf-enable) powerpc_perf="yes"
  ;;
F
Fabrice Bellard 已提交
465 466
  --disable-mmx) mmx="no"
  ;;
467 468
  --disable-iwmmxt) iwmmxt="no"
  ;;
469 470
  --disable-altivec) altivec="no"
  ;;
F
Fabrice Bellard 已提交
471 472
  --enable-gprof) gprof="yes"
  ;;
F
Fabrice Bellard 已提交
473 474
  --disable-v4l) v4l="no"
  ;;
475 476
  --disable-bktr) bktr="no"
  ;;
F
Fabrice Bellard 已提交
477 478
  --disable-audio-oss) audio_oss="no"
  ;;
479
  --disable-audio-beos) audio_beos="no"
480
    extralibs="$extralibs -lbe -lmedia"
481
  ;;
482 483
  --disable-dv1394) dv1394="no"
  ;;
484
  --disable-network) network="no"; ffserver="no"
F
Fabrice Bellard 已提交
485
  ;;
486 487
  --disable-zlib) zlib="no"
  ;;
488
  --enable-a52) a52="yes"
489
  ;;
M
Michael Niedermayer 已提交
490
  --enable-a52bin) a52bin="yes"
Z
Zdenek Kabelac 已提交
491
  ;;
492 493
  --enable-dts) dts="yes"
    extralibs="$extralibs -ldts"
494
  ;;
495
  --enable-pp) pp="yes"
496 497 498
  ;;
  --enable-shared-pp) shared_pp="yes"
  ;;
499
  --enable-libgsm) libgsm="yes"
500
    extralibs="$extralibs -lgsm"
501
  ;;
502 503
  --enable-mp3lame) mp3lame="yes"
    extralibs="$extralibs -lmp3lame"
504
  ;;
505
  --enable-libogg) libogg="yes"
506 507
    extralibs="$extralibs -logg"
    pkg_requires="$pkg_requires ogg >= 1.1"
N
Nilesh Bansal 已提交
508
  ;;
509
  --enable-vorbis) vorbis="yes"
510 511
    extralibs="$extralibs -lvorbis -lvorbisenc"
    pkg_requires="$pkg_requires vorbis vorbisenc"
512
  ;;
N
Nilesh Bansal 已提交
513
  --enable-theora) theora="yes"
514 515
    extralibs="$extralibs -ltheora"
    pkg_requires="$pkg_requires theora"
N
Nilesh Bansal 已提交
516
  ;;
Z
Zdenek Kabelac 已提交
517
  --enable-faad) faad="yes"
518
    extralibs="$extralibs -lfaad"
Z
Zdenek Kabelac 已提交
519 520 521
  ;;
  --enable-faadbin) faadbin="yes"
  ;;
522 523
  --enable-faac) faac="yes"
    extralibs="$extralibs -lfaac"
524
  ;;
525
  --enable-xvid) xvid="yes"
526
    extralibs="$extralibs -lxvidcore"
527
  ;;
528 529
  --enable-x264) x264="yes"
    extralibs="$extralibs -lx264"
530
  ;;
531
  --enable-dc1394) dc1394="yes"
532 533
    extralibs="$extralibs -ldc1394_control -lraw1394"
    pkg_requires="$pkg_requires libraw1394"
534
  ;;
535 536
  --disable-vhook) vhook="no"
  ;;
537
  --disable-simple_idct) simpleidct="no"
538
  ;;
539 540
  --enable-mingw32) mingw32="yes"
  ;;
541
  --enable-shared) lshared="yes"
N
Nick Kurshev 已提交
542
  ;;
543 544 545 546
  --disable-debug) debug="no"
  ;;
  --disable-opts) optimize="no"
  ;;
547 548
  --disable-mpegaudio-hp) mpegaudio_hp="no"
  ;;
549 550
  --disable-ffserver) ffserver="no"
  ;;
551 552
  --disable-ffplay) ffplay="no"
  ;;
553
  --enable-small) optimize="small"
554
  ;;
555 556
  --enable-amr_nb) amr_nb="yes"
  ;;
Z
Zdenek Kabelac 已提交
557 558
  --enable-amr_nb-fixed) amr_nb_fixed="yes"
  ;;
559
  --enable-amr_wb) amr_wb="yes"
560
  ;;
561 562
  --enable-amr_if2) amr_if2="yes"
  ;;
563 564
  --enable-sunmlib) sunmlib="yes"
  ;;
565 566
  --enable-pthreads) pthreads="yes"
  ;;
567 568
  --enable-gpl) gpl="yes"
  ;;
569 570
  --enable-memalign-hack) memalignhack="yes"
  ;;
571 572
  --disable-strip) dostrip="no"
  ;;
573
  --enable-encoder=*) CODEC_LIST="$CODEC_LIST ${opt#--enable-encoder=}_encoder"
574
  ;;
575 576 577 578 579
  --enable-decoder=*) CODEC_LIST="$CODEC_LIST ${opt#--enable-decoder=}_decoder"
  ;;
  --disable-encoder=*) CODEC_LIST="`echo $CODEC_LIST | sed -e \"s#${opt#--disable-encoder=}_encoder##\"`"
  ;;
  --disable-decoder=*) CODEC_LIST="`echo $CODEC_LIST | sed -e \"s#${opt#--disable-decoder=}_decoder##\"`"
580 581 582
  ;;
  --disable-encoders) CODEC_LIST="`echo $CODEC_LIST | sed 's/[-_a-zA-Z0-9]*encoder//g'`"
  ;;
583 584
  --disable-decoders) CODEC_LIST="`echo $CODEC_LIST | sed 's/[-_a-zA-Z0-9]*decoder//g'`"
  ;;
585 586 587 588
  --disable-muxers) muxers="no"
  ;;
  --disable-demuxers) demuxers="no"
  ;;
589 590 591 592 593
  *)
  echo "Unknown option \"$opt\"."
  echo "See $0 --help for available options."
  exit 1
  ;;
F
Fabrice Bellard 已提交
594 595 596
  esac
done

N
Nilesh Bansal 已提交
597
if test "$theora" = "yes" ; then
598
    if test "$libogg" = "no"; then
D
Diego Biurrun 已提交
599
        echo "libogg must be enabled to enable Theora."
N
Nilesh Bansal 已提交
600 601 602 603 604 605
        fail="yes"
        theora="no"
    fi
fi

if test "$vorbis" = "yes" ; then
606
    if test "$libogg" = "no"; then
D
Diego Biurrun 已提交
607
        echo "libogg must be enabled to enable Vorbis."
N
Nilesh Bansal 已提交
608 609 610 611 612
        fail="yes"
        vorbis="no"
    fi
fi

613 614
if test "$gpl" != "yes"; then
    if test "$pp" != "no" -o "$shared_pp" != "no"; then
D
Diego Biurrun 已提交
615
        echo "The Postprocessing code is under GPL and --enable-gpl is not specified."
616 617 618 619
        fail="yes"
    fi

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

624
    if test "$xvid" != "no"; then
D
Diego Biurrun 已提交
625
        echo "libxvidcore is under GPL and --enable-gpl is not specified."
626 627 628
        fail="yes"
    fi

629
    if test "$x264" != "no"; then
D
Diego Biurrun 已提交
630
        echo "x264 is under GPL and --enable-gpl is not specified."
631 632 633
        fail="yes"
    fi

634
    if test "$dts" != "no"; then
D
Diego Biurrun 已提交
635
        echo "libdts is under GPL and --enable-gpl is not specified."
636 637
        fail="yes"
    fi
638

639 640 641 642 643
    if test "$faad" != "no" -o "$faadbin" != "no"; then
        cat > $TMPC << EOF
            #include <faad.h>
            int main( void ) { return 0; }
EOF
644

645 646 647 648 649 650 651 652 653
        if $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
            cat > $TMPC << EOF
                #include <faad.h>
                #ifndef FAAD2_VERSION
                ok faad1
                #endif
                int main( void ) { return 0; }
EOF
            if $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
D
Diego Biurrun 已提交
654
                echo "FAAD2 is under GPL and --enable-gpl is not specified."
655 656 657 658 659
                fail="yes"
            fi
        else
            faad="no"
            faadbin="no"
D
Diego Biurrun 已提交
660
            echo "FAAD test failed."
661 662
        fi
    fi
663

664

M
10l  
Michael Niedermayer 已提交
665
    if test "$fail" = "yes"; then
666 667 668 669
        exit 1
    fi
fi

D
Diego Biurrun 已提交
670
# compute MMX state
671
if test $mmx = "default"; then
672
    if test $cpu = "x86" -o $cpu = "x86_64"; then
673 674 675 676 677 678
        mmx="yes"
    else
        mmx="no"
    fi
fi

679 680 681
# check iwmmxt support
if test $iwmmxt = "default" -a $cpu = "armv4l"; then
    cat > $TMPC << EOF
682
        int main(void) {
683 684 685 686 687 688 689 690 691 692
        __asm__ __volatile__ ("wunpckelub wr6, wr4");
        }
EOF

    iwmmxt=no
    if ${cross_prefix}${cc} -o $TMPO $TMPC 2> /dev/null ; then
        iwmmxt=yes
    fi
fi

693
#Darwin CC versions
694
needmdynamicnopic="no"
695
if test $targetos = Darwin; then
696
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
697
        CFLAGS="$CFLAGS -qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto"
698
    else
699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716
        gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
        case "$gcc_version" in
            *2.95*)
                CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer"
                ;;
            *[34].*)
                CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer -force_cpusubtype_ALL -Wno-sign-compare"
                if test "$lshared" = no; then
                   needmdynamicnopic="yes"
                fi
                ;;
            *)
                CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer"
                if test "$lshared" = no; then
                   needmdynamicnopic="yes"
                fi
                ;;
        esac
717 718 719
    fi
fi

720 721 722 723 724 725 726 727 728
# Can only do AltiVec on PowerPC
if test $altivec = "default"; then
    if test $cpu = "powerpc"; then
        altivec="yes"
    else
        altivec="no"
    fi
fi

729 730
# Add processor-specific flags
TUNECPU="generic"
731
POWERPCMODE="32bits"
732 733
if test $tune != "generic"; then
    case $tune in
734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781
        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
        ;;
        G3|g3|75*|ppc75*|PowerPC75*)
            CFLAGS="$CFLAGS -mcpu=750 -mtune=750 -mpowerpc-gfxopt"
            if test $altivec = "yes"; then
                echo "WARNING: Tuning for PPC75x but AltiVec enabled!";
            fi
            TUNECPU=ppc750
        ;;
        G4|g4|745*|ppc745*|PowerPC745*)
            CFLAGS="$CFLAGS -mcpu=7450 -mtune=7450 -mpowerpc-gfxopt"
            if test $altivec = "no"; then
                echo "WARNING: Tuning for PPC745x but AltiVec disabled!";
            fi
            TUNECPU=ppc7450
        ;;
        74*|ppc74*|PowerPC74*)
            CFLAGS="$CFLAGS -mcpu=7400 -mtune=7400 -mpowerpc-gfxopt"
            if test $altivec = "no"; then
                echo "WARNING: Tuning for PPC74xx but AltiVec disabled!";
            fi
            TUNECPU=ppc7400
        ;;
        G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
            CFLAGS="$CFLAGS -mcpu=970 -mtune=970 -mpowerpc-gfxopt -mpowerpc64"
            if test $altivec = "no"; then
                echo "WARNING: Tuning for PPC970 but AltiVec disabled!";
            fi
            TUNECPU=ppc970
782
            POWERPCMODE="64bits"
783 784 785 786 787 788 789
        ;;
        i[3456]86|pentium|pentiumpro|pentium-mmx|pentium[234]|prescott|k6|k6-[23]|athlon|athlon-tbird|athlon-4|athlon-[mx]p|winchip-c6|winchip2|c3|nocona|athlon64|k8|opteron|athlon-fx)
            CFLAGS="$CFLAGS -march=$tune"
        ;;
        *)
        echo "WARNING: Unknown CPU \"$tune\", ignored."
        ;;
790 791 792
    esac
fi

793
# AltiVec flags: The FSF version of GCC differs from the Apple version
794 795
if test $cpu = "powerpc"; then
    if test $altivec = "yes"; then
796
        if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
S
Steven M. Schultz 已提交
797
            CFLAGS="$CFLAGS -faltivec"
798 799 800 801 802 803
        else
            CFLAGS="$CFLAGS -maltivec -mabi=altivec"
        fi
    fi
fi

D
Diego Biurrun 已提交
804
# check if we have <altivec.h>
805 806 807 808 809 810
cat > $TMPC << EOF
#include <altivec.h>
int main( void ) { return 0; }
EOF

_altivec_h="no"
811
if $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
812 813 814
_altivec_h="yes"
fi

D
Diego Biurrun 已提交
815
# check if our compiler supports Motorola AltiVec C API
816
if test $altivec = "yes"; then
817
if test $_altivec_h = "yes"; then
818
cat > $TMPC << EOF
819
#include <altivec.h>
820 821 822 823 824 825
int main(void) {
    vector signed int v1, v2, v3;
    v1 = vec_add(v2,v3);
    return 0;
}
EOF
826 827 828 829 830 831 832 833 834
else
cat > $TMPC << EOF
int main(void) {
    vector signed int v1, v2, v3;
    v1 = vec_add(v2,v3);
    return 0;
}
EOF
fi
835
$cc $CFLAGS -o $TMPE $TMPC 2> /dev/null || altivec="no"
836 837
fi

D
Diego Biurrun 已提交
838
# mmi only available on mips
839 840 841 842 843 844 845 846
if test $mmi = "default"; then
    if test $cpu = "mips"; then
        mmi="yes"
    else
        mmi="no"
    fi
fi

D
Diego Biurrun 已提交
847
# check if our compiler supports mmi
848 849 850 851 852 853 854
if test $mmi = "yes"; then
cat > $TMPC << EOF
int main(void) {
    __asm__ ("lq \$2, 0(\$2)");
    return 0;
}
EOF
855
$cc -o $TMPE $TMPC 2> /dev/null || mmi="no"
856 857
fi

858 859
if test "$mingw32" = "yes" ; then
    v4l="no"
860
    bktr="no"
861
    audio_oss="no"
862
    dv1394="no"
863
    dc1394="no"
F
Fabrice Bellard 已提交
864
    ffserver="no"
865
    network="no"
F
Fabrice Bellard 已提交
866 867 868
    SLIBPREF=""
    SLIBSUF=".dll"
    EXESUF=".exe"
869 870
    if test "$force_prefix" != yes; then prefix="/c/Program Files/FFmpeg"; fi
    if test "$force_libdir" != yes; then bindir="$prefix"; fi
871 872
fi

873 874
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
M
Michael Niedermayer 已提交
875
ranlib="${cross_prefix}${ranlib}"
876 877
strip="${cross_prefix}${strip}"

F
Fabrice Bellard 已提交
878 879
if test -z "$cross_prefix" ; then

880
# ---
D
Diego Biurrun 已提交
881
# big/little-endian test
882 883 884
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
885 886
        volatile uint32_t i=0x01234567;
        return (*((uint8_t*)(&i))) == 0x67;
887 888 889
}
EOF

890 891
if $cc -o $TMPE $TMPC 2>/dev/null ; then
$TMPE && bigendian="yes"
892 893 894 895
else
echo big/little test failed
fi

F
Fabrice Bellard 已提交
896 897
else

D
Diego Biurrun 已提交
898
# programs cannot be launched if cross compiling, so make a static guess
F
Fabrice Bellard 已提交
899 900 901 902 903 904
if test "$cpu" = "powerpc" -o "$cpu" = "mips" ; then
    bigendian="yes"
fi

fi

905 906 907 908 909 910 911 912 913 914 915
# ---
# *inttypes.h* test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
    return 0;
}
EOF

$cc -o $TMPE $TMPC 2>/dev/null || inttypes="no"

916 917 918 919 920
# ---
# *int_fast* test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
921 922
        volatile uint_fast64_t i=0x01234567;
        return 0;
923 924 925 926 927
}
EOF

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

N
Nick Kurshev 已提交
928 929 930 931 932 933 934 935 936 937
# ---
# check availability of some header files

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

_memalign=no
_malloc_h=no
938
if $cc -o $TMPE $TMPC 2> /dev/null ; then
N
Nick Kurshev 已提交
939 940 941 942
_malloc_h=yes
_memalign=yes
# check for memalign - atmos
cat > $TMPC << EOF
943
#include <stdio.h>
N
Nick Kurshev 已提交
944 945 946 947 948 949 950
#include <malloc.h>
int main ( void ) {
char *string = NULL;
string = memalign(64, sizeof(char));
return 0;
}
EOF
951
$cc -o $TMPE $TMPC 2> /dev/null || _memalign=no
N
Nick Kurshev 已提交
952 953
fi

954
if test "$_memalign" = "no" -a "$mmx" = "yes" -a "$memalignhack" != "yes"; then
D
Diego Biurrun 已提交
955
    echo "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
956 957 958
    exit 1
fi

959 960 961 962 963 964 965 966 967 968
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

969 970 971 972 973 974 975 976 977 978 979
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
980
$cc $CFLAGS $LDFLAGS -o $TMPE $TMPC -lz 2> /dev/null || zlib="no"
981
# $TMPE 2> /dev/null > /dev/null || zlib="no"
982 983 984 985 986 987
# XXX: more tests needed - runtime test
fi
if test "$zlib" = "yes"; then
extralibs="$extralibs -lz"
fi

988 989 990 991 992 993 994 995
# 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"
996
if $cc $CFLAGS $LDFLAGS $extralibs -o $TMPE $TMPC 2> /dev/null ; then
997
  have_lrintf="yes"
998 999 1000 1001 1002
  # allanc@chickenandporn.com: cannot execute cross-compiled
  # code on the host.  Only execute if not cross-compiling.
  if test -z "$cross_prefix" ; then
    $TMPE 2> /dev/null > /dev/null || have_lrintf="no"
  fi
1003 1004
fi

F
Falk Hüffner 已提交
1005 1006 1007 1008 1009 1010 1011 1012 1013
_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

1014 1015 1016
# test gcc version to see if vector builtins can be used
# currently only used on i386 for MMX builtins
cat > $TMPC << EOF
1017
#include <xmmintrin.h>
1018
int main(void) {
1019 1020 1021 1022 1023 1024 1025 1026 1027
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
return 0;
#else
#error no vector builtins
#endif
}
EOF

builtin_vector=no
1028
if $cc -msse -o $TMPO $TMPC 2> /dev/null ; then
1029
  builtin_vector=yes
1030 1031
fi

1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042
# Probe for -Wdeclaration-after-statement
if test "$cc" == "gcc"; then
  cat > $TMPC << EOF
  int main( void ) { return 0; }
EOF

  if $cc -Wdeclaration-after-statement -Werror -o $TMPE $TMPC 2> /dev/null ; then
    CFLAGS="$CFLAGS -Wdeclaration-after-statement"
  fi
fi

1043 1044 1045 1046 1047 1048 1049 1050 1051
# dlopen/dlfcn.h probing

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

ldl=-ldl

1052
if $cc $CFLAGS $LDFLAGS -o $TMPE $TMPC -ldl > /dev/null 2>&1 ; then
1053 1054 1055 1056
dlfcn=yes
dlopen=yes
fi

1057
if $cc $CFLAGS $LDFLAGS -o $TMPE $TMPC > /dev/null 2>&1 ; then
1058 1059 1060 1061 1062 1063 1064 1065 1066
dlfcn=yes
dlopen=yes
ldl=""
fi

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

1067
if $cc $CFLAGS $LDFLAGS -o $TMPE $TMPC -ldl > /dev/null 2>&1  ; then
1068 1069 1070
dlopen=yes
fi

1071
if $cc $CFLAGS $LDFLAGS -o $TMPE $TMPC > /dev/null 2>&1  ; then
1072 1073 1074 1075 1076 1077 1078 1079
dlopen=yes
ldl=""
fi

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

M
Michael Niedermayer 已提交
1080 1081 1082 1083 1084
if test "$vhook" = "yes" -o "$a52bin" = "yes" -o "$faadbin" = "yes"; then
  extralibs="$extralibs $ldl"
fi


1085
##########################################
D
Diego Biurrun 已提交
1086
# imlib check
1087

1088 1089 1090 1091 1092 1093 1094
cat > $TMPC << EOF
#include <X11/Xlib.h>
#include <Imlib2.h>
int main( void ) { return (int) imlib_load_font("foo"); }
EOF

imlib2=no
1095
if $cc $CFLAGS $LDFLAGS -o $TMPE $TMPC -lImlib2 -lm > /dev/null 2>&1  ; then
1096
imlib2=yes
1097 1098
fi

1099
##########################################
D
Diego Biurrun 已提交
1100
# FreeType check
1101

1102 1103 1104 1105 1106 1107
cat > $TMPC << EOF
#include <ft2build.h>
int main( void ) { return (int) FT_Init_FreeType(0); }
EOF

freetype2=no
1108
if test "x$targetos" != "xBeOS" && test "$os2" != "yes"; then
1109
  if (freetype-config --version) >/dev/null 2>&1 ; then
1110
    if $cc -o $TMPE $TMPC `freetype-config --cflags` `freetype-config --libs`  > /dev/null 2>&1 ; then
1111
      freetype2=yes
1112
    fi
1113
  fi
1114 1115
fi

1116
##########################################
D
Diego Biurrun 已提交
1117
# SDL check
1118 1119 1120

cat > $TMPC << EOF
#include <SDL.h>
1121
#undef main /* We don't want SDL to override our main() */
1122 1123 1124 1125 1126
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
EOF

sdl_too_old=no
sdl=no
1127
if (sdl-config --version) >/dev/null 2>&1 ; then
1128
if $cc -o $TMPE `sdl-config --cflags` $TMPC `sdl-config --libs`  > /dev/null 2>&1  ; then
1129 1130 1131 1132 1133 1134 1135
_sdlversion=`sdl-config --version | sed 's/[^0-9]//g'`
if test "$_sdlversion" -lt 121 ; then
sdl_too_old=yes
else
sdl=yes
fi
fi
M
Michael Niedermayer 已提交
1136
fi
1137

1138
##########################################
D
Diego Biurrun 已提交
1139
# texi2html check
1140 1141

texi2html=no
1142
if (texi2html -version) >/dev/null 2>&1; then
1143 1144 1145
texi2html=yes
fi

1146 1147
if test "$network" = "yes" ; then
##########################################
D
Diego Biurrun 已提交
1148
# IPv6 check
1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169

cat > $TMPC << EOF
#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);
  IN6_IS_ADDR_MULTICAST(0);
}
EOF

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

1170
case "`$cc -v 2>&1 | grep version`" in
1171
    *gcc*)
1172 1173
        CFLAGS="-Wall -Wno-switch $CFLAGS"
        ;;
1174
    *)
1175
        ;;
1176 1177
esac

F
Fabrice Bellard 已提交
1178 1179 1180 1181
if test "$sdl" = "no" ; then
   ffplay=no
fi

1182
if test "$debug" = "yes"; then
1183
        CFLAGS="-g $CFLAGS"
1184 1185 1186
fi

if test "$optimize" = "small"; then
1187
#  CFLAGS=${CFLAGS//-O3/-Os}
1188 1189 1190
  CFLAGS="$CFLAGS -Os"
fi

1191
if test "$optimize" = "yes"; then
1192
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
1193 1194
        CFLAGS="$CFLAGS -O5"
        LDFLAGS="$LDFLAGS -O5"
1195
    else
1196
        CFLAGS="-O3 $CFLAGS"
1197
    fi
1198 1199
fi

1200 1201 1202 1203
# PIC flags for shared library objects where they are needed
if test "$lshared" = "yes" ; then
  # LIBOBJFLAGS may have already been set in the OS configuration
  if test -z "$LIBOBJFLAGS" ; then
1204
    if test "$cpu" = "x86_64" -o "$cpu" = "ia64" -o "$cpu" = "alpha" ; then
1205 1206 1207 1208 1209
      LIBOBJFLAGS="\$(PIC)"
    fi
  fi
fi

F
Fabrice Bellard 已提交
1210 1211 1212 1213
if test x"$bindir" = x""; then
bindir="${prefix}/bin"
fi

1214 1215 1216 1217
if test x"$libdir" = x""; then
libdir="${prefix}/lib"
fi

F
Fabrice Bellard 已提交
1218 1219 1220 1221
if test x"$mandir" = x""; then
mandir="${prefix}/man"
fi

D
Diego Biurrun 已提交
1222 1223
echo "install prefix   $prefix"
echo "source path      $source_path"
F
Fabrice Bellard 已提交
1224
echo "C compiler       $cc"
1225
echo "make             $make"
1226
echo "CPU              $cpu ($tune)"
1227
if test "$BUILDSUF" != ""; then
D
Diego Biurrun 已提交
1228
echo "build suffix     $BUILDSUF"
1229
fi
D
Diego Biurrun 已提交
1230
echo "big-endian       $bigendian"
1231
echo "inttypes.h       $inttypes"
1232
echo "broken inttypes.h $emu_fast_int"
1233
if test $cpu = "x86" -o $cpu = "x86_64"; then
F
Fabrice Bellard 已提交
1234
echo "MMX enabled      $mmx"
1235
echo "Vector Builtins  $builtin_vector"
F
Fabrice Bellard 已提交
1236
fi
1237 1238 1239
if test $cpu = "armv4l"; then
echo "IWMMXT enabled   $iwmmxt"
fi
F
Fabrice Bellard 已提交
1240
if test $cpu = "mips"; then
1241
echo "MMI enabled      $mmi"
F
Fabrice Bellard 已提交
1242 1243
fi
if test $cpu = "powerpc"; then
1244
echo "AltiVec enabled  $altivec"
F
Fabrice Bellard 已提交
1245
fi
F
Fabrice Bellard 已提交
1246
echo "gprof enabled    $gprof"
1247
echo "zlib enabled     $zlib"
1248
echo "libgsm enabled   $libgsm"
1249
echo "mp3lame enabled  $mp3lame"
1250
echo "libogg enabled   $libogg"
D
Diego Biurrun 已提交
1251 1252 1253
echo "Vorbis enabled   $vorbis"
echo "Theora enabled   $theora"
echo "FAAD enabled     $faad"
Z
Zdenek Kabelac 已提交
1254
echo "faadbin enabled  $faadbin"
D
Diego Biurrun 已提交
1255 1256
echo "FAAC enabled     $faac"
echo "XviD enabled     $xvid"
1257
echo "x264 enabled     $x264"
F
Fabrice Bellard 已提交
1258
echo "a52 support      $a52"
Z
Zdenek Kabelac 已提交
1259
echo "a52 dlopened     $a52bin"
D
Diego Biurrun 已提交
1260
echo "DTS support      $dts"
1261
echo "pp support       $pp"
1262
echo "debug symbols    $debug"
1263
echo "strip symbols    $dostrip"
1264
echo "optimize         $optimize"
1265
echo "shared pp        $shared_pp"
D
Diego Biurrun 已提交
1266
echo "video hooking    $vhook"
1267 1268
echo "SDL support      $sdl"
if test $sdl_too_old = "yes"; then
D
Diego Biurrun 已提交
1269
echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support."
1270
fi
1271 1272

if test "$vhook" = "yes" ; then
1273
echo "Imlib2 support   $imlib2"
D
Diego Biurrun 已提交
1274
echo "FreeType support $freetype2"
1275
fi
1276
echo "Sun medialib support"  $sunmlib
1277
echo "pthreads support"      $pthreads
Z
Zdenek Kabelac 已提交
1278 1279
echo "AMR-NB float support"  $amr_nb
echo "AMR-NB fixed support"  $amr_nb_fixed
1280
echo "AMR-WB float support"  $amr_wb
1281
echo "AMR-WB IF2 support"    $amr_if2
1282 1283 1284 1285
echo "network support      $network"
if test "$network" = "yes" ; then
echo "IPv6 support         $ipv6"
fi
1286 1287 1288 1289 1290
if test "$gpl" = "no" ; then
echo "License: LGPL"
else
echo "License: GPL"
fi
F
Fabrice Bellard 已提交
1291

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

1294 1295
date >> config.log
echo "   $0 $FFMPEG_CONFIGURATION" >> config.log
D
Diego Biurrun 已提交
1296 1297
echo "# Automatically generated by configure - do not modify!" > config.mak
echo "/* Automatically generated by configure - do not modify! */" > $TMPH
1298
echo "#define FFMPEG_CONFIGURATION "'"'"$FFMPEG_CONFIGURATION"'"' >> $TMPH
F
Fabrice Bellard 已提交
1299

1300 1301 1302 1303
echo "prefix=\$(DESTDIR)$prefix" >> config.mak
echo "libdir=\$(DESTDIR)$libdir" >> config.mak
echo "bindir=\$(DESTDIR)$bindir" >> config.mak
echo "mandir=\$(DESTDIR)$mandir" >> config.mak
1304
echo "MAKE=$make" >> config.mak
1305 1306
echo "CC=$cc" >> config.mak
echo "AR=$ar" >> config.mak
M
Michael Niedermayer 已提交
1307
echo "RANLIB=$ranlib" >> config.mak
1308
if test "$dostrip" = "yes" ; then
1309
echo "STRIP=$strip" >> config.mak
1310
echo "INSTALLSTRIP=$installstrip" >> config.mak
1311 1312 1313 1314
else
echo "STRIP=echo ignoring strip" >> config.mak
echo "INSTALLSTRIP=" >> config.mak
fi
1315

D
Diego Biurrun 已提交
1316
# SHCFLAGS is a copy of CFLAGS without -mdynamic-no-pic, used when building
1317 1318 1319 1320 1321 1322
# shared modules on OS/X (vhook/Makefile).
SHCFLAGS=$CFLAGS
if test "$needmdynamicnopic" = yes; then
   CFLAGS="$CFLAGS -mdynamic-no-pic"
fi

N
Nick Kurshev 已提交
1323
echo "OPTFLAGS=$CFLAGS" >> config.mak
1324
echo "SHCFLAGS=$SHCFLAGS">>config.mak
1325
echo "LDFLAGS=$LDFLAGS" >> config.mak
1326
echo "LDCONFIG=$LDCONFIG" >> config.mak
1327
echo "FFSLDFLAGS=$FFSLDFLAGS" >> config.mak
1328
echo "SHFLAGS=$SHFLAGS" >> config.mak
1329
echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak
1330
echo "BUILDSUF=$BUILDSUF" >> config.mak
1331
echo "LIBPREF=$LIBPREF" >> config.mak
1332
echo "LIBSUF=\${BUILDSUF}$LIBSUF" >> config.mak
1333
echo "SLIBPREF=$SLIBPREF" >> config.mak
1334 1335
echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
1336
echo "TARGET_OS=$TARGET_OS" >> config.mak
Z
Zdenek Kabelac 已提交
1337
if test "$cpu" = "x86" ; then
1338
  echo "TARGET_ARCH_X86=yes" >> config.mak
1339
  echo "#define ARCH_X86 1" >> $TMPH
1340 1341 1342
elif test "$cpu" = "x86_64" ; then
  echo "TARGET_ARCH_X86_64=yes" >> config.mak
  echo "#define ARCH_X86_64 1" >> $TMPH
1343
elif test "$cpu" = "armv4l" ; then
1344
  echo "TARGET_ARCH_ARMV4L=yes" >> config.mak
1345
  echo "#define ARCH_ARMV4L 1" >> $TMPH
1346
elif test "$cpu" = "alpha" ; then
1347
  echo "TARGET_ARCH_ALPHA=yes" >> config.mak
1348
  echo "#define ARCH_ALPHA 1" >> $TMPH
1349 1350 1351
elif test "$cpu" = "sparc64" ; then
  echo "TARGET_ARCH_SPARC64=yes" >> config.mak
  echo "#define ARCH_SPARC64 1" >> $TMPH
1352 1353 1354 1355 1356
  echo "TARGET_ARCH_SPARC=yes" >> config.mak
  echo "#define ARCH_SPARC 1" >> $TMPH
elif test "$cpu" = "sparc" ; then
  echo "TARGET_ARCH_SPARC=yes" >> config.mak
  echo "#define ARCH_SPARC 1" >> $TMPH
1357 1358 1359
elif test "$cpu" = "powerpc" ; then
  echo "TARGET_ARCH_POWERPC=yes" >> config.mak
  echo "#define ARCH_POWERPC 1" >> $TMPH
1360 1361 1362 1363 1364
  if test $POWERPCMODE = "32bits"; then
    echo "#define POWERPC_MODE_32BITS 1" >> $TMPH
  else
    echo "#define POWERPC_MODE_64BITS 1" >> $TMPH
  fi
1365 1366 1367
  if test "$powerpc_perf" = "yes"; then
    echo "#define POWERPC_PERFORMANCE_REPORT 1" >> $TMPH
  fi
1368 1369 1370
elif test "$cpu" = "mips" ; then
  echo "TARGET_ARCH_MIPS=yes" >> config.mak
  echo "#define ARCH_MIPS 1" >> $TMPH
A
Alex Beregszaszi 已提交
1371 1372 1373
elif test "$cpu" = "sh4" ; then
  echo "TARGET_ARCH_SH4=yes" >> config.mak
  echo "#define ARCH_SH4 1" >> $TMPH
1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385
elif test "$cpu" = "parisc" ; then
  echo "TARGET_ARCH_PARISC=yes" >> config.mak
  echo "#define ARCH_PARISC 1" >> $TMPH
elif test "$cpu" = "s390" ; then
  echo "TARGET_ARCH_S390=yes" >> config.mak
  echo "#define ARCH_S390 1" >> $TMPH
elif test "$cpu" = "m68k" ; then
  echo "TARGET_ARCH_M68K=yes" >> config.mak
  echo "#define ARCH_M68K 1" >> $TMPH
elif test "$cpu" = "ia64" ; then
  echo "TARGET_ARCH_IA64=yes" >> config.mak
  echo "#define ARCH_IA64 1" >> $TMPH
A
Alex Beregszaszi 已提交
1386
fi
1387
echo "#define TUNECPU $TUNECPU" >> $TMPH
1388 1389 1390
if test "$bigendian" = "yes" ; then
  echo "WORDS_BIGENDIAN=yes" >> config.mak
  echo "#define WORDS_BIGENDIAN 1" >> $TMPH
1391
fi
1392 1393
if test "$inttypes" != "yes" ; then
  echo "#define EMULATE_INTTYPES 1" >> $TMPH
1394
fi
1395
if test "$emu_fast_int" = "yes" ; then
1396
  echo "#define EMULATE_FAST_INT 1" >> $TMPH
1397
fi
Z
Zdenek Kabelac 已提交
1398
if test "$mmx" = "yes" ; then
1399
  echo "TARGET_MMX=yes" >> config.mak
1400
  echo "#define HAVE_MMX 1" >> $TMPH
M
Michael Niedermayer 已提交
1401
  echo "#define __CPU__ 586" >> $TMPH
F
Fabrice Bellard 已提交
1402
fi
1403 1404 1405 1406
if test "$builtin_vector" = "yes" ; then
  echo "TARGET_BUILTIN_VECTOR=yes" >> config.mak
  echo "#define HAVE_BUILTIN_VECTOR 1" >> $TMPH
fi
1407 1408 1409 1410
if test "$iwmmxt" = "yes" ; then
  echo "TARGET_IWMMXT=yes" >> config.mak
  echo "#define HAVE_IWMMXT 1" >> $TMPH
fi
1411 1412 1413 1414
if test "$mmi" = "yes" ; then
  echo "TARGET_MMI=yes" >> config.mak
  echo "#define HAVE_MMI 1" >> $TMPH
fi
1415 1416 1417
if test "$altivec" = "yes" ; then
  echo "TARGET_ALTIVEC=yes" >> config.mak
  echo "#define HAVE_ALTIVEC 1" >> $TMPH
1418 1419
  echo "// Enable the next line to use the reference C code instead of AltiVec" >> $TMPH
  echo "// #define ALTIVEC_USE_REFERENCE_C_CODE 1" >> $TMPH
1420 1421 1422
  if test "$_altivec_h" = "yes" ; then
    echo "#define HAVE_ALTIVEC_H 1" >> $TMPH
  else
A
1l  
Alex Beregszaszi 已提交
1423
    echo "#undef HAVE_ALTIVEC_H" >> $TMPH
1424
  fi
1425
fi
Z
Zdenek Kabelac 已提交
1426
if test "$gprof" = "yes" ; then
1427
  echo "TARGET_GPROF=yes" >> config.mak
1428
  echo "#define HAVE_GPROF 1" >> $TMPH
F
Fabrice Bellard 已提交
1429
fi
1430 1431 1432
if test "$localtime_r" = "yes" ; then
  echo "#define HAVE_LOCALTIME_R 1" >> $TMPH
fi
1433 1434 1435
if test "$imlib2" = "yes" ; then
  echo "HAVE_IMLIB2=yes" >> config.mak
fi
1436 1437 1438
if test "$freetype2" = "yes" ; then
  echo "HAVE_FREETYPE2=yes" >> config.mak
fi
1439 1440 1441 1442 1443
if test "$sunmlib" = "yes" ; then
  echo "HAVE_MLIB=yes" >> config.mak
  echo "#define HAVE_MLIB 1" >> $TMPH
  extralibs="$extralibs -lmlib"
fi
1444 1445 1446
if test "$pthreads" = "yes" ; then
  echo "HAVE_PTHREADS=yes" >> config.mak
  echo "#define HAVE_PTHREADS 1" >> $TMPH
1447
  echo "#define HAVE_THREADS 1" >> $TMPH
1448
  if test $targetos != FreeBSD -a $targetos != OpenBSD ; then
1449 1450
     extralibs="$extralibs -lpthread"
  fi
1451
fi
1452 1453 1454 1455 1456
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
1457 1458 1459
if test "$texi2html" = "yes"; then
  echo "BUILD_DOC=yes" >> config.mak
fi
1460 1461 1462
if test "$have_lrintf" = "yes" ; then
  echo "#define HAVE_LRINTF 1" >> $TMPH
fi
1463 1464 1465 1466
if test "$vhook" = "yes" ; then
  echo "BUILD_VHOOK=yes" >> config.mak
  echo "#define HAVE_VHOOK 1" >> $TMPH
fi
L
Luca Barbato 已提交
1467 1468 1469 1470 1471 1472 1473

lavc_version=`grep '#define LIBAVCODEC_VERSION ' "$source_path/libavcodec/avcodec.h" | sed 's/[^0-9\.]//g'`
lavf_version=`grep '#define LIBAVFORMAT_VERSION ' "$source_path/libavformat/avformat.h" | sed 's/[^0-9\.]//g'`
lavu_version=`grep '#define LIBAVUTIL_VERSION ' "$source_path/libavutil/avutil.h" | sed 's/[^0-9\.]//g'`



Z
Zdenek Kabelac 已提交
1474
if test "$lshared" = "yes" ; then
N
Nick Kurshev 已提交
1475
  echo "BUILD_SHARED=yes" >> config.mak
1476
  echo "PIC=-fPIC -DPIC" >> config.mak
L
Luca Barbato 已提交
1477 1478 1479 1480 1481 1482 1483 1484
  echo "SPPMAJOR=${lavc_version/.*/}" >> config.mak
  echo "SPPVERSION=$lavc_version" >> config.mak
  echo "LAVCMAJOR=${lavc_version/.*/}" >> config.mak
  echo "LAVCVERSION=$lavc_version" >> config.mak
  echo "LAVFMAJOR=${lavf_version/.*/}" >> config.mak
  echo "LAVFVERSION=$lavf_version" >> config.mak
  echo "LAVUMAJOR=${lavu_version/.*/}" >> config.mak
  echo "LAVUVERSION=$lavu_version" >> config.mak
N
Nick Kurshev 已提交
1485
fi
1486
echo "EXTRALIBS=$extralibs" >> config.mak
M
Michael Niedermayer 已提交
1487
version=`grep '#define FFMPEG_VERSION ' "$source_path/libavcodec/avcodec.h" |
1488 1489
 cut -d '"' -f 2`
echo "VERSION=$version" >>config.mak
D
Diego Biurrun 已提交
1490
# If you do not want to use encoders, disable them.
1491
echo "#define CONFIG_ENCODERS 1" >> $TMPH
1492 1493
echo "CONFIG_ENCODERS=yes" >> config.mak

D
Diego Biurrun 已提交
1494
# If you do not want to use decoders, disable them.
1495
echo "#define CONFIG_DECODERS 1" >> $TMPH
1496 1497
echo "CONFIG_DECODERS=yes" >> config.mak

1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509
# muxers
if test "$muxers" = "yes" ; then
  echo "#define CONFIG_MUXERS 1" >> $TMPH
  echo "CONFIG_MUXERS=yes" >> config.mak
fi

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

F
Fabrice Bellard 已提交
1510 1511 1512 1513
# AC3
if test "$a52" = "yes" ; then
  echo "#define CONFIG_AC3 1" >> $TMPH
  echo "CONFIG_AC3=yes" >> config.mak
1514

F
Fabrice Bellard 已提交
1515 1516 1517 1518 1519 1520
  if test "$a52bin" = "yes" ; then
    echo "#define CONFIG_A52BIN 1" >> $TMPH
    echo "CONFIG_A52BIN=yes" >> config.mak
  fi
fi

1521 1522 1523 1524 1525 1526
# DTS
if test "$dts" = "yes" ; then
  echo "#define CONFIG_DTS 1" >> $TMPH
  echo "CONFIG_DTS=yes" >> config.mak
fi

1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537
# 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

D
Diego Biurrun 已提交
1538
# MPEG audio high precision mode
1539 1540 1541 1542
if test "$mpegaudio_hp" = "yes" ; then
  echo "#define CONFIG_MPEGAUDIO_HP 1" >> $TMPH
fi

F
Fabrice Bellard 已提交
1543 1544 1545 1546 1547
if test "$v4l" = "yes" ; then
  echo "#define CONFIG_VIDEO4LINUX 1" >> $TMPH
  echo "CONFIG_VIDEO4LINUX=yes" >> config.mak
fi

1548 1549 1550 1551 1552
if test "$bktr" = "yes" ; then
  echo "#define CONFIG_BKTR 1" >> $TMPH
  echo "CONFIG_BKTR=yes" >> config.mak
fi

1553 1554 1555 1556 1557
if test "$dv1394" = "yes" ; then
  echo "#define CONFIG_DV1394 1" >> $TMPH
  echo "CONFIG_DV1394=yes" >> config.mak
fi

1558 1559 1560 1561 1562
if test "$dc1394" = "yes" ; then
  echo "#define CONFIG_DC1394 1" >> $TMPH
  echo "CONFIG_DC1394=yes" >> config.mak
fi

1563 1564 1565 1566 1567 1568 1569 1570
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 已提交
1571 1572 1573
if test "$audio_oss" = "yes" ; then
  echo "#define CONFIG_AUDIO_OSS 1" >> $TMPH
  echo "CONFIG_AUDIO_OSS=yes" >> config.mak
Z
Zdenek Kabelac 已提交
1574 1575
fi

1576 1577 1578 1579 1580
if test "$audio_beos" = "yes" ; then
  echo "#define CONFIG_AUDIO_BEOS 1" >> $TMPH
  echo "CONFIG_AUDIO_BEOS=yes" >> config.mak
fi

F
Fabrice Bellard 已提交
1581 1582 1583
if test "$network" = "yes" ; then
  echo "#define CONFIG_NETWORK 1" >> $TMPH
  echo "CONFIG_NETWORK=yes" >> config.mak
1584
fi
1585

1586 1587 1588 1589
if test "$ipv6" = "yes" ; then
  echo "#define CONFIG_IPV6 1" >> $TMPH
fi

1590 1591 1592 1593 1594
if test "$zlib" = "yes" ; then
  echo "#define CONFIG_ZLIB 1" >> $TMPH
  echo "CONFIG_ZLIB=yes" >> config.mak
fi

1595 1596 1597 1598 1599
if test "$libgsm" = "yes" ; then
  echo "#define CONFIG_LIBGSM 1" >> $TMPH
  echo "CONFIG_LIBGSM=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1600
if test "$mp3lame" = "yes" ; then
1601
  echo "#define CONFIG_MP3LAME 1" >> $TMPH
1602 1603 1604
  echo "CONFIG_MP3LAME=yes" >> config.mak
fi

1605
if test "$libogg" = "yes" ; then
N
Nilesh Bansal 已提交
1606 1607 1608 1609
  echo "#define CONFIG_LIBOGG 1" >> $TMPH
  echo "CONFIG_LIBOGG=yes" >> config.mak
fi

1610
if test "$vorbis" = "yes" ; then
N
Nilesh Bansal 已提交
1611 1612 1613 1614 1615 1616 1617
  echo "#define CONFIG_LIBVORBIS 1" >> $TMPH
  echo "CONFIG_LIBVORBIS=yes" >> config.mak
fi

if test "$theora" = "yes" ; then
  echo "#define CONFIG_LIBTHEORA 1" >> $TMPH
  echo "CONFIG_LIBTHEORA=yes" >> config.mak
1618 1619
fi

1620 1621 1622 1623 1624 1625 1626
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 已提交
1627
  echo "CONFIG_FAADBIN=yes" >> config.mak
1628 1629
fi

1630 1631 1632 1633 1634
if test "$faac" = "yes" ; then
  echo "#define CONFIG_FAAC 1" >> $TMPH
  echo "CONFIG_FAAC=yes" >> config.mak
fi

1635 1636 1637 1638 1639
if test "$xvid" = "yes" ; then
  echo "#define CONFIG_XVID 1" >> $TMPH
  echo "CONFIG_XVID=yes" >> config.mak
fi

1640 1641 1642 1643 1644
if test "$x264" = "yes" ; then
  echo "#define CONFIG_X264 1" >> $TMPH
  echo "CONFIG_X264=yes" >> config.mak
fi

1645 1646 1647
if test "$mingw32" = "yes" ; then
  echo "#define CONFIG_WIN32 1" >> $TMPH
  echo "CONFIG_WIN32=yes" >> config.mak
1648 1649
  echo "HAVE_W32THREADS=yes" >> config.mak
  echo "#define HAVE_W32THREADS 1" >> $TMPH
1650
  echo "#define HAVE_THREADS 1" >> $TMPH
1651
  echo "#ifndef __MINGW32__" >> $TMPH
1652
  echo "#define __MINGW32__ 1" >> $TMPH
1653
  echo "#endif" >> $TMPH
1654 1655
fi

1656 1657 1658 1659 1660
if test "$os2" = "yes" ; then
  echo "#define CONFIG_OS2 1" >> $TMPH
  echo "CONFIG_OS2=yes" >> config.mak
fi

1661 1662 1663 1664
if test "$TARGET_OS" = "SunOS" ; then
  echo "#define CONFIG_SUNOS 1" >> $TMPH
fi

1665 1666 1667 1668 1669 1670
if test "$TARGET_OS" = "BeOS" ; then
  echo "HAVE_BEOSTHREADS=yes" >> config.mak
  echo "#define HAVE_BEOSTHREADS 1" >> $TMPH
  echo "#define HAVE_THREADS 1" >> $TMPH
fi

1671 1672 1673 1674 1675
if test "$darwin" = "yes"; then
  echo "#define CONFIG_DARWIN 1"  >> $TMPH
  echo "CONFIG_DARWIN=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1676
if test "$_malloc_h" = "yes" ; then
1677
  echo "#define HAVE_MALLOC_H 1" >> $TMPH
N
Nick Kurshev 已提交
1678
else
1679
  echo "#undef  HAVE_MALLOC_H" >> $TMPH
N
Nick Kurshev 已提交
1680 1681
fi

Z
Zdenek Kabelac 已提交
1682
if test "$_memalign" = "yes" ; then
1683 1684 1685 1686 1687
  echo "#define HAVE_MEMALIGN 1" >> $TMPH
else
  echo "#undef  HAVE_MEMALIGN" >> $TMPH
fi

1688 1689 1690 1691 1692
if test "$memalignhack" = "yes" ; then
  echo "#define MEMALIGN_HACK 1" >> $TMPH
fi


1693 1694 1695 1696 1697
if test "$netserver" = "yes" ; then
  echo "#define CONFIG_BEOS_NETSERVER 1" >> $TMPH
  echo "CONFIG_BEOS_NETSERVER=yes" >> config.mak
fi

1698 1699 1700 1701
if test "$need_inet_aton" = "yes" ; then
  echo "NEED_INET_ATON=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1702
if test "$simpleidct" = "yes" ; then
1703 1704 1705
  echo "#define SIMPLE_IDCT 1" >> $TMPH
fi

1706 1707 1708 1709 1710
if test "$ffserver" = "yes" ; then
  echo "#define CONFIG_FFSERVER 1" >> $TMPH
  echo "CONFIG_FFSERVER=yes" >> config.mak
fi

1711 1712 1713 1714
if test "$ffplay" = "yes" ; then
  echo "CONFIG_FFPLAY=yes" >> config.mak
fi

1715 1716 1717 1718 1719
if test "$gpl" = "yes" ; then
  echo "#define CONFIG_GPL 1" >> $TMPH
  echo "CONFIG_GPL=yes" >> config.mak
fi

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

1722 1723 1724 1725
if test "$optimize" = "small"; then
  echo "#define always_inline"  >> $TMPH
fi

1726 1727
# build tree in object directory if source path is different from current one
if test "$source_path_used" = "yes" ; then
1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754
    DIRS="\
         doc \
         libavformat \
         libavcodec \
         libavcodec/alpha \
         libavcodec/armv4l \
         libavcodec/i386 \
         libavcodec/sparc \
         libavcodec/mlib \
         libavcodec/ppc \
         libavcodec/liba52 \
         libavcodec/libpostproc \
         libavutil \
         tests \
         vhook \
         "
    FILES="\
          Makefile \
          libavformat/Makefile \
          libavcodec/Makefile \
          libavcodec/libpostproc/Makefile \
          libavutil/Makefile \
          tests/Makefile \
          vhook/Makefile \
          doc/Makefile \
          doc/texi2pod.pl \
          "
1755 1756 1757 1758
    for dir in $DIRS ; do
            mkdir -p $dir
    done
    for f in $FILES ; do
M
Michael Niedermayer 已提交
1759
        ln -sf "$source_path/$f" $f
1760
    done
1761 1762 1763
    echo "SRC_PATH=$source_path" >> config.mak
else
    echo "SRC_PATH='$source_path'" >> config.mak
1764 1765
fi

1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776
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

1777 1778 1779 1780
if test "$amr_nb" = "yes" ; then
  echo "#define AMR_NB 1" >> $TMPH
  echo "AMR_NB=yes" >> config.mak
  echo
Z
Zdenek Kabelac 已提交
1781 1782 1783 1784 1785
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 "
M
Michael Niedermayer 已提交
1786
  echo "http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26073-5??.zip"
1787
  echo "and extracted src to libavcodec/amr"
Z
Zdenek Kabelac 已提交
1788 1789 1790 1791 1792 1793
  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 "
M
Michael Niedermayer 已提交
1794
  echo "http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26104-5??.zip"
Z
Zdenek Kabelac 已提交
1795
  echo "and extracted the source to libavcodec/amr_float"
M
Michael Niedermayer 已提交
1796
  echo "and if u try this on an alpha, u may need to change Word32 to int in amr/typedef.h"
1797 1798 1799
  echo
fi

1800 1801 1802 1803
if test "$amr_if2" = "yes" ; then
  echo "AMR_CFLAGS=-DIF2=1" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1804 1805
fi

1806
for codec in $CODEC_LIST ; do
1807 1808
    echo "#define CONFIG_`echo $codec | tr a-z A-Z` 1" >> $TMPH
    echo "CONFIG_`echo $codec | tr a-z A-Z`=yes" >> config.mak
1809 1810
done

Z
Zdenek Kabelac 已提交
1811
diff $TMPH config.h >/dev/null 2>&1
1812
if test $? -ne 0 ; then
1813
        mv -f $TMPH config.h
N
Nick Kurshev 已提交
1814
else
1815
        echo "config.h is unchanged"
N
Nick Kurshev 已提交
1816 1817
fi

1818
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
1819 1820


D
Diego Biurrun 已提交
1821
# build pkg-config files libav*.pc and libpostproc.pc
1822 1823 1824 1825 1826 1827 1828 1829 1830 1831
# libavutil.pc
cat <<EOF >libavutil.pc
prefix=$prefix
exec_prefix=\${prefix}
libdir=\${exec_prefix}/lib
includedir=\${prefix}/include

Name: libavutil
Description: FFmpeg utility library
Version: $lavu_version
1832
Requires:
1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846
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
1847
Requires:
1848 1849 1850 1851
Conflicts:
Libs: \${libdir}/${LIBPREF}avutil${LIBSUF}
Cflags: -I\${includedir}
EOF
1852 1853 1854 1855 1856 1857 1858 1859 1860 1861

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

Name: libavcodec
Description: FFmpeg codec library
1862
Version: $lavc_version
1863
Requires: $pkg_requires libavutil = $lavu_version
1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876
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
1877
Version: $lavc_version
1878
Requires: $pkg_requires libavutil = $lavu_version
1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892
Conflicts:
Libs: \${libdir}/${LIBPREF}avcodec${LIBSUF} $extralibs
Cflags: -I\${includedir}
EOF

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

Name: libavformat
Description: FFmpeg container format library
1893
Version: $lavf_version
1894
Requires: $pkg_requires libavcodec = $lavc_version
1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907
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
1908
Version: $lavf_version
1909
Requires: $pkg_requires libavcodec = $lavc_version
1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924
Conflicts:
Libs: \${libdir}/${LIBPREF}avformat${LIBSUF} $extralibs
Cflags: -I\${includedir}
EOF


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

Name: libpostproc
Description: FFmpeg post processing library
1925
Version: $lavc_version
1926
Requires:
1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939
Conflicts:
Libs: -L\${libdir} -lpostproc
Cflags: -I\${includedir} -I\${includedir}/postproc
EOF

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

Name: libpostproc
Description: FFmpeg post processing library
1940
Version: $lavc_version
1941
Requires:
1942 1943 1944 1945
Conflicts:
Libs: \${libdir}/${LIBPREF}postproc${LIBSUF}
Cflags: -I\${includedir}
EOF