configure 52.1 KB
Newer Older
F
Fabrice Bellard 已提交
1
#!/bin/sh
2
#
F
Fabrice Bellard 已提交
3
# ffmpeg configure script (c) 2000, 2001, 2002 Fabrice Bellard
4
#
5 6 7 8 9 10 11 12 13 14 15

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
echo "  --enable-mingw32         enable MinGW native/cross Windows compile"
G
Gildas Bazin 已提交
29
echo "  --enable-mingwce         enable MinGW native/cross WinCE compile"
D
Diego Biurrun 已提交
30
echo "  --enable-a52             enable GPLed A52 support [default=no]"
31
echo "  --enable-a52bin          open liba52.so.0 at runtime [default=no]"
D
Diego Biurrun 已提交
32 33
echo "  --enable-dts             enable GPLed DTS support [default=no]"
echo "  --enable-pp              enable GPLed postprocessing support [default=no]"
34 35
echo "  --enable-static          build static libraries [default=yes]"
echo "  --disable-static         do not build static libraries [default=no]"
36
echo "  --enable-shared          build shared libraries [default=no]"
37
echo "  --disable-shared         do not build shared libraries [default=yes]"
38 39
echo "  --enable-amr_nb          enable amr_nb float audio codec"
echo "  --enable-amr_nb-fixed    use fixed point for amr-nb codec"
40
echo "  --enable-amr_wb          enable amr_wb float audio codec"
D
Diego Biurrun 已提交
41
echo "  --enable-amr_if2         enable amr_wb IF2 audio codec"
42
echo "  --enable-sunmlib         use Sun medialib [default=no]"
43
echo "  --enable-pthreads        use pthreads [default=no]"
D
Diego Biurrun 已提交
44 45 46 47
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]"
48 49
echo ""
echo "Advanced options (experts only):"
D
Diego Biurrun 已提交
50 51
echo "  --source-path=PATH       path to source code [$source_path]"
echo "  --cross-prefix=PREFIX    use PREFIX for compilation tools [$cross_prefix]"
52 53 54 55 56
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]"
57
echo "  --build-suffix=SUFFIX    suffix for application specific build []"
58
echo "  --cpu=CPU                force cpu to CPU  [$cpu]"
D
Diego Biurrun 已提交
59 60 61 62 63
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"
64
echo "  --disable-iwmmxt         disable iwmmxt usage"
65 66 67 68
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]"
L
Luca Abeni 已提交
69
echo "  --disable-v4l2           disable video4linux2 grabbing [default=no]"
70
echo "  --disable-bktr           disable bktr video grabbing [default=no]"
71 72 73
echo "  --disable-dv1394         disable DV1394 grabbing [default=no]"
echo "  --disable-network        disable network support [default=no]"
echo "  --disable-zlib           disable zlib [default=no]"
74
echo "  --disable-lzo            disable lzo [default=no]"
75 76 77 78 79 80
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 已提交
81
echo "                           MPEG audio decoding [default=no]"
82
echo "  --disable-protocols      disable I/O protocols support [default=no]"
83 84 85
echo "  --disable-ffserver       disable ffserver build"
echo "  --disable-ffplay         disable ffplay build"
echo "  --enable-small           optimize for size instead of speed"
86
echo "  --enable-memalign-hack   emulate memalign, interferes with memory debuggers"
87
echo "  --disable-strip          disable stripping of executables and shared libraries"
88 89 90 91
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"
92
echo "  --disable-encoders       disables all encoders"
93
echo "  --disable-decoders       disables all decoders"
94 95
echo "  --disable-muxers         disables all muxers"
echo "  --disable-demuxers       disables all demuxers"
96
echo ""
D
Diego Biurrun 已提交
97
echo "NOTE: Object files are built at the place where configure is launched."
98 99 100
exit 1
fi

101
# set temporary file name
Z
Zdenek Kabelac 已提交
102
if test ! -z "$TMPDIR" ; then
103
    TMPDIR1="${TMPDIR}"
Z
Zdenek Kabelac 已提交
104
elif test ! -z "$TEMPDIR" ; then
105
    TMPDIR1="${TEMPDIR}"
N
Nick Kurshev 已提交
106
else
107
    TMPDIR1="/tmp"
N
Nick Kurshev 已提交
108 109
fi

110 111
TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
112
TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}"
113 114 115
TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"

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

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

419
;;
420 421
*) ;;
esac
F
Fabrice Bellard 已提交
422

D
Diego Biurrun 已提交
423
# From MPlayer configure. We need TARGET_OS available
424
# to the Makefile, so it can distinguish between flavors
D
Diego Biurrun 已提交
425
# of AltiVec on PowerPC.
426 427
TARGET_OS=`( uname -s ) 2>&1`
  case "$TARGET_OS" in
A
Alex Beregszaszi 已提交
428
  Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU|BeOS|MorphOS)
429 430 431 432 433 434 435 436 437 438 439 440 441 442 443
    ;;
  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

444
# find source path
445
source_path="`dirname $0`"
446 447 448 449
source_path_used="yes"
if test -z "$source_path" -o "$source_path" = "." ; then
    source_path=`pwd`
    source_path_used="no"
450 451
else
    source_path="`cd \"$source_path\"; pwd`"
F
Fabrice Bellard 已提交
452 453
fi

454 455 456 457 458
FFMPEG_CONFIGURATION=" "
for opt do
  FFMPEG_CONFIGURATION="$FFMPEG_CONFIGURATION""$opt "
done

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

F
Fabrice Bellard 已提交
461 462
for opt do
  case "$opt" in
