echo " --shlibdir=DIR install shared 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-mingw32 enable MinGW native/cross Windows compile"
echo " --enable-mingwce enable MinGW native/cross WinCE compile"
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-gpl allow use of GPL code, the resulting libav*"
+ echo " and ffmpeg will be under GPL [default=no]"
echo " --enable-pp enable GPLed postprocessing support [default=no]"
echo " --enable-swscaler software scaler support [default=no]"
- echo " --enable-sunmlib use Sun medialib [default=no]"
echo " --enable-beosthreads use BeOS threads [default=no]"
echo " --enable-os2threads use OS/2 threads [default=no]"
echo " --enable-pthreads use pthreads [default=no]"
echo " --enable-w32threads use Win32 threads [default=no]"
echo " --enable-x11grab enable X11 grabbing [default=no]"
+ echo
+ echo "External library support:"
+ echo " --enable-sunmlib use Sun medialib [default=no]"
echo " --enable-dc1394 enable IIDC-1394 grabbing using libdc1394"
echo " and libraw1394 [default=no]"
echo " --enable-liba52 enable GPLed liba52 support [default=no]"
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-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"
+ echo " --target-os=OS compiler targets OS [$targetos]"
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 " --disable-ipv6 disable ipv6 support [default=no]"
echo " --disable-zlib disable zlib [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 " --enable-extra-warnings enable more compiler warnings"
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-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-parser=NAME enables parser NAME"
echo " --disable-parser=NAME disables parser NAME"
echo " --disable-parsers disables all parsers"
+ echo
+ echo "Developer options (useful when working on FFmpeg itself):"
+ echo " --enable-gprof enable profiling with gprof [$gprof]"
+ echo " --disable-opts disable compiler optimizations"
+ echo " --enable-extra-warnings enable more compiler warnings"
+ echo " --disable-strip disable stripping of executables and shared libraries"
echo ""
echo "NOTE: Object files are built at the place where configure is launched."
exit 1
echo "$@" | tr '[a-z]' '[A-Z]'
}
+tolower(){
+ echo "$@" | tr '[A-Z]' '[a-z]'
+}
+
set_all(){
value=$1
shift
log check_header "$@"
header=$1
shift
- check_cpp "$@" <<EOF
+ var=`echo $header | sed 's/[^A-Za-z0-9_]/_/g'`
+ disable $var
+ check_cpp "$@" <<EOF && enable $var
#include <$header>
int x;
EOF
- err=$?
- var=`echo $header | sed 's/[^A-Za-z0-9_]/_/g'`
- test "$err" = 0 && enable $var || disable $var
- return $err
}
check_func(){
log check_func "$@"
func=$1
shift
- check_ld "$@" <<EOF
+ disable $func
+ check_ld "$@" <<EOF && enable $func
extern int $func();
int main(){
$func();
}
EOF
- err=$?
- test "$err" = 0 && enable $func || disable $func
- return $err
+}
+
+check_func2(){
+ log check_func2 "$@"
+ headers=$1
+ func=$2
+ shift 2
+ disable $func
+ incs=""
+ for hdr in $headers; do
+ incs="$incs
+#include <$hdr>"
+ done
+ check_ld "$@" <<EOF && enable $func
+$incs
+int main(){
+ (void) $func;
+ return 0;
+}
+EOF
}
check_lib(){
return $err
}
+check_lib2(){
+ log check_lib2 "$@"
+ headers="$1"
+ func="$2"
+ shift 2
+ temp_extralibs "$@"
+ check_func2 "$headers" $func && add_extralibs "$@"
+ err=$?
+ restore_flags
+ return $err
+}
+
check_exec(){
check_ld "$@" && { enabled cross_compile || $TMPE >>$logfile 2>&1; }
}
check_lib $header $func "$@" || die "ERROR: $name not found"
}
+require2(){
+ name="$1"
+ headers="$2"
+ func="$3"
+ shift 3
+ check_lib2 "$headers" $func "$@" || die "ERROR: $name not found"
+}
+
+check_foo_config(){
+ cfg=$1
+ pkg=$2
+ header=$3
+ func=$4
+ shift 4
+ disable $cfg
+ check_cmd ${pkg}-config --version
+ err=$?
+ if test "$err" = 0; then
+ temp_cflags `${pkg}-config --cflags`
+ temp_extralibs `${pkg}-config --libs`
+ check_lib "$@" $header $func && enable $cfg
+ fi
+ return $err
+}
+
apply(){
file=$1
shift
protocols
swscaler
vhook
- video4linux
- video4linux2
+ v4l
+ v4l2
wince
x11grab
x264
sdl
sdl_video_size
soundcard_h
+ sys_poll_h
sys_soundcard_h
threads
w32threads
CMDLINE_SELECT="
$CONFIG_LIST
$TARGET_LIST
+ amr_if2
debug
extra_warnings
- mingw32
shared
static
beosthreads
liba52_decoder_deps="liba52"
libgsm_decoder_deps="libgsm"
libgsm_encoder_deps="libgsm"
+libgsm_ms_decoder_deps="libgsm"
+libgsm_ms_encoder_deps="libgsm"
libtheora_encoder_deps="libtheora"
mp3lame_encoder_deps="libmp3lame"
oggvorbis_decoder_deps="libvorbis"
rtp_muxer_deps="network"
rtsp_demuxer_deps="network"
sdp_demuxer_deps="network"
-v4l2_demuxer_deps="video4linux2"
-video_grab_device_demuxer_deps_any="video4linux bktr"
+v4l2_demuxer_deps="v4l2"
+video_grab_device_demuxer_deps_any="v4l bktr"
x11_grab_device_demuxer_deps="x11grab"
ffplay_deps="sdl"
mmi="default"
bigendian="no"
-case "$arch" in
- i386|i486|i586|i686|i86pc|BePC)
- arch="x86_32"
- ;;
- x86_64|amd64)
- arch="x86_32"
- 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
- arch="x86_64"
- fi
- fi
- ;;
- # armv4l is a subset of armv[567]*l
- arm|armv[4567]*l)
- arch="armv4l"
- ;;
- alpha)
- arch="alpha"
- ;;
- "Power Macintosh"|ppc|ppc64|powerpc)
- arch="powerpc"
- ;;
- mips|mipsel|IP*)
- arch="mips"
- ;;
- sun4u|sparc64)
- arch="sparc64"
- ;;
- sparc)
- arch="sparc"
- ;;
- sh4)
- arch="sh4"
- ;;
- parisc|parisc64)
- arch="parisc"
- ;;
- s390|s390x)
- arch="s390"
- ;;
- m68k)
- arch="m68k"
- ;;
- ia64)
- arch="ia64"
- ;;
- bfin)
- arch="bfin"
- ;;
- *)
- arch="unknown"
- ;;
-esac
-
# OS
+targetos=`uname -s`
beos_netserver="no"
-mingw32="no"
os2="no"
wince="no"
# non-library system interfaces
-audio_beos="no"
+audio_beos="default"
audio_oss="yes"
bktr="yes"
dv1394="yes"
-video4linux2="yes"
-video4linux="yes"
+v4l2="yes"
+v4l="yes"
# libraries
amr_if2="no"
thread_type="no"
# build settings
-extralibs="-lm"
SHFLAGS='-shared -Wl,-soname,$@'
VHOOKSHFLAGS='$(SHFLAGS)'
LIBOBJFLAGS=""
BUILDSUF=""
LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(libdir)/$(LIB)"'
-# OS specific
-targetos=`uname -s`
-case $targetos in
- BeOS|Haiku|Zeta)
- PREFIX="$HOME/config"
- # helps building libavcodec
- add_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"
- add_cflags "-fno-expensive-optimizations"
- ;;
- esac
- LDCONFIG="echo ignoring ldconfig"
- SHFLAGS=-nostart
- # disable Linux things
- dv1394="no"
- # enable BeOS things
- audio_beos="yes"
- # no need for libm, but the inet stuff
- # Check for BONE
- # XXX: actually should check for NOT net_server
- if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then
- extralibs="-lbind -lsocket"
- else
- beos_netserver="yes"
- extralibs="-lnet"
- fi ;;
- SunOS)
- dv1394="no"
- FFLDFLAGS=""
- FFSERVERLDFLAGS=""
- SHFLAGS="-shared -Wl,-h,\$@"
- add_extralibs "-lsocket -lnsl"
- ;;
- NetBSD)
- dv1394="no"
- add_extralibs "-lossaudio"
- ;;
- OpenBSD)
- dv1394="no"
- need_memalign="no"
- LIBOBJFLAGS="\$(PIC)"
- LDCONFIG="ldconfig -m \$(shlibdir)"
- SHFLAGS='-shared'
- SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF).$(LIBVERSION)'
- SLIBNAME_WITH_VERSION='$(SLIBNAME)'
- SLIBNAME_WITH_MAJOR='$(SLIBNAME)'
- add_extralibs "-lossaudio"
- ;;
- FreeBSD)
- dv1394="no"
- need_memalign="no"
- add_cflags "-pthread"
- ;;
- GNU/kFreeBSD)
- dv1394="no"
- add_cflags "-pthread"
- ;;
- BSD/OS)
- dv1394="no"
- extralibs="-lpoll -lgnugetopt -lm"
- strip="strip -d"
- ;;
- Darwin)
- cc="cc"
- dv1394="no"
- need_memalign="no"
- SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(shlibdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION) -Wl,-read_only_relocs,suppress"
- VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(shlibdir)/vhook/$@'
- extralibs=""
- strip="strip -x"
- FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
- SLIBSUF=".dylib"
- SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME).$(LIBVERSION)$(SLIBSUF)'
- SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)'
- FFSERVERLDFLAGS=-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"
- ;;
- CYGWIN*)
- targetos=CYGWIN
- shlibdir="$bindir"
- dv1394="no"
- VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil'
- VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
- extralibs=""
- EXESUF=".exe"
- SLIBPREF="cyg"
- SLIBSUF=".dll"
- SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
- SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
- SHFLAGS='-shared -Wl,--out-implib=lib$(NAME).dll.a'
- ;;
- Linux)
- LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS"
- ;;
- IRIX*)
- targetos=IRIX
- ranlib="echo ignoring ranlib"
- ;;
- OS/2)
- TMPE=$TMPE".exe"
- ar="emxomfar -p128"
- ranlib="echo ignoring ranlib"
- strip="echo ignoring strip"
- add_cflags "-Zomf"
- FFLDFLAGS="-Zomf -Zstack 16384 -s"
- SHFLAGS="-Zdll -Zomf"
- FFSERVERLDFLAGS=""
- LIBPREF=""
- LIBSUF=".lib"
- SLIBPREF=""
- SLIBSUF=".dll"
- EXESUF=".exe"
- extralibs=""
- pkg_requires=""
- dv1394="no"
- ffserver="no"
- vhook="no"
- os2="yes"
- ;;
- *)
- targetos="${targetos}-UNKNOWN"
- ;;
-esac
-
# find source path
source_path="`dirname \"$0\"`"
source_path_used="yes"
;;
--cross-compile) cross_compile="yes"
;;
+ --target-os=*) targetos="$optval"
+ ;;
--cc=*) cc="$optval"
;;
--make=*) make="$optval"
;;
--cpu=*) cpu="$optval"
;;
- --disable-v4l) video4linux="no"
- ;;
- --disable-v4l2) video4linux2="no"
- ;;
--enable-mingwce) wince="yes"
;;
--disable-opts) optimize="no"
;;
--disable-strip) dostrip="no"
;;
- --enable-encoder=*) enable ${optval}_encoder
- ;;
- --enable-decoder=*) enable ${optval}_decoder
- ;;
- --disable-encoder=*) disable ${optval}_encoder
- ;;
- --disable-decoder=*) disable ${optval}_decoder
- ;;
--disable-encoders) disable $ENCODER_LIST
;;
--disable-decoders) disable $DECODER_LIST
;;
- --enable-muxer=*) enable ${optval}_muxer
- ;;
- --disable-muxer=*) disable ${optval}_muxer
- ;;
--disable-muxers) disable $MUXER_LIST
;;
- --enable-demuxer=*) enable ${optval}_demuxer
- ;;
- --disable-demuxer=*) disable ${optval}_demuxer
- ;;
--disable-demuxers) disable $DEMUXER_LIST
;;
- --enable-parser=*) enable ${optval}_parser
- ;;
- --disable-parser=*) disable ${optval}_parser
- ;;
--disable-parsers) disable $PARSER_LIST
;;
+ --enable-*=*|--disable-*=*)
+ eval `echo "$opt" | sed 's/=/-/;s/--/action=/;s/-/ thing=/;s/-/ name=/'`
+ case "$thing" in
+ encoder|decoder|muxer|demuxer|parser) $action ${optval}_${thing} ;;
+ *) die_unknown "$opt" ;;
+ esac
+ ;;
--enable-?*|--disable-?*)
eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'`
echo "$CMDLINE_SELECT" | grep -q "^ *$option\$" || die_unknown $opt
esac
done
-if ! disabled logging ; then
- enabled logging || logfile="$logging"
- echo "# $0 $@" >$logfile
- set >>$logfile
-else
- logfile=/dev/null
-fi
+case "$arch" in
+ i386|i486|i586|i686|i86pc|BePC)
+ arch="x86_32"
+ ;;
+ x86_64|amd64)
+ arch="x86_32"
+ 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
+ arch="x86_64"
+ fi
+ fi
+ ;;
+ # armv4l is a subset of armv[567]*l
+ arm|armv[4567]*l)
+ arch="armv4l"
+ ;;
+ alpha)
+ arch="alpha"
+ ;;
+ "Power Macintosh"|ppc|ppc64|powerpc)
+ arch="powerpc"
+ ;;
+ mips|mipsel|IP*)
+ arch="mips"
+ ;;
+ sun4u|sparc64)
+ arch="sparc64"
+ ;;
+ sparc)
+ arch="sparc"
+ ;;
+ sh4)
+ arch="sh4"
+ ;;
+ parisc|parisc64)
+ arch="parisc"
+ ;;
+ s390|s390x)
+ arch="s390"
+ ;;
+ m68k)
+ arch="m68k"
+ ;;
+ ia64)
+ arch="ia64"
+ ;;
+ bfin)
+ arch="bfin"
+ ;;
+ *)
+ arch="unknown"
+ ;;
+esac
-if enabled_any mingw32 wince; then
+# OS specific
+osextralibs="-lm"
+case `tolower $targetos` in
+ beos|haiku|zeta)
+ PREFIX="$HOME/config"
+ # helps building libavcodec
+ add_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"
+ add_cflags "-fno-expensive-optimizations"
+ ;;
+ esac
+ LDCONFIG="echo ignoring ldconfig"
+ SHFLAGS=-nostart
+ # disable Linux things
+ dv1394="no"
+ # enable BeOS things
+ disabled audio_beos || enable_audio_beos
+ # no need for libm, but the inet stuff
+ # Check for BONE
+ # XXX: actually should check for NOT net_server
+ if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then
+ osextralibs="-lbind -lsocket"
+ else
+ beos_netserver="yes"
+ osextralibs="-lnet"
+ fi ;;
+ sunos)
+ dv1394="no"
+ FFLDFLAGS=""
+ FFSERVERLDFLAGS=""
+ SHFLAGS="-shared -Wl,-h,\$@"
+ add_extralibs "-lsocket -lnsl"
+ ;;
+ netbsd)
+ dv1394="no"
+ add_extralibs "-lossaudio"
+ ;;
+ openbsd)
+ dv1394="no"
+ need_memalign="no"
+ LIBOBJFLAGS="\$(PIC)"
+ LDCONFIG="ldconfig -m \$(shlibdir)"
+ SHFLAGS='-shared'
+ SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF).$(LIBVERSION)'
+ SLIBNAME_WITH_VERSION='$(SLIBNAME)'
+ SLIBNAME_WITH_MAJOR='$(SLIBNAME)'
+ add_extralibs "-lossaudio"
+ ;;
+ freebsd)
+ dv1394="no"
+ need_memalign="no"
+ add_cflags "-pthread"
+ ;;
+ gnu/kfreebsd)
+ dv1394="no"
+ add_cflags "-pthread"
+ ;;
+ bsd/os)
+ dv1394="no"
+ osextralibs="-lpoll -lgnugetopt -lm"
+ strip="strip -d"
+ ;;
+ darwin)
+ cc="cc"
+ dv1394="no"
+ need_memalign="no"
+ SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(shlibdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION) -Wl,-read_only_relocs,suppress"
+ VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(shlibdir)/vhook/$@'
+ osextralibs=""
+ strip="strip -x"
+ FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
+ SLIBSUF=".dylib"
+ SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME).$(LIBVERSION)$(SLIBSUF)'
+ SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)'
+ FFSERVERLDFLAGS=-Wl,-bind_at_load
+ ;;
+ mingw32*)
if enabled_all shared static; then
cat <<EOF
You can only build one library type at once on MinGW.
exit 1
fi
dv1394="no"
- dc1394="no"
ffserver="no"
network="no"
if enabled wince; then
SLIB_EXTRA_CMD="-lib /machine:i386 /def:\$(@:${SLIBSUF}=.def)"
SLIB_INSTALL_EXTRA_CMD="-install -m 644 \$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib) \"\$(shlibdir)/\$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib)\""
SHFLAGS="-shared -Wl,--output-def,\$(@:${SLIBSUF}=.def),--out-implib,lib\$(SLIBNAME:\$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc"
+ add_extralibs -lws2_32
+ ;;
+ cygwin*)
+ targetos=CYGWIN
+ shlibdir="$bindir"
+ dv1394="no"
+ VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libswscale -L$(BUILD_ROOT)/libavutil'
+ VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lswscale$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
+ osextralibs=""
+ EXESUF=".exe"
+ SLIBPREF="cyg"
+ SLIBSUF=".dll"
+ SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
+ SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
+ SHFLAGS='-shared -Wl,--out-implib=lib$(NAME).dll.a'
+ ;;
+ linux)
+ LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS"
+ ;;
+ irix*)
+ targetos=IRIX
+ ranlib="echo ignoring ranlib"
+ ;;
+ os/2)
+ TMPE=$TMPE".exe"
+ ar="emxomfar -p128"
+ ranlib="echo ignoring ranlib"
+ strip="echo ignoring strip"
+ add_cflags "-Zomf"
+ FFLDFLAGS="-Zomf -Zstack 16384 -s"
+ SHFLAGS="-Zdll -Zomf"
+ FFSERVERLDFLAGS=""
+ LIBPREF=""
+ LIBSUF=".lib"
+ SLIBPREF=""
+ SLIBSUF=".dll"
+ EXESUF=".exe"
+ osextralibs=""
+ pkg_requires=""
+ dv1394="no"
+ ffserver="no"
+ vhook="no"
+ os2="yes"
+ ;;
+ *)
+ targetos="${targetos}-UNKNOWN"
+ ;;
+esac
+
+add_extralibs $osextralibs
+
+if ! disabled logging ; then
+ enabled logging || logfile="$logging"
+ echo "# $0 $@" >$logfile
+ set >>$logfile
+else
+ logfile=/dev/null
fi
# Combine FFLDFLAGS and the LDFLAGS environment variable.
sparc64)
add_cflags "-mcpu=v9"
;;
+ bf*) #bf531 bf532 bf533 bf561 bf5xx all get this config
+ add_cflags "-mfdpic"
+ add_ldflags "-mfdpic -Wl,--defsym,__stacksize=0x40000"
+ ;;
*)
echo "WARNING: Unknown CPU \"$cpu\", ignored."
;;
check_func localtime_r
enabled zlib && check_lib zlib.h zlibVersion -lz || zlib="no"
+# ffserver uses poll(),
+# if it's not found we can emulate it using select().
+if enabled ffserver; then
+ check_header sys/poll.h
+fi
+
# 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
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 mlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
-
-# Ugh, libfaac uses stdcall calling convention on win32 so we can't use
-# the generic test functions
-if enabled libfaac; 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 libfaad; 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
-
-# Ugh, avisynth uses WINAPI calls. Generic tests won't work.
-if enabled avisynth; then
- save_flags
- temp_extralibs -lvfw32
- check_ld <<EOF && add_extralibs -lvfw32 || die "ERROR: vfw32 not found"
-#include <windows.h>
-#include <vfw.h>
-int main(){
- AVIFileInit();
- return 0;
-}
-EOF
- restore_flags
-fi
-
+enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac
+enabled libfaad && require2 libfaad faad.h faacDecOpen -lfaad
+enabled avisynth && require2 vfw32 "windows.h vfw.h" AVIFileInit -lvfw32
# test for lrintf in math.h
check_exec <<EOF && lrintf=yes || lrintf=no
enabled audio_beos && add_extralibs "-lmedia -lbe"
-##########################################
-# imlib check
-
-imlib2=no
-if imlib2-config --version >/dev/null 2>&1; then
- temp_cflags `imlib2-config --cflags`
- temp_extralibs `imlib2-config --libs`
- check_lib Imlib2.h imlib_load_font && enable imlib2
- restore_flags
-fi
-
-##########################################
-# FreeType check
-
-freetype2=no
-if freetype-config --version >/dev/null 2>&1; then
- temp_cflags `freetype-config --cflags`
- temp_extralibs `freetype-config --libs`
- check_lib ft2build.h FT_Init_FreeType && enable freetype2
- restore_flags
-fi
+check_foo_config imlib2 imlib2 Imlib2.h imlib_load_font
+check_foo_config freetype2 freetype ft2build.h FT_Init_FreeType
##########################################
# SDL check
}
EOF
-enabled video4linux && check_header linux/videodev.h || disable video4linux
-enabled video4linux2 && check_header linux/videodev2.h || disable video4linux2
+enabled v4l && check_header linux/videodev.h || disable v4l
+enabled v4l2 && check_header linux/videodev2.h || disable v4l2
# check for ioctl_meteor.h, ioctl_bt848.h and alternatives
if enabled bktr; then
echo "SLIBPREF=$SLIBPREF" >> config.mak
echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
-echo "TARGET_OS=$targetos" >> config.mak
ucarch=`toupper $arch`
echo "TARGET_ARCH_${ucarch}=yes" >> config.mak