~ubuntu-branches/ubuntu/jaunty/xvidcap/jaunty-proposed

« back to all changes in this revision

Viewing changes to ffmpeg/configure

  • Committer: Bazaar Package Importer
  • Author(s): John Dong
  • Date: 2008-02-25 15:47:12 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20080225154712-qvr11ekcea4c9ry8
Tags: 1.1.6-0.1ubuntu1
* Merge from debian-multimedia (LP: #120003), Ubuntu Changes:
 - For ffmpeg-related build-deps, remove cvs from package names.
 - Standards-Version 3.7.3
 - Maintainer Spec

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#!/bin/sh
2
2
#
3
 
# ffmpeg configure script (c) 2000, 2001, 2002 Fabrice Bellard
4
 
#
 
3
# FFmpeg configure script
 
4
#
 
5
# Copyright (c) 2000, 2001, 2002 Fabrice Bellard
 
6
# Copyright (c) 2005-2006 Diego Biurrun
 
7
# Copyright (c) 2005-2006 Mans Rullgard
 
8
#
 
9
 
 
10
# make sure we are running under a compatible shell
 
11
# try to make this part work with most shells
 
12
 
 
13
try_exec(){
 
14
    echo "Trying shell $1"
 
15
    type "$1" >/dev/null 2>&1 && exec "$@"
 
16
}
 
17
 
 
18
unset foo
 
19
(: ${foo%%bar}) 2>/dev/null
 
20
E1="$?"
 
21
 
 
22
(: ${foo?}) 2>/dev/null
 
23
E2="$?"
 
24
 
 
25
if test "$E1" != 0 || test "$E2" = 0; then
 
26
    echo "Broken shell detected.  Trying alternatives."
 
27
    export FF_CONF_EXEC
 
28
    if test "0$FF_CONF_EXEC" -lt 1; then
 
29
        FF_CONF_EXEC=1
 
30
        try_exec bash "$0" "$@"
 
31
    fi
 
32
    if test "0$FF_CONF_EXEC" -lt 2; then
 
33
        FF_CONF_EXEC=2
 
34
        try_exec ksh "$0" "$@"
 
35
    fi
 
36
    if test "0$FF_CONF_EXEC" -lt 3; then
 
37
        FF_CONF_EXEC=3
 
38
        try_exec /usr/xpg4/bin/sh "$0" "$@"
 
39
    fi
 
40
    echo "No compatible shell script interpreter found."
 
41
    echo "This configure script requires a POSIX-compatible shell"
 
42
    echo "such as bash or ksh."
 
43
    echo "THIS IS NOT A BUG IN FFMPEG, DO NOT REPORT IT AS SUCH."
 
44
    echo "Instead, install a working POSIX-compatible shell."
 
45
    echo "Disabling this configure test will create a broken FFmpeg."
 
46
    if test "$BASH_VERSION" = '2.04.0(1)-release'; then
 
47
        echo "This bash version ($BASH_VERSION) is broken on your platform."
 
48
        echo "Upgrade to a later version if available."
 
49
    fi
 
50
    exit 1
 
51
fi
 
52
 
 
53
show_help(){
 
54
  echo "Usage: configure [options]"
 
55
  echo "Options: [defaults in brackets after descriptions]"
 
56
  echo
 
57
  echo "Standard options:"
 
58
  echo "  --help                   print this message"
 
59
  echo "  --log[=FILE|yes|no]      log tests and output to FILE [config.err]"
 
60
  echo "  --prefix=PREFIX          install in PREFIX [$PREFIX]"
 
61
  echo "  --libdir=DIR             install libs in DIR [PREFIX/lib]"
 
62
  echo "  --shlibdir=DIR           install shared libs in DIR [PREFIX/lib]"
 
63
  echo "  --incdir=DIR             install includes in DIR [PREFIX/include/ffmpeg]"
 
64
  echo "  --mandir=DIR             install man page in DIR [PREFIX/man]"
 
65
  echo "  --enable-mingwce         enable MinGW native/cross WinCE compile"
 
66
  echo "  --enable-static          build static libraries [default=yes]"
 
67
  echo "  --disable-static         do not build static libraries [default=no]"
 
68
  echo "  --enable-shared          build shared libraries [default=no]"
 
69
  echo "  --disable-shared         do not build shared libraries [default=yes]"
 
70
  echo "  --enable-gpl             allow use of GPL code, the resulting libav*"
 
71
  echo "                           and ffmpeg will be under GPL [default=no]"
 
72
  echo "  --enable-pp              enable GPLed postprocessing support [default=no]"
 
73
  echo "  --enable-swscaler        software scaler support [default=no]"
 
74
  echo "  --enable-beosthreads     use BeOS threads [default=no]"
 
75
  echo "  --enable-os2threads      use OS/2 threads [default=no]"
 
76
  echo "  --enable-pthreads        use pthreads [default=no]"
 
77
  echo "  --enable-w32threads      use Win32 threads [default=no]"
 
78
  echo "  --enable-x11grab         enable X11 grabbing [default=no]"
 
79
  echo
 
80
  echo "External library support:"
 
81
  echo "  --enable-sunmlib         use Sun medialib [default=no]"
 
82
  echo "  --enable-dc1394          enable IIDC-1394 grabbing using libdc1394"
 
83
  echo "                           and libraw1394 [default=no]"
 
84
  echo "  --enable-liba52          enable GPLed liba52 support [default=no]"
 
85
  echo "  --enable-liba52bin       open liba52.so.0 at runtime [default=no]"
 
86
  echo "  --enable-avisynth        allow reading AVISynth script files [default=no]"
 
87
  echo "  --enable-libdts          enable GPLed libdts support [default=no]"
 
88
  echo "  --enable-libfaac         enable FAAC support via libfaac [default=no]"
 
89
  echo "  --enable-libfaad         enable FAAD support via libfaad [default=no]"
 
90
  echo "  --enable-libfaadbin      build FAAD support with runtime linking [default=no]"
 
91
  echo "  --enable-libgsm          enable GSM support via libgsm [default=no]"
 
92
  echo "  --enable-libmp3lame      enable MP3 encoding via libmp3lame [default=no]"
 
93
  echo "  --enable-libnut          enable NUT (de)muxing via libnut,"
 
94
  echo "                           native demuxer exists [default=no]"
 
95
  echo "  --enable-libogg          enable Ogg muxing via libogg [default=no]"
 
96
  echo "  --enable-libtheora       enable Theora encoding via libtheora [default=no]"
 
97
  echo "  --enable-libvorbis       enable Vorbis en/decoding via libvorbis,"
 
98
  echo "                           native implementations exist [default=no]"
 
99
  echo "  --enable-x264            enable H.264 encoding via x264 [default=no]"
 
100
  echo "  --enable-xvid            enable Xvid encoding via xvidcore,"
 
101
  echo "                           native MPEG-4/Xvid encoder exists [default=no]"
 
102
  echo "  --enable-amr_nb          enable amr_nb float audio codec"
 
103
  echo "  --enable-amr_nb-fixed    use fixed point for amr-nb codec"
 
104
  echo "  --enable-amr_wb          enable amr_wb float audio codec"
 
105
  echo "  --enable-amr_if2         enable amr_wb IF2 audio codec"
 
106
  echo ""
 
107
  echo "Advanced options (experts only):"
 
108
  echo "  --source-path=PATH       path to source code [$source_path]"
 
109
  echo "  --cross-prefix=PREFIX    use PREFIX for compilation tools [$cross_prefix]"
 
110
  echo "  --cross-compile          assume a cross-compiler is used"
 
111
  echo "  --target-os=OS           compiler targets OS [$targetos]"
 
112
  echo "  --cc=CC                  use C compiler CC [$cc]"
 
113
  echo "  --make=MAKE              use specified make [$make]"
 
114
  echo "  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS [$CFLAGS]"
 
115
  echo "  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]"
 
116
  echo "  --extra-libs=ELIBS       add ELIBS [$ELIBS]"
 
117
  echo "  --build-suffix=SUFFIX    suffix for application specific build []"
 
118
  echo "  --arch=ARCH              select architecture  [$arch]"
 
119
  echo "  --cpu=CPU                selects the minimum cpu required (affects"
 
120
  echo "                           instruction selection, may crash on older CPUs)"
 
121
  echo "  --enable-powerpc-perf    enable performance report on PPC"
 
122
  echo "                           (requires enabling PMC)"
 
123
  echo "  --disable-mmx            disable MMX usage"
 
124
  echo "  --disable-armv5te        disable armv5te usage"
 
125
  echo "  --disable-armv6          disable armv6 usage"
 
126
  echo "  --disable-iwmmxt         disable iwmmxt usage"
 
127
  echo "  --disable-altivec        disable AltiVec usage"
 
128
  echo "  --disable-audio-oss      disable OSS audio support [default=no]"
 
129
  echo "  --disable-audio-beos     disable BeOS audio support [default=no]"
 
130
  echo "  --disable-v4l            disable video4linux grabbing [default=no]"
 
131
  echo "  --disable-v4l2           disable video4linux2 grabbing [default=no]"
 
132
  echo "  --disable-bktr           disable bktr video grabbing [default=no]"
 
133
  echo "  --disable-dv1394         disable DV1394 grabbing [default=no]"
 
134
  echo "  --disable-network        disable network support [default=no]"
 
135
  echo "  --disable-ipv6           disable ipv6 support [default=no]"
 
136
  echo "  --disable-zlib           disable zlib [default=no]"
 
137
  echo "  --disable-vhook          disable video hooking support"
 
138
  echo "  --disable-debug          disable debugging symbols"
 
139
  echo "  --disable-mpegaudio-hp   faster (but less accurate)"
 
140
  echo "                           MPEG audio decoding [default=no]"
 
141
  echo "  --disable-protocols      disable I/O protocols support [default=no]"
 
142
  echo "  --disable-ffmpeg         disable ffmpeg build"
 
143
  echo "  --disable-ffserver       disable ffserver build"
 
144
  echo "  --disable-ffplay         disable ffplay build"
 
145
  echo "  --enable-small           optimize for size instead of speed"
 
146
  echo "  --enable-memalign-hack   emulate memalign, interferes with memory debuggers"
 
147
  echo "  --disable-encoder=NAME   disables encoder NAME"
 
148
  echo "  --enable-encoder=NAME    enables encoder NAME"
 
149
  echo "  --disable-decoder=NAME   disables decoder NAME"
 
150
  echo "  --enable-decoder=NAME    enables decoder NAME"
 
151
  echo "  --disable-encoders       disables all encoders"
 
152
  echo "  --disable-decoders       disables all decoders"
 
153
  echo "  --disable-muxer=NAME     disables muxer NAME"
 
154
  echo "  --enable-muxer=NAME      enables muxer NAME"
 
155
  echo "  --disable-muxers         disables all muxers"
 
156
  echo "  --disable-demuxer=NAME   disables demuxer NAME"
 
157
  echo "  --enable-demuxer=NAME    enables demuxer NAME"
 
158
  echo "  --disable-demuxers       disables all demuxers"
 
159
  echo "  --enable-parser=NAME     enables parser NAME"
 
160
  echo "  --disable-parser=NAME    disables parser NAME"
 
161
  echo "  --disable-parsers        disables all parsers"
 
162
  echo
 
163
  echo "Developer options (useful when working on FFmpeg itself):"
 
164
  echo "  --enable-gprof           enable profiling with gprof [$gprof]"
 
165
  echo "  --disable-opts           disable compiler optimizations"
 
166
  echo "  --enable-extra-warnings  enable more compiler warnings"
 
167
  echo "  --disable-strip          disable stripping of executables and shared libraries"
 
168
  echo ""
 
169
  echo "NOTE: Object files are built at the place where configure is launched."
 
170
  exit 1
 
171
}
 
172
 
 
173
log(){
 
174
    echo "$@" >>$logfile
 
175
}
 
176
 
 
177
log_file(){
 
178
    log BEGIN $1
 
179
    cat -n $1 >>$logfile
 
180
    log END $1
 
181
}
 
182
 
 
183
echolog(){
 
184
    log "$@"
 
185
    echo "$@"
 
186
}
 
187
 
 
188
die(){
 
189
    echolog "$@"
 
190
    cat <<EOF
 
191
If you think configure made a mistake, make sure you are using the latest
 
192
version from SVN.  If the latest version fails, report the problem to the
 
193
ffmpeg-devel@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net.
 
194
EOF
 
195
    if enabled logging; then
 
196
        cat <<EOF
 
197
Include the log file "$logfile" produced by configure as this will help
 
198
solving the problem.
 
199
EOF
 
200
    else
 
201
cat <<EOF
 
202
Rerun configure with logging enabled (do not use --log=no), and include the
 
203
log this produces with your report.
 
204
EOF
 
205
    fi
 
206
    rm -f $TMPC $TMPO $TMPE $TMPS $TMPH
 
207
    exit 1
 
208
}
 
209
 
 
210
# "tr '[a-z]' '[A-Z]'" is a workaround for Solaris tr not grokking "tr a-z A-Z"
 
211
toupper(){
 
212
    echo "$@" | tr '[a-z]' '[A-Z]'
 
213
}
 
214
 
 
215
tolower(){
 
216
    echo "$@" | tr '[A-Z]' '[a-z]'
 
217
}
 
218
 
 
219
set_all(){
 
220
    value=$1
 
221
    shift
 
222
    for var in $*; do
 
223
        eval $var=$value
 
224
    done
 
225
}
 
226
 
 
227
pushvar(){
 
228
    for var in $*; do
 
229
        eval level=\${${var}_level:=0}
 
230
        eval ${var}_${level}="\$$var"
 
231
        eval ${var}_level=$(($level+1))
 
232
    done
 
233
}
 
234
 
 
235
popvar(){
 
236
    for var in $*; do
 
237
        eval level=\${${var}_level:-0}
 
238
        test $level = 0 && continue
 
239
        eval level=$(($level-1))
 
240
        eval $var="\${${var}_${level}}"
 
241
        eval ${var}_level=$level
 
242
        eval unset ${var}_${level}
 
243
    done
 
244
}
 
245
 
 
246
enable(){
 
247
    set_all yes $*
 
248
}
 
249
 
 
250
disable(){
 
251
    set_all no $*
 
252
}
 
253
 
 
254
enabled(){
 
255
    eval test "x\$$1" = "xyes"
 
256
}
 
257
 
 
258
disabled(){
 
259
    eval test "x\$$1" = "xno"
 
260
}
 
261
 
 
262
enabled_all(){
 
263
    for opt; do
 
264
        enabled $opt || return 1
 
265
    done
 
266
}
 
267
 
 
268
disabled_all(){
 
269
    for opt; do
 
270
        disabled $opt || return 1
 
271
    done
 
272
}
 
273
 
 
274
enabled_any(){
 
275
    for opt; do
 
276
        enabled $opt && return 0
 
277
    done
 
278
}
 
279
 
 
280
disabled_any(){
 
281
    for opt; do
 
282
        disabled $opt && return 0
 
283
    done
 
284
}
 
285
 
 
286
check_deps(){
 
287
    for cfg; do
 
288
        enabled ${cfg}_checking && die "Circular dependency for $cfg."
 
289
        disabled ${cfg}_checking && continue
 
290
        enable ${cfg}_checking
 
291
 
 
292
        eval dep_all="\$${cfg}_deps"
 
293
        eval dep_any="\$${cfg}_deps_any"
 
294
 
 
295
        pushvar cfg dep_all dep_any
 
296
        check_deps $dep_all $dep_any
 
297
        popvar cfg dep_all dep_any
 
298
 
 
299
        enabled_all $dep_all || disable $cfg
 
300
        enabled_any $dep_any || disable $cfg
 
301
 
 
302
        disable ${cfg}_checking
 
303
    done
 
304
}
 
305
 
 
306
print_config(){
 
307
    pfx=$1
 
308
    header=$2
 
309
    makefile=$3
 
310
    shift 3
 
311
    for cfg; do
 
312
        if enabled $cfg; then
 
313
            ucname="${pfx}`toupper $cfg`"
 
314
            echo "#define ${ucname} 1" >> $header
 
315
            echo "${ucname}=yes" >> $makefile
 
316
        fi
 
317
    done
 
318
}
 
319
 
 
320
flags_saved(){
 
321
    (: ${SAVE_CFLAGS?}) 2>/dev/null
 
322
}
 
323
 
 
324
save_flags(){
 
325
    flags_saved && return
 
326
    SAVE_CFLAGS="$CFLAGS"
 
327
    SAVE_LDFLAGS="$LDFLAGS"
 
328
    SAVE_extralibs="$extralibs"
 
329
}
 
330
 
 
331
restore_flags(){
 
332
    flags_saved || return
 
333
    CFLAGS="$SAVE_CFLAGS"
 
334
    LDFLAGS="$SAVE_LDFLAGS"
 
335
    extralibs="$SAVE_extralibs"
 
336
    unset SAVE_CFLAGS
 
337
    unset SAVE_LDFLAGS
 
338
    unset SAVE_extralibs
 
339
}
 
340
 
 
341
temp_cflags(){
 
342
    save_flags
 
343
    CFLAGS="$CFLAGS $*"
 
344
}
 
345
 
 
346
temp_ldflags(){
 
347
    save_flags
 
348
    LDFLAGS="$LDFLAGS $*"
 
349
}
 
350
 
 
351
temp_extralibs(){
 
352
    save_flags
 
353
    extralibs="$extralibs $*"
 
354
}
 
355
 
 
356
append(){
 
357
    var=$1
 
358
    shift
 
359
    flags_saved && eval "SAVE_$var=\"\$SAVE_$var $*\""
 
360
    eval "$var=\"\$$var $*\""
 
361
}
 
362
 
 
363
add_cflags(){
 
364
    append CFLAGS "$@"
 
365
}
 
366
 
 
367
add_ldflags(){
 
368
    append LDFLAGS "$@"
 
369
}
 
370
 
 
371
add_extralibs(){
 
372
    append extralibs "$@"
 
373
}
 
374
 
 
375
check_cmd(){
 
376
    log "$@"
 
377
    "$@" >>$logfile 2>&1
 
378
}
 
379
 
 
380
check_cc(){
 
381
    log check_cc "$@"
 
382
    cat >$TMPC
 
383
    log_file $TMPC
 
384
    check_cmd $cc $CFLAGS "$@" -c -o $TMPO $TMPC
 
385
}
 
386
 
 
387
check_cpp(){
 
388
    log check_cpp "$@"
 
389
    cat >$TMPC
 
390
    log_file $TMPC
 
391
    check_cmd $cc $CFLAGS "$@" -E -o $TMPO $TMPC
 
392
}
 
393
 
 
394
check_ld(){
 
395
    log check_ld "$@"
 
396
    check_cc || return
 
397
    check_cmd $cc $LDFLAGS "$@" -o $TMPE $TMPO $extralibs
 
398
}
 
399
 
 
400
check_cflags(){
 
401
    log check_cflags "$@"
 
402
    check_cc "$@" <<EOF && add_cflags "$@"
 
403
int x;
 
404
EOF
 
405
}
 
406
 
 
407
check_ldflags(){
 
408
    log check_ldflags "$@"
 
409
    check_ld "$@" <<EOF && add_ldflags "$@"
 
410
int main(){
 
411
    return 0;
 
412
}
 
413
EOF
 
414
}
 
415
 
 
416
check_header(){
 
417
    log check_header "$@"
 
418
    header=$1
 
419
    shift
 
420
    var=`echo $header | sed 's/[^A-Za-z0-9_]/_/g'`
 
421
    disable $var
 
422
    check_cpp "$@" <<EOF && enable $var
 
423
#include <$header>
 
424
int x;
 
425
EOF
 
426
}
 
427
 
 
428
check_func(){
 
429
    log check_func "$@"
 
430
    func=$1
 
431
    shift
 
432
    disable $func
 
433
    check_ld "$@" <<EOF && enable $func
 
434
extern int $func();
 
435
int main(){
 
436
    $func();
 
437
}
 
438
EOF
 
439
}
 
440
 
 
441
check_func2(){
 
442
    log check_func2 "$@"
 
443
    headers=$1
 
444
    func=$2
 
445
    shift 2
 
446
    disable $func
 
447
    incs=""
 
448
    for hdr in $headers; do
 
449
        incs="$incs
 
450
#include <$hdr>"
 
451
    done
 
452
    check_ld "$@" <<EOF && enable $func
 
453
$incs
 
454
int main(){
 
455
    (void) $func;
 
456
    return 0;
 
457
}
 
458
EOF
 
459
}
 
460
 
 
461
check_lib(){
 
462
    log check_lib "$@"
 
463
    header="$1"
 
464
    func="$2"
 
465
    shift 2
 
466
    temp_extralibs "$@"
 
467
    check_header $header && check_func $func && add_extralibs "$@"
 
468
    err=$?
 
469
    restore_flags
 
470
    return $err
 
471
}
 
472
 
 
473
check_lib2(){
 
474
    log check_lib2 "$@"
 
475
    headers="$1"
 
476
    func="$2"
 
477
    shift 2
 
478
    temp_extralibs "$@"
 
479
    check_func2 "$headers" $func && add_extralibs "$@"
 
480
    err=$?
 
481
    restore_flags
 
482
    return $err
 
483
}
 
484
 
 
485
check_exec(){
 
486
    check_ld "$@" && { enabled cross_compile || $TMPE >>$logfile 2>&1; }
 
487
}
 
488
 
 
489
require(){
 
490
    name="$1"
 
491
    header="$2"
 
492
    func="$3"
 
493
    shift 3
 
494
    check_lib $header $func "$@" || die "ERROR: $name not found"
 
495
}
 
496
 
 
497
require2(){
 
498
    name="$1"
 
499
    headers="$2"
 
500
    func="$3"
 
501
    shift 3
 
502
    check_lib2 "$headers" $func "$@" || die "ERROR: $name not found"
 
503
}
 
504
 
 
505
check_foo_config(){
 
506
    cfg=$1
 
507
    pkg=$2
 
508
    header=$3
 
509
    func=$4
 
510
    shift 4
 
511
    disable $cfg
 
512
    check_cmd ${pkg}-config --version
 
513
    err=$?
 
514
    if test "$err" = 0; then
 
515
        temp_cflags `${pkg}-config --cflags`
 
516
        temp_extralibs `${pkg}-config --libs`
 
517
        check_lib "$@" $header $func && enable $cfg
 
518
    fi
 
519
    return $err
 
520
}
 
521
 
 
522
apply(){
 
523
    file=$1
 
524
    shift
 
525
    "$@" < "$file" > "$file.tmp" && mv "$file.tmp" "$file" || rm "$file.tmp"
 
526
}
 
527
 
 
528
CONFIG_LIST='
 
529
    encoders
 
530
    decoders
 
531
    parsers
 
532
    muxers
 
533
    demuxers
 
534
    amr
 
535
    amr_nb
 
536
    amr_nb_fixed
 
537
    amr_wb
 
538
    audio_beos
 
539
    audio_oss
 
540
    avisynth
 
541
    beos_netserver
 
542
    bktr
 
543
    dc1394
 
544
    dv1394
 
545
    ffmpeg
 
546
    ffplay
 
547
    ffserver
 
548
    gpl
 
549
    gprof
 
550
    ipv6
 
551
    liba52
 
552
    liba52bin
 
553
    libdts
 
554
    libfaac
 
555
    libfaad
 
556
    libfaadbin
 
557
    libgsm
 
558
    libmp3lame
 
559
    libnut
 
560
    libogg
 
561
    libtheora
 
562
    libvorbis
 
563
    memalign_hack
 
564
    mpegaudio_hp
 
565
    network
 
566
    powerpc_perf
 
567
    pp
 
568
    protocols
 
569
    swscaler
 
570
    vhook
 
571
    v4l
 
572
    v4l2
 
573
    wince
 
574
    x11grab
 
575
    x264
 
576
    xvid
 
577
    zlib
 
578
'
 
579
 
 
580
THREADS_LIST='
 
581
    beosthreads
 
582
    os2threads
 
583
    pthreads
 
584
    w32threads
 
585
'
 
586
 
 
587
HAVE_LIST="
 
588
    $THREADS_LIST
 
589
    altivec
 
590
    altivec_h
 
591
    armv5te
 
592
    armv6
 
593
    byteswap_h
 
594
    cmov
 
595
    dcbzl
 
596
    dev_bktr_ioctl_bt848_h
 
597
    dev_bktr_ioctl_meteor_h
 
598
    dev_ic_bt8xx_h
 
599
    dev_video_meteor_ioctl_meteor_h
 
600
    dev_video_bktr_ioctl_bt848_h
 
601
    dlfcn_h
 
602
    dlopen
 
603
    fast_64bit
 
604
    fast_cmov
 
605
    freetype2
 
606
    imlib2
 
607
    inet_aton
 
608
    iwmmxt
 
609
    localtime_r
 
610
    lrintf
 
611
    machine_ioctl_bt848_h
 
612
    machine_ioctl_meteor_h
 
613
    malloc_h
 
614
    memalign
 
615
    mlib
 
616
    mmi
 
617
    mmx
 
618
    os2
 
619
    sdl
 
620
    sdl_video_size
 
621
    soundcard_h
 
622
    sys_poll_h
 
623
    sys_soundcard_h
 
624
    threads
 
625
"
 
626
 
 
627
TARGET_LIST='
 
628
    altivec
 
629
    armv5te
 
630
    armv6
 
631
    iwmmxt
 
632
    mmi
 
633
    mmx
 
634
'
 
635
 
 
636
CMDLINE_SELECT="
 
637
    $CONFIG_LIST
 
638
    $TARGET_LIST
 
639
    $THREADS_LIST
 
640
    amr_if2
 
641
    debug
 
642
    extra_warnings
 
643
    shared
 
644
    static
 
645
"
 
646
 
 
647
flashsv_decoder_deps="zlib"
 
648
flashsv_encoder_deps="zlib"
 
649
mpeg_xvmc_decoder_deps="xvmc"
 
650
png_decoder_deps="zlib"
 
651
png_encoder_deps="zlib"
 
652
x264_encoder_deps="x264"
 
653
xvid_encoder_deps="xvid"
 
654
zmbv_decoder_deps="zlib"
 
655
zmbv_encoder_deps="zlib"
 
656
 
 
657
aac_decoder_deps="libfaad"
 
658
mpeg4aac_decoder_deps="libfaad"
 
659
amr_nb_decoder_deps_any="amr_nb amr_nb_fixed"
 
660
amr_nb_encoder_deps_any="amr_nb amr_nb_fixed"
 
661
amr_wb_decoder_deps="amr_wb"
 
662
amr_wb_encoder_deps="amr_wb"
 
663
dts_decoder_deps="libdts"
 
664
faac_encoder_deps="libfaac"
 
665
liba52_decoder_deps="liba52"
 
666
libgsm_decoder_deps="libgsm"
 
667
libgsm_encoder_deps="libgsm"
 
668
libgsm_ms_decoder_deps="libgsm"
 
669
libgsm_ms_encoder_deps="libgsm"
 
670
libtheora_encoder_deps="libtheora"
 
671
mp3lame_encoder_deps="libmp3lame"
 
672
oggvorbis_decoder_deps="libvorbis"
 
673
oggvorbis_encoder_deps="libvorbis"
 
674
 
 
675
audio_demuxer_deps_any="audio_oss audio_beos"
 
676
audio_muxer_deps_any="audio_oss audio_beos"
 
677
dc1394_demuxer_deps="dc1394"
 
678
dv1394_demuxer_deps="dv1394"
 
679
gxf_muxer_deps="gpl"
 
680
libnut_demuxer_deps="libnut"
 
681
libnut_muxer_deps="libnut"
 
682
ogg_muxer_deps="libogg"
 
683
redir_demuxer_deps="network"
 
684
rtp_muxer_deps="network"
 
685
rtsp_demuxer_deps="network"
 
686
sdp_demuxer_deps="network"
 
687
v4l2_demuxer_deps="v4l2"
 
688
video_grab_device_demuxer_deps_any="v4l bktr"
 
689
x11_grab_device_demuxer_deps="x11grab"
 
690
 
 
691
ffplay_deps="sdl"
 
692
ffserver_deps="network protocols muxers"
 
693
network_deps="protocols"
 
694
 
5
695
# set temporary file name
6
696
if test ! -z "$TMPDIR" ; then
7
697
    TMPDIR1="${TMPDIR}"
18
708
TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"
19
709
 
20
710
# default parameters
21
 
prefix="/usr/local"
22
 
mandir=""
23
 
bindir=""
 
711
 
 
712
logging="yes"
 
713
logfile="config.err"
 
714
 
 
715
# installation paths
 
716
PREFIX="/usr/local"
 
717
libdir='${PREFIX}/lib'
 
718
shlibdir="$libdir"
 
719
incdir='${PREFIX}/include/ffmpeg'
 
720
mandir='${PREFIX}/man'
 
721
bindir='${PREFIX}/bin'
 
722
 
 
723
# toolchain
24
724
cross_prefix=""
 
725
cross_compile="no"
25
726
cc="gcc"
26
727
ar="ar"
27
728
ranlib="ranlib"
28
729
make="make"
29
730
strip="strip"
30
 
cpu=`uname -m`
31
 
tune="generic"
 
731
asmalign_pot="unknown"
 
732
 
 
733
# machine
 
734
arch=`uname -m`
 
735
cpu="generic"
32
736
powerpc_perf="no"
33
737
mmx="default"
 
738
cmov="no"
 
739
fast_cmov="no"
 
740
armv5te="default"
 
741
armv6="default"
 
742
iwmmxt="default"
34
743
altivec="default"
 
744
dcbzl="no"
35
745
mmi="default"
36
 
case "$cpu" in
37
 
  i386|i486|i586|i686|i86pc|BePC)
38
 
    cpu="x86"
39
 
  ;;
40
 
  # armv4l is a subset of armv5tel
41
 
  armv4l|armv5tel)
42
 
    cpu="armv4l"
43
 
  ;;
44
 
  alpha)
45
 
    cpu="alpha"
46
 
  ;;
47
 
  "Power Macintosh"|ppc)
48
 
    cpu="powerpc"
49
 
  ;;
50
 
  mips)
51
 
    cpu="mips"
52
 
  ;;
53
 
  sun4u)
54
 
    cpu="sparc64"
55
 
  ;;
56
 
  sh4)
57
 
    cpu="sh4"
58
 
  ;;
59
 
  *)
60
 
    cpu="unknown"
61
 
  ;;
62
 
esac
 
746
bigendian="no"
 
747
 
 
748
# OS
 
749
targetos=`uname -s`
 
750
beos_netserver="no"
 
751
os2="no"
 
752
wince="no"
 
753
 
 
754
# non-library system interfaces
 
755
audio_beos="default"
 
756
audio_oss="yes"
 
757
bktr="yes"
 
758
dv1394="yes"
 
759
v4l2="yes"
 
760
v4l="yes"
 
761
 
 
762
# libraries
 
763
amr_if2="no"
 
764
amr_nb="no"
 
765
amr_nb_fixed="no"
 
766
amr_wb="no"
 
767
avisynth="no"
 
768
dc1394="no"
 
769
dlfcn_h="no"
 
770
dlopen="no"
 
771
liba52="no"
 
772
liba52bin="no"
 
773
libdts="no"
 
774
libfaac="no"
 
775
libfaad2="no"
 
776
libfaad="no"
 
777
libfaadbin="no"
 
778
libgsm="no"
 
779
libmp3lame="no"
 
780
libnut="no"
 
781
libogg="no"
 
782
libtheora="no"
 
783
libvorbis="no"
 
784
mlib="no"
 
785
x11grab="no"
 
786
x264="no"
 
787
xvid="no"
 
788
zlib="yes"
 
789
 
 
790
# configurable options
 
791
debug="yes"
 
792
dostrip="yes"
 
793
extra_warnings="no"
 
794
ffmpeg="yes"
 
795
ffplay="yes"
 
796
ffserver="yes"
 
797
gpl="no"
63
798
gprof="no"
64
 
v4l="yes"
65
 
audio_oss="yes"
66
 
audio_beos="no"
67
 
dv1394="yes"
 
799
ipv6="yes"
 
800
shared="no"
 
801
static="yes"
 
802
memalign_hack="no"
 
803
mpegaudio_hp="yes"
68
804
network="yes"
69
 
zlib="yes"
70
 
mp3lame="no"
71
 
vorbis="no"
72
 
faad="no"
73
 
faadbin="no"
74
 
a52="no"
75
 
a52bin="no"
 
805
optimize="yes"
76
806
pp="no"
77
 
shared_pp="no"
78
 
mingw32="no"
79
 
cygwin="no"
80
 
os2="no"
81
 
lshared="no"
82
 
optimize="yes"
83
 
debug="yes"
84
 
extralibs="-lm"
85
 
simpleidct="yes"
86
 
bigendian="no"
 
807
protocols="yes"
 
808
swscaler="no"
87
809
vhook="default"
88
 
dlfcn="no"
89
 
dlopen="no"
90
 
mpegaudio_hp="yes"
91
 
SHFLAGS=-shared
92
 
netserver="no"
93
 
need_inet_aton="no"
94
 
ffserver="yes"
95
 
ffplay="yes"
96
 
LDFLAGS=-Wl,--warn-common
97
 
FFSLDFLAGS=-Wl,-E
 
810
 
 
811
# threading
 
812
beosthreads="no"
 
813
os2threads="no"
 
814
pthreads="no"
 
815
w32threads="no"
 
816
thread_type="no"
 
817
 
 
818
# build settings
 
819
SHFLAGS='-shared -Wl,-soname,$@'
 
820
VHOOKSHFLAGS='$(SHFLAGS)'
 
821
LIBOBJFLAGS=""
 
822
FFLDFLAGS=-Wl,--warn-common
 
823
LDLATEFLAGS='-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
 
824
FFSERVERLDFLAGS=-Wl,-E
 
825
LDCONFIG="ldconfig"
98
826
LIBPREF="lib"
99
827
LIBSUF=".a"
 
828
LIB='$(LIBPREF)$(NAME)$(LIBSUF)'
100
829
SLIBPREF="lib"
101
830
SLIBSUF=".so"
 
831
SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF)'
 
832
SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
 
833
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
102
834
EXESUF=""
103
 
risky="yes"
104
 
amr_nb="no"
105
 
amr_nb_fixed="no"
106
 
sunmlib="no"
107
 
 
108
 
# OS specific
109
 
targetos=`uname -s`
110
 
case $targetos in
111
 
BeOS)
112
 
prefix="/boot/home/config"
113
 
# helps building libavcodec
114
 
CFLAGS="-DPIC -fomit-frame-pointer"
115
 
# 3 gcc releases known for BeOS, each with ugly bugs
116
 
gcc_version="$($cc -v 2>&1 | grep version | cut -d ' ' -f3-)"
117
 
case "$gcc_version" in
118
 
2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
119
 
mmx="no"
120
 
;;
121
 
*20010315*) echo "BeBits gcc"
122
 
CFLAGS="$CFLAGS -fno-expensive-optimizations"
123
 
;;
124
 
esac
125
 
SHFLAGS=-nostart
126
 
# disable linux things
127
 
audio_oss="no"
128
 
v4l="no"
129
 
dv1394="no"
130
 
# enable beos things
131
 
audio_beos="yes"
132
 
# no need for libm, but the inet stuff
133
 
# Check for BONE
134
 
if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then
135
 
extralibs="-lbind -lsocket"
136
 
else
137
 
netserver="yes"
138
 
need_inet_aton="yes"
139
 
extralibs="-lnet"
140
 
fi ;;
141
 
SunOS)
142
 
v4l="no"
143
 
audio_oss="no"
144
 
dv1394="no"
145
 
make="gmake"
146
 
LDFLAGS=""
147
 
FFSLDFLAGS=""
148
 
need_inet_aton="yes"
149
 
extralibs="$extralibs -lsocket -lnsl"
150
 
;;
151
 
FreeBSD)
152
 
v4l="no"
153
 
audio_oss="yes"
154
 
dv1394="no"
155
 
make="gmake"
156
 
LDFLAGS="$LDFLAGS -export-dynamic"
157
 
;;
158
 
BSD/OS)
159
 
v4l="no"
160
 
audio_oss="yes"
161
 
dv1394="no"
162
 
extralibs="-lpoll -lgnugetopt -lm"
163
 
make="gmake"
164
 
;;
165
 
Darwin)
166
 
cc="cc"
167
 
v4l="no"
168
 
audio_oss="no"
169
 
dv1394="no"
170
 
ffserver="no"
171
 
SHFLAGS="-dynamiclib"
172
 
extralibs=""
173
 
darwin="yes"
174
 
strip="strip -x"
175
 
LDFLAGS="-d"
176
 
FFSLDFLAGS=-Wl,-bind_at_load
177
 
gcc_version="$($cc -v 2>&1 | grep version | cut -d ' ' -f3-)"
178
 
case "$gcc_version" in
179
 
*2.95*) 
180
 
CFLAGS="-no-cpp-precomp -pipe -fomit-frame-pointer"
181
 
;;
182
 
*3.3*) 
183
 
CFLAGS="-no-cpp-precomp -pipe -fomit-frame-pointer -mdynamic-no-pic -force_cpusubtype_ALL"
184
 
;;
185
 
*) 
186
 
CFLAGS="-no-cpp-precomp -pipe -fomit-frame-pointer -mdynamic-no-pic"
187
 
;;
188
 
esac
189
 
;;
190
 
MINGW32*)
191
 
# Note: the rest of the mingw32 config is done afterwards as mingw32
192
 
# can be forced on command line for linux cross compilation
193
 
mingw32="yes"
194
 
;;
195
 
CYGWIN*)
196
 
v4l="no"
197
 
audio_oss="yes"
198
 
dv1394="no"
199
 
extralibs=""
200
 
cygwin="yes"
201
 
test -f /usr/include/inttypes.h || \
202
 
test -f /usr/local/include/inttypes.h || \
203
 
echo "Missing inttypes.h, please copy cygwin_inttypes.h to" \
204
 
     "/usr/include/inttypes.h !!!"
205
 
;;
206
 
Linux)
207
 
LDFLAGS="$LDFLAGS -rdynamic"
208
 
;;
209
 
OS/2)
210
 
TMPE=$TMPE".exe"
211
 
ar="emxomfar -p64"
212
 
ranlib="echo ignoring ranlib"
213
 
strip="echo ignoring strip"
214
 
CFLAGS="-Zomf"
215
 
LDFLAGS="-Zomf -Zstack 16384 -s"
216
 
SHFLAGS=""
217
 
FFSLDFLAGS=""
218
 
LIBPREF=""
219
 
LIBSUF=".lib"
220
 
SLIBPREF=""
221
 
SLIBSUF=".dll"
222
 
EXESUF=".exe"
223
 
extralibs=""
224
 
v4l="no"
225
 
audio_oss="no"
226
 
dv1394="no"
227
 
network="no"
228
 
ffserver="no"
229
 
os2="yes"
230
 
;;
231
 
*) ;;
232
 
esac
233
 
 
234
 
# From mplayer configure. We need TARGET_OS available
235
 
# to the Makefile, so it can distinguish between flavors
236
 
# of AltiVec on PowerPC
237
 
TARGET_OS=`( uname -s ) 2>&1`
238
 
  case "$TARGET_OS" in
239
 
  Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU)
240
 
    ;;
241
 
  IRIX*)
242
 
    TARGET_OS=IRIX
243
 
    ;;
244
 
  HP-UX*)
245
 
    TARGET_OS=HP-UX
246
 
    ;;
247
 
  [cC][yY][gG][wW][iI][nN]*)
248
 
    TARGET_OS=CYGWIN
249
 
    ;;
250
 
  *)
251
 
    TARGET_OS="$TARGET_OS-UNKNOWN"
252
 
    ;;
253
 
  esac
 
835
BUILDSUF=""
 
836
LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(libdir)/$(LIB)"'
254
837
 
255
838
# find source path
256
 
# XXX: we assume an absolute path is given when launching configure, 
257
 
# except in './configure' case.
258
 
source_path="`echo $0 | sed -e 's#/configure##'`"
 
839
source_path="`dirname \"$0\"`"
259
840
source_path_used="yes"
260
841
if test -z "$source_path" -o "$source_path" = "." ; then
261
 
    source_path=`pwd`
 
842
    source_path="`pwd`"
262
843
    source_path_used="no"
263
 
fi
 
844
else
 
845
    source_path="`cd \"$source_path\"; pwd`"
 
846
    echo "$source_path" | grep -q '[[:blank:]]' &&
 
847
      die "Out of tree builds are impossible with whitespace in source path."
 
848
fi
 
849
 
 
850
if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
 
851
    show_help
 
852
fi
 
853
 
 
854
FFMPEG_CONFIGURATION="$@"
 
855
 
 
856
ENCODER_LIST=`sed -n 's/^[^#]*ENC.*, *\(.*\)).*/\1_encoder/p' "$source_path/libavcodec/allcodecs.c"`
 
857
DECODER_LIST=`sed -n 's/^[^#]*DEC.*, *\(.*\)).*/\1_decoder/p' "$source_path/libavcodec/allcodecs.c"`
 
858
PARSER_LIST=`sed -n 's/^[^#]*PARSER.*, *\(.*\)).*/\1_parser/p' "$source_path/libavcodec/allcodecs.c"`
 
859
MUXER_LIST=`sed -n 's/^[^#]*_MUX.*, *\(.*\)).*/\1_muxer/p' "$source_path/libavformat/allformats.c"`
 
860
DEMUXER_LIST=`sed -n 's/^[^#]*DEMUX.*, *\(.*\)).*/\1_demuxer/p' "$source_path/libavformat/allformats.c"`
 
861
 
 
862
enable $ENCODER_LIST $DECODER_LIST $PARSER_LIST $MUXER_LIST $DEMUXER_LIST
 
863
 
 
864
die_unknown(){
 
865
    echo "Unknown option \"$1\"."
 
866
    echo "See $0 --help for available options."
 
867
    exit 1
 
868
}
264
869
 
265
870
for opt do
 
871
  optval="${opt#*=}"
266
872
  case "$opt" in
267
 
  --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`
268
 
  ;;
269
 
  --mandir=*) mandir=`echo $opt | cut -d '=' -f 2`
270
 
  ;;
271
 
  --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
272
 
  ;;
273
 
  --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
274
 
  ;;
275
 
  --cc=*) cc=`echo $opt | cut -d '=' -f 2`
276
 
  ;;
277
 
  --make=*) make=`echo $opt | cut -d '=' -f 2`
278
 
  ;;
279
 
  --extra-cflags=*) CFLAGS="${opt#--extra-cflags=}"
280
 
  ;;
281
 
  --extra-ldflags=*) LDFLAGS=${opt#--extra-ldflags=}
282
 
  ;;
283
 
  --extra-libs=*) extralibs=${opt#--extra-libs=}
284
 
  ;;
285
 
  --cpu=*) cpu=`echo $opt | cut -d '=' -f 2`
286
 
  ;;
287
 
  --tune=*) tune=`echo $opt | cut -d '=' -f 2`
288
 
  ;;
289
 
  --powerpc-perf-enable) powerpc_perf="yes"
290
 
  ;;
291
 
  --disable-mmx) mmx="no"
292
 
  ;;
293
 
  --disable-altivec) altivec="no"
294
 
  ;;
295
 
  --enable-gprof) gprof="yes"
296
 
  ;;
297
 
  --disable-v4l) v4l="no"
298
 
  ;;
299
 
  --disable-audio-oss) audio_oss="no"
300
 
  ;;
301
 
  --disable-audio-beos) audio_beos="no"
302
 
  ;;
303
 
  --disable-dv1394) dv1394="no"
304
 
  ;;
305
 
  --disable-network) network="no"
306
 
  ;;
307
 
  --disable-zlib) zlib="no"
308
 
  ;;
309
 
  --enable-a52) a52="yes"
310
 
  ;;
311
 
  --enable-a52bin) a52bin="yes" ; extralibs="$ldl $extralibs"
312
 
  ;;
313
 
  --enable-pp) pp="yes"
314
 
  ;;
315
 
  --enable-shared-pp) shared_pp="yes"
316
 
  ;;
317
 
  --enable-mp3lame) mp3lame="yes"
318
 
  ;;
319
 
  --enable-vorbis) vorbis="yes"
320
 
  ;;
321
 
  --enable-faad) faad="yes"
322
 
  ;;
323
 
  --enable-faadbin) faadbin="yes"
324
 
  ;;
325
 
  --disable-vhook) vhook="no"
326
 
  ;;
327
 
  --disable-simple_idct) simpleidct="no"
328
 
  ;;
329
 
  --enable-mingw32) mingw32="yes"
330
 
  ;;
331
 
  --enable-shared) lshared="yes"
332
 
  ;;
333
 
  --disable-debug) debug="no"
 
873
  --log)
 
874
  ;;
 
875
  --log=*) logging="$optval"
 
876
  ;;
 
877
  --prefix=*) PREFIX="$optval"
 
878
  ;;
 
879
  --libdir=*) libdir="$optval"
 
880
  ;;
 
881
  --shlibdir=*) shlibdir="$optval"
 
882
  ;;
 
883
  --incdir=*) incdir="$optval"
 
884
  ;;
 
885
  --mandir=*) mandir="$optval"
 
886
  ;;
 
887
  --source-path=*) source_path="$optval"
 
888
  ;;
 
889
  --cross-prefix=*) cross_prefix="$optval"
 
890
  ;;
 
891
  --cross-compile) cross_compile="yes"
 
892
  ;;
 
893
  --target-os=*) targetos="$optval"
 
894
  ;;
 
895
  --cc=*) cc="$optval"
 
896
  ;;
 
897
  --make=*) make="$optval"
 
898
  ;;
 
899
  --extra-cflags=*) add_cflags "$optval"
 
900
  ;;
 
901
  --extra-ldflags=*) add_ldflags "$optval"
 
902
  ;;
 
903
  --extra-libs=*) add_extralibs "$optval"
 
904
  ;;
 
905
  --build-suffix=*) BUILDSUF="$optval"
 
906
  ;;
 
907
  --arch=*) arch="$optval"
 
908
  ;;
 
909
  --cpu=*) cpu="$optval"
 
910
  ;;
 
911
  --enable-mingwce) wince="yes"
334
912
  ;;
335
913
  --disable-opts) optimize="no"
336
914
  ;;
337
 
  --disable-mpegaudio-hp) mpegaudio_hp="no"
338
 
  ;;
339
 
  --disable-ffserver) ffserver="no"
340
 
  ;;
341
 
  --disable-ffplay) ffplay="no"
342
 
  ;;
343
 
  --disable-risky) risky="no"
344
 
  ;;
345
915
  --enable-small) optimize="small"
346
916
  ;;
347
 
  --enable-amr_nb) amr_nb="yes"
348
 
  ;;
349
 
  --enable-amr_nb-fixed) amr_nb_fixed="yes"
350
 
  ;;
351
 
  --enable-sunmlib) sunmlib="yes"
 
917
  --enable-sunmlib) mlib="yes"
 
918
  ;;
 
919
  --disable-strip) dostrip="no"
 
920
  ;;
 
921
  --disable-encoders) disable $ENCODER_LIST
 
922
  ;;
 
923
  --disable-decoders) disable $DECODER_LIST
 
924
  ;;
 
925
  --disable-muxers) disable $MUXER_LIST
 
926
  ;;
 
927
  --disable-demuxers) disable $DEMUXER_LIST
 
928
  ;;
 
929
  --disable-parsers) disable $PARSER_LIST
 
930
  ;;
 
931
  --enable-*=*|--disable-*=*)
 
932
  eval `echo "$opt" | sed 's/=/-/;s/--/action=/;s/-/ thing=/;s/-/ name=/'`
 
933
  case "$thing" in
 
934
      encoder|decoder|muxer|demuxer|parser) $action ${optval}_${thing} ;;
 
935
      *) die_unknown "$opt" ;;
 
936
  esac
 
937
  ;;
 
938
  --enable-?*|--disable-?*)
 
939
  eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'`
 
940
  echo "$CMDLINE_SELECT" | grep -q "^ *$option\$" || die_unknown $opt
 
941
  $action $option
 
942
  ;;
 
943
  --help) show_help
 
944
  ;;
 
945
  *)
 
946
  die_unknown $opt
352
947
  ;;
353
948
  esac
354
949
done
355
950
 
356
 
# compute mmx state
 
951
case "$arch" in
 
952
  i386|i486|i586|i686|i86pc|BePC)
 
953
    arch="x86_32"
 
954
  ;;
 
955
  x86_64|amd64)
 
956
    arch="x86_32"
 
957
    canon_arch="`$cc -dumpmachine | sed -e 's,\([^-]*\)-.*,\1,'`"
 
958
    if [ x"$canon_arch" = x"x86_64" -o x"$canon_arch" = x"amd64" ]; then
 
959
      if [ -z "`echo $CFLAGS | grep -- -m32`"  ]; then
 
960
        arch="x86_64"
 
961
        enable fast_64bit
 
962
      fi
 
963
    fi
 
964
  ;;
 
965
  # armv4l is a subset of armv[567]*l
 
966
  arm|armv[4567]*l)
 
967
    arch="armv4l"
 
968
  ;;
 
969
  alpha)
 
970
    arch="alpha"
 
971
    enable fast_64bit
 
972
  ;;
 
973
  "Power Macintosh"|ppc|powerpc)
 
974
    arch="powerpc"
 
975
  ;;
 
976
  ppc64)
 
977
    arch="powerpc"
 
978
    enable fast_64bit
 
979
  ;;
 
980
  mips|mipsel|IP*)
 
981
    arch="mips"
 
982
  ;;
 
983
  sun4u|sparc64)
 
984
    arch="sparc64"
 
985
    enable fast_64bit
 
986
  ;;
 
987
  sparc)
 
988
    arch="sparc"
 
989
  ;;
 
990
  sh4)
 
991
    arch="sh4"
 
992
  ;;
 
993
  parisc)
 
994
    arch="parisc"
 
995
  ;;
 
996
  parisc64)
 
997
    arch="parisc"
 
998
    enable fast_64bit
 
999
  ;;
 
1000
  s390|s390x)
 
1001
    arch="s390"
 
1002
  ;;
 
1003
  m68k)
 
1004
    arch="m68k"
 
1005
  ;;
 
1006
  ia64)
 
1007
    arch="ia64"
 
1008
    enable fast_64bit
 
1009
  ;;
 
1010
  bfin)
 
1011
    arch="bfin"
 
1012
  ;;
 
1013
  *)
 
1014
    arch="unknown"
 
1015
  ;;
 
1016
esac
 
1017
 
 
1018
# OS specific
 
1019
osextralibs="-lm"
 
1020
case `tolower $targetos` in
 
1021
  beos|haiku|zeta)
 
1022
    PREFIX="$HOME/config"
 
1023
    # helps building libavcodec
 
1024
    add_cflags "-DPIC -fomit-frame-pointer"
 
1025
    # 3 gcc releases known for BeOS, each with ugly bugs
 
1026
    gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
 
1027
    case "$gcc_version" in
 
1028
      2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
 
1029
        mmx="no"
 
1030
        ;;
 
1031
      *20010315*) echo "BeBits gcc"
 
1032
        add_cflags "-fno-expensive-optimizations"
 
1033
        ;;
 
1034
    esac
 
1035
    LDCONFIG="echo ignoring ldconfig"
 
1036
    SHFLAGS=-nostart
 
1037
    # disable Linux things
 
1038
    dv1394="no"
 
1039
    # enable BeOS things
 
1040
    disabled audio_beos || enable_audio_beos
 
1041
    # no need for libm, but the inet stuff
 
1042
    # Check for BONE
 
1043
    # XXX: actually should check for NOT net_server
 
1044
    if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then
 
1045
        osextralibs="-lbind -lsocket"
 
1046
    else
 
1047
        beos_netserver="yes"
 
1048
        osextralibs="-lnet"
 
1049
    fi ;;
 
1050
  sunos)
 
1051
    dv1394="no"
 
1052
    FFLDFLAGS=""
 
1053
    FFSERVERLDFLAGS=""
 
1054
    SHFLAGS="-shared -Wl,-h,\$@"
 
1055
    add_extralibs "-lsocket -lnsl"
 
1056
    ;;
 
1057
  netbsd)
 
1058
    dv1394="no"
 
1059
    add_extralibs "-lossaudio"
 
1060
    ;;
 
1061
  openbsd)
 
1062
    dv1394="no"
 
1063
    need_memalign="no"
 
1064
    LIBOBJFLAGS="\$(PIC)"
 
1065
    LDCONFIG="ldconfig -m \$(shlibdir)"
 
1066
    SHFLAGS='-shared'
 
1067
    SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF).$(LIBVERSION)'
 
1068
    SLIBNAME_WITH_VERSION='$(SLIBNAME)'
 
1069
    SLIBNAME_WITH_MAJOR='$(SLIBNAME)'
 
1070
    add_extralibs "-lossaudio"
 
1071
    ;;
 
1072
  freebsd)
 
1073
    dv1394="no"
 
1074
    need_memalign="no"
 
1075
    add_cflags "-pthread"
 
1076
    ;;
 
1077
  gnu/kfreebsd)
 
1078
    dv1394="no"
 
1079
    add_cflags "-pthread"
 
1080
    ;;
 
1081
  bsd/os)
 
1082
    dv1394="no"
 
1083
    osextralibs="-lpoll -lgnugetopt -lm"
 
1084
    strip="strip -d"
 
1085
    ;;
 
1086
  darwin)
 
1087
    cc="cc"
 
1088
    dv1394="no"
 
1089
    need_memalign="no"
 
1090
    SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(shlibdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION) -Wl,-read_only_relocs,suppress"
 
1091
    VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(shlibdir)/vhook/$@'
 
1092
    osextralibs=""
 
1093
    strip="strip -x"
 
1094
    FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
 
1095
    SLIBSUF=".dylib"
 
1096
    SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME).$(LIBVERSION)$(SLIBSUF)'
 
1097
    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)'
 
1098
    FFSERVERLDFLAGS=-Wl,-bind_at_load
 
1099
    ;;
 
1100
  mingw32*)
 
1101
    if enabled_all shared static; then
 
1102
        cat <<EOF
 
1103
You can only build one library type at once on MinGW.
 
1104
Specify --disable-static --enable-shared to only build
 
1105
the shared libraries. To build only the static libraries
 
1106
you do not need to pass additional options.
 
1107
EOF
 
1108
        exit 1
 
1109
    fi
 
1110
    dv1394="no"
 
1111
    ffserver="no"
 
1112
    network="no"
 
1113
    if enabled wince; then
 
1114
        protocols="no"
 
1115
    fi
 
1116
    SLIBPREF=""
 
1117
    SLIBSUF=".dll"
 
1118
    EXESUF=".exe"
 
1119
    SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
 
1120
    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
 
1121
    SLIB_EXTRA_CMD="-lib /machine:i386 /def:\$(@:${SLIBSUF}=.def)"
 
1122
    SLIB_INSTALL_EXTRA_CMD="-install -m 644 \$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib) \"\$(shlibdir)/\$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib)\""
 
1123
    SHFLAGS="-shared -Wl,--output-def,\$(@:${SLIBSUF}=.def),--out-implib,lib\$(SLIBNAME:\$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc"
 
1124
    add_extralibs -lws2_32
 
1125
    ;;
 
1126
  cygwin*)
 
1127
    targetos=CYGWIN
 
1128
    shlibdir="$bindir"
 
1129
    dv1394="no"
 
1130
    VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libswscale -L$(BUILD_ROOT)/libavutil'
 
1131
    VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lswscale$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
 
1132
    osextralibs=""
 
1133
    EXESUF=".exe"
 
1134
    SLIBPREF="cyg"
 
1135
    SLIBSUF=".dll"
 
1136
    SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
 
1137
    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
 
1138
    SHFLAGS='-shared -Wl,--out-implib=lib$(NAME).dll.a'
 
1139
    ;;
 
1140
  linux)
 
1141
    LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS"
 
1142
    ;;
 
1143
  irix*)
 
1144
    targetos=IRIX
 
1145
    ranlib="echo ignoring ranlib"
 
1146
    ;;
 
1147
  os/2)
 
1148
    TMPE=$TMPE".exe"
 
1149
    ar="emxomfar -p128"
 
1150
    ranlib="echo ignoring ranlib"
 
1151
    strip="echo ignoring strip"
 
1152
    add_cflags "-Zomf"
 
1153
    FFLDFLAGS="-Zomf -Zstack 16384 -s"
 
1154
    SHFLAGS="-Zdll -Zomf"
 
1155
    FFSERVERLDFLAGS=""
 
1156
    LIBPREF=""
 
1157
    LIBSUF=".lib"
 
1158
    SLIBPREF=""
 
1159
    SLIBSUF=".dll"
 
1160
    EXESUF=".exe"
 
1161
    osextralibs=""
 
1162
    pkg_requires=""
 
1163
    dv1394="no"
 
1164
    ffserver="no"
 
1165
    vhook="no"
 
1166
    os2="yes"
 
1167
    ;;
 
1168
  *)
 
1169
    targetos="${targetos}-UNKNOWN"
 
1170
    ;;
 
1171
esac
 
1172
 
 
1173
add_extralibs $osextralibs
 
1174
 
 
1175
if ! disabled logging ; then
 
1176
    enabled logging || logfile="$logging"
 
1177
    echo "# $0 $@" >$logfile
 
1178
    set >>$logfile
 
1179
else
 
1180
    logfile=/dev/null
 
1181
fi
 
1182
 
 
1183
# Combine FFLDFLAGS and the LDFLAGS environment variable.
 
1184
LDFLAGS="$FFLDFLAGS $LDFLAGS"
 
1185
 
 
1186
test -n "$cross_prefix" && cross_compile=yes
 
1187
cc="${cross_prefix}${cc}"
 
1188
ar="${cross_prefix}${ar}"
 
1189
ranlib="${cross_prefix}${ranlib}"
 
1190
strip="${cross_prefix}${strip}"
 
1191
 
 
1192
# we need to build at least one lib type
 
1193
if disabled_all static shared; then
 
1194
    cat <<EOF
 
1195
At least one library type must be built.
 
1196
Specify --enable-static to build the static libraries or --enable-shared to
 
1197
build the shared libraries as well. To only build the shared libraries specify
 
1198
--disable-static in addition to --enable-shared.
 
1199
EOF
 
1200
    exit 1;
 
1201
fi
 
1202
 
 
1203
if disabled libogg; then
 
1204
    enabled libtheora && die "libogg must be enabled to enable libtheora."
 
1205
    enabled libvorbis && die "libogg must be enabled to enable libvorbis."
 
1206
fi
 
1207
 
 
1208
if enabled_any libfaad libfaadbin ; then
 
1209
    if check_header faad.h; then
 
1210
        check_cc << EOF
 
1211
#include <faad.h>
 
1212
#ifndef FAAD2_VERSION
 
1213
ok faad1
 
1214
#endif
 
1215
int main( void ) { return 0; }
 
1216
EOF
 
1217
        test $? = 0 && enable libfaad2
 
1218
    else
 
1219
        die "FAAD test failed."
 
1220
    fi
 
1221
fi
 
1222
 
 
1223
 
 
1224
if disabled gpl ; then
 
1225
    die_gpl_disabled(){
 
1226
        name=$1
 
1227
        shift
 
1228
        enabled_any $@ && die "$name is under GPL and --enable-gpl is not specified."
 
1229
    }
 
1230
    die_gpl_disabled "The Postprocessing code" pp
 
1231
    die_gpl_disabled "liba52"                  liba52
 
1232
    die_gpl_disabled "libxvidcore"             xvid
 
1233
    die_gpl_disabled "x264"                    x264
 
1234
    die_gpl_disabled "libdts"                  libdts
 
1235
    die_gpl_disabled "FAAD2"                   libfaad2
 
1236
    die_gpl_disabled "The X11 grabber"         x11grab
 
1237
    die_gpl_disabled "The software scaler"     swscaler
 
1238
fi
 
1239
 
 
1240
# compute MMX state
357
1241
if test $mmx = "default"; then
358
 
    if test $cpu = "x86"; then
 
1242
    if test $arch = "x86_32" -o $arch = "x86_64"; then
359
1243
        mmx="yes"
360
1244
    else
361
1245
        mmx="no"
362
1246
    fi
363
1247
fi
364
1248
 
 
1249
test -z "$need_memalign" && need_memalign="$mmx"
 
1250
 
 
1251
#Darwin CC versions
 
1252
needmdynamicnopic="no"
 
1253
if test $targetos = Darwin; then
 
1254
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
 
1255
        add_cflags "-qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto"
 
1256
    else
 
1257
        gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
 
1258
        case "$gcc_version" in
 
1259
            *2.95*)
 
1260
                add_cflags "-no-cpp-precomp -pipe"
 
1261
                ;;
 
1262
            *[34].*)
 
1263
                add_cflags "-no-cpp-precomp -pipe -force_cpusubtype_ALL -Wno-sign-compare"
 
1264
                if disabled shared; then
 
1265
                   needmdynamicnopic="yes"
 
1266
                fi
 
1267
                ;;
 
1268
            *)
 
1269
                add_cflags "-no-cpp-precomp -pipe"
 
1270
                if disabled shared; then
 
1271
                   needmdynamicnopic="yes"
 
1272
                fi
 
1273
                ;;
 
1274
        esac
 
1275
    fi
 
1276
fi
 
1277
 
 
1278
disabled optimize || add_cflags -fomit-frame-pointer
 
1279
 
365
1280
# Can only do AltiVec on PowerPC
366
1281
if test $altivec = "default"; then
367
 
    if test $cpu = "powerpc"; then
 
1282
    if test $arch = "powerpc"; then
368
1283
        altivec="yes"
369
1284
    else
370
1285
        altivec="no"
372
1287
fi
373
1288
 
374
1289
# Add processor-specific flags
375
 
TUNECPU="generic"
376
 
if test $tune != "generic"; then
377
 
    case $tune in
378
 
        601|ppc601|PowerPC601)
379
 
            CFLAGS="$CFLAGS -mcpu=601"
380
 
            if test $altivec = "yes"; then
381
 
                echo "WARNING: tuning for PPC601 but altivec enabled !";
382
 
            fi
383
 
            TUNECPU=ppc601
384
 
        ;;
385
 
        603*|ppc603*|PowerPC603*)
386
 
            CFLAGS="$CFLAGS -mcpu=603"
387
 
            if test $altivec = "yes"; then
388
 
                echo "WARNING: tuning for PPC603 but altivec enabled !";
389
 
            fi
390
 
            TUNECPU=ppc603
391
 
        ;;
392
 
        604*|ppc604*|PowerPC604*)
393
 
            CFLAGS="$CFLAGS -mcpu=604"
394
 
            if test $altivec = "yes"; then
395
 
                echo "WARNING: tuning for PPC604 but altivec enabled !";
396
 
            fi
397
 
            TUNECPU=ppc604
398
 
        ;;
399
 
        G3|g3|75*|ppc75*|PowerPC75*)
400
 
            CFLAGS="$CFLAGS -mcpu=750 -mtune=750"
401
 
            if test $altivec = "yes"; then
402
 
                echo "WARNING: tuning for PPC75x but altivec enabled !";
403
 
            fi
404
 
            TUNECPU=ppc750
405
 
        ;;
406
 
        G4|g4|745*|ppc745*|PowerPC745*)
407
 
            CFLAGS="$CFLAGS -mcpu=7450 -mtune=7450"
408
 
            if test $altivec = "no"; then
409
 
                echo "WARNING: tuning for PPC745x but altivec disabled !";
410
 
            fi
411
 
            TUNECPU=ppc7450
412
 
        ;;
413
 
        74*|ppc74*|PowerPC74*)
414
 
            CFLAGS="$CFLAGS -mcpu=7400 -mtune=7400"
415
 
            if test $altivec = "no"; then
416
 
                echo "WARNING: tuning for PPC74xx but altivec disabled !";
417
 
            fi
418
 
            TUNECPU=ppc7400
419
 
        ;;
420
 
        G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
421
 
            CFLAGS="$CFLAGS -mcpu=970 -mtune=970 -mpowerpc64 -force_cpusubtype_ALL "
422
 
            if test $altivec = "no"; then
423
 
                echo "WARNING: tuning for PPC970 but altivec disabled !";
424
 
            fi
425
 
            TUNECPU=ppc970
426
 
        ;;
427
 
        *)
428
 
        echo "WARNING: unknown CPU "$tune", ignored"
429
 
        ;;
 
1290
POWERPCMODE="32bits"
 
1291
if test $cpu != "generic"; then
 
1292
    warn_altivec(){
 
1293
        $1 altivec && echo "WARNING: Tuning for $2 but AltiVec $1.";
 
1294
    }
 
1295
    case $cpu in
 
1296
        601|ppc601|PowerPC601)
 
1297
            add_cflags "-mcpu=601"
 
1298
            warn_altivec enabled PPC601
 
1299
        ;;
 
1300
        603*|ppc603*|PowerPC603*)
 
1301
            add_cflags "-mcpu=603"
 
1302
            warn_altivec enabled PPC603
 
1303
        ;;
 
1304
        604*|ppc604*|PowerPC604*)
 
1305
            add_cflags "-mcpu=604"
 
1306
            warn_altivec enabled PPC604
 
1307
        ;;
 
1308
        G3|g3|75*|ppc75*|PowerPC75*)
 
1309
            add_cflags "-mcpu=750 -mpowerpc-gfxopt"
 
1310
            warn_altivec enabled PPC75x
 
1311
        ;;
 
1312
        G4|g4|745*|ppc745*|PowerPC745*)
 
1313
            add_cflags "-mcpu=7450 -mpowerpc-gfxopt"
 
1314
            warn_altivec disabled PPC745x
 
1315
        ;;
 
1316
        74*|ppc74*|PowerPC74*)
 
1317
            add_cflags "-mcpu=7400 -mpowerpc-gfxopt"
 
1318
            warn_altivec disabled PPC74xx
 
1319
        ;;
 
1320
        G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
 
1321
            add_cflags "-mcpu=970 -mpowerpc-gfxopt -mpowerpc64"
 
1322
            warn_altivec disabled PPC970
 
1323
            POWERPCMODE="64bits"
 
1324
        ;;
 
1325
        # targets that do NOT support conditional mov (cmov)
 
1326
        i[345]86|pentium|pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3)
 
1327
            add_cflags "-march=$cpu"
 
1328
            cmov="no"
 
1329
        ;;
 
1330
        # targets that do support conditional mov (cmov)
 
1331
        i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64|k8|opteron|athlon-fx|core2)
 
1332
            add_cflags "-march=$cpu"
 
1333
            cmov="yes"
 
1334
            fast_cmov="yes"
 
1335
        ;;
 
1336
        # targets that do support conditional mov but on which it's slow
 
1337
        pentium4|prescott|nocona)
 
1338
            add_cflags "-march=$cpu"
 
1339
            cmov="yes"
 
1340
            fast_cmov="no"
 
1341
        ;;
 
1342
        sparc64)
 
1343
            add_cflags "-mcpu=v9"
 
1344
        ;;
 
1345
        bf*) #bf531 bf532 bf533 bf561 bf5xx all get this config
 
1346
            add_cflags "-mfdpic"
 
1347
            add_ldflags "-mfdpic -Wl,--defsym,__stacksize=0x40000"
 
1348
        ;;
 
1349
        *)
 
1350
        echo "WARNING: Unknown CPU \"$cpu\", ignored."
 
1351
        ;;
430
1352
    esac
431
1353
fi
432
1354
 
433
 
# AltiVec flags: The FSF version of GCC differs from the Darwin version 
434
 
if test $cpu = "powerpc"; then
435
 
    if test $altivec = "yes"; then
436
 
        if test "$darwin" = "yes"; then
437
 
            CFLAGS="$CFLAGS -faltivec"
 
1355
gnu_make(){
 
1356
    $1 --version 2>&1 | grep -q GNU
 
1357
}
 
1358
 
 
1359
if ! gnu_make $make; then
 
1360
    gnu_make gmake && make=gmake || die "GNU make not found."
 
1361
fi
 
1362
 
 
1363
# make sure we can execute files in $TMPDIR
 
1364
cat >$TMPE 2>>$logfile <<EOF
 
1365
#! /bin/sh
 
1366
EOF
 
1367
chmod +x $TMPE >>$logfile 2>&1
 
1368
if ! $TMPE >>$logfile 2>&1; then
 
1369
    cat <<EOF
 
1370
Unable to create and execute files in $TMPDIR1.  Set the TMPDIR environment
 
1371
variable to another directory and make sure that $TMPDIR1 is not mounted
 
1372
noexec.
 
1373
EOF
 
1374
    die "Sanity test failed."
 
1375
fi
 
1376
rm $TMPE
 
1377
 
 
1378
# compiler sanity check
 
1379
check_exec <<EOF
 
1380
int main(){
 
1381
    return 0;
 
1382
}
 
1383
EOF
 
1384
if test "$?" != 0; then
 
1385
    echo "$cc is unable to create an executable file."
 
1386
    if test -z "$cross_prefix" && disabled cross_compile ; then
 
1387
        echo "If $cc is a cross-compiler, use the --cross-compile option."
 
1388
        echo "Only do this if you know what cross compiling means."
 
1389
    fi
 
1390
    die "C compiler test failed."
 
1391
fi
 
1392
 
 
1393
# check for assembler specific support
 
1394
 
 
1395
if test $arch = "powerpc"; then
 
1396
check_cc <<EOF && dcbzl=yes
 
1397
int main(void) {
 
1398
    register long zero = 0;
 
1399
    char data[1024];
 
1400
    asm volatile("dcbzl %0, %1" : : "b" (data), "r" (zero));
 
1401
return 0;
 
1402
}
 
1403
EOF
 
1404
fi
 
1405
 
 
1406
# check for SIMD availability
 
1407
 
 
1408
# AltiVec flags: The FSF version of GCC differs from the Apple version
 
1409
if test $arch = "powerpc"; then
 
1410
    if enabled altivec; then
 
1411
        if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
 
1412
            add_cflags "-faltivec"
438
1413
        else
439
 
            CFLAGS="$CFLAGS -maltivec -mabi=altivec"
 
1414
            add_cflags "-maltivec -mabi=altivec"
440
1415
        fi
441
1416
    fi
442
1417
fi
443
1418
 
444
 
# See if we have <altivec.h>
445
 
cat > $TMPC << EOF
446
 
#include <altivec.h>
447
 
int main( void ) { return 0; }
448
 
EOF
449
 
 
450
 
_altivec_h="no"
451
 
if $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
452
 
_altivec_h="yes"
453
 
fi
454
 
 
455
 
# See does our compiler support Motorola AltiVec C API
456
 
if test $altivec = "yes"; then
457
 
if test $_altivec_h = "yes"; then
458
 
cat > $TMPC << EOF
459
 
#include <altivec.h>
460
 
int main(void) {
461
 
    vector signed int v1, v2, v3;
462
 
    v1 = vec_add(v2,v3);
463
 
    return 0;
464
 
}
465
 
EOF
466
 
else
467
 
cat > $TMPC << EOF
468
 
int main(void) {
469
 
    vector signed int v1, v2, v3;
470
 
    v1 = vec_add(v2,v3);
471
 
    return 0;
472
 
}
473
 
EOF
474
 
fi
475
 
$cc $CFLAGS -o $TMPE $TMPC 2> /dev/null || altivec="no"
476
 
fi
477
 
 
478
 
# Can only do mmi on mips
 
1419
check_header altivec.h
 
1420
 
 
1421
# check if our compiler supports Motorola AltiVec C API
 
1422
if enabled altivec; then
 
1423
    if enabled altivec_h; then
 
1424
        inc_altivec_h="#include <altivec.h>"
 
1425
    else
 
1426
        inc_altivec_h=
 
1427
    fi
 
1428
    check_cc <<EOF || altivec=no
 
1429
$inc_altivec_h
 
1430
int main(void) {
 
1431
    vector signed int v1, v2, v3;
 
1432
    v1 = vec_add(v2,v3);
 
1433
    return 0;
 
1434
}
 
1435
EOF
 
1436
fi
 
1437
 
 
1438
# check armv5te instructions support
 
1439
if test $armv5te = "default" -a $arch = "armv4l"; then
 
1440
    armv5te=no
 
1441
    check_cc <<EOF && armv5te=yes
 
1442
        int main(void) {
 
1443
        __asm__ __volatile__ ("qadd r0, r0, r0");
 
1444
        }
 
1445
EOF
 
1446
fi
 
1447
 
 
1448
if test $armv6 = "default" -a $arch = "armv4l"; then
 
1449
    check_cc <<EOF && armv6=yes || armv6=no
 
1450
int main(void) {
 
1451
    __asm__ __volatile__ ("sadd16 r0, r0, r0");
 
1452
}
 
1453
EOF
 
1454
fi
 
1455
 
 
1456
# check iwmmxt support
 
1457
if test $iwmmxt = "default" -a $arch = "armv4l"; then
 
1458
    iwmmxt=no
 
1459
    check_cc <<EOF && iwmmxt=yes
 
1460
        int main(void) {
 
1461
        __asm__ __volatile__ ("wunpckelub wr6, wr4");
 
1462
        }
 
1463
EOF
 
1464
fi
 
1465
 
 
1466
# mmi only available on mips
479
1467
if test $mmi = "default"; then
480
 
    if test $cpu = "mips"; then
 
1468
    if test $arch = "mips"; then
481
1469
        mmi="yes"
482
1470
    else
483
1471
        mmi="no"
484
1472
    fi
485
1473
fi
486
1474
 
487
 
# See does our compiler support mmi
488
 
if test $mmi = "yes"; then
489
 
cat > $TMPC << EOF
 
1475
# check if our compiler supports mmi
 
1476
enabled mmi && check_cc <<EOF || mmi="no"
490
1477
int main(void) {
491
1478
    __asm__ ("lq \$2, 0(\$2)");
492
1479
    return 0;
493
1480
}
494
1481
EOF
495
 
$cc -o $TMPE $TMPC 2> /dev/null || mmi="no"
496
 
fi
497
 
 
498
 
if test "$mingw32" = "yes" ; then
499
 
    v4l="no"
500
 
    audio_oss="no"
501
 
    dv1394="no"
502
 
    ffserver="no"
503
 
    network="no"
504
 
    LIBPREF=""
505
 
    LIBSUF=".lib"
506
 
    SLIBPREF=""
507
 
    SLIBSUF=".dll"
508
 
    EXESUF=".exe"
509
 
    prefix="/c/Program Files/FFmpeg"
510
 
    bindir="$prefix"
511
 
fi
512
 
 
513
 
cc="${cross_prefix}${cc}"
514
 
ar="${cross_prefix}${ar}"
515
 
ranlib="${cross_prefix}${ranlib}"
516
 
strip="${cross_prefix}${strip}"
517
 
 
518
 
if test -z "$cross_prefix" ; then
519
1482
 
520
1483
# ---
521
 
# big/little endian test
522
 
cat > $TMPC << EOF
 
1484
# big/little-endian test
 
1485
if disabled cross_compile; then
 
1486
    check_ld <<EOF || die "endian test failed" && $TMPE && bigendian="yes"
523
1487
#include <inttypes.h>
524
1488
int main(int argc, char ** argv){
525
 
        volatile uint32_t i=0x01234567;
526
 
        return (*((uint8_t*)(&i))) == 0x67;
 
1489
        volatile uint32_t i=0x01234567;
 
1490
        return (*((uint8_t*)(&i))) == 0x67;
527
1491
}
528
1492
EOF
529
 
 
530
 
if $cc -o $TMPE $TMPC 2>/dev/null ; then
531
 
$TMPE && bigendian="yes"
532
 
else
533
 
echo big/little test failed
534
 
fi
535
 
 
536
 
else
537
 
 
538
 
# if cross compiling, cannot launch a program, so make a static guess
539
 
if test "$cpu" = "powerpc" -o "$cpu" = "mips" ; then
540
 
    bigendian="yes"
541
 
fi
542
 
 
 
1493
else
 
1494
    # programs cannot be launched if cross compiling, so make a static guess
 
1495
    if test "$arch" = "powerpc" -o "$arch" = "mips" ; then
 
1496
        bigendian="yes"
 
1497
    fi
543
1498
fi
544
1499
 
545
1500
# ---
546
1501
# check availability of some header files
547
1502
 
548
 
cat > $TMPC << EOF
549
 
#include <malloc.h>
550
 
int main( void ) { return 0; }
551
 
EOF
552
 
 
553
 
_memalign=no
554
 
_malloc_h=no
555
 
if $cc -o $TMPE $TMPC 2> /dev/null ; then
556
 
_malloc_h=yes
557
 
_memalign=yes
558
 
# check for memalign - atmos
559
 
cat > $TMPC << EOF
560
 
#include <malloc.h>
561
 
int main ( void ) {
562
 
char *string = NULL;
563
 
string = memalign(64, sizeof(char));
564
 
return 0;
565
 
}
566
 
EOF
567
 
$cc -o $TMPE $TMPC 2> /dev/null || _memalign=no
568
 
fi
569
 
 
570
 
cat > $TMPC << EOF
571
 
#include <time.h>
572
 
int main( void ) { localtime_r(NULL, NULL); }
573
 
EOF
574
 
 
575
 
localtime_r=no
576
 
if $cc -o $TMPE $TMPC 2> /dev/null ; then
577
 
  localtime_r=yes
578
 
fi
579
 
 
580
 
if test "$zlib" = "yes"; then
581
 
# check for zlib - mmu_man
582
 
cat > $TMPC << EOF
583
 
#include <zlib.h>
584
 
int main ( void ) {
585
 
if (zlibVersion() != ZLIB_VERSION)
586
 
   puts("zlib version differs !!!");
587
 
   return 1;
588
 
return 0;
589
 
}
590
 
EOF
591
 
$cc -o $TMPE $TMPC -lz 2> /dev/null || zlib="no"
592
 
# $TMPE 2> /dev/null > /dev/null || zlib="no"
593
 
# XXX: more tests needed - runtime test
594
 
fi
595
 
if test "$zlib" = "yes"; then
596
 
extralibs="$extralibs -lz"
597
 
fi
 
1503
check_header malloc.h
 
1504
check_func memalign
 
1505
 
 
1506
if disabled_all memalign memalign_hack && enabled need_memalign ; then
 
1507
    die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
 
1508
fi
 
1509
 
 
1510
check_header byteswap.h
 
1511
 
 
1512
check_func inet_aton
 
1513
check_func localtime_r
 
1514
enabled zlib && check_lib zlib.h zlibVersion -lz || zlib="no"
 
1515
 
 
1516
# ffserver uses poll(),
 
1517
# if it's not found we can emulate it using select().
 
1518
if enabled ffserver; then
 
1519
    check_header sys/poll.h
 
1520
fi
 
1521
 
 
1522
# check for some common methods of building with pthread support
 
1523
# do this before the optional library checks as some of them require pthreads
 
1524
if enabled pthreads; then
 
1525
    if check_func pthread_create; then
 
1526
        :
 
1527
    elif check_func pthread_create -pthread; then
 
1528
        add_cflags -pthread
 
1529
        add_ldflags -pthread
 
1530
    elif check_func pthread_create -pthreads; then
 
1531
        add_cflags -pthreads
 
1532
        add_ldflags -pthreads
 
1533
    elif ! check_lib pthread.h pthread_create -lpthread; then
 
1534
        die "ERROR: can't find pthreads library"
 
1535
    fi
 
1536
fi
 
1537
 
 
1538
for thread in $THREADS_LIST; do
 
1539
    if enabled $thread; then
 
1540
        if ! disabled thread_type ; then
 
1541
            die "ERROR: Only one thread type must be selected."
 
1542
        else
 
1543
            thread_type="$thread"
 
1544
        fi
 
1545
    fi
 
1546
done
 
1547
 
 
1548
enabled_any amr_nb amr_nb_fixed amr_wb amr_if2 && enable amr
 
1549
enabled_all amr_nb amr_nb_fixed &&
 
1550
    die "Only one of amr_nb and amr_nb_fixed may be enabled."
 
1551
 
 
1552
# these are off by default, so fail if requested and not available
 
1553
enabled liba52     && require liba52 a52dec/a52.h a52_init -la52
 
1554
enabled libdts     && require libdts dts.h dts_init -ldts -lm
 
1555
enabled libgsm     && require libgsm gsm.h gsm_create -lgsm
 
1556
enabled libmp3lame && require LAME lame/lame.h lame_init -lmp3lame -lm
 
1557
enabled libtheora  && require libtheora theora/theora.h theora_info_init -ltheora -logg
 
1558
enabled libvorbis  && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc -logg
 
1559
enabled libogg     && require libogg ogg/ogg.h ogg_sync_init -logg
 
1560
enabled libnut     && require libnut libnut.h nut_demuxer_init -lnut
 
1561
enabled xvid       && require XviD xvid.h xvid_global -lxvidcore
 
1562
enabled x264       && require x264 x264.h x264_encoder_open -lx264
 
1563
enabled dc1394     && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394
 
1564
enabled mlib       && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
 
1565
enabled libfaac    && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac
 
1566
enabled libfaad    && require2 libfaad faad.h faacDecOpen -lfaad
 
1567
enabled avisynth   && require2 vfw32 "windows.h vfw.h" AVIFileInit -lvfw32
598
1568
 
599
1569
# test for lrintf in math.h
600
 
cat > $TMPC << EOF
 
1570
check_exec <<EOF && lrintf=yes || lrintf=no
601
1571
#define _ISOC9X_SOURCE  1
602
1572
#include <math.h>
603
1573
int main( void ) { return (lrintf(3.999f) > 0)?0:1; }
604
1574
EOF
605
1575
 
606
 
have_lrintf="no"
607
 
if $cc $extralibs -o $TMPE $TMPC 2> /dev/null ; then
608
 
  have_lrintf="yes"
609
 
  $TMPE 2> /dev/null > /dev/null || have_lrintf="no"
610
 
fi
611
 
 
612
1576
_restrict=
613
1577
for restrict_keyword in restrict __restrict__ __restrict; do
614
 
  echo "void foo(char * $restrict_keyword p);" > $TMPC
615
 
  if $cc -c -o $TMPO $TMPC 2> /dev/null; then
616
 
    _restrict=$restrict_keyword
617
 
    break;
618
 
  fi
 
1578
    check_cc <<EOF && _restrict=$restrict_keyword && break
 
1579
void foo(char * $restrict_keyword p);
 
1580
EOF
619
1581
done
620
1582
 
621
 
# test gcc version to see if vector builtins can be used
622
 
# currently only used on i386 for MMX builtins
623
 
cat > $TMPC << EOF
624
 
int main(void) { 
625
 
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
626
 
return 0;
627
 
#else
628
 
#error no vector builtins
629
 
#endif
630
 
}
631
 
EOF
632
 
 
633
 
builtin_vector=no
634
 
if $cc -o $TMPO $TMPC 2> /dev/null ; then
635
 
  builtin_vector=yes
636
 
fi
637
 
 
638
1583
# dlopen/dlfcn.h probing
639
1584
 
640
 
cat > $TMPC << EOF
641
 
#include <dlfcn.h>
642
 
int main( void ) { return (int) dlopen("foo", 0); }
643
 
EOF
644
 
 
645
 
ldl=-ldl
646
 
 
647
 
if $cc -o $TMPE $TMPC -ldl 2> /dev/null  ; then
648
 
dlfcn=yes
649
 
dlopen=yes
650
 
fi
651
 
 
652
 
if $cc -o $TMPE $TMPC 2> /dev/null  ; then
653
 
dlfcn=yes
654
 
dlopen=yes
655
 
ldl=""
656
 
fi
657
 
 
658
 
cat > $TMPC << EOF
659
 
int main( void ) { return (int) dlopen("foo", 0); }
660
 
EOF
661
 
 
662
 
if $cc -o $TMPE $TMPC -ldl 2> /dev/null  ; then
663
 
dlopen=yes
664
 
fi
665
 
 
666
 
if $cc -o $TMPE $TMPC 2> /dev/null  ; then
667
 
dlopen=yes
668
 
ldl=""
669
 
fi
670
 
 
671
 
if test "$vhook" = "default" ; then
672
 
  vhook="$dlopen"
673
 
fi
674
 
 
675
 
##########################################
676
 
# imlib probe
677
 
 
678
 
cat > $TMPC << EOF
679
 
#include <X11/Xlib.h>
680
 
#include <Imlib2.h>
681
 
int main( void ) { return (int) imlib_load_font("foo"); }
682
 
EOF
683
 
 
684
 
imlib2=no
685
 
if $cc -o $TMPE $TMPC -lImlib2 2> /dev/null  ; then
686
 
imlib2=yes
687
 
fi
688
 
 
689
 
##########################################
690
 
# freetype probe
691
 
 
692
 
cat > $TMPC << EOF
693
 
#include <ft2build.h>
694
 
int main( void ) { return (int) FT_Init_FreeType(0); }
695
 
EOF
696
 
 
697
 
freetype2=no
698
 
if test "x$targetos" != "xBeOS" && test "$os2" != "yes"; then
699
 
  if test "`which freetype-config`" != ""; then
700
 
    if $cc -o $TMPE $TMPC `freetype-config --cflags` `freetype-config --libs`  2> /dev/null ; then
701
 
      freetype2=yes
702
 
    fi
703
 
  fi
704
 
fi
705
 
 
706
 
##########################################
707
 
# SDL probe
708
 
 
709
 
cat > $TMPC << EOF
710
 
#include <SDL.h>
711
 
#undef main /* We don't want SDL to override our main() */
712
 
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
713
 
EOF
 
1585
check_header dlfcn.h
 
1586
 
 
1587
if check_func dlopen; then
 
1588
    ldl=
 
1589
elif check_func dlopen -ldl; then
 
1590
    ldl=-ldl
 
1591
fi
 
1592
 
 
1593
test "$vhook" = "default" && vhook="$dlopen"
 
1594
 
 
1595
enabled_any vhook liba52bin libfaadbin ffserver && add_extralibs $ldl
 
1596
 
 
1597
if test "$targetos" = "CYGWIN" && enabled static ; then
 
1598
    vhook="no"
 
1599
    echo
 
1600
    echo "At the moment vhooks don't work on Cygwin static builds."
 
1601
    echo "Patches welcome."
 
1602
    echo
 
1603
fi
 
1604
 
 
1605
if enabled vhook; then
 
1606
    check_ldflags -rdynamic
 
1607
    check_ldflags -export-dynamic
 
1608
fi
 
1609
 
 
1610
enabled audio_beos && add_extralibs "-lmedia -lbe"
 
1611
 
 
1612
check_foo_config imlib2 imlib2 Imlib2.h imlib_load_font
 
1613
check_foo_config freetype2 freetype ft2build.h FT_Init_FreeType
 
1614
 
 
1615
##########################################
 
1616
# SDL check
714
1617
 
715
1618
sdl_too_old=no
716
1619
sdl=no
717
 
if $cc -o $TMPE `sdl-config --cflags` $TMPC `sdl-config --libs`  2> /dev/null  ; then
718
 
_sdlversion=`sdl-config --version | sed 's/[^0-9]//g'`
719
 
if test "$_sdlversion" -lt 121 ; then
720
 
sdl_too_old=yes
 
1620
SDL_CONFIG="${cross_prefix}sdl-config"
 
1621
if "${SDL_CONFIG}" --version >/dev/null 2>&1; then
 
1622
    sdl_cflags=`"${SDL_CONFIG}" --cflags`
 
1623
    temp_cflags $sdl_cflags
 
1624
    temp_extralibs `"${SDL_CONFIG}" --libs`
 
1625
    if check_lib SDL.h SDL_Init; then
 
1626
        _sdlversion=`"${SDL_CONFIG}" --version | sed 's/[^0-9]//g'`
 
1627
        if test "$_sdlversion" -lt 121 ; then
 
1628
            sdl_too_old=yes
 
1629
        else
 
1630
            sdl=yes
 
1631
            check_cc $sdl_cflags <<EOF && enable sdl_video_size
 
1632
#include <SDL.h>
 
1633
int main(void){
 
1634
    const SDL_VideoInfo *vi = SDL_GetVideoInfo();
 
1635
    int w = vi->current_w;
 
1636
    return 0;
 
1637
}
 
1638
EOF
 
1639
        fi
 
1640
    fi
 
1641
    restore_flags
 
1642
fi
 
1643
 
 
1644
texi2html -version >/dev/null 2>&1 && enable texi2html || disable texi2html
 
1645
 
 
1646
##########################################
 
1647
# IPv6 check
 
1648
 
 
1649
enabled network && enabled ipv6 && check_ld <<EOF && ipv6=yes || ipv6=no
 
1650
#include <sys/types.h>
 
1651
#include <sys/socket.h>
 
1652
#include <netinet/in.h>
 
1653
#include <netdb.h>
 
1654
int main( void ) {
 
1655
  struct sockaddr_storage saddr;
 
1656
  struct ipv6_mreq mreq6;
 
1657
  getaddrinfo(0,0,0,0);
 
1658
  getnameinfo(0,0,0,0,0,0,0);
 
1659
  IN6_IS_ADDR_MULTICAST((const struct in6_addr *)0);
 
1660
}
 
1661
EOF
 
1662
 
 
1663
enabled v4l  && check_header linux/videodev.h  || disable v4l
 
1664
enabled v4l2 && check_header linux/videodev2.h || disable v4l2
 
1665
 
 
1666
# check for ioctl_meteor.h, ioctl_bt848.h and alternatives
 
1667
if enabled bktr; then
 
1668
    { check_header dev/bktr/ioctl_meteor.h &&
 
1669
      check_header dev/bktr/ioctl_bt848.h; } ||
 
1670
    { check_header machine/ioctl_meteor.h &&
 
1671
      check_header machine/ioctl_bt848.h; } ||
 
1672
    { check_header dev/video/meteor/ioctl_meteor.h &&
 
1673
      check_header dev/video/bktr/ioctl_bt848.h; } ||
 
1674
    check_header dev/ic/bt8xx.h ||
 
1675
    disable bktr
 
1676
fi
 
1677
 
 
1678
enabled audio_oss &&
 
1679
    check_header sys/soundcard.h ||
 
1680
    check_header soundcard.h ||
 
1681
    disable audio_oss
 
1682
 
 
1683
# Deal with the x11 frame grabber
 
1684
enabled x11grab                         &&
 
1685
enabled gpl                             &&
 
1686
enabled x11_grab_device_demuxer         &&
 
1687
check_header X11/Xlib.h                 &&
 
1688
check_header X11/extensions/XShm.h      &&
 
1689
check_func XOpenDisplay -lX11           &&
 
1690
check_func XShmCreateImage -lX11 -lXext &&
 
1691
add_extralibs -lX11 -lXext              ||
 
1692
disable x11_grab_device_demuxer
 
1693
 
 
1694
enabled debug && add_cflags -g
 
1695
 
 
1696
# add some useful compiler flags if supported
 
1697
check_cflags -Wdeclaration-after-statement
 
1698
check_cflags -Wall
 
1699
check_cflags -Wno-switch
 
1700
check_cflags -Wdisabled-optimization
 
1701
check_cflags -Wpointer-arith
 
1702
check_cflags -Wredundant-decls
 
1703
check_cflags -Wno-pointer-sign
 
1704
enabled extra_warnings && check_cflags -Winline
 
1705
 
 
1706
# add some linker flags
 
1707
check_ldflags $LDLATEFLAGS
 
1708
 
 
1709
# not all compilers support -Os
 
1710
test "$optimize" = "small" && check_cflags -Os
 
1711
 
 
1712
if enabled optimize; then
 
1713
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
 
1714
        add_cflags  "-O5"
 
1715
        add_ldflags "-O5"
 
1716
    else
 
1717
        add_cflags "-O3"
 
1718
    fi
 
1719
fi
 
1720
 
 
1721
# PIC flags for shared library objects where they are needed
 
1722
if enabled shared; then
 
1723
    # LIBOBJFLAGS may have already been set in the OS configuration
 
1724
    if test -z "$LIBOBJFLAGS" ; then
 
1725
        case "$arch" in
 
1726
            x86_64|ia64|alpha|sparc*|power*) LIBOBJFLAGS="\$(PIC)" ;;
 
1727
        esac
 
1728
    fi
 
1729
fi
 
1730
 
 
1731
if enabled gprof; then
 
1732
    add_cflags  "-p"
 
1733
    add_ldflags "-p"
 
1734
fi
 
1735
 
 
1736
VHOOKCFLAGS="-fPIC $CFLAGS"
 
1737
enabled needmdynamicnopic && add_cflags -mdynamic-no-pic
 
1738
 
 
1739
# find if .align arg is power-of-two or not
 
1740
if test $asmalign_pot = "unknown"; then
 
1741
    asmalign_pot="no"
 
1742
    echo 'asm (".align 3");' | check_cc && asmalign_pot="yes"
 
1743
fi
 
1744
 
 
1745
enabled_any $ENCODER_LIST && enable encoders
 
1746
enabled_any $DECODER_LIST && enable decoders
 
1747
enabled_any $MUXER_LIST   && enable muxers
 
1748
enabled_any $DEMUXER_LIST && enable demuxers
 
1749
 
 
1750
enabled_any $THREADS_LIST && enable threads
 
1751
 
 
1752
check_deps $CONFIG_LIST $HAVE_LIST $DECODER_LIST $ENCODER_LIST $PARSER_LIST \
 
1753
    $DEMUXER_LIST $MUXER_LIST
 
1754
 
 
1755
enabled libogg    && append pkg_requires "ogg >= 1.1"
 
1756
enabled libtheora && append pkg_requires "theora"
 
1757
enabled libvorbis && append pkg_requires "vorbis vorbisenc"
 
1758
enabled dc1394    && append pkg_requires "libraw1394"
 
1759
 
 
1760
echo "install prefix            $PREFIX"
 
1761
echo "source path               $source_path"
 
1762
echo "C compiler                $cc"
 
1763
echo "make                      $make"
 
1764
echo ".align is power-of-two    $asmalign_pot"
 
1765
echo "ARCH                      $arch ($cpu)"
 
1766
if test "$BUILDSUF" != ""; then
 
1767
    echo "build suffix              $BUILDSUF"
 
1768
fi
 
1769
echo "big-endian                $bigendian"
 
1770
if test $arch = "x86_32" -o $arch = "x86_64"; then
 
1771
    echo "MMX enabled               $mmx"
 
1772
    echo "CMOV enabled              $cmov"
 
1773
    echo "CMOV is fast              $fast_cmov"
 
1774
fi
 
1775
if test $arch = "armv4l"; then
 
1776
    echo "ARMv5TE enabled           $armv5te"
 
1777
    echo "ARMv6 enabled             $armv6"
 
1778
    echo "IWMMXT enabled            $iwmmxt"
 
1779
fi
 
1780
if test $arch = "mips"; then
 
1781
    echo "MMI enabled               $mmi"
 
1782
fi
 
1783
if test $arch = "powerpc"; then
 
1784
    echo "AltiVec enabled           $altivec"
 
1785
    echo "dcbzl available           $dcbzl"
 
1786
fi
 
1787
echo "gprof enabled             $gprof"
 
1788
echo "debug symbols             $debug"
 
1789
echo "strip symbols             $dostrip"
 
1790
echo "optimize                  $optimize"
 
1791
echo "static                    $static"
 
1792
echo "shared                    $shared"
 
1793
echo "postprocessing support    $pp"
 
1794
echo "software scaler enabled   $swscaler"
 
1795
echo "video hooking             $vhook"
 
1796
if enabled vhook; then
 
1797
    echo "Imlib2 support            $imlib2"
 
1798
    echo "FreeType support          $freetype2"
 
1799
fi
 
1800
echo "network support           $network"
 
1801
if enabled network; then
 
1802
    echo "IPv6 support              $ipv6"
 
1803
fi
 
1804
echo "threading support         $thread_type"
 
1805
echo "SDL support               $sdl"
 
1806
if enabled sdl_too_old; then
 
1807
    echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support."
 
1808
fi
 
1809
echo "Sun medialib support      $mlib"
 
1810
echo "AVISynth enabled          $avisynth"
 
1811
echo "liba52 support            $liba52"
 
1812
echo "liba52 dlopened           $liba52bin"
 
1813
echo "libdts support            $libdts"
 
1814
echo "libfaac enabled           $libfaac"
 
1815
echo "libfaad enabled           $libfaad"
 
1816
echo "faadbin enabled           $libfaadbin"
 
1817
echo "libgsm enabled            $libgsm"
 
1818
echo "libmp3lame enabled        $libmp3lame"
 
1819
echo "libnut enabled            $libnut"
 
1820
echo "libogg enabled            $libogg"
 
1821
echo "libtheora enabled         $libtheora"
 
1822
echo "libvorbis enabled         $libvorbis"
 
1823
echo "x264 enabled              $x264"
 
1824
echo "XviD enabled              $xvid"
 
1825
echo "zlib enabled              $zlib"
 
1826
echo "AMR-NB float support      $amr_nb"
 
1827
echo "AMR-NB fixed support      $amr_nb_fixed"
 
1828
echo "AMR-WB float support      $amr_wb"
 
1829
echo "AMR-WB IF2 support        $amr_if2"
 
1830
if disabled gpl; then
 
1831
    echo "License: LGPL"
721
1832
else
722
 
sdl=yes
723
 
fi
724
 
fi
725
 
 
726
 
if test "$sdl" = "no" ; then
727
 
   ffplay=no
728
 
fi
729
 
 
730
 
if test "$debug" = "yes"; then
731
 
        CFLAGS="$CFLAGS -g"
732
 
fi
733
 
 
734
 
if test "$optimize" = "small"; then
735
 
#  CFLAGS=${CFLAGS//-O3/-Os}
736
 
  CFLAGS="$CFLAGS -Os"
737
 
fi
738
 
 
739
 
if test "$optimize" = "yes"; then
740
 
        CFLAGS="$CFLAGS -O3"
741
 
fi
742
 
 
743
 
if test x"$bindir" = x""; then
744
 
bindir="${prefix}/bin"
745
 
fi
746
 
 
747
 
if test x"$mandir" = x""; then
748
 
mandir="${prefix}/man"
749
 
fi
750
 
 
751
 
if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
752
 
cat << EOF
753
 
 
754
 
Usage: configure [options]
755
 
Options: [defaults in brackets after descriptions]
756
 
 
757
 
EOF
758
 
echo "Standard options:"
759
 
echo "  --help                   print this message"
760
 
echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
761
 
echo "  --mandir=DIR             man documentation in DIR [PREFIX/man]"
762
 
echo "  --enable-mp3lame         enable mp3 encoding via libmp3lame [default=no]"
763
 
echo "  --enable-vorbis          enable vorbis support via libvorbisenc [default=no]"
764
 
echo "  --enable-faad            enable faad support via libfaad [default=no]"
765
 
echo "  --enable-faadbin         build faad support with runtime linking [default=no]"
766
 
echo "  --enable-mingw32         enable mingw32 native/cross windows compile"
767
 
echo "  --enable-a52             enable GPL'ed A52 support [default=no]"
768
 
echo "  --enable-a52bin          open liba52.so.0 at runtime [default=no]"
769
 
echo "  --enable-pp              enable GPL'ed post processing support [default=no]"
770
 
echo "  --enable-shared-pp       use libpostproc.so [default=no]"
771
 
echo "  --enable-shared          build shared libraries [default=no]"
772
 
echo "  --enable-amr_nb          enable amr_nb float audio codec"
773
 
echo "  --enable-amr_nb-fixed    use fixed point for amr-nb codec"
774
 
echo "  --enable-sunmlib         use Sun medialib [default=no]"
775
 
echo ""
776
 
echo "Advanced options (experts only):"
777
 
echo "  --source-path=PATH       path of source code [$source_path]"
778
 
echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
779
 
echo "  --cc=CC                  use C compiler CC [$cc]"
780
 
echo "  --make=MAKE              use specified make [$make]"
781
 
echo "  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS [$CFLAGS]"
782
 
echo "  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]"
783
 
echo "  --extra-libs=ELIBS       add ELIBS [$ELIBS]"
784
 
echo "  --cpu=CPU                force cpu to CPU  [$cpu]"
785
 
echo "  --tune=PROCESSOR         tune code for a particular CPU (may fails or misperforms on other CPUs)"
786
 
echo "  --powerpc-perf-enable    enable performance report on PPC (requires enabling PMC)"
787
 
echo "  --disable-mmx            disable mmx usage"
788
 
echo "  --disable-altivec        disable AltiVec usage"
789
 
echo "  --disable-audio-oss      disable OSS audio support [default=no]"
790
 
echo "  --disable-audio-beos     disable BeOS audio support [default=no]"
791
 
echo "  --disable-v4l            disable video4linux grabbing [default=no]"
792
 
echo "  --disable-dv1394         disable DV1394 grabbing [default=no]"
793
 
echo "  --disable-network        disable network support [default=no]"
794
 
echo "  --disable-zlib           disable zlib [default=no]"
795
 
echo "  --disable-simple_idct    disable simple IDCT routines [default=no]"
796
 
echo "  --disable-vhook          disable video hooking support"
797
 
echo "  --enable-gprof           enable profiling with gprof [$gprof]"
798
 
echo "  --disable-debug          disable debugging symbols"
799
 
echo "  --disable-opts           disable compiler optimizations"
800
 
echo "  --disable-mpegaudio-hp   faster (but less accurate)"
801
 
echo "                           mpegaudio decoding [default=no]"
802
 
echo "  --disable-ffserver       disable ffserver build"
803
 
echo "  --disable-ffplay         disable ffplay build"
804
 
echo "  --disable-risky          disables patent encumbered codecs"
805
 
echo "  --enable-small           optimize for size instead of speed"
806
 
echo ""
807
 
echo "NOTE: The object files are build at the place where configure is launched"
808
 
exit 1
809
 
fi
810
 
 
811
 
echo "Install prefix   $prefix"
812
 
echo "Source path      $source_path"
813
 
echo "C compiler       $cc"
814
 
echo "make             $make"
815
 
echo "CPU              $cpu ($tune)"
816
 
echo "Big Endian       $bigendian"
817
 
if test $cpu = "x86"; then
818
 
echo "MMX enabled      $mmx"
819
 
echo "Vector Builtins  $builtin_vector"
820
 
fi
821
 
if test $cpu = "mips"; then
822
 
echo "MMI enabled      $mmi"
823
 
fi
824
 
if test $cpu = "powerpc"; then
825
 
echo "AltiVec enabled  $altivec"
826
 
fi
827
 
echo "gprof enabled    $gprof"
828
 
echo "zlib enabled     $zlib"
829
 
echo "mp3lame enabled  $mp3lame"
830
 
echo "vorbis enabled   $vorbis"
831
 
echo "faad enabled     $faad"
832
 
echo "faadbin enabled  $faadbin"
833
 
echo "a52 support      $a52"
834
 
echo "a52 dlopened     $a52bin"
835
 
echo "pp support       $pp"
836
 
echo "debug symbols    $debug"
837
 
echo "optimize         $optimize"
838
 
echo "shared pp        $shared_pp"
839
 
echo "Video hooking    $vhook"
840
 
echo "SDL support      $sdl"
841
 
if test $sdl_too_old = "yes"; then
842
 
echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support"
843
 
fi
844
 
echo "risky / patent encumbered codecs $risky"
845
 
 
846
 
if test "$vhook" = "yes" ; then
847
 
echo "Imlib2 support   $imlib2"
848
 
echo "freetype support $freetype2"
849
 
fi
850
 
echo "Sun medialib support"  $sunmlib
851
 
echo "AMR-NB float support"  $amr_nb
852
 
echo "AMR-NB fixed support"  $amr_nb_fixed
853
 
 
854
 
echo "Creating config.mak and config.h"
855
 
 
856
 
echo "# Automatically generated by configure - do not modify" > config.mak
857
 
echo "/* Automatically generated by configure - do not modify */" > $TMPH
858
 
 
859
 
echo "prefix=$prefix" >> config.mak
860
 
echo "bindir=$bindir" >> config.mak
861
 
echo "mandir=$mandir" >> config.mak
 
1833
    echo "License: GPL"
 
1834
fi
 
1835
 
 
1836
echo "Creating config.mak and config.h..."
 
1837
 
 
1838
echo "# Automatically generated by configure - do not modify!" > config.mak
 
1839
echo "/* Automatically generated by configure - do not modify! */" > $TMPH
 
1840
echo "#define FFMPEG_CONFIGURATION \"$FFMPEG_CONFIGURATION\"" >> $TMPH
 
1841
 
 
1842
echo "PREFIX=$PREFIX" >> config.mak
 
1843
echo "prefix=\$(DESTDIR)\${PREFIX}" >> config.mak
 
1844
echo "libdir=\$(DESTDIR)$libdir" >> config.mak
 
1845
echo "shlibdir=\$(DESTDIR)$shlibdir" >> config.mak
 
1846
echo "incdir=\$(DESTDIR)$incdir" >> config.mak
 
1847
echo "bindir=\$(DESTDIR)$bindir" >> config.mak
 
1848
echo "mandir=\$(DESTDIR)$mandir" >> config.mak
862
1849
echo "MAKE=$make" >> config.mak
863
1850
echo "CC=$cc" >> config.mak
864
1851
echo "AR=$ar" >> config.mak
865
1852
echo "RANLIB=$ranlib" >> config.mak
866
 
echo "STRIP=$strip" >> config.mak
 
1853
if enabled dostrip; then
 
1854
    echo "STRIP=$strip" >> config.mak
 
1855
else
 
1856
    echo "STRIP=echo ignoring strip" >> config.mak
 
1857
fi
 
1858
 
867
1859
echo "OPTFLAGS=$CFLAGS" >> config.mak
 
1860
echo "VHOOKCFLAGS=$VHOOKCFLAGS">>config.mak
868
1861
echo "LDFLAGS=$LDFLAGS" >> config.mak
869
 
echo "FFSLDFLAGS=$FFSLDFLAGS" >> config.mak
 
1862
echo "LDCONFIG=$LDCONFIG" >> config.mak
 
1863
echo "FFSERVERLDFLAGS=$FFSERVERLDFLAGS" >> config.mak
870
1864
echo "SHFLAGS=$SHFLAGS" >> config.mak
 
1865
echo "VHOOKSHFLAGS=$VHOOKSHFLAGS" >> config.mak
 
1866
echo "VHOOKLIBS=$VHOOKLIBS" >> config.mak
 
1867
echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak
 
1868
echo "BUILD_STATIC=$static" >> config.mak
 
1869
echo "BUILDSUF=$BUILDSUF" >> config.mak
871
1870
echo "LIBPREF=$LIBPREF" >> config.mak
872
 
echo "LIBSUF=$LIBSUF" >> config.mak
 
1871
echo "LIBSUF=\${BUILDSUF}$LIBSUF" >> config.mak
 
1872
if enabled static; then
 
1873
  echo "LIB=$LIB" >> config.mak
 
1874
else # Some Make complain if this variable does not exist.
 
1875
  echo "LIB=" >> config.mak
 
1876
fi
873
1877
echo "SLIBPREF=$SLIBPREF" >> config.mak
874
 
echo "SLIBSUF=$SLIBSUF" >> config.mak
875
 
echo "EXESUF=$EXESUF" >> config.mak
876
 
echo "TARGET_OS=$TARGET_OS" >> config.mak
877
 
if test "$cpu" = "x86" ; then
878
 
  echo "TARGET_ARCH_X86=yes" >> config.mak
879
 
  echo "#define ARCH_X86 1" >> $TMPH
880
 
elif test "$cpu" = "armv4l" ; then
881
 
  echo "TARGET_ARCH_ARMV4L=yes" >> config.mak
882
 
  echo "#define ARCH_ARMV4L 1" >> $TMPH
883
 
elif test "$cpu" = "alpha" ; then
884
 
  echo "TARGET_ARCH_ALPHA=yes" >> config.mak
885
 
  echo "#define ARCH_ALPHA 1" >> $TMPH
886
 
elif test "$cpu" = "sparc64" ; then
887
 
  echo "TARGET_ARCH_SPARC64=yes" >> config.mak
888
 
  echo "#define ARCH_SPARC64 1" >> $TMPH
889
 
elif test "$cpu" = "powerpc" ; then
890
 
  echo "TARGET_ARCH_POWERPC=yes" >> config.mak
891
 
  echo "#define ARCH_POWERPC 1" >> $TMPH
892
 
  if test "$powerpc_perf" = "yes"; then
893
 
    echo "#define POWERPC_PERFORMANCE_REPORT 1" >> $TMPH
894
 
  fi
895
 
elif test "$cpu" = "mips" ; then
896
 
  echo "TARGET_ARCH_MIPS=yes" >> config.mak
897
 
  echo "#define ARCH_MIPS 1" >> $TMPH
898
 
elif test "$cpu" = "sh4" ; then
899
 
  echo "TARGET_ARCH_SH4=yes" >> config.mak
900
 
  echo "#define ARCH_SH4 1" >> $TMPH
901
 
fi
902
 
echo "#define TUNECPU $TUNECPU" >> $TMPH
903
 
if test "$bigendian" = "yes" ; then
 
1878
echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
 
1879
echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
 
1880
 
 
1881
ucarch=`toupper $arch`
 
1882
echo "TARGET_ARCH_${ucarch}=yes" >> config.mak
 
1883
echo "#define ARCH_${ucarch} 1" >> $TMPH
 
1884
 
 
1885
# special cases
 
1886
case "$arch" in
 
1887
    x86_32|x86_64)
 
1888
        echo "TARGET_ARCH_X86=yes" >> config.mak
 
1889
        echo "#define ARCH_X86 1" >> $TMPH
 
1890
        ;;
 
1891
    powerpc)
 
1892
        if test "$POWERPCMODE" = "64bits"; then
 
1893
            echo "#define POWERPC_MODE_64BITS 1" >> $TMPH
 
1894
        fi
 
1895
        ;;
 
1896
    sparc64)
 
1897
        echo "TARGET_ARCH_SPARC=yes" >> config.mak
 
1898
        echo "#define ARCH_SPARC 1" >> $TMPH
 
1899
        ;;
 
1900
esac
 
1901
 
 
1902
if enabled bigendian; then
904
1903
  echo "WORDS_BIGENDIAN=yes" >> config.mak
905
1904
  echo "#define WORDS_BIGENDIAN 1" >> $TMPH
906
1905
fi
907
 
if test "$mmx" = "yes" ; then
908
 
  echo "TARGET_MMX=yes" >> config.mak
909
 
  echo "#define HAVE_MMX 1" >> $TMPH
 
1906
if enabled mmx; then
910
1907
  echo "#define __CPU__ 586" >> $TMPH
911
1908
fi
912
 
if test "$builtin_vector" = "yes" ; then
913
 
  echo "TARGET_BUILTIN_VECTOR=yes" >> config.mak
914
 
  echo "#define HAVE_BUILTIN_VECTOR 1" >> $TMPH
915
 
fi
916
 
if test "$mmi" = "yes" ; then
917
 
  echo "TARGET_MMI=yes" >> config.mak
918
 
  echo "#define HAVE_MMI 1" >> $TMPH
919
 
fi
920
 
if test "$altivec" = "yes" ; then
921
 
  echo "TARGET_ALTIVEC=yes" >> config.mak
922
 
  echo "#define HAVE_ALTIVEC 1" >> $TMPH
923
 
  echo "// Enable the next line to use the reference C code instead of AltiVec" >> $TMPH
924
 
  echo "// #define ALTIVEC_USE_REFERENCE_C_CODE 1" >> $TMPH
925
 
  if test "$_altivec_h" = "yes" ; then
926
 
    echo "#define HAVE_ALTIVEC_H 1" >> $TMPH
927
 
  else
928
 
    echo "#undef HAVE_ALTIVEC_H" >> $TMPH
929
 
  fi
930
 
fi
931
 
if test "$gprof" = "yes" ; then
932
 
  echo "TARGET_GPROF=yes" >> config.mak
933
 
  echo "#define HAVE_GPROF 1" >> $TMPH
934
 
fi
935
 
if test "$localtime_r" = "yes" ; then
936
 
  echo "#define HAVE_LOCALTIME_R 1" >> $TMPH
937
 
fi
938
 
if test "$imlib2" = "yes" ; then
939
 
  echo "HAVE_IMLIB2=yes" >> config.mak
940
 
fi
941
 
if test "$freetype2" = "yes" ; then
942
 
  echo "HAVE_FREETYPE2=yes" >> config.mak
943
 
fi
944
 
if test "$sunmlib" = "yes" ; then
945
 
  echo "HAVE_MLIB=yes" >> config.mak
946
 
  echo "#define HAVE_MLIB 1" >> $TMPH
947
 
  extralibs="$extralibs -lmlib"
948
 
fi
949
 
if test "$sdl" = "yes" ; then
950
 
  echo "CONFIG_SDL=yes" >> config.mak
951
 
  echo "SDL_LIBS=`sdl-config --libs`" >> config.mak
952
 
  echo "SDL_CFLAGS=`sdl-config --cflags`" >> config.mak
953
 
fi
954
 
if test "$have_lrintf" = "yes" ; then
955
 
  echo "#define HAVE_LRINTF 1" >> $TMPH
956
 
fi
957
 
if test "$vhook" = "yes" ; then
958
 
  echo "BUILD_VHOOK=yes" >> config.mak
959
 
  echo "#define HAVE_VHOOK 1" >> $TMPH
960
 
  extralibs="$extralibs $ldl"
961
 
fi
962
 
if test "$lshared" = "yes" ; then
 
1909
 
 
1910
if enabled sdl; then
 
1911
  echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak
 
1912
  echo "SDL_CFLAGS=`"${SDL_CONFIG}" --cflags`" >> config.mak
 
1913
fi
 
1914
if enabled texi2html; then
 
1915
  echo "BUILD_DOC=yes" >> config.mak
 
1916
fi
 
1917
 
 
1918
sws_version=`grep '#define LIBSWSCALE_VERSION ' "$source_path/libswscale/swscale.h" | sed 's/[^0-9\.]//g'`
 
1919
pp_version=`grep '#define LIBPOSTPROC_VERSION ' "$source_path/libpostproc/postprocess.h" | sed 's/[^0-9\.]//g'`
 
1920
lavc_version=`grep '#define LIBAVCODEC_VERSION ' "$source_path/libavcodec/avcodec.h" | sed 's/[^0-9\.]//g'`
 
1921
lavf_version=`grep '#define LIBAVFORMAT_VERSION ' "$source_path/libavformat/avformat.h" | sed 's/[^0-9\.]//g'`
 
1922
lavu_version=`grep '#define LIBAVUTIL_VERSION ' "$source_path/libavutil/avutil.h" | sed 's/[^0-9\.]//g'`
 
1923
 
 
1924
 
 
1925
 
 
1926
if enabled shared; then
963
1927
  echo "BUILD_SHARED=yes" >> config.mak
964
 
  echo "PIC=-fPIC" >> config.mak
 
1928
  echo "PIC=-fPIC -DPIC" >> config.mak
 
1929
  echo "SPPMAJOR=${pp_version%%.*}" >> config.mak
 
1930
  echo "SPPVERSION=$pp_version" >> config.mak
 
1931
  echo "LAVCMAJOR=${lavc_version%%.*}" >> config.mak
 
1932
  echo "LAVCVERSION=$lavc_version" >> config.mak
 
1933
  echo "LAVFMAJOR=${lavf_version%%.*}" >> config.mak
 
1934
  echo "LAVFVERSION=$lavf_version" >> config.mak
 
1935
  echo "LAVUMAJOR=${lavu_version%%.*}" >> config.mak
 
1936
  echo "LAVUVERSION=$lavu_version" >> config.mak
 
1937
  echo "SWSMAJOR=${sws_version%%.*}" >> config.mak
 
1938
  echo "SWSVERSION=$sws_version" >> config.mak
 
1939
  echo "SLIBNAME=${SLIBNAME}" >> config.mak
 
1940
  echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak
 
1941
  echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
 
1942
  echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak
 
1943
  echo "SLIB_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}" >> config.mak
965
1944
fi
 
1945
echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak
966
1946
echo "EXTRALIBS=$extralibs" >> config.mak
967
 
version=`grep '#define FFMPEG_VERSION ' $source_path/libavcodec/avcodec.h |
968
 
 cut -d '"' -f 2`
969
 
echo "VERSION=$version" >>config.mak
970
 
# if you do not want to use encoders, disable that.
971
 
echo "#define CONFIG_ENCODERS 1" >> $TMPH
972
 
echo "CONFIG_ENCODERS=yes" >> config.mak
973
 
 
974
 
# if you do not want to use decoders, disable that.
975
 
echo "#define CONFIG_DECODERS 1" >> $TMPH
976
 
echo "CONFIG_DECODERS=yes" >> config.mak
977
 
 
978
 
# AC3
979
 
if test "$a52" = "yes" ; then
980
 
  echo "#define CONFIG_AC3 1" >> $TMPH
981
 
  echo "CONFIG_AC3=yes" >> config.mak
982
 
 
983
 
  if test "$a52bin" = "yes" ; then
984
 
    echo "#define CONFIG_A52BIN 1" >> $TMPH
985
 
    echo "CONFIG_A52BIN=yes" >> config.mak
986
 
  fi
987
 
fi
988
 
 
989
 
# PP
990
 
if test "$pp" = "yes" ; then
991
 
  echo "#define CONFIG_PP 1" >> $TMPH
992
 
  echo "CONFIG_PP=yes" >> config.mak
993
 
 
994
 
  if test "$shared_pp" = "yes" ; then
995
 
    echo "#define SHARED_PP 1" >> $TMPH
996
 
    echo "SHARED_PP=yes" >> config.mak
997
 
  fi
998
 
fi
999
 
 
1000
 
# mpeg audio high precision mode
1001
 
if test "$mpegaudio_hp" = "yes" ; then
1002
 
  echo "#define CONFIG_MPEGAUDIO_HP 1" >> $TMPH
1003
 
fi
1004
 
 
1005
 
if test "$v4l" = "yes" ; then
1006
 
  echo "#define CONFIG_VIDEO4LINUX 1" >> $TMPH
1007
 
  echo "CONFIG_VIDEO4LINUX=yes" >> config.mak
1008
 
fi
1009
 
 
1010
 
if test "$dv1394" = "yes" ; then
1011
 
  echo "#define CONFIG_DV1394 1" >> $TMPH
1012
 
  echo "CONFIG_DV1394=yes" >> config.mak
1013
 
fi
1014
 
 
1015
 
if test "$dlopen" = "yes" ; then
1016
 
  echo "#define CONFIG_HAVE_DLOPEN 1" >> $TMPH
1017
 
fi
1018
 
 
1019
 
if test "$dlfcn" = "yes" ; then
1020
 
  echo "#define CONFIG_HAVE_DLFCN 1" >> $TMPH
1021
 
fi
1022
 
 
1023
 
if test "$audio_oss" = "yes" ; then
1024
 
  echo "#define CONFIG_AUDIO_OSS 1" >> $TMPH
1025
 
  echo "CONFIG_AUDIO_OSS=yes" >> config.mak
1026
 
fi
1027
 
 
1028
 
if test "$audio_beos" = "yes" ; then
1029
 
  echo "#define CONFIG_AUDIO_BEOS 1" >> $TMPH
1030
 
  echo "CONFIG_AUDIO_BEOS=yes" >> config.mak
1031
 
fi
1032
 
 
1033
 
if test "$network" = "yes" ; then
1034
 
  echo "#define CONFIG_NETWORK 1" >> $TMPH
1035
 
  echo "CONFIG_NETWORK=yes" >> config.mak
1036
 
fi
1037
 
 
1038
 
if test "$zlib" = "yes" ; then
1039
 
  echo "#define CONFIG_ZLIB 1" >> $TMPH
1040
 
  echo "CONFIG_ZLIB=yes" >> config.mak
1041
 
fi
1042
 
 
1043
 
if test "$mp3lame" = "yes" ; then
1044
 
  echo "#define CONFIG_MP3LAME 1" >> $TMPH
1045
 
  echo "CONFIG_MP3LAME=yes" >> config.mak
1046
 
fi
1047
 
 
1048
 
if test "$vorbis" = "yes" ; then
1049
 
  echo "#define CONFIG_VORBIS 1" >> $TMPH
1050
 
  echo "CONFIG_VORBIS=yes" >> config.mak
1051
 
fi
1052
 
 
1053
 
if test "$faad" = "yes" ; then
1054
 
  echo "#define CONFIG_FAAD 1" >> $TMPH
1055
 
  echo "CONFIG_FAAD=yes" >> config.mak
1056
 
fi
1057
 
 
1058
 
if test "$faadbin" = "yes" ; then
1059
 
  echo "#define CONFIG_FAADBIN 1" >> $TMPH
1060
 
  echo "CONFIG_FAADBIN=yes" >> config.mak
1061
 
fi
1062
 
 
1063
 
if test "$mingw32" = "yes" ; then
1064
 
  echo "#define CONFIG_WIN32 1" >> $TMPH
1065
 
  echo "CONFIG_WIN32=yes" >> config.mak
1066
 
  echo "#ifndef __MINGW32__" >> $TMPH
1067
 
  echo "#define __MINGW32__ 1" >> $TMPH
1068
 
  echo "#endif" >> $TMPH
1069
 
fi
1070
 
 
1071
 
if test "$os2" = "yes" ; then
1072
 
  echo "#define CONFIG_OS2 1" >> $TMPH
1073
 
  echo "CONFIG_OS2=yes" >> config.mak
1074
 
fi
1075
 
 
1076
 
if test "$TARGET_OS" = "SunOS" ; then
1077
 
  echo "#define CONFIG_SUNOS 1" >> $TMPH
1078
 
fi
1079
 
 
1080
 
if test "$darwin" = "yes"; then
 
1947
 
 
1948
print_config HAVE_   $TMPH config.mak $HAVE_LIST
 
1949
print_config CONFIG_ $TMPH config.mak $CONFIG_LIST
 
1950
print_config TARGET_ $TMPH config.mak $TARGET_LIST
 
1951
 
 
1952
if test "$targetos" = "Darwin"; then
1081
1953
  echo "#define CONFIG_DARWIN 1"  >> $TMPH
1082
 
  echo "CONFIG_DARWIN=yes" >> config.mak
1083
 
fi
1084
 
 
1085
 
if test "$_malloc_h" = "yes" ; then
1086
 
  echo "#define HAVE_MALLOC_H 1" >> $TMPH
1087
 
else
1088
 
  echo "#undef  HAVE_MALLOC_H" >> $TMPH
1089
 
fi
1090
 
 
1091
 
if test "$_memalign" = "yes" ; then
1092
 
  echo "#define HAVE_MEMALIGN 1" >> $TMPH
1093
 
else
1094
 
  echo "#undef  HAVE_MEMALIGN" >> $TMPH
1095
 
fi
1096
 
 
1097
 
if test "$netserver" = "yes" ; then
1098
 
  echo "#define CONFIG_BEOS_NETSERVER 1" >> $TMPH
1099
 
  echo "CONFIG_BEOS_NETSERVER=yes" >> config.mak
1100
 
fi
1101
 
 
1102
 
if test "$need_inet_aton" = "yes" ; then
1103
 
  echo "NEED_INET_ATON=yes" >> config.mak
1104
 
fi
1105
 
 
1106
 
if test "$simpleidct" = "yes" ; then
1107
 
  echo "#define SIMPLE_IDCT 1" >> $TMPH
1108
 
fi
1109
 
 
1110
 
if test "$ffserver" = "yes" ; then
1111
 
  echo "#define CONFIG_FFSERVER 1" >> $TMPH
1112
 
  echo "CONFIG_FFSERVER=yes" >> config.mak
1113
 
fi
1114
 
 
1115
 
if test "$ffplay" = "yes" ; then
1116
 
  echo "CONFIG_FFPLAY=yes" >> config.mak
1117
 
fi
1118
 
 
1119
 
if test "$risky" = "yes" ; then
1120
 
  echo "#define CONFIG_RISKY 1" >> $TMPH
1121
 
  echo "CONFIG_RISKY=yes" >> config.mak
1122
1954
fi
1123
1955
 
1124
1956
echo "#define restrict $_restrict" >> $TMPH
1125
1957
 
 
1958
if test "$optimize" = "small"; then
 
1959
  echo "#define always_inline"  >> $TMPH
 
1960
  echo "#define CONFIG_SMALL 1" >> $TMPH
 
1961
fi
 
1962
 
 
1963
echo "SRC_PATH=\"$source_path\"" >> config.mak
 
1964
echo "SRC_PATH_BARE=$source_path" >> config.mak
 
1965
echo "BUILD_ROOT=\"$PWD\"" >> config.mak
 
1966
 
 
1967
if enabled amr_if2; then
 
1968
  echo "AMR_CFLAGS=-DIF2=1" >> config.mak
 
1969
fi
 
1970
 
 
1971
# Apparently it's not possible to portably echo a backslash.
 
1972
if enabled asmalign_pot; then
 
1973
  printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH
 
1974
else
 
1975
  printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH
 
1976
fi
 
1977
 
 
1978
 
 
1979
for codec in $DECODER_LIST $ENCODER_LIST $PARSER_LIST $DEMUXER_LIST $MUXER_LIST; do
 
1980
    ucname="`toupper $codec`"
 
1981
    config_name="CONFIG_$ucname"
 
1982
    enabled_name="ENABLE_$ucname"
 
1983
    if enabled $codec; then
 
1984
        echo "#define $config_name 1" >> $TMPH
 
1985
        echo "#define $enabled_name 1" >> $TMPH
 
1986
        echo "$config_name=yes" >> config.mak
 
1987
    else
 
1988
        echo "#define $enabled_name 0" >> $TMPH
 
1989
    fi
 
1990
done
 
1991
 
 
1992
# Do not overwrite config.h if unchanged to avoid superfluous rebuilds.
 
1993
if ! cmp -s $TMPH config.h; then
 
1994
        mv -f $TMPH config.h
 
1995
else
 
1996
        echo "config.h is unchanged"
 
1997
fi
 
1998
 
 
1999
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
 
2000
 
1126
2001
# build tree in object directory if source path is different from current one
1127
 
if test "$source_path_used" = "yes" ; then
1128
 
    DIRS="libavformat libavcodec libavcodec/alpha libavcodec/armv4l libavcodec/i386 \
1129
 
          libavcodec/ppc libavcodec/liba52 libavcodec/mlib libavcodec/libpostproc tests vhook"
1130
 
    FILES="Makefile libavformat/Makefile libavcodec/Makefile libavcodec/libpostproc/Makefile tests/Makefile vhook/Makefile"
 
2002
if enabled source_path_used; then
 
2003
    DIRS="\
 
2004
         doc \
 
2005
         libavformat \
 
2006
         libavcodec \
 
2007
         libavcodec/alpha \
 
2008
         libavcodec/armv4l \
 
2009
         libavcodec/bfin \
 
2010
         libavcodec/i386 \
 
2011
         libavcodec/sparc \
 
2012
         libavcodec/mlib \
 
2013
         libavcodec/ppc \
 
2014
         libavcodec/amr \
 
2015
         libavcodec/amr_float \
 
2016
         libavcodec/amrwb_float \
 
2017
         libpostproc \
 
2018
         libavutil \
 
2019
         libswscale \
 
2020
         tests \
 
2021
         vhook \
 
2022
         "
 
2023
    FILES="\
 
2024
          Makefile \
 
2025
          common.mak \
 
2026
          libavformat/Makefile \
 
2027
          libavcodec/Makefile \
 
2028
          libpostproc/Makefile \
 
2029
          libavutil/Makefile \
 
2030
          libswscale/Makefile \
 
2031
          tests/Makefile \
 
2032
          vhook/Makefile \
 
2033
          doc/Makefile \
 
2034
          doc/texi2pod.pl \
 
2035
          "
1131
2036
    for dir in $DIRS ; do
1132
2037
            mkdir -p $dir
1133
2038
    done
1134
2039
    for f in $FILES ; do
1135
 
        ln -sf $source_path/$f $f
 
2040
        ln -sf "$source_path/$f" $f
1136
2041
    done
1137
2042
fi
1138
 
echo "SRC_PATH=$source_path" >> config.mak
1139
 
 
1140
 
if test "$amr_nb" = "yes" ; then
1141
 
  echo "#define AMR_NB 1" >> $TMPH
1142
 
  echo "AMR_NB=yes" >> config.mak
1143
 
  echo
1144
 
if test "$amr_nb_fixed" = "yes" ; then
1145
 
  echo "AMR_NB_FIXED=yes" >> config.mak
1146
 
  echo "#define AMR_NB_FIXED 1" >> $TMPH
1147
 
  echo "AMR NB FIXED POINT NOTICE! Make sure you have downloaded TS26.073 "
1148
 
  echo "REL-5 version 5.1.0 from "
1149
 
  echo "http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26073-510.zip"
1150
 
  echo "and extracted src to libavcodec/amr"
1151
 
  echo "You must also add -DMMS_IO and remove -pedantic-errors to/from CFLAGS in libavcodec/amr/makefile."
1152
 
  echo "i.e. CFLAGS = -Wall -I. \$(CFLAGS_\$(MODE)) -D\$(VAD) -DMMS_IO"
1153
 
  echo
1154
 
else
1155
 
  echo "AMR NB FLOAT NOTICE ! Make sure you have downloaded TS26.104"
1156
 
  echo "REL-5 V5.1.0 from "
1157
 
  echo "http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26104-510.zip"
1158
 
  echo "and extracted the source to libavcodec/amr_float"
1159
 
  echo
1160
 
fi
1161
 
 
1162
 
fi
1163
 
 
1164
 
diff $TMPH config.h >/dev/null 2>&1
1165
 
if test $? -ne 0 ; then
1166
 
        mv -f $TMPH config.h
1167
 
else
1168
 
        echo "config.h is unchanged"
1169
 
fi
1170
 
 
1171
 
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
 
2043
 
 
2044
 
 
2045
# build pkg-config files
 
2046
# FIXME: libdir and includedir are hardcoded and may differ from the real path.
 
2047
 
 
2048
pkgconfig_generate(){
 
2049
name=$1
 
2050
comment=$2
 
2051
version=$3
 
2052
libs=$4
 
2053
requires=$5
 
2054
include=$6
 
2055
cat <<EOF >$name.pc
 
2056
prefix=$PREFIX
 
2057
exec_prefix=\${prefix}
 
2058
libdir=\${exec_prefix}/lib
 
2059
includedir=\${prefix}/include
 
2060
 
 
2061
Name: $name
 
2062
Description: $comment
 
2063
Version: $version
 
2064
Requires: $requires
 
2065
Conflicts:
 
2066
Libs: -L\${libdir} $libs
 
2067
Cflags: -I\${includedir} -I\${includedir}/$include
 
2068
EOF
 
2069
}
 
2070
 
 
2071
pkgconfig_generate_uninstalled(){
 
2072
name=$1
 
2073
shortname=${name#lib}
 
2074
comment=$2
 
2075
version=$3
 
2076
libs=$4
 
2077
requires=$5
 
2078
cat <<EOF >$name-uninstalled.pc
 
2079
prefix=
 
2080
exec_prefix=
 
2081
libdir=\${pcfiledir}/$name
 
2082
includedir=\${pcfiledir}/$name
 
2083
 
 
2084
Name: $name
 
2085
Description: $comment
 
2086
Version: $version
 
2087
Requires: $requires
 
2088
Conflicts:
 
2089
Libs: \${libdir}/${LIBPREF}${shortname}${LIBSUF} $libs
 
2090
Cflags: -I\${includedir}
 
2091
EOF
 
2092
}
 
2093
 
 
2094
pkgconfig_generate libavutil "FFmpeg utility library" "$lavu_version" -lavutil "" ffmpeg
 
2095
pkgconfig_generate_uninstalled libavutil "FFmpeg utility library" "$lavu_version"
 
2096
 
 
2097
pkgconfig_generate libavcodec "FFmpeg codec library" "$lavc_version" "-lavcodec $extralibs" "$pkg_requires libavutil = $lavu_version" ffmpeg
 
2098
pkgconfig_generate_uninstalled libavcodec "FFmpeg codec library" "$lavc_version" "$extralibs" "$pkg_requires libavutil = $lavu_version"
 
2099
 
 
2100
pkgconfig_generate libavformat "FFmpeg container format library" "$lavf_version" "-lavformat $extralibs" "$pkg_requires libavcodec = $lavc_version" ffmpeg
 
2101
pkgconfig_generate_uninstalled libavformat "FFmpeg container format library" "$lavf_version" "$extralibs" "$pkg_requires libavcodec = $lavc_version"
 
2102
 
 
2103
if enabled pp; then
 
2104
  pkgconfig_generate libpostproc "FFmpeg post processing library" "$pp_version" -lpostproc "" postproc
 
2105
  pkgconfig_generate_uninstalled libpostproc "FFmpeg post processing library" "$pp_version"
 
2106
fi
 
2107
 
 
2108
if enabled swscaler; then
 
2109
  pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" "-lswscale" "libavutil = $lavu_version" swscale
 
2110
  pkgconfig_generate_uninstalled libswscale "FFmpeg image rescaling library" "$sws_version" "" "libavutil = $lavu_version"
 
2111
else
 
2112
  pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" "" "$pkg_requires libavcodec = $lavc_version" swscale
 
2113
  pkgconfig_generate_uninstalled libswscale "FFmpeg image rescaling library" "$sws_version" "" "$pkg_requires libavcodec = $lavc_version"
 
2114
  apply libswscale.pc sed s/^Libs:.*$/Libs:/
 
2115
  apply libswscale-uninstalled.pc sed s/^Libs:.*$/Libs:/
 
2116
fi