On 01.12.2016 01:34, Michael Niedermayer wrote: > On Thu, Dec 01, 2016 at 12:22:50AM +0100, Andreas Cadhalpun wrote: >> @@ -6381,6 +6410,11 @@ for thread in $THREADS_LIST; do >> fi >> done >> >> +# Check if requested libraries were found. >> +for lib in $AUTODETECT_LIBS; do >> + requested $lib && ! enabled $lib && die "ERROR: $lib requested but not >> found"; >> +done > > This must be after check_deps as that can disable vaapi
I agree, but... > unless i miss something ...it is already after check_deps. ;) > also in the same light i think things like: > > enabled vaapi && > check_lib va/va.h vaInitialize -lva || > disable vaapi > > should disable vaapi through having a entry in vaapi_deps= ... There is already va_va_h in vaapi_deps and I'm not sure, what else you'd like to have there. However, it seems independent of this patch. > And then check_deps should check for requested when disabling things > that way it should be possible to print why something is being disabled > If that works that extra information should be quite usefull More information never hurts, so I added some specific error messages in check_deps. > also off topic but this can eventually be extended to cover more > things than just these libs Possibly. > actually i wanted to cleanup configure and that stuff but > its one of these things that kept sliding down on my todo .. That's probably because as long as configure works a cleanup isn't really important... On 01.12.2016 09:48, Carl Eugen Hoyos wrote: > Needs a Changelog Added, updated patch is attached. > and a NEWS entry. As in "put the Changelog entry on the website"? Fine for me if you think that'd be useful. > Have you tested the patch? Of course, and I made sure that the newly added functionality actually works, however I can't possibly test all combinations of configure options in all sorts of environments for regressions, so help in testing e.g. the more exotic ones would be welcome. > It was tried before and the result were different regressions iirc. Can you provide links to previous attempts and their regressions so that I can make sure they don't happen with my patch? Best regards, Andreas
>From 68a5545becacd8c3c9d26b16e2ce9aa236e66d6b Mon Sep 17 00:00:00 2001 From: Andreas Cadhalpun <andreas.cadhal...@googlemail.com> Date: Wed, 30 Nov 2016 23:50:17 +0100 Subject: [PATCH 3/3] configure: fail if autodetect-libraries are requested but not found Signed-off-by: Andreas Cadhalpun <andreas.cadhal...@googlemail.com> --- Changelog | 1 + configure | 78 +++++++++++++++++++++++++++++++++++++++++++++------------------ 2 files changed, 57 insertions(+), 22 deletions(-) diff --git a/Changelog b/Changelog index 71c9273..21d7ed4 100644 --- a/Changelog +++ b/Changelog @@ -6,6 +6,7 @@ version <next>: - add internal ebur128 library, remove external libebur128 dependency - Pro-MPEG CoP #3-R2 FEC protocol - premultiply video filter +- configure now fails if autodetect-libraries are requested but not found version 3.2: - libopenmpt demuxer diff --git a/configure b/configure index c0f31a7..2747694 100755 --- a/configure +++ b/configure @@ -597,6 +597,13 @@ popvar(){ done } +request(){ + for var in $*; do + eval ${var}_requested=yes + eval $var= + done +} + enable(){ set_all yes $* } @@ -653,6 +660,11 @@ enable_deep_weak(){ done } +requested(){ + test "${1#!}" = "$1" && op='=' || op=!= + eval test "x\$${1#!}_requested" $op "xyes" +} + enabled(){ test "${1#!}" = "$1" && op='=' || op=!= eval test "x\$${1#!}" $op "xyes" @@ -724,9 +736,9 @@ do_check_deps(){ [ -n "$dep_ifa" ] && { enabled_all $dep_ifa && enable_weak $cfg; } [ -n "$dep_ifn" ] && { enabled_any $dep_ifn && enable_weak $cfg; } - enabled_all $dep_all || disable $cfg - enabled_any $dep_any || disable $cfg - disabled_any $dep_sel && disable $cfg + enabled_all $dep_all || { disable $cfg && requested $cfg && die "ERROR: $cfg requested, but not all dependencies are satisfied: $dep_all"; } + enabled_any $dep_any || { disable $cfg && requested $cfg && die "ERROR: $cfg requested, but not any dependency is satisfied: $dep_any"; } + disabled_any $dep_sel && { disable $cfg && requested $cfg && die "ERROR: $cfg requested, but some selected dependency is unsatisfied: $dep_sel"; } if enabled $cfg; then enable_deep $dep_sel @@ -1481,10 +1493,25 @@ EXAMPLE_LIST=" transcode_aac_example transcoding_example " +EXTERNAL_AUTODETECT_LIBRARY_LIST=" + bzlib + iconv + libxcb + libxcb_shm + libxcb_shape + libxcb_xfixes + lzma + schannel + sdl + sdl2 + securetransport + xlib + zlib +" EXTERNAL_LIBRARY_LIST=" + $EXTERNAL_AUTODETECT_LIBRARY_LIST avisynth - bzlib chromaprint crystalhd decklink @@ -1492,7 +1519,6 @@ EXTERNAL_LIBRARY_LIST=" gcrypt gmp gnutls - iconv jni ladspa libass @@ -1545,42 +1571,26 @@ EXTERNAL_LIBRARY_LIST=" libx264 libx265 libxavs - libxcb - libxcb_shm - libxcb_shape - libxcb_xfixes libxvid libzimg libzmq libzvbi - lzma mediacodec netcdf openal opencl opengl openssl - schannel - sdl - sdl2 - securetransport videotoolbox x11grab - xlib - zlib " - -HWACCEL_LIBRARY_LIST=" +HWACCEL_AUTODETECT_LIBRARY_LIST=" audiotoolbox cuda cuvid d3d11va dxva2 - libmfx - libnpp - mmal nvenc - omx vaapi vda vdpau @@ -1588,6 +1598,14 @@ HWACCEL_LIBRARY_LIST=" xvmc " +HWACCEL_LIBRARY_LIST=" + $HWACCEL_AUTODETECT_LIBRARY_LIST + libmfx + libnpp + mmal + omx +" + DOCUMENT_LIST=" doc htmlpages @@ -1684,6 +1702,12 @@ ATOMICS_LIST=" atomics_win32 " +AUTODETECT_LIBS=" + $EXTERNAL_AUTODETECT_LIBRARY_LIST + $HWACCEL_AUTODETECT_LIBRARY_LIST + $THREADS_LIST +" + ARCH_LIST=" aarch64 alpha @@ -3482,6 +3506,11 @@ for e in $env; do eval "export $e" done +# Mark specifically enabled, but normally autodetected libraries as requested. +for lib in $AUTODETECT_LIBS; do + enabled $lib && request $lib +done + # Enable platform codecs by default. # Enable hwaccels by default. for lib in audiotoolbox d3d11va dxva2 vaapi vda vdpau videotoolbox_hwaccel xvmc xlib \ @@ -6379,6 +6408,11 @@ for thread in $THREADS_LIST; do fi done +# Check if requested libraries were found. +for lib in $AUTODETECT_LIBS; do + requested $lib && ! enabled $lib && die "ERROR: $lib requested but not found"; +done + enabled zlib && add_cppflags -DZLIB_CONST # conditional library dependencies, in linking order -- 2.10.2
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel