Statistics
| Branch: | Revision:

ffmpeg / configure @ c683a5d1

History | View | Annotate | Download (58.4 KB)

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