"README.md" did not exist on "66d4c62806a97b2eb14164c97fe9060c241e7f8e"
Newer
Older
Fabrice Bellard
committed
#
# ffmpeg configure script (c) 2000, 2001, 2002 Fabrice Bellard
Fabrice Bellard
committed
#
if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
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 " --mandir=DIR man documentation in DIR [PREFIX/man]"
echo " --enable-mp3lame enable mp3 encoding via libmp3lame [default=no]"
echo " --enable-vorbis enable vorbis support via libvorbisenc [default=no]"
echo " --enable-faad enable faad support via libfaad [default=no]"
echo " --enable-faadbin build faad support with runtime linking [default=no]"
echo " --enable-faac enable faac support via libfaac [default=no]"
echo " --enable-mingw32 enable mingw32 native/cross windows compile"
echo " --enable-a52 enable GPL'ed A52 support [default=no]"
echo " --enable-a52bin open liba52.so.0 at runtime [default=no]"
echo " --enable-pp enable GPL'ed post processing support [default=no]"
echo " --enable-shared-pp use libpostproc.so [default=no]"
echo " --enable-shared build shared libraries [default=no]"
echo " --enable-amr_nb enable amr_nb float audio codec"
echo " --enable-amr_nb-fixed use fixed point for amr-nb codec"
Michael Niedermayer
committed
echo " --enable-amr_wb enable amr_wb float audio codec"
echo " --enable-sunmlib use Sun medialib [default=no]"
echo " --enable-pthreads use pthreads [default=no]"
Michael Niedermayer
committed
echo " --enable-gpl allow use of gpl code, the resulting libav* and ffmpeg will be under gpl [default=no]"
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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]"
echo " --make=MAKE use specified make [$make]"
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 " --tune=PROCESSOR tune code for a particular CPU (may fails or misperforms on other CPUs)"
echo " --powerpc-perf-enable enable performance report on PPC (requires enabling PMC)"
echo " --disable-mmx disable mmx usage"
echo " --disable-altivec disable AltiVec usage"
echo " --disable-audio-oss disable OSS audio support [default=no]"
echo " --disable-audio-beos disable BeOS audio support [default=no]"
echo " --disable-v4l disable video4linux grabbing [default=no]"
echo " --disable-dv1394 disable DV1394 grabbing [default=no]"
echo " --disable-network disable network support [default=no]"
echo " --disable-zlib disable zlib [default=no]"
echo " --disable-simple_idct disable simple IDCT routines [default=no]"
echo " --disable-vhook disable video hooking support"
echo " --enable-gprof enable profiling with gprof [$gprof]"
echo " --disable-debug disable debugging symbols"
echo " --disable-opts disable compiler optimizations"
echo " --disable-mpegaudio-hp faster (but less accurate)"
echo " mpegaudio decoding [default=no]"
echo " --disable-ffserver disable ffserver build"
echo " --disable-ffplay disable ffplay build"
echo " --disable-risky disables patent encumbered codecs"
echo " --enable-small optimize for size instead of speed"
echo ""
echo "NOTE: The object files are build at the place where configure is launched"
exit 1
fi
Fabrice Bellard
committed
# set temporary file name
Fabrice Bellard
committed
TMPDIR1="${TMPDIR}"
Fabrice Bellard
committed
TMPDIR1="${TEMPDIR}"
Fabrice Bellard
committed
TMPDIR1="/tmp"
Fabrice Bellard
committed
TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}"
Fabrice Bellard
committed
TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"
Fabrice Bellard
committed
cross_prefix=""
Fabrice Bellard
committed
strip="strip"
Michael Niedermayer
committed
tune="generic"
powerpc_perf="no"
Fabrice Bellard
committed
mmx="default"
Brian Foley
committed
altivec="default"
mmi="default"
i386|i486|i586|i686|i86pc|BePC)
# armv4l is a subset of armv5tel
armv4l|armv5tel)
Nick Kurshev
committed
alpha)
cpu="alpha"
;;
"Power Macintosh"|ppc)
cpu="powerpc"
;;
mips)
cpu="mips"
;;
James Morrison
committed
sun4u|sparc64)
cpu="sparc64"
;;
James Morrison
committed
sparc)
cpu="sparc"
;;
Fabrice Bellard
committed
cpu="unknown"
audio_beos="no"
zlib="yes"
mp3lame="no"
vorbis="no"
Zdenek Kabelac
committed
faad="no"
faadbin="no"
Michael Niedermayer
committed
faac="no"
mingw32="no"
Felix Bünemann
committed
cygwin="no"
os2="no"
optimize="yes"
debug="yes"
Michael Niedermayer
committed
simpleidct="yes"
Fabrice Bellard
committed
bigendian="no"
Chris Flerackers
committed
inttypes="yes"
emu_fast_int="no"
dlfcn="no"
dlopen="no"
Fabrice Bellard
committed
mpegaudio_hp="yes"
SHFLAGS=-shared
netserver="no"
need_inet_aton="no"
LDFLAGS=-Wl,--warn-common
FFSLDFLAGS=-Wl,-E
LIBPREF="lib"
LIBSUF=".a"
SLIBPREF="lib"
SLIBSUF=".so"
amr_wb="no"
sunmlib="no"
Michael Niedermayer
committed
gpl="no"
# OS specific
targetos=`uname -s`
case $targetos in
BeOS)
prefix="/boot/home/config"
# helps building libavcodec
CFLAGS="-DPIC -fomit-frame-pointer"
# 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
SHFLAGS=-nostart
# disable linux things
# enable beos things
audio_beos="yes"
# 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
netserver="yes"
need_inet_aton="yes"
extralibs="-lnet"
SunOS)
v4l="no"
audio_oss="no"
make="gmake"
LDFLAGS=""
FFSLDFLAGS=""
need_inet_aton="yes"
extralibs="$extralibs -lsocket -lnsl"
;;
FreeBSD)
v4l="no"
audio_oss="yes"
CFLAGS="-pthread"
LDFLAGS="$LDFLAGS -export-dynamic -pthread"
extralibs="-lpoll -lgnugetopt -lm"
make="gmake"
;;
Darwin)
v4l="no"
audio_oss="no"
Steven M. Schultz
committed
ffserver="no"
SHFLAGS="-dynamiclib"
extralibs=""
darwin="yes"
LDFLAGS="-Wl,-d"
FFSLDFLAGS=-Wl,-bind_at_load
;;
MINGW32*)
# Note: the rest of the mingw32 config is done afterwards as mingw32
# can be forced on command line for linux cross compilation
mingw32="yes"
;;
Felix Bünemann
committed
CYGWIN*)
v4l="no"
audio_oss="yes"
Felix Bünemann
committed
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 !!!"
;;
Linux)
LDFLAGS="$LDFLAGS -rdynamic"
Michel Bardiaux
committed
IRIX*)
ranlib="echo ignoring ranlib"
v4l="no"
audio_oss="no"
make="gmake"
;;
OS/2)
TMPE=$TMPE".exe"
Slavik Gnatenko
committed
ar="emxomfar -p64"
ranlib="echo ignoring ranlib"
strip="echo ignoring strip"
CFLAGS="-Zomf"
Slavik Gnatenko
committed
LDFLAGS="-Zomf -Zstack 16384 -s"
SHFLAGS=""
FFSLDFLAGS=""
LIBPREF=""
LIBSUF=".lib"
SLIBPREF=""
SLIBSUF=".dll"
extralibs=""
v4l="no"
audio_oss="no"
network="no"
ffserver="no"
os2="yes"
;;
Romain Dolbeau
committed
# 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
Fabrice Bellard
committed
# find source path
# XXX: we assume an absolute path is given when launching configure,
# except in './configure' case.
Roman Shaposhnik
committed
source_path="`echo $0 | sed -e 's#/configure##'`"
Fabrice Bellard
committed
source_path_used="yes"
if test -z "$source_path" -o "$source_path" = "." ; then
source_path=`pwd`
source_path_used="no"
fi
for opt do
case "$opt" in
--prefix=*) prefix=`echo $opt | cut -d '=' -f 2`
;;
--mandir=*) mandir=`echo $opt | cut -d '=' -f 2`
;;
Fabrice Bellard
committed
--source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
;;
--cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
;;
--make=*) make=`echo $opt | cut -d '=' -f 2`
;;
Fabrice Bellard
committed
--extra-cflags=*) CFLAGS="${opt#--extra-cflags=}"
;;
--extra-ldflags=*) LDFLAGS=${opt#--extra-ldflags=}
;;
--extra-libs=*) extralibs=${opt#--extra-libs=}
;;
Michael Niedermayer
committed
--tune=*) tune=`echo $opt | cut -d '=' -f 2`
;;
--powerpc-perf-enable) powerpc_perf="yes"
;;
Brian Foley
committed
--disable-altivec) altivec="no"
;;
--disable-v4l) v4l="no"
;;
--disable-audio-oss) audio_oss="no"
;;
--disable-audio-beos) audio_beos="no"
;;
--disable-dv1394) dv1394="no"
;;
--disable-zlib) zlib="no"
;;
--enable-a52bin) a52bin="yes" ; extralibs="$ldl $extralibs"
;;
--enable-shared-pp) shared_pp="yes"
;;
--enable-mp3lame) mp3lame="yes"
;;
--enable-vorbis) vorbis="yes"
;;
--enable-faad) faad="yes"
;;
--enable-faadbin) faadbin="yes"
;;
Michael Niedermayer
committed
--enable-faac) faac="yes"
;;
Philip Gladstone
committed
--disable-vhook) vhook="no"
;;
Michael Niedermayer
committed
--disable-simple_idct) simpleidct="no"
--enable-mingw32) mingw32="yes"
;;
--disable-debug) debug="no"
;;
--disable-opts) optimize="no"
;;
Fabrice Bellard
committed
--disable-mpegaudio-hp) mpegaudio_hp="no"
;;
--disable-ffserver) ffserver="no"
;;
--enable-small) optimize="small"
Michael Niedermayer
committed
;;
--enable-amr_nb) amr_nb="yes"
;;
Michael Niedermayer
committed
--enable-amr_wb) amr_wb="yes"
;;
--enable-sunmlib) sunmlib="yes"
;;
--enable-pthreads) pthreads="yes"
;;
Michael Niedermayer
committed
--enable-gpl) gpl="yes"
;;
Michael Niedermayer
committed
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
if test "$gpl" != "yes"; then
if test "$pp" != "no" -o "$shared_pp" != "no"; then
echo "The Postprocessing code is under GPL and --enable-gpl is not specified"
fail="yes"
fi
if test "$a52" != "no" -o "$a52bin" != "no"; then
echo "liba52 is under GPL and --enable-gpl is not specified"
fail="yes"
fi
if test "$faad" != "no" -o "$faadbin" != "no"; then
cat > $TMPC << EOF
#include <faad.h>
int main( void ) { return 0; }
EOF
if $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
cat > $TMPC << EOF
#include <faad.h>
#ifndef FAAD2_VERSION
ok faad1
#endif
int main( void ) { return 0; }
EOF
if $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
echo "faad2 is under GPL and --enable-gpl is not specified"
fail="yes"
fi
else
faad="no"
faadbin="no"
echo "faad test failed"
fi
fi
Michael Niedermayer
committed
exit 1
fi
fi
Fabrice Bellard
committed
# compute mmx state
if test $mmx = "default"; then
if test $cpu = "x86"; then
mmx="yes"
else
mmx="no"
fi
fi
#Darwin CC versions
Michael Niedermayer
committed
needmdynamicnopic="no"
if test $targetos = Darwin; then
if test -n "`$cc -v 2>&1 | grep xlc`"; then
CFLAGS="$CFLAGS -qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto"
else
gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
case "$gcc_version" in
*2.95*)
CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer"
;;
Michael Niedermayer
committed
*3.*)
CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer -force_cpusubtype_ALL -Wno-sign-compare"
Michael Niedermayer
committed
if test "$lshared" = no; then
needmdynamicnopic="yes"
fi
;;
*)
CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer"
Michael Niedermayer
committed
if test "$lshared" = no; then
needmdynamicnopic="yes"
fi
;;
esac
fi
fi
Brian Foley
committed
# Can only do AltiVec on PowerPC
if test $altivec = "default"; then
if test $cpu = "powerpc"; then
altivec="yes"
else
altivec="no"
fi
fi
Michael Niedermayer
committed
# Add processor-specific flags
TUNECPU="generic"
Romain Dolbeau
committed
POWERPCMODE="32bits"
Michael Niedermayer
committed
if test $tune != "generic"; then
case $tune in
601|ppc601|PowerPC601)
CFLAGS="$CFLAGS -mcpu=601"
if test $altivec = "yes"; then
echo "WARNING: tuning for PPC601 but altivec enabled !";
fi
TUNECPU=ppc601
;;
603*|ppc603*|PowerPC603*)
CFLAGS="$CFLAGS -mcpu=603"
if test $altivec = "yes"; then
echo "WARNING: tuning for PPC603 but altivec enabled !";
fi
TUNECPU=ppc603
;;
604*|ppc604*|PowerPC604*)
CFLAGS="$CFLAGS -mcpu=604"
if test $altivec = "yes"; then
echo "WARNING: tuning for PPC604 but altivec enabled !";
fi
TUNECPU=ppc604
;;
Dan Christiansen
committed
G3|g3|75*|ppc75*|PowerPC75*)
Dan Christiansen
committed
CFLAGS="$CFLAGS -mcpu=750 -mtune=750 -mpowerpc-gfxopt"
Michael Niedermayer
committed
if test $altivec = "yes"; then
echo "WARNING: tuning for PPC75x but altivec enabled !";
fi
TUNECPU=ppc750
;;
Dan Christiansen
committed
G4|g4|745*|ppc745*|PowerPC745*)
Dan Christiansen
committed
CFLAGS="$CFLAGS -mcpu=7450 -mtune=7450 -mpowerpc-gfxopt"
if test $altivec = "no"; then
echo "WARNING: tuning for PPC745x but altivec disabled !";
fi
TUNECPU=ppc7450
;;
74*|ppc74*|PowerPC74*)
Dan Christiansen
committed
CFLAGS="$CFLAGS -mcpu=7400 -mtune=7400 -mpowerpc-gfxopt"
Michael Niedermayer
committed
if test $altivec = "no"; then
echo "WARNING: tuning for PPC74xx but altivec disabled !";
fi
TUNECPU=ppc7400
Michael Niedermayer
committed
;;
Dan Christiansen
committed
G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
Romain Dolbeau
committed
CFLAGS="$CFLAGS -mcpu=970 -mtune=970 -mpowerpc-gfxopt -mpowerpc64"
Michael Niedermayer
committed
if test $altivec = "no"; then
echo "WARNING: tuning for PPC970 but altivec disabled !";
fi
TUNECPU=ppc970
Romain Dolbeau
committed
POWERPCMODE="64bits"
Michael Niedermayer
committed
;;
*)
echo "WARNING: unknown CPU "$tune", ignored"
;;
esac
fi
# AltiVec flags: The FSF version of GCC differs from the Apple version
Magnus Damm
committed
if test $cpu = "powerpc"; then
if test $altivec = "yes"; then
if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
Magnus Damm
committed
CFLAGS="$CFLAGS -faltivec"
else
CFLAGS="$CFLAGS -maltivec -mabi=altivec"
fi
fi
fi
# See if we have <altivec.h>
cat > $TMPC << EOF
#include <altivec.h>
int main( void ) { return 0; }
EOF
_altivec_h="no"
Magnus Damm
committed
if $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
_altivec_h="yes"
fi
Brian Foley
committed
# See does our compiler support Motorola AltiVec C API
if test $altivec = "yes"; then
if test $_altivec_h = "yes"; then
Brian Foley
committed
cat > $TMPC << EOF
#include <altivec.h>
Brian Foley
committed
int main(void) {
vector signed int v1, v2, v3;
v1 = vec_add(v2,v3);
return 0;
}
EOF
else
cat > $TMPC << EOF
int main(void) {
vector signed int v1, v2, v3;
v1 = vec_add(v2,v3);
return 0;
}
EOF
fi
Magnus Damm
committed
$cc $CFLAGS -o $TMPE $TMPC 2> /dev/null || altivec="no"
Brian Foley
committed
fi
# 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
$cc -o $TMPE $TMPC 2> /dev/null || mmi="no"
fi
if test "$mingw32" = "yes" ; then
v4l="no"
audio_oss="no"
network="no"
LIBPREF=""
LIBSUF=".lib"
SLIBPREF=""
SLIBSUF=".dll"
EXESUF=".exe"
prefix="/c/Program Files/FFmpeg"
bindir="$prefix"
Fabrice Bellard
committed
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
Fabrice Bellard
committed
strip="${cross_prefix}${strip}"
# ---
# 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
if $cc -o $TMPE $TMPC 2>/dev/null ; then
$TMPE && bigendian="yes"
else
echo big/little test failed
fi
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
Chris Flerackers
committed
# ---
# *inttypes.h* test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
return 0;
}
EOF
$cc -o $TMPE $TMPC 2>/dev/null || inttypes="no"
# ---
# *int_fast* test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
volatile uint_fast64_t i=0x01234567;
return 0;
}
EOF
$cc -o $TMPE $TMPC 2>/dev/null || emu_fast_int="yes"
# ---
# check availability of some header files
cat > $TMPC << EOF
#include <malloc.h>
int main( void ) { return 0; }
EOF
_memalign=no
_malloc_h=no
if $cc -o $TMPE $TMPC 2> /dev/null ; then
_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
$cc -o $TMPE $TMPC 2> /dev/null || _memalign=no
cat > $TMPC << EOF
#include <time.h>
int main( void ) { localtime_r(NULL, NULL); }
EOF
localtime_r=no
if $cc -o $TMPE $TMPC 2> /dev/null ; then
localtime_r=yes
fi
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
$cc $CFLAGS -o $TMPE $TMPC -lz 2> /dev/null || zlib="no"
# $TMPE 2> /dev/null > /dev/null || zlib="no"
# XXX: more tests needed - runtime test
fi
if test "$zlib" = "yes"; then
extralibs="$extralibs -lz"
fi
Michael Niedermayer
committed
# 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"
if $cc $extralibs -o $TMPE $TMPC 2> /dev/null ; then
Michael Niedermayer
committed
have_lrintf="yes"
$TMPE 2> /dev/null > /dev/null || have_lrintf="no"
Michael Niedermayer
committed
fi
_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
# 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
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 > /dev/null 2>&1 ; then
dlfcn=yes
dlopen=yes
fi
if $cc -o $TMPE $TMPC > /dev/null 2>&1 ; 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 > /dev/null 2>&1 ; then
dlopen=yes
fi
if $cc -o $TMPE $TMPC > /dev/null 2>&1 ; then
dlopen=yes
ldl=""
fi
if test "$vhook" = "default" ; then
vhook="$dlopen"
fi
##########################################
# imlib probe
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 -lm > /dev/null 2>&1 ; then
fi
##########################################
# freetype probe
cat > $TMPC << EOF
#include <ft2build.h>
int main( void ) { return (int) FT_Init_FreeType(0); }
EOF
freetype2=no
Slavik Gnatenko
committed
if test "x$targetos" != "xBeOS" && test "$os2" != "yes"; then
if test "`which freetype-config`" != ""; then
if $cc -o $TMPE $TMPC `freetype-config --cflags` `freetype-config --libs` > /dev/null 2>&1 ; then
freetype2=yes
fi
##########################################
# SDL probe
cat > $TMPC << EOF
#include <SDL.h>
#undef main /* We don't want SDL to override our main() */
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
EOF
sdl_too_old=no
sdl=no
if $cc -o $TMPE `sdl-config --cflags` $TMPC `sdl-config --libs` > /dev/null 2>&1 ; then
_sdlversion=`sdl-config --version | sed 's/[^0-9]//g'`
if test "$_sdlversion" -lt 121 ; then
sdl_too_old=yes
else
sdl=yes
fi
fi
case "`$cc -v 2>&1 | grep version`" in
*gcc*)
CFLAGS="-Wall $CFLAGS"
;;
*)
;;
esac
if test "$sdl" = "no" ; then
ffplay=no
fi
if test "$debug" = "yes"; then
fi
if test "$optimize" = "small"; then
Michael Niedermayer
committed
CFLAGS="$CFLAGS -Os"
fi
if test "$optimize" = "yes"; then
if test -n "`$cc -v 2>&1 | grep xlc`"; then
CFLAGS="$CFLAGS -O5"
LDFLAGS="$LDFLAGS -O5"
else
fi
fi
if test x"$bindir" = x""; then
bindir="${prefix}/bin"
fi
if test x"$mandir" = x""; then
mandir="${prefix}/man"
fi
Fabrice Bellard
committed
echo "Source path $source_path"
Michael Niedermayer
committed
echo "CPU $cpu ($tune)"
Fabrice Bellard
committed
echo "Big Endian $bigendian"
Chris Flerackers
committed
echo "inttypes.h $inttypes"
echo "broken inttypes.h $emu_fast_int"
echo "Vector Builtins $builtin_vector"
echo "MMI enabled $mmi"
Brian Foley
committed
echo "AltiVec enabled $altivec"
echo "zlib enabled $zlib"
echo "mp3lame enabled $mp3lame"
echo "vorbis enabled $vorbis"
echo "faad enabled $faad"
echo "faadbin enabled $faadbin"
Michael Niedermayer
committed
echo "faac enabled $faac"
echo "debug symbols $debug"
echo "optimize $optimize"
echo "shared pp $shared_pp"
echo "Video hooking $vhook"
echo "SDL support $sdl"
if test $sdl_too_old = "yes"; then
echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support"
fi
echo "risky / patent encumbered codecs $risky"
Philip Gladstone
committed
if test "$vhook" = "yes" ; then
echo "Imlib2 support $imlib2"
echo "freetype support $freetype2"
Philip Gladstone
committed
fi
echo "Sun medialib support" $sunmlib
echo "pthreads support" $pthreads
echo "AMR-NB float support" $amr_nb
echo "AMR-NB fixed support" $amr_nb_fixed
echo "AMR-WB float support" $amr_wb
Michael Niedermayer
committed
if test "$gpl" = "no" ; then
echo "License: LGPL"
else
echo "License: GPL"
fi
echo "Creating config.mak and config.h"
echo "# Automatically generated by configure - do not modify" > config.mak
echo "/* Automatically generated by configure - do not modify */" > $TMPH
echo "prefix=$prefix" >> config.mak
echo "CC=$cc" >> config.mak
echo "AR=$ar" >> config.mak
Fabrice Bellard
committed
echo "STRIP=$strip" >> config.mak
Michael Niedermayer
committed
# SHCFLAGS is a copy of CFLAGS without -mdynamic-no-pic. Used when building
# shared modules on OS/X (vhook/Makefile).
SHCFLAGS=$CFLAGS
if test "$needmdynamicnopic" = yes; then
CFLAGS="$CFLAGS -mdynamic-no-pic"
fi
Michael Niedermayer
committed
echo "SHCFLAGS=$SHCFLAGS">>config.mak
Fabrice Bellard
committed
echo "LDFLAGS=$LDFLAGS" >> config.mak
echo "FFSLDFLAGS=$FFSLDFLAGS" >> config.mak
echo "SHFLAGS=$SHFLAGS" >> config.mak
echo "LIBPREF=$LIBPREF" >> config.mak
echo "LIBSUF=$LIBSUF" >> config.mak
echo "SLIBPREF=$SLIBPREF" >> config.mak
echo "SLIBSUF=$SLIBSUF" >> config.mak
Romain Dolbeau
committed
echo "TARGET_OS=$TARGET_OS" >> config.mak
echo "TARGET_ARCH_X86=yes" >> config.mak
Fabrice Bellard
committed
elif test "$cpu" = "armv4l" ; then
echo "TARGET_ARCH_ARMV4L=yes" >> config.mak
echo "#define ARCH_ARMV4L 1" >> $TMPH
Fabrice Bellard
committed
elif test "$cpu" = "alpha" ; then
Nick Kurshev
committed
echo "TARGET_ARCH_ALPHA=yes" >> config.mak
elif test "$cpu" = "sparc64" ; then
echo "TARGET_ARCH_SPARC64=yes" >> config.mak
echo "#define ARCH_SPARC64 1" >> $TMPH
James Morrison
committed
echo "TARGET_ARCH_SPARC=yes" >> config.mak
echo "#define ARCH_SPARC 1" >> $TMPH
elif test "$cpu" = "sparc" ; then
echo "TARGET_ARCH_SPARC=yes" >> config.mak
echo "#define ARCH_SPARC 1" >> $TMPH
Fabrice Bellard
committed
elif test "$cpu" = "powerpc" ; then
echo "TARGET_ARCH_POWERPC=yes" >> config.mak
echo "#define ARCH_POWERPC 1" >> $TMPH
Romain Dolbeau
committed
if test $POWERPCMODE = "32bits"; then
echo "#define POWERPC_MODE_32BITS 1" >> $TMPH
else
echo "#define POWERPC_MODE_64BITS 1" >> $TMPH
fi
if test "$powerpc_perf" = "yes"; then
echo "#define POWERPC_PERFORMANCE_REPORT 1" >> $TMPH
fi
elif test "$cpu" = "mips" ; then
echo "TARGET_ARCH_MIPS=yes" >> config.mak
echo "#define ARCH_MIPS 1" >> $TMPH
elif test "$cpu" = "sh4" ; then
echo "TARGET_ARCH_SH4=yes" >> config.mak
echo "#define ARCH_SH4 1" >> $TMPH
fi
Michael Niedermayer
committed
echo "#define TUNECPU $TUNECPU" >> $TMPH
Fabrice Bellard
committed
if test "$bigendian" = "yes" ; then
echo "WORDS_BIGENDIAN=yes" >> config.mak
echo "#define WORDS_BIGENDIAN 1" >> $TMPH
Nick Kurshev
committed
fi
Michael Niedermayer
committed
if test "$inttypes" != "yes" ; then
echo "#define EMULATE_INTTYPES 1" >> $TMPH
Chris Flerackers
committed
fi
if test "$emu_fast_int" = "yes" ; then
echo "#define EMULATE_FAST_INT 1" >> $TMPH
fi
echo "TARGET_MMX=yes" >> config.mak
if test "$builtin_vector" = "yes" ; then
echo "TARGET_BUILTIN_VECTOR=yes" >> config.mak
echo "#define HAVE_BUILTIN_VECTOR 1" >> $TMPH
fi
if test "$mmi" = "yes" ; then
echo "TARGET_MMI=yes" >> config.mak
echo "#define HAVE_MMI 1" >> $TMPH
fi
Brian Foley
committed
if test "$altivec" = "yes" ; then
echo "TARGET_ALTIVEC=yes" >> config.mak
echo "#define HAVE_ALTIVEC 1" >> $TMPH
Michael Niedermayer
committed
echo "// Enable the next line to use the reference C code instead of AltiVec" >> $TMPH
echo "// #define ALTIVEC_USE_REFERENCE_C_CODE 1" >> $TMPH
if test "$_altivec_h" = "yes" ; then
echo "#define HAVE_ALTIVEC_H 1" >> $TMPH
else
fi
Brian Foley
committed
fi
echo "TARGET_GPROF=yes" >> config.mak
if test "$localtime_r" = "yes" ; then
echo "#define HAVE_LOCALTIME_R 1" >> $TMPH
fi
Philip Gladstone
committed
if test "$imlib2" = "yes" ; then
echo "HAVE_IMLIB2=yes" >> config.mak
fi
if test "$freetype2" = "yes" ; then
echo "HAVE_FREETYPE2=yes" >> config.mak
fi
if test "$sunmlib" = "yes" ; then
echo "HAVE_MLIB=yes" >> config.mak
echo "#define HAVE_MLIB 1" >> $TMPH
extralibs="$extralibs -lmlib"
fi
if test "$pthreads" = "yes" ; then
echo "HAVE_PTHREADS=yes" >> config.mak
echo "#define HAVE_PTHREADS 1" >> $TMPH
if test $targetos != FreeBSD; then
extralibs="$extralibs -lpthread"
fi
if test "$sdl" = "yes" ; then
echo "CONFIG_SDL=yes" >> config.mak
echo "SDL_LIBS=`sdl-config --libs`" >> config.mak
echo "SDL_CFLAGS=`sdl-config --cflags`" >> config.mak
fi
Michael Niedermayer
committed
if test "$have_lrintf" = "yes" ; then
echo "#define HAVE_LRINTF 1" >> $TMPH
fi
Philip Gladstone
committed
if test "$vhook" = "yes" ; then
echo "BUILD_VHOOK=yes" >> config.mak
echo "#define HAVE_VHOOK 1" >> $TMPH
extralibs="$extralibs $ldl"
Philip Gladstone
committed
fi
echo "EXTRALIBS=$extralibs" >> config.mak
version=`grep '#define FFMPEG_VERSION ' $source_path/libavcodec/avcodec.h |
cut -d '"' -f 2`
echo "VERSION=$version" >>config.mak
Fabrice Bellard
committed
# if you do not want to use encoders, disable that.
echo "#define CONFIG_ENCODERS 1" >> $TMPH
Fabrice Bellard
committed
echo "CONFIG_ENCODERS=yes" >> config.mak
# if you do not want to use decoders, disable that.
echo "#define CONFIG_DECODERS 1" >> $TMPH
Fabrice Bellard
committed
echo "CONFIG_DECODERS=yes" >> config.mak
# AC3
if test "$a52" = "yes" ; then
echo "#define CONFIG_AC3 1" >> $TMPH
echo "CONFIG_AC3=yes" >> config.mak
Fabrice Bellard
committed
if test "$a52bin" = "yes" ; then
echo "#define CONFIG_A52BIN 1" >> $TMPH
echo "CONFIG_A52BIN=yes" >> config.mak
fi
fi
# 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
Fabrice Bellard
committed
# mpeg audio high precision mode
if test "$mpegaudio_hp" = "yes" ; then
echo "#define CONFIG_MPEGAUDIO_HP 1" >> $TMPH
fi
if test "$v4l" = "yes" ; then
echo "#define CONFIG_VIDEO4LINUX 1" >> $TMPH
echo "CONFIG_VIDEO4LINUX=yes" >> config.mak
fi
if test "$dv1394" = "yes" ; then
echo "#define CONFIG_DV1394 1" >> $TMPH
echo "CONFIG_DV1394=yes" >> config.mak
fi
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
if test "$audio_oss" = "yes" ; then
echo "#define CONFIG_AUDIO_OSS 1" >> $TMPH
echo "CONFIG_AUDIO_OSS=yes" >> config.mak
if test "$audio_beos" = "yes" ; then
echo "#define CONFIG_AUDIO_BEOS 1" >> $TMPH
echo "CONFIG_AUDIO_BEOS=yes" >> config.mak
fi
if test "$network" = "yes" ; then
echo "#define CONFIG_NETWORK 1" >> $TMPH
echo "CONFIG_NETWORK=yes" >> config.mak
if test "$zlib" = "yes" ; then
echo "#define CONFIG_ZLIB 1" >> $TMPH
echo "CONFIG_ZLIB=yes" >> config.mak
fi
echo "#define CONFIG_MP3LAME 1" >> $TMPH
echo "CONFIG_MP3LAME=yes" >> config.mak
fi
if test "$vorbis" = "yes" ; then
echo "#define CONFIG_VORBIS 1" >> $TMPH
echo "CONFIG_VORBIS=yes" >> config.mak
fi
Zdenek Kabelac
committed
if test "$faad" = "yes" ; then
echo "#define CONFIG_FAAD 1" >> $TMPH
echo "CONFIG_FAAD=yes" >> config.mak
fi
if test "$faadbin" = "yes" ; then
echo "#define CONFIG_FAADBIN 1" >> $TMPH
Zdenek Kabelac
committed
fi
Michael Niedermayer
committed
if test "$faac" = "yes" ; then
echo "#define CONFIG_FAAC 1" >> $TMPH
echo "CONFIG_FAAC=yes" >> config.mak
fi
if test "$mingw32" = "yes" ; then
echo "#define CONFIG_WIN32 1" >> $TMPH
echo "CONFIG_WIN32=yes" >> config.mak
echo "HAVE_W32THREADS=yes" >> config.mak
echo "#define HAVE_W32THREADS 1" >> $TMPH
echo "#ifndef __MINGW32__" >> $TMPH
echo "#define __MINGW32__ 1" >> $TMPH
echo "#endif" >> $TMPH
Felix Bünemann
committed
fi
if test "$os2" = "yes" ; then
echo "#define CONFIG_OS2 1" >> $TMPH
echo "CONFIG_OS2=yes" >> config.mak
fi
if test "$TARGET_OS" = "SunOS" ; then
echo "#define CONFIG_SUNOS 1" >> $TMPH
fi
if test "$darwin" = "yes"; then
echo "#define CONFIG_DARWIN 1" >> $TMPH
echo "CONFIG_DARWIN=yes" >> config.mak
fi
echo "#define HAVE_MALLOC_H 1" >> $TMPH
echo "#define HAVE_MEMALIGN 1" >> $TMPH
else
echo "#undef HAVE_MEMALIGN" >> $TMPH
fi
if test "$netserver" = "yes" ; then
echo "#define CONFIG_BEOS_NETSERVER 1" >> $TMPH
echo "CONFIG_BEOS_NETSERVER=yes" >> config.mak
fi
if test "$need_inet_aton" = "yes" ; then
echo "NEED_INET_ATON=yes" >> config.mak
fi
echo "#define SIMPLE_IDCT 1" >> $TMPH
fi
if test "$ffserver" = "yes" ; then
echo "#define CONFIG_FFSERVER 1" >> $TMPH
echo "CONFIG_FFSERVER=yes" >> config.mak
fi
if test "$ffplay" = "yes" ; then
echo "CONFIG_FFPLAY=yes" >> config.mak
fi
if test "$risky" = "yes" ; then
echo "#define CONFIG_RISKY 1" >> $TMPH
echo "CONFIG_RISKY=yes" >> config.mak
fi
Michael Niedermayer
committed
if test "$gpl" = "yes" ; then
echo "#define CONFIG_GPL 1" >> $TMPH
echo "CONFIG_GPL=yes" >> config.mak
fi
echo "#define restrict $_restrict" >> $TMPH
if test "$optimize" = "small"; then
echo "#define always_inline" >> $TMPH
fi
Fabrice Bellard
committed
# build tree in object directory if source path is different from current one
if test "$source_path_used" = "yes" ; then
DIRS="libavformat libavcodec libavcodec/alpha libavcodec/armv4l libavcodec/i386 \
libavcodec/ppc libavcodec/liba52 libavcodec/mlib libavcodec/libpostproc tests vhook"
FILES="Makefile libavformat/Makefile libavcodec/Makefile libavcodec/libpostproc/Makefile tests/Makefile vhook/Makefile"
Fabrice Bellard
committed
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
if test "$amr_wb" = "yes" ; then
echo "#define AMR_WB 1" >> $TMPH
echo "AMR_WB=yes" >> config.mak
echo
echo "AMR WB FLOAT NOTICE ! Make sure you have downloaded TS26.204"
echo "V5.1.0 from "
echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip"
echo "and extracted the source to libavcodec/amrwb_float"
echo
fi
if test "$amr_nb" = "yes" ; then
echo "#define AMR_NB 1" >> $TMPH
echo "AMR_NB=yes" >> config.mak
echo
if test "$amr_nb_fixed" = "yes" ; then
echo "AMR_NB_FIXED=yes" >> config.mak
echo "#define AMR_NB_FIXED 1" >> $TMPH
echo "AMR NB FIXED POINT NOTICE! Make sure you have downloaded TS26.073 "
echo "REL-5 version 5.1.0 from "
echo "http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26073-510.zip"
echo "and extracted src to libavcodec/amr"
echo "You must also add -DMMS_IO and remove -pedantic-errors to/from CFLAGS in libavcodec/amr/makefile."
echo "i.e. CFLAGS = -Wall -I. \$(CFLAGS_\$(MODE)) -D\$(VAD) -DMMS_IO"
echo
else
echo "AMR NB FLOAT NOTICE ! Make sure you have downloaded TS26.104"
echo "REL-5 V5.1.0 from "
echo "http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26104-510.zip"
echo "and extracted the source to libavcodec/amr_float"
echo "and if u try this on an alpha, u may need to change Word32 to int in amr/typedef.h"
echo
fi
if test $? -ne 0 ; then
mv -f $TMPH config.h
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH