--disable-doc do not build documentation
--disable-ffmpeg disable ffmpeg build
--disable-ffplay disable ffplay build
+ --disable-ffprobe disable ffprobe build
--disable-ffserver disable ffserver build
--disable-avdevice disable libavdevice build
--disable-avcodec disable libavcodec build
--enable-hardcoded-tables use hardcoded tables instead of runtime generation
--enable-memalign-hack emulate memalign, interferes with memory debuggers
--enable-beos-netserver enable BeOS netserver
+ --disable-everything disable all components listed below
--disable-encoder=NAME disable encoder NAME
--enable-encoder=NAME enable encoder NAME
--disable-encoders disable all encoders
--disable-optimizations disable compiler optimizations
--enable-extra-warnings enable more compiler warnings
--disable-stripping disable stripping of executables and shared libraries
+ --samples=PATH location of test samples for FATE
NOTE: Object files are built at the place where configure is launched.
EOF
done
}
+map(){
+ m=$1
+ shift
+ for v; do eval $m; done
+}
+
set_all(){
value=$1
shift
bzlib
dct
doc
+ dwt
dxva2
fastdiv
ffmpeg
ffplay
+ ffprobe
ffserver
fft
golomb
gpl
gprof
gray
+ h264dsp
hardcoded_tables
libdc1394
libdirac
libx264
libxvid
lpc
+ lsp
mdct
memalign_hack
mlib
sh4
sparc
sparc64
+ tomi
x86
x86_32
x86_64
fork
getaddrinfo
gethrtime
+ GetProcessMemoryInfo
GetProcessTimes
getrusage
+ struct_rusage_ru_maxrss
inet_aton
inline_asm
isatty
libdc1394_1
libdc1394_2
llrint
+ local_aligned_16
+ local_aligned_8
log2
log2f
loongson
soundcard_h
poll_h
setrlimit
+ strerror_r
struct_addrinfo
struct_ipv6_mreq
struct_sockaddr_in6
logfile
malloc_prefix
nm
+ samples
source_path
+ strip
sysinclude
sysroot
target_exec
rdft_select="fft"
# decoders / encoders / hardware accelerators
-aac_decoder_select="mdct aac_parser"
+aac_decoder_select="mdct rdft aac_parser"
aac_encoder_select="mdct"
ac3_decoder_select="mdct ac3_parser"
alac_encoder_select="lpc"
+amrnb_decoder_select="lsp"
+atrac1_decoder_select="mdct"
atrac3_decoder_select="mdct"
binkaudio_dct_decoder_select="mdct rdft dct"
binkaudio_rdft_decoder_select="mdct rdft"
h263_vaapi_hwaccel_select="vaapi h263_decoder"
h263i_decoder_select="h263_decoder"
h263p_encoder_select="h263_encoder"
-h264_decoder_select="golomb"
+h264_decoder_select="golomb h264dsp"
h264_dxva2_hwaccel_deps="dxva2api_h"
h264_dxva2_hwaccel_select="dxva2 h264_decoder"
h264_vaapi_hwaccel_deps="va_va_h"
nellymoser_encoder_select="mdct"
png_decoder_select="zlib"
png_encoder_select="zlib"
+qcelp_decoder_select="lsp"
qdm2_decoder_select="mdct rdft"
rv10_decoder_select="h263_decoder"
rv10_encoder_select="h263_encoder"
rv20_decoder_select="h263_decoder"
rv20_encoder_select="h263_encoder"
-rv30_decoder_select="golomb"
-rv40_decoder_select="golomb"
+rv30_decoder_select="golomb h264dsp"
+rv40_decoder_select="golomb h264dsp"
shorten_decoder_select="golomb"
+sipr_decoder_select="lsp"
+snow_decoder_select="dwt"
+snow_encoder_select="aandct dwt"
sonic_decoder_select="golomb"
sonic_encoder_select="golomb"
sonic_ls_encoder_select="golomb"
-svq3_decoder_select="golomb"
+svq1_encoder_select="aandct"
+svq3_decoder_select="golomb h264dsp"
svq3_decoder_suggest="zlib"
theora_decoder_select="vp3_decoder"
tiff_decoder_suggest="zlib"
tiff_encoder_suggest="zlib"
truehd_decoder_select="mlp_decoder"
tscc_decoder_select="zlib"
+twinvq_decoder_select="mdct lsp"
vc1_decoder_select="h263_decoder"
vc1_dxva2_hwaccel_deps="dxva2api_h DXVA_PictureParameters_wDecodedPictureIndex"
vc1_dxva2_hwaccel_select="dxva2 vc1_decoder"
vorbis_encoder_select="mdct"
vp6a_decoder_select="vp6_decoder"
vp6f_decoder_select="vp6_decoder"
+wmapro_decoder_select="mdct"
wmav1_decoder_select="mdct"
wmav1_encoder_select="mdct"
wmav2_decoder_select="mdct"
wmav2_encoder_select="mdct"
+wmavoice_decoder_select="lsp"
wmv1_decoder_select="h263_decoder"
wmv1_encoder_select="h263_encoder"
wmv2_decoder_select="h263_decoder"
zmbv_encoder_select="zlib"
# parsers
-h264_parser_select="golomb"
+h264_parser_select="golomb h264dsp"
# bitstream_filters
aac_adtstoasc_bsf_select="aac_parser"
ogg_demuxer_select="golomb"
psp_muxer_select="mov_muxer"
rtsp_demuxer_deps="sdp_demuxer"
+rtsp_muxer_deps="sdp_demuxer"
+rtsp_muxer_select="rtp_muxer"
sdp_demuxer_deps="rtp_protocol mpegts_demuxer"
+sdp_demuxer_select="asf_demuxer rm_demuxer"
spdif_muxer_select="aac_parser"
tg2_muxer_select="mov_muxer"
tgp_muxer_select="mov_muxer"
# protocols
gopher_protocol_deps="network"
http_protocol_deps="network"
+http_protocol_select="tcp_protocol"
rtmp_protocol_deps="tcp_protocol"
rtp_protocol_deps="udp_protocol"
tcp_protocol_deps="network"
# programs
ffmpeg_deps="avcodec avformat swscale"
ffplay_deps="avcodec avformat swscale sdl"
+ffplay_select="rdft"
+ffprobe_deps="avcodec avformat"
ffserver_deps="avformat ffm_muxer rtp_protocol rtsp_demuxer"
ffserver_extralibs='$ldl'
nm_default="nm"
objformat="elf"
ranlib="ranlib"
-strip="strip"
+strip_default="strip"
yasmexe="yasm"
nm_opts='-g'
# machine
-arch=$(uname -m)
+arch_default=$(uname -m)
cpu="generic"
# OS
-target_os=$(tolower $(uname -s))
-host_os=$target_os
+target_os_default=$(tolower $(uname -s))
+host_os=$target_os_default
# configurable options
enable avcodec
enable fastdiv
enable ffmpeg
enable ffplay
+enable ffprobe
enable ffserver
enable mpegaudio_hp
enable network
SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)'
SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
-LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
+LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
CC_O='-o $@'
;;
--enable-debug=*) debuglevel="$optval"
;;
+ --disable-everything)
+ map 'eval disable \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
+ ;;
--enable-*=*|--disable-*=*)
eval $(echo "${opt%%=*}" | sed 's/--/action=/;s/-/ thing=/')
is_in "${thing}s" $COMPONENT_LIST || die_unknown "$opt"
test -n "$cross_prefix" && enable cross_compile
+if enabled cross_compile; then
+ test -n "$arch" && test -n "$target_os" ||
+ die "Must specify target arch and OS when cross-compiling"
+fi
+
+set_default arch target_os
+
ar="${cross_prefix}${ar}"
cc_default="${cross_prefix}${cc_default}"
nm_default="${cross_prefix}${nm_default}"
ranlib="${cross_prefix}${ranlib}"
-strip="${cross_prefix}${strip}"
+strip_default="${cross_prefix}${strip_default}"
sysinclude_default="${sysroot}/usr/include"
-set_default cc nm sysinclude
+set_default cc nm strip sysinclude
enabled cross_compile || host_cc_default=$cc
set_default host_cc
add_ldflags --sysroot="$sysroot"
;;
clang)
- add_cppflags -isysroot="$sysroot"
- add_ldflags -isysroot="$sysroot"
+ add_cppflags -isysroot "$sysroot"
+ add_ldflags -isysroot "$sysroot"
;;
esac
fi
mips|mipsel|IP*)
arch="mips"
;;
- mips64)
+ mips64*)
arch="mips"
subarch="mips64"
;;
"Power Macintosh"|ppc|powerpc)
arch="ppc"
;;
- ppc64)
+ ppc64|powerpc64)
arch="ppc"
subarch="ppc64"
;;
netbsd)
oss_indev_extralibs="-lossaudio"
oss_outdev_extralibs="-lossaudio"
+ add_cppflags -D_XOPEN_SOURCE=600
;;
openbsd)
enable malloc_aligned
elif enabled ppc; then
+ enable local_aligned_8 local_aligned_16
+
check_asm dcbzl '"dcbzl 0, 1"'
check_asm ppc4xx '"maclhw r10, r11, r12"'
check_asm xform_asm '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)'
elif enabled x86; then
+ enable local_aligned_8 local_aligned_16
+
# check whether EBP is available on x86
# As 'i' is stored on the stack, this program will crash
# if the base pointer is used to access it because the
check_func getaddrinfo $network_extralibs
check_func gethrtime
check_func getrusage
+check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss
check_func inet_aton $network_extralibs
check_func isatty
check_func ${malloc_prefix}memalign && enable memalign
check_func mkstemp
check_func ${malloc_prefix}posix_memalign && enable posix_memalign
check_func setrlimit
+check_func strerror_r
check_func_headers io.h setmode
check_func_headers lzo/lzo1x.h lzo1x_999_compress
+check_lib2 "windows.h psapi.h" GetProcessMemoryInfo -lpsapi
check_func_headers windows.h GetProcessTimes
check_func_headers windows.h VirtualAlloc
check_cflags -Wwrite-strings
check_cflags -Wtype-limits
check_cflags -Wundef
+check_cflags -Wmissing-prototypes
enabled extra_warnings && check_cflags -Winline
# add some linker flags
add_cflags -msg_disable unreachcode
elif enabled gcc; then
check_cflags -fno-tree-vectorize
+ check_cflags -Werror=implicit
+ check_cflags -Werror=missing-prototypes
elif enabled clang; then
check_cflags -Qunused-arguments
elif enabled armcc; then
# 2523: use of inline assembler is deprecated
add_cflags -Wrvct,--diag_suppress=2523
+ add_cflags -Wrvct,--diag_suppress=1207
elif enabled tms470; then
add_cflags -pds=824 -pds=837
fi
subdir.mak
doc/texi2pod.pl
libavcodec/Makefile
+ libavcodec/${arch}/Makefile
libavdevice/Makefile
libavfilter/Makefile
libavformat/Makefile
libpostproc/Makefile
libswscale/Makefile
"
- for dir in $DIRS ; do
- mkdir -p $dir
- done
- for f in $FILES ; do
- $ln_s "$source_path/$f" $f
- done
+ map 'mkdir -p $v' $DIRS;
+ map 'test -f "$source_path/$v" && $ln_s "$source_path/$v" $v' $FILES
fi
enabled stripping || strip="echo skipping strip"
LD=$ld
DEPCC=$dep_cc
YASM=$yasmexe
+YASMDEP=$yasmexe
AR=$ar
RANLIB=$ranlib
+CP=cp -p
LN_S=$ln_s
STRIP=$strip
CPPFLAGS=$CPPFLAGS
SDL_CFLAGS=$sdl_cflags
LIB_INSTALL_EXTRA_CMD=$LIB_INSTALL_EXTRA_CMD
EXTRALIBS=$extralibs
+INSTALL=install
+LIBTARGET=${LIBTARGET}
+SLIBNAME=${SLIBNAME}
+SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}
+SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}
+SLIB_CREATE_DEF_CMD=${SLIB_CREATE_DEF_CMD}
+SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}
+SLIB_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}
+SLIB_UNINSTALL_EXTRA_CMD=${SLIB_UNINSTALL_EXTRA_CMD}
+SAMPLES=$samples
EOF
get_version(){
get_version LIBAVUTIL libavutil/avutil.h
get_version LIBAVFILTER libavfilter/avfilter.h
-enabled shared && cat >> config.mak <<EOF
-LIBTARGET=${LIBTARGET}
-SLIBNAME=${SLIBNAME}
-SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}
-SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}
-SLIB_CREATE_DEF_CMD=${SLIB_CREATE_DEF_CMD}
-SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}
-SLIB_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}
-SLIB_UNINSTALL_EXTRA_CMD=${SLIB_UNINSTALL_EXTRA_CMD}
-EOF
-
enabled asmalign_pot || align_shift="1 <<"
cat > $TMPH <<EOF
echo "#define MALLOC_PREFIX $malloc_prefix" >>$TMPH
if enabled small || disabled optimizations; then
+ echo "#undef av_always_inline" >> $TMPH
echo "#define av_always_inline" >> $TMPH
fi