[FFmpeg-devel] [PATCH] configure: support MSYS2

James Almer jamrial at gmail.com
Sun Jan 25 19:44:30 CET 2015

On 25/01/15 2:47 PM, Hendrik Leppkes wrote:
> On Sun, Jan 25, 2015 at 6:43 PM, Michael Niedermayer <michaelni at gmx.at>
> wrote:
>> On Sun, Jan 25, 2015 at 05:02:58PM +0100, Reimar Döffinger wrote:
>>> On Sun, Jan 25, 2015 at 03:59:12PM +0100, Hendrik Leppkes wrote:
>>>> On Sun, Jan 25, 2015 at 3:26 PM, Hendrik Leppkes <h.leppkes at gmail.com>
>>>> wrote:
>>>>> MSYS2 uses a system name of "MSYS_NT-6.3" instead of
>> "MINGW32_NT-6.3" in
>>>>> MSYS1.
>>>> Apparently this isn't quite correct, and you have to start MSYS2 with a
>>>> special batch file that overrides this for you.
>>>> Just running bash.exe or sh.exe from a DOS prompt results in this and
>> is
>>>> apparently considered "wrong usage".
>>> I don't really see anything wrong with this, however I'd rather have
>>> a compiler-based detection.
>>> I.e. if the compiler define __MINGW32__ set the host to mingw (unless
>>> set explicitly).
>>> This should also address my other annoyance that you have to specify
>>> --host when it really should be obvious that you are cross-compiling to
>>> MINGW for example.
>> i dont use "--host*" for my mingw building
>> just -cc='ccache x86_64-w64-mingw32-gcc' --arch=x86_64 --target-os=mingw32
>> --cross-prefix=x86_64-w64-mingw32- --target_exec=wine
>> the rest i use should not be mingw specific
> I've never had to specify --host things either, the only problem with MSYS2
> I ran into was that you still need to specify --target-os unless you use
> their fancy batch file, and that tripped me up a bit.
> Never a problem with old MSYS and my own gcc build.

As you said the old MSYS uses "MINGW32" as part of the system name, while the 
normal batch file for MSYS2 sets it as "MSYS".
If you instead use the x86 batch file it will be set as "MINGW32", or "MINGW64" 
if you use the x86_64 batch file.

The different batch files exist not just to change the output of uname, but also 
to change the PATH environment variable too include either /mingw32 or /mingw64 
respectively. Their package manager offers a complete toolchain and precompiled 
libraries, which get installed in one of the two folders above.
Ideally speaking, if you don't want to use their gcc toolchains, you should 
install your own in some other folder (/usr/local, /opt, etc) and use the normal 
batch file.

configure currently only checks for mingw32 since that's what MSYS sets, so it 
needs to be updated to also check for mingw64 and msys, so this patch is IMO 
correct but incomplete as its missing the check for the former.

> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

More information about the ffmpeg-devel mailing list