<div dir="ltr">Hi Subbu,<br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 3, 2018 at 10:35 AM, K K Subbu <span dir="ltr"><<a href="mailto:kksubbu.ml@gmail.com" target="_blank">kksubbu.ml@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span class="gmail-"><br>
On Tuesday 03 April 2018 08:54 PM, Eliot Miranda wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
If we don't intend to support all the 100+ variants of<br>
GNU/UNIX/Linux out there but only a handful, then manual makefiles<br>
are sufficient.<br>
</blockquote>
<br>
It's not that we do of do not intend, it's that we simply cannot<br>
afford to and it is not relevant to our current needs.  We instead<br>
need to support a much smaller number of operating systems well,<br>
namely Linux and maybe FreeBSD, although I don't see much energy<br>
there.  We could keep the old build system for those that want to<br>
build their own vm on something exotic (although I'd still argue that<br>
they would do as well working with conventional makefiles).  But it<br>
is no longer fit for purpose in the continuous integration context we<br>
now inhabit.<br>
</blockquote>
<br></span>
Valid point. The CI pipeline requires a different approach.<span class="gmail-"><br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<br>
GNU Make is available on GNU/Linux/Mac/Win so we could create a<br>
single top level Makefile for all three platform builds and let the<br>
configure handle other ports.<br>
</blockquote>
<br>
Having modified Andreas' makefiles for windows, and having written<br>
the makefiles for the Mac build I can say that a common top level<br>
makefiles is not a good idea.  It would be even more of a mess of<br>
ifdefs.  But certain not following the way nudes and Mac OS schemes<br>
is sensible.  The important thing is to get rid of the extremely hard<br>
to modify, slow autoconf based system used for Linux builds.<br>
</blockquote>
<br></span>
A top level Makefile does not exclude platform-specific Makefiles, nor should it attempt a cross-platform build by itself.<br>
<br>
The purpose of top level Makefile is general help, handle version tags, possible products and variants etc. It should delegate the actual build to platform-specific make. Similar to how we use OSProcess as a facade over OSUnixProcess etc.<br></blockquote><div><br></div><div>Ah, thanks.  That makes sense.  Cool. </div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<br>
In fact, I am making one for my own use. Once it stabilizes, I will offer a PR.<br></blockquote><div><br></div><div>Looking forward to it; thanks.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<br>
The downsides to spreading Makefiles into build dirs is explosion of directories under version control and duplication of code. It also means that I cannot mount build on tmpfs/ramfs. Keeping Makefile templates under platform/win32/.. and copying them to build/ as needed will simplify version control and avoid duplicate code.<br>
<br>
Regards .. Subbu<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</div></div>