diff options
author | Luca Barbato <lu_zero@gentoo.org> | 2016-01-17 07:58:53 +0100 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2016-01-21 01:04:24 +0100 |
commit | 8e7bea6dc6ac5b21484774a026847bec0771ab62 (patch) | |
tree | 5e3515e94b6dc968ffaac816671a13e2a85e941d | |
parent | e9175634ec96e36873929637491189150cfce9ec (diff) | |
download | ffmpeg-8e7bea6dc6ac5b21484774a026847bec0771ab62.tar.gz |
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.
-rwxr-xr-x | configure | 51 |
1 files changed, 38 insertions, 13 deletions
@@ -487,8 +487,15 @@ enable(){ set_all yes $* } +check_requested() { + for var; do + eval test "x\$${var#!}_requested" = "xyes" && die "${var#*_} ${var/_*} cannot be enabled" + done +} + disable(){ set_all no $* + check_requested $* } enable_weak(){ @@ -514,7 +521,7 @@ disable_safe(){ do_enable_deep(){ for var; do enabled $var && continue - eval sel="\$${var}_select" + eval sel="\$${var}_select\ \$${var}_select_any" eval sgs="\$${var}_suggest" pushvar var sgs enable_deep $sel @@ -539,6 +546,13 @@ enable_deep_weak(){ done } +request(){ + for var; do + enable ${var}_requested + done + enable_deep $* +} + enabled(){ test "${1#!}" = "$1" && op== || op=!= eval test "x\$${1#!}" $op "xyes" @@ -598,7 +612,7 @@ do_check_deps(){ append allopts $cfg 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_sgs="\$${cfg}_suggest" eval dep_ifa="\$${cfg}_if" @@ -2328,7 +2342,7 @@ tls_gnutls_protocol_deps="gnutls" tls_gnutls_protocol_select="tcp_protocol" tls_openssl_protocol_deps="openssl !tls_gnutls_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" unix_protocol_deps="sys_un_h" unix_protocol_select="network" @@ -2529,12 +2543,6 @@ ALL_COMPONENTS=" $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 die_unknown(){ @@ -2597,10 +2605,10 @@ for opt do disable $PROGRAM_LIST ;; --disable-everything) - map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST + map 'eval disable \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST ;; --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 ;; --enable-random|--disable-random) @@ -2616,6 +2624,7 @@ for opt do is_in "${thing}s" $COMPONENT_LIST || die_unknown "$opt" eval list=\$$(toupper $thing)_LIST name=$(echo "${optval}" | sed "s/,/_${thing}|/g")_${thing} + test $action = enable && action="request" $action $(filter "$name" $list) ;; --enable-avserver|--disable-avserver*) @@ -2625,7 +2634,6 @@ for opt do --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 @@ -2666,7 +2674,7 @@ disabled logging && logfile=/dev/null # is disabled, see AVCODEC_LIST and following _LIST variables. disable_components(){ - disabled ${1} && disable $( + disabled ${1} && disable_weak $( eval components="\$$(toupper ${1})_COMPONENTS" map 'eval echo \${$(toupper ${v%s})_LIST}' $components ) @@ -2674,6 +2682,23 @@ disable_components(){ 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 set >> $logfile |