Statistics
| Branch: | Revision:

ffmpeg / configure @ dc922953

History | View | Annotate | Download (56.2 KB)

1 de6d9b64 Fabrice Bellard
#!/bin/sh
2 0f3cb305 Fabrice Bellard
#
3 f57620d5 Måns Rullgård
# 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 0f3cb305 Fabrice Bellard
#
9 cf9d24ad Dan Christiansen
10 cde2d79a Måns Rullgård
# make sure we are running under a compatible shell
11 c21d6325 Måns Rullgård
# try to make this part work with most shells
12
13
try_exec(){
14 0dbe81bb Måns Rullgård
    echo "Trying shell $1"
15 c21d6325 Måns Rullgård
    type "$1" >/dev/null 2>&1 && exec "$@"
16
}
17
18 5237ce67 Måns Rullgård
unset foo
19 0dbe81bb Måns Rullgård
(: ${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 c21d6325 Måns Rullgård
    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 cde2d79a Måns Rullgård
    fi
40
    echo "No compatible shell script interpreter found."
41 fc53da20 Diego Biurrun
    echo "This configure script requires a POSIX-compatible shell"
42 c21d6325 Måns Rullgård
    echo "such as bash or ksh."
43 505dfb09 Diego Biurrun
    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 c21d6325 Måns Rullgård
    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 cde2d79a Måns Rullgård
    exit 1
51
fi
52
53 74c53c2d Måns Rullgård
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 2ba042a7 Måns Rullgård
  echo "  --log[=FILE|yes|no]      log tests and output to FILE [config.err]"
60 2266e085 Diego Biurrun
  echo "  --prefix=PREFIX          install in PREFIX [$PREFIX]"
61 74c53c2d Måns Rullgård
  echo "  --libdir=DIR             install libs in DIR [PREFIX/lib]"
62 84c22efd Diego Biurrun
  echo "  --shlibdir=DIR           install shared libs in DIR [PREFIX/lib]"
63 74c53c2d Måns Rullgård
  echo "  --incdir=DIR             install includes in DIR [PREFIX/include/ffmpeg]"
64
  echo "  --mandir=DIR             install man page in DIR [PREFIX/man]"
65
  echo "  --enable-mingw32         enable MinGW native/cross Windows compile"
66
  echo "  --enable-mingwce         enable MinGW native/cross WinCE compile"
67
  echo "  --enable-static          build static libraries [default=yes]"
68
  echo "  --disable-static         do not build static libraries [default=no]"
69
  echo "  --enable-shared          build shared libraries [default=no]"
70
  echo "  --disable-shared         do not build shared libraries [default=yes]"
71 dc922953 Diego Biurrun
  echo "  --enable-pp              enable GPLed postprocessing support [default=no]"
72
  echo "  --enable-swscaler        software scaler support [default=no]"
73 74c53c2d Måns Rullgård
  echo "  --enable-sunmlib         use Sun medialib [default=no]"
74
  echo "  --enable-pthreads        use pthreads [default=no]"
75 eb113804 Diego Biurrun
  echo "  --enable-w32threads      use Win32 threads [default=no]"
76 56a059ac Diego Biurrun
  echo "  --enable-x11grab         enable X11 grabbing [default=no]"
77 74c53c2d Måns Rullgård
  echo "  --enable-dc1394          enable IIDC-1394 grabbing using libdc1394"
78
  echo "                           and libraw1394 [default=no]"
79 dc922953 Diego Biurrun
  echo "  --enable-a52             enable GPLed liba52 support [default=no]"
80
  echo "  --enable-a52bin          open liba52.so.0 at runtime [default=no]"
81 8ac17293 Steve L'Homme
  echo "  --enable-avisynth        allow reading AVISynth script files [default=no]"
82 dc922953 Diego Biurrun
  echo "  --enable-dts             enable GPLed libdts support [default=no]"
83
  echo "  --enable-faac            enable FAAC support via libfaac [default=no]"
84
  echo "  --enable-faad            enable FAAD support via libfaad [default=no]"
85
  echo "  --enable-faadbin         build FAAD support with runtime linking [default=no]"
86
  echo "  --enable-libgsm          enable GSM support via libgsm [default=no]"
87
  echo "  --enable-mp3lame         enable MP3 encoding via libmp3lame [default=no]"
88
  echo "  --enable-libnut          enable NUT support via libnut [default=no]"
89
  echo "  --enable-libogg          enable Ogg support via libogg [default=no]"
90
  echo "  --enable-vorbis          enable Vorbis support via libvorbis [default=no]"
91
  echo "  --enable-x264            enable H.264 encoding via x264 [default=no]"
92
  echo "  --enable-xvid            enable XviD support via xvidcore [default=no]"
93
  echo "  --enable-amr_nb          enable amr_nb float audio codec"
94
  echo "  --enable-amr_nb-fixed    use fixed point for amr-nb codec"
95
  echo "  --enable-amr_wb          enable amr_wb float audio codec"
96
  echo "  --enable-amr_if2         enable amr_wb IF2 audio codec"
97 74c53c2d Måns Rullgård
  echo "  --enable-gpl             allow use of GPL code, the resulting libav*"
98
  echo "                           and ffmpeg will be under GPL [default=no]"
99
  echo ""
100
  echo "Advanced options (experts only):"
101
  echo "  --source-path=PATH       path to source code [$source_path]"
102
  echo "  --cross-prefix=PREFIX    use PREFIX for compilation tools [$cross_prefix]"
103 fac252f9 Måns Rullgård
  echo "  --cross-compile          assume a cross-compiler is used"
104 74c53c2d Måns Rullgård
  echo "  --cc=CC                  use C compiler CC [$cc]"
105
  echo "  --make=MAKE              use specified make [$make]"
106
  echo "  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS [$CFLAGS]"
107
  echo "  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]"
108
  echo "  --extra-libs=ELIBS       add ELIBS [$ELIBS]"
109
  echo "  --build-suffix=SUFFIX    suffix for application specific build []"
110 cc6a90dd Guillaume Poirier
  echo "  --arch=ARCH              select architecture  [$arch]"
111 38d0a8aa Guillaume Poirier
  echo "  --cpu=CPU                selects the minimum cpu required (affects
112
                                   instruction selection, may crash on older CPUs)"
113 74c53c2d Måns Rullgård
  echo "  --powerpc-perf-enable    enable performance report on PPC"
114
  echo "                           (requires enabling PMC)"
115
  echo "  --disable-mmx            disable MMX usage"
116 1839e854 Siarhei Siamashka
  echo "  --disable-armv5te        disable armv5te usage"
117 74c53c2d Måns Rullgård
  echo "  --disable-iwmmxt         disable iwmmxt usage"
118
  echo "  --disable-altivec        disable AltiVec usage"
119
  echo "  --disable-audio-oss      disable OSS audio support [default=no]"
120
  echo "  --disable-audio-beos     disable BeOS audio support [default=no]"
121
  echo "  --disable-v4l            disable video4linux grabbing [default=no]"
122
  echo "  --disable-v4l2           disable video4linux2 grabbing [default=no]"
123
  echo "  --disable-bktr           disable bktr video grabbing [default=no]"
124
  echo "  --disable-dv1394         disable DV1394 grabbing [default=no]"
125
  echo "  --disable-network        disable network support [default=no]"
126 0c7bb0e5 Luca Barbato
  echo "  --disable-ipv6           disable ipv6 support [default=no]"
127 74c53c2d Måns Rullgård
  echo "  --disable-zlib           disable zlib [default=no]"
128
  echo "  --disable-vhook          disable video hooking support"
129
  echo "  --enable-gprof           enable profiling with gprof [$gprof]"
130
  echo "  --disable-debug          disable debugging symbols"
131
  echo "  --disable-opts           disable compiler optimizations"
132 78fcba8f Måns Rullgård
  echo "  --enable-extra-warnings  enable more compiler warnings"
133 74c53c2d Måns Rullgård
  echo "  --disable-mpegaudio-hp   faster (but less accurate)"
134
  echo "                           MPEG audio decoding [default=no]"
135
  echo "  --disable-protocols      disable I/O protocols support [default=no]"
136 786b30af Diego Biurrun
  echo "  --disable-ffmpeg         disable ffmpeg build"
137 74c53c2d Måns Rullgård
  echo "  --disable-ffserver       disable ffserver build"
138
  echo "  --disable-ffplay         disable ffplay build"
139
  echo "  --enable-small           optimize for size instead of speed"
140
  echo "  --enable-memalign-hack   emulate memalign, interferes with memory debuggers"
141
  echo "  --disable-strip          disable stripping of executables and shared libraries"
142
  echo "  --disable-encoder=NAME   disables encoder NAME"
143
  echo "  --enable-encoder=NAME    enables encoder NAME"
144
  echo "  --disable-decoder=NAME   disables decoder NAME"
145
  echo "  --enable-decoder=NAME    enables decoder NAME"
146
  echo "  --disable-encoders       disables all encoders"
147
  echo "  --disable-decoders       disables all decoders"
148 ff70e601 Måns Rullgård
  echo "  --disable-muxer=NAME     disables muxer NAME"
149
  echo "  --enable-muxer=NAME      enables muxer NAME"
150 74c53c2d Måns Rullgård
  echo "  --disable-muxers         disables all muxers"
151 ff70e601 Måns Rullgård
  echo "  --disable-demuxer=NAME   disables demuxer NAME"
152
  echo "  --enable-demuxer=NAME    enables demuxer NAME"
153 74c53c2d Måns Rullgård
  echo "  --disable-demuxers       disables all demuxers"
154 af9e7d18 Måns Rullgård
  echo "  --enable-parser=NAME     enables parser NAME"
155
  echo "  --disable-parser=NAME    disables parser NAME"
156
  echo "  --disable-parsers        disables all parsers"
157 74c53c2d Måns Rullgård
  echo ""
158
  echo "NOTE: Object files are built at the place where configure is launched."
159
  exit 1
160
}
161 cf9d24ad Dan Christiansen
162 57bd82d4 Måns Rullgård
log(){
163
    echo "$@" >>$logfile
164
}
165
166 720c69da Måns Rullgård
log_file(){
167 c8e9f801 Måns Rullgård
    log BEGIN $1
168
    cat -n $1 >>$logfile
169
    log END $1
170
}
171
172 2ba042a7 Måns Rullgård
echolog(){
173 c8e9f801 Måns Rullgård
    log "$@"
174 57bd82d4 Måns Rullgård
    echo "$@"
175 2ba042a7 Måns Rullgård
}
176
177
die(){
178
    echolog "$@"
179
    cat <<EOF
180
If you think configure made a mistake, make sure you are using the latest
181
version from SVN.  If the latest version fails, report the problem to the
182
ffmpeg-devel@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net.
183
EOF
184 720c69da Måns Rullgård
    if enabled logging; then
185 2ba042a7 Måns Rullgård
        cat <<EOF
186
Include the log file "$logfile" produced by configure as this will help
187
solving the problem.
188
EOF
189
    else
190
cat <<EOF
191
Rerun configure with logging enabled (do not use --log=no), and include the
192
log this produces with your report.
193
EOF
194
    fi
195 57bd82d4 Måns Rullgård
    rm -f $TMPC $TMPO $TMPE $TMPS $TMPH
196
    exit 1
197
}
198
199 904e48f1 Måns Rullgård
# "tr '[a-z]' '[A-Z]'" is a workaround for Solaris tr not grokking "tr a-z A-Z"
200 44161118 Måns Rullgård
toupper(){
201
    echo "$@" | tr '[a-z]' '[A-Z]'
202
}
203
204 a8d04fba Måns Rullgård
set_all(){
205
    value=$1
206
    shift
207
    for var in $*; do
208
        eval $var=$value
209
    done
210
}
211
212
enable(){
213
    set_all yes $*
214
}
215
216
disable(){
217
    set_all no $*
218
}
219
220 57bd82d4 Måns Rullgård
enabled(){
221 44161118 Måns Rullgård
    eval test "x\$$1" = "xyes"
222
}
223
224
enabled_all(){
225
    for opt; do
226
        enabled $opt || return 1
227
    done
228
}
229
230
enabled_any(){
231
    for opt; do
232
        enabled $opt && return 0
233
    done
234
}
235
236
print_config(){
237
    pfx=$1
238
    header=$2
239
    makefile=$3
240
    shift 3
241
    for cfg; do
242
        if enabled $cfg; then
243
            ucname="${pfx}`toupper $cfg`"
244
            echo "#define ${ucname} 1" >> $header
245
            echo "${ucname}=yes" >> $makefile
246
        fi
247
    done
248 57bd82d4 Måns Rullgård
}
249
250
flags_saved(){
251
    (: ${SAVE_CFLAGS?}) 2>/dev/null
252
}
253
254 dcd479c0 Måns Rullgård
save_flags(){
255 57bd82d4 Måns Rullgård
    flags_saved && return
256 dcd479c0 Måns Rullgård
    SAVE_CFLAGS="$CFLAGS"
257
    SAVE_LDFLAGS="$LDFLAGS"
258
    SAVE_extralibs="$extralibs"
259
}
260
261
restore_flags(){
262
    CFLAGS="$SAVE_CFLAGS"
263
    LDFLAGS="$SAVE_LDFLAGS"
264
    extralibs="$SAVE_extralibs"
265
    unset SAVE_CFLAGS
266
    unset SAVE_LDFLAGS
267
    unset SAVE_extralibs
268
}
269
270
temp_cflags(){
271
    save_flags
272
    CFLAGS="$CFLAGS $*"
273
}
274
275
temp_ldflags(){
276
    save_flags
277
    LDFLAGS="$LDFLAGS $*"
278
}
279
280
temp_extralibs(){
281
    save_flags
282
    extralibs="$extralibs $*"
283
}
284
285 57bd82d4 Måns Rullgård
append(){
286
    var=$1
287
    shift
288
    flags_saved && eval "SAVE_$var=\"\$SAVE_$var $*\""
289
    eval "$var=\"\$$var $*\""
290
}
291
292
add_cflags(){
293
    append CFLAGS "$@"
294
}
295
296
add_ldflags(){
297
    append LDFLAGS "$@"
298
}
299
300
add_extralibs(){
301
    append extralibs "$@"
302
}
303
304 b0cfb663 Måns Rullgård
check_cmd(){
305 b3cb5d51 Måns Rullgård
    log "$@"
306 9b4f605c Måns Rullgård
    "$@" >>$logfile 2>&1
307 b0cfb663 Måns Rullgård
}
308
309 dcd479c0 Måns Rullgård
check_cc(){
310 57bd82d4 Måns Rullgård
    log check_cc "$@"
311
    cat >$TMPC
312 720c69da Måns Rullgård
    log_file $TMPC
313 b0cfb663 Måns Rullgård
    check_cmd $cc $CFLAGS "$@" -c -o $TMPO $TMPC
314 57bd82d4 Måns Rullgård
}
315
316
check_cpp(){
317
    log check_cpp "$@"
318 dcd479c0 Måns Rullgård
    cat >$TMPC
319 720c69da Måns Rullgård
    log_file $TMPC
320 b0cfb663 Måns Rullgård
    check_cmd $cc $CFLAGS "$@" -E -o $TMPO $TMPC
321 dcd479c0 Måns Rullgård
}
322
323
check_ld(){
324 57bd82d4 Måns Rullgård
    log check_ld "$@"
325 0607887f Måns Rullgård
    check_cc || return
326 b0cfb663 Måns Rullgård
    check_cmd $cc $LDFLAGS "$@" -o $TMPE $TMPO $extralibs
327 dcd479c0 Måns Rullgård
}
328
329
check_cflags(){
330 57bd82d4 Måns Rullgård
    log check_cflags "$@"
331
    check_cc "$@" <<EOF && add_cflags "$@"
332 dcd479c0 Måns Rullgård
int x;
333
EOF
334
}
335
336
check_ldflags(){
337 57bd82d4 Måns Rullgård
    log check_ldflags "$@"
338
    check_ld "$@" <<EOF && add_ldflags "$@"
339
int main(){
340
    return 0;
341
}
342 dcd479c0 Måns Rullgård
EOF
343
}
344
345
check_header(){
346 57bd82d4 Måns Rullgård
    log check_header "$@"
347 dcd479c0 Måns Rullgård
    header=$1
348
    shift
349 57bd82d4 Måns Rullgård
    check_cpp "$@" <<EOF
350 dcd479c0 Måns Rullgård
#include <$header>
351
int x;
352
EOF
353 0701ca7f Måns Rullgård
    err=$?
354 0dbe81bb Måns Rullgård
    var=`echo $header | sed 's/[^A-Za-z0-9_]/_/g'`
355 0701ca7f Måns Rullgård
    test "$err" = 0 && enable $var || disable $var
356
    return $err
357 dcd479c0 Måns Rullgård
}
358
359
check_func(){
360 57bd82d4 Måns Rullgård
    log check_func "$@"
361 dcd479c0 Måns Rullgård
    func=$1
362
    shift
363
    check_ld "$@" <<EOF
364
extern int $func();
365
int main(){
366
    $func();
367
}
368
EOF
369 0701ca7f Måns Rullgård
    err=$?
370
    test "$err" = 0 && enable $func || disable $func
371
    return $err
372 dcd479c0 Måns Rullgård
}
373
374 57bd82d4 Måns Rullgård
check_lib(){
375
    log check_lib "$@"
376
    header="$1"
377
    func="$2"
378
    shift 2
379
    temp_extralibs "$@"
380
    check_header $header && check_func $func && add_extralibs "$@"
381
    err=$?
382
    restore_flags
383
    return $err
384
}
385
386 dcd479c0 Måns Rullgård
check_exec(){
387 bd4700b1 Måns Rullgård
    check_ld "$@" && { test "$cross_compile" = yes || $TMPE >>$logfile 2>&1; }
388 57bd82d4 Måns Rullgård
}
389
390
require(){
391
    name="$1"
392
    header="$2"
393
    func="$3"
394
    shift 3
395
    check_lib $header $func "$@" || die "ERROR: $name not found"
396 dcd479c0 Måns Rullgård
}
397
398 c505dd31 Måns Rullgård
apply(){
399
    file=$1
400
    shift
401
    "$@" < "$file" > "$file.tmp" && mv "$file.tmp" "$file" || rm "$file.tmp"
402
}
403
404 c88f5d72 Måns Rullgård
CONFIG_LIST='
405
    encoders
406
    decoders
407
    parsers
408
    muxers
409
    demuxers
410
    amr
411
    amr_nb
412
    amr_nb_fixed
413
    amr_wb
414
    audio_beos
415
    audio_oss
416
    avisynth
417
    beos_netserver
418
    bktr
419
    dc1394
420
    dv1394
421
    ffmpeg
422
    ffplay
423
    ffserver
424
    gpl
425
    ipv6
426 f8904fd9 Diego Biurrun
    liba52
427
    liba52bin
428 3ffab361 Diego Biurrun
    libdts
429 2eed5a46 Diego Biurrun
    libfaac
430
    libfaad
431
    libfaadbin
432 c88f5d72 Måns Rullgård
    libgsm
433 6ebe07fb Diego Biurrun
    libmp3lame
434 c88f5d72 Måns Rullgård
    libnut
435
    libogg
436
    libvorbis
437
    memalign_hack
438
    mpegaudio_hp
439
    network
440
    pp
441
    protocols
442
    swscaler
443
    vhook
444
    video4linux
445
    video4linux2
446 860391a5 Måns Rullgård
    wince
447 56a059ac Diego Biurrun
    x11grab
448 c88f5d72 Måns Rullgård
    x264
449
    xvid
450
    zlib
451
'
452
453
HAVE_LIST='
454
    altivec_h
455 b265431e Måns Rullgård
    beosthreads
456 c88f5d72 Måns Rullgård
    byteswap_h
457
    dcbzl
458 f8aa696f Diego Biurrun
    dev_bktr_ioctl_bt848_h
459
    dev_bktr_ioctl_meteor_h
460
    dev_ic_bt8xx_h
461
    dev_video_meteor_ioctl_meteor_h
462
    dev_video_bktr_ioctl_bt848_h
463 18b67ae5 Måns Rullgård
    dlfcn_h
464 c88f5d72 Måns Rullgård
    dlopen
465
    freetype2
466
    gprof
467
    imlib2
468 2e1913b1 Måns Rullgård
    inet_aton
469 c88f5d72 Måns Rullgård
    localtime_r
470
    lrintf
471 f8aa696f Diego Biurrun
    machine_ioctl_bt848_h
472
    machine_ioctl_meteor_h
473 c88f5d72 Måns Rullgård
    malloc_h
474
    memalign
475
    mlib
476 9c914398 Måns Rullgård
    os2
477 b265431e Måns Rullgård
    os2threads
478
    pthreads
479 c88f5d72 Måns Rullgård
    sdl
480
    sdl_video_size
481 b265431e Måns Rullgård
    threads
482
    w32threads
483 c88f5d72 Måns Rullgård
'
484 44161118 Måns Rullgård
485 0f3cb305 Fabrice Bellard
# set temporary file name
486 57514323 Zdenek Kabelac
if test ! -z "$TMPDIR" ; then
487 0f3cb305 Fabrice Bellard
    TMPDIR1="${TMPDIR}"
488 57514323 Zdenek Kabelac
elif test ! -z "$TEMPDIR" ; then
489 0f3cb305 Fabrice Bellard
    TMPDIR1="${TEMPDIR}"
490 3d204385 Nick Kurshev
else
491 0f3cb305 Fabrice Bellard
    TMPDIR1="/tmp"
492 3d204385 Nick Kurshev
fi
493
494 0f3cb305 Fabrice Bellard
TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
495
TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
496 f3ec2d46 Slavik Gnatenko
TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}"
497 0f3cb305 Fabrice Bellard
TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
498
TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"
499
500 de6d9b64 Fabrice Bellard
# default parameters
501 720c69da Måns Rullgård
logging="yes"
502 2ba042a7 Måns Rullgård
logfile="config.err"
503 2266e085 Diego Biurrun
PREFIX="/usr/local"
504
libdir='${PREFIX}/lib'
505 84c22efd Diego Biurrun
shlibdir="$libdir"
506 2266e085 Diego Biurrun
incdir='${PREFIX}/include/ffmpeg'
507
mandir='${PREFIX}/man'
508
bindir='${PREFIX}/bin'
509 0f3cb305 Fabrice Bellard
cross_prefix=""
510 fac252f9 Måns Rullgård
cross_compile="no"
511 de6d9b64 Fabrice Bellard
cc="gcc"
512
ar="ar"
513 be7109c1 Michael Niedermayer
ranlib="ranlib"
514 4a908fbc Alex Beregszaszi
make="make"
515 0f3cb305 Fabrice Bellard
strip="strip"
516 cc6a90dd Guillaume Poirier
arch=`uname -m`
517 38d0a8aa Guillaume Poirier
cpu="generic"
518 e45a2872 Romain Dolbeau
powerpc_perf="no"
519 0f3cb305 Fabrice Bellard
mmx="default"
520 e7768fc5 Guillaume Poirier
cmov="no"
521 94e4c3a3 Guillaume Poirier
cmov_is_fast="no"
522 1839e854 Siarhei Siamashka
armv5te="default"
523 eba9ae3c Gildas Bazin
iwmmxt="default"
524 ab6c65f6 Brian Foley
altivec="default"
525 87ea51e0 Luca Barbato
dcbzl="no"
526 d46aba26 Leon van Stuivenberg
mmi="default"
527 cc6a90dd Guillaume Poirier
case "$arch" in
528 ef0bc4c9 François Revol
  i386|i486|i586|i686|i86pc|BePC)
529 419b8784 Diego Biurrun
    arch="x86_32"
530 de6d9b64 Fabrice Bellard
  ;;
531 7bf9648e Jacob Meuser
  x86_64|amd64)
532 a63e5f1c Diego Biurrun
    arch="x86_32"
533 32255f6c Reimar Döffinger
    canon_arch="`$cc -dumpmachine | sed -e 's,\([^-]*\)-.*,\1,'`"
534 7bf9648e Jacob Meuser
    if [ x"$canon_arch" = x"x86_64" -o x"$canon_arch" = x"amd64" ]; then
535
      if [ -z "`echo $CFLAGS | grep -- -m32`"  ]; then
536 cc6a90dd Guillaume Poirier
        arch="x86_64"
537 7bf9648e Jacob Meuser
      fi
538 053dea12 Aurelien Jacobs
    fi
539
  ;;
540 6dc7b6b3 Diego Biurrun
  # armv4l is a subset of armv[567]*l
541
  arm|armv[4567]*l)
542 cc6a90dd Guillaume Poirier
    arch="armv4l"
543 6ed7422a Fabrice Bellard
  ;;
544 91d1f1a4 Nick Kurshev
  alpha)
545 cc6a90dd Guillaume Poirier
    arch="alpha"
546 91d1f1a4 Nick Kurshev
  ;;
547 2645e80f Guillaume Poirier
  "Power Macintosh"|ppc|ppc64|powerpc)
548 cc6a90dd Guillaume Poirier
    arch="powerpc"
549 90cee0c3 Michael Niedermayer
  ;;
550 b028a866 Diego Biurrun
  mips|mipsel|IP*)
551 cc6a90dd Guillaume Poirier
    arch="mips"
552 d46aba26 Leon van Stuivenberg
  ;;
553 bb476ff3 James Morrison
  sun4u|sparc64)
554 cc6a90dd Guillaume Poirier
    arch="sparc64"
555 a7beab73 Roman Shaposhnik
  ;;
556 bb476ff3 James Morrison
  sparc)
557 cc6a90dd Guillaume Poirier
    arch="sparc"
558 bb476ff3 James Morrison
  ;;
559 bdb2e37c Alex Beregszaszi
  sh4)
560 cc6a90dd Guillaume Poirier
    arch="sh4"
561 bdb2e37c Alex Beregszaszi
  ;;
562 67860b26 Sam Hocevar
  parisc|parisc64)
563 cc6a90dd Guillaume Poirier
    arch="parisc"
564 67860b26 Sam Hocevar
  ;;
565
  s390|s390x)
566 cc6a90dd Guillaume Poirier
    arch="s390"
567 67860b26 Sam Hocevar
  ;;
568
  m68k)
569 cc6a90dd Guillaume Poirier
    arch="m68k"
570 67860b26 Sam Hocevar
  ;;
571
  ia64)
572 cc6a90dd Guillaume Poirier
    arch="ia64"
573 67860b26 Sam Hocevar
  ;;
574 81a9b052 Michael Benjamin
  bfin)
575 cc6a90dd Guillaume Poirier
    arch="bfin"
576 81a9b052 Michael Benjamin
  ;;
577 de6d9b64 Fabrice Bellard
  *)
578 cc6a90dd Guillaume Poirier
    arch="unknown"
579 de6d9b64 Fabrice Bellard
  ;;
580
esac
581
gprof="no"
582 9d2a0f1c Måns Rullgård
video4linux="yes"
583
video4linux2="yes"
584 6beefa40 Michael Niedermayer
bktr="no"
585 5cbcf02c Fabrice Bellard
audio_oss="yes"
586 dfdfa47c François Revol
audio_beos="no"
587 56a059ac Diego Biurrun
x11grab="no"
588 8aa3ee32 Max Krasnyansky
dv1394="yes"
589 f02be79d Roman Shaposhnik
dc1394="no"
590 5cbcf02c Fabrice Bellard
network="yes"
591 0c7bb0e5 Luca Barbato
ipv6="yes"
592 0147f198 François Revol
zlib="yes"
593 f8904fd9 Diego Biurrun
liba52="no"
594
liba52bin="no"
595 dc922953 Diego Biurrun
libdts="no"
596 2eed5a46 Diego Biurrun
libfaac="no"
597
libfaad="no"
598
libfaadbin="no"
599 bb4c2140 Michael Niedermayer
libgsm="no"
600 6ebe07fb Diego Biurrun
libmp3lame="no"
601 f956e129 Oded Shimon
libnut="no"
602 9146ca37 Måns Rullgård
libogg="no"
603 be74741c Måns Rullgård
libvorbis="no"
604 1ddadfa9 Adam Thayer
xvid="no"
605 6662ec29 Michael Niedermayer
x264="no"
606 ba9261e5 Michael Niedermayer
pp="no"
607 732d9245 Bill Eldridge
mingw32="no"
608 860391a5 Måns Rullgård
wince="no"
609 f3ec2d46 Slavik Gnatenko
os2="no"
610 320d060a Diego Biurrun
lstatic="yes"
611 83286d2a Zdenek Kabelac
lshared="no"
612 cddf3f45 Glenn Maynard
optimize="yes"
613
debug="yes"
614 78fcba8f Måns Rullgård
extrawarnings="no"
615 65d1bea2 Michel Bardiaux
dostrip="yes"
616 da186ae2 Steven M. Schultz
installstrip="-s"
617 ef0bc4c9 François Revol
extralibs="-lm"
618 0f3cb305 Fabrice Bellard
bigendian="no"
619 a8721c09 Fabrice Bellard
vhook="default"
620 8ac17293 Steve L'Homme
avisynth="no"
621 18b67ae5 Måns Rullgård
dlfcn_h="no"
622 adbc0510 Philip Gladstone
dlopen="no"
623 1eb2212e Fabrice Bellard
mpegaudio_hp="yes"
624 baa3a937 Måns Rullgård
SHFLAGS='-shared -Wl,-soname,$@'
625 cab3ef82 Diego Biurrun
VHOOKSHFLAGS='$(SHFLAGS)'
626 8e72b130 Måns Rullgård
beos_netserver="no"
627 04f46ced Gildas Bazin
protocols="yes"
628 786b30af Diego Biurrun
ffmpeg="yes"
629 8154d2e0 Fabrice Bellard
ffserver="yes"
630 a86b921c Fabrice Bellard
ffplay="yes"
631 80581e98 Michael Niedermayer
LIBOBJFLAGS=""
632 e89b8b0a Diego Biurrun
FFLDFLAGS=-Wl,--warn-common
633 e240ee67 Luca Barbato
LDLATEFLAGS='-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
634 c536cb09 Diego Biurrun
FFSERVERLDFLAGS=-Wl,-E
635 f39e56a8 Jacob Meuser
LDCONFIG="ldconfig"
636 f3ec2d46 Slavik Gnatenko
LIBPREF="lib"
637
LIBSUF=".a"
638 4bdd05e7 Diego Biurrun
LIB='$(LIBPREF)$(NAME)$(LIBSUF)'
639 f3ec2d46 Slavik Gnatenko
SLIBPREF="lib"
640
SLIBSUF=".so"
641 4bdd05e7 Diego Biurrun
SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF)'
642 b29bddab Diego Biurrun
SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
643
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
644 951bf3e6 Fabrice Bellard
EXESUF=""
645 eb94aca9 Charles Yates
BUILDSUF=""
646 891f64b3 joca@rixmail.se
amr_nb="no"
647 d663a1fd Michael Niedermayer
amr_wb="no"
648 bc634f6f Zdenek Kabelac
amr_nb_fixed="no"
649 2a515c08 Torsten Martinsen
amr_if2="no"
650 bde24d6e Måns Rullgård
mlib="no"
651 9c3d33d6 Michael Niedermayer
pthreads="no"
652 eb113804 Diego Biurrun
w32threads="no"
653 790c9ca7 Luca Abeni
swscaler="no"
654 b2e3c528 Michael Niedermayer
gpl="no"
655 9ddbcae6 Måns Rullgård
memalign_hack="no"
656 4454dc1b John Dalgliesh
asmalign_pot="unknown"
657 d4596ae3 Diego Biurrun
LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(libdir)/$(LIB)"'
658 ef0bc4c9 François Revol
659
# OS specific
660
targetos=`uname -s`
661
case $targetos in
662
BeOS)
663 2266e085 Diego Biurrun
PREFIX="/boot/home/config"
664 ef0bc4c9 François Revol
# helps building libavcodec
665 30a3e5d4 Nigel Pearson
add_cflags "-DPIC -fomit-frame-pointer"
666 31ba0b4d François Revol
# 3 gcc releases known for BeOS, each with ugly bugs
667 b2924696 Roman Shaposhnik
gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
668 31ba0b4d François Revol
case "$gcc_version" in
669
2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
670
mmx="no"
671
;;
672
*20010315*) echo "BeBits gcc"
673 30a3e5d4 Nigel Pearson
add_cflags "-fno-expensive-optimizations"
674 31ba0b4d François Revol
;;
675
esac
676 e1707f52 Michael Niedermayer
SHFLAGS=-nostart
677 29799f8b Diego Biurrun
# disable Linux things
678 e1707f52 Michael Niedermayer
audio_oss="no"
679 9d2a0f1c Måns Rullgård
video4linux="no"
680
video4linux2="no"
681 8aa3ee32 Max Krasnyansky
dv1394="no"
682 29799f8b Diego Biurrun
# enable BeOS things
683 dfdfa47c François Revol
audio_beos="yes"
684 b265431e Måns Rullgård
beosthreads="yes"
685 ef0bc4c9 François Revol
# no need for libm, but the inet stuff
686
# Check for BONE
687
if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then
688
extralibs="-lbind -lsocket"
689
else
690 8e72b130 Måns Rullgård
beos_netserver="yes"
691 26b35efb François Revol
extralibs="-lnet"
692 ef0bc4c9 François Revol
fi ;;
693 4baca069 Philip Gladstone
SunOS)
694 9d2a0f1c Måns Rullgård
video4linux="no"
695
video4linux2="no"
696 4baca069 Philip Gladstone
audio_oss="no"
697 8aa3ee32 Max Krasnyansky
dv1394="no"
698 4baca069 Philip Gladstone
make="gmake"
699 e89b8b0a Diego Biurrun
FFLDFLAGS=""
700 c536cb09 Diego Biurrun
FFSERVERLDFLAGS=""
701 813457e5 Måns Rullgård
SHFLAGS="-shared -Wl,-h,\$@"
702 30a3e5d4 Nigel Pearson
add_extralibs "-lsocket -lnsl"
703 4baca069 Philip Gladstone
;;
704 b7aa4a59 Steven M. Schultz
NetBSD)
705 9d2a0f1c Måns Rullgård
video4linux="no"
706
video4linux2="no"
707 6beefa40 Michael Niedermayer
bktr="yes"
708 b7aa4a59 Steven M. Schultz
audio_oss="yes"
709
dv1394="no"
710
make="gmake"
711 30a3e5d4 Nigel Pearson
add_extralibs "-lossaudio"
712 b7aa4a59 Steven M. Schultz
;;
713 8c802695 Jacob Meuser
OpenBSD)
714 9d2a0f1c Måns Rullgård
video4linux="no"
715
video4linux2="no"
716 6beefa40 Michael Niedermayer
bktr="yes"
717 8c802695 Jacob Meuser
audio_oss="yes"
718
dv1394="no"
719 8d0ba041 Måns Rullgård
need_memalign="no"
720 8c802695 Jacob Meuser
make="gmake"
721 80581e98 Michael Niedermayer
LIBOBJFLAGS="\$(PIC)"
722 a1309f8f Diego Biurrun
LDCONFIG="ldconfig -m \$(shlibdir)"
723 8d0ba041 Måns Rullgård
SHFLAGS='-shared'
724
SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF).$(LIBVERSION)'
725
SLIBNAME_WITH_VERSION='$(SLIBNAME)'
726
SLIBNAME_WITH_MAJOR='$(SLIBNAME)'
727 30a3e5d4 Nigel Pearson
add_extralibs "-lossaudio"
728 8c802695 Jacob Meuser
;;
729 9c938e77 Philip Gladstone
FreeBSD)
730 9d2a0f1c Måns Rullgård
video4linux="no"
731
video4linux2="no"
732 6beefa40 Michael Niedermayer
bktr="yes"
733 9c938e77 Philip Gladstone
audio_oss="yes"
734 8aa3ee32 Max Krasnyansky
dv1394="no"
735 9c938e77 Philip Gladstone
make="gmake"
736 5d323602 Måns Rullgård
need_memalign="no"
737 30a3e5d4 Nigel Pearson
add_cflags "-pthread"
738 9c938e77 Philip Gladstone
;;
739 38f0d3ce Diego Biurrun
GNU/kFreeBSD)
740 9d2a0f1c Måns Rullgård
video4linux="no"
741
video4linux2="no"
742 38f0d3ce Diego Biurrun
bktr="yes"
743
audio_oss="yes"
744
dv1394="no"
745 30a3e5d4 Nigel Pearson
add_cflags "-pthread"
746 38f0d3ce Diego Biurrun
;;
747 4a908fbc Alex Beregszaszi
BSD/OS)
748 9d2a0f1c Måns Rullgård
video4linux="no"
749
video4linux2="no"
750 6beefa40 Michael Niedermayer
bktr="yes"
751 6063bce7 Fabrice Bellard
audio_oss="yes"
752 8aa3ee32 Max Krasnyansky
dv1394="no"
753 4a908fbc Alex Beregszaszi
extralibs="-lpoll -lgnugetopt -lm"
754
make="gmake"
755 1db68540 Steven M. Schultz
strip="strip -d"
756
installstrip=""
757 4a908fbc Alex Beregszaszi
;;
758 90cee0c3 Michael Niedermayer
Darwin)
759 a43bd1d7 Heliodoro Tammaro
cc="cc"
760 9d2a0f1c Måns Rullgård
video4linux="no"
761
video4linux2="no"
762 90cee0c3 Michael Niedermayer
audio_oss="no"
763 8aa3ee32 Max Krasnyansky
dv1394="no"
764 5d323602 Måns Rullgård
need_memalign="no"
765 79cc11b3 Diego Biurrun
SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(shlibdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION) -Wl,-read_only_relocs,suppress"
766 408382a4 Diego Biurrun
VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(shlibdir)/vhook/$@'
767 90cee0c3 Michael Niedermayer
extralibs=""
768 47930f09 Philip Gladstone
strip="strip -x"
769 da186ae2 Steven M. Schultz
installstrip=""
770 e89b8b0a Diego Biurrun
FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
771 4e159595 Diego Biurrun
SLIBSUF=".dylib"
772 d0c2abb1 Måns Rullgård
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME).$(LIBVERSION)$(SLIBSUF)'
773 f3b60109 Diego Biurrun
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)'
774 c536cb09 Diego Biurrun
FFSERVERLDFLAGS=-Wl,-bind_at_load
775 90cee0c3 Michael Niedermayer
;;
776 732d9245 Bill Eldridge
MINGW32*)
777 951bf3e6 Fabrice Bellard
# Note: the rest of the mingw32 config is done afterwards as mingw32
778 29799f8b Diego Biurrun
# can be forced on the command line for Linux cross compilation.
779 732d9245 Bill Eldridge
mingw32="yes"
780
;;
781 3f027ca7 Felix Bünemann
CYGWIN*)
782 b2828252 Diego Biurrun
targetos=CYGWIN
783 6bc0e1cf Diego Biurrun
shlibdir="$bindir"
784 9d2a0f1c Måns Rullgård
video4linux="no"
785
video4linux2="no"
786 3f027ca7 Felix Bünemann
audio_oss="yes"
787 8aa3ee32 Max Krasnyansky
dv1394="no"
788 07a1b05e Diego Biurrun
VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil'
789 fbb9d104 Víctor Paesa
VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
790 3f027ca7 Felix Bünemann
extralibs=""
791 487c2fad Michael Niedermayer
EXESUF=".exe"
792 4581fdff Víctor Paesa
SLIBPREF="cyg"
793
SLIBSUF=".dll"
794
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
795
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
796
SHFLAGS='-shared -Wl,--out-implib=lib$(NAME).dll.a'
797 3f027ca7 Felix Bünemann
;;
798 b55e4ef4 Philip Gladstone
Linux)
799 e240ee67 Luca Barbato
LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS"
800 b55e4ef4 Philip Gladstone
;;
801 99614dd4 Michel Bardiaux
IRIX*)
802 b2828252 Diego Biurrun
targetos=IRIX
803 99614dd4 Michel Bardiaux
ranlib="echo ignoring ranlib"
804 9d2a0f1c Måns Rullgård
video4linux="no"
805
video4linux2="no"
806 99614dd4 Michel Bardiaux
audio_oss="no"
807
make="gmake"
808
;;
809 f3ec2d46 Slavik Gnatenko
OS/2)
810
TMPE=$TMPE".exe"
811 3ca4b654 Michael Niedermayer
ar="emxomfar -p128"
812 69db4e10 Slavik Gnatenko
ranlib="echo ignoring ranlib"
813
strip="echo ignoring strip"
814 30a3e5d4 Nigel Pearson
add_cflags "-Zomf"
815 e89b8b0a Diego Biurrun
FFLDFLAGS="-Zomf -Zstack 16384 -s"
816 3ca4b654 Michael Niedermayer
SHFLAGS="-Zdll -Zomf"
817 c536cb09 Diego Biurrun
FFSERVERLDFLAGS=""
818 f3ec2d46 Slavik Gnatenko
LIBPREF=""
819
LIBSUF=".lib"
820
SLIBPREF=""
821
SLIBSUF=".dll"
822 951bf3e6 Fabrice Bellard
EXESUF=".exe"
823 f3ec2d46 Slavik Gnatenko
extralibs=""
824 c99dd233 j@v2v.cc
pkg_requires=""
825 9d2a0f1c Måns Rullgård
video4linux="no"
826
video4linux2="no"
827 f3ec2d46 Slavik Gnatenko
audio_oss="no"
828 8aa3ee32 Max Krasnyansky
dv1394="no"
829 f3ec2d46 Slavik Gnatenko
ffserver="no"
830 3ca4b654 Michael Niedermayer
vhook="no"
831 f3ec2d46 Slavik Gnatenko
os2="yes"
832 b265431e Måns Rullgård
os2threads="yes"
833 f3ec2d46 Slavik Gnatenko
;;
834 b2828252 Diego Biurrun
*)
835
targetos="${targetos}-UNKNOWN"
836
;;
837 ef0bc4c9 François Revol
esac
838 de6d9b64 Fabrice Bellard
839 0f3cb305 Fabrice Bellard
# find source path
840 997baf01 Måns Rullgård
source_path="`dirname \"$0\"`"
841 0f3cb305 Fabrice Bellard
source_path_used="yes"
842
if test -z "$source_path" -o "$source_path" = "." ; then
843 997baf01 Måns Rullgård
    source_path="`pwd`"
844 0f3cb305 Fabrice Bellard
    source_path_used="no"
845 e7a4dafb Måns Rullgård
else
846
    source_path="`cd \"$source_path\"; pwd`"
847 997baf01 Måns Rullgård
    echo "$source_path" | grep -q '[[:blank:]]' &&
848
      die "Out of tree builds are impossible with whitespace in source path."
849 de6d9b64 Fabrice Bellard
fi
850
851 7d6ed4aa Måns Rullgård
if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
852
    show_help
853
fi
854
855 f255e0ab Michel Bardiaux
FFMPEG_CONFIGURATION=" "
856
for opt do
857
  FFMPEG_CONFIGURATION="$FFMPEG_CONFIGURATION""$opt "
858
done
859
860 f3902026 Aurelien Jacobs
ENCODER_LIST=`sed -n 's/^[^#]*ENC.*, *\(.*\)).*/\1_encoder/p' "$source_path/libavcodec/allcodecs.c"`
861
DECODER_LIST=`sed -n 's/^[^#]*DEC.*, *\(.*\)).*/\1_decoder/p' "$source_path/libavcodec/allcodecs.c"`
862
PARSER_LIST=`sed -n 's/^[^#]*PARSER.*, *\(.*\)).*/\1_parser/p' "$source_path/libavcodec/allcodecs.c"`
863 5b9b3b68 Aurelien Jacobs
MUXER_LIST=`sed -n 's/^[^#]*_MUX.*, *\(.*\)).*/\1_muxer/p' "$source_path/libavformat/allformats.c"`
864
DEMUXER_LIST=`sed -n 's/^[^#]*DEMUX.*, *\(.*\)).*/\1_demuxer/p' "$source_path/libavformat/allformats.c"`
865 009cf97d Michael Niedermayer
866 a8d04fba Måns Rullgård
enable $ENCODER_LIST $DECODER_LIST $PARSER_LIST $MUXER_LIST $DEMUXER_LIST
867
868 de6d9b64 Fabrice Bellard
for opt do
869 fce53524 Måns Rullgård
  optval="${opt#*=}"
870 de6d9b64 Fabrice Bellard
  case "$opt" in
871 2ba042a7 Måns Rullgård
  --log)
872
  ;;
873 fce53524 Måns Rullgård
  --log=*) logging="$optval"
874 57bd82d4 Måns Rullgård
  ;;
875 e48dc873 Ramiro Polla
  --prefix=*) PREFIX="$optval"
876 de6d9b64 Fabrice Bellard
  ;;
877 e48dc873 Ramiro Polla
  --libdir=*) libdir="$optval"
878 cc973ecb Luca Barbato
  ;;
879 84c22efd Diego Biurrun
  --shlibdir=*) shlibdir="$optval"
880
  ;;
881 fce53524 Måns Rullgård
  --incdir=*) incdir="$optval"
882 1d67a1d4 Diego Biurrun
  ;;
883 fce53524 Måns Rullgård
  --mandir=*) mandir="$optval"
884 23a65308 Fabrice Bellard
  ;;
885 fce53524 Måns Rullgård
  --source-path=*) source_path="$optval"
886 0f3cb305 Fabrice Bellard
  ;;
887 fce53524 Måns Rullgård
  --cross-prefix=*) cross_prefix="$optval"
888 0f3cb305 Fabrice Bellard
  ;;
889 fac252f9 Måns Rullgård
  --cross-compile) cross_compile=yes
890
  ;;
891 fce53524 Måns Rullgård
  --cc=*) cc="$optval"
892 de6d9b64 Fabrice Bellard
  ;;
893 fce53524 Måns Rullgård
  --make=*) make="$optval"
894 4a908fbc Alex Beregszaszi
  ;;
895 30a3e5d4 Nigel Pearson
  --extra-cflags=*) add_cflags "$optval"
896 0f3cb305 Fabrice Bellard
  ;;
897 28d8e661 Diego Biurrun
  --extra-ldflags=*) add_ldflags "$optval"
898 0f3cb305 Fabrice Bellard
  ;;
899 28d8e661 Diego Biurrun
  --extra-libs=*) add_extralibs "$optval"
900 0f3cb305 Fabrice Bellard
  ;;
901 fce53524 Måns Rullgård
  --build-suffix=*) BUILDSUF="$optval"
902 eb94aca9 Charles Yates
  ;;
903 cc6a90dd Guillaume Poirier
  --arch=*) arch="$optval"
904 de6d9b64 Fabrice Bellard
  ;;
905 38d0a8aa Guillaume Poirier
  --cpu=*) cpu="$optval"
906 a4adb608 Michael Niedermayer
  ;;
907 e45a2872 Romain Dolbeau
  --powerpc-perf-enable) powerpc_perf="yes"
908
  ;;
909 de6d9b64 Fabrice Bellard
  --disable-mmx) mmx="no"
910
  ;;
911 1839e854 Siarhei Siamashka
  --disable-armv5te) armv5te="no"
912
  ;;
913 eba9ae3c Gildas Bazin
  --disable-iwmmxt) iwmmxt="no"
914
  ;;
915 ab6c65f6 Brian Foley
  --disable-altivec) altivec="no"
916
  ;;
917 de6d9b64 Fabrice Bellard
  --enable-gprof) gprof="yes"
918
  ;;
919 9d2a0f1c Måns Rullgård
  --disable-v4l) video4linux="no"
920 5cbcf02c Fabrice Bellard
  ;;
921 9d2a0f1c Måns Rullgård
  --disable-v4l2) video4linux2="no"
922 0a7b514f Luca Abeni
  ;;
923 6beefa40 Michael Niedermayer
  --disable-bktr) bktr="no"
924
  ;;
925 5cbcf02c Fabrice Bellard
  --disable-audio-oss) audio_oss="no"
926
  ;;
927 dfdfa47c François Revol
  --disable-audio-beos) audio_beos="no"
928
  ;;
929 8aa3ee32 Max Krasnyansky
  --disable-dv1394) dv1394="no"
930
  ;;
931 ffc0ef96 Luca Abeni
  --disable-network) network="no"; ffserver="no"
932 5cbcf02c Fabrice Bellard
  ;;
933 0c7bb0e5 Luca Barbato
  --disable-ipv6) ipv6="no";
934
  ;;
935 0147f198 François Revol
  --disable-zlib) zlib="no"
936
  ;;
937 f8904fd9 Diego Biurrun
  --enable-a52) liba52="yes"
938 6ed7422a Fabrice Bellard
  ;;
939 f8904fd9 Diego Biurrun
  --enable-a52bin) liba52bin="yes"
940 57514323 Zdenek Kabelac
  ;;
941 3ffab361 Diego Biurrun
  --enable-dts) libdts="yes"
942 23c99253 Michael Niedermayer
  ;;
943 ba9261e5 Michael Niedermayer
  --enable-pp) pp="yes"
944 bba9b16c Michael Niedermayer
  ;;
945 bb4c2140 Michael Niedermayer
  --enable-libgsm) libgsm="yes"
946
  ;;
947 6ebe07fb Diego Biurrun
  --enable-mp3lame) libmp3lame="yes"
948 a6741398 Juanjo
  ;;
949 f956e129 Oded Shimon
  --enable-libnut) libnut="yes"
950
  ;;
951 9146ca37 Måns Rullgård
  --enable-libogg) libogg="yes"
952 c99dd233 j@v2v.cc
    pkg_requires="$pkg_requires ogg >= 1.1"
953 5c5dea3f Nilesh Bansal
  ;;
954 be74741c Måns Rullgård
  --enable-vorbis) libvorbis="yes"
955 c99dd233 j@v2v.cc
    pkg_requires="$pkg_requires vorbis vorbisenc"
956 81e0d0b4 Mark Hills
  ;;
957 2eed5a46 Diego Biurrun
  --enable-faad) libfaad="yes"
958 445ad18d Zdenek Kabelac
  ;;
959 2eed5a46 Diego Biurrun
  --enable-faadbin) libfaadbin="yes"
960 445ad18d Zdenek Kabelac
  ;;
961 2eed5a46 Diego Biurrun
  --enable-faac) libfaac="yes"
962 29d48296 Michael Niedermayer
  ;;
963 1ddadfa9 Adam Thayer
  --enable-xvid) xvid="yes"
964
  ;;
965 c99dd233 j@v2v.cc
  --enable-x264) x264="yes"
966 6662ec29 Michael Niedermayer
  ;;
967 8ac17293 Steve L'Homme
  --enable-avisynth) avisynth="yes";
968
  ;;
969 56a059ac Diego Biurrun
  --enable-x11grab) x11grab="yes";
970
  ;;
971 f02be79d Roman Shaposhnik
  --enable-dc1394) dc1394="yes"
972 c99dd233 j@v2v.cc
    pkg_requires="$pkg_requires libraw1394"
973 f02be79d Roman Shaposhnik
  ;;
974 68892110 Philip Gladstone
  --disable-vhook) vhook="no"
975
  ;;
976 732d9245 Bill Eldridge
  --enable-mingw32) mingw32="yes"
977
  ;;
978 860391a5 Måns Rullgård
  --enable-mingwce) wince="yes"
979 ac44871c Gildas Bazin
  ;;
980 320d060a Diego Biurrun
  --enable-static) lstatic="yes"
981
  ;;
982
  --disable-static) lstatic="no"
983
  ;;
984 83286d2a Zdenek Kabelac
  --enable-shared) lshared="yes"
985 0319c531 Nick Kurshev
  ;;
986 320d060a Diego Biurrun
  --disable-shared) lshared="no"
987
  ;;
988 cddf3f45 Glenn Maynard
  --disable-debug) debug="no"
989
  ;;
990
  --disable-opts) optimize="no"
991
  ;;
992 78fcba8f Måns Rullgård
  --enable-extra-warnings) extrawarnings="yes"
993
  ;;
994 1eb2212e Fabrice Bellard
  --disable-mpegaudio-hp) mpegaudio_hp="no"
995
  ;;
996 04f46ced Gildas Bazin
  --disable-protocols) protocols="no"; network="no"; ffserver="no"
997
  ;;
998 786b30af Diego Biurrun
  --disable-ffmpeg) ffmpeg="no"
999
  ;;
1000 8154d2e0 Fabrice Bellard
  --disable-ffserver) ffserver="no"
1001
  ;;
1002 a86b921c Fabrice Bellard
  --disable-ffplay) ffplay="no"
1003
  ;;
1004 cddf3f45 Glenn Maynard
  --enable-small) optimize="small"
1005 553a6284 Michael Niedermayer
  ;;
1006 60827a1a Diego Biurrun
  --enable-amr_nb) amr="yes"; amr_nb="yes"; amr_nb_fixed="no"
1007 891f64b3 joca@rixmail.se
  ;;
1008 60827a1a Diego Biurrun
  --enable-amr_nb-fixed) amr="yes"; amr_nb_fixed="yes"; amr_nb="no"
1009 bc634f6f Zdenek Kabelac
  ;;
1010 60827a1a Diego Biurrun
  --enable-amr_wb) amr="yes"; amr_wb="yes"
1011 115329f1 Diego Biurrun
  ;;
1012 60827a1a Diego Biurrun
  --enable-amr_if2) amr="yes"; amr_if2="yes"
1013 2a515c08 Torsten Martinsen
  ;;
1014 bde24d6e Måns Rullgård
  --enable-sunmlib) mlib="yes"
1015 f80f7964 Roman Shaposhnik
  ;;
1016 9c3d33d6 Michael Niedermayer
  --enable-pthreads) pthreads="yes"
1017
  ;;
1018 eb113804 Diego Biurrun
  --enable-w32threads) w32threads="yes"
1019
  ;;
1020 790c9ca7 Luca Abeni
  --enable-swscaler) swscaler="yes"
1021
  ;;
1022 b2e3c528 Michael Niedermayer
  --enable-gpl) gpl="yes"
1023
  ;;
1024 9ddbcae6 Måns Rullgård
  --enable-memalign-hack) memalign_hack="yes"
1025 da9b170c Michael Niedermayer
  ;;
1026 65d1bea2 Michel Bardiaux
  --disable-strip) dostrip="no"
1027
  ;;
1028 a8d04fba Måns Rullgård
  --enable-encoder=*) enable ${optval}_encoder
1029 009cf97d Michael Niedermayer
  ;;
1030 a8d04fba Måns Rullgård
  --enable-decoder=*) enable ${optval}_decoder
1031 f593b273 Diego Biurrun
  ;;
1032 a8d04fba Måns Rullgård
  --disable-encoder=*) disable ${optval}_encoder
1033 f593b273 Diego Biurrun
  ;;
1034 a8d04fba Måns Rullgård
  --disable-decoder=*) disable ${optval}_decoder
1035 009cf97d Michael Niedermayer
  ;;
1036 a8d04fba Måns Rullgård
  --disable-encoders) disable $ENCODER_LIST
1037 009cf97d Michael Niedermayer
  ;;
1038 a8d04fba Måns Rullgård
  --disable-decoders) disable $DECODER_LIST
1039 b4cad537 Emiliano Parasassi
  ;;
1040 a8d04fba Måns Rullgård
  --enable-muxer=*) enable ${optval}_muxer
1041 a9e35095 Diego Biurrun
  ;;
1042 a8d04fba Måns Rullgård
  --disable-muxer=*) disable ${optval}_muxer
1043 ff70e601 Måns Rullgård
  ;;
1044 a8d04fba Måns Rullgård
  --disable-muxers) disable $MUXER_LIST; ffserver="no"
1045 ff70e601 Måns Rullgård
  ;;
1046 a8d04fba Måns Rullgård
  --enable-demuxer=*) enable ${optval}_demuxer
1047 ff70e601 Måns Rullgård
  ;;
1048 a8d04fba Måns Rullgård
  --disable-demuxer=*) disable ${optval}_demuxer
1049 ff70e601 Måns Rullgård
  ;;
1050 a8d04fba Måns Rullgård
  --disable-demuxers) disable $DEMUXER_LIST
1051 a9e35095 Diego Biurrun
  ;;
1052 a8d04fba Måns Rullgård
  --enable-parser=*) enable ${optval}_parser
1053 af9e7d18 Måns Rullgård
  ;;
1054 a8d04fba Måns Rullgård
  --disable-parser=*) disable ${optval}_parser
1055 af9e7d18 Måns Rullgård
  ;;
1056 a8d04fba Måns Rullgård
  --disable-parsers) disable $PARSER_LIST
1057 af9e7d18 Måns Rullgård
  ;;
1058 74c53c2d Måns Rullgård
  --help) show_help
1059
  ;;
1060 b34c63f7 Diego Biurrun
  *)
1061
  echo "Unknown option \"$opt\"."
1062
  echo "See $0 --help for available options."
1063
  exit 1
1064
  ;;
1065 de6d9b64 Fabrice Bellard
  esac
1066
done
1067
1068 720c69da Måns Rullgård
if test "$logging" != no; then
1069
    test "$logging" = yes || logfile="$logging"
1070 57bd82d4 Måns Rullgård
    echo "# $0 $@" >$logfile
1071
    set >>$logfile
1072 2ba042a7 Måns Rullgård
else
1073
    logfile=/dev/null
1074 57bd82d4 Måns Rullgård
fi
1075 e89b8b0a Diego Biurrun
1076 860391a5 Måns Rullgård
if test "$mingw32" = "yes" -o "$wince" = "yes"; then
1077 e67bcdd9 Diego Biurrun
    if test "$lshared" = "yes" && test "$lstatic" = "yes" ; then
1078
        cat <<EOF
1079
You can only build one library type at once on MinGW.
1080
Specify --disable-static --enable-shared to only build
1081
the shared libraries. To build only the static libraries
1082
you do not need to pass additional options.
1083
EOF
1084
        exit 1
1085
    fi
1086 9d2a0f1c Måns Rullgård
    video4linux="no"
1087
    video4linux2="no"
1088 e67bcdd9 Diego Biurrun
    audio_oss="no"
1089
    dv1394="no"
1090
    dc1394="no"
1091
    ffserver="no"
1092
    network="no"
1093 860391a5 Måns Rullgård
    if test "$wince" = "yes"; then
1094 e67bcdd9 Diego Biurrun
        protocols="no"
1095
    fi
1096
    SLIBPREF=""
1097
    SLIBSUF=".dll"
1098
    EXESUF=".exe"
1099 d6a07a13 Diego Biurrun
    SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
1100
    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
1101 dfeb80a5 Diego Biurrun
    SLIB_EXTRA_CMD="-lib /machine:i386 /def:\$(@:${SLIBSUF}=.def)"
1102 b6f9a421 Diego Biurrun
    SLIB_INSTALL_EXTRA_CMD="-install -m 644 \$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib) \"\$(shlibdir)/\$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib)\""
1103 a77caa4d Måns Rullgård
    SHFLAGS="-shared -Wl,--output-def,\$(@:${SLIBSUF}=.def),--out-implib,lib\$(SLIBNAME:\$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc"
