Web lists-archives.com

Re: [Mingw-users] [Allegro] Unable to achieve a successful build on Windows

On Feb 6, 2017 3:15 PM, "Sergio NNX" <sfhacker@xxxxxxxxxxx> wrote:


Is this your first post about this project 'Allegro'? Have you tried the binaries from the official website?

Have you also tried MSVC?


From: DAVENPORT, MARC <mdavenport@xxxxxxx>
Sent: Monday, 6 February 2017 9:30 PM
To: MinGW Users List
Subject: [Mingw-users] sal.h, DXSDK, and MinGW

I'm currently trying to compile Allegro 5 with MinGW gcc and the June 2010 DXSDK. I'm having several problems. The first is when compiling dsound.cpp, an allegro source file. It fails to compile because dsound.h includes sal.h, which doesn't exist in MinGW. The second is when trying to compile the XInput driver for allegro. It fails because xinput.h expects __in and __out function attributes to be defined.

My third issue is that MinGW seems to have some kind of minimal set of DirectX headers and libraries included (it looks like DX9 is there). Should I be using these instead? I don't see libd3dx9.a but that may be a Vista only extension. I think that is optional for one of the allegro examples.

My question is, what can or what should I do about all this? I just tried building allegro configured to use MinGW's DX and it fails to compile because dinput.h is missing. Direct Input is mandatory to build Allegro 5 on Windows. libdinput.a is included but the header is not for some reason.

I hope someone can offer me some insight on this. I really have no desire to move to MSYS2 and MinGW64 unless I have no other choice, but they work to build Allegro 5 without issues and I'm running out of options.

Thank you for whatever help you can offer, I appreciate it.


Hello Sergio, this is not the first time I have brought up DirectX support in MinGW with regards to Allegro 5. The official builds of A5 are built with MSYS2 and MinGW64. As for MSVC support the only official binaries are for MSVS 2015. There is also a Nuget package for MSVS 2015. I build unofficial binaries for Allegro 5 as new releases come out and I know many people use them. I'm trying to keep the vanilla MinGW port alive since that is my preferred compiler. It's my way of giving back to the community.

The trouble is that the DXSDK, Allegro's dx9mgw.zip, and the standard DirectX that comes with MinGW all have problems of their own. At this point each is deficient in its own regard.

The DXSDK lacks sal.h if not other headers as well.

dx9mgw.zip is incompatible with official DirectX runtimes and lacks necessary DLLs.

MinGW's DirectX lacks at least dinput.h.

So it seems my options are to get sal.h implemented in MinGW, to use MSYS2 headers and libs for DirectX, or to finish implementing DirectX for vanilla MinGW.

So I don't really know where to go from here until some MinGW devs can take a look at the situation and assess the options.

Here is my original post. No one has replied so far.

On 12/9/2016 I wrote :


I am writing to enquire what the best way to get support for DX applications in MinGW is. I'm aware of the DXSDK (both the legacy version from June 2010, and the newer versions shipped with the Windows SDK). However, this is a massive download (June 2010 requires 571MB packed!) which I don't have space for.

Is there some kind of way to get a minimalist version of the DXSDK that will work for DX9? Allegro offers dx9mgw.zip but it's outdated, lacks necessary dlls and doesn't play nice with system installations of the DX runtime (at least on my Win10 machine).

I believe libtool will allow me to create *.a archives of MS DX dlls and def files, but I don't know which ones I need (don't know which headers would be required either).

I know MSYS2 and mingw-w64 package their own versions of DX, and DX applications from Allegro work with them, but Allegro applications built with vanilla MinGW gcc 5.3.0 and dx9mgw.zip from Allegro do not. I am trying to remedy this.

The general feeling I get is that people want to drop support for MInGW and I want to make sure this doesn't happen.

What options do I have? Where can I find a working minimalist version of the DXSDK (v9 or later) that works with MinGW? Am I forced to create my own? I'm under the impression that's not legal somehow.

Advice and options welcome.

Marc Davenport

Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
MinGW-users mailing list

This list observes the Etiquette found at 
We ask that you be polite and do the same.  Disregard for the list etiquette may cause your account to be moderated.

You may change your MinGW Account Options or unsubscribe at:
Also: mailto:mingw-users-request@xxxxxxxxxxxxxxxxxxxxx?subject=unsubscribe