Statistics
| Branch: | Revision:

ffmpeg / configure @ d6773f56

History | View | Annotate | Download (62.6 KB)

1 aeb29222 Måns Rullgård
#!/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 4ca5ece5 Stefano Sabatini
  echo "  --mandir=DIR             install man page in DIR [PREFIX/share/man]"
65 74c53c2d Måns Rullgård
  echo "  --enable-static          build static libraries [default=yes]"
66
  echo "  --disable-static         do not build static libraries [default=no]"
67
  echo "  --enable-shared          build shared libraries [default=no]"
68
  echo "  --disable-shared         do not build shared libraries [default=yes]"
69 0a622b98 Måns Rullgård
  echo "  --enable-gpl             allow use of GPL code, the resulting libav*"
70
  echo "                           and ffmpeg will be under GPL [default=no]"
71 3fe142e2 Diego Biurrun
  echo "  --enable-nonfree         allow use of nonfree code, the resulting libav*"
72
  echo "                           and ffmpeg will be unredistributable [default=no]"
73 dc922953 Diego Biurrun
  echo "  --enable-pp              enable GPLed postprocessing support [default=no]"
74
  echo "  --enable-swscaler        software scaler support [default=no]"
75 e5f94c2b Ramiro Polla
  echo "  --enable-beosthreads     use BeOS threads [default=no]"
76 d22e8442 Dave Yeo
  echo "  --enable-os2threads      use OS/2 threads [default=no]"
77 74c53c2d Måns Rullgård
  echo "  --enable-pthreads        use pthreads [default=no]"
78 eb113804 Diego Biurrun
  echo "  --enable-w32threads      use Win32 threads [default=no]"
79 56a059ac Diego Biurrun
  echo "  --enable-x11grab         enable X11 grabbing [default=no]"
80 0a622b98 Måns Rullgård
  echo
81
  echo "External library support:"
82
  echo "  --enable-sunmlib         use Sun medialib [default=no]"
83 e2745046 Måns Rullgård
  echo "  --enable-liba52          enable GPLed liba52 support [default=no]"
84
  echo "  --enable-liba52bin       open liba52.so.0 at runtime [default=no]"
85 8ac17293 Steve L'Homme
  echo "  --enable-avisynth        allow reading AVISynth script files [default=no]"
86 f5a756ef Diego Biurrun
  echo "  --enable-libamr-nb       enable libamr-nb floating point audio codec"
87
  echo "  --enable-libamr-wb       enable libamr-wb floating point audio codec"
88 f7b8bffe Ramiro Polla
  echo "  --enable-libdc1394       enable IIDC-1394 grabbing using libdc1394"
89
  echo "                           and libraw1394 [default=no]"
90 e2745046 Måns Rullgård
  echo "  --enable-libfaac         enable FAAC support via libfaac [default=no]"
91
  echo "  --enable-libfaad         enable FAAD support via libfaad [default=no]"
92 06f32b26 Diego Biurrun
  echo "  --enable-libfaadbin      open libfaad.so.0 at runtime [default=no]"
93 dc922953 Diego Biurrun
  echo "  --enable-libgsm          enable GSM support via libgsm [default=no]"
94 e2745046 Måns Rullgård
  echo "  --enable-libmp3lame      enable MP3 encoding via libmp3lame [default=no]"
95 31235134 Diego Biurrun
  echo "  --enable-libnut          enable NUT (de)muxing via libnut,"
96
  echo "                           native demuxer exists [default=no]"
97 71757822 Diego Biurrun
  echo "  --enable-libtheora       enable Theora encoding via libtheora [default=no]"
98 f9def9cc Diego Biurrun
  echo "  --enable-libvorbis       enable Vorbis encoding via libvorbis,"
99
  echo "                           native implementation exists [default=no]"
100 1cc60c47 Diego Biurrun
  echo "  --enable-libx264         enable H.264 encoding via x264 [default=no]"
101
  echo "  --enable-libxvid         enable Xvid encoding via xvidcore,"
102 31235134 Diego Biurrun
  echo "                           native MPEG-4/Xvid encoder exists [default=no]"
103 74c53c2d Måns Rullgård
  echo ""
104
  echo "Advanced options (experts only):"
105
  echo "  --source-path=PATH       path to source code [$source_path]"
106
  echo "  --cross-prefix=PREFIX    use PREFIX for compilation tools [$cross_prefix]"
107 fac252f9 Måns Rullgård
  echo "  --cross-compile          assume a cross-compiler is used"
108 abcd6d60 Måns Rullgård
  echo "  --target-os=OS           compiler targets OS [$targetos]"
109 74c53c2d Måns Rullgård
  echo "  --cc=CC                  use C compiler CC [$cc]"
110
  echo "  --make=MAKE              use specified make [$make]"
111
  echo "  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS [$CFLAGS]"
112
  echo "  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]"
113
  echo "  --extra-libs=ELIBS       add ELIBS [$ELIBS]"
114
  echo "  --build-suffix=SUFFIX    suffix for application specific build []"
115 cc6a90dd Guillaume Poirier
  echo "  --arch=ARCH              select architecture  [$arch]"
116 7c758d33 Diego Biurrun
  echo "  --cpu=CPU                selects the minimum cpu required (affects"
117
  echo "                           instruction selection, may crash on older CPUs)"
118 2b4c3615 Måns Rullgård
  echo "  --enable-powerpc-perf    enable performance report on PPC"
119 74c53c2d Måns Rullgård
  echo "                           (requires enabling PMC)"
120
  echo "  --disable-mmx            disable MMX usage"
121 1839e854 Siarhei Siamashka
  echo "  --disable-armv5te        disable armv5te usage"
122 edab3048 Måns Rullgård
  echo "  --disable-armv6          disable armv6 usage"
123 74c53c2d Måns Rullgård
  echo "  --disable-iwmmxt         disable iwmmxt usage"
124
  echo "  --disable-altivec        disable AltiVec usage"
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 "  --disable-debug          disable debugging symbols"
130
  echo "  --disable-mpegaudio-hp   faster (but less accurate)"
131
  echo "                           MPEG audio decoding [default=no]"
132 cde9e780 Michael Niedermayer
  echo "  --enable-gray            enable full grayscale support (slower color)"
133 786b30af Diego Biurrun
  echo "  --disable-ffmpeg         disable ffmpeg build"
134 74c53c2d Måns Rullgård
  echo "  --disable-ffserver       disable ffserver build"
135
  echo "  --disable-ffplay         disable ffplay build"
136
  echo "  --enable-small           optimize for size instead of speed"
137 3abe5fbd Aurelien Jacobs
  echo "  --enable-hardcoded-tables use hardcoded tables instead of runtime generation"
138 74c53c2d Måns Rullgård
  echo "  --enable-memalign-hack   emulate memalign, interferes with memory debuggers"
139
  echo "  --disable-encoder=NAME   disables encoder NAME"
140
  echo "  --enable-encoder=NAME    enables encoder NAME"
141
  echo "  --disable-decoder=NAME   disables decoder NAME"
142
  echo "  --enable-decoder=NAME    enables decoder NAME"
143
  echo "  --disable-encoders       disables all encoders"
144
  echo "  --disable-decoders       disables all decoders"
145 ff70e601 Måns Rullgård
  echo "  --disable-muxer=NAME     disables muxer NAME"
146
  echo "  --enable-muxer=NAME      enables muxer NAME"
147 74c53c2d Måns Rullgård
  echo "  --disable-muxers         disables all muxers"
148 ff70e601 Måns Rullgård
  echo "  --disable-demuxer=NAME   disables demuxer NAME"
149
  echo "  --enable-demuxer=NAME    enables demuxer NAME"
150 74c53c2d Måns Rullgård
  echo "  --disable-demuxers       disables all demuxers"
151 af9e7d18 Måns Rullgård
  echo "  --enable-parser=NAME     enables parser NAME"
152
  echo "  --disable-parser=NAME    disables parser NAME"
153
  echo "  --disable-parsers        disables all parsers"
154 cd61e407 Jason Millard
  echo "  --enable-bsf=NAME        enables bitstream filter NAME"
155
  echo "  --disable-bsf=NAME       disables bitstream filter NAME"
156
  echo "  --disable-bsfs           disables all bitstream filters"
157 c08fb000 Alex Beregszaszi
  echo "  --enable-protocol=NAME   enables protocol NAME"
158
  echo "  --disable-protocol=NAME  disables protocol NAME"
159
  echo "  --disable-protocols      disables all protocols"
160 10d46dd0 Diego Biurrun
  echo "  --disable-devices        disables all devices"
161 794f8e97 Panagiotis Issaris
  echo "  --list-decoders          show all available decoders"
162
  echo "  --list-encoders          show all available encoders"
163
  echo "  --list-muxers            show all available muxers"
164
  echo "  --list-demuxers          show all available demuxers"
165
  echo "  --list-parsers           show all available parsers"
166
  echo "  --list-protocols         show all available protocols"
167
  echo "  --list-bsfs              show all available bitstream filters"
168 c552605c Diego Biurrun
  echo "  --list-indevs            show all available input devices"
169
  echo "  --list-outdevs           show all available output devices"
170 0a622b98 Måns Rullgård
  echo
171
  echo "Developer options (useful when working on FFmpeg itself):"
172
  echo "  --enable-gprof           enable profiling with gprof [$gprof]"
173 d2bbb2f7 Diego Biurrun
  echo "  --disable-optimizations  disable compiler optimizations"
174 0a622b98 Måns Rullgård
  echo "  --enable-extra-warnings  enable more compiler warnings"
175
  echo "  --disable-strip          disable stripping of executables and shared libraries"
176 74c53c2d Måns Rullgård
  echo ""
177
  echo "NOTE: Object files are built at the place where configure is launched."
178
  exit 1
179
}
180 cf9d24ad Dan Christiansen
181 57bd82d4 Måns Rullgård
log(){
182
    echo "$@" >>$logfile
183
}
184
185 720c69da Måns Rullgård
log_file(){
186 c8e9f801 Måns Rullgård
    log BEGIN $1
187 6b324648 Måns Rullgård
    pr -n -t $1 >>$logfile
188 c8e9f801 Måns Rullgård
    log END $1
189
}
190
191 2ba042a7 Måns Rullgård
echolog(){
192 c8e9f801 Måns Rullgård
    log "$@"
193 57bd82d4 Måns Rullgård
    echo "$@"
194 2ba042a7 Måns Rullgård
}
195
196
die(){
197
    echolog "$@"
198
    cat <<EOF
199
If you think configure made a mistake, make sure you are using the latest
200
version from SVN.  If the latest version fails, report the problem to the
201 e5d8ccd7 Måns Rullgård
ffmpeg-user@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net.
202 2ba042a7 Måns Rullgård
EOF
203 720c69da Måns Rullgård
    if enabled logging; then
204 2ba042a7 Måns Rullgård
        cat <<EOF
205
Include the log file "$logfile" produced by configure as this will help
206
solving the problem.
207
EOF
208
    else
209
cat <<EOF
210
Rerun configure with logging enabled (do not use --log=no), and include the
211
log this produces with your report.
212
EOF
213
    fi
214 57bd82d4 Måns Rullgård
    rm -f $TMPC $TMPO $TMPE $TMPS $TMPH
215
    exit 1
216
}
217
218 904e48f1 Måns Rullgård
# "tr '[a-z]' '[A-Z]'" is a workaround for Solaris tr not grokking "tr a-z A-Z"
219 44161118 Måns Rullgård
toupper(){
220
    echo "$@" | tr '[a-z]' '[A-Z]'
221
}
222
223 4a5444db Måns Rullgård
tolower(){
224
    echo "$@" | tr '[A-Z]' '[a-z]'
225
}
226
227 a8d04fba Måns Rullgård
set_all(){
228
    value=$1
229
    shift
230
    for var in $*; do
231
        eval $var=$value
232
    done
233
}
234
235 799c9e9b Måns Rullgård
pushvar(){
236
    for var in $*; do
237
        eval level=\${${var}_level:=0}
238
        eval ${var}_${level}="\$$var"
239
        eval ${var}_level=$(($level+1))
240
    done
241
}
242
243
popvar(){
244
    for var in $*; do
245
        eval level=\${${var}_level:-0}
246
        test $level = 0 && continue
247
        eval level=$(($level-1))
248
        eval $var="\${${var}_${level}}"
249
        eval ${var}_level=$level
250
        eval unset ${var}_${level}
251
    done
252
}
253
254 a8d04fba Måns Rullgård
enable(){
255
    set_all yes $*
256
}
257
258
disable(){
259
    set_all no $*
260
}
261
262 57bd82d4 Måns Rullgård
enabled(){
263 44161118 Måns Rullgård
    eval test "x\$$1" = "xyes"
264
}
265
266 37970ebf Ramiro Polla
disabled(){
267
    eval test "x\$$1" = "xno"
268
}
269
270 44161118 Måns Rullgård
enabled_all(){
271
    for opt; do
272
        enabled $opt || return 1
273
    done
274
}
275
276 85bca2c5 Diego Biurrun
disabled_all(){
277
    for opt; do
278
        disabled $opt || return 1
279
    done
280
}
281
282 44161118 Måns Rullgård
enabled_any(){
283
    for opt; do
284
        enabled $opt && return 0
285
    done
286
}
287
288 85bca2c5 Diego Biurrun
disabled_any(){
289
    for opt; do
290
        disabled $opt && return 0
291
    done
292
}
293
294 4a0d6686 Aurelien Jacobs
is_in(){
295
    value=$1
296
    shift
297
    for var in $*; do
298
        [ $var = $value ] && return 0
299
    done
300
    return 1
301
}
302
303 30fd06be Måns Rullgård
check_deps(){
304
    for cfg; do
305 799c9e9b Måns Rullgård
        enabled ${cfg}_checking && die "Circular dependency for $cfg."
306
        disabled ${cfg}_checking && continue
307
        enable ${cfg}_checking
308
309 30fd06be Måns Rullgård
        eval dep_all="\$${cfg}_deps"
310
        eval dep_any="\$${cfg}_deps_any"
311 799c9e9b Måns Rullgård
312
        pushvar cfg dep_all dep_any
313
        check_deps $dep_all $dep_any
314
        popvar cfg dep_all dep_any
315
316 30fd06be Måns Rullgård
        enabled_all $dep_all || disable $cfg
317
        enabled_any $dep_any || disable $cfg
318 799c9e9b Måns Rullgård
319 4ec45764 Ramiro Polla
        if enabled $cfg; then
320
            eval dep_extralibs="\$${cfg}_extralibs"
321
            test -n "$dep_extralibs" && add_extralibs $dep_extralibs
322
        fi
323
324 799c9e9b Måns Rullgård
        disable ${cfg}_checking
325 30fd06be Måns Rullgård
    done
326
}
327
328 44161118 Måns Rullgård
print_config(){
329
    pfx=$1
330
    header=$2
331
    makefile=$3
332
    shift 3
333
    for cfg; do
334 3d907e22 Måns Rullgård
        ucname="`toupper $cfg`"
335 44161118 Måns Rullgård
        if enabled $cfg; then
336 3d907e22 Måns Rullgård
            echo "#define ${pfx}${ucname} 1" >> $header
337
            echo "#define ENABLE_${ucname} 1" >> $header
338
            echo "${pfx}${ucname}=yes" >> $makefile
339
        else
340
            echo "#define ENABLE_${ucname} 0" >> $header
341 44161118 Måns Rullgård
        fi
342
    done
343 57bd82d4 Måns Rullgård
}
344
345
flags_saved(){
346
    (: ${SAVE_CFLAGS?}) 2>/dev/null
347
}
348
349 dcd479c0 Måns Rullgård
save_flags(){
350 57bd82d4 Måns Rullgård
    flags_saved && return
351 dcd479c0 Måns Rullgård
    SAVE_CFLAGS="$CFLAGS"
352
    SAVE_LDFLAGS="$LDFLAGS"
353
    SAVE_extralibs="$extralibs"
354
}
355
356
restore_flags(){
357 f5d28d10 Måns Rullgård
    flags_saved || return
358 dcd479c0 Måns Rullgård
    CFLAGS="$SAVE_CFLAGS"
359
    LDFLAGS="$SAVE_LDFLAGS"
360
    extralibs="$SAVE_extralibs"
361
    unset SAVE_CFLAGS
362
    unset SAVE_LDFLAGS
363
    unset SAVE_extralibs
364
}
365
366
temp_cflags(){
367
    save_flags
368
    CFLAGS="$CFLAGS $*"
369
}
370
371
temp_ldflags(){
372
    save_flags
373
    LDFLAGS="$LDFLAGS $*"
374
}
375
376
temp_extralibs(){
377
    save_flags
378
    extralibs="$extralibs $*"
379
}
380
381 57bd82d4 Måns Rullgård
append(){
382
    var=$1
383
    shift
384
    flags_saved && eval "SAVE_$var=\"\$SAVE_$var $*\""
385
    eval "$var=\"\$$var $*\""
386
}
387
388
add_cflags(){
389
    append CFLAGS "$@"
390
}
391
392
add_ldflags(){
393
    append LDFLAGS "$@"
394
}
395
396
add_extralibs(){
397
    append extralibs "$@"
398
}
399
400 b0cfb663 Måns Rullgård
check_cmd(){
401 b3cb5d51 Måns Rullgård
    log "$@"
402 9b4f605c Måns Rullgård
    "$@" >>$logfile 2>&1
403 b0cfb663 Måns Rullgård
}
404
405 dcd479c0 Måns Rullgård
check_cc(){
406 57bd82d4 Måns Rullgård
    log check_cc "$@"
407
    cat >$TMPC
408 720c69da Måns Rullgård
    log_file $TMPC
409 b0cfb663 Måns Rullgård
    check_cmd $cc $CFLAGS "$@" -c -o $TMPO $TMPC
410 57bd82d4 Måns Rullgård
}
411
412
check_cpp(){
413
    log check_cpp "$@"
414 dcd479c0 Måns Rullgård
    cat >$TMPC
415 720c69da Måns Rullgård
    log_file $TMPC
416 b0cfb663 Måns Rullgård
    check_cmd $cc $CFLAGS "$@" -E -o $TMPO $TMPC
417 dcd479c0 Måns Rullgård
}
418
419 940f335a Måns Rullgård
check_asm(){
420
    log check_asm "$@"
421
    name="$1"
422
    asm="$2"
423
    shift 2
424
    check_cc "$@" <<EOF && enable $name || disable $name
425
int foo(void){
426
    asm volatile($asm);
427
}
428
EOF
429
}
430
431 dcd479c0 Måns Rullgård
check_ld(){
432 57bd82d4 Måns Rullgård
    log check_ld "$@"
433 0607887f Måns Rullgård
    check_cc || return
434 3155a644 Måns Rullgård
    flags=''
435
    libs=''
436
    for f; do
437
        test "${f}" = "${f#-l}" && flags="$flags $f" || libs="$libs $f"
438
    done
439
    check_cmd $cc $LDFLAGS $flags -o $TMPE $TMPO $extralibs $libs
440 dcd479c0 Måns Rullgård
}
441
442
check_cflags(){
443 57bd82d4 Måns Rullgård
    log check_cflags "$@"
444
    check_cc "$@" <<EOF && add_cflags "$@"
445 dcd479c0 Måns Rullgård
int x;
446
EOF
447
}
448
449
check_ldflags(){
450 57bd82d4 Måns Rullgård
    log check_ldflags "$@"
451
    check_ld "$@" <<EOF && add_ldflags "$@"
452 e5af4a11 Diego Biurrun
int main(void){
453 57bd82d4 Måns Rullgård
    return 0;
454
}
455 dcd479c0 Måns Rullgård
EOF
456
}
457
458
check_header(){
459 57bd82d4 Måns Rullgård
    log check_header "$@"
460 dcd479c0 Måns Rullgård
    header=$1
461
    shift
462 d8bc5f06 Måns Rullgård
    var=`echo $header | sed 's/[^A-Za-z0-9_]/_/g'`
463
    disable $var
464
    check_cpp "$@" <<EOF && enable $var
465 dcd479c0 Måns Rullgård
#include <$header>
466
int x;
467
EOF
468
}
469
470
check_func(){
471 57bd82d4 Måns Rullgård
    log check_func "$@"
472 dcd479c0 Måns Rullgård
    func=$1
473
    shift
474 d8bc5f06 Måns Rullgård
    disable $func
475
    check_ld "$@" <<EOF && enable $func
476 dcd479c0 Måns Rullgård
extern int $func();
477 e5af4a11 Diego Biurrun
int main(void){
478 dcd479c0 Måns Rullgård
    $func();
479
}
480
EOF
481
}
482
483 f8d7b072 Måns Rullgård
check_func2(){
484
    log check_func2 "$@"
485
    headers=$1
486
    func=$2
487
    shift 2
488
    disable $func
489
    incs=""
490
    for hdr in $headers; do
491
        incs="$incs
492
#include <$hdr>"
493
    done
494
    check_ld "$@" <<EOF && enable $func
495
$incs
496 d6773f56 Diego Biurrun
int main(int argc, char **argv){
497 f8d7b072 Måns Rullgård
    (void) $func;
498
    return 0;
499
}
500
EOF
501
}
502
503 57bd82d4 Måns Rullgård
check_lib(){
504
    log check_lib "$@"
505
    header="$1"
506
    func="$2"
507
    shift 2
508 fcfcde17 Måns Rullgård
    temp_extralibs "$@"
509
    check_header $header && check_func $func && add_extralibs "$@"
510
    err=$?
511
    restore_flags
512
    return $err
513 57bd82d4 Måns Rullgård
}
514
515 f8d7b072 Måns Rullgård
check_lib2(){
516
    log check_lib2 "$@"
517
    headers="$1"
518
    func="$2"
519
    shift 2
520
    temp_extralibs "$@"
521
    check_func2 "$headers" $func && add_extralibs "$@"
522
    err=$?
523
    restore_flags
524
    return $err
525
}
526
527 dcd479c0 Måns Rullgård
check_exec(){
528 90be59ef Ramiro Polla
    check_ld "$@" && { enabled cross_compile || $TMPE >>$logfile 2>&1; }
529 57bd82d4 Måns Rullgård
}
530
531 7dfef245 Måns Rullgård
check_exec_crash(){
532
    code=`cat`
533
534
    # exit() is not async signal safe.  _Exit (C99) and _exit (POSIX)
535
    # are safe but may not be available everywhere.  Thus we use
536
    # raise(SIGTERM) instead.  The check is run in a subshell so we
537
    # can redirect the "Terminated" message from the shell.  SIGBUS
538
    # is not defined by standard C so it is used conditionally.
539
540
    (check_exec "$@") >>$logfile 2>&1 <<EOF
541
#include <signal.h>
542
static void sighandler(int sig){
543
    raise(SIGTERM);
544
}
545 e5af4a11 Diego Biurrun
int main(void){
546 7dfef245 Måns Rullgård
    signal(SIGILL, sighandler);
547
    signal(SIGFPE, sighandler);
548
    signal(SIGSEGV, sighandler);
549
#ifdef SIGBUS
550
    signal(SIGBUS, sighandler);
551
#endif
552
    { $code }
553
}
554
EOF
555
}
556
557 72be9e73 Dave Yeo
check_type(){
558
    log check_type "$@"
559
    headers=$1
560
    type=$2
561
    shift 2
562
    disable $type
563
    incs=""
564
    for hdr in $headers; do
565
        incs="$incs
566
#include <$hdr>"
567
    done
568
    check_cc "$@" <<EOF && enable $type
569
$incs
570
$type v;
571
EOF
572
}
573
574 57bd82d4 Måns Rullgård
require(){
575
    name="$1"
576
    header="$2"
577
    func="$3"
578
    shift 3
579
    check_lib $header $func "$@" || die "ERROR: $name not found"
580 dcd479c0 Måns Rullgård
}
581
582 f8d7b072 Måns Rullgård
require2(){
583
    name="$1"
584
    headers="$2"
585
    func="$3"
586
    shift 3
587
    check_lib2 "$headers" $func "$@" || die "ERROR: $name not found"
588
}
589
590 eea50282 Måns Rullgård
check_foo_config(){
591
    cfg=$1
592
    pkg=$2
593
    header=$3
594
    func=$4
595
    shift 4
596
    disable $cfg
597
    check_cmd ${pkg}-config --version
598
    err=$?
599
    if test "$err" = 0; then
600
        temp_cflags `${pkg}-config --cflags`
601
        temp_extralibs `${pkg}-config --libs`
602
        check_lib "$@" $header $func && enable $cfg
603
    fi
604
    return $err
605
}
606
607 c505dd31 Måns Rullgård
apply(){
608
    file=$1
609
    shift
610
    "$@" < "$file" > "$file.tmp" && mv "$file.tmp" "$file" || rm "$file.tmp"
611
}
612
613 4a0d6686 Aurelien Jacobs
COMPONENT_LIST="
614
    bsfs
615
    decoders
616
    demuxers
617
    encoders
618 c552605c Diego Biurrun
    indevs
619 4a0d6686 Aurelien Jacobs
    muxers
620 c552605c Diego Biurrun
    outdevs
621 4a0d6686 Aurelien Jacobs
    parsers
622
    protocols
623
"
624
625
CONFIG_LIST="
626
    $COMPONENT_LIST
627 c88f5d72 Måns Rullgård
    avisynth
628
    beos_netserver
629
    ffmpeg
630
    ffplay
631
    ffserver
632
    gpl
633 ecfc4f44 Måns Rullgård
    gprof
634 d8d0d0b2 Michael Niedermayer
    gray
635 3abe5fbd Aurelien Jacobs
    hardcoded_tables
636 c88f5d72 Måns Rullgård
    ipv6
637 7bc5f2a8 Diego Biurrun
    liba52
638 f8904fd9 Diego Biurrun
    liba52bin
639 f5a756ef Diego Biurrun
    libamr_nb
640
    libamr_wb
641 f7b8bffe Ramiro Polla
    libdc1394
642 2eed5a46 Diego Biurrun
    libfaac
643
    libfaad
644
    libfaadbin
645 c88f5d72 Måns Rullgård
    libgsm
646 6ebe07fb Diego Biurrun
    libmp3lame
647 c88f5d72 Måns Rullgård
    libnut
648 150d2772 Diego Biurrun
    libtheora
649 c88f5d72 Måns Rullgård
    libvorbis
650 1cc60c47 Diego Biurrun
    libx264
651
    libxvid
652 c88f5d72 Måns Rullgård
    memalign_hack
653
    mpegaudio_hp
654
    network
655 3fe142e2 Diego Biurrun
    nonfree
656 2b4c3615 Måns Rullgård
    powerpc_perf
657 c88f5d72 Måns Rullgård
    pp
658 bd2216e4 Måns Rullgård
    small
659 c88f5d72 Måns Rullgård
    swscaler
660
    vhook
661 56a059ac Diego Biurrun
    x11grab
662 c88f5d72 Måns Rullgård
    zlib
663 4a0d6686 Aurelien Jacobs
"
664 c88f5d72 Måns Rullgård
665 8eee7025 Diego Biurrun
THREADS_LIST='
666
    beosthreads
667 d22e8442 Dave Yeo
    os2threads
668 8eee7025 Diego Biurrun
    pthreads
669
    w32threads
670
'
671
672 3f5b56e5 Måns Rullgård
ARCH_LIST='
673
    alpha
674
    armv4l
675
    bfin
676
    ia64
677
    m68k
678
    mips
679
    parisc
680
    powerpc
681
    s390
682
    sh4
683
    sparc
684
    sparc64
685
    x86
686
    x86_32
687
    x86_64
688
'
689
690
ARCH_EXT_LIST='
691 1ac9331a Måns Rullgård
    altivec
692
    armv5te
693 edab3048 Måns Rullgård
    armv6
694 3f5b56e5 Måns Rullgård
    iwmmxt
695
    mmi
696
    mmx
697 9eeed841 Måns Rullgård
    ssse3
698 bd9d34a0 Diego Biurrun
    vis
699 3f5b56e5 Måns Rullgård
'
700
701
HAVE_LIST="
702
    $ARCH_EXT_LIST
703
    $THREADS_LIST
704
    altivec_h
705 c9fdab0d François Revol
    arpa_inet_h
706 c88f5d72 Måns Rullgård
    byteswap_h
707 ecf97f22 Alex Beregszaszi
    closesocket
708 1ac9331a Måns Rullgård
    cmov
709 e16e49ac Ramiro Polla
    conio_h
710 c88f5d72 Måns Rullgård
    dcbzl
711 f8aa696f Diego Biurrun
    dev_bktr_ioctl_bt848_h
712
    dev_bktr_ioctl_meteor_h
713
    dev_ic_bt8xx_h
714
    dev_video_meteor_ioctl_meteor_h
715
    dev_video_bktr_ioctl_bt848_h
716 18b67ae5 Måns Rullgård
    dlfcn_h
717 c88f5d72 Måns Rullgård
    dlopen
718 245626d0 Diego Biurrun
    ebp_available
719
    ebx_available
720 c2a29455 Aurelien Jacobs
    fast_64bit
721 7073e9fc Måns Rullgård
    fast_cmov
722 7b829d2a Ramiro Polla
    fast_unaligned
723 9d99cc5a Måns Rullgård
    fork
724 c88f5d72 Måns Rullgård
    freetype2
725 da9e86f8 Roman Shaposhnik
    gethrtime
726 4e68cb8a Roman Shaposhnik
    GetProcessTimes
727 66be5b45 Ramiro Polla
    getrusage
728 c88f5d72 Måns Rullgård
    imlib2
729 2e1913b1 Måns Rullgård
    inet_aton
730 0b4a1821 Alessandro Sappia
    libdc1394_1
731
    libdc1394_2
732 a33cab3a Michael Kostylev
    llrint
733
    lrint
734 c88f5d72 Måns Rullgård
    lrintf
735 f8aa696f Diego Biurrun
    machine_ioctl_bt848_h
736
    machine_ioctl_meteor_h
737 c88f5d72 Måns Rullgård
    malloc_h
738
    memalign
739 6ffa87d3 Ramiro Polla
    mkstemp
740 c88f5d72 Måns Rullgård
    mlib
741 9cafbd6c Måns Rullgård
    ppc64
742 a33cab3a Michael Kostylev
    round
743
    roundf
744 c88f5d72 Måns Rullgård
    sdl
745
    sdl_video_size
746 72be9e73 Dave Yeo
    socklen_t
747 deb29777 Måns Rullgård
    soundcard_h
748 b0c858d8 François Revol
    sys_poll_h
749 81644c2e Michael Kostylev
    sys_select_h
750 deb29777 Måns Rullgård
    sys_soundcard_h
751 e16e49ac Ramiro Polla
    termios_h
752 b265431e Måns Rullgård
    threads
753 6ff3f3e7 Ramiro Polla
    winsock2_h
754 0cb78cef Diego Biurrun
"
755 44161118 Måns Rullgård
756 520cc7f1 Måns Rullgård
CMDLINE_SELECT="
757 3f5b56e5 Måns Rullgård
    $ARCH_EXT_LIST
758 520cc7f1 Måns Rullgård
    $CONFIG_LIST
759 8eee7025 Diego Biurrun
    $THREADS_LIST
760 520cc7f1 Måns Rullgård
    debug
761
    extra_warnings
762 d2bbb2f7 Diego Biurrun
    optimizations
763 520cc7f1 Måns Rullgård
    shared
764
    static
765
"
766
767 912f3148 Diego Biurrun
# code dependency declarations
768
769 9eeed841 Måns Rullgård
# architecture extensions
770
altivec_deps="powerpc"
771
armv5te_deps="armv4l"
772
armv6_deps="armv4l"
773
iwmmxt_deps="armv4l"
774 e241ba14 Diego Biurrun
mmi_deps="mips"
775 9eeed841 Måns Rullgård
mmx_deps="x86"
776
ssse3_deps="x86"
777 bd9d34a0 Diego Biurrun
vis_deps="sparc"
778 9eeed841 Måns Rullgård
779 912f3148 Diego Biurrun
# decoders / encoders
780 6ea67bbb Justin Ruggles
ac3_decoder_deps="gpl"
781 33a0dd37 Kostya Shishkov
dxa_decoder_deps="zlib"
782 30fd06be Måns Rullgård
flashsv_decoder_deps="zlib"
783 773be23a Aurelien Jacobs
flashsv_encoder_deps="zlib"
784 4a815a7f Diego Biurrun
flv_decoder_deps="h263_decoder"
785 df495dbd Aurelien Jacobs
h263_decoder_deps="h263_parser mpeg4video_parser"
786 4a815a7f Diego Biurrun
h263i_decoder_deps="h263_decoder"
787 26b4fe82 Aurelien Jacobs
h264_decoder_deps="h264_parser"
788 30fd06be Måns Rullgård
mpeg_xvmc_decoder_deps="xvmc"
789 4a815a7f Diego Biurrun
mpeg4_decoder_deps="h263_decoder"
790
msmpeg4v1_decoder_deps="h263_decoder"
791
msmpeg4v2_decoder_deps="h263_decoder"
792
msmpeg4v3_decoder_deps="h263_decoder"
793 30fd06be Måns Rullgård
png_decoder_deps="zlib"
794
png_encoder_deps="zlib"
795 e2525c6f Aurelien Jacobs
svq3_decoder_deps="h264_parser"
796 4a815a7f Diego Biurrun
vc1_decoder_deps="h263_decoder"
797
wmv1_decoder_deps="h263_decoder"
798
wmv2_decoder_deps="h263_decoder"
799
wmv3_decoder_deps="h263_decoder"
800 30fd06be Måns Rullgård
zmbv_decoder_deps="zlib"
801
zmbv_encoder_deps="zlib"
802
803 912f3148 Diego Biurrun
# external libraries
804 7bc5f2a8 Diego Biurrun
liba52_decoder_deps="liba52"
805 4ec45764 Ramiro Polla
liba52bin_decoder_extralibs='$ldl'
806 f5a756ef Diego Biurrun
libamr_nb_decoder_deps="libamr_nb"
807
libamr_nb_encoder_deps="libamr_nb"
808
libamr_wb_decoder_deps="libamr_wb"
809
libamr_wb_encoder_deps="libamr_wb"
810 c9171a83 Diego Biurrun
libfaac_encoder_deps="libfaac"
811 69ddbd1d Diego Biurrun
libfaad_decoder_deps="libfaad"
812 4ec45764 Ramiro Polla
libfaadbin_decoder_extralibs='$ldl'
813 299c77d5 Måns Rullgård
libgsm_decoder_deps="libgsm"
814
libgsm_encoder_deps="libgsm"
815 8ffed8d8 Måns Rullgård
libgsm_ms_decoder_deps="libgsm"
816
libgsm_ms_encoder_deps="libgsm"
817 1cc60c47 Diego Biurrun
libmp3lame_encoder_deps="libmp3lame"
818 150d2772 Diego Biurrun
libtheora_encoder_deps="libtheora"
819 b0caf888 Diego Biurrun
libvorbis_encoder_deps="libvorbis"
820 1cc60c47 Diego Biurrun
libx264_encoder_deps="libx264"
821
libxvid_encoder_deps="libxvid"
822 13566c31 Diego Biurrun
mpeg4aac_decoder_deps="libfaad"
823 30fd06be Måns Rullgård
824 912f3148 Diego Biurrun
# demuxers / muxers
825 03a76ba9 Diego Biurrun
ac3_demuxer_deps="ac3_parser"
826 50383e88 Ramiro Polla
audio_beos_demuxer_deps="audio_beos"
827 4ec45764 Ramiro Polla
audio_beos_demuxer_extralibs="-lmedia -lbe"
828 50383e88 Ramiro Polla
audio_beos_muxer_deps="audio_beos"
829 4ec45764 Ramiro Polla
audio_beos_muxer_extralibs="-lmedia -lbe"
830 53b73365 Ramiro Polla
avisynth_demuxer_deps="avisynth"
831 73483024 Ramiro Polla
bktr_demuxer_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h"
832 fe9bb347 Diego Biurrun
dv1394_demuxer_deps="dv1394 dv_demuxer"
833 f7b8bffe Ramiro Polla
libdc1394_demuxer_deps="libdc1394"
834 d7c59247 Diego Biurrun
libnut_demuxer_deps="libnut"
835
libnut_muxer_deps="libnut"
836 4bd8e17c Aurelien Jacobs
mp3_demuxer_deps="mpegaudio_parser"
837 c7682de0 Ramiro Polla
oss_demuxer_deps_any="soundcard_h sys_soundcard_h"
838
oss_muxer_deps_any="soundcard_h sys_soundcard_h"
839 30fd06be Måns Rullgård
redir_demuxer_deps="network"
840 8eb793c4 Luca Abeni
rtp_muxer_deps="network rtp_protocol"
841 95c21842 Luca Abeni
rtsp_demuxer_deps="sdp_demuxer"
842
sdp_demuxer_deps="rtp_protocol mpegts_demuxer"
843 06e31011 Ramiro Polla
v4l2_demuxer_deps="linux_videodev2_h"
844
v4l_demuxer_deps="linux_videodev_h"
845 06eab4ba Ramiro Polla
x11_grab_device_demuxer_deps="x11grab XShmCreateImage"
846 4ec45764 Ramiro Polla
x11_grab_device_demuxer_extralibs="-lX11 -lXext"
847 30fd06be Måns Rullgård
848 912f3148 Diego Biurrun
# protocols
849 c08fb000 Alex Beregszaszi
http_protocol_deps="network"
850
rtp_protocol_deps="udp_protocol"
851
tcp_protocol_deps="network"
852
udp_protocol_deps="network"
853
854 912f3148 Diego Biurrun
# programs
855 fa859b4d Måns Rullgård
ffplay_deps="sdl"
856 6ad42348 Ramiro Polla
ffserver_deps="ffm_muxer rtp_protocol rtsp_demuxer"
857 4ec45764 Ramiro Polla
ffserver_extralibs='$ldl'
858
vhook_extralibs='$ldl'
859 a2830dca Måns Rullgård
860 912f3148 Diego Biurrun
861 0f3cb305 Fabrice Bellard
# set temporary file name
862 57514323 Zdenek Kabelac
if test ! -z "$TMPDIR" ; then
863 0f3cb305 Fabrice Bellard
    TMPDIR1="${TMPDIR}"
864 57514323 Zdenek Kabelac
elif test ! -z "$TEMPDIR" ; then
865 0f3cb305 Fabrice Bellard
    TMPDIR1="${TEMPDIR}"
866 3d204385 Nick Kurshev
else
867 0f3cb305 Fabrice Bellard
    TMPDIR1="/tmp"
868 3d204385 Nick Kurshev
fi
869
870 0f3cb305 Fabrice Bellard
TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
871
TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
872 f3ec2d46 Slavik Gnatenko
TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}"
873 0f3cb305 Fabrice Bellard
TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
874
TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"
875
876 de6d9b64 Fabrice Bellard
# default parameters
877 8a608357 Måns Rullgård
878 497237c7 Ramiro Polla
enable logging
879 2ba042a7 Måns Rullgård
logfile="config.err"
880 8a608357 Måns Rullgård
881
# installation paths
882 2266e085 Diego Biurrun
PREFIX="/usr/local"
883 c75560ae Diego Biurrun
libdir='$(PREFIX)/lib'
884 84c22efd Diego Biurrun
shlibdir="$libdir"
885 c75560ae Diego Biurrun
incdir='$(PREFIX)/include/ffmpeg'
886 4ca5ece5 Stefano Sabatini
mandir='$(PREFIX)/share/man'
887 c75560ae Diego Biurrun
bindir='$(PREFIX)/bin'
888 8a608357 Måns Rullgård
889
# toolchain
890 de6d9b64 Fabrice Bellard
cc="gcc"
891
ar="ar"
892 be7109c1 Michael Niedermayer
ranlib="ranlib"
893 4a908fbc Alex Beregszaszi
make="make"
894 0f3cb305 Fabrice Bellard
strip="strip"
895 8a608357 Måns Rullgård
asmalign_pot="unknown"
896 20369773 Dave Yeo
ln_s="ln -sf"
897 8a608357 Måns Rullgård
898
# machine
899 cc6a90dd Guillaume Poirier
arch=`uname -m`
900 38d0a8aa Guillaume Poirier
cpu="generic"
901 8a608357 Måns Rullgård
902
# OS
903 b9663405 Diego Biurrun
targetos=$(tolower $(uname -s))
904 8a608357 Måns Rullgård
905
# libraries
906 497237c7 Ramiro Polla
enable zlib
907 8a608357 Måns Rullgård
908
# configurable options
909 497237c7 Ramiro Polla
enable debug
910
enable dostrip
911
enable ffmpeg
912
enable ffplay
913
enable ffserver
914
enable ipv6
915
enable static
916
enable mpegaudio_hp
917
enable network
918 8400d6b8 Diego Biurrun
enable optimizations
919 497237c7 Ramiro Polla
enable protocols
920 8a608357 Måns Rullgård
vhook="default"
921
922
# build settings
923 baa3a937 Måns Rullgård
SHFLAGS='-shared -Wl,-soname,$@'
924 cab3ef82 Diego Biurrun
VHOOKSHFLAGS='$(SHFLAGS)'
925 e240ee67 Luca Barbato
LDLATEFLAGS='-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
926 c536cb09 Diego Biurrun
FFSERVERLDFLAGS=-Wl,-E
927 f39e56a8 Jacob Meuser
LDCONFIG="ldconfig"
928 f3ec2d46 Slavik Gnatenko
LIBPREF="lib"
929
LIBSUF=".a"
930 c5f14466 Ramiro Polla
FULLNAME='$(NAME)$(BUILDSUF)'
931
LIBNAME='$(LIBPREF)$(FULLNAME)$(LIBSUF)'
932 f3ec2d46 Slavik Gnatenko
SLIBPREF="lib"
933
SLIBSUF=".so"
934 c5f14466 Ramiro Polla
SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)'
935 b29bddab Diego Biurrun
SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
936
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
937 24743a76 Diego Biurrun
LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
938 ef0bc4c9 François Revol
939 c597172e Måns Rullgård
# find source path
940
source_path="`dirname \"$0\"`"
941 497237c7 Ramiro Polla
enable source_path_used
942 c597172e Måns Rullgård
if test -z "$source_path" -o "$source_path" = "." ; then
943
    source_path="`pwd`"
944 497237c7 Ramiro Polla
    disable source_path_used
945 c597172e Måns Rullgård
else
946
    source_path="`cd \"$source_path\"; pwd`"
947
    echo "$source_path" | grep -q '[[:blank:]]' &&
948 7483e694 Diego Biurrun
        die "Out of tree builds are impossible with whitespace in source path."
949 c597172e Måns Rullgård
fi
950
951
FFMPEG_CONFIGURATION="$@"
952
953 facbea95 Aurelien Jacobs
ENCODER_LIST=`sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' "$source_path/libavcodec/allcodecs.c"`
954
DECODER_LIST=`sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' "$source_path/libavcodec/allcodecs.c"`
955
PARSER_LIST=`sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' "$source_path/libavcodec/allcodecs.c"`
956
BSF_LIST=`sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' "$source_path/libavcodec/allcodecs.c"`
957
MUXER_LIST=`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' "$source_path/libavformat/allformats.c"`
958
DEMUXER_LIST=`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' "$source_path/libavformat/allformats.c"`
959 c4035e5d Luca Abeni
OUTDEV_LIST=`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' "$source_path/libavdevice/alldevices.c"`
960
INDEV_LIST=`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' "$source_path/libavdevice/alldevices.c"`
961 facbea95 Aurelien Jacobs
PROTOCOL_LIST=`sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' "$source_path/libavformat/allformats.c"`
962 c597172e Måns Rullgård
963 7483e694 Diego Biurrun
enable $ARCH_EXT_LIST \
964
       $DECODER_LIST \
965
       $ENCODER_LIST \
966
       $PARSER_LIST \
967
       $BSF_LIST \
968
       $DEMUXER_LIST \
969
       $MUXER_LIST \
970
       $PROTOCOL_LIST \
971
       $INDEV_LIST \
972
       $OUTDEV_LIST \
973 c597172e Måns Rullgård
974
die_unknown(){
975
    echo "Unknown option \"$1\"."
976
    echo "See $0 --help for available options."
977
    exit 1
978
}
979
980 794f8e97 Panagiotis Issaris
show_list() {
981 bf0c4afa Ramiro Polla
    suffix=_$1
982
    shift
983
    echo $* | sed s/$suffix//g | tr ' ' '\n' | sort
984 794f8e97 Panagiotis Issaris
    exit 0
985
}
986
987 c597172e Måns Rullgård
for opt do
988 7483e694 Diego Biurrun
    optval="${opt#*=}"
989
    case "$opt" in
990
    --log)
991
    ;;
992
    --log=*) logging="$optval"
993
    ;;
994
    --prefix=*) PREFIX="$optval"
995
    ;;
996
    --libdir=*) libdir="$optval"
997
    ;;
998
    --shlibdir=*) shlibdir="$optval"
999
    ;;
1000
    --incdir=*) incdir="$optval"
1001
    ;;
1002
    --mandir=*) mandir="$optval"
1003
    ;;
1004
    --source-path=*) source_path="$optval"
1005
    ;;
1006
    --cross-prefix=*) cross_prefix="$optval"
1007
    ;;
1008
    --cross-compile) enable cross_compile
1009
    ;;
1010
    --target-os=*) targetos="$optval"
1011
    ;;
1012
    --cc=*) cc="$optval"
1013
    ;;
1014
    --make=*) make="$optval"
1015
    ;;
1016
    --extra-cflags=*) add_cflags "$optval"
1017
    ;;
1018
    --extra-ldflags=*) add_ldflags "$optval"
1019
    ;;
1020
    --extra-libs=*) add_extralibs "$optval"
1021
    ;;
1022
    --build-suffix=*) BUILDSUF="$optval"
1023
    ;;
1024
    --arch=*) arch="$optval"
1025
    ;;
1026
    --cpu=*) cpu="$optval"
1027
    ;;
1028
    --enable-sunmlib) enable mlib
1029
    ;;
1030
    --disable-strip) disable dostrip
1031
    ;;
1032
    --disable-encoders) disable $ENCODER_LIST
1033
    ;;
1034
    --disable-decoders) disable $DECODER_LIST
1035
    ;;
1036
    --disable-muxers) disable $MUXER_LIST
1037
    ;;
1038
    --disable-demuxers) disable $DEMUXER_LIST
1039
    ;;
1040
    --disable-parsers) disable $PARSER_LIST
1041
    ;;
1042
    --disable-bsfs) disable $BSF_LIST
1043
    ;;
1044
    --disable-protocols) disable $PROTOCOL_LIST
1045
    ;;
1046 8fb1cb58 Diego Biurrun
    --disable-devices) disable $INDEV_LIST $OUTDEV_LIST
1047 9aa8ed9d Panagiotis Issaris
    ;;
1048 7483e694 Diego Biurrun
    --enable-*=*|--disable-*=*)
1049
    eval `echo "$opt" | sed 's/=/-/;s/--/action=/;s/-/ thing=/;s/-/ name=/'`
1050
    case "$thing" in
1051
        encoder|decoder|muxer|demuxer|parser|bsf|protocol) $action ${optval}_${thing} ;;
1052
        *) die_unknown "$opt" ;;
1053
    esac
1054
    ;;
1055
    --enable-?*|--disable-?*)
1056
    eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'`
1057
    echo "$CMDLINE_SELECT" | grep -q "^ *$option\$" || die_unknown $opt
1058
    $action $option
1059
    ;;
1060
    --list-*)
1061
        NAME="${opt#--list-}"
1062
        is_in $NAME $COMPONENT_LIST || die_unknown $opt
1063
        NAME=${NAME%s}
1064
        eval show_list $NAME \$$(toupper $NAME)_LIST
1065
    ;;
1066
    --help|-h) show_help
1067
    ;;
1068
    *)
1069
    die_unknown $opt
1070
    ;;
1071
    esac
1072 c597172e Måns Rullgård
done
1073
1074 270739bb Måns Rullgård
case "$arch" in
1075 7483e694 Diego Biurrun
    i386|i486|i586|i686|i86pc|BePC)
1076
        arch="x86_32"
1077
        enable fast_unaligned
1078
    ;;
1079
    x86_64|amd64)
1080
        arch="x86_32"
1081
        enable fast_unaligned
1082
        canon_arch="`$cc -dumpmachine | sed -e 's,\([^-]*\)-.*,\1,'`"
1083
        if [ x"$canon_arch" = x"x86_64" -o x"$canon_arch" = x"amd64" ]; then
1084
            if [ -z "`echo $CFLAGS | grep -- -m32`"  ]; then
1085
                arch="x86_64"
1086
                enable fast_64bit
1087
            fi
1088
        fi
1089
    ;;
1090
    # armv4l is a subset of armv[567]*l
1091
    arm|armv[4567]*l)
1092
        arch="armv4l"
1093
    ;;
1094
    alpha)
1095
        arch="alpha"
1096
        enable fast_64bit
1097
    ;;
1098
    "Power Macintosh"|ppc|powerpc)
1099
        arch="powerpc"
1100
    ;;
1101
    ppc64)
1102
        arch="powerpc"
1103 c2a29455 Aurelien Jacobs
        enable fast_64bit
1104 d474299a Måns Rullgård
    ;;
1105 7483e694 Diego Biurrun
    mips|mipsel|IP*)
1106
        arch="mips"
1107 d474299a Måns Rullgård
    ;;
1108 7483e694 Diego Biurrun
    sun4u|sparc64)
1109
        arch="sparc64"
1110
        enable fast_64bit
1111 d474299a Måns Rullgård
    ;;
1112 7483e694 Diego Biurrun
    sparc)
1113
        arch="sparc"
1114 d474299a Måns Rullgård
    ;;
1115 7483e694 Diego Biurrun
    sh4)
1116
        arch="sh4"
1117 d474299a Måns Rullgård
    ;;
1118 7483e694 Diego Biurrun
    parisc)
1119
        arch="parisc"
1120 d474299a Måns Rullgård
    ;;
1121 7483e694 Diego Biurrun
    parisc64)
1122
        arch="parisc"
1123
        enable fast_64bit
1124 d474299a Måns Rullgård
    ;;
1125 7483e694 Diego Biurrun
    s390|s390x)
1126
        arch="s390"
1127 d474299a Måns Rullgård
    ;;
1128 7483e694 Diego Biurrun
    m68k)
1129
        arch="m68k"
1130 d474299a Måns Rullgård
    ;;
1131 7483e694 Diego Biurrun
    ia64)
1132
        arch="ia64"
1133
        enable fast_64bit
1134 d474299a Måns Rullgård
    ;;
1135 7483e694 Diego Biurrun
    bfin)
1136
        arch="bfin"
1137
    ;;
1138
    *)
1139
        arch="unknown"
1140 d474299a Måns Rullgård
    ;;
1141 ef0bc4c9 François Revol
esac
1142 de6d9b64 Fabrice Bellard
1143 7483e694 Diego Biurrun
enable $arch
1144
enabled_any x86_32 x86_64 && enable x86
1145
enabled     sparc64       && enable sparc
1146
1147
# OS specific
1148
case $targetos in
1149
    beos|haiku|zeta)
1150
        PREFIX="$HOME/config"
1151
        # helps building libavcodec
1152
        add_cflags "-DPIC -fomit-frame-pointer"
1153
        # 3 gcc releases known for BeOS, each with ugly bugs
1154
        gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
1155
        case "$gcc_version" in
1156
          2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
1157
            disable mmx
1158
            ;;
1159
          *20010315*) echo "BeBits gcc"
1160
            add_cflags "-fno-expensive-optimizations"
1161
            ;;
1162
        esac
1163
        LDCONFIG="echo ignoring ldconfig"
1164
        SHFLAGS=-nostart
1165
        # enable BeOS things
1166
        enable audio_beos
1167
        # no need for libm, but the inet stuff
1168
        # Check for BONE
1169
        # XXX: actually should check for NOT net_server
1170
        if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then
1171
            network_extralibs="-lbind -lsocket"
1172
        else
1173
            enable beos_netserver
1174
            network_extralibs="-lnet"
1175
        fi ;;
1176
    sunos)
1177
        FFSERVERLDFLAGS=""
1178
        SHFLAGS='-shared -Wl,-h,$@'
1179
        network_extralibs="-lsocket -lnsl"
1180
        ;;
1181
    netbsd)
1182
        oss_demuxer_extralibs="-lossaudio"
1183
        oss_muxer_extralibs="-lossaudio"
1184
        ;;
1185
    openbsd)
1186
        disable need_memalign
1187
        LIBOBJFLAGS='$(PIC)'
1188
        LDCONFIG='ldconfig -m $(SHLIBDIR)'
1189
        SHFLAGS='-shared'
1190
        SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF).$(LIBVERSION)'
1191
        SLIBNAME_WITH_VERSION='$(SLIBNAME)'
1192
        SLIBNAME_WITH_MAJOR='$(SLIBNAME)'
1193
        oss_demuxer_extralibs="-lossaudio"
1194
        oss_muxer_extralibs="-lossaudio"
1195
        ;;
1196
    freebsd)
1197
        disable need_memalign
1198
        ;;
1199
    bsd/os)
1200
        osextralibs="-lpoll -lgnugetopt"
1201
        strip="strip -d"
1202
        ;;
1203
    darwin)
1204
        disable need_memalign
1205
        SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(SPPVERSION),-compatibility_version,$(SPPVERSION) -Wl,-read_only_relocs,suppress'
1206
        VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(SHLIBDIR)/vhook/$@'
1207
        strip="strip -x"
1208
        FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
1209
        SLIBSUF=".dylib"
1210
        SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)'
1211
        SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)'
1212
        FFSERVERLDFLAGS=-Wl,-bind_at_load
1213
        ;;
1214
    mingw32*)
1215
        targetos=mingw32
1216
        shlibdir="$bindir"
1217
        VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil'
1218
        VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
1219
        if enabled swscaler; then
1220
            VHOOKSHFLAGS="$VHOOKSHFLAGS -L\$(BUILD_ROOT)/libswscale"
1221
            VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)"
1222
        fi
1223
        disable ffserver
1224
        SLIBPREF=""
1225
        SLIBSUF=".dll"
1226
        EXESUF=".exe"
1227
        SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
1228
        SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
1229
        SLIB_EXTRA_CMD='-lib /machine:i386 /def:$(@:$(SLIBSUF)=.def)'
1230
        SLIB_INSTALL_EXTRA_CMD='-install -m 644 $(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"'
1231
        SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"'
1232
        SHFLAGS='-shared -Wl,--output-def,$(@:$(SLIBSUF)=.def) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base'
1233
        ;;
1234
    cygwin*)
1235
        targetos=cygwin
1236
        shlibdir="$bindir"
1237
        VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil'
1238
        VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
1239
        if enabled swscaler; then
1240
            VHOOKSHFLAGS="$VHOOKSHFLAGS -L\$(BUILD_ROOT)/libswscale"
1241
            VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)"
1242
        fi
1243
        EXESUF=".exe"
1244
        SLIBPREF="cyg"
1245
        SLIBSUF=".dll"
1246
        SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
1247
        SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
1248
        SHFLAGS='-shared -Wl,--enable-auto-image-base'
1249
        ;;
1250 4f365f37 Michael Kostylev
    *-dos|freedos|opendos)
1251
        enable memalign_hack
1252
        disable ffplay ffserver vhook
1253
        disable $INDEV_LIST $OUTDEV_LIST
1254
        network_extralibs="-lsocket"
1255
        EXESUF=".exe"
1256
        ;;
1257 7483e694 Diego Biurrun
    linux)
1258
        LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS"
1259
        enable dv1394
1260
        ;;
1261
    irix*)
1262
        targetos=irix
1263
        ranlib="echo ignoring ranlib"
1264
        ;;
1265 d22e8442 Dave Yeo
    os/2*)
1266
        ar="emxomfar -p256"
1267
        ranlib="echo ignoring ranlib"
1268
        strip="lxlite"
1269
        ln_s="cp -f"
1270
        add_cflags "-Zomf"
1271
        EXESUF=".exe"
1272
        FFLDFLAGS="-Zomf -Zbin-files -Zargs-wild -Zmap"
1273
        SHFLAGS='$(NAME).def -Zdll -Zomf'
1274
        FFSERVERLDFLAGS=""
1275
        LIBSUF="_s.lib"
1276
        SLIBPREF=""
1277
        SLIBSUF=".dll"
1278
        SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
1279
        SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(shell echo $(NAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)'
1280
        SLIB_CREATE_DEF_CMD='echo LIBRARY $(SLIBNAME_WITH_MAJOR) INITINSTANCE TERMINSTANCE > $(NAME).def; \
1281
          echo PROTMODE >> $(NAME).def; \
1282
          echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(NAME).def; \
1283
          echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(NAME).def; \
1284
          echo EXPORTS >> $(NAME).def; \
1285
          emxexp -o $(OBJS) >> $(NAME).def'
1286
        SLIB_EXTRA_CMD='emximp -o $(LIBPREF)$(NAME)_dll.a $(NAME).def; \
1287
          emximp -o $(LIBPREF)$(NAME)_dll.lib $(NAME).def;'
1288
        SLIB_INSTALL_EXTRA_CMD='install -m 644 $(LIBPREF)$(NAME)_dll.a $(LIBPREF)$(NAME)_dll.lib "$(LIBDIR)"'
1289
        SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.a "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.lib'
1290
        vhook="no"
1291
        ;;
1292
1293 7483e694 Diego Biurrun
    *)
1294
        targetos="${targetos}-UNKNOWN"
1295
        ;;
1296
esac
1297
1298 c597172e Måns Rullgård
add_extralibs $osextralibs
1299 de6d9b64 Fabrice Bellard
1300 e3c00e34 Diego Biurrun
if ! disabled logging ; then
1301 90be59ef Ramiro Polla
    enabled logging || logfile="$logging"
1302 57bd82d4 Måns Rullgård
    echo "# $0 $@" >$logfile
1303
    set >>$logfile
1304 2ba042a7 Måns Rullgård
else
1305
    logfile=/dev/null
1306 57bd82d4 Måns Rullgård
fi
1307 e89b8b0a Diego Biurrun
1308 28d8e661 Diego Biurrun
# Combine FFLDFLAGS and the LDFLAGS environment variable.
1309
LDFLAGS="$FFLDFLAGS $LDFLAGS"
1310 e89b8b0a Diego Biurrun
1311 497237c7 Ramiro Polla
test -n "$cross_prefix" && enable cross_compile
1312 1ea46bed Måns Rullgård
cc="${cross_prefix}${cc}"
1313
ar="${cross_prefix}${ar}"
1314
ranlib="${cross_prefix}${ranlib}"
1315
strip="${cross_prefix}${strip}"
1316
1317 320d060a Diego Biurrun
# we need to build at least one lib type
1318 93b3c083 Måns Rullgård
if ! enabled_any static shared; then
1319 320d060a Diego Biurrun
    cat <<EOF
1320
At least one library type must be built.
1321
Specify --enable-static to build the static libraries or --enable-shared to
1322
build the shared libraries as well. To only build the shared libraries specify
1323
--disable-static in addition to --enable-shared.
1324
EOF
1325
    exit 1;
1326
fi
1327
1328 abc4e572 Diego Biurrun
disabled static && LIBNAME=""
1329 2a320695 Ramiro Polla
1330 a2234ceb Ramiro Polla
if enabled_any libfaad libfaadbin ; then
1331
    if check_header faad.h; then
1332
        check_cc << EOF
1333
#include <faad.h>
1334
#ifndef FAAD2_VERSION
1335
ok faad1
1336
#endif
1337 db817cf3 Diego Biurrun
int main(void) { return 0; }
1338 a2234ceb Ramiro Polla
EOF
1339
        test $? = 0 && enable libfaad2
1340
    else
1341 ff3dac65 Diego Biurrun
        die "FAAD test failed."
1342 a2234ceb Ramiro Polla
    fi
1343
fi
1344
1345
1346 93b3c083 Måns Rullgård
if ! enabled gpl; then
1347 54118497 Ramiro Polla
    die_gpl_disabled(){
1348
        name=$1
1349
        shift
1350
        enabled_any $@ && die "$name is under GPL and --enable-gpl is not specified."
1351
    }
1352
    die_gpl_disabled "The Postprocessing code" pp
1353 7bc5f2a8 Diego Biurrun
    die_gpl_disabled "liba52"                  liba52
1354 1cc60c47 Diego Biurrun
    die_gpl_disabled "libx264"                 libx264
1355
    die_gpl_disabled "libxvidcore"             libxvid
1356 54118497 Ramiro Polla
    die_gpl_disabled "FAAD2"                   libfaad2
1357
    die_gpl_disabled "The X11 grabber"         x11grab
1358
    die_gpl_disabled "The software scaler"     swscaler
1359 ebb810d9 Ramiro Polla
fi
1360 b2e3c528 Michael Niedermayer
1361 3fe142e2 Diego Biurrun
if ! enabled nonfree && enabled_any libamr_nb libamr_wb; then
1362
    die "libamr is nonfree and --enable-nonfree is not specified."
1363
fi
1364
1365 9eeed841 Måns Rullgård
check_deps $ARCH_EXT_LIST
1366 0f3cb305 Fabrice Bellard
1367 5d323602 Måns Rullgård
test -z "$need_memalign" && need_memalign="$mmx"
1368
1369 cf9d24ad Dan Christiansen
#Darwin CC versions
1370 ced75d92 Diego Biurrun
if test $targetos = darwin; then
1371 b2924696 Roman Shaposhnik
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
1372 30a3e5d4 Nigel Pearson
        add_cflags "-qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto"
1373 cf9d24ad Dan Christiansen
    else
1374 26c1b3be Diego Biurrun
        add_cflags "-no-cpp-precomp -pipe"
1375
        check_cflags "-force_cpusubtype_ALL"
1376
        check_cflags "-Wno-sign-compare"
1377 7799eeec Diego Biurrun
        disabled shared && add_cflags -mdynamic-no-pic
1378 cf9d24ad Dan Christiansen
    fi
1379 2a1a6b64 Michael Niedermayer
fi
1380
1381 8400d6b8 Diego Biurrun
disabled optimizations || add_cflags -fomit-frame-pointer
1382 cf9d24ad Dan Christiansen
1383 a4adb608 Michael Niedermayer
# Add processor-specific flags
1384 38d0a8aa Guillaume Poirier
if test $cpu != "generic"; then
1385 bc8ec47b Måns Rullgård
    warn_altivec(){
1386
        $1 altivec && echo "WARNING: Tuning for $2 but AltiVec $1.";
1387 1658bc4f Diego Biurrun
    }
1388 38d0a8aa Guillaume Poirier
    case $cpu in
1389 bb270c08 Diego Biurrun
        601|ppc601|PowerPC601)
1390 1c5d830c Guillaume Poirier
            add_cflags "-mcpu=601"
1391 bc8ec47b Måns Rullgård
            warn_altivec enabled PPC601
1392 bb270c08 Diego Biurrun
        ;;
1393
        603*|ppc603*|PowerPC603*)
1394 1c5d830c Guillaume Poirier
            add_cflags "-mcpu=603"
1395 bc8ec47b Måns Rullgård
            warn_altivec enabled PPC603
1396 bb270c08 Diego Biurrun
        ;;
1397
        604*|ppc604*|PowerPC604*)
1398 1c5d830c Guillaume Poirier
            add_cflags "-mcpu=604"
1399 bc8ec47b Måns Rullgård
            warn_altivec enabled PPC604
1400 bb270c08 Diego Biurrun
        ;;
1401
        G3|g3|75*|ppc75*|PowerPC75*)
1402 1c5d830c Guillaume Poirier
            add_cflags "-mcpu=750 -mpowerpc-gfxopt"
1403 bc8ec47b Måns Rullgård
            warn_altivec enabled PPC75x
1404 bb270c08 Diego Biurrun
        ;;
1405
        G4|g4|745*|ppc745*|PowerPC745*)
1406 1c5d830c Guillaume Poirier
            add_cflags "-mcpu=7450 -mpowerpc-gfxopt"
1407 bc8ec47b Måns Rullgård
            warn_altivec disabled PPC745x
1408 bb270c08 Diego Biurrun
        ;;
1409
        74*|ppc74*|PowerPC74*)
1410 1c5d830c Guillaume Poirier
            add_cflags "-mcpu=7400 -mpowerpc-gfxopt"
1411 bc8ec47b Måns Rullgård
            warn_altivec disabled PPC74xx
1412 bb270c08 Diego Biurrun
        ;;
1413
        G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
1414 1c5d830c Guillaume Poirier
            add_cflags "-mcpu=970 -mpowerpc-gfxopt -mpowerpc64"
1415 bc8ec47b Måns Rullgård
            warn_altivec disabled PPC970
1416 9cafbd6c Måns Rullgård
            enable ppc64
1417 bb270c08 Diego Biurrun
        ;;
1418 e07e357d Luca Barbato
        Cell|CELL|cell)
1419
            add_cflags "-mcpu=cell"
1420
            warn_altivec disabled Cell
1421 9cafbd6c Måns Rullgård
            enable ppc64
1422 e07e357d Luca Barbato
        ;;
1423 e7768fc5 Guillaume Poirier
        # targets that do NOT support conditional mov (cmov)
1424
        i[345]86|pentium|pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3)
1425 38d0a8aa Guillaume Poirier
            add_cflags "-march=$cpu"
1426 497237c7 Ramiro Polla
            disable cmov
1427 e7768fc5 Guillaume Poirier
        ;;
1428
        # targets that do support conditional mov (cmov)
1429 416519dd Måns Rullgård
        i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64|k8|opteron|athlon-fx|core2)
1430 e7768fc5 Guillaume Poirier
            add_cflags "-march=$cpu"
1431 497237c7 Ramiro Polla
            enable cmov
1432
            enable fast_cmov
1433 94e4c3a3 Guillaume Poirier
        ;;
1434
        # targets that do support conditional mov but on which it's slow
1435 800a5a19 Igor Mozolevsky
        pentium4|pentium4m|prescott|nocona)
1436 94e4c3a3 Guillaume Poirier
            add_cflags "-march=$cpu"
1437 497237c7 Ramiro Polla
            enable cmov
1438
            disable fast_cmov
1439 bb270c08 Diego Biurrun
        ;;
1440 d7b34d08 Diego Biurrun
        sparc64)
1441 1c5d830c Guillaume Poirier
            add_cflags "-mcpu=v9"
1442 d7b34d08 Diego Biurrun
        ;;
1443 8684704b Marc Hoffman
        bf*) #bf531 bf532 bf533 bf561 bf5xx all get this config
1444
            add_cflags "-mfdpic"
1445 846dffeb Diego Biurrun
            add_ldflags "-mfdpic"
1446 8684704b Marc Hoffman
        ;;
1447 6b19786b Måns Rullgård
        arm*)
1448
            add_cflags "-mcpu=$cpu"
1449
        ;;
1450 bb270c08 Diego Biurrun
        *)
1451 7483e694 Diego Biurrun
            echo "WARNING: Unknown CPU \"$cpu\", ignored."
1452 bb270c08 Diego Biurrun
        ;;
1453 a4adb608 Michael Niedermayer
    esac
1454
fi
1455
1456 412c1562 Måns Rullgård
gnu_make(){
1457
    $1 --version 2>&1 | grep -q GNU
1458
}
1459
1460
if ! gnu_make $make; then
1461
    gnu_make gmake && make=gmake || die "GNU make not found."
1462
fi
1463
1464 be0d52ab Måns Rullgård
# make sure we can execute files in $TMPDIR
1465
cat >$TMPE 2>>$logfile <<EOF
1466
#! /bin/sh
1467
EOF
1468
chmod +x $TMPE >>$logfile 2>&1
1469
if ! $TMPE >>$logfile 2>&1; then
1470
    cat <<EOF
1471
Unable to create and execute files in $TMPDIR1.  Set the TMPDIR environment
1472 68300911 Diego Biurrun
variable to another directory and make sure that $TMPDIR1 is not mounted
1473
noexec.
1474 be0d52ab Måns Rullgård
EOF
1475
    die "Sanity test failed."
1476
fi
1477 0244f743 Måns Rullgård
rm $TMPE
1478 be0d52ab Måns Rullgård
1479 1a268acc Måns Rullgård
# compiler sanity check
1480
check_exec <<EOF
1481 e5af4a11 Diego Biurrun
int main(void){
1482 1a268acc Måns Rullgård
    return 0;
1483
}
1484
EOF
1485
if test "$?" != 0; then
1486
    echo "$cc is unable to create an executable file."
1487 93b3c083 Måns Rullgård
    if test -z "$cross_prefix" && ! enabled cross_compile ; then
1488 1a268acc Måns Rullgård
        echo "If $cc is a cross-compiler, use the --cross-compile option."
1489 c7ae6345 Måns Rullgård
        echo "Only do this if you know what cross compiling means."
1490 1a268acc Måns Rullgård
    fi
1491
    die "C compiler test failed."
1492
fi
1493
1494 9eeed841 Måns Rullgård
if enabled x86; then
1495 44965991 Panagiotis Issaris
    # check whether EBP is available on x86
1496
    # As 'i' is stored on the stack, this program will crash
1497
    # if the base pointer is used to access it because the
1498
    # base pointer is cleared in the inline assembly code.
1499 7dfef245 Måns Rullgård
    check_exec_crash <<EOF && enable ebp_available
1500 44965991 Panagiotis Issaris
    volatile int i=0;
1501
    asm volatile (
1502
        "xorl %%ebp, %%ebp"
1503
    ::: "%ebp");
1504
    return i;
1505
EOF
1506
1507
    # check wether EBX is available on x86
1508 940f335a Måns Rullgård
    check_asm ebx_available '"":::"%ebx"'
1509 8e380710 Loren Merritt
1510
    # check whether binutils is new enough to compile SSSE3
1511 940f335a Måns Rullgård
    enabled ssse3 && check_asm ssse3 '"pabsw %xmm0, %xmm0"'
1512 44965991 Panagiotis Issaris
fi
1513
1514 87ea51e0 Luca Barbato
# check for assembler specific support
1515
1516 cc6a90dd Guillaume Poirier
if test $arch = "powerpc"; then
1517 497237c7 Ramiro Polla
check_cc <<EOF && enable dcbzl
1518 87ea51e0 Luca Barbato
int main(void) {
1519
    register long zero = 0;
1520
    char data[1024];
1521
    asm volatile("dcbzl %0, %1" : : "b" (data), "r" (zero));
1522
return 0;
1523
}
1524
EOF
1525
fi
1526
1527 57bd82d4 Måns Rullgård
# check for SIMD availability
1528
1529 115329f1 Diego Biurrun
# AltiVec flags: The FSF version of GCC differs from the Apple version
1530 9eeed841 Måns Rullgård
if enabled altivec; then
1531 3ae3b721 Ramiro Polla
    test -n "`$cc -v 2>&1 | grep version | grep Apple`" &&
1532
        add_cflags "-faltivec" ||
1533 0182fee8 Måns Rullgård
        add_cflags "-maltivec -mabi=altivec"
1534 b6e52719 Magnus Damm
1535 0182fee8 Måns Rullgård
    check_header altivec.h
1536 a9a07762 Michael Niedermayer
1537 0182fee8 Måns Rullgård
    # check if our compiler supports Motorola AltiVec C API
1538 3ae3b721 Ramiro Polla
    enabled altivec_h &&
1539
        inc_altivec_h="#include <altivec.h>" ||
1540 f25fc9b1 Måns Rullgård
        inc_altivec_h=
1541 497237c7 Ramiro Polla
    check_cc <<EOF || disable altivec
1542 dcd479c0 Måns Rullgård
$inc_altivec_h
1543 a9a07762 Michael Niedermayer
int main(void) {
1544
    vector signed int v1, v2, v3;
1545
    v1 = vec_add(v2,v3);
1546
    return 0;
1547
}
1548
EOF
1549
fi
1550 ab6c65f6 Brian Foley
1551 940f335a Måns Rullgård
enabled armv5te && check_asm armv5te '"qadd r0, r0, r0"'
1552
enabled armv6   && check_asm armv6   '"sadd16 r0, r0, r0"'
1553
enabled iwmmxt  && check_asm iwmmxt  '"wunpckelub wr6, wr4"'
1554
enabled mmi     && check_asm mmi     '"lq $2, 0($2)"'
1555
enabled vis     && check_asm vis     '"pdist %f0, %f0, %f0"' -mcpu=ultrasparc
1556 bd9d34a0 Diego Biurrun
1557 8b03def6 Diego Biurrun
enabled vis && add_cflags "-mcpu=ultrasparc -mtune=ultrasparc"
1558
1559 57bd82d4 Måns Rullgård
# ---
1560
# big/little-endian test
1561 9eebe687 Måns Rullgård
check_cc <<EOF || die "endian test failed"
1562
unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';
1563 a3999908 Michael Niedermayer
EOF
1564 e89d9fd8 Måns Rullgård
grep -q BIGE $TMPO && enable bigendian
1565 487a54d7 Fabrice Bellard
1566 a3999908 Michael Niedermayer
# ---
1567 3d204385 Nick Kurshev
# check availability of some header files
1568
1569 a98bb16d Ramiro Polla
if check_func dlopen; then
1570
    ldl=
1571
elif check_func dlopen -ldl; then
1572
    ldl=-ldl
1573 8bf5d58f Michael Niedermayer
fi
1574
1575 7483e694 Diego Biurrun
check_func  fork
1576
check_func  gethrtime
1577
check_func  getrusage
1578 094c09bb Michael Kostylev
check_func  inet_aton $network_extralibs
1579 7483e694 Diego Biurrun
check_func  memalign
1580
check_func  mkstemp
1581 a98bb16d Ramiro Polla
check_func2 windows.h GetProcessTimes
1582 6ffa87d3 Ramiro Polla
1583 a98bb16d Ramiro Polla
check_header byteswap.h
1584 e16e49ac Ramiro Polla
check_header conio.h
1585 a98bb16d Ramiro Polla
check_header dlfcn.h
1586
check_header malloc.h
1587
check_header termios.h
1588
1589
if ! enabled_any memalign memalign_hack && enabled need_memalign ; then
1590
    die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
1591
fi
1592 e16e49ac Ramiro Polla
1593 497237c7 Ramiro Polla
enabled zlib && check_lib zlib.h zlibVersion -lz || disable zlib
1594 57bd82d4 Måns Rullgård
1595 b0c858d8 François Revol
# ffserver uses poll(),
1596
# if it's not found we can emulate it using select().
1597
if enabled ffserver; then
1598
    check_header sys/poll.h
1599 81644c2e Michael Kostylev
    check_header sys/select.h
1600 b0c858d8 François Revol
fi
1601
1602 57bd82d4 Måns Rullgård
# check for some common methods of building with pthread support
1603
# do this before the optional library checks as some of them require pthreads
1604
if enabled pthreads; then
1605 9e7fd101 Måns Rullgård
    if check_func pthread_create; then
1606
        :
1607
    elif check_func pthread_create -pthread; then
1608
        add_cflags -pthread
1609 afc9aee2 Diego Biurrun
        add_extralibs -pthread
1610 9e7fd101 Måns Rullgård
    elif check_func pthread_create -pthreads; then
1611
        add_cflags -pthreads
1612 afc9aee2 Diego Biurrun
        add_extralibs -pthreads
1613 9e7fd101 Måns Rullgård
    elif ! check_lib pthread.h pthread_create -lpthread; then
1614
        die "ERROR: can't find pthreads library"
1615
    fi
1616 57bd82d4 Måns Rullgård
fi
1617
1618 8eee7025 Diego Biurrun
for thread in $THREADS_LIST; do
1619 e5f94c2b Ramiro Polla
    if enabled $thread; then
1620 3ae3b721 Ramiro Polla
        test -n "$thread_type" &&
1621
            die "ERROR: Only one thread type must be selected." ||
1622 e5f94c2b Ramiro Polla
            thread_type="$thread"
1623
    fi
1624
done
1625
1626 fdf88598 Måns Rullgård
check_lib math.h sin -lm
1627
1628 a33cab3a Michael Kostylev
# test for C99 functions in math.h
1629
for func in llrint lrint lrintf round roundf; do
1630
    check_exec <<EOF && enable $func || disable $func
1631 f32adb22 Måns Rullgård
#define _ISOC9X_SOURCE  1
1632
#include <math.h>
1633 a33cab3a Michael Kostylev
int main(void) { return ($func(3.999f) > 0)?0:1; }
1634 f32adb22 Måns Rullgård
EOF
1635 a33cab3a Michael Kostylev
done
1636 f32adb22 Måns Rullgård
1637 57bd82d4 Måns Rullgård
# these are off by default, so fail if requested and not available
1638 79fda097 Diego Biurrun
enabled avisynth   && require2 vfw32 "windows.h vfw.h" AVIFileInit -lvfw32
1639 7483e694 Diego Biurrun
enabled liba52     && require  liba52 a52dec/a52.h a52_init -la52
1640
enabled libamr_nb  && require  libamrnb amrnb/interf_dec.h Speech_Decode_Frame_init -lamrnb -lm
1641
enabled libamr_wb  && require  libamrwb amrwb/dec_if.h D_IF_init -lamrwb -lm
1642 79fda097 Diego Biurrun
enabled libfaac    && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac
1643
enabled libfaad    && require2 libfaad faad.h faacDecOpen -lfaad
1644 7483e694 Diego Biurrun
enabled libgsm     && require  libgsm gsm.h gsm_create -lgsm
1645
enabled libmp3lame && require  LAME lame/lame.h lame_init -lmp3lame -lm
1646
enabled libnut     && require  libnut libnut.h nut_demuxer_init -lnut
1647
enabled libtheora  && require  libtheora theora/theora.h theora_info_init -ltheora -logg
1648
enabled libvorbis  && require  libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbisenc -lvorbis -logg
1649
enabled libx264    && require  x264 x264.h x264_encoder_open -lx264
1650
enabled libxvid    && require  Xvid xvid.h xvid_global -lxvidcore
1651
enabled mlib       && require  mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
1652 8ac17293 Steve L'Homme
1653 6ea67bbb Justin Ruggles
# disable the native AC-3 decoder if liba52 is enabled
1654
enabled liba52 && disable ac3_decoder
1655
1656 0b4a1821 Alessandro Sappia
# libdc1394 check
1657
if enabled libdc1394; then
1658
    { check_lib dc1394/dc1394.h dc1394_new -ldc1394 -lraw1394 &&
1659
        enable libdc1394_2; } ||
1660
    { check_lib libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394 &&
1661
        enable libdc1394_1; } ||
1662
    die "ERROR: No version of libdc1394 found "
1663
fi
1664
1665
1666 c13e1abd Falk Hüffner
_restrict=
1667
for restrict_keyword in restrict __restrict__ __restrict; do
1668 57bd82d4 Måns Rullgård
    check_cc <<EOF && _restrict=$restrict_keyword && break
1669 dcd479c0 Måns Rullgård
void foo(char * $restrict_keyword p);
1670
EOF
1671 c13e1abd Falk Hüffner
done
1672
1673 703afd07 Måns Rullgård
test "$vhook" = "default" && vhook="$dlopen"
1674 a8721c09 Fabrice Bellard
1675 b0268cc0 Ramiro Polla
if test "$targetos" = cygwin -o "$targetos" = mingw32 && enabled_all static vhook ; then
1676 497237c7 Ramiro Polla
    disable vhook
1677 fbb9d104 Víctor Paesa
    echo
1678 b0268cc0 Ramiro Polla
    echo "At the moment vhooks don't work on Cygwin or MinGW static builds."
1679 fbb9d104 Víctor Paesa
    echo "Patches welcome."
1680
    echo
1681
fi
1682
1683 8d923001 Måns Rullgård
if enabled vhook; then
1684
    check_ldflags -rdynamic
1685
    check_ldflags -export-dynamic
1686
fi
1687 bfd2edeb Michael Niedermayer
1688 eea50282 Måns Rullgård
check_foo_config imlib2 imlib2 Imlib2.h imlib_load_font
1689
check_foo_config freetype2 freetype ft2build.h FT_Init_FreeType
1690 04511d53 Philip Gladstone
1691 a86b921c Fabrice Bellard
##########################################
1692 29799f8b Diego Biurrun
# SDL check
1693 a86b921c Fabrice Bellard
1694 497237c7 Ramiro Polla
disable sdl_too_old
1695
disable sdl
1696 6a1a892f Frantisek Dvorak
SDL_CONFIG="${cross_prefix}sdl-config"
1697 225e21ef Måns Rullgård
if "${SDL_CONFIG}" --version >/dev/null 2>&1; then
1698
    sdl_cflags=`"${SDL_CONFIG}" --cflags`
1699
    temp_cflags $sdl_cflags
1700 dcd479c0 Måns Rullgård
    temp_extralibs `"${SDL_CONFIG}" --libs`
1701 1ca5d97f KO Myung-Hun
    if check_lib2 SDL.h SDL_Init; then
1702 dcd479c0 Måns Rullgård
        _sdlversion=`"${SDL_CONFIG}" --version | sed 's/[^0-9]//g'`
1703 29f3b38a Måns Rullgård
        if test "$_sdlversion" -lt 121 ; then
1704 497237c7 Ramiro Polla
            enable sdl_too_old
1705 dcd479c0 Måns Rullgård
        else
1706 497237c7 Ramiro Polla
            enable sdl
1707 225e21ef Måns Rullgård
            check_cc $sdl_cflags <<EOF && enable sdl_video_size
1708 29f3b38a Måns Rullgård
#include <SDL.h>
1709 d6773f56 Diego Biurrun
int main(int argc, char **argv){
1710 29f3b38a Måns Rullgård
    const SDL_VideoInfo *vi = SDL_GetVideoInfo();
1711
    int w = vi->current_w;
1712
    return 0;
1713
}
1714
EOF
1715 dcd479c0 Måns Rullgård
        fi
1716
    fi
1717 29f3b38a Måns Rullgård
    restore_flags
1718 c3f6b472 Michael Niedermayer
fi
1719 57bd82d4 Måns Rullgård
1720 d5697779 Måns Rullgård
texi2html -version >/dev/null 2>&1 && enable texi2html || disable texi2html
1721 146ea952 Nicolas Boos
1722 72be9e73 Dave Yeo
check_type sys/socket.h socklen_t
1723
1724 7a91333f Hans Zandbelt
##########################################
1725 73b46a95 Ramiro Polla
# Network check
1726
1727
if enabled network; then
1728
    # Prefer arpa/inet.h over winsock2
1729
    if check_header arpa/inet.h ; then
1730
        check_func closesocket
1731
    elif check_header winsock2.h ; then
1732 ea10ddde Ramiro Polla
        network_extralibs="-lws2_32"
1733 72be9e73 Dave Yeo
        check_type ws2tcpip.h socklen_t
1734 73b46a95 Ramiro Polla
        check_func2 winsock2.h closesocket
1735
    fi
1736
fi
1737
1738
##########################################
1739 29799f8b Diego Biurrun
# IPv6 check
1740 7a91333f Hans Zandbelt
1741 497237c7 Ramiro Polla
enabled network && enabled ipv6 && check_ld <<EOF && enable ipv6 || disable ipv6
1742 7a91333f Hans Zandbelt
#include <sys/types.h>
1743
#include <sys/socket.h>
1744
#include <netinet/in.h>
1745
#include <netdb.h>
1746 db817cf3 Diego Biurrun
int main(void) {
1747 7483e694 Diego Biurrun
    struct sockaddr_storage saddr;
1748
    struct ipv6_mreq mreq6;
1749
    getaddrinfo(0,0,0,0);
1750
    getnameinfo(0,0,0,0,0,0,0);
1751
    IN6_IS_ADDR_MULTICAST((const struct in6_addr *)0);
1752 7a91333f Hans Zandbelt
}
1753
EOF
1754
1755 06e31011 Ramiro Polla
check_header linux/videodev.h
1756
check_header linux/videodev2.h
1757 47f38850 Luca Abeni
1758 f8aa696f Diego Biurrun
# check for ioctl_meteor.h, ioctl_bt848.h and alternatives
1759 1c915f83 Ramiro Polla
{ check_header dev/bktr/ioctl_meteor.h &&
1760
  check_header dev/bktr/ioctl_bt848.h; } ||
1761
{ check_header machine/ioctl_meteor.h &&
1762
  check_header machine/ioctl_bt848.h; } ||
1763
{ check_header dev/video/meteor/ioctl_meteor.h &&
1764
  check_header dev/video/bktr/ioctl_bt848.h; } ||
1765
check_header dev/ic/bt8xx.h
1766 f8aa696f Diego Biurrun
1767 c7682de0 Ramiro Polla
check_header sys/soundcard.h
1768
check_header soundcard.h
1769 deb29777 Måns Rullgård
1770 7483e694 Diego Biurrun
# deal with the X11 frame grabber
1771 56a059ac Diego Biurrun
enabled x11grab                         &&
1772 f58f4ce1 Guillaume Poirier
check_header X11/Xlib.h                 &&
1773
check_header X11/extensions/XShm.h      &&
1774
check_func XOpenDisplay -lX11           &&
1775 06eab4ba Ramiro Polla
check_func XShmCreateImage -lX11 -lXext
1776 f58f4ce1 Guillaume Poirier
1777 57bd82d4 Måns Rullgård
enabled debug && add_cflags -g
1778
1779
# add some useful compiler flags if supported
1780
check_cflags -Wdeclaration-after-statement
1781 dcd479c0 Måns Rullgård
check_cflags -Wall
1782
check_cflags -Wno-switch
1783 c07bd6a9 Michael Niedermayer
check_cflags -Wdisabled-optimization
1784
check_cflags -Wpointer-arith
1785
check_cflags -Wredundant-decls
1786 cc1fb623 Måns Rullgård
check_cflags -Wno-pointer-sign
1787 5af4e0cc Måns Rullgård
enabled extra_warnings && check_cflags -Winline
1788 cf9d24ad Dan Christiansen
1789 57bd82d4 Måns Rullgård
# add some linker flags
1790 5c0e9479 Måns Rullgård
check_ldflags -Wl,--warn-common
1791 e240ee67 Luca Barbato
check_ldflags $LDLATEFLAGS
1792 c2fd6530 Måns Rullgård
check_ldflags -Wl,-Bsymbolic
1793 94a3401e Fabrice Bellard
1794 bd2216e4 Måns Rullgård
if enabled small; then
1795
    check_cflags -Os            # not all compilers support -Os
1796 8400d6b8 Diego Biurrun
    optimizations="small"
1797
elif enabled optimizations; then
1798 b2924696 Roman Shaposhnik
    if test -n "`$cc -v 2>&1 | grep xlc`"; then
1799 30a3e5d4 Nigel Pearson
        add_cflags  "-O5"
1800
        add_ldflags "-O5"
1801 cf9d24ad Dan Christiansen
    else
1802 30a3e5d4 Nigel Pearson
        add_cflags "-O3"
1803 cf9d24ad Dan Christiansen
    fi
1804 cddf3f45 Glenn Maynard
fi
1805
1806 80581e98 Michael Niedermayer
# PIC flags for shared library objects where they are needed
1807 5af4e0cc Måns Rullgård
if enabled shared; then
1808 569cb218 Måns Rullgård
    # LIBOBJFLAGS may have already been set in the OS configuration
1809
    if test -z "$LIBOBJFLAGS" ; then
1810
        case "$arch" in
1811
            x86_64|ia64|alpha|sparc*|power*) LIBOBJFLAGS='$(PIC)' ;;
1812
        esac
1813
    fi
1814 80581e98 Michael Niedermayer
fi
1815
1816 90be59ef Ramiro Polla
if enabled gprof; then
1817 30a3e5d4 Nigel Pearson
    add_cflags  "-p"
1818
    add_ldflags "-p"
1819 1db54e20 Diego Biurrun
fi
1820
1821 3b26ee47 Måns Rullgård
VHOOKCFLAGS="-fPIC"
1822 18451f7d Måns Rullgård
1823 7f3c02fc Diego Biurrun
# Find out if the .align argument is a power of two or not.
1824 4454dc1b John Dalgliesh
if test $asmalign_pot = "unknown"; then
1825 497237c7 Ramiro Polla
    disable asmalign_pot
1826
    echo 'asm (".align 3");' | check_cc && enable asmalign_pot
1827 4454dc1b John Dalgliesh
fi
1828
1829 7483e694 Diego Biurrun
enabled_any $DECODER_LIST      && enable decoders
1830
enabled_any $ENCODER_LIST      && enable encoders
1831
enabled_any $BSF_LIST          && enable bsfs
1832
enabled_any $DEMUXER_LIST      && enable demuxers
1833
enabled_any $MUXER_LIST        && enable muxers
1834
enabled_any $INDEV_LIST        && enable demuxers
1835
enabled_any $OUTDEV_LIST       && enable muxers
1836
enabled_any $PROTOCOL_LIST     && enable protocols
1837
1838
enabled_any $THREADS_LIST      && enable threads
1839
1840
check_deps $CONFIG_LIST       \
1841
           $HAVE_LIST         \
1842
           $DECODER_LIST      \
1843
           $ENCODER_LIST      \
1844
           $PARSER_LIST       \
1845
           $BSF_LIST          \
1846
           $DEMUXER_LIST      \
1847
           $MUXER_LIST        \
1848
           $INDEV_LIST        \
1849
           $OUTDEV_LIST       \
1850
           $PROTOCOL_LIST     \
1851 f70f03f6 Måns Rullgård
1852 f7b8bffe Ramiro Polla
enabled libdc1394 && append pkg_requires "libraw1394"
1853 fb2ce7d9 Måns Rullgård
enabled libtheora && append pkg_requires "theora"
1854 f9def9cc Diego Biurrun
enabled libvorbis && append pkg_requires "vorbisenc"
1855 fb2ce7d9 Måns Rullgård
1856 f36958f8 Diego Biurrun
echo "install prefix            $PREFIX"
1857
echo "source path               $source_path"
1858
echo "C compiler                $cc"
1859
echo "make                      $make"
1860 bfd5afd8 Diego Biurrun
echo ".align is power-of-two    $asmalign_pot"
1861 f36958f8 Diego Biurrun
echo "ARCH                      $arch ($cpu)"
1862 eb94aca9 Charles Yates
if test "$BUILDSUF" != ""; then
1863 f36958f8 Diego Biurrun
    echo "build suffix              $BUILDSUF"
1864 eb94aca9 Charles Yates
fi
1865 0db2ce77 Måns Rullgård
echo "big-endian                ${bigendian-no}"
1866 419b8784 Diego Biurrun
if test $arch = "x86_32" -o $arch = "x86_64"; then
1867 0db2ce77 Måns Rullgård
    echo "MMX enabled               ${mmx-no}"
1868
    echo "CMOV enabled              ${cmov-no}"
1869
    echo "CMOV is fast              ${fast_cmov-no}"
1870 971cc990 Michael Niedermayer
    echo "EBX available             ${ebx_available-no}"
1871
    echo "EBP available             ${ebp_available-no}"
1872 e41e8342 Fabrice Bellard
fi
1873 cc6a90dd Guillaume Poirier
if test $arch = "armv4l"; then
1874 0db2ce77 Måns Rullgård
    echo "ARMv5TE enabled           ${armv5te-no}"
1875
    echo "ARMv6 enabled             ${armv6-no}"
1876
    echo "IWMMXT enabled            ${iwmmxt-no}"
1877 eba9ae3c Gildas Bazin
fi
1878 e241ba14 Diego Biurrun
if test $arch = "mips"; then
1879 0db2ce77 Måns Rullgård
    echo "MMI enabled               ${mmi-no}"
1880 e41e8342 Fabrice Bellard
fi
1881 cc6a90dd Guillaume Poirier
if test $arch = "powerpc"; then
1882 0db2ce77 Måns Rullgård
    echo "AltiVec enabled           ${altivec-no}"
1883
    echo "dcbzl available           ${dcbzl-no}"
1884 e41e8342 Fabrice Bellard
fi
1885 0db2ce77 Måns Rullgård
echo "gprof enabled             ${gprof-no}"
1886
echo "debug symbols             ${debug-no}"
1887
echo "strip symbols             ${dostrip-no}"
1888 8400d6b8 Diego Biurrun
echo "optimizations             ${optimizations-no}"
1889 0db2ce77 Måns Rullgård
echo "static                    ${static-no}"
1890
echo "shared                    ${shared-no}"
1891
echo "postprocessing support    ${pp-no}"
1892
echo "software scaler enabled   ${swscaler-no}"
1893
echo "video hooking             ${vhook-no}"
1894 90be59ef Ramiro Polla
if enabled vhook; then
1895 0db2ce77 Måns Rullgård
    echo "Imlib2 support            ${imlib2-no}"
1896
    echo "FreeType support          ${freetype2-no}"
1897 68892110 Philip Gladstone
fi
1898 0db2ce77 Måns Rullgård
echo "network support           ${network-no}"
1899 90be59ef Ramiro Polla
if enabled network; then
1900 0db2ce77 Måns Rullgård
    echo "IPv6 support              ${ipv6-no}"
1901 bfd5afd8 Diego Biurrun
fi
1902 0db2ce77 Måns Rullgård
echo "threading support         ${thread_type-no}"
1903
echo "SDL support               ${sdl-no}"
1904 90be59ef Ramiro Polla
if enabled sdl_too_old; then
1905 bfd5afd8 Diego Biurrun
    echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support."
1906
fi
1907 0db2ce77 Måns Rullgård
echo "Sun medialib support      ${mlib-no}"
1908
echo "AVISynth enabled          ${avisynth-no}"
1909
echo "liba52 support            ${liba52-no}"
1910
echo "liba52 dlopened           ${liba52bin-no}"
1911
echo "libamr-nb support         ${libamr_nb-no}"
1912
echo "libamr-wb support         ${libamr_wb-no}"
1913 f7b8bffe Ramiro Polla
echo "libdc1394 support         ${libdc1394-no}"
1914 0db2ce77 Måns Rullgård
echo "libfaac enabled           ${libfaac-no}"
1915
echo "libfaad enabled           ${libfaad-no}"
1916 7e0871a7 Diego Biurrun
echo "libfaad dlopened          ${libfaadbin-no}"
1917 0db2ce77 Måns Rullgård
echo "libgsm enabled            ${libgsm-no}"
1918
echo "libmp3lame enabled        ${libmp3lame-no}"
1919
echo "libnut enabled            ${libnut-no}"
1920
echo "libtheora enabled         ${libtheora-no}"
1921
echo "libvorbis enabled         ${libvorbis-no}"
1922
echo "x264 enabled              ${libx264-no}"
1923
echo "XviD enabled              ${libxvid-no}"
1924
echo "zlib enabled              ${zlib-no}"
1925 de6d9b64 Fabrice Bellard
1926 7dd2862b Diego Biurrun
for type in decoder encoder parser demuxer muxer protocol bsf indev outdev; do
1927 8138b9db Ramiro Polla
    echo "Enabled ${type}s:"
1928
    ucname="\$`toupper $type`_LIST"
1929
    list="`eval echo $ucname`"
1930
    partlist=""
1931
    for part in $list; do
1932
        enabled $part && partlist="$partlist $part"
1933
    done
1934
    partlist=`echo $partlist | sed s/_$type//g | tr ' ' '\n' | sort`
1935
    echo $partlist
1936
done
1937
1938 3fe142e2 Diego Biurrun
enabled nonfree &&
1939
    echo "License: unredistributable" ||
1940
    (enabled gpl &&
1941
        echo "License: GPL" ||
1942
        echo "License: LGPL")
1943 ca5323af Roberto Togni
1944 cf1392e9 Diego Biurrun
echo "Creating config.mak and config.h..."
1945
1946 29799f8b Diego Biurrun
echo "# Automatically generated by configure - do not modify!" > config.mak
1947
echo "/* Automatically generated by configure - do not modify! */" > $TMPH
1948 9c05103f Diego Biurrun
echo "#ifndef FFMPEG_CONFIG_H" >> $TMPH
1949
echo "#define FFMPEG_CONFIG_H" >> $TMPH
1950 0fd12426 Diego Biurrun
echo "#define FFMPEG_CONFIGURATION \"$FFMPEG_CONFIGURATION\"" >> $TMPH
1951 de6d9b64 Fabrice Bellard
1952 2266e085 Diego Biurrun
echo "PREFIX=$PREFIX" >> config.mak
1953 c75560ae Diego Biurrun
echo "prefix=\$(DESTDIR)\$(PREFIX)" >> config.mak
1954 22a324da Diego Biurrun
echo "LIBDIR=\$(DESTDIR)$libdir" >> config.mak
1955
echo "SHLIBDIR=\$(DESTDIR)$shlibdir" >> config.mak
1956
echo "INCDIR=\$(DESTDIR)$incdir" >> config.mak
1957
echo "BINDIR=\$(DESTDIR)$bindir" >> config.mak
1958
echo "MANDIR=\$(DESTDIR)$mandir" >> config.mak
1959 4a908fbc Alex Beregszaszi
echo "MAKE=$make" >> config.mak
1960 980fc7b8 Fabrice Bellard
echo "CC=$cc" >> config.mak
1961
echo "AR=$ar" >> config.mak
1962 be7109c1 Michael Niedermayer
echo "RANLIB=$ranlib" >> config.mak
1963 78eb6531 Diego Biurrun
echo "LDCONFIG=$LDCONFIG" >> config.mak
1964 20369773 Dave Yeo
echo "LN_S=$ln_s" >> config.mak
1965 3ae3b721 Ramiro Polla
enabled dostrip &&
1966
    echo "STRIP=$strip" >> config.mak ||
1967 f25fc9b1 Måns Rullgård
    echo "STRIP=echo ignoring strip" >> config.mak
1968 75388c74 Michael Niedermayer
1969 a9b3f630 Nick Kurshev
echo "OPTFLAGS=$CFLAGS" >> config.mak
1970 408382a4 Diego Biurrun
echo "VHOOKCFLAGS=$VHOOKCFLAGS">>config.mak
1971 0f3cb305 Fabrice Bellard
echo "LDFLAGS=$LDFLAGS" >> config.mak
1972 c536cb09 Diego Biurrun
echo "FFSERVERLDFLAGS=$FFSERVERLDFLAGS" >> config.mak
1973 e1707f52 Michael Niedermayer
echo "SHFLAGS=$SHFLAGS" >> config.mak
1974 408382a4 Diego Biurrun
echo "VHOOKSHFLAGS=$VHOOKSHFLAGS" >> config.mak
1975 fbb9d104 Víctor Paesa
echo "VHOOKLIBS=$VHOOKLIBS" >> config.mak
1976 80581e98 Michael Niedermayer
echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak
1977 5af4e0cc Måns Rullgård
echo "BUILD_STATIC=$static" >> config.mak
1978 eb94aca9 Charles Yates
echo "BUILDSUF=$BUILDSUF" >> config.mak
1979 c5f14466 Ramiro Polla
echo "FULLNAME=$FULLNAME" >> config.mak
1980 f3ec2d46 Slavik Gnatenko
echo "LIBPREF=$LIBPREF" >> config.mak
1981 c5f14466 Ramiro Polla
echo "LIBSUF=$LIBSUF" >> config.mak
1982 24743a76 Diego Biurrun
echo "LIBNAME=$LIBNAME" >> config.mak
1983 f3ec2d46 Slavik Gnatenko
echo "SLIBPREF=$SLIBPREF" >> config.mak
1984 c5f14466 Ramiro Polla
echo "SLIBSUF=$SLIBSUF" >> config.mak
1985
echo "EXESUF=$EXESUF" >> config.mak
1986 4dc62701 Måns Rullgård
1987 90be59ef Ramiro Polla
if enabled bigendian; then
1988 7483e694 Diego Biurrun
    echo "WORDS_BIGENDIAN=yes" >> config.mak
1989
    echo "#define WORDS_BIGENDIAN 1" >> $TMPH
1990 91d1f1a4 Nick Kurshev
fi
1991 90be59ef Ramiro Polla
if enabled mmx; then
1992 7483e694 Diego Biurrun
    echo "#define __CPU__ 586" >> $TMPH
1993 de6d9b64 Fabrice Bellard
fi
1994 44161118 Måns Rullgård
1995 90be59ef Ramiro Polla
if enabled sdl; then
1996 7483e694 Diego Biurrun
    echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak
1997
    echo "SDL_CFLAGS=`"${SDL_CONFIG}" --cflags`" >> config.mak
1998 a86b921c Fabrice Bellard
fi
1999 90be59ef Ramiro Polla
if enabled texi2html; then
2000 7483e694 Diego Biurrun
    echo "BUILD_DOC=yes" >> config.mak
2001 146ea952 Nicolas Boos
fi
2002 5a872801 Luca Barbato
2003 790c9ca7 Luca Abeni
sws_version=`grep '#define LIBSWSCALE_VERSION ' "$source_path/libswscale/swscale.h" | sed 's/[^0-9\.]//g'`
2004 6d9a2421 Diego Biurrun
pp_version=`grep '#define LIBPOSTPROC_VERSION ' "$source_path/libpostproc/postprocess.h" | sed 's/[^0-9\.]//g'`
2005 5a872801 Luca Barbato
lavc_version=`grep '#define LIBAVCODEC_VERSION ' "$source_path/libavcodec/avcodec.h" | sed 's/[^0-9\.]//g'`
2006 c721d803 Luca Abeni
lavd_version=`grep '#define LIBAVDEVICE_VERSION ' "$source_path/libavdevice/avdevice.h" | sed 's/[^0-9\.]//g'`
2007 5a872801 Luca Barbato
lavf_version=`grep '#define LIBAVFORMAT_VERSION ' "$source_path/libavformat/avformat.h" | sed 's/[^0-9\.]//g'`
2008
lavu_version=`grep '#define LIBAVUTIL_VERSION ' "$source_path/libavutil/avutil.h" | sed 's/[^0-9\.]//g'`
2009
2010
2011
2012 5af4e0cc Måns Rullgård
if enabled shared; then
2013 7483e694 Diego Biurrun
    echo "BUILD_SHARED=yes" >> config.mak
2014
    echo "PIC=-fPIC -DPIC" >> config.mak
2015
    echo "SPPMAJOR=${pp_version%%.*}" >> config.mak
2016
    echo "SPPVERSION=$pp_version" >> config.mak
2017
    echo "LAVCMAJOR=${lavc_version%%.*}" >> config.mak
2018
    echo "LAVCVERSION=$lavc_version" >> config.mak
2019
    echo "LAVDMAJOR=${lavd_version%%.*}" >> config.mak
2020
    echo "LAVDVERSION=$lavd_version" >> config.mak
2021
    echo "LAVFMAJOR=${lavf_version%%.*}" >> config.mak
2022
    echo "LAVFVERSION=$lavf_version" >> config.mak
2023
    echo "LAVUMAJOR=${lavu_version%%.*}" >> config.mak
2024
    echo "LAVUVERSION=$lavu_version" >> config.mak
2025
    echo "SWSMAJOR=${sws_version%%.*}" >> config.mak
2026
    echo "SWSVERSION=$sws_version" >> config.mak
2027
    echo "SLIBNAME=${SLIBNAME}" >> config.mak
2028
    echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak
2029
    echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
2030 d22e8442 Dave Yeo
    echo "SLIB_CREATE_DEF_CMD=${SLIB_CREATE_DEF_CMD}" >> config.mak
2031 7483e694 Diego Biurrun
    echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak
2032
    echo "SLIB_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}" >> config.mak
2033
    echo "SLIB_UNINSTALL_EXTRA_CMD=${SLIB_UNINSTALL_EXTRA_CMD}" >> config.mak
2034 0319c531 Nick Kurshev
fi
2035 d7e27559 Diego Biurrun
echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak
2036 ef0bc4c9 François Revol
echo "EXTRALIBS=$extralibs" >> config.mak
2037 d2845d68 Diego Biurrun
2038 3d907e22 Måns Rullgård
print_config ARCH_   $TMPH config.mak $ARCH_LIST
2039
print_config HAVE_   $TMPH config.mak $HAVE_LIST
2040 7483e694 Diego Biurrun
print_config CONFIG_ $TMPH config.mak $CONFIG_LIST       \
2041
                                      $DECODER_LIST      \
2042
                                      $ENCODER_LIST      \
2043
                                      $PARSER_LIST       \
2044
                                      $BSF_LIST          \
2045
                                      $DEMUXER_LIST      \
2046
                                      $MUXER_LIST        \
2047
                                      $PROTOCOL_LIST     \
2048
                                      $INDEV_LIST        \
2049
                                      $OUTDEV_LIST       \
2050 8ac17293 Steve L'Homme
2051 c13e1abd Falk Hüffner
echo "#define restrict $_restrict" >> $TMPH
2052
2053 bd2216e4 Måns Rullgård
if enabled small; then
2054 7483e694 Diego Biurrun
    echo "#define av_always_inline"  >> $TMPH
2055 bb801c97 Michael Niedermayer
fi
2056
2057 997baf01 Måns Rullgård
echo "SRC_PATH=\"$source_path\"" >> config.mak
2058
echo "SRC_PATH_BARE=$source_path" >> config.mak
2059
echo "BUILD_ROOT=\"$PWD\"" >> config.mak
2060 0f3cb305 Fabrice Bellard
2061 8156056e John Dalgliesh
# Apparently it's not possible to portably echo a backslash.
2062 3ae3b721 Ramiro Polla
enabled asmalign_pot &&
2063 7483e694 Diego Biurrun
    printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH ||
2064
    printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH
2065 4454dc1b John Dalgliesh
2066 bc634f6f Zdenek Kabelac
2067 9c05103f Diego Biurrun
echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH
2068
2069 9cb2cf10 Diego Biurrun
# Do not overwrite config.h if unchanged to avoid superfluous rebuilds.
2070 3ae3b721 Ramiro Polla
cmp -s $TMPH config.h &&
2071
    echo "config.h is unchanged" ||
2072
    mv -f $TMPH config.h
2073 3d204385 Nick Kurshev
2074 f3ec2d46 Slavik Gnatenko
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
2075 def4272a Aurelien Jacobs
2076 165af439 Måns Rullgård
# build tree in object directory if source path is different from current one
2077 90be59ef Ramiro Polla
if enabled source_path_used; then
2078 165af439 Måns Rullgård
    DIRS="\
2079 7483e694 Diego Biurrun
        doc               \
2080
        libavcodec        \
2081
        libavcodec/alpha  \
2082
        libavcodec/armv4l \
2083
        libavcodec/bfin   \
2084
        libavcodec/i386   \
2085
        libavcodec/mlib   \
2086
        libavcodec/ppc    \
2087
        libavcodec/sh4    \
2088
        libavcodec/sparc  \
2089 52a9cf34 Diego Biurrun
        libavdevice       \
2090 7483e694 Diego Biurrun
        libavformat       \
2091
        libavutil         \
2092
        libpostproc       \
2093
        libswscale        \
2094
        tests             \
2095
        tools             \
2096
        vhook             \
2097
        "
2098 165af439 Måns Rullgård
    FILES="\
2099 7483e694 Diego Biurrun
        Makefile             \
2100
        common.mak           \
2101
        doc/texi2pod.pl      \
2102
        libavcodec/Makefile  \
2103 52a9cf34 Diego Biurrun
        libavdevice/Makefile \
2104 7483e694 Diego Biurrun
        libavformat/Makefile \
2105
        libavutil/Makefile   \
2106
        libpostproc/Makefile \
2107
        libswscale/Makefile  \
2108
        "
2109 165af439 Måns Rullgård
    for dir in $DIRS ; do
2110 7483e694 Diego Biurrun
        mkdir -p $dir
2111 165af439 Måns Rullgård
    done
2112
    for f in $FILES ; do
2113 20369773 Dave Yeo
        $ln_s "$source_path/$f" $f
2114 165af439 Måns Rullgård
    done
2115
fi
2116 def4272a Aurelien Jacobs
2117
2118 d0674868 Diego Biurrun
# build pkg-config files
2119 77aee36c Diego Biurrun
# FIXME: libdir and includedir are hardcoded and may differ from the real path.
2120 def4272a Aurelien Jacobs
2121 d0674868 Diego Biurrun
pkgconfig_generate(){
2122
name=$1
2123
comment=$2
2124
version=$3
2125
libs=$4
2126
requires=$5
2127
include=$6
2128
cat <<EOF >$name.pc
2129 2266e085 Diego Biurrun
prefix=$PREFIX
2130 a94e666c Diego Biurrun
exec_prefix=\${prefix}
2131 def4272a Aurelien Jacobs
libdir=\${exec_prefix}/lib
2132 a94e666c Diego Biurrun
includedir=\${prefix}/include
2133 def4272a Aurelien Jacobs
2134 d0674868 Diego Biurrun
Name: $name
2135
Description: $comment
2136
Version: $version
2137
Requires: $requires
2138 def4272a Aurelien Jacobs
Conflicts:
2139 d0674868 Diego Biurrun
Libs: -L\${libdir} $libs
2140 08c015c0 Diego Biurrun
Cflags: -I\${includedir}/$include
2141 def4272a Aurelien Jacobs
EOF
2142 d0674868 Diego Biurrun
}
2143 def4272a Aurelien Jacobs
2144 d0674868 Diego Biurrun
pkgconfig_generate_uninstalled(){
2145
name=$1
2146 9c476fd6 Måns Rullgård
shortname=${name#lib}
2147 d0674868 Diego Biurrun
comment=$2
2148
version=$3
2149
libs=$4
2150
requires=$5
2151
cat <<EOF >$name-uninstalled.pc
2152 def4272a Aurelien Jacobs
prefix=
2153
exec_prefix=
2154 d0674868 Diego Biurrun
libdir=\${pcfiledir}/$name
2155
includedir=\${pcfiledir}/$name
2156 def4272a Aurelien Jacobs
2157 d0674868 Diego Biurrun
Name: $name
2158
Description: $comment
2159
Version: $version
2160
Requires: $requires
2161 def4272a Aurelien Jacobs
Conflicts:
2162 d0674868 Diego Biurrun
Libs: \${libdir}/${LIBPREF}${shortname}${LIBSUF} $libs
2163 def4272a Aurelien Jacobs
Cflags: -I\${includedir}
2164
EOF
2165 d0674868 Diego Biurrun
}
2166 def4272a Aurelien Jacobs
2167 9d824ad1 Måns Rullgård
pkgconfig_generate libavutil "FFmpeg utility library" "$lavu_version" -lavutil "" ffmpeg
2168 d0674868 Diego Biurrun
pkgconfig_generate_uninstalled libavutil "FFmpeg utility library" "$lavu_version"
2169 def4272a Aurelien Jacobs
2170 d0674868 Diego Biurrun
pkgconfig_generate libavcodec "FFmpeg codec library" "$lavc_version" "-lavcodec $extralibs" "$pkg_requires libavutil = $lavu_version" ffmpeg
2171
pkgconfig_generate_uninstalled libavcodec "FFmpeg codec library" "$lavc_version" "$extralibs" "$pkg_requires libavutil = $lavu_version"
2172 def4272a Aurelien Jacobs
2173 d0674868 Diego Biurrun
pkgconfig_generate libavformat "FFmpeg container format library" "$lavf_version" "-lavformat $extralibs" "$pkg_requires libavcodec = $lavc_version" ffmpeg
2174
pkgconfig_generate_uninstalled libavformat "FFmpeg container format library" "$lavf_version" "$extralibs" "$pkg_requires libavcodec = $lavc_version"
2175 def4272a Aurelien Jacobs
2176 c721d803 Luca Abeni
pkgconfig_generate libavdevice "FFmpeg device handling library" "$lavd_version" "-lavdevice $extralibs" "$pkg_requires libavformat = $lavf_version" ffmpeg
2177
pkgconfig_generate_uninstalled libavdevice "FFmpeg device handling library" "$lavd_version" "$extralibs" "$pkg_requires libavformat = $lavf_version"
2178 90be59ef Ramiro Polla
if enabled pp; then
2179 7483e694 Diego Biurrun
    pkgconfig_generate libpostproc "FFmpeg post processing library" "$pp_version" -lpostproc "" postproc
2180
    pkgconfig_generate_uninstalled libpostproc "FFmpeg post processing library" "$pp_version"
2181 2e3bcd38 Diego Biurrun
fi
2182 790c9ca7 Luca Abeni
2183 c839db53 Ramiro Polla
if enabled swscaler; then
2184 7483e694 Diego Biurrun
    pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" -lswscale "libavutil = $lavu_version" ffmpeg
2185
    pkgconfig_generate_uninstalled libswscale "FFmpeg image rescaling library" "$sws_version" "" "libavutil = $lavu_version"
2186 6c0d0413 j@v2v.cc
else
2187 7483e694 Diego Biurrun
    pkgconfig_generate libswscale "FFmpeg image rescaling library" "$sws_version" "" "$pkg_requires libavcodec = $lavc_version" ffmpeg
2188
    pkgconfig_generate_uninstalled libswscale "FFmpeg image rescaling library" "$sws_version" "" "$pkg_requires libavcodec = $lavc_version"
2189
    apply libswscale.pc sed s/^Libs:.*$/Libs:/
2190
    apply libswscale-uninstalled.pc sed s/^Libs:.*$/Libs:/
2191 6c0d0413 j@v2v.cc
fi