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-xvid enable xvid support via xvidcore [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-dts enable GPL'ed DTS support [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]"
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"
Michael Niedermayer
committed
echo " --enable-memalign-hack emulate memalign, interferes with memory debuggers"
Michel Bardiaux
committed
echo " --disable-strip disable stripping of executables and shared libraries"
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)
Aurelien Jacobs
committed
x86_64)
if [ "`$cc -dumpmachine | grep x86_64 | cut -d- -f1`" = "x86_64" -a \
-z "`echo $CFLAGS | grep -- -m32`" ]; then
cpu="x86_64"
else
cpu="x86"
fi
;;
# 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"
xvid="no"
dts="no"
mingw32="no"
Felix Bünemann
committed
cygwin="no"
os2="no"
optimize="yes"
debug="yes"
Michel Bardiaux
committed
dostrip="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"
Michael Niedermayer
committed
memalignhack="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
audio_oss="no"
# 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/local/include/inttypes.h !!!"
Felix Bünemann
committed
;;
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"
;;
Luca Abeni
committed
--disable-network) network="no"; ffserver="no"
--disable-zlib) zlib="no"
;;
--enable-a52bin) a52bin="yes" ; extralibs="$ldl $extralibs"
--enable-dts) dts="yes" ; extralibs="$extralibs -ldts"
;;
;;
--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"
;;
--enable-xvid) xvid="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
--enable-memalign-hack) memalignhack="yes"
;;
Michel Bardiaux
committed
--disable-strip) dostrip="no"
;;
Michael Niedermayer
committed
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 "$xvid" != "no"; then
echo "libxvidcore is under GPL and --enable-gpl is not specified"
fail="yes"
fi
if test "$dts" != "no"; then
echo "libdts is under GPL and --enable-gpl is not specified"
fail="yes"
fi
Michael Niedermayer
committed
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
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
Aurelien Jacobs
committed
if test $cpu = "x86" -o $cpu = "x86_64"; then
Fabrice Bellard
committed
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
if test "$_memalign" = "no" -a "$mmx" = "yes" -a "$memalignhack" != "yes"; then
echo "error, no memalign() but sse enabled, either disable it or use --enable-memalign-hack"
exit 1
fi
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"
# allanc@chickenandporn.com: cannot execute cross-compiled
# code on the host. Only execute if not cross-compiling.
if test -z "$cross_prefix" ; then
$TMPE 2> /dev/null > /dev/null || have_lrintf="no"
fi
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
Aurelien Jacobs
committed
#include <xmmintrin.h>
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 (freetype-config --version) >/dev/null 2>&1 ; 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 (sdl-config --version) >/dev/null 2>&1 ; then
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
Nicolas Boos
committed
##########################################
# texi2html probe
texi2html=no
if (texi2html -version) >/dev/null 2>&1; then
Nicolas Boos
committed
texi2html=yes
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"
Aurelien Jacobs
committed
if test $cpu = "x86" -o $cpu = "x86_64"; then
echo "Vector Builtins $builtin_vector"