Allegro.cc - Online Community

Allegro.cc Forums » Allegro Development » A5, MinGW-W64, GCC8.1, binaries, and compile guide

This thread is locked; no one can reply to it. rss feed Print
A5, MinGW-W64, GCC8.1, binaries, and compile guide
Edgar Reynaldo
Member #8,592
May 2007
avatar

Update 06/14/2018 - I also made a binary package for Allegro 4.4.3. Get them below. ;)

Hello again fellow allegator(ette)s!

I've put together a new binary release of Allegro 5.2.4.1 using the new GCC 8.1 provided by MinGW-W64.

VVV Get them hot off the press here!!!111 VVV
---------------------------------------

First you need the compiler they were built with, which you can find here :

i686-8.1.0-release-posix-dwarf-rt_v6-rev0.7z

Here are the binaries for Allegro 5.2.4 :

Allegro524_mingw-w64-gcc81_posix_dwarf.7z

And here are the binaries for Allegro 4.4.3 :

Allegro443_mingw-w64-i686-gcc81_posix_dwarf.7z

The binaries include dynamic and debug static and shared monolithic versions of allegro 5, along with all the dependencies.

It includes all the example, test, and demo programs built in dynamic debugging mode.

It includes html and CHM docs. Get the CHM by itself here :

Allegro443.chm

Allegro524.chm.

Respectively, there are .bat files named RunA524Examples.bat and RunA443Examples.bat depending on the version you downloaded. If you run it, it will add the bin/dlls folder to the path and put you in the examples directory so you can easily run any example at will. It also sets up several environment variables named A5INCDIR, A5LNKDIR, and A5STATICLIBS for Allegro 5 and A4INCDIR, A4LNKDIR, and A4STATICLIBS for Allegro 4. Using them on the command line makes compiling much easier.

Don't forget to add mingw/bin to your path and then you can use the env vars in the following manner :

g++ -Wall -g -o test.exe -DALLEGRO_STATICLINK -I %A5INCDIR% test.cpp -L %A5LNKDIR% -lallegro_monolith-debug-static %A5STATICLIBS%

During my latest build of allegro, I documented the process, so it will be easier for anyone else who wants to build allegro on windows using mingw.

I put the guide up on my member website. You can find it here :

http://members.allegro.cc/EdgarReynaldo/BuildA5.html

NiteHackr
Member #2,229
April 2002
avatar

Nicely done Edgar! Thanks.

Edgar Reynaldo
Member #8,592
May 2007
avatar

Frank Drebin
Member #2,987
December 2002
avatar

Thanks Edgar!

I wanted to try Allegro 5 anyway so I'll give it a try within the next days... Will these files be added to the official resource page?

For me it is not clear if there is a 64-bit version of allegro 5 on allegro.cc or on liballeg.org available yet. When I saw these 4 precompiled binary files
{"name":"611482","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/8\/4\/84d351b3bbcd0dde73aed153631dda70.jpg","w":1216,"h":754,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/8\/4\/84d351b3bbcd0dde73aed153631dda70"}611482
I was wonderwing why all of them contain 'mingw32' in their name. This looks like all of them are using the 32-bit version of MinGW and thus will produce 32-bit binaries as well. Or what is the difference between these 4 files?

DanielH
Member #934
January 2001
avatar

I was wonderwing why all of them contain 'mingw32' in their name

Because they were compiled for the MingW32 compiler as stated in the first post. It's typical to name library files based on what architecture/compiler they are compiled for.

NiteHackr
Member #2,229
April 2002
avatar

What did you think of the compile guide

I honestly didn't look at it until now, but looks impressive! This is the sort of thing that is needed to help people.

Edgar Reynaldo
Member #8,592
May 2007
avatar

In the compile guide I mentioned it was 32 bit, but I didn't mention that above.

Building a 64 bit version should be just as simple if you replace the 32 bit compiler with a 64 bit one.

Frank Drebin
Member #2,987
December 2002
avatar

If the 'mingw32' in their names indicates that these 4 packages are built for the 32-bit version of mingw (2x dynamic and 2x static versions) what's the difference between 'allegro-i686-w64-mingw32-gcc-7.2.0-posix-dwarf-dynamic-5.2.4.1.zip' and 'allegro-x86_64-w64-mingw32-gcc-7.2.0-posix-seh-dynamic-5.2.4.1.zip' ?

Edgar Reynaldo
Member #8,592
May 2007
avatar

x86_64 indicates 64 bit binaries

The exception handling is different too.

SiegeLord
Member #7,827
October 2006
avatar

If the 'mingw32' in their names indicates that these 4 packages are built for the 32-bit version of mingw

No, that's not why. x86_64-w64-mingw32 is a target triple, consisting of 3 parts:

  1. Architecture - x86_64 or i686, for 64 and 32 bits

  2. Vendor - w64, because the official binaries use mingw-w64 for compilation.

  3. System - Mingw32, 32 means nothing.

"For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18
[SiegeLord's Abode][Codes]:[DAllegro5]:[RustAllegro]

Edgar Reynaldo
Member #8,592
May 2007
avatar

SiegeLord and I use different processes to build our binaries. SL, did you convert all the dep libs to CMakeLists.txt format?

As I mentioned in the compile guide, I had to use MSYS 1.0.11 to build ogg, vorbis, theora, and flac, which all compile flawlessly minus a bug in one of the theora examples.

Everything else provides a CMakeLists.txt build script for CMake. That's all I use. It's super simple once you get the hang of it, and cmake-gui makes configuring everything super simple, while still allowing you to make alterations on the command line if necessary. ENet has no install target, and they only build static libs, so I hacked their CMakeLists.txt to build dynamic libs too. All that is provided in my source pack.

Here are the versions used :
{"name":"611485","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/2\/7\/27b87424a2315d6e25157dcba1b2a609.png","w":691,"h":439,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/2\/7\/27b87424a2315d6e25157dcba1b2a609"}611485

EDIT
Can anyone give me some tips on a better layout for the compile guide? It's just a super simple html hack I put together. I didn't put it on the wiki b/c the wiki hates me. Thinks I'm a spammer, probably because of the page I put up to mirror Gideon Weems hall of shame, which was full of borked hyperlinks.

Frank Drebin
Member #2,987
December 2002
avatar

Thanks for the explanation SiegeLord! It was the 'mingw32' that confused me but as you mentioned the 32 means nothing and 'mingw-w64' is used for compilation actually. Now it all makes sense to me ;D

Edgar Reynaldo
Member #8,592
May 2007
avatar

Forgot to say, DUMB is in there too. Got it built from GIT finally. I suppose I should put the version I used in the source pack I provided....

EDIT 06/10/2018
I'll be posting a new binary distro of Allegro 4.4.3 here in the next few days. Bump for lock free sailing!

EDIT 06/14/2018
Look at the OP for the new Allegro 4.4.3 binaries!!!

Go to: