<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Guys... why does Windows suck to install Allegro?</title>
		<link>http://www.allegro.cc/forums/view/618030</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 28 Jan 2020 23:06:27 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m having trouble installing Allegro for Windows.  It&#39;s been a long time and I&#39;ve become complacent with Mac and how easily it works.</p><p>I&#39;d like to build from source and I feel there&#39;s gotta be some secret trick I&#39;m missing involving the dependencies.</p><p>Doesn&#39;t Windows have package managers now (Chocolatey?) that can easily be used to install all the dependencies?  Are there scripts, for example?  I&#39;ve downloaded a few different installers already (MinGW, CMake, DirectX, VS Build Tools, etc), I&#39;m not convinced these are all going into the right place on this system, and to be honest am really bummed how many of these are trying to install search bar plugins, or asking for email addresses, and so forth.</p><p>Is there a package manager way to build?  Something terminal only?  Something that sill allows me to compile allegro from source?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Tue, 21 Jan 2020 09:55:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
For Visual Studio I use VCPkg (<a href="https://github.com/microsoft/vcpkg">https://github.com/microsoft/vcpkg</a>) and for MSys2 it ships with pacman which also allows for easy installation.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ks)</author>
		<pubDate>Tue, 21 Jan 2020 10:47:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>And for VC++ or whatever you have Edgar Reynaldo&#39;s monolith builds
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Tue, 21 Jan 2020 17:10:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Windoze is eazy.</p><p>Just use my binaries for MinGW-W64.</p><p>See my build guide, there is a link at the bottom which you can find here :</p><p><a href="http://members.allegro.cc/EdgarReynaldo/BuildA5.html">http://members.allegro.cc/EdgarReynaldo/BuildA5.html</a></p><p><a href="https://bitbucket.org/bugsquasher/unofficial-allegro-5-binaries/downloads/">https://bitbucket.org/bugsquasher/unofficial-allegro-5-binaries/downloads/</a></p><p><b>EDIT</b><br />Really, it&#39;s not that hard. You have 3 options.</p><p>1) MSVS MSVC++2017+ and Nuget.</p><p>2) MSYS2 and pacman.</p><p>3) MinGW-W64 and binaries</p><p>4) Build it yourself
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 21 Jan 2020 23:09:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>nuget? <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /><img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /><img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /><img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /><img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /><img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /><img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" />?? <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /><img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /><img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" />?????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ??????????????????????? ???????????????????????
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Wed, 22 Jan 2020 01:56:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeßßßß
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 22 Jan 2020 07:38:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Here&#39;s the Nuget link, for completeness (MSVC only): <a href="https://www.nuget.org/packages/Allegro">https://www.nuget.org/packages/Allegro</a> and just the dependencies <a href="https://www.nuget.org/packages/AllegroDeps">https://www.nuget.org/packages/AllegroDeps</a>. It&#39;s possible to grab the dependencies manually if you want to compile Allegro from source, e.g. see these lines here: <a href="https://github.com/liballeg/allegro5/blob/master/appveyor.yml#L8">https://github.com/liballeg/allegro5/blob/master/appveyor.yml#L8</a>.</p><p>MSYS2 comes with all the dependencies (and Allegro itself), it&#39;s what I use for my day-to-day Windows development.</p><p>The official MSYS2 packages <a href="https://github.com/liballeg/allegro5/releases/tag/5.2.5.0">https://github.com/liballeg/allegro5/releases/tag/5.2.5.0</a> and <a href="https://github.com/liballeg/allegro_winpkg/releases/tag/1.9.0">https://github.com/liballeg/allegro_winpkg/releases/tag/1.9.0</a> also can be used.</p><p>If you&#39;re really adventurous, you can regenerate the official packages by following directions here: <a href="https://github.com/liballeg/allegro_winpkg/tree/master/universal">https://github.com/liballeg/allegro_winpkg/tree/master/universal</a>, that compiles both the dependencies and Allegro from source.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Wed, 22 Jan 2020 10:57:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hell, I ever did find a allegro5 package for arm on alpine linux. Just had to apk add and voilà.</p><p>Do not take the install process as an excuse for your coding laziness, Katko ;-)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Wed, 22 Jan 2020 15:10:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/618030/1044682#target">SiegeLord</a> said:</div><div class="quote"><p> MSYS2 comes with all the dependencies (and Allegro itself), it&#39;s what I use for my day-to-day Windows development.</p></div></div><p>That sounds like something I could go for. <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />  I wouldn&#39;t mind learning/emulating the tooling you use.</p><p>OK, I have installed MSYS2 from the <a href="https://www.msys2.org/">one-click installer</a>.  I have several questions just about it in general:</p><ul><li><p>I had previously installed the &quot;git shell&quot;.  It looks essentially like the same thing. What&#39;s the difference between MSYS2 and &quot;git shell&quot;&#39;s MINGW64?
</p></li><li><p>It appears like binaries (git, cmake) that I had installed into &quot;git shell&quot; are not in MSYS2.  I&#39;m a little confused about how the filesystem (and installed binaries) are laid out between this, terminal, and PowerShell, and just like Windows PATH for example.  What&#39;s the difference between these filesystems?  Is there a crossover?</p></li></ul><p>I&#39;ve gone the route of using pacman to install the packages git, make, cmake, and mingw-w64-x86_64-toolchain (with all).</p><ul><li><p>When I installed git with `pacman -Sy git`, I was able to `git --version`. But after installing `pacman -Sy mingw-w64-x86_64-toolchain`, then `gcc --version` is not found.  What&#39;s the difference between the two install procedures?
</p></li></ul></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Sat, 25 Jan 2020 08:05:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I would suggest somebody that is familiar with fetching and building all dependencies and then building Allegro against it to script the process so that anybody can automate it easily just by invoking the script (and if they want to dig into the details they can review the script).</p><p>It is a lot of <span class="cuss"><span>bull<span class="cuss"><span>shit</span></span></span></span> to fetch individual packages, learn their intricacies, build them all independently (after recursively fetching THEIR dependencies), and then link them all into an Allegro build. This should be something that a script (e.g., <span class="source-code">.cmd</span> or <span class="source-code">.ps1</span>) can capture so that it&#39;s easy for any newbie to review and modify... It&#39;s 2020 ffs.</p><p>That&#39;s basically what package managers are anyway. Scripts to fetch dependencies, except they use their own store to prevent the upstream from changing and breaking the scripts, and most cache the binaries instead of rebuilding from source to speed things up...</p><p>That&#39;s how I live my day to day life. Any tedious process that I have to repeat gets scripted so that I can trivially repeat it. Maintaining the scripts is generally not that much work, especially compared to the manual process.</p><p>(I&#39;d be happy to script it myself, but I&#39;m not happy to figure out all of the things that need to be done... That would need to be described to me in detail with exact URLs and commands (which is basically the scripting part anyway)...)</p><p><b>Append:</b></p><p>Mark, I think that some MSYS packages (and binaries) are named just like the package you installed, something like msys-blah-blah-x86_64-gcc instead of just gcc... There are a few different ways you could figure out the name of the binaries. Searching the PATH or file system, finding a command to list the files in the package, etc.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (bamccaig)</author>
		<pubDate>Sat, 25 Jan 2020 08:26:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/618030/1044726#target">bamccaig</a> said:</div><div class="quote"><p> This should be something that a script (e.g., .cmd or .ps1) can capture so that it&#39;s easy for any newbie to review and modify... It&#39;s 2020 ffs</p></div></div><p>I feel the same way.</p><p>OK, so far this is what I have:</p><p>After installing and opening MSYS (and updating it with <tt>sudo pacman -Syu</tt>) this would be the start of the script I would use (but it gets stuck at the end):</p><pre class="terminal scroll">pacman -S mingw-w64-x86_64-gcc --noconfirm
pacman -S mingw-w64-x86_64-gdb --noconfirm
pacman -S make --noconfirm
pacman -S mingw-w64-x86_64-cmake --noconfirm
pacman -S git --noconfirm
pacman -S mingw-w64-x86_64-pkg-config --noconfirm
pacman -S mingw-w64-x86_64-freetype --noconfirm
pacman -S mingw-w64-x86_64-libpng --noconfirm
pacman -S mingw-w64-x86_64-libjpeg-turbo --noconfirm
pacman -S mingw-w64-x86_64-libvorbis --noconfirm
pacman -S mingw-w64-x86_64-flac --noconfirm
pacman -S mingw-w64-x86_64-physfs --noconfirm
pacman -S mingw-w64-x86_64-dumb --noconfirm
pacman -S mingw-w64-x86_64-libtheora --noconfirm
export PATH=$PATH:/mingw64/bin
mkdir -p Repos
cd Repos
git clone https://github.com/liballeg/allegro5.git
cd allegro5
mkdir build_allegro_monolith
cd build_allegro_monolith
cmake G&quot;MSYS Makefiles&quot; -D&quot;CMAKE_SYSTEM_PREFIX_PATH:PATH=/mingw64/x86_64-w64-mingw32&quot; -DWANT_MONOLITH=on ..</pre><p>

It does well, but then gets stuck at the last cmake step, not being able to find X11 development tools.  The terminal output is below, I&#39;ve attached the <tt>CMakeError.log</tt>.</p><pre class="terminal scroll">-- Guessed MinGW directory: /mingw64
-- Allowing GCC/Clang to use SSE instructions
-- Performing Test ALLEGRO_HAVE_PROCFS_ARGCV
-- Performing Test ALLEGRO_HAVE_PROCFS_ARGCV - Failed
-- Performing Test ALLEGRO_HAVE_SV_PROCFS_H
-- Performing Test ALLEGRO_HAVE_SV_PROCFS_H - Failed
Using OpenGL
-- Could NOT find X11 (missing: X11_X11_LIB)
CMake Error at CMakeLists.txt:707 (message):
  X11 not found.  You may need to install X11 development libraries.


-- Configuring incomplete, errors occurred!
See also &quot;/home/Mark/Repos/allegro5/build_allegro_monolith/CMakeFiles/CMakeOutput.log&quot;.
See also &quot;/home/Mark/Repos/allegro5/build_allegro_monolith/CMakeFiles/CMakeError.log&quot;.</pre><p>

I tried looking for a pacman package of x11 development tools, but <tt>pacman -Ss x11</tt> or a web search didn&#39;t reveal anything.</p><p>---</p><p>BTW, I had found this, it was helpful: <a href="https://www.allegro.cc/forums/thread/616828">https://www.allegro.cc/forums/thread/616828</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Sat, 25 Jan 2020 19:11:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Use &quot;MinGW Makefiles&quot;, not MSYS. That&#39;s different.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 25 Jan 2020 20:20:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>MSYS Makefiles is correct, I don&#39;t understand why it&#39;s complaining about for X11. I&#39;d nuke the build directory and try again. I just tested a fresh install of MSYS and I didn&#39;t get that error.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/618030/1044727#target">Mark Oates</a> said:</div><div class="quote"><p> I feel the same way.</p></div></div><p>FWIW the <span class="source-code">allegro_winpkg</span> repository I linked to has such scripts (otherwise packaging Allegro would be a pain <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Sun, 26 Jan 2020 00:17:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/618030/1044685#target">GullRaDriel</a> said:</div><div class="quote"><p>
Do not take the install process as an excuse for your coding laziness, Katko ;-)
</p></div></div><p>
I know you&#39;re kidding but I always use Allegro, DAllegro, on Linux, compiled from source.</p><p>Visual Studio is nice for like C# stuff. But man, it&#39;s one fat momma.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Sun, 26 Jan 2020 00:57:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/618030/1044724#target">Mark Oates</a> said:</div><div class="quote"><p>When I installed git with `pacman -Sy git`, I was able to `git --version`. But after installing `pacman -Sy mingw-w64-x86_64-toolchain`, then `gcc --version` is not found. What&#39;s the difference between the two install procedures? 
</p></div></div><p>
It&#39;s been a while but IIRC your PATH depends on which variant of the shell you open (use the mingw-w64 one).<br />You can find more information on <a href="https://github.com/msys2/msys2/wiki/MSYS2-introduction">this page</a>, e.g.
</p><div class="quote_container"><div class="title"><a href="https://github.com/msys2/msys2/wiki/MSYS2-introduction">MSYS-2 introduction</a> said:</div><div class="quote"><p>
MSYS2 consists of three subsystems and their corresponding package repositories, msys2, mingw32, and mingw64. <br />[...]<br />Each of the subsystems provides its own native (i.e. target=host) compiler toolchain, in msys2-devel, mingw-w64-i686-toolchain, and mingw-w64-x86_64-toolchain. <br />[...]<br />Every subsystem has an associated &quot;shell&quot;, which is essentially a set of environment variables that allow the subsystems to co-operate properly. These shells can be invoked using launchers in the MSYS2 installation directory or using the shortcuts in the Windows Start menu.</p></div></div><p>

I have no idea about the X11 related error. </p><p>Btw., now when I think about it, the question which makefiles to use might actually depend on the variant of make you install. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Polybios)</author>
		<pubDate>Sun, 26 Jan 2020 15:31:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Go ahead and use MSYS Makefiles if you want your program to depend on the MSYS runtime....
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 26 Jan 2020 20:09:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/618030/1044741#target">Edgar Reynaldo</a> said:</div><div class="quote"><p>
Go ahead and use MSYS Makefiles if you want your program to depend on the MSYS runtime....
</p></div></div><p>

Go ahead and use Cmake Makefiles if you want your program to depend on the Cmake runtime....
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Mon, 27 Jan 2020 07:40:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Uhm, no ChrisKatko. Not the same. You&#39;ll have to run your program within MSYS, not as a windows executable.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 27 Jan 2020 09:17:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok, working through this problem has made me realize I&#39;m actually trying to solve several problem cases simultaneously, so I&#39;ve scaled back to just the simplest one. The problem cases are:</p><p>1. Update my build system to also work on Windows, which requires building with Allegro.<br />2. Compile Allegro from source, so that I can contribute to the codebase and test on Windows.<br />3. Compile Allegro from source, so that I can build the latest master without having to wait for releases or dll builds.<br />4. Modify my build system so that programs and source can be built and tested real-time in multiple build cases (clang, gcc, cl) and platforms (win, mac).</p><p>After I scope it down to just #1, I&#39;ve been able to just go with <tt>pacman install allegro</tt> which is enough.  Constraining myself to MSYS2 (in MINGW64) has helped a lot, and at this point there&#39;s enough to digest and work through.</p><p>I honestly really like the system at this point.  It&#39;s <u>very</u> similar to what I work with on my mac, and it&#39;s not hard to slowly &quot;port over&quot; my <span class="source-code">.zshrc</span> to <span class="source-code">.bashrc</span>.  Each of the dependencies has some quirks so far in Windows, there&#39;s some quirks with ncurses, vim plugins, paths, and some little tools I use like rerun.  But it&#39;s definitely working as I sort all those out.</p><p>I feel like Pickle Rick slowing getting back into mobility.</p><p>Eventually, I&#39;ll get to the point where I compile Allegro from source and achieve #2, 3, and 4, but for now definitely the number of simultaneous problems to work through is diminishing, and I&#39;ve gotten an Allegro window to run. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Tue, 28 Jan 2020 21:31:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>&lt;blatant spot&gt;<br />binaries would have been faster....<br />&lt;/spot&gt;
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 28 Jan 2020 23:06:27 +0000</pubDate>
	</item>
</rss>
