[mythtv] Build system issues with FFmpeg 5.1
Peter Bennett
pb.mythtv at gmail.com
Fri Aug 26 14:47:24 UTC 2022
On 8/21/22 21:50, Scott Theisen wrote:
> On 8/21/22 21:43, Scott Theisen wrote:
>> Hello all,
>>
>> When I copy https://github.com/ulmus-scott/FFmpeg/tree/release5.1
>> into MythTV and constify some pointers in libmyth/audio to satisfy
>> -fpermissive, I get the following error:
>>
>> ```
>> make[2]: *** No rule to make target
>> '../../external/FFmpeg/libswresample/libmythswresample.so.', needed
>> by 'libmyth-33.so.33.0.0'. Stop.
>> ```
>>
>> It should be `libmythswresample.so.4`. In
>> `mythtv/libs/libmyth/Makefile`, libmythavutil.so.57 has its version
>> number, but libmythavcodec also is missing its version number.
>>
>> I suspect this is due to FFmpeg splitting their version macros across
>> two files, version_major.h and version.h. libavutil has an empty
>> version_major.h, only using version.h.
>>
>> The problem appears to be in configure in get_version() on line 7749,
>> but I have no idea how to fix it. (Concatenating both files before
>> processing with awk?)
>>
>> Any suggestions are greatly appreciated.
>>
>
> This appears to work, unless someone has a better suggestion:
>
> ```
> diff --git a/mythtv/configure b/mythtv/configure
> index 69c0a8f4c6..4fcc627a9a 100755
> --- a/mythtv/configure
> +++ b/mythtv/configure
> @@ -7750,7 +7750,8 @@ get_version(){
> lcname=lib${1}
> name=$(toupper $lcname)
> file=$source_path/external/FFmpeg/$lcname/version.h
> - eval $(awk "/#define ${name}_VERSION_M/ { print \$2 \"=\" \$3 }"
> "$file")
> + file_major=$source_path/external/FFmpeg/$lcname/version_major.h
> + eval $(awk "/#define ${name}_VERSION_M/ { print \$2 \"=\" \$3 }"
> "$file_major" "$file")
> enabled raise_major && eval
> ${name}_VERSION_MAJOR=$((${name}_VERSION_MAJOR+100))
> eval
> ${name}_VERSION=\$${name}_VERSION_MAJOR.\$${name}_VERSION_MINOR.\$${name}_VERSION_MICRO
> eval echo "${lcname}_VERSION=\$${name}_VERSION" >> $TMPMAK
> ```
>
>
I suggest add comments above the awk stuff, explaining what the purpose
is, as you did above, that is is needed because of the two version
header files.
Peter
More information about the mythtv-dev
mailing list