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 " --libdir=DIR install libs in DIR [PREFIX/lib]"
echo " --incdir=DIR install includes in DIR [PREFIX/include/ffmpeg]"
echo " --mandir=DIR install man page in DIR [PREFIX/man]"
echo " --enable-mp3lame enable MP3 encoding via libmp3lame [default=no]"
echo " --enable-libogg enable Ogg support via libogg [default=no]"
echo " --enable-vorbis enable Vorbis support via libvorbis [default=no]"
echo " --enable-theora enable Theora support via libtheora [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-libgsm enable GSM support via libgsm [default=no]"
echo " --enable-xvid enable XviD support via xvidcore [default=no]"
echo " --enable-x264 enable H.264 encoding via x264 [default=no]"
echo " --enable-mingw32 enable MinGW native/cross Windows compile"
echo " --enable-mingwce enable MinGW native/cross WinCE compile"
echo " --enable-a52 enable GPLed A52 support [default=no]"
echo " --enable-a52bin open liba52.so.0 at runtime [default=no]"
echo " --enable-dts enable GPLed DTS support [default=no]"
echo " --enable-pp enable GPLed postprocessing support [default=no]"
echo " --enable-static build static libraries [default=yes]"
echo " --disable-static do not build static libraries [default=no]"
echo " --enable-shared build shared libraries [default=no]"
echo " --disable-shared do not build shared libraries [default=yes]"
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]"
echo " --enable-dc1394 enable IIDC-1394 grabbing using libdc1394"
echo " and libraw1394 [default=no]"
echo " --enable-gpl allow use of GPL code, the resulting libav*"
echo " and ffmpeg will be under GPL [default=no]"
echo ""
echo "Advanced options (experts only):"
echo " --source-path=PATH path to source code [$source_path]"
echo " --cross-prefix=PREFIX use PREFIX for compilation 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 " --build-suffix=SUFFIX suffix for application specific build []"
echo " --cpu=CPU force cpu to CPU [$cpu]"
echo " --tune=CPU tune code for a particular CPU"
echo " (may fail or perform badly on other CPUs)"
echo " --powerpc-perf-enable enable performance report on PPC"
echo " (requires enabling PMC)"
echo " --disable-mmx disable MMX usage"
Gildas Bazin
committed
echo " --disable-iwmmxt disable iwmmxt 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-v4l2 disable video4linux2 grabbing [default=no]"
echo " --disable-bktr disable bktr video 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-lzo disable lzo [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 " --disable-protocols disable I/O protocols support [default=no]"
echo " --disable-ffserver disable ffserver build"
echo " --disable-ffplay disable ffplay build"
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 " --disable-encoder=NAME disables encoder NAME"
echo " --enable-encoder=NAME enables encoder NAME"
echo " --disable-decoder=NAME disables decoder NAME"
echo " --enable-decoder=NAME enables decoder NAME"
Michael Niedermayer
committed
echo " --disable-encoders disables all encoders"
Emiliano Parasassi
committed
echo " --disable-decoders disables all decoders"
echo " --disable-muxers disables all muxers"
echo " --disable-demuxers disables all demuxers"
echo ""
echo "NOTE: Object files are built 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"
libdir=""
Fabrice Bellard
committed
cross_prefix=""
Fabrice Bellard
committed
strip="strip"
Michael Niedermayer
committed
tune="generic"
powerpc_perf="no"
Fabrice Bellard
committed
mmx="default"
Gildas Bazin
committed
iwmmxt="default"
Brian Foley
committed
altivec="default"
mmi="default"
i386|i486|i586|i686|i86pc|BePC)
x86_64|amd64)
cpu="x86"
canon_arch="`cc -dumpmachine | sed -e 's,\([^-]*\)-.*,\1,'`"
if [ x"$canon_arch" = x"x86_64" -o x"$canon_arch" = x"amd64" ]; then
if [ -z "`echo $CFLAGS | grep -- -m32`" ]; then
cpu="x86_64"
fi
Aurelien Jacobs
committed
fi
;;
# armv4l is a subset of armv5tel
armv4l|armv5tel)
Nick Kurshev
committed
alpha)
cpu="alpha"
;;
cpu="powerpc"
;;
mips|mipsel)
cpu="mips"
;;
James Morrison
committed
sun4u|sparc64)
cpu="sparc64"
;;
James Morrison
committed
sparc)
cpu="sparc"
;;
parisc|parisc64)
cpu="parisc"
;;
s390|s390x)
cpu="s390"
;;
m68k)
cpu="m68k"
;;
ia64)
cpu="ia64"
;;
Fabrice Bellard
committed
cpu="unknown"
bktr="no"
audio_beos="no"
zlib="yes"
mp3lame="no"
libogg="no"
vorbis="no"
Zdenek Kabelac
committed
faad="no"
faadbin="no"
Michael Niedermayer
committed
faac="no"
xvid="no"
x264="no"
dts="no"
mingw32="no"
Felix Bünemann
committed
cygwin="no"
os2="no"
lstatic="yes"
optimize="yes"
debug="yes"
Michel Bardiaux
committed
dostrip="yes"
installstrip="-s"
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 -Wl,-soname,$@.$(LIBMAJOR)'
netserver="no"
need_inet_aton="no"
protocols="yes"
LIBOBJFLAGS=""
LDFLAGS=-Wl,--warn-common
FFSLDFLAGS=-Wl,-E
Jacob Meuser
committed
LDCONFIG="ldconfig"
LIBPREF="lib"
LIBSUF=".a"
Diego Biurrun
committed
LIB='$(LIBPREF)$(NAME)$(LIBSUF)'
SLIBPREF="lib"
SLIBSUF=".so"
Diego Biurrun
committed
SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF)'
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)$(SLIBSUF).$(LIBVERSION)'
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)$(SLIBSUF).$(LIBMAJOR)'
BUILDSUF=""
amr_wb="no"
Torsten Martinsen
committed
amr_if2="no"
sunmlib="no"
Michael Niedermayer
committed
gpl="no"
Michael Niedermayer
committed
memalignhack="no"
muxers="yes"
demuxers="yes"
# 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
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"
make="gmake"
LDFLAGS=""
FFSLDFLAGS=""
need_inet_aton="yes"
extralibs="$extralibs -lsocket -lnsl"
;;
NetBSD)
v4l="no"
bktr="yes"
audio_oss="yes"
dv1394="no"
make="gmake"
LDFLAGS="$LDFLAGS -export-dynamic"
case `uname -r` in
2.*) extralibs="$extralibs -lossaudio"
;;
esac
;;
OpenBSD)
v4l="no"
bktr="yes"
audio_oss="yes"
dv1394="no"
make="gmake"
LIBOBJFLAGS="\$(PIC)"
LDFLAGS="$LDFLAGS -export-dynamic -pthread"
Jacob Meuser
committed
LDCONFIG="ldconfig -m \$(libdir)"
extralibs="$extralibs -lossaudio"
;;
FreeBSD)
v4l="no"
bktr="yes"
CFLAGS="-pthread"
LDFLAGS="$LDFLAGS -export-dynamic -pthread"
bktr="yes"
extralibs="-lpoll -lgnugetopt -lm"
make="gmake"
Steven M. Schultz
committed
strip="strip -d"
installstrip=""
Darwin)
v4l="no"
audio_oss="no"
SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(libdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION)"
extralibs=""
darwin="yes"
installstrip=""
LDFLAGS="-Wl,-dynamic,-search_paths_first"
SLIBSUF=".dylib"
SLIBNAME_WITH_FULLVERSION='$(SLIBPREF)$(NAME).$(LIBVERSION)$(SLIBSUF)'
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)'
FFSLDFLAGS=-Wl,-bind_at_load
;;
MINGW32*)
# Note: the rest of the mingw32 config is done afterwards as mingw32
# can be forced on the command line for Linux cross compilation.
mingw32="yes"
;;
Felix Bünemann
committed
CYGWIN*)
v4l="no"
Felix Bünemann
committed
audio_oss="yes"
Diego Biurrun
committed
vhook="no"
Felix Bünemann
committed
extralibs=""
cygwin="yes"
EXESUF=".exe"
Felix Bünemann
committed
;;
Linux)
LDFLAGS="$LDFLAGS -rdynamic"
Michel Bardiaux
committed
IRIX*)
ranlib="echo ignoring ranlib"
v4l="no"
Michel Bardiaux
committed
audio_oss="no"
make="gmake"
;;
OS/2)
TMPE=$TMPE".exe"
ar="emxomfar -p128"
Slavik Gnatenko
committed
ranlib="echo ignoring ranlib"
strip="echo ignoring strip"
CFLAGS="-Zomf"
Slavik Gnatenko
committed
LDFLAGS="-Zomf -Zstack 16384 -s"
SHFLAGS="-Zdll -Zomf"
FFSLDFLAGS=""
LIBPREF=""
LIBSUF=".lib"
SLIBPREF=""
SLIBSUF=".dll"
extralibs=""
pkg_requires=""
v4l="no"
audio_oss="no"
ffserver="no"
os2="yes"
;;
Romain Dolbeau
committed
# to the Makefile, so it can distinguish between flavors
Romain Dolbeau
committed
TARGET_OS=`( uname -s ) 2>&1`
case "$TARGET_OS" in
Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU|BeOS|MorphOS)
Romain Dolbeau
committed
;;
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
source_path="`dirname $0`"
Fabrice Bellard
committed
source_path_used="yes"
if test -z "$source_path" -o "$source_path" = "." ; then
source_path=`pwd`
source_path_used="no"
else
source_path="`cd \"$source_path\"; pwd`"
Michel Bardiaux
committed
FFMPEG_CONFIGURATION=" "
for opt do
FFMPEG_CONFIGURATION="$FFMPEG_CONFIGURATION""$opt "
done
CODEC_LIST=`grep 'register_avcodec(&[a-z]' $source_path/libavcodec/allcodecs.c | sed 's/.*&\(.*\)).*/\1/'`
Michael Niedermayer
committed
Gildas Bazin
committed
--prefix=*) prefix=`echo $opt | cut -d '=' -f 2`; force_prefix=yes
Gildas Bazin
committed
--libdir=*) libdir=`echo $opt | cut -d '=' -f 2`; force_libdir=yes
;;
--incdir=*) incdir=`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`
;;
Gildas Bazin
committed
--cc=*) cc=`echo $opt | cut -d '=' -f 2-`
--make=*) make=`echo $opt | cut -d '=' -f 2`
;;
--extra-cflags=*) CFLAGS="$CFLAGS ${opt#--extra-cflags=}"
Fabrice Bellard
committed
;;
--extra-ldflags=*) LDFLAGS="$LDFLAGS ${opt#--extra-ldflags=}"
Fabrice Bellard
committed
;;
--extra-libs=*) extralibs=${opt#--extra-libs=}
;;
--build-suffix=*) BUILDSUF=${opt#--build-suffix=}
;;
Michael Niedermayer
committed
--tune=*) tune=`echo $opt | cut -d '=' -f 2`
;;
--powerpc-perf-enable) powerpc_perf="yes"
;;
Gildas Bazin
committed
--disable-iwmmxt) iwmmxt="no"
;;
Brian Foley
committed
--disable-altivec) altivec="no"
;;
--disable-bktr) bktr="no"
;;
--disable-audio-beos) audio_beos="no"
;;
--disable-dv1394) dv1394="no"
;;
Luca Abeni
committed
--disable-network) network="no"; ffserver="no"
--disable-zlib) zlib="no"
;;
--disable-lzo) lzo="no"
;;
--enable-dts) dts="yes"
extralibs="$extralibs -ldts"
--enable-libgsm) libgsm="yes"
extralibs="$extralibs -lgsm"
--enable-mp3lame) mp3lame="yes"
extralibs="$extralibs -lmp3lame"
--enable-libogg) libogg="yes"
extralibs="$extralibs -logg"
pkg_requires="$pkg_requires ogg >= 1.1"
--enable-vorbis) vorbis="yes"
extralibs="$extralibs -lvorbis -lvorbisenc"
pkg_requires="$pkg_requires vorbis vorbisenc"
extralibs="$extralibs -ltheora"
pkg_requires="$pkg_requires theora"
extralibs="$extralibs -lfaad"
;;
--enable-faadbin) faadbin="yes"
;;
--enable-faac) faac="yes"
extralibs="$extralibs -lfaac"
Michael Niedermayer
committed
;;
--enable-xvid) xvid="yes"
extralibs="$extralibs -lxvidcore"
--enable-x264) x264="yes"
extralibs="$extralibs -lx264"
;;
--enable-dc1394) dc1394="yes"
extralibs="$extralibs -ldc1394_control -lraw1394"
pkg_requires="$pkg_requires libraw1394"
Philip Gladstone
committed
--disable-vhook) vhook="no"
;;
Michael Niedermayer
committed
--disable-simple_idct) simpleidct="no"
--enable-mingw32) mingw32="yes"
;;
--enable-static) lstatic="yes"
;;
--disable-static) lstatic="no"
;;
--disable-shared) lshared="no"
;;
--disable-debug) debug="no"
;;
--disable-opts) optimize="no"
;;
Fabrice Bellard
committed
--disable-mpegaudio-hp) mpegaudio_hp="no"
;;
--disable-protocols) protocols="no"; network="no"; ffserver="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"
Torsten Martinsen
committed
--enable-amr_if2) amr_if2="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"
;;
--enable-encoder=*) CODEC_LIST="$CODEC_LIST ${opt#--enable-encoder=}_encoder"
Michael Niedermayer
committed
;;
--enable-decoder=*) CODEC_LIST="$CODEC_LIST ${opt#--enable-decoder=}_decoder"
;;
--disable-encoder=*) CODEC_LIST="`echo $CODEC_LIST | sed -e \"s#${opt#--disable-encoder=}_encoder##\"`"
;;
--disable-decoder=*) CODEC_LIST="`echo $CODEC_LIST | sed -e \"s#${opt#--disable-decoder=}_decoder##\"`"
Michael Niedermayer
committed
;;
--disable-encoders) CODEC_LIST="`echo $CODEC_LIST | sed 's/[-_a-zA-Z0-9]*encoder//g'`"
;;
Emiliano Parasassi
committed
--disable-decoders) CODEC_LIST="`echo $CODEC_LIST | sed 's/[-_a-zA-Z0-9]*decoder//g'`"
;;
--disable-muxers) muxers="no"; ffserver="no"
;;
--disable-demuxers) demuxers="no"
;;
*)
echo "Unknown option \"$opt\"."
echo "See $0 --help for available options."
exit 1
;;
# we need to build at least one lib type
if test "$lstatic" = "no" && test "$lshared" = "no" ; then
cat <<EOF
At least one library type must be built.
Specify --enable-static to build the static libraries or --enable-shared to
build the shared libraries as well. To only build the shared libraries specify
--disable-static in addition to --enable-shared.
EOF
exit 1;
fi
if test "$libogg" = "no"; then
fail="yes"
theora="no"
fi
fi
if test "$vorbis" = "yes" ; then
if test "$libogg" = "no"; then
fail="yes"
vorbis="no"
fi
fi
Michael Niedermayer
committed
if test "$gpl" != "yes"; then
if test "$pp" != "no"; then
echo "The Postprocessing code is under GPL and --enable-gpl is not specified."
Michael Niedermayer
committed
fail="yes"
fi
if test "$a52" != "no" -o "$a52bin" != "no"; then
echo "liba52 is under GPL and --enable-gpl is not specified."
Michael Niedermayer
committed
fail="yes"
fi
if test "$xvid" != "no"; then
echo "libxvidcore is under GPL and --enable-gpl is not specified."
fail="yes"
fi
if test "$x264" != "no"; then
echo "x264 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
if test "$faad" != "no" -o "$faadbin" != "no"; then
cat > $TMPC << EOF
#include <faad.h>
int main( void ) { return 0; }
EOF
Michael Niedermayer
committed
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."
Michael Niedermayer
committed
fail="yes"
fi
else
faad="no"
faadbin="no"
Michael Niedermayer
committed
fi
fi
Michael Niedermayer
committed
Michael Niedermayer
committed
exit 1
fi
fi
Fabrice Bellard
committed
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
Gildas Bazin
committed
# check iwmmxt support
if test $iwmmxt = "default" -a $cpu = "armv4l"; then
cat > $TMPC << EOF
Gildas Bazin
committed
__asm__ __volatile__ ("wunpckelub wr6, wr4");
}
EOF
iwmmxt=no
if ${cross_prefix}${cc} -o $TMPO $TMPC 2> /dev/null ; then
iwmmxt=yes
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"
;;
*[34].*)
CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer -force_cpusubtype_ALL -Wno-sign-compare"
if test "$lshared" = no; then
needmdynamicnopic="yes"
fi
;;
*)
CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer"
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
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
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
;;
G3|g3|75*|ppc75*|PowerPC75*)
CFLAGS="$CFLAGS -mcpu=750 -mtune=750 -mpowerpc-gfxopt"
if test $altivec = "yes"; then
echo "WARNING: Tuning for PPC75x but AltiVec enabled!";
fi
TUNECPU=ppc750
;;
G4|g4|745*|ppc745*|PowerPC745*)
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*)
CFLAGS="$CFLAGS -mcpu=7400 -mtune=7400 -mpowerpc-gfxopt"
if test $altivec = "no"; then
echo "WARNING: Tuning for PPC74xx but AltiVec disabled!";
fi
TUNECPU=ppc7400
;;
G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
CFLAGS="$CFLAGS -mcpu=970 -mtune=970 -mpowerpc-gfxopt -mpowerpc64"
if test $altivec = "no"; then
echo "WARNING: Tuning for PPC970 but AltiVec disabled!";
fi
TUNECPU=ppc970
Romain Dolbeau
committed
POWERPCMODE="64bits"
;;
i[3456]86|pentium|pentiumpro|pentium-mmx|pentium[234]|prescott|k6|k6-[23]|athlon|athlon-tbird|athlon-4|athlon-[mx]p|winchip-c6|winchip2|c3|nocona|athlon64|k8|opteron|athlon-fx)
CFLAGS="$CFLAGS -march=$tune"
;;
*)
echo "WARNING: Unknown CPU \"$tune\", ignored."
;;
Michael Niedermayer
committed
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
else
CFLAGS="$CFLAGS -maltivec -mabi=altivec"
fi
fi
fi
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
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
if test $mmi = "default"; then
if test $cpu = "mips"; then
mmi="yes"
else
mmi="no"
fi
fi
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" -o "$mingwce" = "yes"; then
if test "$lshared" = "yes" && test "$lstatic" = "yes" ; then
cat <<EOF
You can only build one library type at once on MinGW.
Specify --disable-static --enable-shared to only build
the shared libraries. To build only the static libraries
you do not need to pass additional options.
EOF
exit 1
fi
v4l="no"
bktr="no"
audio_oss="no"
network="no"
if test "$mingwce" = "yes"; then
Gildas Bazin
committed
if test "$force_prefix" != yes; then prefix="/c/Program Files/FFmpeg"; fi
if test "$force_libdir" != yes; then bindir="$prefix"; fi
Fabrice Bellard
committed
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
Fabrice Bellard
committed
strip="${cross_prefix}${strip}"
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
volatile uint32_t i=0x01234567;
return (*((uint8_t*)(&i))) == 0x67;
if $cc -o $TMPE $TMPC 2>/dev/null ; then
$TMPE && bigendian="yes"
else
echo big/little test failed
fi
# programs cannot be launched if cross compiling, 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"