--disable-avdevice disable libavdevice build
--disable-avcodec disable libavcodec build
--disable-avformat disable libavformat build
+ --disable-avutil disable libavutil build
--disable-swresample disable libswresample build
--disable-swscale disable libswscale build
--disable-postproc disable libpostproc build
--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
check_as(){
log check_as "$@"
- cat > $TMPC
- log_file $TMPC
- check_cmd $as $CPPFLAGS $ASFLAGS "$@" $AS_C $(as_o $TMPO) $TMPC
+ cat > $TMPS
+ log_file $TMPS
+ check_cmd $as $CPPFLAGS $ASFLAGS "$@" $AS_C $(as_o $TMPO) $TMPS
}
check_inline_asm(){
code="$2"
shift 2
disable $name
- check_as "$@" <<EOF && enable $name
+ check_cc "$@" <<EOF && enable $name
void foo(void){ __asm__ volatile($code); }
EOF
}
+check_insn(){
+ log check_insn "$@"
+ check_inline_asm ${1}_inline "\"$2\""
+ echo "$2" | check_as && enable ${1}_external || disable ${1}_external
+}
+
check_yasm(){
log check_yasm "$@"
echo "$1" > $TMPS
txtpages
"
+LIBRARY_LIST="
+ avcodec
+ avdevice
+ avfilter
+ avformat
+ avresample
+ avutil
+ swresample
+ swscale
+"
+
PROGRAM_LIST="
ffplay
ffprobe
CONFIG_LIST="
$COMPONENT_LIST
$DOCUMENT_LIST
+ $LIBRARY_LIST
$PROGRAM_LIST
- avcodec
- avdevice
- avfilter
- avformat
- avresample
avisynth
bzlib
crystalhd
small
sram
static
- swresample
- swscale
swscale_alpha
thumb
vaapi
x86_64
'
+ARCH_EXT_LIST_ARM='
+ armv5te
+ armv6
+ armv6t2
+ neon
+ vfp
+ vfpv3
+'
+
ARCH_EXT_LIST_X86='
amd3dnow
amd3dnowext
'
ARCH_EXT_LIST="
+ $ARCH_EXT_LIST_ARM
$ARCH_EXT_LIST_X86
altivec
- armv5te
- armv6
- armv6t2
- armvfp
- neon
ppc4xx
- vfpv3
vis
mipsfpu
mips32r2
$HAVE_LIST_PUB
$THREADS_LIST
$MATH_FUNCS
+ access
aligned_malloc
aligned_stack
alsa_asoundlib_h
clock_gettime
closesocket
cmov
+ CommandLineToArgvW
cpunop
CryptGenRandom
dcbzl
sched_getaffinity
sdl
sdl_video_size
+ SetConsoleTextAttribute
setmode
setrlimit
Sleep
CONFIG_EXTRA="
aandcttables
ac3dsp
- avutil
error_resilience
gcrypt
golomb
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
mipsfpu_deps="mips"
mips32r2_deps="mips"
aligned_stack_if_any="ppc x86"
fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64"
-fast_clz_if_any="alpha armv5te avr32 mips ppc x86"
-fast_unaligned_if_any="armv6 ppc x86"
+fast_clz_if_any="alpha avr32 mips ppc x86"
+fast_unaligned_if_any="ppc x86"
inline_asm_deps="!tms470"
need_memalign="altivec neon sse"
f4v_muxer_select="mov_muxer"
flac_demuxer_select="flac_parser"
ipod_muxer_select="mov_muxer"
+ismv_muxer_select="mov_muxer"
libnut_demuxer_deps="libnut"
libnut_muxer_deps="libnut"
matroska_audio_muxer_select="matroska_muxer"
tak_demuxer_select="tak_parser"
tg2_muxer_select="mov_muxer"
tgp_muxer_select="mov_muxer"
+vobsub_demuxer_select="mpegps_demuxer"
w64_demuxer_deps="wav_demuxer"
# indevs / outdevs
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
aconvert_filter_deps="swresample"
scale_filter_deps="swscale"
smartblur_filter_deps="gpl swscale"
showspectrum_filter_deps="avcodec rdft"
+subtitles_filter_deps="avformat avcodec libass"
super2xsai_filter_deps="gpl"
tinterlace_filter_deps="gpl"
yadif_filter_deps="gpl"
tinterlace_pad_test_deps="tinterlace_filter"
# libraries
-avdevice_deps="avcodec avformat"
-avformat_deps="avcodec"
+avcodec_deps="avutil"
+avdevice_deps="avutil avcodec avformat"
+avfilter_deps="avutil"
+avformat_deps="avutil avcodec"
+avresample_deps="avutil"
postproc_deps="gpl"
+swscale_deps="avutil"
# programs
ffmpeg_deps="avcodec avfilter avformat swscale swresample"
# configurable options
enable $PROGRAM_LIST
enable $DOCUMENT_LIST
-
-enable avcodec
-enable avdevice
-enable avfilter
-enable avformat
-enable avutil
+enable $(filter_out avresample $LIBRARY_LIST)
enable postproc
enable stripping
-enable swresample
-enable swscale
enable asm
enable debug
enable doc
-enable network
enable optimizations
enable runtime_cpudetect
enable safe_bitstream_reader
for opt do
optval="${opt#*=}"
case "$opt" in
- --extra-ldflags=*) add_ldflags $optval
- ;;
- --extra-libs=*) add_extralibs $optval
- ;;
- --disable-devices) disable $INDEV_LIST $OUTDEV_LIST
- ;;
- --enable-debug=*) debuglevel="$optval"
- ;;
- --disable-programs)
- disable $PROGRAM_LIST
- ;;
- --disable-everything)
- map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
- ;;
- --enable-random|--disable-random)
- action=${opt%%-random}
- do_random ${action#--} $COMPONENT_LIST
- ;;
- --enable-random=*|--disable-random=*)
- action=${opt%%-random=*}
- do_random ${action#--} $optval
- ;;
- --enable-*=*|--disable-*=*)
- eval $(echo "${opt%%=*}" | sed 's/--/action=/;s/-/ thing=/')
- is_in "${thing}s" $COMPONENT_LIST || die_unknown "$opt"
- eval list=\$$(toupper $thing)_LIST
- name=$(echo "${optval}" | sed "s/,/_${thing}|/g")_${thing}
- list=$(filter "$name" $list)
- [ "$list" = "" ] && warn "Option $opt did not match anything"
- $action $list
- ;;
- --enable-?*|--disable-?*)
- eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g')
- if is_in $option $COMPONENT_LIST; then
- test $action = disable && action=unset
- eval $action \$$(toupper ${option%s})_LIST
- elif is_in $option $CMDLINE_SELECT; then
- $action $option
- else
- die_unknown $opt
- fi
- ;;
- --list-*)
- NAME="${opt#--list-}"
- is_in $NAME $COMPONENT_LIST || die_unknown $opt
- NAME=${NAME%s}
- eval show_list $NAME \$$(toupper $NAME)_LIST
- ;;
- --help|-h) show_help
- ;;
- --fatal-warnings) enable fatal_warnings
- ;;
- *)
- optname="${opt%%=*}"
- optname="${optname#--}"
- optname=$(echo "$optname" | sed 's/-/_/g')
- if is_in $optname $CMDLINE_SET; then
- eval $optname='$optval'
- elif is_in $optname $CMDLINE_APPEND; then
- append $optname "$optval"
- else
- die_unknown $opt
- fi
- ;;
+ --extra-ldflags=*) add_ldflags $optval
+ ;;
+ --extra-libs=*) add_extralibs $optval
+ ;;
+ --disable-devices) disable $INDEV_LIST $OUTDEV_LIST
+ ;;
+ --enable-debug=*) debuglevel="$optval"
+ ;;
+ --disable-programs)
+ disable $PROGRAM_LIST
+ ;;
+ --disable-everything)
+ map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
+ ;;
+ --enable-random|--disable-random)
+ action=${opt%%-random}
+ do_random ${action#--} $COMPONENT_LIST
+ ;;
+ --enable-random=*|--disable-random=*)
+ action=${opt%%-random=*}
+ do_random ${action#--} $optval
+ ;;
+ --enable-*=*|--disable-*=*)
+ eval $(echo "${opt%%=*}" | sed 's/--/action=/;s/-/ thing=/')
+ is_in "${thing}s" $COMPONENT_LIST || die_unknown "$opt"
+ eval list=\$$(toupper $thing)_LIST
+ name=$(echo "${optval}" | sed "s/,/_${thing}|/g")_${thing}
+ list=$(filter "$name" $list)
+ [ "$list" = "" ] && warn "Option $opt did not match anything"
+ $action $list
+ ;;
+ --enable-?*|--disable-?*)
+ eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g')
+ if is_in $option $COMPONENT_LIST; then
+ test $action = disable && action=unset
+ eval $action \$$(toupper ${option%s})_LIST
+ elif is_in $option $CMDLINE_SELECT; then
+ $action $option
+ else
+ die_unknown $opt
+ fi
+ ;;
+ --list-*)
+ NAME="${opt#--list-}"
+ is_in $NAME $COMPONENT_LIST || die_unknown $opt
+ NAME=${NAME%s}
+ eval show_list $NAME \$$(toupper $NAME)_LIST
+ ;;
+ --help|-h) show_help
+ ;;
+ --fatal-warnings) enable fatal_warnings
+ ;;
+ *)
+ optname="${opt%%=*}"
+ optname="${optname#--}"
+ optname=$(echo "$optname" | sed 's/-/_/g')
+ if is_in $optname $CMDLINE_SET; then
+ eval $optname='$optval'
+ elif is_in $optname $CMDLINE_APPEND; then
+ append $optname "$optval"
+ else
+ die_unknown $opt
+ fi
+ ;;
esac
done
prescott|nocona) echo -xarch=sse3 -xchip=pentium4 ;;
*-sse3) echo -xarch=sse3 ;;
core2) echo -xarch=ssse3 -xchip=core2 ;;
+ corei7) echo -xarch=sse4_2 -xchip=nehalem ;;
+ corei7-avx) echo -xarch=avx -xchip=sandybridge ;;
amdfam10|barcelona|bdver*) echo -xarch=sse4_1 ;;
athlon-4|athlon-[mx]p) echo -xarch=ssea ;;
k8|opteron|athlon64|athlon-fx)
enable $arch
# Add processor-specific flags
-if test "$cpu" = generic; then
- : do nothing
-elif enabled ppc; then
-
- case $(tolower $cpu) in
- 601|ppc601|powerpc601)
- cpuflags="-mcpu=601"
- disable altivec
- ;;
- 603*|ppc603*|powerpc603*)
- cpuflags="-mcpu=603"
- disable altivec
- ;;
- 604*|ppc604*|powerpc604*)
- cpuflags="-mcpu=604"
- disable altivec
- ;;
- g3|75*|ppc75*|powerpc75*)
- cpuflags="-mcpu=750"
- disable altivec
- ;;
- g4|745*|ppc745*|powerpc745*)
- cpuflags="-mcpu=7450"
- ;;
- 74*|ppc74*|powerpc74*)
- cpuflags="-mcpu=7400"
- ;;
- g5|970|ppc970|powerpc970)
- cpuflags="-mcpu=970"
- ;;
- power[3-7]*)
- cpuflags="-mcpu=$cpu"
- ;;
- cell)
- cpuflags="-mcpu=cell"
- enable ldbrx
- ;;
- e500mc)
- cpuflags="-mcpu=e500mc"
- disable altivec
- ;;
- e500v2)
- cpuflags="-mcpu=8548 -mhard-float -mfloat-gprs=double"
- disable altivec
- ;;
- e500)
- cpuflags="-mcpu=8540 -mhard-float"
- disable altivec
- ;;
- esac
-
-elif enabled x86; then
+if enabled aarch64; then
case $cpu in
- i[345]86|pentium)
- cpuflags="-march=$cpu"
- disable mmx
- ;;
- # targets that do NOT support conditional mov (cmov)
- pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3)
- cpuflags="-march=$cpu"
- disable cmov
- ;;
- # targets that do support conditional mov (cmov)
- i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64*|k8*|opteron*|athlon-fx|core2|amdfam10|barcelona|atom|bdver*)
+ armv*)
cpuflags="-march=$cpu"
- enable cmov
- enable fast_cmov
;;
- # targets that do support conditional mov but on which it's slow
- pentium4|pentium4m|prescott|nocona)
- cpuflags="-march=$cpu"
- enable cmov
- disable fast_cmov
+ *)
+ cpuflags="-mcpu=$cpu"
;;
esac
-elif enabled sparc; then
+elif enabled alpha; then
- case $cpu in
- cypress|f93[04]|tsc701|sparcl*|supersparc|hypersparc|niagara|v[789])
- cpuflags="-mcpu=$cpu"
- disable vis
- ;;
- ultrasparc*|niagara[234])
- cpuflags="-mcpu=$cpu"
- ;;
- esac
+ cpuflags="-mcpu=$cpu"
elif enabled arm; then
+ check_arm_arch() {
+ check_cpp_condition stddef.h \
+ "defined __ARM_ARCH_${1}__ || defined __TARGET_ARCH_${2:-$1}" \
+ $cpuflags
+ }
+
+ probe_arm_arch() {
+ if check_arm_arch 4; then echo armv4;
+ elif check_arm_arch 4T; then echo armv4t;
+ elif check_arm_arch 5; then echo armv5;
+ elif check_arm_arch 5E; then echo armv5e;
+ elif check_arm_arch 5T; then echo armv5t;
+ elif check_arm_arch 5TE; then echo armv5te;
+ elif check_arm_arch 5TEJ; then echo armv5te;
+ elif check_arm_arch 6; then echo armv6;
+ elif check_arm_arch 6J; then echo armv6j;
+ elif check_arm_arch 6K; then echo armv6k;
+ elif check_arm_arch 6Z; then echo armv6z;
+ elif check_arm_arch 6ZK; then echo armv6zk;
+ elif check_arm_arch 6T2; then echo armv6t2;
+ elif check_arm_arch 7; then echo armv7;
+ elif check_arm_arch 7A 7_A; then echo armv7-a;
+ elif check_arm_arch 7R 7_R; then echo armv7-r;
+ elif check_arm_arch 7M 7_M; then echo armv7-m;
+ elif check_arm_arch 7EM 7E_M; then echo armv7-m;
+ elif check_arm_arch 8A 8_A; then echo armv8-a;
+ fi
+ }
+
+ [ "$cpu" = generic ] && cpu=$(probe_arm_arch)
+
case $cpu in
armv*)
cpuflags="-march=$cpu"
arm11*) subarch=armv6 ;;
arm[79]*e*|arm9[24]6*|arm96*|arm102[26]) subarch=armv5te ;;
armv4*|arm7*|arm9[24]*) subarch=armv4 ;;
+ *) subarch=$(probe_arm_arch) ;;
esac
;;
esac
-elif enabled alpha; then
+ case "$subarch" in
+ armv5t*) enable fast_clz ;;
+ armv[6-8]*) enable fast_clz fast_unaligned ;;
+ esac
- cpuflags="-mcpu=$cpu"
+elif enabled avr32; then
+
+ case $cpu in
+ ap7[02]0[0-2])
+ subarch="avr32_ap"
+ cpuflags="-mpart=$cpu"
+ ;;
+ ap)
+ subarch="avr32_ap"
+ cpuflags="-march=$cpu"
+ ;;
+ uc3[ab]*)
+ subarch="avr32_uc"
+ cpuflags="-mcpu=$cpu"
+ ;;
+ uc)
+ subarch="avr32_uc"
+ cpuflags="-march=$cpu"
+ ;;
+ esac
elif enabled bfin; then
;;
esac
-elif enabled avr32; then
+elif enabled ppc; then
- case $cpu in
- ap7[02]0[0-2])
- subarch="avr32_ap"
- cpuflags="-mpart=$cpu"
+ case $(tolower $cpu) in
+ 601|ppc601|powerpc601)
+ cpuflags="-mcpu=601"
+ disable altivec
;;
- ap)
- subarch="avr32_ap"
- cpuflags="-march=$cpu"
+ 603*|ppc603*|powerpc603*)
+ cpuflags="-mcpu=603"
+ disable altivec
;;
- uc3[ab]*)
- subarch="avr32_uc"
+ 604*|ppc604*|powerpc604*)
+ cpuflags="-mcpu=604"
+ disable altivec
+ ;;
+ g3|75*|ppc75*|powerpc75*)
+ cpuflags="-mcpu=750"
+ disable altivec
+ ;;
+ g4|745*|ppc745*|powerpc745*)
+ cpuflags="-mcpu=7450"
+ ;;
+ 74*|ppc74*|powerpc74*)
+ cpuflags="-mcpu=7400"
+ ;;
+ g5|970|ppc970|powerpc970)
+ cpuflags="-mcpu=970"
+ ;;
+ power[3-7]*)
cpuflags="-mcpu=$cpu"
;;
- uc)
- subarch="avr32_uc"
- cpuflags="-march=$cpu"
+ cell)
+ cpuflags="-mcpu=cell"
+ enable ldbrx
+ ;;
+ e500mc)
+ cpuflags="-mcpu=e500mc"
+ disable altivec
+ ;;
+ e500v2)
+ cpuflags="-mcpu=8548 -mhard-float -mfloat-gprs=double"
+ disable altivec
+ ;;
+ e500)
+ cpuflags="-mcpu=8540 -mhard-float"
+ disable altivec
;;
esac
-elif enabled aarch64; then
+elif enabled sparc; then
case $cpu in
- armv*)
- cpuflags="-march=$cpu"
+ cypress|f93[04]|tsc701|sparcl*|supersparc|hypersparc|niagara|v[789])
+ cpuflags="-mcpu=$cpu"
+ disable vis
;;
- *)
+ ultrasparc*|niagara[234])
cpuflags="-mcpu=$cpu"
;;
esac
+elif enabled x86; then
+
+ case $cpu in
+ i[345]86|pentium)
+ cpuflags="-march=$cpu"
+ disable mmx
+ ;;
+ # targets that do NOT support conditional mov (cmov)
+ pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3)
+ cpuflags="-march=$cpu"
+ disable cmov
+ ;;
+ # targets that do support conditional mov (cmov)
+ i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64*|k8*|opteron*|athlon-fx|core2|corei7*|amdfam10|barcelona|atom|bdver*)
+ cpuflags="-march=$cpu"
+ enable cmov
+ enable fast_cmov
+ ;;
+ # targets that do support conditional mov but on which it's slow
+ pentium4|pentium4m|prescott|nocona)
+ cpuflags="-march=$cpu"
+ enable cmov
+ disable fast_cmov
+ ;;
+ esac
+
fi
-add_cflags $cpuflags
-add_asflags $cpuflags
+if [ "$cpu" != generic ]; then
+ add_cflags $cpuflags
+ add_asflags $cpuflags
+fi
# compiler sanity check
check_exec <<EOF
;;
ppc)
check_64bit ppc ppc64 'sizeof(void *) > 4'
+ spic=$shared
;;
sparc)
check_64bit sparc sparc64 'sizeof(void *) > 4'
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
dlltool="${cross_prefix}dlltool"
if check_cmd lib.exe -list; then
- SLIB_EXTRA_CMD='-lib.exe /machine:$(LIBTARGET) /def:$$(@:$(SLIBSUF)=.def) /out:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)'
+ SLIB_EXTRA_CMD=-'sed -e "s/ @[^ ]*//" $$(@:$(SLIBSUF)=.orig.def) > $$(@:$(SLIBSUF)=.def); lib.exe /machine:$(LIBTARGET) /def:$$(@:$(SLIBSUF)=.def) /out:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)'
if enabled x86_64; then
LIBTARGET=x64
fi
elif check_cmd $dlltool --version; then
- SLIB_EXTRA_CMD=-'$(DLLTOOL) -m $(LIBTARGET) -d $$(@:$(SLIBSUF)=.def) -l $(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib) -D $(SLIBNAME_WITH_MAJOR)'
+ SLIB_EXTRA_CMD=-'sed -e "s/ @[^ ]*//" $$(@:$(SLIBSUF)=.orig.def) > $$(@:$(SLIBSUF)=.def); $(DLLTOOL) -m $(LIBTARGET) -d $$(@:$(SLIBSUF)=.def) -l $(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib) -D $(SLIBNAME_WITH_MAJOR)'
fi
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS=
SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)'
SLIB_INSTALL_EXTRA_LIB='lib$(SLIBNAME:$(SLIBSUF)=.dll.a) $(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.def)'
- SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.def) -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base'
+ SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.orig.def) -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base'
objformat="win32"
ranlib=:
enable dos_paths
elif enabled arm; then
+ check_cpp_condition stddef.h "defined __thumb__" && check_cc <<EOF && enable_weak thumb
+float func(float a, float b){ return a+b; }
+EOF
+
enabled thumb && check_cflags -mthumb || check_cflags -marm
nogas=die
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)'
if enabled asm; then
as=${gas:=$as}
- check_inline_asm gnu_as '".macro m n\n\\n:.int 0\n.endm\nm x"' ||
+ check_as <<EOF && enable gnu_as || \
$nogas "GNU assembler not found, install gas-preprocessor"
+.macro m n
+\n: .int 0
+.endm
+m x
+EOF
fi
check_ldflags -Wl,--as-needed
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
# Solaris has nanosleep in -lrt, OpenSolaris no longer needs that
check_func nanosleep || { check_func nanosleep -lrt && add_extralibs -lrt; }
+check_func access
check_func clock_gettime || { check_func clock_gettime -lrt && add_extralibs -lrt; }
check_func fcntl
check_func fork
check_func_headers windows.h GetProcessTimes
check_func_headers windows.h GetSystemTimeAsFileTime
check_func_headers windows.h MapViewOfFile
+check_func_headers windows.h SetConsoleTextAttribute
check_func_headers windows.h Sleep
check_func_headers windows.h VirtualAlloc
check_func_headers glob.h glob
fi
if ! disabled w32threads && ! enabled pthreads; then
- check_func _beginthreadex && enable w32threads
+ check_func_headers "windows.h process.h" _beginthreadex && enable w32threads
fi
# check for some common methods of building with pthread support
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 mips; then
EOF
get_version(){
- lcname=$1
+ lcname=lib${1}
name=$(toupper $lcname)
file=$source_path/$lcname/version.h
eval $(awk "/#define ${name}_VERSION_M/ { print \$2 \"=\" \$3 }" "$file")
get_version_old LIBPOSTPROC libpostproc/version.h
-get_version libavcodec
-get_version libavdevice
-get_version libavfilter
-get_version libavformat
-get_version libavresample
-get_version libavutil
-get_version libswresample
-get_version libswscale
+map 'get_version $v' $LIBRARY_LIST
cat > $TMPH <<EOF
/* Automatically generated by configure - do not modify! */
libavfilter_pc_deps="libavutil = $LIBAVUTIL_VERSION"
enabled libavfilter_deps_avcodec && prepend libavfilter_pc_deps "libavcodec = $LIBAVCODEC_VERSION,"
enabled libavfilter_deps_avformat && prepend libavfilter_pc_deps "libavformat = $LIBAVFORMAT_VERSION,"
+enabled libavfilter_deps_avresample && prepend libavfilter_pc_deps "libavresample = $LIBAVRESAMPLE_VERSION,"
enabled libavfilter_deps_swscale && prepend libavfilter_pc_deps "libswscale = $LIBSWSCALE_VERSION,"
enabled libavfilter_deps_swresample && prepend libavfilter_pc_deps "libswresample = $LIBSWRESAMPLE_VERSION,"
enabled libavfilter_deps_postproc && prepend libavfilter_pc_deps "libpostproc = $LIBPOSTPROC_VERSION,"
pkgconfig_generate libpostproc "FFmpeg postprocessing library" "$LIBPOSTPROC_VERSION" "" "libavutil = $LIBAVUTIL_VERSION"
pkgconfig_generate libavresample "Libav audio resampling library" "$LIBAVRESAMPLE_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION"
pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "$LIBM" "libavutil = $LIBAVUTIL_VERSION"
-pkgconfig_generate libswresample "FFmpeg audio rescaling library" "$LIBSWRESAMPLE_VERSION" "$LIBM" "libavutil = $LIBAVUTIL_VERSION"
+pkgconfig_generate libswresample "FFmpeg audio resampling library" "$LIBSWRESAMPLE_VERSION" "$LIBM" "libavutil = $LIBAVUTIL_VERSION"
fix_ffmpeg_remote(){
git_remote_from=$1