463
  --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`; force_prefix=yes
F
Fabrice Bellard 已提交
464
  ;;
465
  --libdir=*) libdir=`echo $opt | cut -d '=' -f 2`; force_libdir=yes
466
  ;;
F
Fabrice Bellard 已提交
467 468
  --mandir=*) mandir=`echo $opt | cut -d '=' -f 2`
  ;;
469 470 471 472
  --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
  ;;
  --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
  ;;
473
  --cc=*) cc=`echo $opt | cut -d '=' -f 2-`
F
Fabrice Bellard 已提交
474
  ;;
475 476
  --make=*) make=`echo $opt | cut -d '=' -f 2`
  ;;
477
  --extra-cflags=*) CFLAGS="$CFLAGS ${opt#--extra-cflags=}"
478
  ;;
479
  --extra-ldflags=*) LDFLAGS="$LDFLAGS ${opt#--extra-ldflags=}"
480 481 482
  ;;
  --extra-libs=*) extralibs=${opt#--extra-libs=}
  ;;
483 484
  --build-suffix=*) BUILDSUF=${opt#--build-suffix=}
  ;;
F
Fabrice Bellard 已提交
485 486
  --cpu=*) cpu=`echo $opt | cut -d '=' -f 2`
  ;;
487 488
  --tune=*) tune=`echo $opt | cut -d '=' -f 2`
  ;;
489 490
  --powerpc-perf-enable) powerpc_perf="yes"
  ;;
F
Fabrice Bellard 已提交
491 492
  --disable-mmx) mmx="no"
  ;;
493 494
  --disable-iwmmxt) iwmmxt="no"
  ;;
495 496
  --disable-altivec) altivec="no"
  ;;
F
Fabrice Bellard 已提交
497 498
  --enable-gprof) gprof="yes"
  ;;
F
Fabrice Bellard 已提交
499 500
  --disable-v4l) v4l="no"
  ;;
L
Luca Abeni 已提交
501 502
  --disable-v4l2) v4l2="no"
  ;;
503 504
  --disable-bktr) bktr="no"
  ;;
F
Fabrice Bellard 已提交
505 506
  --disable-audio-oss) audio_oss="no"
  ;;
507 508
  --disable-audio-beos) audio_beos="no"
  ;;
509 510
  --disable-dv1394) dv1394="no"
  ;;
511
  --disable-network) network="no"; ffserver="no"
F
Fabrice Bellard 已提交
512
  ;;
513 514
  --disable-zlib) zlib="no"
  ;;
515 516
  --disable-lzo) lzo="no"
  ;;
517
  --enable-a52) a52="yes"
518
  ;;
M
Michael Niedermayer 已提交
519
  --enable-a52bin) a52bin="yes"
Z
Zdenek Kabelac 已提交
520
  ;;
521 522
  --enable-dts) dts="yes"
    extralibs="$extralibs -ldts"
523
  ;;
524
  --enable-pp) pp="yes"
525
  ;;
526
  --enable-libgsm) libgsm="yes"
527
    extralibs="$extralibs -lgsm"
528
  ;;
529 530
  --enable-mp3lame) mp3lame="yes"
    extralibs="$extralibs -lmp3lame"
531
  ;;
532
  --enable-libogg) libogg="yes"
533 534
    extralibs="$extralibs -logg"
    pkg_requires="$pkg_requires ogg >= 1.1"
N
Nilesh Bansal 已提交
535
  ;;
536
  --enable-vorbis) vorbis="yes"
537 538
    extralibs="$extralibs -lvorbis -lvorbisenc"
    pkg_requires="$pkg_requires vorbis vorbisenc"
539
  ;;
N
Nilesh Bansal 已提交
540
  --enable-theora) theora="yes"
541 542
    extralibs="$extralibs -ltheora"
    pkg_requires="$pkg_requires theora"
N
Nilesh Bansal 已提交
543
  ;;
Z
Zdenek Kabelac 已提交
544
  --enable-faad) faad="yes"
545
    extralibs="$extralibs -lfaad"
Z
Zdenek Kabelac 已提交
546 547 548
  ;;
  --enable-faadbin) faadbin="yes"
  ;;
549 550
  --enable-faac) faac="yes"
    extralibs="$extralibs -lfaac"
551
  ;;
552
  --enable-xvid) xvid="yes"
553
    extralibs="$extralibs -lxvidcore"
554
  ;;
555 556
  --enable-x264) x264="yes"
    extralibs="$extralibs -lx264"
557
  ;;
558
  --enable-dc1394) dc1394="yes"
559 560
    extralibs="$extralibs -ldc1394_control -lraw1394"
    pkg_requires="$pkg_requires libraw1394"
561
  ;;
562 563
  --disable-vhook) vhook="no"
  ;;
564
  --disable-simple_idct) simpleidct="no"
565
  ;;
566 567
  --enable-mingw32) mingw32="yes"
  ;;
G
Gildas Bazin 已提交
568 569
  --enable-mingwce) mingwce="yes"
  ;;
570 571 572 573
  --enable-static) lstatic="yes"
  ;;
  --disable-static) lstatic="no"
  ;;
574
  --enable-shared) lshared="yes"
N
Nick Kurshev 已提交
575
  ;;
576 577
  --disable-shared) lshared="no"
  ;;
578 579 580 581
  --disable-debug) debug="no"
  ;;
  --disable-opts) optimize="no"
  ;;
582 583
  --disable-mpegaudio-hp) mpegaudio_hp="no"
  ;;
584 585
  --disable-protocols) protocols="no"; network="no"; ffserver="no"
  ;;
586 587
  --disable-ffserver) ffserver="no"
  ;;
588 589
  --disable-ffplay) ffplay="no"
  ;;
590
  --enable-small) optimize="small"
591
  ;;
592 593
  --enable-amr_nb) amr_nb="yes"
  ;;
Z
Zdenek Kabelac 已提交
594 595
  --enable-amr_nb-fixed) amr_nb_fixed="yes"
  ;;
596
  --enable-amr_wb) amr_wb="yes"
597
  ;;
598 599
  --enable-amr_if2) amr_if2="yes"
  ;;
600 601
  --enable-sunmlib) sunmlib="yes"
  ;;
602 603
  --enable-pthreads) pthreads="yes"
  ;;
604 605
  --enable-gpl) gpl="yes"
  ;;
606 607
  --enable-memalign-hack) memalignhack="yes"
  ;;
608 609
  --disable-strip) dostrip="no"
  ;;
610
  --enable-encoder=*) CODEC_LIST="$CODEC_LIST ${opt#--enable-encoder=}_encoder"
611
  ;;
612 613 614 615 616
  --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##\"`"
617 618 619
  ;;
  --disable-encoders) CODEC_LIST="`echo $CODEC_LIST | sed 's/[-_a-zA-Z0-9]*encoder//g'`"
  ;;
620 621
  --disable-decoders) CODEC_LIST="`echo $CODEC_LIST | sed 's/[-_a-zA-Z0-9]*decoder//g'`"
  ;;
622
  --disable-muxers) muxers="no"; ffserver="no"
623 624 625
  ;;
  --disable-demuxers) demuxers="no"
  ;;
626 627 628 629 630
  *)
  echo "Unknown option \"$opt\"."
  echo "See $0 --help for available options."
  exit 1
  ;;
F
Fabrice Bellard 已提交
631 632 633
  esac
done

634 635 636 637 638 639 640 641 642 643 644
# we need to build at least one lib type
if test "$lstatic" = "no" && test "$lshared" = "no" ; then
    cat <<EOF
At least one library type must be built.
Specify --enable-static to build the static libraries or --enable-shared to
build the shared libraries as well. To only build the shared libraries specify
--disable-static in addition to --enable-shared.
EOF
    exit 1;
fi

N
Nilesh Bansal 已提交
645
if test "$theora" = "yes" ; then
646
    if test "$libogg" = "no"; then
D
Diego Biurrun 已提交
647
        echo "libogg must be enabled to enable Theora."
N
Nilesh Bansal 已提交
648 649 650 651 652 653
        fail="yes"
        theora="no"
    fi
fi

if test "$vorbis" = "yes" ; then
654
    if test "$libogg" = "no"; then
D
Diego Biurrun 已提交
655
        echo "libogg must be enabled to enable Vorbis."
N
Nilesh Bansal 已提交
656 657 658 659 660
        fail="yes"
        vorbis="no"
    fi
fi

661
if test "$gpl" != "yes"; then
662
    if test "$pp" != "no"; then
D
Diego Biurrun 已提交
663
        echo "The Postprocessing code is under GPL and --enable-gpl is not specified."
664 665 666 667
        fail="yes"
    fi

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

672
    if test "$xvid" != "no"; then
D
Diego Biurrun 已提交
673
        echo "libxvidcore is under GPL and --enable-gpl is not specified."
674 675 676
        fail="yes"
    fi

677
    if test "$x264" != "no"; then
D
Diego Biurrun 已提交
678
        echo "x264 is under GPL and --enable-gpl is not specified."
679 680 681
        fail="yes"
    fi

682
    if test "$dts" != "no"; then
D
Diego Biurrun 已提交
683
        echo "libdts is under GPL and --enable-gpl is not specified."
684 685
        fail="yes"
    fi
686

687 688 689 690 691
    if test "$faad" != "no" -o "$faadbin" != "no"; then
        cat > $TMPC << EOF
            #include <faad.h>
            int main( void ) { return 0; }
EOF
692

693 694 695 696 697 698 699 700 701
        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 已提交
702
                echo "FAAD2 is under GPL and --enable-gpl is not specified."
703 704 705 706 707
                fail="yes"
            fi
        else
            faad="no"
            faadbin="no"
D
Diego Biurrun 已提交
708
            echo "FAAD test failed."
709 710
        fi
    fi
711

712

M
10l  
Michael Niedermayer 已提交
713
    if test "$fail" = "yes"; then
714 715 716 717
        exit 1
    fi
fi

D
Diego Biurrun 已提交
718
# compute MMX state
719
if test $mmx = "default"; then
720
    if test $cpu = "x86" -o $cpu = "x86_64"; then
721 722 723 724 725 726
        mmx="yes"
    else
        mmx="no"
    fi
fi

727 728 729
# check iwmmxt support
if test $iwmmxt = "default" -a $cpu = "armv4l"; then
    cat > $TMPC << EOF
730
        int main(void) {
731 732 733 734 735 736 737 738 739 740
        __asm__ __volatile__ ("wunpckelub wr6, wr4");
        }
EOF

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

741
#Darwin CC versions
742
needmdynamicnopic="no"
743
if test $targetos = Darwin; then
744
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
745
        CFLAGS="$CFLAGS -qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto"
746
    else
747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764
        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
765 766 767
    fi
fi

768 769 770 771 772 773 774 775 776
# Can only do AltiVec on PowerPC
if test $altivec = "default"; then
    if test $cpu = "powerpc"; then
        altivec="yes"
    else
        altivec="no"
    fi
fi

777 778
# Add processor-specific flags
TUNECPU="generic"
779
POWERPCMODE="32bits"
780 781
if test $tune != "generic"; then
    case $tune in
782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829
        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
830
            POWERPCMODE="64bits"
831 832 833 834 835 836 837
        ;;
        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."
        ;;
838 839 840
    esac
fi

841
# AltiVec flags: The FSF version of GCC differs from the Apple version
842 843
if test $cpu = "powerpc"; then
    if test $altivec = "yes"; then
844
        if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
S
Steven M. Schultz 已提交
845
            CFLAGS="$CFLAGS -faltivec"
846 847 848 849 850 851
        else
            CFLAGS="$CFLAGS -maltivec -mabi=altivec"
        fi
    fi
fi

D
Diego Biurrun 已提交
852
# check if we have <altivec.h>
853 854 855 856 857 858
cat > $TMPC << EOF
#include <altivec.h>
int main( void ) { return 0; }
EOF

_altivec_h="no"
859
if $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
860 861 862
_altivec_h="yes"
fi

D
Diego Biurrun 已提交
863
# check if our compiler supports Motorola AltiVec C API
864
if test $altivec = "yes"; then
865
if test $_altivec_h = "yes"; then
866
cat > $TMPC << EOF
867
#include <altivec.h>
868 869 870 871 872 873
int main(void) {
    vector signed int v1, v2, v3;
    v1 = vec_add(v2,v3);
    return 0;
}
EOF
874 875 876 877 878 879 880 881 882
else
cat > $TMPC << EOF
int main(void) {
    vector signed int v1, v2, v3;
    v1 = vec_add(v2,v3);
    return 0;
}
EOF
fi
883
$cc $CFLAGS -o $TMPE $TMPC 2> /dev/null || altivec="no"
884 885
fi

D
Diego Biurrun 已提交
886
# mmi only available on mips
887 888 889 890 891 892 893 894
if test $mmi = "default"; then
    if test $cpu = "mips"; then
        mmi="yes"
    else
        mmi="no"
    fi
fi

D
Diego Biurrun 已提交
895
# check if our compiler supports mmi
896 897 898 899 900 901 902
if test $mmi = "yes"; then
cat > $TMPC << EOF
int main(void) {
    __asm__ ("lq \$2, 0(\$2)");
    return 0;
}
EOF
903
$cc -o $TMPE $TMPC 2> /dev/null || mmi="no"
904 905
fi

G
Gildas Bazin 已提交
906
if test "$mingw32" = "yes" -o "$mingwce" = "yes"; then
907 908 909 910 911 912 913 914 915
    if test "$lshared" = "yes" && test "$lstatic" = "yes" ; then
        cat <<EOF
You can only build one library type at once on MinGW.
Specify --disable-static --enable-shared to only build
the shared libraries. To build only the static libraries
you don't need to pass additional options.
EOF
        exit 1
    fi
916
    v4l="no"
L
Luca Abeni 已提交
917
    v4l2="no"
918
    bktr="no"
919
    audio_oss="no"
920
    dv1394="no"
921
    dc1394="no"
F
Fabrice Bellard 已提交
922
    ffserver="no"
923
    network="no"
924
if test "$mingwce" = "yes"; then
G
Gildas Bazin 已提交
925 926
    protocols="no"
fi
F
Fabrice Bellard 已提交
927 928 929
    SLIBPREF=""
    SLIBSUF=".dll"
    EXESUF=".exe"
930 931
    if test "$force_prefix" != yes; then prefix="/c/Program Files/FFmpeg"; fi
    if test "$force_libdir" != yes; then bindir="$prefix"; fi
932 933
fi

934 935
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
M
Michael Niedermayer 已提交
936
ranlib="${cross_prefix}${ranlib}"
937 938
strip="${cross_prefix}${strip}"

F
Fabrice Bellard 已提交
939 940
if test -z "$cross_prefix" ; then

941
# ---
D
Diego Biurrun 已提交
942
# big/little-endian test
943 944 945
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
946 947
        volatile uint32_t i=0x01234567;
        return (*((uint8_t*)(&i))) == 0x67;
948 949 950
}
EOF

951 952
if $cc -o $TMPE $TMPC 2>/dev/null ; then
$TMPE && bigendian="yes"
953 954 955 956
else
echo big/little test failed
fi

F
Fabrice Bellard 已提交
957 958
else

D
Diego Biurrun 已提交
959
# programs cannot be launched if cross compiling, so make a static guess
F
Fabrice Bellard 已提交
960 961 962 963 964 965
if test "$cpu" = "powerpc" -o "$cpu" = "mips" ; then
    bigendian="yes"
fi

fi

966 967 968 969 970 971 972 973 974 975 976
# ---
# *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"

977 978 979 980 981
# ---
# *int_fast* test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
982 983
        volatile uint_fast64_t i=0x01234567;
        return 0;
984 985 986 987 988
}
EOF

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

N
Nick Kurshev 已提交
989 990 991 992 993 994 995 996 997 998
# ---
# check availability of some header files

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

_memalign=no
_malloc_h=no
999
if $cc -o $TMPE $TMPC 2> /dev/null ; then
N
Nick Kurshev 已提交
1000 1001 1002 1003
_malloc_h=yes
_memalign=yes
# check for memalign - atmos
cat > $TMPC << EOF
1004
#include <stdio.h>
N
Nick Kurshev 已提交
1005 1006 1007 1008 1009 1010 1011
#include <malloc.h>
int main ( void ) {
char *string = NULL;
string = memalign(64, sizeof(char));
return 0;
}
EOF
1012
$cc -o $TMPE $TMPC 2> /dev/null || _memalign=no
N
Nick Kurshev 已提交
1013 1014
fi

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

