On Thu, Nov 24, 2016 at 07:38:11PM +0100, Janne Grunau wrote:
> On 2016-11-24 17:24:01 +0100, Diego Biurrun wrote:
> > ---
> >
> > This works as advertised.
> >
> > Issues:
> >
> > - Maybe keeping _extralibs as suffix is better than _lbs, dunno.
> > - Possibly I should investigate Janne's idea of using the function
> > name as variable name instead of adding a library name parameter
> > to things like check_lib().
> > - The case statement in check_deps that adds the flags to the right
> > component is ugly. I don't have a better idea yet, but I was also
> > busy getting the rest of the patch to work at all.
> > Janne?
> >
> > --- a/configure
> > +++ b/configure
> > @@ -650,8 +650,31 @@ check_deps(){
> >
> > for cfg in $allopts; do
> > enabled $cfg || continue
> > - eval dep_extralibs="\$${cfg}_extralibs"
> > - test -n "$dep_extralibs" && add_extralibs $dep_extralibs
> > + eval dep_lbs="\$${cfg}_lbs"
> > + for lib in $dep_lbs; do
> > + eval append dep_libs "\$${lib}"
> > + done
> > + if test -n "$dep_libs"; then
> > + case $cfg in
> > + *coder|*parser|*bsf|*hwaccel)
> > + add_extralibs_lib avcodec $dep_libs ;;
> > + *muxer|*protocol)
> > + add_extralibs_lib avformat $dep_libs ;;
> > + *filter)
> > + add_extralibs_lib avfilter $dep_libs ;;
> > + *indev|*outdev)
> > + add_extralibs_lib avdevice $dep_libs ;;
> > + avutil)
> > + add_extralibs_lib avutil $dep_libs ;;
> > + avconv)
> > + add_extralibs_lib avconv $dep_libs ;;
> > + avplay)
> > + add_extralibs_lib avplay $dep_libs ;;
> > + avprobe)
> > + add_extralibs_lib avprobe $dep_libs ;;
> > + esac
> > + unset dep_libs
> > + fi
>
> Since we already have nice separated lists for all this it's probably
> nicer to add the extralibs separately after check_deps()
>
> set_component_extralibs(){
> linkunit=$1
> shift 1
> for cfg in $@; do
> enabled $cfg || continue
> eval dep_lbs="\$${cfg}_lbs"
> for lib in $dep_lbs; do
> eval append dep_libs "\$${lib}"
> done
> if test -n "$dep_libs"; then
> add_extralibs_lib $linkunit $dep_libs
> fi
> done
> }
>
> set_component_extralibs avcodec $BSF_LIST $DECODER_LIST ...
>
> proof of concept, see disable_components() how to get all component
> lists for a given library and integrate it into the loop below
>
> for linkunit in $LIBRARY_LIST $PROGRAM_LIST; do
> set_component_extralibs $linkunit $linkunit
> done
I owe you a few beers or a box of chocolate :)
Diego
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel