echo " --enable-w32threads use Win32 threads [no]"
echo " --enable-x11grab enable X11 grabbing [no]"
echo " --enable-vdpau enable VDPAU support [no]"
- echo " --enable-xvmc enable XvMC support [no]"
echo " --disable-network disable network support [no]"
echo " --disable-ipv6 disable IPv6 support [no]"
echo " --disable-mpegaudio-hp faster (but less accurate) MPEG audio decoding [no]"
echo " --enable-libmp3lame enable MP3 encoding via libmp3lame [no]"
echo " --enable-libnut enable NUT (de)muxing via libnut,"
echo " native (de)muxer exists [no]"
+ echo " --enable-libopenjpeg enable JPEG 2000 decoding via OpenJPEG [no]"
echo " --enable-libschroedinger enable Dirac support via libschroedinger [no]"
echo " --enable-libspeex enable Speex decoding via libspeex [no]"
echo " --enable-libtheora enable Theora encoding via libtheora [no]"
echo " (requires enabling PMC)"
echo " --disable-altivec disable AltiVec optimizations"
echo " --disable-amd3dnow disable 3DNow! optimizations"
+ echo " --disable-amd3dnowext disable 3DNow! extended optimizations"
echo " --disable-mmx disable MMX optimizations"
echo " --disable-mmx2 disable MMX2 optimizations"
echo " --disable-sse disable SSE optimizations"
echo " --disable-mmi disable MMI optimizations"
echo " --disable-neon disable neon optimizations"
echo " --disable-vis disable VIS optimizations"
+ echo " --disable-yasm disable use of yasm assembler"
echo
echo "Developer options (useful when working on FFmpeg itself):"
echo " --disable-debug disable debugging symbols"
libgsm
libmp3lame
libnut
+ libopenjpeg
libschroedinger
libspeex
libtheora
vdpau
vhook
x11grab
- xvmc
zlib
"
ARCH_EXT_LIST='
altivec
amd3dnow
+ amd3dnowext
armv5te
armv6
armv6t2
sys_select_h
sys_soundcard_h
sys_videoio_h
+ ten_operands
termios_h
threads
truncf
# options emitted with CONFIG_ prefix but not available on command line
CONFIG_EXTRA="
- fft_mmx
oldscaler
"
logging
optimizations
stripping
+ yasm
"
PATHS_LIST='
# architecture extensions
altivec_deps="ppc"
amd3dnow_deps="mmx"
+amd3dnowext_deps="amd3dnow"
armv5te_deps="arm"
armv6_deps="arm"
armv6t2_deps="arm"
vis_deps="sparc"
# common features
-fft_suggest="fft_mmx"
-fft_mmx_deps="mmx yasm"
oldscaler_deps="!swscale"
# decoders / encoders
eac3_decoder_deps="gpl"
eac3_decoder_select="fft mdct"
eatgq_decoder_select="aandct"
+eatqi_decoder_select="aandct"
ffv1_decoder_select="golomb"
flac_decoder_select="golomb"
flac_encoder_select="golomb"
mpeg4_encoder_select="aandct"
mpeg_vdpau_decoder_deps="vdpau"
mpeg1_vdpau_decoder_deps="vdpau"
-mpeg_xvmc_decoder_deps="xvmc X11_extensions_XvMClib_h"
+mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h"
msmpeg4v1_encoder_select="aandct"
msmpeg4v2_encoder_select="aandct"
msmpeg4v3_encoder_select="aandct"
qdm2_decoder_select="fft mdct rdft"
rv10_encoder_select="aandct"
rv20_encoder_select="aandct"
+rv30_decoder_select="golomb"
+rv40_decoder_select="golomb"
shorten_decoder_select="golomb"
sonic_decoder_select="golomb"
sonic_encoder_select="golomb"
libgsm_ms_decoder_deps="libgsm"
libgsm_ms_encoder_deps="libgsm"
libmp3lame_encoder_deps="libmp3lame"
+libopenjpeg_decoder_deps="libopenjpeg"
libschroedinger_decoder_deps="libschroedinger"
libschroedinger_encoder_deps="libschroedinger"
libspeex_decoder_deps="libspeex"
x11_grab_device_demuxer_extralibs="-lX11 -lXext"
# protocols
+gopher_protocol_deps="network"
http_protocol_deps="network"
rtp_protocol_deps="udp_protocol"
tcp_protocol_deps="network"
# gcc stupidly only outputs the basename of targets with -MM, but we need the
# full relative path for objects in subdirectories for non-recursive Make.
-DEPEND_CMD='$(CC) $(CFLAGS) -MM -MG $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o," -e "s,\\([[:space:]]\\)\\(version\\.h\\),\\1\$$(BUILD_ROOT_REL)/\\2,"'
+DEPEND_CMD='$(CC) $(CFLAGS) -MM $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o,"'
# find source path
source_path="`dirname \"$0\"`"
enabled cross_compile || host_cc_default=$cc
set_default host_cc
+case $target_os in
+ mingw32*|cygwin*|*-dos|freedos|opendos|os/2*) EXESUF=.exe ;;
+esac
+
# set temporary file name
: ${TMPDIR:=$TEMPDIR}
: ${TMPDIR:=$TMP}
check_cflags -std=c99
case "$arch" in
- i386|i486|i586|i686|i86pc|BePC)
- arch="x86"
- subarch="x86_32"
- enable fast_unaligned
- ;;
- x86_64|amd64)
- arch="x86"
- subarch="x86_32"
- enable cmov
- enable fast_cmov
- enable fast_unaligned
- check_cc <<EOF && enable fast_64bit && subarch="x86_64"
- int test[sizeof(char*) - 7];
-EOF
- ;;
- arm|armv[4567]*l)
- arch="arm"
- ;;
alpha)
arch="alpha"
enable fast_64bit
check_cflags -mieee
;;
- "Power Macintosh"|ppc|powerpc)
- arch="ppc"
- enable fast_unaligned
+ arm|armv[4567]*l)
+ arch="arm"
;;
- ppc64)
- arch="ppc"
+ avr32)
+ ;;
+ bfin)
+ arch="bfin"
+ ;;
+ ia64)
+ arch="ia64"
enable fast_64bit
- enable fast_unaligned
+ ;;
+ m68k)
+ arch="m68k"
;;
mips|mipsel|IP*)
arch="mips"
arch="mips"
enable fast_64bit
;;
- sun4u|sparc64)
- arch="sparc"
- subarch="sparc64"
- enable fast_64bit
- ;;
- sparc)
- arch="sparc"
- ;;
- sh4|sh)
- arch="sh4"
- ;;
parisc|hppa)
arch="parisc"
;;
arch="parisc"
enable fast_64bit
;;
+ "Power Macintosh"|ppc|powerpc)
+ arch="ppc"
+ enable fast_unaligned
+ ;;
+ ppc64)
+ arch="ppc"
+ enable fast_64bit
+ enable fast_unaligned
+ ;;
s390|s390x)
arch="s390"
;;
- m68k)
- arch="m68k"
+ sh4|sh)
+ arch="sh4"
;;
- ia64)
- arch="ia64"
+ sparc)
+ arch="sparc"
+ ;;
+ sun4u|sparc64)
+ arch="sparc"
+ subarch="sparc64"
enable fast_64bit
;;
- bfin)
- arch="bfin"
+ i386|i486|i586|i686|i86pc|BePC)
+ arch="x86"
+ subarch="x86_32"
+ enable fast_unaligned
+ ;;
+ x86_64|amd64)
+ arch="x86"
+ subarch="x86_32"
+ enable cmov
+ enable fast_cmov
+ enable fast_unaligned
+ check_cc <<EOF && enable fast_64bit && subarch="x86_64"
+ int test[sizeof(char*) - 7];
+EOF
;;
*)
arch="unknown"
disable ffserver
SLIBPREF=""
SLIBSUF=".dll"
- EXESUF=".exe"
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
SLIB_EXTRA_CMD='-lib /machine:$(LIBTARGET) /def:$$(@:$(SLIBSUF)=.def) /out:$(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib)'
VHOOKSHFLAGS="$VHOOKSHFLAGS -L\$(BUILD_ROOT)/libswscale"
VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)"
fi
- EXESUF=".exe"
SLIBPREF="cyg"
SLIBSUF=".dll"
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
disable ffplay ffserver vhook
disable $INDEV_LIST $OUTDEV_LIST
network_extralibs="-lsocket"
- EXESUF=".exe"
objformat="coff"
enable dos_paths
;;
os/2*)
strip="lxlite"
ln_s="cp -f"
- EXESUF=".exe"
FFLDFLAGS="-Zomf -Zbin-files -Zargs-wild -Zmap"
SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf'
FFSERVERLDFLAGS=""
# check wether EBX is available on x86
check_asm ebx_available '"":::"%ebx"'
+ # check whether more than 10 operands are supported
+ check_cc <<EOF && enable ten_operands
+int main(void) {
+ int x=0;
+ __asm__ volatile(
+ ""
+ :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
+ );
+ return 0;
+}
+EOF
+
# check whether binutils is new enough to compile SSSE3/MMX2
enabled ssse3 && check_asm ssse3 '"pabsw %xmm0, %xmm0"'
enabled mmx2 && check_asm mmx2 '"movss %xmm0, %xmm0"'
macho64) append YASMFLAGS "-DPIC -DPREFIX" ;;
*) append YASMFLAGS "-DPREFIX" ;;
esac
- check_yasm "pabsw xmm0, xmm0" && enable yasm
+ disabled yasm || { check_yasm "pabsw xmm0, xmm0" && enable yasm; }
fi
# check for assembler specific support
enabled libgsm && require libgsm gsm.h gsm_create -lgsm
enabled libmp3lame && require libmp3lame lame/lame.h lame_init -lmp3lame -lm
enabled libnut && require libnut libnut.h nut_demuxer_init -lnut
+enabled libopenjpeg && require libopenjpeg openjpeg.h opj_version -lopenjpeg
enabled libschroedinger && add_cflags $(pkg-config --cflags schroedinger-1.0) &&
require libschroedinger schroedinger/schro.h schro_init $(pkg-config --libs schroedinger-1.0)
enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex
echo "MMX enabled ${mmx-no}"
echo "MMX2 enabled ${mmx2-no}"
echo "3DNow! enabled ${amd3dnow-no}"
+ echo "3DNow! extended enabled ${amd3dnowext-no}"
echo "SSE enabled ${sse-no}"
echo "SSSE3 enabled ${ssse3-no}"
echo "CMOV enabled ${cmov-no}"
echo "CMOV is fast ${fast_cmov-no}"
echo "EBX available ${ebx_available-no}"
echo "EBP available ${ebp_available-no}"
+ echo "10 operands supported ${ten_operands-no}"
fi
if enabled arm; then
echo "ARMv5TE enabled ${armv5te-no}"
echo "libgsm enabled ${libgsm-no}"
echo "libmp3lame enabled ${libmp3lame-no}"
echo "libnut enabled ${libnut-no}"
+echo "libopenjpeg enabled ${libopenjpeg-no}"
echo "libschroedinger enabled ${libschroedinger-no}"
echo "libspeex enabled ${libspeex-no}"
echo "libtheora enabled ${libtheora-no}"