1020 1021 1022 1023 1024 1025 1026 1027 1028 1029
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

1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040
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
1041
$cc $CFLAGS $LDFLAGS -o $TMPE $TMPC -lz 2> /dev/null || zlib="no"
1042
# $TMPE 2> /dev/null > /dev/null || zlib="no"
1043 1044 1045 1046 1047 1048
# XXX: more tests needed - runtime test
fi
if test "$zlib" = "yes"; then
extralibs="$extralibs -lz"
fi

1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065
if test "$lzo" = "yes" -a "$gpl" = "yes"; then
# check for liblzo
cat > $TMPC << EOF
#include <lzo1x.h>
int main ( void ) {
lzo_init();
return 0;
}
EOF
$cc $CFLAGS $LDFLAGS -o $TMPE $TMPC -llzo 2> /dev/null || lzo="no"
else
lzo="no"
fi
if test "$lzo" = "yes"; then
extralibs="$extralibs -llzo"
fi

1066 1067 1068 1069 1070 1071 1072 1073
# 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"
1074
if $cc $CFLAGS $LDFLAGS $extralibs -o $TMPE $TMPC 2> /dev/null ; then
1075
  have_lrintf="yes"
1076 1077 1078 1079 1080
  # 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
1081 1082
fi

F
Falk Hüffner 已提交
1083 1084 1085 1086 1087 1088 1089 1090 1091
_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

1092 1093 1094
# test gcc version to see if vector builtins can be used
# currently only used on i386 for MMX builtins
cat > $TMPC << EOF
1095
#include <xmmintrin.h>
1096
int main(void) {
1097 1098 1099 1100 1101 1102 1103 1104 1105
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
return 0;
#else
#error no vector builtins
#endif
}
EOF

builtin_vector=no
1106
if $cc -msse -o $TMPO $TMPC 2> /dev/null ; then
1107
  builtin_vector=yes
1108 1109
fi

1110
# Probe for -Wdeclaration-after-statement
D
Diego Biurrun 已提交
1111
if test "$cc" = "gcc"; then
1112 1113 1114 1115 1116 1117 1118 1119 1120
  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

1121 1122 1123 1124 1125 1126 1127 1128 1129
# dlopen/dlfcn.h probing

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

ldl=-ldl

1130
if $cc $CFLAGS $LDFLAGS -o $TMPE $TMPC -ldl > /dev/null 2>&1 ; then
1131 1132 1133 1134
dlfcn=yes
dlopen=yes
fi

1135
if $cc $CFLAGS $LDFLAGS -o $TMPE $TMPC > /dev/null 2>&1 ; then
1136 1137 1138 1139 1140 1141 1142 1143 1144
dlfcn=yes
dlopen=yes
ldl=""
fi

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

1145
if $cc $CFLAGS $LDFLAGS -o $TMPE $TMPC -ldl > /dev/null 2>&1  ; then
1146 1147 1148
dlopen=yes
fi

1149
if $cc $CFLAGS $LDFLAGS -o $TMPE $TMPC > /dev/null 2>&1  ; then
1150 1151 1152 1153 1154 1155 1156 1157
dlopen=yes
ldl=""
fi

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

M
Michael Niedermayer 已提交
1158 1159 1160 1161 1162
if test "$vhook" = "yes" -o "$a52bin" = "yes" -o "$faadbin" = "yes"; then
  extralibs="$extralibs $ldl"
fi


1163
##########################################
D
Diego Biurrun 已提交
1164
# imlib check
1165

1166 1167 1168 1169 1170 1171 1172
cat > $TMPC << EOF
#include <X11/Xlib.h>
#include <Imlib2.h>
int main( void ) { return (int) imlib_load_font("foo"); }
EOF

imlib2=no
1173
if $cc $CFLAGS $LDFLAGS -o $TMPE $TMPC -lImlib2 -lm > /dev/null 2>&1  ; then
1174
imlib2=yes
1175 1176
fi

1177
##########################################
D
Diego Biurrun 已提交
1178
# FreeType check
1179

1180 1181 1182 1183 1184 1185
cat > $TMPC << EOF
#include <ft2build.h>
int main( void ) { return (int) FT_Init_FreeType(0); }
EOF

freetype2=no
1186
if test "x$targetos" != "xBeOS" && test "$os2" != "yes"; then
1187
  if (freetype-config --version) >/dev/null 2>&1 ; then
1188
    if $cc -o $TMPE $TMPC `freetype-config --cflags` `freetype-config --libs`  > /dev/null 2>&1 ; then
1189
      freetype2=yes
1190
    fi
1191
  fi
1192 1193
fi

1194
##########################################
D
Diego Biurrun 已提交
1195
# SDL check
1196 1197 1198

cat > $TMPC << EOF
#include <SDL.h>
1199
#undef main /* We don't want SDL to override our main() */
1200 1201 1202 1203 1204
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
EOF

sdl_too_old=no
sdl=no
1205
if (sdl-config --version) >/dev/null 2>&1 ; then
1206
if $cc -o $TMPE `sdl-config --cflags` $TMPC `sdl-config --libs`  > /dev/null 2>&1  ; then
1207 1208 1209 1210 1211 1212 1213
_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 已提交
1214
fi
1215

1216
##########################################
D
Diego Biurrun 已提交
1217
# texi2html check
1218 1219

texi2html=no
1220
if (texi2html -version) >/dev/null 2>&1; then
1221 1222 1223
texi2html=yes
fi

1224 1225
if test "$network" = "yes" ; then
##########################################
D
Diego Biurrun 已提交
1226
# IPv6 check
1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247

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

1248
case "`$cc -v 2>&1 | grep version`" in
1249
    *gcc*)
1250 1251
        CFLAGS="-Wall -Wno-switch $CFLAGS"
        ;;
1252
    *)
1253
        ;;
1254 1255
esac

F
Fabrice Bellard 已提交
1256 1257 1258 1259
if test "$sdl" = "no" ; then
   ffplay=no
fi

1260
if test "$debug" = "yes"; then
1261
        CFLAGS="-g $CFLAGS"
1262 1263 1264
fi

if test "$optimize" = "small"; then
1265
#  CFLAGS=${CFLAGS//-O3/-Os}
1266 1267 1268
  CFLAGS="$CFLAGS -Os"
fi

1269
if test "$optimize" = "yes"; then
1270
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
1271 1272
        CFLAGS="$CFLAGS -O5"
        LDFLAGS="$LDFLAGS -O5"
1273
    else
1274
        CFLAGS="-O3 $CFLAGS"
1275
    fi
1276 1277
fi

1278 1279 1280 1281
# 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
1282
    if test "$cpu" = "x86_64" -o "$cpu" = "ia64" -o "$cpu" = "alpha" ; then
1283 1284 1285 1286 1287
      LIBOBJFLAGS="\$(PIC)"
    fi
  fi
fi

F
Fabrice Bellard 已提交
1288 1289 1290 1291
if test x"$bindir" = x""; then
bindir="${prefix}/bin"
fi

1292 1293 1294 1295
if test x"$libdir" = x""; then
libdir="${prefix}/lib"
fi

F
Fabrice Bellard 已提交
1296 1297 1298 1299
if test x"$mandir" = x""; then
mandir="${prefix}/man"
fi

D
Diego Biurrun 已提交
1300 1301
echo "install prefix   $prefix"
echo "source path      $source_path"
F
Fabrice Bellard 已提交
1302
echo "C compiler       $cc"
1303
echo "make             $make"
1304
echo "CPU              $cpu ($tune)"
1305
if test "$BUILDSUF" != ""; then
D
Diego Biurrun 已提交
1306
echo "build suffix     $BUILDSUF"
1307
fi
D
Diego Biurrun 已提交
1308
echo "big-endian       $bigendian"
1309
echo "inttypes.h       $inttypes"
1310
echo "broken inttypes.h $emu_fast_int"
1311
if test $cpu = "x86" -o $cpu = "x86_64"; then
F
Fabrice Bellard 已提交
1312
echo "MMX enabled      $mmx"
1313
echo "Vector Builtins  $builtin_vector"
F
Fabrice Bellard 已提交
1314
fi
1315 1316 1317
if test $cpu = "armv4l"; then
echo "IWMMXT enabled   $iwmmxt"
fi
F
Fabrice Bellard 已提交
1318
if test $cpu = "mips"; then
1319
echo "MMI enabled      $mmi"
F
Fabrice Bellard 已提交
1320 1321
fi
if test $cpu = "powerpc"; then
1322
echo "AltiVec enabled  $altivec"
F
Fabrice Bellard 已提交
1323
fi
F
Fabrice Bellard 已提交
1324
echo "gprof enabled    $gprof"
1325
echo "zlib enabled     $zlib"
1326
echo "lzo enabled      $lzo"
1327
echo "libgsm enabled   $libgsm"
1328
echo "mp3lame enabled  $mp3lame"
1329
echo "libogg enabled   $libogg"
D
Diego Biurrun 已提交
1330 1331 1332
echo "Vorbis enabled   $vorbis"
echo "Theora enabled   $theora"
echo "FAAD enabled     $faad"
Z
Zdenek Kabelac 已提交
1333
echo "faadbin enabled  $faadbin"
D
Diego Biurrun 已提交
1334 1335
echo "FAAC enabled     $faac"
echo "XviD enabled     $xvid"
1336
echo "x264 enabled     $x264"
F
Fabrice Bellard 已提交
1337
echo "a52 support      $a52"
Z
Zdenek Kabelac 已提交
1338
echo "a52 dlopened     $a52bin"
D
Diego Biurrun 已提交
1339
echo "DTS support      $dts"
1340
echo "pp support       $pp"
1341
echo "debug symbols    $debug"
1342
echo "strip symbols    $dostrip"
1343
echo "optimize         $optimize"
1344
echo "static           $lstatic"
D
typo  
Diego Biurrun 已提交
1345
echo "shared           $lshared"
D
Diego Biurrun 已提交
1346
echo "video hooking    $vhook"
1347 1348
echo "SDL support      $sdl"
if test $sdl_too_old = "yes"; then
D
Diego Biurrun 已提交
1349
echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support."
1350
fi
1351 1352

if test "$vhook" = "yes" ; then
1353
echo "Imlib2 support   $imlib2"
D
Diego Biurrun 已提交
1354
echo "FreeType support $freetype2"
1355
fi
1356
echo "Sun medialib support"  $sunmlib
1357
echo "pthreads support"      $pthreads
Z
Zdenek Kabelac 已提交
1358 1359
echo "AMR-NB float support"  $amr_nb
echo "AMR-NB fixed support"  $amr_nb_fixed
1360
echo "AMR-WB float support"  $amr_wb
1361
echo "AMR-WB IF2 support"    $amr_if2
1362 1363 1364 1365
echo "network support      $network"
if test "$network" = "yes" ; then
echo "IPv6 support         $ipv6"
fi
1366 1367 1368 1369 1370
if test "$gpl" = "no" ; then
echo "License: LGPL"
else
echo "License: GPL"
fi
F
Fabrice Bellard 已提交
1371

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

1374 1375
date >> config.log
echo "   $0 $FFMPEG_CONFIGURATION" >> config.log
D
Diego Biurrun 已提交
1376 1377
echo "# Automatically generated by configure - do not modify!" > config.mak
echo "/* Automatically generated by configure - do not modify! */" > $TMPH
1378
echo "#define FFMPEG_CONFIGURATION "'"'"$FFMPEG_CONFIGURATION"'"' >> $TMPH
F
Fabrice Bellard 已提交
1379

1380 1381 1382 1383
echo "prefix=\$(DESTDIR)$prefix" >> config.mak
echo "libdir=\$(DESTDIR)$libdir" >> config.mak
echo "bindir=\$(DESTDIR)$bindir" >> config.mak
echo "mandir=\$(DESTDIR)$mandir" >> config.mak
1384
echo "MAKE=$make" >> config.mak
1385 1386
echo "CC=$cc" >> config.mak
echo "AR=$ar" >> config.mak
M
Michael Niedermayer 已提交
1387
echo "RANLIB=$ranlib" >> config.mak
1388
if test "$dostrip" = "yes" ; then
1389
echo "STRIP=$strip" >> config.mak
1390
echo "INSTALLSTRIP=$installstrip" >> config.mak
1391 1392 1393 1394
else
echo "STRIP=echo ignoring strip" >> config.mak
echo "INSTALLSTRIP=" >> config.mak
fi
1395

D
Diego Biurrun 已提交
1396
# SHCFLAGS is a copy of CFLAGS without -mdynamic-no-pic, used when building
1397 1398 1399 1400 1401 1402
# shared modules on OS/X (vhook/Makefile).
SHCFLAGS=$CFLAGS
if test "$needmdynamicnopic" = yes; then
   CFLAGS="$CFLAGS -mdynamic-no-pic"
fi

N
Nick Kurshev 已提交
1403
echo "OPTFLAGS=$CFLAGS" >> config.mak
1404
echo "SHCFLAGS=$SHCFLAGS">>config.mak
1405
echo "LDFLAGS=$LDFLAGS" >> config.mak
1406
echo "LDCONFIG=$LDCONFIG" >> config.mak
1407
echo "FFSLDFLAGS=$FFSLDFLAGS" >> config.mak
1408
echo "SHFLAGS=$SHFLAGS" >> config.mak
1409
echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak
1410
echo "BUILDSUF=$BUILDSUF" >> config.mak
1411
echo "LIBPREF=$LIBPREF" >> config.mak
1412
echo "LIBSUF=\${BUILDSUF}$LIBSUF" >> config.mak
1413 1414 1415
if test "$lstatic" = "yes" ; then
  echo "LIB=$LIB" >> config.mak
fi
1416
echo "SLIBPREF=$SLIBPREF" >> config.mak
1417 1418
echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
1419
echo "TARGET_OS=$TARGET_OS" >> config.mak
Z
Zdenek Kabelac 已提交
1420
if test "$cpu" = "x86" ; then
1421
  echo "TARGET_ARCH_X86=yes" >> config.mak
1422
  echo "#define ARCH_X86 1" >> $TMPH
1423 1424 1425
elif test "$cpu" = "x86_64" ; then
  echo "TARGET_ARCH_X86_64=yes" >> config.mak
  echo "#define ARCH_X86_64 1" >> $TMPH
1426
elif test "$cpu" = "armv4l" ; then
1427
  echo "TARGET_ARCH_ARMV4L=yes" >> config.mak
1428
  echo "#define ARCH_ARMV4L 1" >> $TMPH
1429
elif test "$cpu" = "alpha" ; then
1430
  echo "TARGET_ARCH_ALPHA=yes" >> config.mak
1431
  echo "#define ARCH_ALPHA 1" >> $TMPH
1432 1433 1434
elif test "$cpu" = "sparc64" ; then
  echo "TARGET_ARCH_SPARC64=yes" >> config.mak
  echo "#define ARCH_SPARC64 1" >> $TMPH
1435 1436 1437 1438 1439
  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
1440 1441 1442
elif test "$cpu" = "powerpc" ; then
  echo "TARGET_ARCH_POWERPC=yes" >> config.mak
  echo "#define ARCH_POWERPC 1" >> $TMPH
1443 1444 1445 1446 1447
  if test $POWERPCMODE = "32bits"; then
    echo "#define POWERPC_MODE_32BITS 1" >> $TMPH
  else
    echo "#define POWERPC_MODE_64BITS 1" >> $TMPH
  fi
1448 1449 1450
  if test "$powerpc_perf" = "yes"; then
    echo "#define POWERPC_PERFORMANCE_REPORT 1" >> $TMPH
  fi
1451 1452 1453
elif test "$cpu" = "mips" ; then
  echo "TARGET_ARCH_MIPS=yes" >> config.mak
  echo "#define ARCH_MIPS 1" >> $TMPH
A
Alex Beregszaszi 已提交
1454 1455 1456
elif test "$cpu" = "sh4" ; then
  echo "TARGET_ARCH_SH4=yes" >> config.mak
  echo "#define ARCH_SH4 1" >> $TMPH
1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468
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 已提交
1469
fi
1470
echo "#define TUNECPU $TUNECPU" >> $TMPH
1471 1472 1473
if test "$bigendian" = "yes" ; then
  echo "WORDS_BIGENDIAN=yes" >> config.mak
  echo "#define WORDS_BIGENDIAN 1" >> $TMPH
1474
fi
1475 1476
if test "$inttypes" != "yes" ; then
  echo "#define EMULATE_INTTYPES 1" >> $TMPH
1477
fi
1478
if test "$emu_fast_int" = "yes" ; then
1479
  echo "#define EMULATE_FAST_INT 1" >> $TMPH
1480
fi
Z
Zdenek Kabelac 已提交
1481
if test "$mmx" = "yes" ; then
1482
  echo "TARGET_MMX=yes" >> config.mak
1483
  echo "#define HAVE_MMX 1" >> $TMPH
M
Michael Niedermayer 已提交
1484
  echo "#define __CPU__ 586" >> $TMPH
F
Fabrice Bellard 已提交
1485
fi
1486 1487 1488 1489
if test "$builtin_vector" = "yes" ; then
  echo "TARGET_BUILTIN_VECTOR=yes" >> config.mak
  echo "#define HAVE_BUILTIN_VECTOR 1" >> $TMPH
fi
1490 1491 1492 1493
if test "$iwmmxt" = "yes" ; then
  echo "TARGET_IWMMXT=yes" >> config.mak
  echo "#define HAVE_IWMMXT 1" >> $TMPH
fi
1494 1495 1496 1497
if test "$mmi" = "yes" ; then
  echo "TARGET_MMI=yes" >> config.mak
  echo "#define HAVE_MMI 1" >> $TMPH
fi
1498 1499 1500
if test "$altivec" = "yes" ; then
  echo "TARGET_ALTIVEC=yes" >> config.mak
  echo "#define HAVE_ALTIVEC 1" >> $TMPH
1501 1502
  echo "// Enable the next line to use the reference C code instead of AltiVec" >> $TMPH
  echo "// #define ALTIVEC_USE_REFERENCE_C_CODE 1" >> $TMPH
1503 1504 1505
  if test "$_altivec_h" = "yes" ; then
    echo "#define HAVE_ALTIVEC_H 1" >> $TMPH
  else
A
1l  
Alex Beregszaszi 已提交
1506
    echo "#undef HAVE_ALTIVEC_H" >> $TMPH
1507
  fi
1508
fi
Z
Zdenek Kabelac 已提交
1509
if test "$gprof" = "yes" ; then
1510
  echo "TARGET_GPROF=yes" >> config.mak
1511
  echo "#define HAVE_GPROF 1" >> $TMPH
F
Fabrice Bellard 已提交
1512
fi
1513 1514 1515
if test "$localtime_r" = "yes" ; then
  echo "#define HAVE_LOCALTIME_R 1" >> $TMPH
fi
1516 1517 1518
if test "$imlib2" = "yes" ; then
  echo "HAVE_IMLIB2=yes" >> config.mak
fi
1519 1520 1521
if test "$freetype2" = "yes" ; then
  echo "HAVE_FREETYPE2=yes" >> config.mak
fi
1522 1523 1524 1525 1526
if test "$sunmlib" = "yes" ; then
  echo "HAVE_MLIB=yes" >> config.mak
  echo "#define HAVE_MLIB 1" >> $TMPH
  extralibs="$extralibs -lmlib"
fi
1527 1528 1529
if test "$pthreads" = "yes" ; then
  echo "HAVE_PTHREADS=yes" >> config.mak
  echo "#define HAVE_PTHREADS 1" >> $TMPH
1530
  echo "#define HAVE_THREADS 1" >> $TMPH
1531
  if test $targetos != FreeBSD -a $targetos != OpenBSD ; then
1532 1533
     extralibs="$extralibs -lpthread"
  fi
1534
fi
1535 1536 1537 1538 1539
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
1540 1541 1542
if test "$texi2html" = "yes"; then
  echo "BUILD_DOC=yes" >> config.mak
fi
1543 1544 1545
if test "$have_lrintf" = "yes" ; then
  echo "#define HAVE_LRINTF 1" >> $TMPH
fi
1546 1547 1548 1549
if test "$vhook" = "yes" ; then
  echo "BUILD_VHOOK=yes" >> config.mak
  echo "#define HAVE_VHOOK 1" >> $TMPH
fi
L
Luca Barbato 已提交
1550

1551
pp_version=`grep '#define LIBPOSTPROC_VERSION ' "$source_path/libavcodec/libpostproc/postprocess.h" | sed 's/[^0-9\.]//g'`
L
Luca Barbato 已提交
1552 1553 1554 1555 1556 1557
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 已提交
1558
if test "$lshared" = "yes" ; then
1559
  echo "#define BUILD_SHARED_AV 1" >> $TMPH
N
Nick Kurshev 已提交
1560
  echo "BUILD_SHARED=yes" >> config.mak
1561
  echo "PIC=-fPIC -DPIC" >> config.mak
1562
  echo "SPPMAJOR=${lavc_version%%.*}" >> config.mak
L
Luca Barbato 已提交
1563
  echo "SPPVERSION=$lavc_version" >> config.mak
1564
  echo "LAVCMAJOR=${lavc_version%%.*}" >> config.mak
L
Luca Barbato 已提交
1565
  echo "LAVCVERSION=$lavc_version" >> config.mak
1566
  echo "LAVFMAJOR=${lavf_version%%.*}" >> config.mak
L
Luca Barbato 已提交
1567
  echo "LAVFVERSION=$lavf_version" >> config.mak
1568
  echo "LAVUMAJOR=${lavu_version%%.*}" >> config.mak
L
Luca Barbato 已提交
1569
  echo "LAVUVERSION=$lavu_version" >> config.mak
1570
  echo "SLIBNAME=${SLIBNAME}" >> config.mak
1571 1572
  echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak
  echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
N
Nick Kurshev 已提交
1573
fi
1574
echo "EXTRALIBS=$extralibs" >> config.mak
M
Michael Niedermayer 已提交
1575
version=`grep '#define FFMPEG_VERSION ' "$source_path/libavcodec/avcodec.h" |
1576 1577
 cut -d '"' -f 2`
echo "VERSION=$version" >>config.mak
D
Diego Biurrun 已提交
1578
# If you do not want to use encoders, disable them.
1579
echo "#define CONFIG_ENCODERS 1" >> $TMPH
1580 1581
echo "CONFIG_ENCODERS=yes" >> config.mak

D
Diego Biurrun 已提交
1582
# If you do not want to use decoders, disable them.
1583
echo "#define CONFIG_DECODERS 1" >> $TMPH
1584 1585
echo "CONFIG_DECODERS=yes" >> config.mak

1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597
# 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 已提交
1598 1599 1600 1601
# AC3
if test "$a52" = "yes" ; then
  echo "#define CONFIG_AC3 1" >> $TMPH
  echo "CONFIG_AC3=yes" >> config.mak
1602

F
Fabrice Bellard 已提交
1603 1604 1605 1606 1607 1608
  if test "$a52bin" = "yes" ; then
    echo "#define CONFIG_A52BIN 1" >> $TMPH
    echo "CONFIG_A52BIN=yes" >> config.mak
  fi
fi

1609 1610 1611 1612 1613 1614
# DTS
if test "$dts" = "yes" ; then
  echo "#define CONFIG_DTS 1" >> $TMPH
  echo "CONFIG_DTS=yes" >> config.mak
fi

1615 1616 1617 1618 1619 1620
# PP
if test "$pp" = "yes" ; then
  echo "#define CONFIG_PP 1" >> $TMPH
  echo "CONFIG_PP=yes" >> config.mak
fi

D
Diego Biurrun 已提交
1621
# MPEG audio high precision mode
1622 1623 1624 1625
if test "$mpegaudio_hp" = "yes" ; then
  echo "#define CONFIG_MPEGAUDIO_HP 1" >> $TMPH
fi

F
Fabrice Bellard 已提交
1626 1627 1628 1629 1630
if test "$v4l" = "yes" ; then
  echo "#define CONFIG_VIDEO4LINUX 1" >> $TMPH
  echo "CONFIG_VIDEO4LINUX=yes" >> config.mak
fi

L
Luca Abeni 已提交
1631 1632 1633 1634 1635
if test "$v4l2" = "yes" ; then
  echo "#define CONFIG_VIDEO4LINUX2 1" >> $TMPH
  echo "CONFIG_VIDEO4LINUX2=yes" >> config.mak
fi

1636 1637 1638 1639 1640
if test "$bktr" = "yes" ; then
  echo "#define CONFIG_BKTR 1" >> $TMPH
  echo "CONFIG_BKTR=yes" >> config.mak
fi

1641 1642 1643 1644 1645
if test "$dv1394" = "yes" ; then
  echo "#define CONFIG_DV1394 1" >> $TMPH
  echo "CONFIG_DV1394=yes" >> config.mak
fi

1646 1647 1648 1649 1650
if test "$dc1394" = "yes" ; then
  echo "#define CONFIG_DC1394 1" >> $TMPH
  echo "CONFIG_DC1394=yes" >> config.mak
fi

1651 1652 1653 1654 1655 1656 1657 1658
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 已提交
1659 1660 1661
if test "$audio_oss" = "yes" ; then
  echo "#define CONFIG_AUDIO_OSS 1" >> $TMPH
  echo "CONFIG_AUDIO_OSS=yes" >> config.mak
Z
Zdenek Kabelac 已提交
1662 1663
fi

1664 1665 1666 1667 1668
if test "$audio_beos" = "yes" ; then
  echo "#define CONFIG_AUDIO_BEOS 1" >> $TMPH
  echo "CONFIG_AUDIO_BEOS=yes" >> config.mak
fi

F
Fabrice Bellard 已提交
1669 1670 1671
if test "$network" = "yes" ; then
  echo "#define CONFIG_NETWORK 1" >> $TMPH
  echo "CONFIG_NETWORK=yes" >> config.mak
1672
fi
1673

1674 1675 1676 1677
if test "$ipv6" = "yes" ; then
  echo "#define CONFIG_IPV6 1" >> $TMPH
fi

1678 1679 1680 1681 1682
if test "$zlib" = "yes" ; then
  echo "#define CONFIG_ZLIB 1" >> $TMPH
  echo "CONFIG_ZLIB=yes" >> config.mak
fi

1683 1684 1685 1686 1687
if test "$lzo" = "yes" ; then
  echo "#define CONFIG_LZO 1" >> $TMPH
  echo "CONFIG_LZO=yes" >> config.mak
fi

1688 1689 1690 1691 1692
if test "$libgsm" = "yes" ; then
  echo "#define CONFIG_LIBGSM 1" >> $TMPH
  echo "CONFIG_LIBGSM=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1693
if test "$mp3lame" = "yes" ; then
1694
  echo "#define CONFIG_MP3LAME 1" >> $TMPH
1695 1696 1697
  echo "CONFIG_MP3LAME=yes" >> config.mak
fi

1698
if test "$libogg" = "yes" ; then
N
Nilesh Bansal 已提交
1699 1700 1701 1702
  echo "#define CONFIG_LIBOGG 1" >> $TMPH
  echo "CONFIG_LIBOGG=yes" >> config.mak
fi

1703
if test "$vorbis" = "yes" ; then
N
Nilesh Bansal 已提交
1704 1705 1706 1707 1708 1709 1710
  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
1711 1712
fi

1713 1714 1715 1716 1717 1718 1719
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 已提交
1720
  echo "CONFIG_FAADBIN=yes" >> config.mak
1721 1722
fi

1723 1724 1725 1726 1727
if test "$faac" = "yes" ; then
  echo "#define CONFIG_FAAC 1" >> $TMPH
  echo "CONFIG_FAAC=yes" >> config.mak
fi

1728 1729 1730 1731 1732
if test "$xvid" = "yes" ; then
  echo "#define CONFIG_XVID 1" >> $TMPH
  echo "CONFIG_XVID=yes" >> config.mak
fi

1733 1734 1735 1736 1737
if test "$x264" = "yes" ; then
  echo "#define CONFIG_X264 1" >> $TMPH
  echo "CONFIG_X264=yes" >> config.mak
fi

1738 1739 1740
if test "$mingw32" = "yes" ; then
  echo "#define CONFIG_WIN32 1" >> $TMPH
  echo "CONFIG_WIN32=yes" >> config.mak
1741 1742
  echo "HAVE_W32THREADS=yes" >> config.mak
  echo "#define HAVE_W32THREADS 1" >> $TMPH
1743
  echo "#define HAVE_THREADS 1" >> $TMPH
1744
  echo "#ifndef __MINGW32__" >> $TMPH
1745
  echo "#define __MINGW32__ 1" >> $TMPH
1746
  echo "#endif" >> $TMPH
1747 1748
fi

G
Gildas Bazin 已提交
1749 1750 1751 1752 1753 1754 1755 1756 1757 1758
if test "$mingwce" = "yes" ; then
  echo "#define CONFIG_WIN32 1" >> $TMPH
  echo "CONFIG_WIN32=yes" >> config.mak
  echo "#define CONFIG_WINCE 1" >> $TMPH
  echo "CONFIG_WINCE=yes" >> config.mak
  echo "#ifndef __MINGW32__" >> $TMPH
  echo "#define __MINGW32__ 1" >> $TMPH
  echo "#endif" >> $TMPH
fi

1759 1760 1761 1762 1763
if test "$os2" = "yes" ; then
  echo "#define CONFIG_OS2 1" >> $TMPH
  echo "CONFIG_OS2=yes" >> config.mak
fi

1764 1765 1766 1767
if test "$TARGET_OS" = "SunOS" ; then
  echo "#define CONFIG_SUNOS 1" >> $TMPH
fi

1768 1769 1770 1771 1772 1773
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

1774 1775 1776 1777 1778
if test "$darwin" = "yes"; then
  echo "#define CONFIG_DARWIN 1"  >> $TMPH
  echo "CONFIG_DARWIN=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1779
if test "$_malloc_h" = "yes" ; then
1780
  echo "#define HAVE_MALLOC_H 1" >> $TMPH
N
Nick Kurshev 已提交
1781
else
1782
  echo "#undef  HAVE_MALLOC_H" >> $TMPH
N
Nick Kurshev 已提交
1783 1784
fi

Z
Zdenek Kabelac 已提交
1785
if test "$_memalign" = "yes" ; then
1786 1787 1788 1789 1790
  echo "#define HAVE_MEMALIGN 1" >> $TMPH
else
  echo "#undef  HAVE_MEMALIGN" >> $TMPH
fi

1791 1792 1793 1794 1795
if test "$memalignhack" = "yes" ; then
  echo "#define MEMALIGN_HACK 1" >> $TMPH
fi


1796 1797 1798 1799 1800
if test "$netserver" = "yes" ; then
  echo "#define CONFIG_BEOS_NETSERVER 1" >> $TMPH
  echo "CONFIG_BEOS_NETSERVER=yes" >> config.mak
fi

1801 1802 1803 1804
if test "$need_inet_aton" = "yes" ; then
  echo "NEED_INET_ATON=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1805
if test "$simpleidct" = "yes" ; then
1806 1807 1808
  echo "#define SIMPLE_IDCT 1" >> $TMPH
fi

1809 1810 1811 1812 1813
if test "$protocols" = "yes" ; then
  echo "#define CONFIG_PROTOCOLS 1" >> $TMPH
  echo "CONFIG_PROTOCOLS=yes" >> config.mak
fi

1814 1815 1816 1817 1818
if test "$ffserver" = "yes" ; then
  echo "#define CONFIG_FFSERVER 1" >> $TMPH
  echo "CONFIG_FFSERVER=yes" >> config.mak
fi

1819 1820 1821 1822
if test "$ffplay" = "yes" ; then
  echo "CONFIG_FFPLAY=yes" >> config.mak
fi

1823 1824 1825 1826 1827
if test "$gpl" = "yes" ; then
  echo "#define CONFIG_GPL 1" >> $TMPH
  echo "CONFIG_GPL=yes" >> config.mak
fi

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

1830 1831 1832 1833
if test "$optimize" = "small"; then
  echo "#define always_inline"  >> $TMPH
fi

1834 1835
# build tree in object directory if source path is different from current one
if test "$source_path_used" = "yes" ; then
1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862
    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 \
          "
1863 1864 1865 1866
    for dir in $DIRS ; do
            mkdir -p $dir
    done
    for f in $FILES ; do
M
Michael Niedermayer 已提交
1867
        ln -sf "$source_path/$f" $f
1868
    done
1869 1870 1871
    echo "SRC_PATH=$source_path" >> config.mak
else
    echo "SRC_PATH='$source_path'" >> config.mak
1872 1873
fi

1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884
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

1885 1886 1887 1888
if test "$amr_nb" = "yes" ; then
  echo "#define AMR_NB 1" >> $TMPH
  echo "AMR_NB=yes" >> config.mak
  echo
Z
Zdenek Kabelac 已提交
1889 1890 1891 1892 1893
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 已提交
1894
  echo "http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26073-5??.zip"
1895
  echo "and extracted src to libavcodec/amr"
Z
Zdenek Kabelac 已提交
1896 1897 1898 1899 1900 1901
  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 已提交
1902
  echo "http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26104-5??.zip"
Z
Zdenek Kabelac 已提交
1903
  echo "and extracted the source to libavcodec/amr_float"
M
Michael Niedermayer 已提交
1904
  echo "and if u try this on an alpha, u may need to change Word32 to int in amr/typedef.h"
1905 1906 1907
  echo
fi

1908 1909 1910 1911
if test "$amr_if2" = "yes" ; then
  echo "AMR_CFLAGS=-DIF2=1" >> config.mak
fi

Z
Zdenek Kabelac 已提交
1912 1913
fi

1914
for codec in $CODEC_LIST ; do
1915 1916
    echo "#define CONFIG_`echo $codec | tr a-z A-Z` 1" >> $TMPH
    echo "CONFIG_`echo $codec | tr a-z A-Z`=yes" >> config.mak
1917 1918
done

Z
Zdenek Kabelac 已提交
1919
diff $TMPH config.h >/dev/null 2>&1
1920
if test $? -ne 0 ; then
1921
        mv -f $TMPH config.h
N
Nick Kurshev 已提交
1922
else
1923
        echo "config.h is unchanged"
N
Nick Kurshev 已提交
1924 1925
fi

1926
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
1927 1928


D
Diego Biurrun 已提交
1929
# build pkg-config files libav*.pc and libpostproc.pc
1930 1931 1932 1933 1934 1935 1936 1937 1938 1939
# 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
1940
Requires:
1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954
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
1955
Requires:
1956 1957 1958 1959
Conflicts:
Libs: \${libdir}/${LIBPREF}avutil${LIBSUF}
Cflags: -I\${includedir}
EOF
1960 1961 1962 1963 1964 1965 1966 1967 1968 1969

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

Name: libavcodec
Description: FFmpeg codec library
1970
Version: $lavc_version
1971
Requires: $pkg_requires libavutil = $lavu_version
1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984
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
1985
Version: $lavc_version
1986
Requires: $pkg_requires libavutil = $lavu_version
1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000
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
2001
Version: $lavf_version
2002
Requires: $pkg_requires libavcodec = $lavc_version
2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015
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
2016
Version: $lavf_version
2017
Requires: $pkg_requires libavcodec = $lavc_version
2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032
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
2033
Version: $lavc_version
2034
Requires:
2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047
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
2048
Version: $lavc_version
2049
Requires:
2050 2051 2052 2053
Conflicts:
Libs: \${libdir}/${LIBPREF}postproc${LIBSUF}
Cflags: -I\${includedir}
EOF