Quantcast

sal.h, DXSDK, and MinGW

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

sal.h, DXSDK, and MinGW

DAVENPORT, MARC
Hello,

I'm currently trying to compile Allegro 5 with MinGW gcc 5.3.0.3 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.

Marc



------------------------------------------------------------------------------
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
[hidden email]

This list observes the Etiquette found at
http://www.mingw.org/Mailing_Lists.
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:
https://lists.sourceforge.net/lists/listinfo/mingw-users
Also: mailto:[hidden email]?subject=unsubscribe
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

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

DAVENPORT, MARC


On Feb 6, 2017 3:15 PM, "Sergio NNX" <[hidden email]> wrote:

Ciao.


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

Have you also tried MSVC?


Cheers.




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

I'm currently trying to compile Allegro 5 with MinGW gcc 5.3.0.3 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.

Marc



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 :

Hello,

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
[hidden email]

This list observes the Etiquette found at
http://www.mingw.org/Mailing_Lists.
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:
https://lists.sourceforge.net/lists/listinfo/mingw-users
Also: mailto:[hidden email]?subject=unsubscribe
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

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

Keith Marshall-3
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 07/02/17 00:00, DAVENPORT, MARC wrote:
> 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.

Yes.  Unfortunately, when Filip Navara contributed the DX API components
for MinGW, he neglected to provide <dinput.h>.  Since Filip is no longer
actively contributing to MinGW, someone else would need to step into the
breach, to complete his work.

> Direct Input is mandatory to build Allegro 5 on Windows. libdinput.a
> is included

That looks like an import library stub, exporting only:

  LIBRARY dinput.dll
  EXPORTS
  DirectInputCreateA@16
  DirectInputCreateEx@20
  DirectInputCreateW@16

(none of which appears to be documented any longer, on MSDN), with some
additional statically added content, (mostly unresolved symbols); I've
no idea how useful any of that might be, even if the header is provided.

There is also a libdinput8.a, again with limited content:

  LIBRARY dinput8.dll
  EXPORTS
  DirectInput8Create@20

> but the header is not for some reason.

That reason would be that no one has contributed it!  Free software is
heavily dependent on contributions from its user community, so if you
have a vested interest in making this work, then please step in and
offer your assistance.

- --
Regards,
Keith.

Public key available from keys.gnupg.net
Key fingerprint: C19E C018 1547 DE50 E1D4 8F53 C0AD 36C6 347E 5A3F
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.20 (GNU/Linux)

iQIcBAEBAgAGBQJYmjnzAAoJEMCtNsY0flo/HAgP/1GpyYgeagLPHGrJG4m2ZawU
1gGLoKytFy9FVsn6GrAEWFWr1BNvC2Xv/eyPk3gEhUz/gtmpxCQNJ6WB9us7Eqpq
NRxTj1B2LkTnbfyAZhYo7ZHH3VFsq+Z3mV/8SvHGnXvLi/D40QNvwLVUrDKB1DPA
MtR3SHblCcRbVxaAUaz68NOhwFW6FtS+RJwvdodiJ8AhU+hU+zdq3bN2VtA+tixI
bAyfkW4snvjFfqbF4dVukvHTSlUe7nW/zxIyvbRUHdwP8J0N12Oj/h3o9+6eQVxv
GRb8ujLV/BFD6k6677zxjeO3Omh8W4If6ljsXp4Yz/IZ5oltC6DyVHaPlR6wfbwp
FwxJmwFuvFeSxVV/HOMlG+QDqzEIIHSMM5AIj8oCja67zy3ip8xA52oYj9Jh5smE
G6WoZsepO+IUPEy99mC9xvVXHt9VSwYHerFJj4bQVY2nixMnNvbAz5HrcxHtuUUS
Mv/j3R4mvJKqDLyqX/SjCA65U9/6X5fx4pDMvhMOWk5Dfy23FgONRHTtfSHvTjiH
gOoJOC8r77clela5E4Fr7ZDEq9IhPyIjUKiLUFeRLAPLiVf3WQNjVWtes4GfF/d0
90MgOIQYGOs13KEMuyykM86jDXq17YzTzdiVcsoQEAT56PLDQG/YzDzvSy4kX4A3
3z7RqNGiJvlVDJV6owWK
=kJhj
-----END PGP SIGNATURE-----

------------------------------------------------------------------------------
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
[hidden email]

This list observes the Etiquette found at
http://www.mingw.org/Mailing_Lists.
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:
https://lists.sourceforge.net/lists/listinfo/mingw-users
Also: mailto:[hidden email]?subject=unsubscribe
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

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

Keith Marshall-3
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 07/02/17 21:19, Keith Marshall wrote:
> (mostly unresolved symbols)

And a (very) few defined public symbols, in read-only data sections.

- --
Regards,
Keith.

Public key available from keys.gnupg.net
Key fingerprint: C19E C018 1547 DE50 E1D4 8F53 C0AD 36C6 347E 5A3F
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.20 (GNU/Linux)

iQIcBAEBAgAGBQJYmj7wAAoJEMCtNsY0flo/BckP/i2h4B6ZQPTZ+OvbYo4mIcWr
Gq1CIHFy0SH9JGdYLUIYAW/bLY0bAQYzO/dn9LWw355pKwRhR6d3AjQDmcVZoeVi
cQZpuXxJuFso0dG/IKvQBUWDisj9DpcjP3D3fftVhL78UD/zMjy4TWWwT8SDNoqi
1S9fcxtY6h7Ak003mGCkgBsCXevyeLIKykq1ibcI0OcE0bo7Q08zL9MZ8mI/oJX1
tM7Xpst6L2Cc+MTWPgenDOjQHi2FtAhWIorCgfQYUc72IQvhKwo5JDEwa1OMhR78
GupuZgSqDL3Sle32DkRF2h7XtYkg3uUjUFgQk0iXeXyQw4SlQBgPxOAbkGwXtRgJ
KQWj2PDdZaY7yJ7IQN+7dMkFyfWZTwrZxFDXcIk/dJzYMEhQjBdf8R1D67Eb3LZD
mP8B+GZ2jxkGPgyXRFKXbu/5znLwvBW32CJodcHUeRsojKI111TKmfKnReULjDPW
Fn/FjW0oXStUo/gUtWGbuiSBfl4wdUe9Km8x+/ihwMhpEpbcZWAzamnp03uea+jf
V+D+Y2Le0OZ7d0hBVGvLrnskhBlicsB79daqA/psLdLWFxtaG/NV5NiFx4+MlPD8
na9KuaiWkG38wPeemClJGM1rDnOgg73ThYmAOzhitjK/6BRD+yi9RA1b+UVoC654
+h2nKGIs6DFufNUkLPjz
=nGMP
-----END PGP SIGNATURE-----

------------------------------------------------------------------------------
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
[hidden email]

This list observes the Etiquette found at
http://www.mingw.org/Mailing_Lists.
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:
https://lists.sourceforge.net/lists/listinfo/mingw-users
Also: mailto:[hidden email]?subject=unsubscribe
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

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

Teemu Nätkinniemi
In reply to this post by DAVENPORT, MARC

>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.


Nowadays Github has pretty much everything so I went fishing there and found these two projects that might be useful.

https://github.com/lifthrasiir/w32api-directx-standalone

https://github.com/gongminmin/UniversalDXSDK

------------------------------------------------------------------------------
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
[hidden email]

This list observes the Etiquette found at
http://www.mingw.org/Mailing_Lists.
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:
https://lists.sourceforge.net/lists/listinfo/mingw-users
Also: mailto:[hidden email]?subject=unsubscribe
Loading...