configure 48.6 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 1032 1033 1034 1035 1036 1037 1038 1039 1040
fi

# dlopen/dlfcn.h probing

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

ldl=-ldl

1041
if $cc $CFLAGS $LDFLAGS -o $TMPE $TMPC -ldl > /dev/null 2>&1 ; then
1042 1043 1044 1045
dlfcn=yes
dlopen=yes
fi

1046
if $cc $CFLAGS $LDFLAGS -o $TMPE $TMPC > /dev/null 2>&1 ; then
1047 1048 1049 1050 1051 1052 1053 1054 1055
dlfcn=yes
dlopen=yes
ldl=""
fi

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

1056
if $cc $CFLAGS $LDFLAGS -o $TMPE $TMPC -ldl > /dev/null 2>&1  ; then
1057 1058 1059
dlopen=yes
fi

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

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

M
Michael Niedermayer 已提交
1069 1070 1071 1072 1073
if test "$vhook" = "yes" -o "$a52bin" = "yes" -o "$faadbin" = "yes"; then
  extralibs="$extralibs $ldl"
fi


1074
##########################################
D
Diego Biurrun 已提交
1075
# imlib check
1076

1077 1078 1079 1080 1081 1082 1083
cat > $TMPC << EOF
#include <X11/Xlib.h>
#include <Imlib2.h>
int main( void ) { return (int) imlib_load_font("foo"); }
EOF

imlib2=no
1084
if $cc $CFLAGS $LDFLAGS -o $TMPE $TMPC -lImlib2 -lm > /dev/null 2>&1  ; then
1085
imlib2=yes
1086 1087
fi

1088
##########################################
D
Diego Biurrun 已提交
1089
# FreeType check
1090

1091 1092 1093 1094 1095 1096
cat > $TMPC << EOF
#include <ft2build.h>
int main( void ) { return (int) FT_Init_FreeType(0); }
EOF

freetype2=no
1097
if test "x$targetos" != "xBeOS" && test "$os2" != "yes"; then
1098
  if (freetype-config --version) >/dev/null 2>&1 ; then
1099
    if $cc -o $TMPE $TMPC `freetype-config --cflags` `freetype-config --libs`  > /dev/null 2>&1 ; then
1100
      freetype2=yes
1101
    fi
1102
  fi
1103 1104
fi

1105
##########################################
D
Diego Biurrun 已提交
1106
# SDL check
1107 1108 1109

cat > $TMPC << EOF
#include <SDL.h>
1110
#undef main /* We don't want SDL to override our main() */
1111 1112 1113 1114 1115
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
EOF

sdl_too_old=no
sdl=no
1116
if (sdl-config --version) >/dev/null 2>&1 ; then
1117
if $cc -o $TMPE `sdl-config --cflags` $TMPC `sdl-config --libs`  > /dev/null 2>&1  ; then
1118 1119 1120 1121 1122 1123 1124
_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 已提交
1125
fi
1126

1127
##########################################
D
Diego Biurrun 已提交
1128
# texi2html check
1129 1130

texi2html=no
1131
if (texi2html -version) >/dev/null 2>&1; then
1132 1133 1134
texi2html=yes
fi

1135 1136
if test "$network" = "yes" ; then
##########################################
D
Diego Biurrun 已提交
1137
# IPv6 check
1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158

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

1159
case "`$cc -v 2>&1 | grep version`" in
1160
    *gcc*)
1161 1162
        CFLAGS="-Wall -Wno-switch $CFLAGS"
        ;;
1163
    *)
1164
        ;;
1165 1166
esac

F
Fabrice Bellard 已提交
1167 1168 1169 1170
if test "$sdl" = "no" ; then
   ffplay=no
fi

1171
if test "$debug" = "yes"; then
1172
        CFLAGS="-g $CFLAGS"
1173 1174 1175
fi

if test "$optimize" = "small"; then
1176
#  CFLAGS=${CFLAGS//-O3/-Os}
1177 1178 1179
  CFLAGS="$CFLAGS -Os"
fi

1180
if test "$optimize" = "yes"; then
1181
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
1182 1183
        CFLAGS="$CFLAGS -O5"
        LDFLAGS="$LDFLAGS -O5"
1184
    else
1185
        CFLAGS="-O3 $CFLAGS"
1186
    fi
1187 1188
fi

1189 1190 1191 1192
# 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
1193
    if test "$cpu" = "x86_64" -o "$cpu" = "ia64" -o "$cpu" = "alpha" ; then
1194 1195 1196 1197 1198
      LIBOBJFLAGS="\$(PIC)"
    fi
  fi
fi

F
Fabrice Bellard 已提交
1199 1200 1201 1202
if test x"$bindir" = x""; then
bindir="${prefix}/bin"
fi

1203 1204 1205 1206
if test x"$libdir" = x""; then
libdir="${prefix}/lib"
fi

F
Fabrice Bellard 已提交
1207 1208 1209 1210
if test x"$mandir" = x""; then
mandir="${prefix}/man"
fi

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

if test "$vhook" = "yes" ; then
1262
echo "Imlib2 support   $imlib2"
D
Diego Biurrun 已提交
1263
echo "FreeType support $freetype2"
1264
fi
1265
echo "Sun medialib support"  $sunmlib
1266
echo "pthreads support"      $pthreads
Z
Zdenek Kabelac 已提交
1267 1268
echo "AMR-NB float support"  $amr_nb
echo "AMR-NB fixed support"  $amr_nb_fixed
1269
echo "AMR-WB float support"  $amr_wb
1270
echo "AMR-WB IF2 support"    $amr_if2
1271 1272 1273 1274
echo "network support      $network"
if test "$network" = "yes" ; then
echo "IPv6 support         $ipv6"
fi
1275 1276 1277 1278 1279
if test "$gpl" = "no" ; then
echo "License: LGPL"
else
echo "License: GPL"
fi
F
Fabrice Bellard 已提交
1280

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

1283 1284
date >> config.log
echo "   $0 $FFMPEG_CONFIGURATION" >> config.log
D
Diego Biurrun 已提交
1285 1286
echo "# Automatically generated by configure - do not modify!" > config.mak
echo "/* Automatically generated by configure - do not modify! */" > $TMPH
1287
echo "#define FFMPEG_CONFIGURATION "'"'"$FFMPEG_CONFIGURATION"'"' >> $TMPH
F
Fabrice Bellard 已提交
1288

1289 1290 1291 1292
echo "prefix=\$(DESTDIR)$prefix" >> config.mak
echo "libdir=\$(DESTDIR)$libdir" >> config.mak
echo "bindir=\$(DESTDIR)$bindir" >> config.mak
echo "mandir=\$(DESTDIR)$mandir" >> config.mak
1293
echo "MAKE=$make" >> config.mak
1294 1295
echo "CC=$cc" >> config.mak
echo "AR=$ar" >> config.mak
M
Michael Niedermayer 已提交
1296
echo "RANLIB=$ranlib" >> config.mak
1297
if test "$dostrip" = "yes" ; then
1298
echo "STRIP=$strip" >> config.mak
1299
echo "INSTALLSTRIP=$installstrip" >> config.mak
1300 1301 1302 1303
else
echo "STRIP=echo ignoring strip" >> config.mak
echo "INSTALLSTRIP=" >> config.mak
fi
1304

D
Diego Biurrun 已提交
1305
# SHCFLAGS is a copy of CFLAGS without -mdynamic-no-pic, used when building
1306 1307 1308 1309 1310 1311
# shared modules on OS/X (vhook/Makefile).
SHCFLAGS=$CFLAGS
if test "$needmdynamicnopic" = yes; then
   CFLAGS="$CFLAGS -mdynamic-no-pic"
fi

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

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 已提交
1463
if test "$lshared" = "yes" ; then
N
Nick Kurshev 已提交
1464
  echo "BUILD_SHARED=yes" >> config.mak
1465
  echo "PIC=-fPIC -DPIC" >> config.mak
L
Luca Barbato 已提交
1466 1467 1468 1469 1470 1471 1472 1473
  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 已提交
1474
fi
1475
echo "EXTRALIBS=$extralibs" >> config.mak
M
Michael Niedermayer 已提交
1476
version=`grep '#define FFMPEG_VERSION ' "$source_path/libavcodec/avcodec.h" |
1477 1478
 cut -d '"' -f 2`
echo "VERSION=$version" >>config.mak
D
Diego Biurrun 已提交
1479
# If you do not want to use encoders, disable them.
1480
echo "#define CONFIG_ENCODERS 1" >> $TMPH
1481 1482
echo "CONFIG_ENCODERS=yes" >> config.mak

D
Diego Biurrun 已提交
1483
# If you do not want to use decoders, disable them.
1484
echo "#define CONFIG_DECODERS 1" >> $TMPH
1485 1486
echo "CONFIG_DECODERS=yes" >> config.mak

1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498
# 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 已提交
1499 1500 1501 1502
# AC3
if test "$a52" = "yes" ; then
  echo "#define CONFIG_AC3 1" >> $TMPH
  echo "CONFIG_AC3=yes" >> config.mak
1503

F
Fabrice Bellard 已提交
1504 1505 1506 1507 1508 1509
  if test "$a52bin" = "yes" ; then
    echo "#define CONFIG_A52BIN 1" >> $TMPH
    echo "CONFIG_A52BIN=yes" >> config.mak
  fi
fi

1510 1511 1512 1513 1514 1515
# DTS
if test "$dts" = "yes" ; then
  echo "#define CONFIG_DTS 1" >> $TMPH
  echo "CONFIG_DTS=yes" >> config.mak
fi

1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526
# 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 已提交
1527
# MPEG audio high precision mode
1528 1529 1530 1531
if test "$mpegaudio_hp" = "yes" ; then
  echo "#define CONFIG_MPEGAUDIO_HP 1" >> $TMPH
fi

F
Fabrice Bellard 已提交
1532 1533 1534 1535 1536
if test "$v4l" = "yes" ; then
  echo "#define CONFIG_VIDEO4LINUX 1" >> $TMPH
  echo "CONFIG_VIDEO4LINUX=yes" >> config.mak
fi

1537 1538 1539 1540 1541
if test "$bktr" = "yes" ; then
  echo "#define CONFIG_BKTR 1" >> $TMPH
  echo "CONFIG_BKTR=yes" >> config.mak
fi

1542 1543 1544 1545 1546
if test "$dv1394" = "yes" ; then
  echo "#define CONFIG_DV1394 1" >> $TMPH
  echo "CONFIG_DV1394=yes" >> config.mak
fi

1547 1548 1549 1550 1551
if test "$dc1394" = "yes" ; then
  echo "#define CONFIG_DC1394 1" >> $TMPH
  echo "CONFIG_DC1394=yes" >> config.mak
fi

1552 1553 1554 1555 1556 1557 1558 1559
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 已提交
1560 1561 1562
if test "$audio_oss" = "yes" ; then
  echo "#define CONFIG_AUDIO_OSS 1" >> $TMPH
  echo "CONFIG_AUDIO_OSS=yes" >> config.mak
Z
Zdenek Kabelac 已提交
1563 1564
fi

1565 1566 1567 1568 1569
if test "$audio_beos" = "yes" ; then
  echo "#define CONFIG_AUDIO_BEOS 1" >> $TMPH
  echo "CONFIG_AUDIO_BEOS=yes" >> config.mak
fi

F
Fabrice Bellard 已提交
1570 1571 1572
if test "$network" = "yes" ; then
  echo "#define CONFIG_NETWORK 1" >> $TMPH
  echo "CONFIG_NETWORK=yes" >> config.mak
1573
fi
1574

1575 1576 1577 1578
if test "$ipv6" = "yes" ; then
  echo "#define CONFIG_IPV6 1" >> $TMPH
fi

1579 1580 1581 1582 1583
if test "$zlib" = "yes" ; then
  echo "#define CONFIG_ZLIB 1" >> $TMPH
  echo "CONFIG_ZLIB=yes" >> config.mak
fi

1584 1585 1586 1587 1588
if test "$libgsm" = "yes" ; then
  echo "#define CONFIG_LIBGSM 1" >> $TMPH
  echo "CONFIG_LIBGSM=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1589
if test "$mp3lame" = "yes" ; then
1590
  echo "#define CONFIG_MP3LAME 1" >> $TMPH
1591 1592 1593
  echo "CONFIG_MP3LAME=yes" >> config.mak
fi

1594
if test "$libogg" = "yes" ; then
N
Nilesh Bansal 已提交
1595 1596 1597 1598
  echo "#define CONFIG_LIBOGG 1" >> $TMPH
  echo "CONFIG_LIBOGG=yes" >> config.mak
fi

1599
if test "$vorbis" = "yes" ; then
N
Nilesh Bansal 已提交
1600 1601 1602 1603 1604 1605 1606
  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
1607 1608
fi

1609 1610 1611 1612 1613 1614 1615
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 已提交
1616
  echo "CONFIG_FAADBIN=yes" >> config.mak
1617 1618
fi

1619 1620 1621 1622 1623
if test "$faac" = "yes" ; then
  echo "#define CONFIG_FAAC 1" >> $TMPH
  echo "CONFIG_FAAC=yes" >> config.mak
fi

1624 1625 1626 1627 1628
if test "$xvid" = "yes" ; then
  echo "#define CONFIG_XVID 1" >> $TMPH
  echo "CONFIG_XVID=yes" >> config.mak
fi

1629 1630 1631 1632 1633
if test "$x264" = "yes" ; then
  echo "#define CONFIG_X264 1" >> $TMPH
  echo "CONFIG_X264=yes" >> config.mak
fi

1634 1635 1636
if test "$mingw32" = "yes" ; then
  echo "#define CONFIG_WIN32 1" >> $TMPH
  echo "CONFIG_WIN32=yes" >> config.mak
1637 1638
  echo "HAVE_W32THREADS=yes" >> config.mak
  echo "#define HAVE_W32THREADS 1" >> $TMPH
1639
  echo "#define HAVE_THREADS 1" >> $TMPH
1640
  echo "#ifndef __MINGW32__" >> $TMPH
1641
  echo "#define __MINGW32__ 1" >> $TMPH
1642
  echo "#endif" >> $TMPH
1643 1644
fi

1645 1646 1647 1648 1649
if test "$os2" = "yes" ; then
  echo "#define CONFIG_OS2 1" >> $TMPH
  echo "CONFIG_OS2=yes" >> config.mak
fi

1650 1651 1652 1653
if test "$TARGET_OS" = "SunOS" ; then
  echo "#define CONFIG_SUNOS 1" >> $TMPH
fi

1654 1655 1656 1657 1658 1659
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

1660 1661 1662 1663 1664
if test "$darwin" = "yes"; then
  echo "#define CONFIG_DARWIN 1"  >> $TMPH
  echo "CONFIG_DARWIN=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1665
if test "$_malloc_h" = "yes" ; then
1666
  echo "#define HAVE_MALLOC_H 1" >> $TMPH
N
Nick Kurshev 已提交
1667
else
1668
  echo "#undef  HAVE_MALLOC_H" >> $TMPH
N
Nick Kurshev 已提交
1669 1670
fi

Z
Zdenek Kabelac 已提交
1671
if test "$_memalign" = "yes" ; then
1672 1673 1674 1675 1676
  echo "#define HAVE_MEMALIGN 1" >> $TMPH
else
  echo "#undef  HAVE_MEMALIGN" >> $TMPH
fi

1677 1678 1679 1680 1681
if test "$memalignhack" = "yes" ; then
  echo "#define MEMALIGN_HACK 1" >> $TMPH
fi


1682 1683 1684 1685 1686
if test "$netserver" = "yes" ; then
  echo "#define CONFIG_BEOS_NETSERVER 1" >> $TMPH
  echo "CONFIG_BEOS_NETSERVER=yes" >> config.mak
fi

1687 1688 1689 1690
if test "$need_inet_aton" = "yes" ; then
  echo "NEED_INET_ATON=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1691
if test "$simpleidct" = "yes" ; then
1692 1693 1694
  echo "#define SIMPLE_IDCT 1" >> $TMPH
fi

1695 1696 1697 1698 1699
if test "$ffserver" = "yes" ; then
  echo "#define CONFIG_FFSERVER 1" >> $TMPH
  echo "CONFIG_FFSERVER=yes" >> config.mak
fi

1700 1701 1702 1703
if test "$ffplay" = "yes" ; then
  echo "CONFIG_FFPLAY=yes" >> config.mak
fi

1704 1705 1706 1707 1708
if test "$gpl" = "yes" ; then
  echo "#define CONFIG_GPL 1" >> $TMPH
  echo "CONFIG_GPL=yes" >> config.mak
fi

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

1711 1712 1713 1714
if test "$optimize" = "small"; then
  echo "#define always_inline"  >> $TMPH
fi

1715 1716
# build tree in object directory if source path is different from current one
if test "$source_path_used" = "yes" ; then
1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743
    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 \
          "
1744 1745 1746 1747
    for dir in $DIRS ; do
            mkdir -p $dir
    done
    for f in $FILES ; do
M
Michael Niedermayer 已提交
1748
        ln -sf "$source_path/$f" $f
1749
    done
1750 1751 1752
    echo "SRC_PATH=$source_path" >> config.mak
else
    echo "SRC_PATH='$source_path'" >> config.mak
1753 1754
fi

1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765
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

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

1789 1790 1791 1792
if test "$amr_if2" = "yes" ; then
  echo "AMR_CFLAGS=-DIF2=1" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1793 1794
fi

1795
for codec in $CODEC_LIST ; do
1796 1797
    echo "#define CONFIG_`echo $codec | tr a-z A-Z` 1" >> $TMPH
    echo "CONFIG_`echo $codec | tr a-z A-Z`=yes" >> config.mak
1798 1799
done

Z
Zdenek Kabelac 已提交
1800
diff $TMPH config.h >/dev/null 2>&1
1801
if test $? -ne 0 ; then
1802
        mv -f $TMPH config.h
N
Nick Kurshev 已提交
1803
else
1804
        echo "config.h is unchanged"
N
Nick Kurshev 已提交
1805 1806
fi

1807
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
1808 1809


D
Diego Biurrun 已提交
1810
# build pkg-config files libav*.pc and libpostproc.pc
1811 1812 1813 1814 1815 1816 1817 1818 1819 1820
# 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
1821
Requires:
1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835
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
1836
Requires:
1837 1838 1839 1840
Conflicts:
Libs: \${libdir}/${LIBPREF}avutil${LIBSUF}
Cflags: -I\${includedir}
EOF
1841 1842 1843 1844 1845 1846 1847 1848 1849 1850

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

Name: libavcodec
Description: FFmpeg codec library
1851
Version: $lavc_version
1852
Requires: $pkg_requires libavutil = $lavu_version
1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865
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
1866
Version: $lavc_version
1867
Requires: $pkg_requires libavutil = $lavu_version
1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881
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
1882
Version: $lavf_version
1883
Requires: $pkg_requires libavcodec = $lavc_version
1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896
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
1897
Version: $lavf_version
1898
Requires: $pkg_requires libavcodec = $lavc_version
1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913
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
1914
Version: $lavc_version
1915
Requires:
1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928
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
1929
Version: $lavc_version
1930
Requires:
1931 1932 1933 1934
Conflicts:
Libs: \${libdir}/${LIBPREF}postproc${LIBSUF}
Cflags: -I\${includedir}
EOF