mirror of https://git.ffmpeg.org/ffmpeg.git
configure: Improve requesting specific features
Before this patch trying to enable only https by issuing --disable-protocols --enable-protocol=https --enable-gnutls does not enable https, and --disable-all --enable-protocols does not enable libavformat and the protocols component. Now the default-enabled options are set after the explicitly disabled/enabled options are evaluated. If an explicitly enabled option cannot be enabled configure will fail printing an error message.
This commit is contained in:
parent
e9175634ec
commit
8e7bea6dc6
|
@ -487,8 +487,15 @@ enable(){
|
||||||
set_all yes $*
|
set_all yes $*
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_requested() {
|
||||||
|
for var; do
|
||||||
|
eval test "x\$${var#!}_requested" = "xyes" && die "${var#*_} ${var/_*} cannot be enabled"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
disable(){
|
disable(){
|
||||||
set_all no $*
|
set_all no $*
|
||||||
|
check_requested $*
|
||||||
}
|
}
|
||||||
|
|
||||||
enable_weak(){
|
enable_weak(){
|
||||||
|
@ -514,7 +521,7 @@ disable_safe(){
|
||||||
do_enable_deep(){
|
do_enable_deep(){
|
||||||
for var; do
|
for var; do
|
||||||
enabled $var && continue
|
enabled $var && continue
|
||||||
eval sel="\$${var}_select"
|
eval sel="\$${var}_select\ \$${var}_select_any"
|
||||||
eval sgs="\$${var}_suggest"
|
eval sgs="\$${var}_suggest"
|
||||||
pushvar var sgs
|
pushvar var sgs
|
||||||
enable_deep $sel
|
enable_deep $sel
|
||||||
|
@ -539,6 +546,13 @@ enable_deep_weak(){
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
request(){
|
||||||
|
for var; do
|
||||||
|
enable ${var}_requested
|
||||||
|
done
|
||||||
|
enable_deep $*
|
||||||
|
}
|
||||||
|
|
||||||
enabled(){
|
enabled(){
|
||||||
test "${1#!}" = "$1" && op== || op=!=
|
test "${1#!}" = "$1" && op== || op=!=
|
||||||
eval test "x\$${1#!}" $op "xyes"
|
eval test "x\$${1#!}" $op "xyes"
|
||||||
|
@ -598,7 +612,7 @@ do_check_deps(){
|
||||||
append allopts $cfg
|
append allopts $cfg
|
||||||
|
|
||||||
eval dep_all="\$${cfg}_deps"
|
eval dep_all="\$${cfg}_deps"
|
||||||
eval dep_any="\$${cfg}_deps_any"
|
eval dep_any="\$${cfg}_deps_any\ \$${cfg}_select_any"
|
||||||
eval dep_sel="\$${cfg}_select"
|
eval dep_sel="\$${cfg}_select"
|
||||||
eval dep_sgs="\$${cfg}_suggest"
|
eval dep_sgs="\$${cfg}_suggest"
|
||||||
eval dep_ifa="\$${cfg}_if"
|
eval dep_ifa="\$${cfg}_if"
|
||||||
|
@ -2328,7 +2342,7 @@ tls_gnutls_protocol_deps="gnutls"
|
||||||
tls_gnutls_protocol_select="tcp_protocol"
|
tls_gnutls_protocol_select="tcp_protocol"
|
||||||
tls_openssl_protocol_deps="openssl !tls_gnutls_protocol"
|
tls_openssl_protocol_deps="openssl !tls_gnutls_protocol"
|
||||||
tls_openssl_protocol_select="tcp_protocol"
|
tls_openssl_protocol_select="tcp_protocol"
|
||||||
tls_protocol_deps_any="tls_gnutls_protocol tls_openssl_protocol"
|
tls_protocol_select_any="tls_gnutls_protocol tls_openssl_protocol"
|
||||||
udp_protocol_select="network"
|
udp_protocol_select="network"
|
||||||
unix_protocol_deps="sys_un_h"
|
unix_protocol_deps="sys_un_h"
|
||||||
unix_protocol_select="network"
|
unix_protocol_select="network"
|
||||||
|
@ -2529,12 +2543,6 @@ ALL_COMPONENTS="
|
||||||
$PROTOCOL_LIST
|
$PROTOCOL_LIST
|
||||||
"
|
"
|
||||||
|
|
||||||
for n in $COMPONENT_LIST; do
|
|
||||||
v=$(toupper ${n%s})_LIST
|
|
||||||
eval enable \$$v
|
|
||||||
eval ${n}_if_any="\$$v"
|
|
||||||
done
|
|
||||||
|
|
||||||
enable $ARCH_EXT_LIST
|
enable $ARCH_EXT_LIST
|
||||||
|
|
||||||
die_unknown(){
|
die_unknown(){
|
||||||
|
@ -2597,10 +2605,10 @@ for opt do
|
||||||
disable $PROGRAM_LIST
|
disable $PROGRAM_LIST
|
||||||
;;
|
;;
|
||||||
--disable-everything)
|
--disable-everything)
|
||||||
map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
|
map 'eval disable \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
|
||||||
;;
|
;;
|
||||||
--disable-all)
|
--disable-all)
|
||||||
map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
|
map 'eval disable \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
|
||||||
disable $LIBRARY_LIST $PROGRAM_LIST doc
|
disable $LIBRARY_LIST $PROGRAM_LIST doc
|
||||||
;;
|
;;
|
||||||
--enable-random|--disable-random)
|
--enable-random|--disable-random)
|
||||||
|
@ -2616,6 +2624,7 @@ for opt do
|
||||||
is_in "${thing}s" $COMPONENT_LIST || die_unknown "$opt"
|
is_in "${thing}s" $COMPONENT_LIST || die_unknown "$opt"
|
||||||
eval list=\$$(toupper $thing)_LIST
|
eval list=\$$(toupper $thing)_LIST
|
||||||
name=$(echo "${optval}" | sed "s/,/_${thing}|/g")_${thing}
|
name=$(echo "${optval}" | sed "s/,/_${thing}|/g")_${thing}
|
||||||
|
test $action = enable && action="request"
|
||||||
$action $(filter "$name" $list)
|
$action $(filter "$name" $list)
|
||||||
;;
|
;;
|
||||||
--enable-avserver|--disable-avserver*)
|
--enable-avserver|--disable-avserver*)
|
||||||
|
@ -2625,7 +2634,6 @@ for opt do
|
||||||
--enable-?*|--disable-?*)
|
--enable-?*|--disable-?*)
|
||||||
eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g')
|
eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g')
|
||||||
if is_in $option $COMPONENT_LIST; then
|
if is_in $option $COMPONENT_LIST; then
|
||||||
test $action = disable && action=unset
|
|
||||||
eval $action \$$(toupper ${option%s})_LIST
|
eval $action \$$(toupper ${option%s})_LIST
|
||||||
elif is_in $option $CMDLINE_SELECT; then
|
elif is_in $option $CMDLINE_SELECT; then
|
||||||
$action $option
|
$action $option
|
||||||
|
@ -2666,7 +2674,7 @@ disabled logging && logfile=/dev/null
|
||||||
# is disabled, see AVCODEC_LIST and following _LIST variables.
|
# is disabled, see AVCODEC_LIST and following _LIST variables.
|
||||||
|
|
||||||
disable_components(){
|
disable_components(){
|
||||||
disabled ${1} && disable $(
|
disabled ${1} && disable_weak $(
|
||||||
eval components="\$$(toupper ${1})_COMPONENTS"
|
eval components="\$$(toupper ${1})_COMPONENTS"
|
||||||
map 'eval echo \${$(toupper ${v%s})_LIST}' $components
|
map 'eval echo \${$(toupper ${v%s})_LIST}' $components
|
||||||
)
|
)
|
||||||
|
@ -2674,6 +2682,23 @@ disable_components(){
|
||||||
|
|
||||||
map 'disable_components $v' $LIBRARY_LIST
|
map 'disable_components $v' $LIBRARY_LIST
|
||||||
|
|
||||||
|
# Mark components that had not been enabled/disabled explicitly
|
||||||
|
# as enabled
|
||||||
|
|
||||||
|
for n in $COMPONENT_LIST; do
|
||||||
|
v=$(toupper ${n%s})_LIST
|
||||||
|
eval enable_weak \$$v
|
||||||
|
eval ${n}_if_any="\$$v"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Make so that disabled libraries are enabled if a component
|
||||||
|
# of them is requested
|
||||||
|
|
||||||
|
for n in $LIBRARY_LIST; do
|
||||||
|
v=$(toupper ${n})_COMPONENTS
|
||||||
|
eval ${n}_if_any="\$$v"
|
||||||
|
done
|
||||||
|
|
||||||
echo "# $0 $LIBAV_CONFIGURATION" > $logfile
|
echo "# $0 $LIBAV_CONFIGURATION" > $logfile
|
||||||
set >> $logfile
|
set >> $logfile
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue