configure 21.2 KB
Newer Older
F
Fabrice Bellard 已提交
1
#!/bin/sh
2
#
F
Fabrice Bellard 已提交
3
# ffmpeg configure script (c) 2000, 2001, 2002 Fabrice Bellard
4 5
#
# set temporary file name
Z
Zdenek Kabelac 已提交
6
if test ! -z "$TMPDIR" ; then
7
    TMPDIR1="${TMPDIR}"
Z
Zdenek Kabelac 已提交
8
elif test ! -z "$TEMPDIR" ; then
9
    TMPDIR1="${TEMPDIR}"
N
Nick Kurshev 已提交
10
else
11
    TMPDIR1="/tmp"
N
Nick Kurshev 已提交
12 13
fi

14 15
TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
16
TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}"
17 18 19
TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"

F
Fabrice Bellard 已提交
20 21
# default parameters
prefix="/usr/local"
22
cross_prefix=""
F
Fabrice Bellard 已提交
23 24
cc="gcc"
ar="ar"
M
Michael Niedermayer 已提交
25
ranlib="ranlib"
26
make="make"
27
strip="strip"
F
Fabrice Bellard 已提交
28
cpu=`uname -m`
29
mmx="default"
30
altivec="default"
31
mmi="default"
F
Fabrice Bellard 已提交
32
case "$cpu" in
33
  i386|i486|i586|i686|i86pc|BePC)
F
Fabrice Bellard 已提交
34 35
    cpu="x86"
  ;;
36 37 38
  armv4l)
    cpu="armv4l"
  ;;
39 40 41
  alpha)
    cpu="alpha"
  ;;
42
  "Power Macintosh"|ppc)
43 44
    cpu="powerpc"
  ;;
45 46 47
  mips)
    cpu="mips"
  ;;
F
Fabrice Bellard 已提交
48
  *)
49
    cpu="unknown"
F
Fabrice Bellard 已提交
50 51 52
  ;;
esac
gprof="no"
F
Fabrice Bellard 已提交
53 54
v4l="yes"
audio_oss="yes"
55
audio_beos="no"
56
dv1394="yes"
F
Fabrice Bellard 已提交
57
network="yes"
58
zlib="yes"
59
mp3lame="no"
60
vorbis="no"
F
Fabrice Bellard 已提交
61
a52="yes"
Z
Zdenek Kabelac 已提交
62
a52bin="no"
63 64
pp="yes"
shared_pp="no"
65
win32="no"
66
mingw32="no"
67
cygwin="no"
68
os2="no"
69
lshared="no"
70
extralibs="-lm"
71
simpleidct="yes"
72
bigendian="no"
73
vhook="default"
74 75
dlfcn="no"
dlopen="no"
76
mpegaudio_hp="yes"
77
SHFLAGS=-shared
78
netserver="no"
79
need_inet_aton="no"
80
ffserver="yes"
81 82
LDFLAGS=-Wl,--warn-common
FFSLDFLAGS=-Wl,-E
83 84 85 86
LIBPREF="lib"
LIBSUF=".a"
SLIBPREF="lib"
SLIBSUF=".so"
M
Michael Niedermayer 已提交
87
risky="yes"
88 89 90 91 92 93 94

# OS specific
targetos=`uname -s`
case $targetos in
BeOS)
prefix="/boot/home/config"
# helps building libavcodec
95
CFLAGS="-O3 -DPIC -fomit-frame-pointer"
96 97 98 99 100 101 102 103 104 105
# 3 gcc releases known for BeOS, each with ugly bugs
gcc_version="$($cc -v 2>&1 | grep version | cut -d ' ' -f3-)"
case "$gcc_version" in
2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
mmx="no"
;;
*20010315*) echo "BeBits gcc"
CFLAGS="$CFLAGS -fno-expensive-optimizations"
;;
esac
106 107 108
SHFLAGS=-nostart
# disable linux things
audio_oss="no"
F
Fabrice Bellard 已提交
109
v4l="no"
110
dv1394="no"
111 112
# enable beos things
audio_beos="yes"
113 114 115 116 117
# no need for libm, but the inet stuff
# Check for BONE
if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then
extralibs="-lbind -lsocket"
else
118
netserver="yes"
119
need_inet_aton="yes"
120
extralibs="-lnet"
121
fi ;;
122 123 124
SunOS)
v4l="no"
audio_oss="no"
125
dv1394="no"
126 127 128 129 130 131
make="gmake"
LDFLAGS=""
FFSLDFLAGS=""
need_inet_aton="yes"
extralibs="$extralibs -lsocket -lnsl"
;;
132 133 134
FreeBSD)
v4l="no"
audio_oss="yes"
135
dv1394="no"
136
make="gmake"
137
LDFLAGS="$LDFLAGS -export-dynamic"
138
;;
139
BSD/OS)
F
Fabrice Bellard 已提交
140
v4l="no"
F
Fabrice Bellard 已提交
141
audio_oss="yes"
142
dv1394="no"
143 144 145
extralibs="-lpoll -lgnugetopt -lm"
make="gmake"
;;
146
Darwin)
147
cc="cc"
148 149
v4l="no"
audio_oss="no"
150
dv1394="no"
151
SHFLAGS="-dynamiclib"
152
extralibs=""
153
darwin="yes"
154
strip="strip -x"
155
LDFLAGS="-d"
156 157 158 159 160 161 162 163 164 165
FFSLDFLAGS=-Wl,-bind_at_load
gcc_version="$($cc -v 2>&1 | grep version | cut -d ' ' -f4-)"
case "$gcc_version" in
*2.95*) 
CFLAGS="-no-cpp-precomp -pipe -O3 -fomit-frame-pointer"
;;
*) 
CFLAGS="-no-cpp-precomp -pipe -O3 -fomit-frame-pointer -mdynamic-no-pic"
;;
esac
166
;;
167 168 169
MINGW32*)
v4l="no"
audio_oss="no"
170
dv1394="no"
171 172 173 174
ffserver="no"
network="no"
mingw32="yes"
;;
175 176 177
CYGWIN*)
v4l="no"
audio_oss="yes"
178
dv1394="no"
179 180 181 182 183 184 185
extralibs=""
cygwin="yes"
test -f /usr/include/inttypes.h || \
test -f /usr/local/include/inttypes.h || \
echo "Missing inttypes.h, please copy cygwin_inttypes.h to" \
     "/usr/include/inttypes.h !!!"
;;
186
Linux)
187
LDFLAGS="$LDFLAGS -rdynamic"
188
;;
189 190 191 192 193 194 195 196 197 198 199 200 201 202 203
OS/2)
TMPE=$TMPE".exe"
ar="emxomfar -p32"
strip="echo ignore strip"
CFLAGS="-Zomf"
LDFLAGS="-Zomf -Zstack 16384"
SHFLAGS=""
FFSLDFLAGS=""
LIBPREF=""
LIBSUF=".lib"
SLIBPREF=""
SLIBSUF=".dll"
extralibs=""
v4l="no"
audio_oss="no"
204
dv1394="no"
205 206 207 208
network="no"
ffserver="no"
os2="yes"
;;
209 210
*) ;;
esac
F
Fabrice Bellard 已提交
211

212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232
# From mplayer configure. We need TARGET_OS available
# to the Makefile, so it can distinguish between flavors
# of AltiVec on PowerPC
TARGET_OS=`( uname -s ) 2>&1`
  case "$TARGET_OS" in
  Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU)
    ;;
  IRIX*)
    TARGET_OS=IRIX
    ;;
  HP-UX*)
    TARGET_OS=HP-UX
    ;;
  [cC][yY][gG][wW][iI][nN]*)
    TARGET_OS=CYGWIN
    ;;
  *)
    TARGET_OS="$TARGET_OS-UNKNOWN"
    ;;
  esac

233 234 235 236 237 238 239 240 241
# find source path
# XXX: we assume an absolute path is given when launching configure, 
# except in './configure' case.
source_path=${0%configure}
source_path=${source_path%/}
source_path_used="yes"
if test -z "$source_path" -o "$source_path" = "." ; then
    source_path=`pwd`
    source_path_used="no"
F
Fabrice Bellard 已提交
242 243 244 245 246 247
fi

for opt do
  case "$opt" in
  --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`
  ;;
248 249 250 251
  --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
  ;;
  --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
  ;;
F
Fabrice Bellard 已提交
252 253
  --cc=*) cc=`echo $opt | cut -d '=' -f 2`
  ;;
254 255
  --make=*) make=`echo $opt | cut -d '=' -f 2`
  ;;
256 257 258 259 260 261
  --extra-cflags=*) CFLAGS="${opt#--extra-cflags=}"
  ;;
  --extra-ldflags=*) LDFLAGS=${opt#--extra-ldflags=}
  ;;
  --extra-libs=*) extralibs=${opt#--extra-libs=}
  ;;
F
Fabrice Bellard 已提交
262 263 264 265
  --cpu=*) cpu=`echo $opt | cut -d '=' -f 2`
  ;;
  --disable-mmx) mmx="no"
  ;;
266 267
  --disable-altivec) altivec="no"
  ;;
F
Fabrice Bellard 已提交
268 269
  --enable-gprof) gprof="yes"
  ;;
F
Fabrice Bellard 已提交
270 271 272 273
  --disable-v4l) v4l="no"
  ;;
  --disable-audio-oss) audio_oss="no"
  ;;
274 275
  --disable-audio-beos) audio_beos="no"
  ;;
276 277
  --disable-dv1394) dv1394="no"
  ;;
F
Fabrice Bellard 已提交
278 279
  --disable-network) network="no"
  ;;
280 281
  --disable-zlib) zlib="no"
  ;;
F
Fabrice Bellard 已提交
282
  --disable-a52) a52="no"
283
  ;;
284
  --enable-a52bin) a52bin="yes" ; extralibs="$ldl $extralibs"
Z
Zdenek Kabelac 已提交
285
  ;;
286 287 288 289
  --disable-pp) pp="no"
  ;;
  --enable-shared-pp) shared_pp="yes"
  ;;
290 291
  --enable-mp3lame) mp3lame="yes"
  ;;
292 293
  --enable-vorbis) vorbis="yes"
  ;;
294 295
  --disable-vhook) vhook="no"
  ;;
296
  --disable-simple_idct) simpleidct="no"
297
  ;;
298 299
  --enable-win32) win32="yes"
  ;;
300 301
  --enable-mingw32) mingw32="yes"
  ;;
302
  --enable-shared) lshared="yes"
N
Nick Kurshev 已提交
303
  ;;
304 305
  --disable-mpegaudio-hp) mpegaudio_hp="no"
  ;;
306 307
  --disable-ffserver) ffserver="no"
  ;;
M
Michael Niedermayer 已提交
308 309
  --disable-risky) risky="no"
  ;;
F
Fabrice Bellard 已提交
310 311 312
  esac
done

313 314 315 316 317 318 319 320 321
# compute mmx state
if test $mmx = "default"; then
    if test $cpu = "x86"; then
        mmx="yes"
    else
        mmx="no"
    fi
fi

322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339
# Can only do AltiVec on PowerPC
if test $altivec = "default"; then
    if test $cpu = "powerpc"; then
        altivec="yes"
    else
        altivec="no"
    fi
fi

# See does our compiler support Motorola AltiVec C API
if test $altivec = "yes"; then
cat > $TMPC << EOF
int main(void) {
    vector signed int v1, v2, v3;
    v1 = vec_add(v2,v3);
    return 0;
}
EOF
340
$cc -o $TMPE $TMPC -faltivec 2> /dev/null || altivec="no"
341 342
fi

343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359
# Can only do mmi on mips
if test $mmi = "default"; then
    if test $cpu = "mips"; then
        mmi="yes"
    else
        mmi="no"
    fi
fi

# See does our compiler support mmi
if test $mmi = "yes"; then
cat > $TMPC << EOF
int main(void) {
    __asm__ ("lq \$2, 0(\$2)");
    return 0;
}
EOF
360
$cc -o $TMPE $TMPC 2> /dev/null || mmi="no"
361 362
fi

363 364
# Checking for CFLAGS
if test -z "$CFLAGS"; then
M
-O3  
Michael Niedermayer 已提交
365
    CFLAGS="-O3"
366 367
fi

Z
Zdenek Kabelac 已提交
368
if test "$win32" = "yes" ; then
369
    cross_prefix="i386-mingw32msvc-"
F
Fabrice Bellard 已提交
370 371
    v4l="no"
    audio_oss="no"
372
    dv1394="no"
F
Fabrice Bellard 已提交
373
    network="no"
374 375
fi

376 377 378 379
if test "$mingw32" = "yes" ; then
    cross_prefix=""
    v4l="no"
    audio_oss="no"
380
    dv1394="no"
381 382 383
    network="no"
fi

384 385
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
M
Michael Niedermayer 已提交
386
ranlib="${cross_prefix}${ranlib}"
387 388
strip="${cross_prefix}${strip}"

F
Fabrice Bellard 已提交
389 390
if test -z "$cross_prefix" ; then

391 392 393 394 395 396 397 398 399 400
# ---
# big/little endian test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
	volatile uint32_t i=0x01234567;
	return (*((uint8_t*)(&i))) == 0x67;
}
EOF

401 402
if $cc -o $TMPE $TMPC 2>/dev/null ; then
$TMPE && bigendian="yes"
403 404 405 406
else
echo big/little test failed
fi

F
Fabrice Bellard 已提交
407 408 409 410 411 412 413 414 415
else

# if cross compiling, cannot launch a program, so make a static guess
if test "$cpu" = "powerpc" -o "$cpu" = "mips" ; then
    bigendian="yes"
fi

fi

N
Nick Kurshev 已提交
416 417 418 419 420 421 422 423 424 425
# ---
# check availability of some header files

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

_memalign=no
_malloc_h=no
426
if $cc -o $TMPE $TMPC 2> /dev/null ; then
N
Nick Kurshev 已提交
427 428 429 430 431 432 433 434 435 436 437
_malloc_h=yes
_memalign=yes
# check for memalign - atmos
cat > $TMPC << EOF
#include <malloc.h>
int main ( void ) {
char *string = NULL;
string = memalign(64, sizeof(char));
return 0;
}
EOF
438
$cc -o $TMPE $TMPC 2> /dev/null || _memalign=no
N
Nick Kurshev 已提交
439 440
fi

441 442 443 444 445 446 447
cat > $TMPC << EOF
#define _GNU_SOURCE
#include <time.h>
int main( void ) { return *strptime("", "", 0); }
EOF

strptime=no
448
if $cc -o $TMPE $TMPC 2> /dev/null ; then
449 450 451
  strptime=yes
fi

452 453 454 455 456 457 458 459 460 461 462
if test "$zlib" = "yes"; then
# check for zlib - mmu_man
cat > $TMPC << EOF
#include <zlib.h>
int main ( void ) {
if (zlibVersion() != ZLIB_VERSION)
   puts("zlib version differs !!!");
   return 1;
return 0;
}
EOF
463 464
$cc -o $TMPE $TMPC -lz 2> /dev/null || zlib="no"
# $TMPE 2> /dev/null > /dev/null || zlib="no"
465 466 467 468 469 470
# XXX: more tests needed - runtime test
fi
if test "$zlib" = "yes"; then
extralibs="$extralibs -lz"
fi

471 472 473 474 475 476 477 478
# test for lrintf in math.h
cat > $TMPC << EOF
#define _ISOC9X_SOURCE  1
#include <math.h>
int main( void ) { return (lrintf(3.999f) > 0)?0:1; }
EOF

have_lrintf="no"
479
if $cc $extralibs -o $TMPE $TMPC 2> /dev/null ; then
480
  have_lrintf="yes"
481
  $TMPE 2> /dev/null > /dev/null || have_lrintf="no"
482 483
fi

F
Falk Hüffner 已提交
484 485 486 487 488 489 490 491 492
_restrict=
for restrict_keyword in restrict __restrict__ __restrict; do
  echo "void foo(char * $restrict_keyword p);" > $TMPC
  if $cc -c -o $TMPO $TMPC 2> /dev/null; then
    _restrict=$restrict_keyword
    break;
  fi
done

493 494 495 496 497 498 499 500 501 502 503 504 505 506 507
# test gcc version to see if vector builtins can be used
# currently only used on i386 for MMX builtins
cat > $TMPC << EOF
int main(void) { 
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
return 0;
#else
#error no vector builtins
#endif
}
EOF

builtin_vector=no
if $cc -o $TMPO $TMPC 2> /dev/null ; then
  builtin_vector=yes
508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555
fi

# dlopen/dlfcn.h probing

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

ldl=-ldl

if $cc -o $TMPE $TMPC -ldl 2> /dev/null  ; then
dlfcn=yes
dlopen=yes
fi

if $cc -o $TMPE $TMPC 2> /dev/null  ; then
dlfcn=yes
dlopen=yes
ldl=""
fi

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

if $cc -o $TMPE $TMPC -ldl 2> /dev/null  ; then
dlopen=yes
fi

if $cc -o $TMPE $TMPC 2> /dev/null  ; then
dlopen=yes
ldl=""
fi

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

cat > $TMPC << EOF
#include <X11/Xlib.h>
#include <Imlib2.h>
int main( void ) { return (int) imlib_load_font("foo"); }
EOF

imlib2=no
if $cc -o $TMPE $TMPC -lImlib2 2> /dev/null  ; then
imlib2=yes
556 557
fi

558 559 560 561 562 563
cat > $TMPC << EOF
#include <ft2build.h>
int main( void ) { return (int) FT_Init_FreeType(0); }
EOF

freetype2=no
564 565 566
if test "x$targetos" != "xBeOS"; then
  which freetype-config > /dev/null
  if test $? -eq 0; then
567
    if $cc -o $TMPE $TMPC `freetype-config --cflags` `freetype-config --libs`  2> /dev/null ; then
568
      freetype2=yes
569
    fi
570
  fi
571 572
fi

F
Fabrice Bellard 已提交
573
if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
574 575 576 577 578 579 580 581 582 583
cat << EOF

Usage: configure [options]
Options: [defaults in brackets after descriptions]

EOF
echo "Standard options:"
echo "  --help                   print this message"
echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
echo "  --enable-mp3lame         enable mp3 encoding via libmp3lame [default=no]"
584
echo "  --enable-vorbis          enable vorbis support via libvorbisenc [default=no]"
585
echo "  --enable-win32           enable win32 cross compile"
586
echo "  --enable-mingw32         enable mingw32 native windows compile"
F
Fabrice Bellard 已提交
587
echo "  --disable-a52            disable GPL'ed A52 support [default=no]"
588
echo "  --enable-a52bin          open liba52.so.0 at runtime [default=no]"
589 590
echo "  --disable-pp             disable GPL'ed post processing support [default=no]"
echo "  --enable-shared-pp       use libpostproc.so [default=no]"
591 592 593 594 595 596
echo "  --enable-shared          build shared libraries [default=no]"
echo ""
echo "Advanced options (experts only):"
echo "  --source-path=PATH       path of source code [$source_path]"
echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
echo "  --cc=CC                  use C compiler CC [$cc]"
597
echo "  --make=MAKE              use specified make [$make]"
598 599 600 601 602
echo "  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS [$CFLAGS]"
echo "  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]"
echo "  --extra-libs=ELIBS       add ELIBS [$ELIBS]"
echo "  --cpu=CPU                force cpu to CPU  [$cpu]"
echo "  --disable-mmx            disable mmx usage"
603
echo "  --disable-altivec        disable AltiVec usage"
F
Fabrice Bellard 已提交
604
echo "  --disable-audio-oss      disable OSS audio support [default=no]"
605
echo "  --disable-audio-beos     disable BeOS audio support [default=no]"
F
Fabrice Bellard 已提交
606
echo "  --disable-v4l            disable video4linux grabbing [default=no]"
607
echo "  --disable-dv1394         disable DV1394 grabbing [default=no]"
F
Fabrice Bellard 已提交
608
echo "  --disable-network        disable network support [default=no]"
609
echo "  --disable-zlib           disable zlib [default=no]"
F
Fabrice Bellard 已提交
610
echo "  --disable-simple_idct    disable simple IDCT routines [default=no]"
611
echo "  --disable-vhook          disable video hooking support"
612
echo "  --enable-gprof           enable profiling with gprof [$gprof]"
613 614
echo "  --disable-mpegaudio-hp   faster (but less accurate)"
echo "                           mpegaudio decoding [default=no]"
615
echo "  --disable-ffserver       disable ffserver build"
M
Michael Niedermayer 已提交
616
echo "  --disable-risky          disables patent encumbered codecs"
617 618 619 620 621
echo ""
echo "NOTE: The object files are build at the place where configure is launched"
exit 1
fi

F
Fabrice Bellard 已提交
622
echo "Install prefix   $prefix"
623
echo "Source path      $source_path"
F
Fabrice Bellard 已提交
624
echo "C compiler       $cc"
625
echo "make             $make"
F
Fabrice Bellard 已提交
626
echo "CPU              $cpu"
627
echo "Big Endian       $bigendian"
F
Fabrice Bellard 已提交
628
if test $cpu = "x86"; then
F
Fabrice Bellard 已提交
629
echo "MMX enabled      $mmx"
630
echo "Vector Builtins  $builtin_vector"
F
Fabrice Bellard 已提交
631 632
fi
if test $cpu = "mips"; then
633
echo "MMI enabled      $mmi"
F
Fabrice Bellard 已提交
634 635
fi
if test $cpu = "powerpc"; then
636
echo "AltiVec enabled  $altivec"
F
Fabrice Bellard 已提交
637
fi
F
Fabrice Bellard 已提交
638
echo "gprof enabled    $gprof"
639
echo "zlib enabled     $zlib"
640
echo "mp3lame enabled  $mp3lame"
641
echo "vorbis enabled   $vorbis"
F
Fabrice Bellard 已提交
642
echo "a52 support      $a52"
Z
Zdenek Kabelac 已提交
643
echo "a52 dlopened     $a52bin"
644 645
echo "pp support       $pp"
echo "shared pp        $shared_pp"
646
echo "Video hooking    $vhook"
M
Michael Niedermayer 已提交
647
echo "risky / patent encumbered codecs $risky"
648 649

if test "$vhook" = "yes" ; then
650
echo "Imlib2 support   $imlib2"
651
echo "freetype support $freetype2"
652
fi
F
Fabrice Bellard 已提交
653

654
echo "Creating config.mak and config.h"
F
Fabrice Bellard 已提交
655

656
echo "# Automatically generated by configure - do not modify" > config.mak
657
echo "/* Automatically generated by configure - do not modify */" > $TMPH
F
Fabrice Bellard 已提交
658

659
echo "prefix=$prefix" >> config.mak
660
echo "MAKE=$make" >> config.mak
661 662
echo "CC=$cc" >> config.mak
echo "AR=$ar" >> config.mak
M
Michael Niedermayer 已提交
663
echo "RANLIB=$ranlib" >> config.mak
664
echo "STRIP=$strip" >> config.mak
N
Nick Kurshev 已提交
665
echo "OPTFLAGS=$CFLAGS" >> config.mak
666
echo "LDFLAGS=$LDFLAGS" >> config.mak
667
echo "FFSLDFLAGS=$FFSLDFLAGS" >> config.mak
668
echo "SHFLAGS=$SHFLAGS" >> config.mak
669 670 671 672
echo "LIBPREF=$LIBPREF" >> config.mak
echo "LIBSUF=$LIBSUF" >> config.mak
echo "SLIBPREF=$SLIBPREF" >> config.mak
echo "SLIBSUF=$SLIBSUF" >> config.mak
673
echo "TARGET_OS=$TARGET_OS" >> config.mak
Z
Zdenek Kabelac 已提交
674
if test "$cpu" = "x86" ; then
675
  echo "TARGET_ARCH_X86=yes" >> config.mak
676
  echo "#define ARCH_X86 1" >> $TMPH
677
elif test "$cpu" = "armv4l" ; then
678
  echo "TARGET_ARCH_ARMV4L=yes" >> config.mak
679
  echo "#define ARCH_ARMV4L 1" >> $TMPH
680
elif test "$cpu" = "alpha" ; then
681
  echo "TARGET_ARCH_ALPHA=yes" >> config.mak
682
  echo "#define ARCH_ALPHA 1" >> $TMPH
683 684 685
elif test "$cpu" = "sparc64" ; then
  echo "TARGET_ARCH_SPARC64=yes" >> config.mak
  echo "#define ARCH_SPARC64 1" >> $TMPH
686 687 688
elif test "$cpu" = "powerpc" ; then
  echo "TARGET_ARCH_POWERPC=yes" >> config.mak
  echo "#define ARCH_POWERPC 1" >> $TMPH
689 690 691 692
  echo "// Enable the next line to get PowerPC performance report" >> $TMPH
  echo "// #define POWERPC_TBL_PERFORMANCE_REPORT 1" >> $TMPH
  echo "// Enable the next line to use PMC registers instead of TBL" >> $TMPH
  echo "// #define POWERPC_PERF_USE_PMC 1" >> $TMPH
693 694 695
elif test "$cpu" = "mips" ; then
  echo "TARGET_ARCH_MIPS=yes" >> config.mak
  echo "#define ARCH_MIPS 1" >> $TMPH
696 697 698 699
fi
if test "$bigendian" = "yes" ; then
  echo "WORDS_BIGENDIAN=yes" >> config.mak
  echo "#define WORDS_BIGENDIAN 1" >> $TMPH
700
fi
Z
Zdenek Kabelac 已提交
701
if test "$mmx" = "yes" ; then
702
  echo "TARGET_MMX=yes" >> config.mak
703
  echo "#define HAVE_MMX 1" >> $TMPH
F
Fabrice Bellard 已提交
704
fi
705 706 707 708
if test "$builtin_vector" = "yes" ; then
  echo "TARGET_BUILTIN_VECTOR=yes" >> config.mak
  echo "#define HAVE_BUILTIN_VECTOR 1" >> $TMPH
fi
709 710 711 712
if test "$mmi" = "yes" ; then
  echo "TARGET_MMI=yes" >> config.mak
  echo "#define HAVE_MMI 1" >> $TMPH
fi
713 714 715
if test "$altivec" = "yes" ; then
  echo "TARGET_ALTIVEC=yes" >> config.mak
  echo "#define HAVE_ALTIVEC 1" >> $TMPH
716 717
  echo "// Enable the next line to use the reference C code instead of AltiVec" >> $TMPH
  echo "// #define ALTIVEC_USE_REFERENCE_C_CODE 1" >> $TMPH
718
fi
Z
Zdenek Kabelac 已提交
719
if test "$gprof" = "yes" ; then
720
  echo "TARGET_GPROF=yes" >> config.mak
721
  echo "#define HAVE_GPROF 1" >> $TMPH
F
Fabrice Bellard 已提交
722
fi
723 724 725 726 727 728 729 730
if test "$strptime" = "yes" ; then
  echo "#define HAVE_STRPTIME 1" >> $TMPH
else
  echo "BUILD_STRPTIME=yes" >> config.mak
fi
if test "$imlib2" = "yes" ; then
  echo "HAVE_IMLIB2=yes" >> config.mak
fi
731 732 733
if test "$freetype2" = "yes" ; then
  echo "HAVE_FREETYPE2=yes" >> config.mak
fi
734 735 736
if test "$have_lrintf" = "yes" ; then
  echo "#define HAVE_LRINTF 1" >> $TMPH
fi
737 738 739
if test "$vhook" = "yes" ; then
  echo "BUILD_VHOOK=yes" >> config.mak
  echo "#define HAVE_VHOOK 1" >> $TMPH
740
  extralibs="$extralibs $ldl"
741
fi
Z
Zdenek Kabelac 已提交
742
if test "$lshared" = "yes" ; then
N
Nick Kurshev 已提交
743
  echo "BUILD_SHARED=yes" >> config.mak
F
Fabrice Bellard 已提交
744
  echo "PIC=-fPIC" >> config.mak
N
Nick Kurshev 已提交
745
fi
746
echo "EXTRALIBS=$extralibs" >> config.mak
N
Nick Kurshev 已提交
747
echo -n "VERSION=" >>config.mak
748
head $source_path/VERSION >>config.mak
N
Nick Kurshev 已提交
749
echo "" >>config.mak
750
# if you do not want to use encoders, disable that.
751
echo "#define CONFIG_ENCODERS 1" >> $TMPH
752 753 754
echo "CONFIG_ENCODERS=yes" >> config.mak

# if you do not want to use decoders, disable that.
755
echo "#define CONFIG_DECODERS 1" >> $TMPH
756 757
echo "CONFIG_DECODERS=yes" >> config.mak

F
Fabrice Bellard 已提交
758 759 760 761
# AC3
if test "$a52" = "yes" ; then
  echo "#define CONFIG_AC3 1" >> $TMPH
  echo "CONFIG_AC3=yes" >> config.mak
762

F
Fabrice Bellard 已提交
763 764 765 766 767 768
  if test "$a52bin" = "yes" ; then
    echo "#define CONFIG_A52BIN 1" >> $TMPH
    echo "CONFIG_A52BIN=yes" >> config.mak
  fi
fi

769 770 771 772 773 774 775 776 777 778 779
# PP
if test "$pp" = "yes" ; then
  echo "#define CONFIG_PP 1" >> $TMPH
  echo "CONFIG_PP=yes" >> config.mak

  if test "$shared_pp" = "yes" ; then
    echo "#define SHARED_PP 1" >> $TMPH
    echo "SHARED_PP=yes" >> config.mak
  fi
fi

780 781 782 783 784
# mpeg audio high precision mode
if test "$mpegaudio_hp" = "yes" ; then
  echo "#define CONFIG_MPEGAUDIO_HP 1" >> $TMPH
fi

F
Fabrice Bellard 已提交
785 786 787 788 789
if test "$v4l" = "yes" ; then
  echo "#define CONFIG_VIDEO4LINUX 1" >> $TMPH
  echo "CONFIG_VIDEO4LINUX=yes" >> config.mak
fi

790 791 792 793 794
if test "$dv1394" = "yes" ; then
  echo "#define CONFIG_DV1394 1" >> $TMPH
  echo "CONFIG_DV1394=yes" >> config.mak
fi

795 796 797 798 799 800 801 802
if test "$dlopen" = "yes" ; then
  echo "#define CONFIG_HAVE_DLOPEN 1" >> $TMPH
fi

if test "$dlfcn" = "yes" ; then
  echo "#define CONFIG_HAVE_DLFCN 1" >> $TMPH
fi

F
Fabrice Bellard 已提交
803 804 805
if test "$audio_oss" = "yes" ; then
  echo "#define CONFIG_AUDIO_OSS 1" >> $TMPH
  echo "CONFIG_AUDIO_OSS=yes" >> config.mak
Z
Zdenek Kabelac 已提交
806 807
fi

808 809 810 811 812
if test "$audio_beos" = "yes" ; then
  echo "#define CONFIG_AUDIO_BEOS 1" >> $TMPH
  echo "CONFIG_AUDIO_BEOS=yes" >> config.mak
fi

F
Fabrice Bellard 已提交
813 814 815
if test "$network" = "yes" ; then
  echo "#define CONFIG_NETWORK 1" >> $TMPH
  echo "CONFIG_NETWORK=yes" >> config.mak
816
fi
817

818 819 820 821 822
if test "$zlib" = "yes" ; then
  echo "#define CONFIG_ZLIB 1" >> $TMPH
  echo "CONFIG_ZLIB=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
823
if test "$mp3lame" = "yes" ; then
824
  echo "#define CONFIG_MP3LAME 1" >> $TMPH
825 826 827
  echo "CONFIG_MP3LAME=yes" >> config.mak
fi

828 829 830 831 832
if test "$vorbis" = "yes" ; then
  echo "#define CONFIG_VORBIS 1" >> $TMPH
  echo "CONFIG_VORBIS=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
833
if test "$win32" = "yes" ; then
834
  echo "#define CONFIG_WIN32 1" >> $TMPH
835 836
  echo "CONFIG_WIN32=yes" >> config.mak
fi
N
Nick Kurshev 已提交
837

838 839 840 841 842 843 844
if test "$mingw32" = "yes" ; then
  echo "#define CONFIG_WIN32 1" >> $TMPH
  echo "CONFIG_WIN32=yes" >> config.mak
  echo "#define __MINGW32__ 1" >> $TMPH
  echo "__MINGW32__=1" >> config.mak
fi

845 846 847 848 849
if test "$cygwin" = "yes" ; then
  # setup correct exesuffix
  echo "CONFIG_WIN32=yes" >> config.mak
fi

850 851 852 853 854
if test "$os2" = "yes" ; then
  echo "#define CONFIG_OS2 1" >> $TMPH
  echo "CONFIG_OS2=yes" >> config.mak
fi

855 856 857 858 859
if test "$darwin" = "yes"; then
  echo "#define CONFIG_DARWIN 1"  >> $TMPH
  echo "CONFIG_DARWIN=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
860
if test "$_malloc_h" = "yes" ; then
861
  echo "#define HAVE_MALLOC_H 1" >> $TMPH
N
Nick Kurshev 已提交
862
else
863
  echo "#undef  HAVE_MALLOC_H" >> $TMPH
N
Nick Kurshev 已提交
864 865
fi

Z
Zdenek Kabelac 已提交
866
if test "$_memalign" = "yes" ; then
867 868 869 870 871
  echo "#define HAVE_MEMALIGN 1" >> $TMPH
else
  echo "#undef  HAVE_MEMALIGN" >> $TMPH
fi

872 873 874 875 876
if test "$netserver" = "yes" ; then
  echo "#define CONFIG_BEOS_NETSERVER 1" >> $TMPH
  echo "CONFIG_BEOS_NETSERVER=yes" >> config.mak
fi

877 878 879 880
if test "$need_inet_aton" = "yes" ; then
  echo "NEED_INET_ATON=yes" >> config.mak
fi

Z
Zdenek Kabelac 已提交
881
if test "$simpleidct" = "yes" ; then
882 883 884
  echo "#define SIMPLE_IDCT 1" >> $TMPH
fi

885 886 887 888 889
if test "$ffserver" = "yes" ; then
  echo "#define CONFIG_FFSERVER 1" >> $TMPH
  echo "CONFIG_FFSERVER=yes" >> config.mak
fi

M
Michael Niedermayer 已提交
890 891 892 893 894
if test "$risky" = "yes" ; then
  echo "#define CONFIG_RISKY 1" >> $TMPH
  echo "CONFIG_RISKY=yes" >> config.mak
fi

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

897 898
# build tree in object directory if source path is different from current one
if test "$source_path_used" = "yes" ; then
F
Fabrice Bellard 已提交
899 900 901
    DIRS="libavformat libavcodec libavcodec/alpha libavcodec/armv4l libavcodec/i386 \
          libavcodec/ppc libavcodec/liba52 libavcodec/mlib tests vhook"
    FILES="Makefile libavformat/Makefile libavcodec/Makefile tests/Makefile vhook/Makefile"
902 903 904 905 906 907 908 909 910
    for dir in $DIRS ; do
            mkdir -p $dir
    done
    for f in $FILES ; do
        ln -sf $source_path/$f $f
    done
fi
echo "SRC_PATH=$source_path" >> config.mak

Z
Zdenek Kabelac 已提交
911
diff $TMPH config.h >/dev/null 2>&1
912 913
if test $? -ne 0 ; then
	mv -f $TMPH config.h
N
Nick Kurshev 已提交
914
else
915
	echo "config.h is unchanged"
N
Nick Kurshev 已提交
916 917
fi

918
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH