--disable-armv5te disable armv5te optimizations
--disable-armv6 disable armv6 optimizations
--disable-armv6t2 disable armv6t2 optimizations
- --disable-armvfp disable ARM VFP optimizations
+ --disable-vfp disable VFP optimizations
--disable-neon disable NEON optimizations
--disable-vis disable VIS optimizations
--disable-inline-asm disable use of inline assembler
return 1
}
-check_deps(){
+do_check_deps(){
for cfg; do
cfg="${cfg#!}"
enabled ${cfg}_checking && die "Circular dependency for $cfg."
disabled ${cfg}_checking && continue
enable ${cfg}_checking
+ append allopts $cfg
eval dep_all="\$${cfg}_deps"
eval dep_any="\$${cfg}_deps_any"
eval dep_ifn="\$${cfg}_if_any"
pushvar cfg dep_all dep_any dep_sel dep_sgs dep_ifa dep_ifn
- check_deps $dep_all $dep_any $dep_sel $dep_sgs $dep_ifa $dep_ifn
+ do_check_deps $dep_all $dep_any $dep_sel $dep_sgs $dep_ifa $dep_ifn
popvar cfg dep_all dep_any dep_sel dep_sgs dep_ifa dep_ifn
[ -n "$dep_ifa" ] && { enabled_all $dep_ifa && enable_weak $cfg; }
disabled_any $dep_sel && disable $cfg
if enabled $cfg; then
- eval dep_extralibs="\$${cfg}_extralibs"
- test -n "$dep_extralibs" && add_extralibs $dep_extralibs
enable_deep $dep_sel
enable_deep_weak $dep_sgs
fi
done
}
+check_deps(){
+ unset allopts
+
+ do_check_deps "$@"
+
+ for cfg in $allopts; do
+ enabled $cfg || continue
+ eval dep_extralibs="\$${cfg}_extralibs"
+ test -n "$dep_extralibs" && add_extralibs $dep_extralibs
+ done
+}
+
print_config(){
pfx=$1
files=$2
armv5te
armv6
armv6t2
- armvfp
neon
+ vfp
vfpv3
'
armv5te_deps="arm"
armv6_deps="arm"
armv6t2_deps="arm"
-armvfp_deps="arm"
neon_deps="arm"
-vfpv3_deps="armvfp"
+vfp_deps="arm"
+vfpv3_deps="vfp"
+
+map 'eval ${v}_inline_deps=inline_asm' $ARCH_EXT_LIST_ARM
altivec_deps="ppc"
ppc4xx_deps="ppc"
sdp_demuxer_select="rtpdec"
smoothstreaming_muxer_select="ismv_muxer"
spdif_muxer_select="aac_parser"
+tak_demuxer_select="tak_parser"
tg2_muxer_select="mov_muxer"
tgp_muxer_select="mov_muxer"
w64_demuxer_deps="wav_demuxer"
ffrtmpcrypt_protocol_select="tcp_protocol"
ffrtmphttp_protocol_deps="!librtmp_protocol"
ffrtmphttp_protocol_select="http_protocol"
-gopher_protocol_deps="network"
-httpproxy_protocol_deps="network"
+gopher_protocol_select="network"
httpproxy_protocol_select="tcp_protocol"
-http_protocol_deps="network"
http_protocol_select="tcp_protocol"
https_protocol_select="tls_protocol"
librtmp_protocol_deps="librtmp"
librtmpt_protocol_deps="librtmp"
librtmpte_protocol_deps="librtmp"
mmsh_protocol_select="http_protocol"
-mmst_protocol_deps="network"
+mmst_protocol_select="network"
rtmp_protocol_deps="!librtmp_protocol"
rtmp_protocol_select="tcp_protocol"
rtmpe_protocol_select="ffrtmpcrypt_protocol"
rtmpte_protocol_select="ffrtmpcrypt_protocol ffrtmphttp_protocol"
rtmpts_protocol_select="ffrtmphttp_protocol https_protocol"
rtp_protocol_select="udp_protocol"
-sctp_protocol_deps="network struct_sctp_event_subscribe"
-tcp_protocol_deps="network"
+sctp_protocol_deps="struct_sctp_event_subscribe"
+sctp_protocol_select="network"
+tcp_protocol_select="network"
tls_protocol_deps_any="openssl gnutls"
tls_protocol_select="tcp_protocol"
-udp_protocol_deps="network"
+udp_protocol_select="network"
# filters
blackframe_filter_deps="gpl"
enable asm
enable debug
enable doc
-enable network
enable optimizations
enable safe_bitstream_reader
enable static
for opt do
optval="${opt#*=}"
case "$opt" in
- --extra-ldflags=*) add_ldflags $optval
+ --extra-ldflags=*)
+ add_ldflags $optval
;;
- --extra-libs=*) add_extralibs $optval
+ --extra-libs=*)
+ add_extralibs $optval
;;
- --disable-devices) disable $INDEV_LIST $OUTDEV_LIST
+ --disable-devices)
+ disable $INDEV_LIST $OUTDEV_LIST
;;
- --enable-debug=*) debuglevel="$optval"
+ --enable-debug=*)
+ debuglevel="$optval"
;;
--disable-programs)
disable $PROGRAM_LIST
warn "Compiler does not indicate floating-point ABI, guessing $fpabi."
fi
- enabled armv5te && check_inline_asm armv5te '"qadd r0, r0, r0"'
- enabled armv6 && check_inline_asm armv6 '"sadd16 r0, r0, r0"'
- enabled armv6t2 && check_inline_asm armv6t2 '"movt r0, #0"'
- enabled armvfp && check_inline_asm armvfp '"fadds s0, s0, s0"'
- enabled neon && check_inline_asm neon '"vadd.i16 q0, q0, q0"'
- enabled vfpv3 && check_inline_asm vfpv3 '"vmov.f32 s0, #1.0"'
+ enabled armv5te && check_insn armv5te 'qadd r0, r0, r0'
+ enabled armv6 && check_insn armv6 'sadd16 r0, r0, r0'
+ enabled armv6t2 && check_insn armv6t2 'movt r0, #0'
+ enabled neon && check_insn neon 'vadd.i16 q0, q0, q0'
+ enabled vfp && check_insn vfp 'fadds s0, s0, s0'
+ enabled vfpv3 && check_insn vfpv3 'vmov.f32 s0, #1.0'
+
+ [ $target_os = linux ] ||
+ map 'enabled_any ${v}_external ${v}_inline || disable $v' \
+ $ARCH_EXT_LIST_ARM
check_inline_asm asm_mod_q '"add r0, %Q0, %R0" :: "r"((long long)0)'
check_inline_asm asm_mod_y '"vmul.i32 d0, d0, %y0" :: "x"(0)'
ldl=-ldl
fi
-if enabled network; then
+if ! disabled network; then
check_type "sys/types.h sys/socket.h" socklen_t
check_type netdb.h "struct addrinfo"
check_type netinet/in.h "struct group_source_req" -D_BSD_SOURCE
echo "ARMv5TE enabled ${armv5te-no}"
echo "ARMv6 enabled ${armv6-no}"
echo "ARMv6T2 enabled ${armv6t2-no}"
- echo "ARM VFP enabled ${armvfp-no}"
+ echo "VFP enabled ${vfp-no}"
echo "NEON enabled ${neon-no}"
fi
if enabled ppc; then