Newer
Older
Fabrice Bellard
committed
#
# ffmpeg configure script (c) 2000, 2001, 2002 Fabrice Bellard
Fabrice Bellard
committed
#
# make sure we are running under a compatible shell
(: ${foo%%bar}) 2>/dev/null
if test "$?" != 0; then
if test "x$FFMPEG_CONFIGURE_EXEC" = x; then
FFMPEG_CONFIGURE_EXEC=1
export FFMPEG_CONFIGURE_EXEC
exec bash "$0" "$@"
exec ksh "$0" "$@"
exec /usr/xpg4/bin/sh "$0" "$@"
fi
echo "No compatible shell script interpreter found."
exit 1
fi
show_help(){
echo "Usage: configure [options]"
echo "Options: [defaults in brackets after descriptions]"
echo
echo "Standard options:"
echo " --help print this message"
echo " --log[=FILE|yes|no] log tests and output to FILE [config.err]"
27
28
29
30
31
32
33
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
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"
echo " --enable-amr_wb enable amr_wb float audio codec"
echo " --enable-amr_if2 enable amr_wb IF2 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 " --cross-compile assume a cross-compiler is used"
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
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"
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-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 " MPEG audio decoding [default=no]"
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"
echo " --enable-memalign-hack emulate memalign, interferes with memory debuggers"
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"
echo " --disable-encoders disables all encoders"
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
}
log(){
echo "$@" >>$logfile
}
log_file(){
log BEGIN $1
cat -n $1 >>$logfile
log END $1
}
echolog(){
echo "$@"
}
die(){
echolog "$@"
cat <<EOF
If you think configure made a mistake, make sure you are using the latest
version from SVN. If the latest version fails, report the problem to the
ffmpeg-devel@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net.
EOF
if enabled logging; then
cat <<EOF
Include the log file "$logfile" produced by configure as this will help
solving the problem.
EOF
else
cat <<EOF
Rerun configure with logging enabled (do not use --log=no), and include the
log this produces with your report.
EOF
fi
rm -f $TMPC $TMPO $TMPE $TMPS $TMPH
exit 1
}
enabled(){
eval test "\$$1" = "yes"
}
flags_saved(){
(: ${SAVE_CFLAGS?}) 2>/dev/null
}
flags_saved && return
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
SAVE_CFLAGS="$CFLAGS"
SAVE_LDFLAGS="$LDFLAGS"
SAVE_extralibs="$extralibs"
}
restore_flags(){
CFLAGS="$SAVE_CFLAGS"
LDFLAGS="$SAVE_LDFLAGS"
extralibs="$SAVE_extralibs"
unset SAVE_CFLAGS
unset SAVE_LDFLAGS
unset SAVE_extralibs
}
temp_cflags(){
save_flags
CFLAGS="$CFLAGS $*"
}
temp_ldflags(){
save_flags
LDFLAGS="$LDFLAGS $*"
}
temp_extralibs(){
save_flags
extralibs="$extralibs $*"
}
add_ldflags(){
append LDFLAGS "$@"
}
add_extralibs(){
append extralibs "$@"
}
log check_cc "$@"
cat >$TMPC
log_file $TMPC
log $cc $CFLAGS "$@" -c -o $TMPO $TMPC
$cc $CFLAGS "$@" -c -o $TMPO $TMPC >>$logfile 2>&1
}
check_cpp(){
log check_cpp "$@"
log_file $TMPC
log $cc $CFLAGS "$@" -E -o $TMPO $TMPC
$cc $CFLAGS "$@" -E -o $TMPO $TMPC >>$logfile 2>&1
log check_ld "$@"
log_file $TMPC
log $cc $CFLAGS $LDFLAGS "$@" -o $TMPE $TMPC $extralibs
$cc $CFLAGS $LDFLAGS "$@" -o $TMPE $TMPC $extralibs >>$logfile 2>&1
log check_cflags "$@"
check_cc "$@" <<EOF && add_cflags "$@"
int x;
EOF
}
check_ldflags(){
log check_ldflags "$@"
check_ld "$@" <<EOF && add_ldflags "$@"
int main(){
return 0;
}
EOF
}
check_header(){
log check_header "$@"
check_cpp "$@" <<EOF
#include <$header>
int x;
EOF
}
check_func(){
log check_func "$@"
func=$1
shift
check_ld "$@" <<EOF
extern int $func();
int main(){
$func();
}
EOF
}
check_lib(){
log check_lib "$@"
header="$1"
func="$2"
shift 2
temp_extralibs "$@"
check_header $header && check_func $func && add_extralibs "$@"
err=$?
restore_flags
return $err
}
check_ld "$@" && { test "$cross_compile" = yes || $TMPE 2>&1 >>$logfile; }
}
require(){
name="$1"
header="$2"
func="$3"
shift 3
check_lib $header $func "$@" || die "ERROR: $name not found"
if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
show_help
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"
logging="yes"
logfile="config.err"
libdir=""
Fabrice Bellard
committed
cross_prefix=""
cross_compile="no"
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"
;;
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,$@'
netserver="no"
need_inet_aton="no"
protocols="yes"
LIBOBJFLAGS=""
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='$(SLIBNAME).$(LIBVERSION)'
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(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="$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"
SHFLAGS="-shared -Wl,-h,\$@"
need_inet_aton="yes"
extralibs="$extralibs -lsocket -lnsl"
;;
NetBSD)
v4l="no"
bktr="yes"
audio_oss="yes"
dv1394="no"
make="gmake"
extralibs="$extralibs -lossaudio"
OpenBSD)
v4l="no"
bktr="yes"
audio_oss="yes"
dv1394="no"
make="gmake"
LIBOBJFLAGS="\$(PIC)"
Jacob Meuser
committed
LDCONFIG="ldconfig -m \$(libdir)"
extralibs="$extralibs -lossaudio"
;;
FreeBSD)
v4l="no"
bktr="yes"
CFLAGS="$CFLAGS -pthread"
GNU/kFreeBSD)
v4l="no"
v4l2="no"
bktr="yes"
audio_oss="yes"
dv1394="no"
CFLAGS="$CFLAGS -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=""
FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
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)
;;
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="$CFLAGS -Zomf"
FFLDFLAGS="-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
--log)
;;
--log=*) logging="${opt#*=}"
;;
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`
;;
--cross-compile) cross_compile=yes
;;
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=*) FFLDFLAGS="$FFLDFLAGS ${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"
;;
--enable-dts) dts="yes"
--enable-libgsm) libgsm="yes"
;;
--enable-mp3lame) mp3lame="yes"
--enable-libogg) libogg="yes"
pkg_requires="$pkg_requires ogg >= 1.1"
--enable-vorbis) vorbis="yes"
pkg_requires="$pkg_requires vorbis vorbisenc"
pkg_requires="$pkg_requires theora"
--enable-faad) faad="yes"
;;
--enable-faadbin) faadbin="yes"
;;
--enable-faac) faac="yes"
Michael Niedermayer
committed
;;
--enable-xvid) xvid="yes"
;;
--enable-x264) x264="yes"
;;
--enable-dc1394) dc1394="yes"
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="yes"; amr_nb="yes"; amr_nb_fixed="no"
--enable-amr_nb-fixed) amr="yes"; amr_nb_fixed="yes"; amr_nb="no"
Torsten Martinsen
committed
;;
--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"
;;
--help) show_help
;;
*)
echo "Unknown option \"$opt\"."
echo "See $0 --help for available options."
exit 1
;;
if test "$logging" != no; then
test "$logging" = yes || logfile="$logging"
echo "# $0 $@" >$logfile
set >>$logfile
else
logfile=/dev/null
fi
# Combine FFLDFLAGS and the LDFLAGS environment variable
LDFLAGS="$FFLDFLAGS $LDFLAGS"
test -n "$cross_prefix" && cross_compile=yes
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
ranlib="${cross_prefix}${ranlib}"
strip="${cross_prefix}${strip}"
# 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
if check_header faad.h; then
check_cc << EOF
Michael Niedermayer
committed
#include <faad.h>
#ifndef FAAD2_VERSION
ok faad1
#endif
int main( void ) { return 0; }
EOF
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
iwmmxt=no
check_cc <<EOF && iwmmxt=yes
Gildas Bazin
committed
__asm__ __volatile__ ("wunpckelub wr6, wr4");
}
EOF
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
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
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
# compiler sanity check
check_exec <<EOF
int main(){
return 0;
}
EOF
if test "$?" != 0; then
echo "$cc is unable to create an executable file."
if test -z "$cross_prefix" -a "$cross_compile" = no; then
echo "If $cc is a cross-compiler, use the --cross-compile option."
fi
die "C compiler test failed."
fi
# check for SIMD availability
# 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
check_header altivec.h && _altivec_h=yes || _altivec_h=no
Brian Foley
committed
if test $altivec = "yes"; then
if test $_altivec_h = "yes"; then
inc_altivec_h="#include <altivec.h>"
else
inc_altivec_h=
fi
check_cc <<EOF || altivec=no
int main(void) {
vector signed int v1, v2, v3;
v1 = vec_add(v2,v3);
return 0;
}
EOF
fi
Brian Foley
committed
if test $mmi = "default"; then
if test $cpu = "mips"; then
mmi="yes"
else
mmi="no"
fi
fi
enabled mmi && check_cc <<EOF || mmi="no"
int main(void) {
__asm__ ("lq \$2, 0(\$2)");
return 0;
}
EOF
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
# test gcc version to see if vector builtins can be used
# currently only used on i386 for MMX builtins
check_cc -msse <<EOF && builtin_vector=yes || builtin_vector=no
#include <xmmintrin.h>
int main(void) {
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
return 0;
#else
#error no vector builtins
#endif
}
EOF
# test for mm3dnow.h
test "$cpu" = "x86_64" && march=k8 || march=athlon
check_cc -march=$march <<EOF && mm3dnow=yes || mm3dnow=no
#include <mm3dnow.h>
int main(void) {
__m64 b1;
b1 = _m_pswapd(b1);
_m_femms();
return 0;
}
EOF
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
protocols="no"
fi
SLIBPREF=""
SLIBSUF=".dll"
EXESUF=".exe"
if test "$force_prefix" != yes; then prefix="$PROGRAMFILES/FFmpeg"; fi
Gildas Bazin
committed
if test "$force_libdir" != yes; then bindir="$prefix"; fi
fi
# ---
# big/little-endian test
if test "$cross_compile" = "no"; then
check_ld <<EOF || die "endian test failed" && $TMPE && bigendian="yes"
#include <inttypes.h>
int main(int argc, char ** argv){
volatile uint32_t i=0x01234567;
return (*((uint8_t*)(&i))) == 0x67;
# programs cannot be launched if cross compiling, so make a static guess
if test "$cpu" = "powerpc" -o "$cpu" = "mips" ; then
bigendian="yes"
fi
Chris Flerackers
committed
# ---
# *inttypes.h* test
check_header inttypes.h || inttypes=no
Chris Flerackers
committed
# ---
# *int_fast* test
check_cc <<EOF || emu_fast_int=yes
#include <inttypes.h>
int main(int argc, char ** argv){
volatile uint_fast64_t i=0x01234567;
return 0;
}
EOF
# ---
# check availability of some header files
_memalign=no
_malloc_h=no
if check_header malloc.h; then
_malloc_h=yes
_memalign=yes
check_func memalign || _memalign="no"
if test "$_memalign" = "no" -a "$mmx" = "yes" -a "$memalignhack" != "yes"; then
die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
check_func localtime_r && localtime_r=yes || localtime_r=no
enabled zlib && check_lib zlib.h zlibVersion -lz || zlib="no"
# check for some common methods of building with pthread support
# do this before the optional library checks as some of them require pthreads
if enabled pthreads; then
{ check_cflags -pthread && check_ldflags -pthread; } ||
{ check_cflags -pthreads && check_ldflags -pthreads; } ||
check_lib pthread.h pthread_create -lpthread ||
check_func pthread_create ||
die "ERROR: can't find pthreads library"
fi
# these are off by default, so fail if requested and not available
enabled dts && require libdts dts.h dts_init -ldts
enabled libgsm && require libgsm gsm.h gsm_create -lgsm
enabled mp3lame && require LAME lame/lame.h lame_init -lmp3lame
enabled vorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc
enabled libogg && require libogg ogg/ogg.h ogg_sync_init -logg
enabled theora && require libtheora theora/theora.h theora_info_init -ltheora
enabled xvid && require XviD xvid.h xvid_global -lxvidcore
enabled x264 && require x264 x264.h x264_encoder_open -lx264
enabled dc1394 && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394
enabled sunmlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
# Ugh, faac uses stdcall calling convention on win32 so we can't use
# the generic test functions
if enabled faac; then
save_flags
temp_extralibs -lfaac
check_ld <<EOF && add_extralibs -lfaac || die "ERROR: libfaac not found"
#include <stdint.h>
#include <faac.h>
int main(){
char *id, *cpr;
faacEncGetVersion(&id, &cpr);
return 0;
}
EOF
restore_flags
fi
# Ugh, recent faad2 versions have renamed all functions and #define the
# old names in faad.h. Generic tests won't work.
if enabled faad; then
save_flags
temp_extralibs -lfaad
check_ld <<EOF && add_extralibs -lfaad || die "ERROR: libfaad not found"
#include <faad.h>
int main(){
faacDecOpen();
return 0;
}
EOF
restore_flags
fi
Michael Niedermayer
committed
# test for lrintf in math.h
check_exec <<EOF && have_lrintf=yes || have_lrintf=no
Michael Niedermayer
committed
#define _ISOC9X_SOURCE 1
#include <math.h>
int main( void ) { return (lrintf(3.999f) > 0)?0:1; }
EOF
_restrict=
for restrict_keyword in restrict __restrict__ __restrict; do
check_cc <<EOF && _restrict=$restrict_keyword && break
void foo(char * $restrict_keyword p);
EOF
# dlopen/dlfcn.h probing
check_header dlfcn.h && dlfcn=yes
temp_extralibs -ldl
if check_func dlopen; then
dlopen=yes
ldl=-ldl
if check_func dlopen; then
dlopen=yes
ldl=
if test "$vhook" = "yes" -o "$a52bin" = "yes" -o "$faadbin" = "yes"; then
add_extralibs $ldl
if enabled vhook; then
check_ldflags -rdynamic
check_ldflags -export-dynamic
fi
##########################################
temp_extralibs -lImlib2
check_ld <<EOF && imlib2=yes || imlib2=no
#include <X11/Xlib.h>
#include <Imlib2.h>
int main( void ) { return (int) imlib_load_font("foo"); }
EOF
##########################################
Michael Niedermayer
committed
if test "x$targetos" != "xBeOS"; then
if (freetype-config --version) >/dev/null 2>&1 ; then
temp_cflags `freetype-config --cflags`
temp_extralibs `freetype-config --libs`
check_ld <<EOF && freetype2=yes
#include <ft2build.h>
int main( void ) { return (int) FT_Init_FreeType(0); }
EOF
restore_flags
fi
##########################################
SDL_CONFIG="${cross_prefix}sdl-config"
if ("${SDL_CONFIG}" --version) >/dev/null 2>&1 ; then
temp_cflags `"${SDL_CONFIG}" --cflags`
temp_extralibs `"${SDL_CONFIG}" --libs`
check_ld <<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
if test $? = 0; then
_sdlversion=`"${SDL_CONFIG}" --version | sed 's/[^0-9]//g'`
if test "$_sdlversion" -lt 121 ; then
sdl_too_old=yes
else
sdl=yes
check_cc <<EOF && sdl_video_size=yes || sdl_video_size=no
#include <SDL.h>
int main(void){
const SDL_VideoInfo *vi = SDL_GetVideoInfo();
int w = vi->current_w;
return 0;
}
EOF
restore_flags
enabled sdl || ffplay=no
Nicolas Boos
committed
##########################################
Nicolas Boos
committed
texi2html=no
if (texi2html -version) >/dev/null 2>&1; then
Nicolas Boos
committed
texi2html=yes
fi
##########################################
enabled network && check_ld <<EOF && ipv6=yes || ipv6=no
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
int main( void ) {
struct sockaddr_storage saddr;
struct ipv6_mreq mreq6;
getaddrinfo(0,0,0,0);
getnameinfo(0,0,0,0,0,0,0);
Dan Villiom Podlaski Christiansen
committed
IN6_IS_ADDR_MULTICAST((const struct in6_addr *)0);
}
EOF
# check for video4linux2 --- V4L2_PIX_FMT_YUV420
enabled v4l2 && check_cc <<EOF || v4l2="no"
Alex Beregszaszi
committed
#include <sys/time.h>
#include <asm/types.h>
#include <linux/videodev2.h>
enabled debug && add_cflags -g
# add some useful compiler flags if supported
check_cflags -Wdeclaration-after-statement
check_cflags -Wall
check_cflags -Wno-switch
# add some linker flags
check_ldflags '-Wl,--as-needed' '-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec' '-Wl,-rpath-link,\$(BUILD_ROOT)/libavformat' '-Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
# not all compilers support -Os
test "$optimize" = "small" && check_cflags -Os
if enabled optimize; then
if test -n "`$cc -v 2>&1 | grep xlc`"; then
CFLAGS="$CFLAGS -O5"
LDFLAGS="$LDFLAGS -O5"
else
fi
fi
# PIC flags for shared library objects where they are needed
if test "$lshared" = "yes" ; then
# LIBOBJFLAGS may have already been set in the OS configuration
if test -z "$LIBOBJFLAGS" ; then
case "$cpu" in
x86_64|ia64|alpha|sparc*) LIBOBJFLAGS="\$(PIC)" ;;
esac
fi
fi
if test x"$libdir" = x""; then
fi
echo "install prefix $prefix"
echo "source path $source_path"
Michael Niedermayer
committed
echo "CPU $cpu ($tune)"
if test "$BUILDSUF" != ""; then
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 "MMX enabled $mmx"
echo "Vector Builtins $builtin_vector"
echo "3DNow! Builtins $mm3dnow"
Gildas Bazin
committed
if test $cpu = "armv4l"; then
Gildas Bazin
committed
fi
echo "zlib enabled $zlib"
echo "libgsm enabled $libgsm"
echo "mp3lame enabled $mp3lame"
echo "libogg enabled $libogg"
echo "Vorbis enabled $vorbis"
echo "Theora enabled $theora"
echo "FAAD enabled $faad"
echo "FAAC enabled $faac"
echo "XviD enabled $xvid"
echo "x264 enabled $x264"
echo "debug symbols $debug"
Michel Bardiaux
committed
echo "strip symbols $dostrip"
echo "optimize $optimize"
echo "static $lstatic"
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."
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
Torsten Martinsen
committed
echo "AMR-WB IF2 support" $amr_if2
echo "network support $network"
if test "$network" = "yes" ; then
fi
Michael Niedermayer
committed
if test "$gpl" = "no" ; then
Michael Niedermayer
committed
else
Michael Niedermayer
committed
fi
Michel Bardiaux
committed
date >> config.log
echo " $0 $FFMPEG_CONFIGURATION" >> config.log
echo "# Automatically generated by configure - do not modify!" > config.mak
echo "/* Automatically generated by configure - do not modify! */" > $TMPH
Michel Bardiaux
committed
echo "#define FFMPEG_CONFIGURATION "'"'"$FFMPEG_CONFIGURATION"'"' >> $TMPH
echo "prefix=\$(DESTDIR)$prefix" >> config.mak
echo "libdir=\$(DESTDIR)$libdir" >> config.mak
echo "incdir=\$(DESTDIR)$incdir" >> config.mak
echo "bindir=\$(DESTDIR)$bindir" >> config.mak
echo "mandir=\$(DESTDIR)$mandir" >> config.mak
echo "CC=$cc" >> config.mak
echo "AR=$ar" >> config.mak
Michel Bardiaux
committed
if test "$dostrip" = "yes" ; then
echo "STRIP=$strip" >> config.mak
echo "INSTALLSTRIP=$installstrip" >> config.mak
Michel Bardiaux
committed
else
echo "STRIP=echo ignoring strip" >> config.mak
echo "INSTALLSTRIP=" >> config.mak
Michel Bardiaux
committed
fi
Michael Niedermayer
committed
# SHCFLAGS is a copy of CFLAGS without -mdynamic-no-pic, used when building
Michael Niedermayer
committed
# shared modules on OS/X (vhook/Makefile).
SHCFLAGS="$CFLAGS"
test "$needmdynamicnopic" = yes && add_cflags -mdynamic-no-pic
Michael Niedermayer
committed
Michael Niedermayer
committed
echo "SHCFLAGS=$SHCFLAGS">>config.mak
Fabrice Bellard
committed
echo "LDFLAGS=$LDFLAGS" >> config.mak
Jacob Meuser
committed
echo "LDCONFIG=$LDCONFIG" >> config.mak
echo "FFSLDFLAGS=$FFSLDFLAGS" >> config.mak
echo "SHFLAGS=$SHFLAGS" >> config.mak
echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak
echo "BUILD_STATIC=$lstatic" >> config.mak
echo "BUILDSUF=$BUILDSUF" >> config.mak
echo "LIBPREF=$LIBPREF" >> config.mak
echo "LIBSUF=\${BUILDSUF}$LIBSUF" >> config.mak
if test "$lstatic" = "yes" ; then
echo "LIB=$LIB" >> config.mak
else # Some Make complain if this variable does not exist.
echo "LIB=" >> config.mak
fi
echo "SLIBPREF=$SLIBPREF" >> config.mak
echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
Romain Dolbeau
committed
echo "TARGET_OS=$TARGET_OS" >> config.mak
echo "TARGET_ARCH_X86=yes" >> config.mak
Aurelien Jacobs
committed
elif test "$cpu" = "x86_64" ; then
echo "TARGET_ARCH_X86_64=yes" >> config.mak
echo "#define ARCH_X86_64 1" >> $TMPH
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
elif test "$cpu" = "parisc" ; then
echo "TARGET_ARCH_PARISC=yes" >> config.mak
echo "#define ARCH_PARISC 1" >> $TMPH
elif test "$cpu" = "s390" ; then
echo "TARGET_ARCH_S390=yes" >> config.mak
echo "#define ARCH_S390 1" >> $TMPH
elif test "$cpu" = "m68k" ; then
echo "TARGET_ARCH_M68K=yes" >> config.mak
echo "#define ARCH_M68K 1" >> $TMPH
elif test "$cpu" = "ia64" ; then
echo "TARGET_ARCH_IA64=yes" >> config.mak
echo "#define ARCH_IA64 1" >> $TMPH
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 "$mm3dnow" = "yes" ; then
echo "TARGET_BUILTIN_3DNOW=yes" >> config.mak
echo "#define HAVE_MM3DNOW 1" >> $TMPH
fi
Gildas Bazin
committed
if test "$iwmmxt" = "yes" ; then
echo "TARGET_IWMMXT=yes" >> config.mak
echo "#define HAVE_IWMMXT 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
fi
if test "$pthreads" = "yes" ; then
echo "HAVE_PTHREADS=yes" >> config.mak
echo "#define HAVE_PTHREADS 1" >> $TMPH
François Revol
committed
echo "#define HAVE_THREADS 1" >> $TMPH
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
if test "$sdl_video_size" = "yes"; then
echo "#define HAVE_SDL_VIDEO_SIZE 1" >> $TMPH
fi
Nicolas Boos
committed
if test "$texi2html" = "yes"; then
echo "BUILD_DOC=yes" >> 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
fi
pp_version=`grep '#define LIBPOSTPROC_VERSION ' "$source_path/libpostproc/postprocess.h" | sed 's/[^0-9\.]//g'`
lavc_version=`grep '#define LIBAVCODEC_VERSION ' "$source_path/libavcodec/avcodec.h" | sed 's/[^0-9\.]//g'`
lavf_version=`grep '#define LIBAVFORMAT_VERSION ' "$source_path/libavformat/avformat.h" | sed 's/[^0-9\.]//g'`
lavu_version=`grep '#define LIBAVUTIL_VERSION ' "$source_path/libavutil/avutil.h" | sed 's/[^0-9\.]//g'`
echo "#define BUILD_SHARED_AV 1" >> $TMPH
echo "PIC=-fPIC -DPIC" >> config.mak
echo "SPPMAJOR=${lavc_version%%.*}" >> config.mak
echo "SPPVERSION=$lavc_version" >> config.mak
echo "LAVCMAJOR=${lavc_version%%.*}" >> config.mak
echo "LAVCVERSION=$lavc_version" >> config.mak
echo "LAVFMAJOR=${lavf_version%%.*}" >> config.mak
echo "LAVFVERSION=$lavf_version" >> config.mak
echo "LAVUMAJOR=${lavu_version%%.*}" >> config.mak
echo "LAVUVERSION=$lavu_version" >> config.mak
Diego Biurrun
committed
echo "SLIBNAME=${SLIBNAME}" >> config.mak
echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak
echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
echo "EXTRALIBS=$extralibs" >> config.mak
echo "#define CONFIG_ENCODERS 1" >> $TMPH
Fabrice Bellard
committed
echo "CONFIG_ENCODERS=yes" >> config.mak
echo "#define CONFIG_DECODERS 1" >> $TMPH
Fabrice Bellard
committed
echo "CONFIG_DECODERS=yes" >> config.mak
# muxers
if test "$muxers" = "yes" ; then
echo "#define CONFIG_MUXERS 1" >> $TMPH
echo "CONFIG_MUXERS=yes" >> config.mak
fi
# demuxers
if test "$demuxers" = "yes" ; then
echo "#define CONFIG_DEMUXERS 1" >> $TMPH
echo "CONFIG_DEMUXERS=yes" >> config.mak
fi
# 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
# DTS
if test "$dts" = "yes" ; then
echo "#define CONFIG_DTS 1" >> $TMPH
echo "CONFIG_DTS=yes" >> config.mak
fi
# PP
if test "$pp" = "yes" ; then
echo "#define CONFIG_PP 1" >> $TMPH
echo "CONFIG_PP=yes" >> config.mak
fi
Fabrice Bellard
committed
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 "$v4l2" = "yes" ; then
echo "#define CONFIG_VIDEO4LINUX2 1" >> $TMPH
echo "CONFIG_VIDEO4LINUX2=yes" >> config.mak
fi
if test "$bktr" = "yes" ; then
echo "#define CONFIG_BKTR 1" >> $TMPH
echo "CONFIG_BKTR=yes" >> config.mak
fi
if test "$dv1394" = "yes" ; then
echo "#define CONFIG_DV1394 1" >> $TMPH
echo "CONFIG_DV1394=yes" >> config.mak
fi
if test "$dc1394" = "yes" ; then
echo "#define CONFIG_DC1394 1" >> $TMPH
echo "CONFIG_DC1394=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 "$ipv6" = "yes" ; then
echo "#define CONFIG_IPV6 1" >> $TMPH
fi
if test "$zlib" = "yes" ; then
echo "#define CONFIG_ZLIB 1" >> $TMPH
echo "CONFIG_ZLIB=yes" >> config.mak
fi
if test "$libgsm" = "yes" ; then
echo "#define CONFIG_LIBGSM 1" >> $TMPH
echo "CONFIG_LIBGSM=yes" >> config.mak
fi
echo "#define CONFIG_MP3LAME 1" >> $TMPH
echo "CONFIG_MP3LAME=yes" >> config.mak
fi
if test "$libogg" = "yes" ; then
echo "#define CONFIG_LIBOGG 1" >> $TMPH
echo "CONFIG_LIBOGG=yes" >> config.mak
fi
if test "$vorbis" = "yes" ; then
echo "#define CONFIG_LIBVORBIS 1" >> $TMPH
echo "CONFIG_LIBVORBIS=yes" >> config.mak
fi
if test "$theora" = "yes" ; then
echo "#define CONFIG_LIBTHEORA 1" >> $TMPH
echo "CONFIG_LIBTHEORA=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 "$xvid" = "yes" ; then
echo "#define CONFIG_XVID 1" >> $TMPH
echo "CONFIG_XVID=yes" >> config.mak
fi
if test "$x264" = "yes" ; then
echo "#define CONFIG_X264 1" >> $TMPH
echo "CONFIG_X264=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
François Revol
committed
echo "#define HAVE_THREADS 1" >> $TMPH
echo "#ifndef __MINGW32__" >> $TMPH
echo "#define __MINGW32__ 1" >> $TMPH
echo "#endif" >> $TMPH
Felix Bünemann
committed
fi
if test "$mingwce" = "yes" ; then
echo "#define CONFIG_WIN32 1" >> $TMPH
echo "CONFIG_WIN32=yes" >> config.mak
echo "#define CONFIG_WINCE 1" >> $TMPH
echo "CONFIG_WINCE=yes" >> config.mak
echo "#ifndef __MINGW32__" >> $TMPH
echo "#define __MINGW32__ 1" >> $TMPH
echo "#endif" >> $TMPH
fi
if test "$os2" = "yes" ; then
echo "#define CONFIG_OS2 1" >> $TMPH
echo "CONFIG_OS2=yes" >> config.mak
Michael Niedermayer
committed
echo "HAVE_OS2THREADS=yes" >> config.mak
echo "#define HAVE_OS2THREADS 1" >> $TMPH
echo "#define HAVE_THREADS 1" >> $TMPH
fi
if test "$TARGET_OS" = "SunOS" ; then
echo "#define CONFIG_SUNOS 1" >> $TMPH
fi
François Revol
committed
if test "$TARGET_OS" = "BeOS" ; then
echo "HAVE_BEOSTHREADS=yes" >> config.mak
echo "#define HAVE_BEOSTHREADS 1" >> $TMPH
echo "#define HAVE_THREADS 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
Michael Niedermayer
committed
if test "$memalignhack" = "yes" ; then
echo "#define MEMALIGN_HACK 1" >> $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 "$protocols" = "yes" ; then
echo "#define CONFIG_PROTOCOLS 1" >> $TMPH
echo "CONFIG_PROTOCOLS=yes" >> config.mak
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
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="\
doc \
libavformat \
libavcodec \
libavcodec/alpha \
libavcodec/armv4l \
libavcodec/i386 \
libavcodec/sparc \
libavcodec/mlib \
libavcodec/ppc \
libavcodec/liba52 \
libavutil \
tests \
vhook \
"
FILES="\
Makefile \
libavformat/Makefile \
libavcodec/Makefile \
libavutil/Makefile \
tests/Makefile \
vhook/Makefile \
doc/Makefile \
doc/texi2pod.pl \
"
Fabrice Bellard
committed
for dir in $DIRS ; do
mkdir -p $dir
done
for f in $FILES ; do
Fabrice Bellard
committed
done
fi
echo "SRC_PATH=$source_path" >> config.mak
echo "BUILD_ROOT=$PWD" >> config.mak
Fabrice Bellard
committed
if test "$amr" = "yes" ; then
echo "#define AMR 1" >> $TMPH
echo "AMR=yes" >> config.mak
fi
Loading
Loading full blame...