| @@ -655,6 +655,15 @@ prepend(){ · 654 unmodified lines |
| 655 | 655 | eval "$var=\"$* \$$var\"" |
| 656 | 656 | } |
| 657 | 657 | |
| 658 | +unique(){ |
| 659 | + var=$1 |
| 660 | + uniq_list="" |
| 661 | + for tok in $(eval echo \$$var); do |
| 662 | + uniq_list="$(filter_out $tok $uniq_list) $tok" |
| 663 | + done |
| 664 | + eval "$var=\"${uniq_list}\"" |
| 665 | +} |
| 666 | + |
| 658 | 667 | add_cppflags(){ |
| 659 | 668 | append CPPFLAGS "$@" |
| 660 | 669 | } |
| @@ -2110,11 +2119,11 @@ metadata_example_deps="avformat avutil" · 1449 unmodified lines |
| 2110 | 2119 | output_example_deps="avcodec avformat avutil swscale" |
| 2111 | 2120 | transcode_aac_example_deps="avcodec avformat avresample" |
| 2112 | 2121 | |
| 2113 | | −# libraries |
| 2122 | +# libraries, in linking order |
| 2114 | 2123 | avcodec_deps="avutil" |
| 2115 | | −avdevice_deps="avutil avcodec avformat" |
| 2124 | +avdevice_deps="avformat avcodec avutil" |
| 2116 | 2125 | avfilter_deps="avutil" |
| 2117 | | −avformat_deps="avutil avcodec" |
| 2126 | +avformat_deps="avcodec avutil" |
| 2118 | 2127 | avresample_deps="avutil" |
| 2119 | 2128 | swscale_deps="avutil" |
| 2120 | 2129 | |
| @@ -4373,6 +4382,20 @@ for thread in $THREADS_LIST; do · 2252 unmodified lines |
| 4373 | 4382 | fi |
| 4374 | 4383 | done |
| 4375 | 4384 | |
| 4385 | +# conditional library dependencies, in linking order |
| 4386 | +enabled movie_filter && prepend avfilter_deps "avformat avcodec" |
| 4387 | +enabled resample_filter && prepend avfilter_deps "avresample" |
| 4388 | +enabled scale_filter && prepend avfilter_deps "swscale" |
| 4389 | + |
| 4390 | +expand_deps(){ |
| 4391 | + lib_deps=${1}_deps |
| 4392 | + eval "deps=\$$lib_deps" |
| 4393 | + append $lib_deps $(map 'eval echo \$${v}_deps' $deps) |
| 4394 | + unique $lib_deps |
| 4395 | +} |
| 4396 | + |
| 4397 | +map 'expand_deps $v' $LIBRARY_LIST |
| 4398 | + |
| 4376 | 4399 | echo "install prefix $prefix" |
| 4377 | 4400 | echo "source path $source_path" |
| 4378 | 4401 | echo "C compiler $cc" |
| @@ -4578,6 +4601,8 @@ get_version(){ · 199 unmodified lines |
| 4578 | 4601 | |
| 4579 | 4602 | map 'get_version $v' $LIBRARY_LIST |
| 4580 | 4603 | |
| 4604 | +map 'eval echo "FFLIBS-${v}=\$${v}_deps" >> config.mak' $LIBRARY_LIST |
| 4605 | + |
| 4581 | 4606 | print_program_libs(){ |
| 4582 | 4607 | eval "program_libs=\$${1}_libs" |
| 4583 | 4608 | eval echo "LIBS-${1}=${program_libs}" >> config.mak |
| @@ -4639,13 +4664,18 @@ test -n "$WARNINGS" && printf "\n$WARNINGS" · 55 unmodified lines |
| 4639 | 4664 | |
| 4640 | 4665 | # build pkg-config files |
| 4641 | 4666 | |
| 4667 | +lib_version(){ |
| 4668 | + eval printf "\"lib${1} >= \$LIB$(toupper ${1})_VERSION, \"" |
| 4669 | +} |
| 4670 | + |
| 4642 | 4671 | pkgconfig_generate(){ |
| 4643 | 4672 | name=$1 |
| 4644 | 4673 | shortname=${name#lib}${build_suffix} |
| 4645 | 4674 | comment=$2 |
| 4646 | 4675 | version=$3 |
| 4647 | 4676 | libs=$4 |
| 4648 | | − requires=$5 |
| 4677 | + requires=$(map 'lib_version $v' $(eval echo \$${name#lib}_deps)) |
| 4678 | + requires=${requires%, } |
| 4649 | 4679 | enabled ${name#lib} || return 0 |
| 4650 | 4680 | mkdir -p $name |
| 4651 | 4681 | cat <<EOF > $name/$name.pc |
| @@ -4680,15 +4710,10 @@ Cflags: -I\${includedir} · 28 unmodified lines |
| 4680 | 4710 | EOF |
| 4681 | 4711 | } |
| 4682 | 4712 | |
| 4683 | | −lavfi_libs="libavutil = $LIBAVUTIL_VERSION" |
| 4684 | | −enabled movie_filter && prepend lavfi_libs "libavformat >= $LIBAVFORMAT_VERSION, libavcodec >= $LIBAVCODEC_VERSION," |
| 4685 | | −enabled resample_filter && prepend lavfi_libs "libavresample >= $LIBAVRESAMPLE_VERSION," |
| 4686 | | −enabled scale_filter && prepend lavfi_libs "libswscale >= $LIBSWSCALE_VERSION," |
| 4687 | | − |
| 4688 | 4713 | pkgconfig_generate libavutil "Libav utility library" "$LIBAVUTIL_VERSION" "$LIBM" |
| 4689 | | −pkgconfig_generate libavcodec "Libav codec library" "$LIBAVCODEC_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION" |
| 4690 | | −pkgconfig_generate libavformat "Libav container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec = $LIBAVCODEC_VERSION" |
| 4691 | | −pkgconfig_generate libavdevice "Libav device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "libavformat = $LIBAVFORMAT_VERSION" |
| 4692 | | −pkgconfig_generate libavfilter "Libav video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" "$lavfi_libs" |
| 4693 | | −pkgconfig_generate libavresample "Libav audio resampling library" "$LIBAVRESAMPLE_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION" |
| 4694 | | −pkgconfig_generate libswscale "Libav image rescaling library" "$LIBSWSCALE_VERSION" "$LIBM" "libavutil = $LIBAVUTIL_VERSION" |
| 4714 | +pkgconfig_generate libavcodec "Libav codec library" "$LIBAVCODEC_VERSION" "$extralibs" |
| 4715 | +pkgconfig_generate libavformat "Libav container format library" "$LIBAVFORMAT_VERSION" "$extralibs" |
| 4716 | +pkgconfig_generate libavdevice "Libav device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" |
| 4717 | +pkgconfig_generate libavfilter "Libav video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" |
| 4718 | +pkgconfig_generate libavresample "Libav audio resampling library" "$LIBAVRESAMPLE_VERSION" "$extralibs" |
| 4719 | +pkgconfig_generate libswscale "Libav image rescaling library" "$LIBSWSCALE_VERSION" "$LIBM" |