1104 e67bcdd9 Diego Biurrun
fi
1105
1106 28d8e661 Diego Biurrun
# Combine FFLDFLAGS and the LDFLAGS environment variable.
1107
LDFLAGS="$FFLDFLAGS $LDFLAGS"
1108 e89b8b0a Diego Biurrun
1109 fac252f9 Måns Rullgård
test -n "$cross_prefix" && cross_compile=yes
1110 1ea46bed Måns Rullgård
cc="${cross_prefix}${cc}"
1111
ar="${cross_prefix}${ar}"
1112
ranlib="${cross_prefix}${ranlib}"
1113
strip="${cross_prefix}${strip}"
1114
1115 320d060a Diego Biurrun
# we need to build at least one lib type
1116
if test "$lstatic" = "no" && test "$lshared" = "no" ; then
1117
    cat <<EOF
1118
At least one library type must be built.
1119
Specify --enable-static to build the static libraries or --enable-shared to
1120
build the shared libraries as well. To only build the shared libraries specify
1121
--disable-static in addition to --enable-shared.
1122
EOF
1123
    exit 1;
1124
fi
1125
1126 b8bd3430 Diego Biurrun
if test "$libvorbis" = "yes" && test "$libogg" = "no"; then
1127 6cf161d2 Diego Biurrun
    die "libogg must be enabled to enable libvorbis."
1128 5c5dea3f Nilesh Bansal
fi
1129
1130 b2e3c528 Michael Niedermayer
if test "$gpl" != "yes"; then
1131 ba64106a Diego Biurrun
    if test "$pp" != "no"; then
1132 6cf161d2 Diego Biurrun
        die "The Postprocessing code is under GPL and --enable-gpl is not specified."
1133 b2e3c528 Michael Niedermayer
    fi
1134
1135 f8904fd9 Diego Biurrun
    if test "$liba52" != "no" -o "$liba52bin" != "no"; then
1136 6cf161d2 Diego Biurrun
        die "liba52 is under GPL and --enable-gpl is not specified."
1137 b2e3c528 Michael Niedermayer
    fi
1138 23c99253 Michael Niedermayer
1139 1ddadfa9 Adam Thayer
    if test "$xvid" != "no"; then
1140 6cf161d2 Diego Biurrun
        die "libxvidcore is under GPL and --enable-gpl is not specified."
1141 1ddadfa9 Adam Thayer
    fi
1142
1143 6662ec29 Michael Niedermayer
    if test "$x264" != "no"; then
1144 6cf161d2 Diego Biurrun
        die "x264 is under GPL and --enable-gpl is not specified."
1145 6662ec29 Michael Niedermayer
    fi
1146
1147 3ffab361 Diego Biurrun
    if test "$libdts" != "no"; then
1148 6cf161d2 Diego Biurrun
        die "libdts is under GPL and --enable-gpl is not specified."
1149 23c99253 Michael Niedermayer
    fi
1150 115329f1 Diego Biurrun
1151 2eed5a46 Diego Biurrun
    if test "$libfaad" != "no" -o "$libfaadbin" != "no"; then
1152 dcd479c0 Måns Rullgård
        if check_header faad.h; then
1153
            check_cc << EOF
1154 b2e3c528 Michael Niedermayer
                #include <faad.h>
1155
                #ifndef FAAD2_VERSION
1156
                ok faad1
1157
                #endif
1158
                int main( void ) { return 0; }
1159
EOF
1160 dcd479c0 Måns Rullgård
            if test $? = 0 ; then
1161 6cf161d2 Diego Biurrun
                die "FAAD2 is under GPL and --enable-gpl is not specified."
1162 b2e3c528 Michael Niedermayer
            fi
1163
        else
1164 2eed5a46 Diego Biurrun
            libfaad="no"
1165
            libfaadbin="no"
1166 29799f8b Diego Biurrun
            echo "FAAD test failed."
1167 b2e3c528 Michael Niedermayer
        fi
1168
    fi
1169 56a059ac Diego Biurrun
1170
    if test "$x11grab" != "no"; then
1171 6cf161d2 Diego Biurrun
        die "The X11 grabber is under GPL and --enable-gpl is not specified."
1172 56a059ac Diego Biurrun
    fi
1173 11c6f4a1 Luca Abeni
1174
    if test "$swscaler" != "no"; then
1175 6cf161d2 Diego Biurrun
        die "The software scaler is under GPL and --enable-gpl is not specified."
1176 11c6f4a1 Luca Abeni
    fi
1177 ebb810d9 Ramiro Polla
fi
1178 b2e3c528 Michael Niedermayer
1179 29799f8b Diego Biurrun
# compute MMX state
1180 0f3cb305 Fabrice Bellard
if test $mmx = "default"; then
1181 419b8784 Diego Biurrun
    if test $arch = "x86_32" -o $arch = "x86_64"; then
1182 0f3cb305 Fabrice Bellard
        mmx="yes"
1183
    else
1184
        mmx="no"
1185
    fi
1186
fi
1187
1188 5d323602 Måns Rullgård
test -z "$need_memalign" && need_memalign="$mmx"
1189
1190 cf9d24ad Dan Christiansen
#Darwin CC versions
1191 75388c74 Michael Niedermayer
needmdynamicnopic="no"
1192 cf9d24ad Dan Christiansen
if test $targetos = Darwin; then
1193 b2924696 Roman Shaposhnik
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
1194 30a3e5d4 Nigel Pearson
        add_cflags "-qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto"
1195 cf9d24ad Dan Christiansen
    else
1196 bb270c08 Diego Biurrun
        gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
1197
        case "$gcc_version" in
1198
            *2.95*)
1199 30a3e5d4 Nigel Pearson
                add_cflags "-no-cpp-precomp -pipe"
1200 bb270c08 Diego Biurrun
                ;;
1201
            *[34].*)
1202 30a3e5d4 Nigel Pearson
                add_cflags "-no-cpp-precomp -pipe -force_cpusubtype_ALL -Wno-sign-compare"
1203 bb270c08 Diego Biurrun
                if test "$lshared" = no; then
1204
                   needmdynamicnopic="yes"
1205
                fi
1206
                ;;
1207
            *)
1208 30a3e5d4 Nigel Pearson
                add_cflags "-no-cpp-precomp -pipe"
1209 bb270c08 Diego Biurrun
                if test "$lshared" = no; then
1210
                   needmdynamicnopic="yes"
1211
                fi
1212
                ;;
1213
        esac
1214 cf9d24ad Dan Christiansen
    fi
1215 2a1a6b64 Michael Niedermayer
fi
1216
1217
if test $optimize != "no"; then
1218
    add_cflags "-fomit-frame-pointer"
1219 cf9d24ad Dan Christiansen
fi
1220
1221 ab6c65f6 Brian Foley
# Can only do AltiVec on PowerPC
1222
if test $altivec = "default"; then
1223 cc6a90dd Guillaume Poirier
    if test $arch = "powerpc"; then
1224 ab6c65f6 Brian Foley
        altivec="yes"
1225
    else
1226
        altivec="no"
1227
    fi
1228
fi
1229
1230 a4adb608 Michael Niedermayer
# Add processor-specific flags
1231 9007f514 Romain Dolbeau
POWERPCMODE="32bits"
1232 38d0a8aa Guillaume Poirier
if test $cpu != "generic"; then
1233
    case $cpu in
1234 bb270c08 Diego Biurrun
        601|ppc601|PowerPC601)
1235 1c5d830c Guillaume Poirier
            add_cflags "-mcpu=601"
1236 bb270c08 Diego Biurrun
            if test $altivec = "yes"; then
1237
                echo "WARNING: Tuning for PPC601 but AltiVec enabled!";
1238
            fi
1239
        ;;
1240
        603*|ppc603*|PowerPC603*)
1241 1c5d830c Guillaume Poirier
            add_cflags "-mcpu=603"
1242 bb270c08 Diego Biurrun
            if test $altivec = "yes"; then
1243
                echo "WARNING: Tuning for PPC603 but AltiVec enabled!";
1244
            fi
1245
        ;;
1246
        604*|ppc604*|PowerPC604*)
1247 1c5d830c Guillaume Poirier
            add_cflags "-mcpu=604"
1248 bb270c08 Diego Biurrun
            if test $altivec = "yes"; then
1249
                echo "WARNING: Tuning for PPC604 but AltiVec enabled!";
1250
            fi
1251
        ;;
1252
        G3|g3|75*|ppc75*|PowerPC75*)
1253 1c5d830c Guillaume Poirier
            add_cflags "-mcpu=750 -mpowerpc-gfxopt"
1254 bb270c08 Diego Biurrun
            if test $altivec = "yes"; then
1255
                echo "WARNING: Tuning for PPC75x but AltiVec enabled!";
1256
            fi
1257
        ;;
1258
        G4|g4|745*|ppc745*|PowerPC745*)
1259 1c5d830c Guillaume Poirier
            add_cflags "-mcpu=7450 -mpowerpc-gfxopt"
1260 bb270c08 Diego Biurrun
            if test $altivec = "no"; then
1261
                echo "WARNING: Tuning for PPC745x but AltiVec disabled!";
1262
            fi
1263
        ;;
1264
        74*|ppc74*|PowerPC74*)
1265 1c5d830c Guillaume Poirier
            add_cflags "-mcpu=7400 -mpowerpc-gfxopt"
1266 bb270c08 Diego Biurrun
            if test $altivec = "no"; then
1267
                echo "WARNING: Tuning for PPC74xx but AltiVec disabled!";
1268
            fi
1269
        ;;
1270
        G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
1271 1c5d830c Guillaume Poirier
            add_cflags "-mcpu=970 -mpowerpc-gfxopt -mpowerpc64"
1272 bb270c08 Diego Biurrun
            if test $altivec = "no"; then
1273
                echo "WARNING: Tuning for PPC970 but AltiVec disabled!";
1274
            fi
1275 9007f514 Romain Dolbeau
            POWERPCMODE="64bits"
1276 bb270c08 Diego Biurrun
        ;;
1277 e7768fc5 Guillaume Poirier
        # targets that do NOT support conditional mov (cmov)
1278
        i[345]86|pentium|pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3)
1279 38d0a8aa Guillaume Poirier
            add_cflags "-march=$cpu"
1280 e7768fc5 Guillaume Poirier
            cmov="no"
1281
        ;;
1282
        # targets that do support conditional mov (cmov)
1283 94e4c3a3 Guillaume Poirier
        i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64|k8|opteron|athlon-fx)
1284 e7768fc5 Guillaume Poirier
            add_cflags "-march=$cpu"
1285 4c8d81fa Guillaume Poirier
            cmov="yes"
1286 94e4c3a3 Guillaume Poirier
            cmov_is_fast="yes"
1287
        ;;
1288
        # targets that do support conditional mov but on which it's slow
1289
        pentium4|prescott|nocona)
1290
            add_cflags "-march=$cpu"
1291
            cmov="yes"
1292
            cmov_is_fast="no"
1293 bb270c08 Diego Biurrun
        ;;
1294 d7b34d08 Diego Biurrun
        sparc64)
1295 1c5d830c Guillaume Poirier
            add_cflags "-mcpu=v9"
1296 d7b34d08 Diego Biurrun
        ;;
1297 bb270c08 Diego Biurrun
        *)
1298 38d0a8aa Guillaume Poirier
        echo "WARNING: Unknown CPU \"$cpu\", ignored."
1299 bb270c08 Diego Biurrun
        ;;
1300 a4adb608 Michael Niedermayer
    esac
1301
fi
1302
1303 be0d52ab Måns Rullgård
# make sure we can execute files in $TMPDIR
1304
cat >$TMPE 2>>$logfile <<EOF
1305
#! /bin/sh
1306
EOF
1307
chmod +x $TMPE >>$logfile 2>&1
1308
if ! $TMPE >>$logfile 2>&1; then
1309
    cat <<EOF
1310
Unable to create and execute files in $TMPDIR1.  Set the TMPDIR environment
1311 68300911 Diego Biurrun
variable to another directory and make sure that $TMPDIR1 is not mounted
1312
noexec.
1313 be0d52ab Måns Rullgård
EOF
1314
    die "Sanity test failed."
1315
fi
1316 0244f743 Måns Rullgård
rm $TMPE
1317 be0d52ab Måns Rullgård
1318 1a268acc Måns Rullgård
# compiler sanity check
1319
check_exec <<EOF
1320
int main(){
1321
    return 0;
1322
}
1323
EOF
1324
if test "$?" != 0; then
1325
    echo "$cc is unable to create an executable file."
1326
    if test -z "$cross_prefix" -a "$cross_compile" = no; then
1327
        echo "If $cc is a cross-compiler, use the --cross-compile option."
1328 c7ae6345 Måns Rullgård
        echo "Only do this if you know what cross compiling means."
1329 1a268acc Måns Rullgård
    fi
1330
    die "C compiler test failed."
1331
fi
1332
1333 87ea51e0 Luca Barbato
# check for assembler specific support
1334
1335 cc6a90dd Guillaume Poirier
if test $arch = "powerpc"; then
1336 87ea51e0 Luca Barbato
check_cc <<EOF && dcbzl=yes
1337
int main(void) {
1338
    register long zero = 0;
1339
    char data[1024];
1340
    asm volatile("dcbzl %0, %1" : : "b" (data), "r" (zero));
1341
return 0;
1342
}
1343
EOF
1344
fi
1345
1346 57bd82d4 Måns Rullgård
# check for SIMD availability
1347
1348 115329f1 Diego Biurrun
# AltiVec flags: The FSF version of GCC differs from the Apple version
1349 cc6a90dd Guillaume Poirier
if test $arch = "powerpc"; then
1350 b6e52719 Magnus Damm
    if test $altivec = "yes"; then
1351 b2924696 Roman Shaposhnik
        if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
1352 30a3e5d4 Nigel Pearson
            add_cflags "-faltivec"
1353 b6e52719 Magnus Damm
        else
1354 30a3e5d4 Nigel Pearson
            add_cflags "-maltivec -mabi=altivec"
1355 b6e52719 Magnus Damm
        fi
1356
    fi
1357
fi
1358
1359 0701ca7f Måns Rullgård
check_header altivec.h
1360 a9a07762 Michael Niedermayer
1361 29799f8b Diego Biurrun
# check if our compiler supports Motorola AltiVec C API
1362 ab6c65f6 Brian Foley
if test $altivec = "yes"; then
1363 6e7a01e4 Måns Rullgård
    if test $altivec_h = "yes"; then
1364 f25fc9b1 Måns Rullgård
        inc_altivec_h="#include <altivec.h>"
1365
    else
1366
        inc_altivec_h=
1367
    fi
1368
    check_cc <<EOF || altivec=no
1369 dcd479c0 Måns Rullgård
$inc_altivec_h
1370 a9a07762 Michael Niedermayer
int main(void) {
1371
    vector signed int v1, v2, v3;
1372
    v1 = vec_add(v2,v3);
1373
    return 0;
1374
}
1375
EOF
1376
fi
1377 ab6c65f6 Brian Foley
1378 854fdb51 Måns Rullgård
# check armv5te instructions support
1379 cc6a90dd Guillaume Poirier
if test $armv5te = "default" -a $arch = "armv4l"; then
1380 854fdb51 Måns Rullgård
    armv5te=no
1381
    check_cc <<EOF && armv5te=yes
1382
        int main(void) {
1383
        __asm__ __volatile__ ("qadd r0, r0, r0");
1384
        }
1385
EOF
1386
fi
1387
1388
# check iwmmxt support
1389 cc6a90dd Guillaume Poirier
if test $iwmmxt = "default" -a $arch = "armv4l"; then
1390 854fdb51 Måns Rullgård
    iwmmxt=no
1391
    check_cc <<EOF && iwmmxt=yes
1392
        int main(void) {
1393
        __asm__ __volatile__ ("wunpckelub wr6, wr4");
1394
        }
1395
EOF
1396
fi
1397
1398 29799f8b Diego Biurrun
# mmi only available on mips
1399 d46aba26 Leon van Stuivenberg
if test $mmi = "default"; then
1400 cc6a90dd Guillaume Poirier
    if test $arch = "mips"; then
1401 d46aba26 Leon van Stuivenberg
        mmi="yes"
1402
    else
1403
        mmi="no"
1404
    fi
1405
fi
1406
1407 29799f8b Diego Biurrun
# check if our compiler supports mmi
1408 57bd82d4 Måns Rullgård
enabled mmi && check_cc <<EOF || mmi="no"
1409 d46aba26 Leon van Stuivenberg
int main(void) {
1410
    __asm__ ("lq \$2, 0(\$2)");
1411
    return 0;
1412
}
1413
EOF
1414 57bd82d4 Måns Rullgård
1415
# ---
1416
# big/little-endian test
1417 fac252f9 Måns Rullgård
if test "$cross_compile" = "no"; then
1418 57bd82d4 Måns Rullgård
    check_ld <<EOF || die "endian test failed" && $TMPE && bigendian="yes"
1419 a3999908 Michael Niedermayer
#include <inttypes.h>
1420
int main(int argc, char ** argv){
1421 bb270c08 Diego Biurrun
        volatile uint32_t i=0x01234567;
1422
        return (*((uint8_t*)(&i))) == 0x67;
1423 a3999908 Michael Niedermayer
}
1424
EOF
1425 487a54d7 Fabrice Bellard
else
1426 f25fc9b1 Måns Rullgård
    # programs cannot be launched if cross compiling, so make a static guess
1427 cc6a90dd Guillaume Poirier
    if test "$arch" = "powerpc" -o "$arch" = "mips" ; then
1428 f25fc9b1 Måns Rullgård
        bigendian="yes"
1429
    fi
1430 487a54d7 Fabrice Bellard
fi
1431
1432 a3999908 Michael Niedermayer
# ---
1433 3d204385 Nick Kurshev
# check availability of some header files
1434
1435 0701ca7f Måns Rullgård
check_header malloc.h
1436
check_func memalign
1437 3d204385 Nick Kurshev
1438 5d323602 Måns Rullgård
if test "$memalign" = "no" -a "$need_memalign" = "yes" -a \
1439
        "$memalign_hack" != "yes"; then
1440 57bd82d4 Måns Rullgård
    die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
1441 8bf5d58f Michael Niedermayer
fi
1442
1443 0701ca7f Måns Rullgård
check_header byteswap.h
1444 47d23bbf Måns Rullgård
1445 0701ca7f Måns Rullgård
check_func inet_aton
1446
check_func localtime_r
1447 57bd82d4 Måns Rullgård
enabled zlib && check_lib zlib.h zlibVersion -lz || zlib="no"
1448
1449
# check for some common methods of building with pthread support
1450
# do this before the optional library checks as some of them require pthreads
1451
if enabled pthreads; then
1452 9e7fd101 Måns Rullgård
    if check_func pthread_create; then
1453
        :
1454
    elif check_func pthread_create -pthread; then
1455
        add_cflags -pthread
1456
        add_ldflags -pthread
1457
    elif check_func pthread_create -pthreads; then
1458
        add_cflags -pthreads
1459
        add_ldflags -pthreads
1460
    elif ! check_lib pthread.h pthread_create -lpthread; then
1461
        die "ERROR: can't find pthreads library"
1462
    fi
1463 57bd82d4 Måns Rullgård
fi
1464
1465
# these are off by default, so fail if requested and not available
1466 3ffab361 Diego Biurrun
enabled libdts  && require libdts dts.h dts_init -ldts -lm
1467 57bd82d4 Måns Rullgård
enabled libgsm  && require libgsm gsm.h gsm_create -lgsm
1468 6ebe07fb Diego Biurrun
enabled libmp3lame && require LAME lame/lame.h lame_init -lmp3lame -lm
1469 be74741c Måns Rullgård
enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc -logg
1470 aedf11f8 Måns Rullgård
enabled libogg  && require libogg ogg/ogg.h ogg_sync_init -logg
1471 4d8aa1c3 Oded Shimon
enabled libnut  && require libnut libnut.h nut_demuxer_init -lnut
1472 57bd82d4 Måns Rullgård
enabled xvid    && require XviD xvid.h xvid_global -lxvidcore
1473
enabled x264    && require x264 x264.h x264_encoder_open -lx264
1474
enabled dc1394  && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394
1475 bde24d6e Måns Rullgård
enabled mlib    && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
1476 e0f80bd7 Reimar Döffinger
1477 2eed5a46 Diego Biurrun
# Ugh, libfaac uses stdcall calling convention on win32 so we can't use
1478 3b9bee88 Måns Rullgård
# the generic test functions
1479 2eed5a46 Diego Biurrun
if enabled libfaac; then
1480 3b9bee88 Måns Rullgård
    save_flags
1481
    temp_extralibs -lfaac
1482
    check_ld <<EOF && add_extralibs -lfaac || die "ERROR: libfaac not found"
1483
#include <stdint.h>
1484
#include <faac.h>
1485
int main(){
1486
    char *id, *cpr;
1487
    faacEncGetVersion(&id, &cpr);
1488
    return 0;
1489
}
1490
EOF
1491
    restore_flags
1492
fi
1493
1494 87f1c97e Måns Rullgård
# Ugh, recent faad2 versions have renamed all functions and #define the
1495
# old names in faad.h.  Generic tests won't work.
1496 2eed5a46 Diego Biurrun
if enabled libfaad; then
1497 87f1c97e Måns Rullgård
    save_flags
1498
    temp_extralibs -lfaad
1499
    check_ld <<EOF && add_extralibs -lfaad || die "ERROR: libfaad not found"
1500
#include <faad.h>
1501
int main(){
1502
    faacDecOpen();
1503
    return 0;
1504
}
1505
EOF
1506
    restore_flags
1507
fi
1508
1509 8ac17293 Steve L'Homme
# Ugh, avisynth uses WINAPI calls. Generic tests won't work.
1510
if enabled avisynth; then
1511
    save_flags
1512
    temp_extralibs -lvfw32
1513
    check_ld <<EOF && add_extralibs -lvfw32 || die "ERROR: vfw32 not found"
1514
#include <windows.h>
1515
#include <vfw.h>
1516
int main(){
1517
    AVIFileInit();
1518
    return 0;
1519
}
1520
EOF
1521
    restore_flags
1522
fi
1523
1524
1525 95e2ce4a Michael Niedermayer
# test for lrintf in math.h
1526 fc2b267f Måns Rullgård
check_exec <<EOF && lrintf=yes || lrintf=no
1527 95e2ce4a Michael Niedermayer
#define _ISOC9X_SOURCE  1
1528
#include <math.h>
1529
int main( void ) { return (lrintf(3.999f) > 0)?0:1; }
1530
EOF
1531
1532 c13e1abd Falk Hüffner
_restrict=
1533
for restrict_keyword in restrict __restrict__ __restrict; do
1534 57bd82d4 Måns Rullgård
    check_cc <<EOF && _restrict=$restrict_keyword && break
1535 dcd479c0 Måns Rullgård
void foo(char * $restrict_keyword p);
1536
EOF
1537 c13e1abd Falk Hüffner
done
1538
1539 a8721c09 Fabrice Bellard
# dlopen/dlfcn.h probing
1540
1541 0701ca7f Måns Rullgård
check_header dlfcn.h
1542 a8721c09 Fabrice Bellard
1543 dcd479c0 Måns Rullgård
if check_func dlopen; then
1544
    ldl=
1545 0701ca7f Måns Rullgård
elif check_func dlopen -ldl; then
1546
    ldl=-ldl
1547 a8721c09 Fabrice Bellard
fi
1548
1549 f25fc9b1 Måns Rullgård
if test "$vhook" = "default"; then
1550
    vhook="$dlopen"
1551 a8721c09 Fabrice Bellard
fi
1552
1553 2eed5a46 Diego Biurrun
if enabled_any vhook liba52bin libfaadbin; then
1554 57bd82d4 Måns Rullgård
    add_extralibs $ldl
1555 bfd2edeb Michael Niedermayer
fi
1556
1557 fbb9d104 Víctor Paesa
if test "$targetos" = "CYGWIN" -a "$lstatic" = "yes" ; then
1558
    vhook="no"
1559
    echo
1560
    echo "At the moment vhooks don't work on Cygwin static builds."
1561
    echo "Patches welcome."
1562
    echo
1563
fi
1564
1565 8d923001 Måns Rullgård
if enabled vhook; then
1566
    check_ldflags -rdynamic
1567
    check_ldflags -export-dynamic
1568
fi
1569 bfd2edeb Michael Niedermayer
1570 9464f2b8 Diego Biurrun
if enabled audio_beos; then
1571
    add_extralibs "-lmedia -lbe"
1572
fi
1573
1574 a86b921c Fabrice Bellard
##########################################
1575 29799f8b Diego Biurrun
# imlib check
1576 a86b921c Fabrice Bellard
1577 dcd479c0 Måns Rullgård
temp_extralibs -lImlib2
1578
check_ld <<EOF && imlib2=yes || imlib2=no
1579 a8721c09 Fabrice Bellard
#include <X11/Xlib.h>
1580
#include <Imlib2.h>
1581
int main( void ) { return (int) imlib_load_font("foo"); }
1582
EOF
1583 dcd479c0 Måns Rullgård
restore_flags
1584 52b41d7f Fabrice Bellard
1585 a86b921c Fabrice Bellard
##########################################
1586 29799f8b Diego Biurrun
# FreeType check
1587 a86b921c Fabrice Bellard
1588 04511d53 Philip Gladstone
freetype2=no
1589 e2a5fd20 Michael Niedermayer
if test "x$targetos" != "xBeOS"; then
1590 e2a3cd59 Roman Shaposhnik
  if (freetype-config --version) >/dev/null 2>&1 ; then
1591 dcd479c0 Måns Rullgård
      temp_cflags `freetype-config --cflags`
1592
      temp_extralibs `freetype-config --libs`
1593
      check_ld <<EOF && freetype2=yes
1594
#include <ft2build.h>
1595
int main( void ) { return (int) FT_Init_FreeType(0); }
1596
EOF
1597
      restore_flags
1598 dee076fc François Revol
  fi
1599 04511d53 Philip Gladstone
fi
1600
1601 a86b921c Fabrice Bellard
##########################################
1602 29799f8b Diego Biurrun
# SDL check
1603 a86b921c Fabrice Bellard
1604
sdl_too_old=no
1605
sdl=no
1606 6a1a892f Frantisek Dvorak
SDL_CONFIG="${cross_prefix}sdl-config"
1607
if ("${SDL_CONFIG}" --version) >/dev/null 2>&1 ; then
1608 dcd479c0 Måns Rullgård
    temp_cflags `"${SDL_CONFIG}" --cflags`
1609
    temp_extralibs `"${SDL_CONFIG}" --libs`
1610
    check_ld <<EOF
1611
#include <SDL.h>
1612
#undef main /* We don't want SDL to override our main() */
1613
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
1614
EOF
1615
    if test $? = 0; then
1616
        _sdlversion=`"${SDL_CONFIG}" --version | sed 's/[^0-9]//g'`
1617 29f3b38a Måns Rullgård
        if test "$_sdlversion" -lt 121 ; then
1618 dcd479c0 Måns Rullgård
            sdl_too_old=yes
1619
        else
1620
            sdl=yes
1621 29f3b38a Måns Rullgård
            check_cc <<EOF && sdl_video_size=yes || sdl_video_size=no
1622
#include <SDL.h>
1623
int main(void){
1624
    const SDL_VideoInfo *vi = SDL_GetVideoInfo();
1625
    int w = vi->current_w;
1626
    return 0;
1627
}
1628
EOF
1629 dcd479c0 Måns Rullgård
        fi
1630
    fi
1631 29f3b38a Måns Rullgård
    restore_flags
1632 c3f6b472 Michael Niedermayer
fi
1633 a86b921c Fabrice Bellard
1634 57bd82d4 Måns Rullgård
enabled sdl || ffplay=no
1635
1636 146ea952 Nicolas Boos
##########################################
1637 29799f8b Diego Biurrun
# texi2html check
1638 146ea952 Nicolas Boos
1639
texi2html=no
1640 e2a3cd59 Roman Shaposhnik
if (texi2html -version) >/dev/null 2>&1; then
1641 146ea952 Nicolas Boos
texi2html=yes
1642
fi
1643
1644 7a91333f Hans Zandbelt
##########################################
1645 29799f8b Diego Biurrun
# IPv6 check
1646 7a91333f Hans Zandbelt
1647 0c7bb0e5 Luca Barbato
enabled network && enabled ipv6 && check_ld <<EOF && ipv6=yes || ipv6=no
1648 7a91333f Hans Zandbelt
#include <sys/types.h>
1649
#include <sys/socket.h>
1650
#include <netinet/in.h>
1651
#include <netdb.h>
1652
int main( void ) {
1653
  struct sockaddr_storage saddr;
1654
  struct ipv6_mreq mreq6;
1655
  getaddrinfo(0,0,0,0);
1656
  getnameinfo(0,0,0,0,0,0,0);
1657 12fe88b4 Dan Villiom Podlaski Christiansen
  IN6_IS_ADDR_MULTICAST((const struct in6_addr *)0);
1658 7a91333f Hans Zandbelt
}
1659
EOF
1660
1661 47f38850 Luca Abeni
# check for video4linux2 --- V4L2_PIX_FMT_YUV420
1662 9d2a0f1c Måns Rullgård
enabled video4linux2 && check_cc <<EOF || video4linux2="no"
1663 84fe9963 Alex Beregszaszi
#include <sys/time.h>
1664 f743a062 Luca Abeni
#include <asm/types.h>
1665
#include <linux/videodev2.h>
1666 47f38850 Luca Abeni
int dummy = V4L2_PIX_FMT_YUV420;
1667 490c189b Luca Abeni
struct v4l2_buffer dummy1;
1668 47f38850 Luca Abeni
EOF
1669
1670 f8aa696f Diego Biurrun
# check for ioctl_meteor.h, ioctl_bt848.h and alternatives
1671
if enabled bktr; then
1672
    check_header dev/bktr/ioctl_meteor.h
1673
    check_header dev/bktr/ioctl_bt848.h
1674
1675
    check_header machine/ioctl_meteor.h
1676
    check_header machine/ioctl_bt848.h
1677
1678
    check_header dev/video/meteor/ioctl_meteor.h
1679
    check_header dev/video/bktr/ioctl_bt848.h
1680
1681
    check_header dev/ic/bt8xx.h
1682
fi
1683
1684 f58f4ce1 Guillaume Poirier
# Deal with the x11 frame grabber
1685 56a059ac Diego Biurrun
enabled x11grab                         &&
1686 f58f4ce1 Guillaume Poirier
enabled gpl                             &&
1687
enabled x11_grab_device_demuxer         &&
1688
check_header X11/Xlib.h                 &&
1689
check_header X11/extensions/XShm.h      &&
1690
check_func XOpenDisplay -lX11           &&
1691
check_func XShmCreateImage -lX11 -lXext &&
1692
add_extralibs -lX11 -lXext              ||
1693
disable x11_grab_device_demuxer
1694
1695 57bd82d4 Måns Rullgård
enabled debug && add_cflags -g
1696
1697
# add some useful compiler flags if supported
1698
check_cflags -Wdeclaration-after-statement
1699 dcd479c0 Måns Rullgård
check_cflags -Wall
1700
check_cflags -Wno-switch
1701 c07bd6a9 Michael Niedermayer
check_cflags -Wdisabled-optimization
1702
check_cflags -Wpointer-arith
1703
check_cflags -Wredundant-decls
1704 78fcba8f Måns Rullgård
enabled extrawarnings && check_cflags -Winline
1705 cf9d24ad Dan Christiansen
1706 57bd82d4 Måns Rullgård
# add some linker flags
1707 e240ee67 Luca Barbato
check_ldflags $LDLATEFLAGS
1708 94a3401e Fabrice Bellard
1709 57bd82d4 Måns Rullgård
# not all compilers support -Os
1710
test "$optimize" = "small" && check_cflags -Os
1711 cddf3f45 Glenn Maynard
1712 57bd82d4 Måns Rullgård
if enabled optimize; then
1713 b2924696 Roman Shaposhnik
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
1714 30a3e5d4 Nigel Pearson
        add_cflags  "-O5"
1715
        add_ldflags "-O5"
1716 cf9d24ad Dan Christiansen
    else
1717 30a3e5d4 Nigel Pearson
        add_cflags "-O3"
1718 cf9d24ad Dan Christiansen
    fi
1719 cddf3f45 Glenn Maynard
fi
1720
1721 80581e98 Michael Niedermayer
# PIC flags for shared library objects where they are needed
1722
if test "$lshared" = "yes" ; then
1723 f25fc9b1 Måns Rullgård
    # LIBOBJFLAGS may have already been set in the OS configuration
1724
    if test -z "$LIBOBJFLAGS" ; then
1725 cc6a90dd Guillaume Poirier
        case "$arch" in
1726 813457e5 Måns Rullgård
            x86_64|ia64|alpha|sparc*) LIBOBJFLAGS="\$(PIC)" ;;
1727
        esac
1728 80581e98 Michael Niedermayer
    fi
1729
fi
1730
1731 1db54e20 Diego Biurrun
if test "$gprof" = "yes" ; then
1732 30a3e5d4 Nigel Pearson
    add_cflags  "-p"
1733
    add_ldflags "-p"
1734 1db54e20 Diego Biurrun
fi
1735
1736 18451f7d Måns Rullgård
VHOOKCFLAGS="-fPIC $CFLAGS"
1737
test "$needmdynamicnopic" = yes && add_cflags -mdynamic-no-pic
1738
1739 4454dc1b John Dalgliesh
# 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 f36958f8 Diego Biurrun
echo "install prefix            $PREFIX"
1746
echo "source path               $source_path"
1747
echo "C compiler                $cc"
1748
echo "make                      $make"
1749 bfd5afd8 Diego Biurrun
echo ".align is power-of-two    $asmalign_pot"
1750 f36958f8 Diego Biurrun
echo "ARCH                      $arch ($cpu)"
1751 eb94aca9 Charles Yates
if test "$BUILDSUF" != ""; then
1752 f36958f8 Diego Biurrun
    echo "build suffix              $BUILDSUF"
1753 eb94aca9 Charles Yates
fi
1754 f36958f8 Diego Biurrun
echo "big-endian                $bigendian"
1755 419b8784 Diego Biurrun
if test $arch = "x86_32" -o $arch = "x86_64"; then
1756 f36958f8 Diego Biurrun
    echo "MMX enabled               $mmx"
1757
    echo "CMOV enabled              $cmov"
1758
    echo "CMOV is fast              $cmov_is_fast"
1759 e41e8342 Fabrice Bellard
fi
1760 cc6a90dd Guillaume Poirier
if test $arch = "armv4l"; then
1761 f36958f8 Diego Biurrun
    echo "ARMv5TE enabled           $armv5te"
1762
    echo "IWMMXT enabled            $iwmmxt"
1763 eba9ae3c Gildas Bazin
fi
1764 cc6a90dd Guillaume Poirier
if test $arch = "mips"; then
1765 f36958f8 Diego Biurrun
    echo "MMI enabled               $mmi"
1766 e41e8342 Fabrice Bellard
fi
1767 cc6a90dd Guillaume Poirier
if test $arch = "powerpc"; then
1768 f36958f8 Diego Biurrun
    echo "AltiVec enabled           $altivec"
1769
    echo "dcbzl available           $dcbzl"
1770 e41e8342 Fabrice Bellard
fi
1771 f36958f8 Diego Biurrun
echo "gprof enabled             $gprof"
1772
echo "debug symbols             $debug"
1773
echo "strip symbols             $dostrip"
1774
echo "optimize                  $optimize"
1775
echo "static                    $lstatic"
1776
echo "shared                    $lshared"
1777 bfd5afd8 Diego Biurrun
echo "postprocessing support    $pp"
1778
echo "software scaler enabled   $swscaler"
1779 f36958f8 Diego Biurrun
echo "video hooking             $vhook"
1780 f25fc9b1 Måns Rullgård
if test "$vhook" = "yes"; then
1781 f36958f8 Diego Biurrun
    echo "Imlib2 support            $imlib2"
1782
    echo "FreeType support          $freetype2"
1783 68892110 Philip Gladstone
fi
1784 bfd5afd8 Diego Biurrun
echo "network support           $network"
1785
if test "$network" = "yes" ; then
1786
    echo "IPv6 support              $ipv6"
1787
fi
1788 f36958f8 Diego Biurrun
echo "pthreads support          $pthreads"
1789 bfd5afd8 Diego Biurrun
echo "SDL support               $sdl"
1790
if test $sdl_too_old = "yes"; then
1791
    echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support."
1792
fi
1793
echo "Sun medialib support      $mlib"
1794
echo "AVISynth enabled          $avisynth"
1795 f8904fd9 Diego Biurrun
echo "liba52 support            $liba52"
1796
echo "liba52 dlopened           $liba52bin"
1797 3ffab361 Diego Biurrun
echo "libdts support            $libdts"
1798 2eed5a46 Diego Biurrun
echo "libfaac enabled           $libfaac"
1799
echo "libfaad enabled           $libfaad"
1800
echo "faadbin enabled           $libfaadbin"
1801 bfd5afd8 Diego Biurrun
echo "libgsm enabled            $libgsm"
1802 6ebe07fb Diego Biurrun
echo "libmp3lame enabled        $libmp3lame"
1803 bfd5afd8 Diego Biurrun
echo "libnut enabled            $libnut"
1804
echo "libogg enabled            $libogg"
1805
echo "libvorbis enabled         $libvorbis"
1806
echo "x264 enabled              $x264"
1807 dc922953 Diego Biurrun
echo "XviD enabled              $xvid"
1808 bfd5afd8 Diego Biurrun
echo "zlib enabled              $zlib"
1809 f36958f8 Diego Biurrun
echo "AMR-NB float support      $amr_nb"
1810
echo "AMR-NB fixed support      $amr_nb_fixed"
1811
echo "AMR-WB float support      $amr_wb"
1812
echo "AMR-WB IF2 support        $amr_if2"
1813 b2e3c528 Michael Niedermayer
if test "$gpl" = "no" ; then
1814 f25fc9b1 Måns Rullgård
    echo "License: LGPL"
1815 b2e3c528 Michael Niedermayer
else
1816 f25fc9b1 Måns Rullgård
    echo "License: GPL"
1817 b2e3c528 Michael Niedermayer
fi
1818 de6d9b64 Fabrice Bellard
1819 29799f8b Diego Biurrun
echo "Creating config.mak and config.h..."
1820 de6d9b64 Fabrice Bellard
1821 29799f8b Diego Biurrun
echo "# Automatically generated by configure - do not modify!" > config.mak
1822
echo "/* Automatically generated by configure - do not modify! */" > $TMPH
1823 f255e0ab Michel Bardiaux
echo "#define FFMPEG_CONFIGURATION "'"'"$FFMPEG_CONFIGURATION"'"' >> $TMPH
1824 de6d9b64 Fabrice Bellard
1825 2266e085 Diego Biurrun
echo "PREFIX=$PREFIX" >> config.mak
1826
echo "prefix=\$(DESTDIR)\${PREFIX}" >> config.mak
1827 9a695e98 Diego Biurrun
echo "libdir=\$(DESTDIR)$libdir" >> config.mak
1828 84c22efd Diego Biurrun
echo "shlibdir=\$(DESTDIR)$shlibdir" >> config.mak
1829 1d67a1d4 Diego Biurrun
echo "incdir=\$(DESTDIR)$incdir" >> config.mak
1830 9a695e98 Diego Biurrun
echo "bindir=\$(DESTDIR)$bindir" >> config.mak
1831
echo "mandir=\$(DESTDIR)$mandir" >> config.mak
1832 4a908fbc Alex Beregszaszi
echo "MAKE=$make" >> config.mak
1833 980fc7b8 Fabrice Bellard
echo "CC=$cc" >> config.mak
1834
echo "AR=$ar" >> config.mak
1835 be7109c1 Michael Niedermayer
echo "RANLIB=$ranlib" >> config.mak
1836 65d1bea2 Michel Bardiaux
if test "$dostrip" = "yes" ; then
1837 f25fc9b1 Måns Rullgård
    echo "STRIP=$strip" >> config.mak
1838
    echo "INSTALLSTRIP=$installstrip" >> config.mak
1839 65d1bea2 Michel Bardiaux
else
1840 f25fc9b1 Måns Rullgård
    echo "STRIP=echo ignoring strip" >> config.mak
1841
    echo "INSTALLSTRIP=" >> config.mak
1842 65d1bea2 Michel Bardiaux
fi
1843 75388c74 Michael Niedermayer
1844 a9b3f630 Nick Kurshev
echo "OPTFLAGS=$CFLAGS" >> config.mak
1845 408382a4 Diego Biurrun
echo "VHOOKCFLAGS=$VHOOKCFLAGS">>config.mak
1846 0f3cb305 Fabrice Bellard
echo "LDFLAGS=$LDFLAGS" >> config.mak
1847 f39e56a8 Jacob Meuser
echo "LDCONFIG=$LDCONFIG" >> config.mak
1848 c536cb09 Diego Biurrun
echo "FFSERVERLDFLAGS=$FFSERVERLDFLAGS" >> config.mak
1849 e1707f52 Michael Niedermayer
echo "SHFLAGS=$SHFLAGS" >> config.mak
1850 408382a4 Diego Biurrun
echo "VHOOKSHFLAGS=$VHOOKSHFLAGS" >> config.mak
1851 fbb9d104 Víctor Paesa
echo "VHOOKLIBS=$VHOOKLIBS" >> config.mak
1852 80581e98 Michael Niedermayer
echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak
1853 b12f8273 Diego Biurrun
echo "BUILD_STATIC=$lstatic" >> config.mak
1854 eb94aca9 Charles Yates
echo "BUILDSUF=$BUILDSUF" >> config.mak
1855 f3ec2d46 Slavik Gnatenko
echo "LIBPREF=$LIBPREF" >> config.mak
1856 eb94aca9 Charles Yates
echo "LIBSUF=\${BUILDSUF}$LIBSUF" >> config.mak
1857 320d060a Diego Biurrun
if test "$lstatic" = "yes" ; then
1858
  echo "LIB=$LIB" >> config.mak
1859 1a44a8b6 Alexander Strasser
else # Some Make complain if this variable does not exist.
1860
  echo "LIB=" >> config.mak
1861 320d060a Diego Biurrun
fi
1862 f3ec2d46 Slavik Gnatenko
echo "SLIBPREF=$SLIBPREF" >> config.mak
1863 eb94aca9 Charles Yates
echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
1864
echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
1865 b2828252 Diego Biurrun
echo "TARGET_OS=$targetos" >> config.mak
1866 4dc62701 Måns Rullgård
1867
ucarch=`toupper $arch`
1868
echo "TARGET_ARCH_${ucarch}=yes" >> config.mak
1869
echo "#define ARCH_${ucarch} 1" >> $TMPH
1870
1871
# special cases
1872
case "$arch" in
1873
    x86_32|x86_64)
1874
        echo "TARGET_ARCH_X86=yes" >> config.mak
1875
        echo "#define ARCH_X86 1" >> $TMPH
1876
        ;;
1877
    powerpc)
1878
        if test "$POWERPCMODE" = "64bits"; then
1879
            echo "#define POWERPC_MODE_64BITS 1" >> $TMPH
1880
        fi
1881
        if test "$powerpc_perf" = "yes"; then
1882
            echo "#define POWERPC_PERFORMANCE_REPORT 1" >> $TMPH
1883
        fi
1884
        ;;
1885
    sparc64)
1886
        echo "TARGET_ARCH_SPARC=yes" >> config.mak
1887
        echo "#define ARCH_SPARC 1" >> $TMPH
1888
        ;;
1889
esac
1890
1891 0f3cb305 Fabrice Bellard
if test "$bigendian" = "yes" ; then
1892
  echo "WORDS_BIGENDIAN=yes" >> config.mak
1893
  echo "#define WORDS_BIGENDIAN 1" >> $TMPH
1894 91d1f1a4 Nick Kurshev
fi
1895 57514323 Zdenek Kabelac
if test "$mmx" = "yes" ; then
1896 980fc7b8 Fabrice Bellard
  echo "TARGET_MMX=yes" >> config.mak
1897 045ed63f Zdenek Kabelac
  echo "#define HAVE_MMX 1" >> $TMPH
1898 e82c5a8c Michael Niedermayer
  echo "#define __CPU__ 586" >> $TMPH
1899 de6d9b64 Fabrice Bellard
fi
1900 e7768fc5 Guillaume Poirier
if test "$cmov" = "yes" ; then
1901
  echo "TARGET_CMOV=yes" >> config.mak
1902
  echo "#define HAVE_CMOV 1" >> $TMPH
1903
fi
1904 94e4c3a3 Guillaume Poirier
if test "$cmov_is_fast" = "yes" ; then
1905
  echo "TARGET_CMOV_IS_FAST=yes" >> config.mak
1906
  echo "#define CMOV_IS_FAST 1" >> $TMPH
1907
fi
1908 1839e854 Siarhei Siamashka
if test "$armv5te" = "yes" ; then
1909
  echo "TARGET_ARMV5TE=yes" >> config.mak
1910
  echo "#define HAVE_ARMV5TE 1" >> $TMPH
1911
fi
1912 eba9ae3c Gildas Bazin
if test "$iwmmxt" = "yes" ; then
1913
  echo "TARGET_IWMMXT=yes" >> config.mak
1914
  echo "#define HAVE_IWMMXT 1" >> $TMPH
1915
fi
1916 d46aba26 Leon van Stuivenberg
if test "$mmi" = "yes" ; then
1917
  echo "TARGET_MMI=yes" >> config.mak
1918
  echo "#define HAVE_MMI 1" >> $TMPH
1919
fi
1920 87ea51e0 Luca Barbato
1921 ab6c65f6 Brian Foley
if test "$altivec" = "yes" ; then
1922
  echo "TARGET_ALTIVEC=yes" >> config.mak
1923
  echo "#define HAVE_ALTIVEC 1" >> $TMPH
1924 f80f7964 Roman Shaposhnik
fi
1925 44161118 Måns Rullgård
1926 a86b921c Fabrice Bellard
if test "$sdl" = "yes" ; then
1927 6a1a892f Frantisek Dvorak
  echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak
1928
  echo "SDL_CFLAGS=`"${SDL_CONFIG}" --cflags`" >> config.mak
1929 a86b921c Fabrice Bellard
fi
1930 146ea952 Nicolas Boos
if test "$texi2html" = "yes"; then
1931
  echo "BUILD_DOC=yes" >> config.mak
1932
fi
1933 5a872801 Luca Barbato
1934 790c9ca7 Luca Abeni
sws_version=`grep '#define LIBSWSCALE_VERSION ' "$source_path/libswscale/swscale.h" | sed 's/[^0-9\.]//g'`
1935 6d9a2421 Diego Biurrun
pp_version=`grep '#define LIBPOSTPROC_VERSION ' "$source_path/libpostproc/postprocess.h" | sed 's/[^0-9\.]//g'`
1936 5a872801 Luca Barbato
lavc_version=`grep '#define LIBAVCODEC_VERSION ' "$source_path/libavcodec/avcodec.h" | sed 's/[^0-9\.]//g'`
1937
lavf_version=`grep '#define LIBAVFORMAT_VERSION ' "$source_path/libavformat/avformat.h" | sed 's/[^0-9\.]//g'`
1938
lavu_version=`grep '#define LIBAVUTIL_VERSION ' "$source_path/libavutil/avutil.h" | sed 's/[^0-9\.]//g'`
1939
1940
1941
1942 57514323 Zdenek Kabelac
if test "$lshared" = "yes" ; then
1943 0319c531 Nick Kurshev
  echo "BUILD_SHARED=yes" >> config.mak
1944 97006039 Jacob Meuser
  echo "PIC=-fPIC -DPIC" >> config.mak
1945 7e303556 Diego Biurrun
  echo "SPPMAJOR=${pp_version%%.*}" >> config.mak
1946
  echo "SPPVERSION=$pp_version" >> config.mak
1947 39503a27 Diego Biurrun
  echo "LAVCMAJOR=${lavc_version%%.*}" >> config.mak
1948 5a872801 Luca Barbato
  echo "LAVCVERSION=$lavc_version" >> config.mak
1949 39503a27 Diego Biurrun
  echo "LAVFMAJOR=${lavf_version%%.*}" >> config.mak
1950 5a872801 Luca Barbato
  echo "LAVFVERSION=$lavf_version" >> config.mak
1951 39503a27 Diego Biurrun
  echo "LAVUMAJOR=${lavu_version%%.*}" >> config.mak
1952 5a872801 Luca Barbato
  echo "LAVUVERSION=$lavu_version" >> config.mak
1953 790c9ca7 Luca Abeni
  echo "SWSMAJOR=${sws_version%%.*}" >> config.mak
1954
  echo "SWSVERSION=$sws_version" >> config.mak
1955 4bdd05e7 Diego Biurrun
  echo "SLIBNAME=${SLIBNAME}" >> config.mak
1956 f3b60109 Diego Biurrun
  echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak
1957
  echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
1958 5cb854e1 Diego Biurrun
  echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak
1959 8fbec4f4 Ramiro Polla
  echo "SLIB_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}" >> config.mak
1960 0319c531 Nick Kurshev
fi
1961 d7e27559 Diego Biurrun
echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak
1962 ef0bc4c9 François Revol
echo "EXTRALIBS=$extralibs" >> config.mak
1963 d2845d68 Diego Biurrun
1964 44161118 Måns Rullgård
enabled_any $ENCODER_LIST && enable encoders
1965
enabled_any $DECODER_LIST && enable decoders
1966
enabled_any $MUXER_LIST   && enable muxers
1967
enabled_any $DEMUXER_LIST && enable demuxers
1968 f956e129 Oded Shimon
1969 b265431e Måns Rullgård
enabled_any pthreads beosthreads os2threads w32threads && enable threads
1970
1971 44161118 Måns Rullgård
print_config HAVE_   $TMPH config.mak $HAVE_LIST
1972
print_config CONFIG_ $TMPH config.mak $CONFIG_LIST
1973 8ac17293 Steve L'Homme
1974 b2828252 Diego Biurrun
if test "$targetos" = "Darwin"; then
1975 90cee0c3 Michael Niedermayer
  echo "#define CONFIG_DARWIN 1"  >> $TMPH
1976
fi
1977
1978 c13e1abd Falk Hüffner
echo "#define restrict $_restrict" >> $TMPH
1979
1980 bb801c97 Michael Niedermayer
if test "$optimize" = "small"; then
1981
  echo "#define always_inline"  >> $TMPH
1982 e5f28e8f Michael Niedermayer
  echo "#define CONFIG_SMALL 1" >> $TMPH
1983 bb801c97 Michael Niedermayer
fi
1984
1985 997baf01 Måns Rullgård
echo "SRC_PATH=\"$source_path\"" >> config.mak
1986
echo "SRC_PATH_BARE=$source_path" >> config.mak
1987
echo "BUILD_ROOT=\"$PWD\"" >> config.mak
1988 0f3cb305 Fabrice Bellard
1989 2a515c08 Torsten Martinsen
if test "$amr_if2" = "yes" ; then
1990
  echo "AMR_CFLAGS=-DIF2=1" >> config.mak
1991
fi
1992
1993 8156056e John Dalgliesh
# Apparently it's not possible to portably echo a backslash.
1994 4454dc1b John Dalgliesh
if test "$asmalign_pot" = "yes" ; then
1995 8156056e John Dalgliesh
  printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH
1996 4454dc1b John Dalgliesh
else
1997 8156056e John Dalgliesh
  printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH
1998 4454dc1b John Dalgliesh
fi
1999
2000 bc634f6f Zdenek Kabelac
2001 55006fc0 Diego Biurrun
for codec in $DECODER_LIST $ENCODER_LIST $PARSER_LIST $DEMUXER_LIST $MUXER_LIST; do
2002 44161118 Måns Rullgård
    ucname="`toupper $codec`"
2003 a8d04fba Måns Rullgård
    config_name="CONFIG_$ucname"
2004
    enabled_name="ENABLE_$ucname"
2005
    if enabled $codec; then
2006
        echo "#define $config_name 1" >> $TMPH
2007
        echo "#define $enabled_name 1" >> $TMPH
2008
        echo "$config_name=yes" >> config.mak
2009
    else
2010
        echo "#define $enabled_name 0" >> $TMPH
2011
    fi
2012 009cf97d Michael Niedermayer
done
2013
2014 9cb2cf10 Diego Biurrun
# Do not overwrite config.h if unchanged to avoid superfluous rebuilds.
2015 c683a5d1 Måns Rullgård
if ! cmp -s $TMPH config.h; then
2016 9cb2cf10 Diego Biurrun
        mv -f $TMPH config.h
2017
else
2018
        echo "config.h is unchanged"
2019
fi
2020 3d204385 Nick Kurshev
2021 f3ec2d46 Slavik Gnatenko
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
2022 def4272a Aurelien Jacobs
2023 165af439 Måns Rullgård
# build tree in object directory if source path is different from current one
2024
if test "$source_path_used" = "yes" ; then
2025
    DIRS="\
2026
         doc \
2027
         libavformat \
2028
         libavcodec \
2029
         libavcodec/alpha \
2030
         libavcodec/armv4l \
2031
         libavcodec/bfin \
2032
         libavcodec/i386 \
2033
         libavcodec/sparc \
2034
         libavcodec/mlib \
2035
         libavcodec/ppc \
2036
         libavcodec/liba52 \
2037 3918dc4f Diego Biurrun
         libavcodec/amr \
2038
         libavcodec/amr_float \
2039
         libavcodec/amrwb_float \
2040 165af439 Måns Rullgård
         libpostproc \
2041
         libavutil \
2042
         libswscale \
2043
         tests \
2044
         vhook \
2045
         "
2046
    FILES="\
2047
          Makefile \
2048
          common.mak \
2049
          libavformat/Makefile \
2050
          libavcodec/Makefile \
2051
          libpostproc/Makefile \
2052
          libavutil/Makefile \
2053
          libswscale/Makefile \
2054
          tests/Makefile \
2055
          vhook/Makefile \
2056
          doc/Makefile \
2057
          doc/texi2pod.pl \
2058
          "
2059
    for dir in $DIRS ; do
2060
            mkdir -p $dir
2061
    done
2062
    for f in $FILES ; do
2063
        ln -sf "$source_path/$f" $f
2064
    done
2065
fi
2066 def4272a Aurelien Jacobs
2067
2068 d0674868 Diego Biurrun
# build pkg-config files
2069 def4272a Aurelien Jacobs
2070 d0674868 Diego Biurrun
pkgconfig_generate(){
2071
name=$1
2072
comment=$2
2073
version=$3
2074
libs=$4
2075
requires=$5
2076
include=$6
2077
cat <<EOF >$name.pc
2078 2266e085 Diego Biurrun
prefix=$PREFIX
2079 a94e666c Diego Biurrun
exec_prefix=\${prefix}
2080 def4272a Aurelien Jacobs
libdir=\${exec_prefix}/lib
2081 a94e666c Diego Biurrun
includedir=\${prefix}/include
2082 def4272a Aurelien Jacobs
2083 d0674868 Diego Biurrun
Name: $name
2084
Description: $comment
2085
Version: $version
2086
Requires: $requires
2087 def4272a Aurelien Jacobs
Conflicts:
2088 d0674868 Diego Biurrun
Libs: -L\${libdir} $libs
2089
Cflags: -I\${includedir} -I\${includedir}/$include
2090 def4272a Aurelien Jacobs
EOF
2091 d0674868 Diego Biurrun
}
2092 def4272a Aurelien Jacobs
2093 d0674868 Diego Biurrun
pkgconfig_generate_uninstalled(){
2094
name=$1
2095 9c476fd6 Måns Rullgård
shortname=${name#lib}
2096 d0674868 Diego Biurrun
comment=$2
2097
version=$3
2098
libs=$4
2099
requires=$5
2100
cat <<EOF >$name-uninstalled.pc
2101 def4272a Aurelien Jacobs
prefix=
2102
exec_prefix=
2103 d0674868 Diego Biurrun
libdir=\${pcfiledir}/$name
2104
includedir=\${pcfiledir}/$name
2105 def4272a Aurelien Jacobs
2106 d0674868 Diego Biurrun
Name: $name
2107
Description: $comment
2108
Version: $version
2109
Requires: $requires
2110 def4272a Aurelien Jacobs
Conflicts:
2111 d0674868 Diego Biurrun
Libs: \${libdir}/${LIBPREF}${shortname}${LIBSUF} $libs
2112 def4272a Aurelien Jacobs
Cflags: -I\${includedir}
2113
EOF
2114 d0674868 Diego Biurrun
}
2115 def4272a Aurelien Jacobs
2116 9d824ad1 Måns Rullgård
pkgconfig_generate libavutil "FFmpeg utility library" "$lavu_version" -lavutil "" ffmpeg
2117 d0674868 Diego Biurrun
pkgconfig_generate_uninstalled libavutil "FFmpeg utility library" "$lavu_version"
2118 def4272a Aurelien Jacobs
2119 d0674868 Diego Biurrun
pkgconfig_generate libavcodec "FFmpeg codec library" "$lavc_version" "-lavcodec $extralibs" "$pkg_requires libavutil = $lavu_version" ffmpeg
2120
pkgconfig_generate_uninstalled libavcodec "FFmpeg codec library" "$lavc_version" "$extralibs" "$pkg_requires libavutil = $lavu_version"
2121 def4272a Aurelien Jacobs
2122 d0674868 Diego Biurrun
pkgconfig_generate libavformat "FFmpeg container format library" "$lavf_version" "-lavformat $extralibs" "$pkg_requires libavcodec = $lavc_version" ffmpeg
2123
pkgconfig_generate_uninstalled libavformat "FFmpeg container format library" "$lavf_version" "$extralibs" "$pkg_requires libavcodec = $lavc_version"
2124 def4272a Aurelien Jacobs
2125 2e3bcd38 Diego Biurrun
if test "$pp" = "yes"; then
2126
  pkgconfig_generate libpostproc "FFmpeg post processing library" "$pp_version" -lpostproc "" postproc
2127
  pkgconfig_generate_uninstalled libpostproc "FFmpeg post processing library" "$pp_version"
2128
fi
2129 790c9ca7 Luca Abeni
2130 6c0d0413 j@v2v.cc
if test "$swscaler" != "no"; then
2131 20c516c6 Dominik Mierzejewski
  pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" "-lswscale" "libavutil = $lavu_version" swscale
2132
  pkgconfig_generate_uninstalled libswscale "FFmpeg image rescaling library" "$sws_version" "" "libavutil = $lavu_version"
2133 6c0d0413 j@v2v.cc
else
2134 d0674868 Diego Biurrun
  pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" "" "$pkg_requires libavcodec = $lavc_version" swscale
2135
  pkgconfig_generate_uninstalled libswscale "FFmpeg image rescaling library" "$sws_version" "" "$pkg_requires libavcodec = $lavc_version"
2136 c505dd31 Måns Rullgård
  apply libswscale.pc sed s/^Libs:.*$/Libs:/
2137
  apply libswscale-uninstalled.pc sed s/^Libs:.*$/Libs:/
2138 6c0d0413 j@v2v.cc
fi