<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: The Quest for the Perfect Build System (Part 2)</title>
	<atom:link href="http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2/feed" rel="self" type="application/rss+xml" />
	<link>http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2</link>
	<description>Living the indie life</description>
	<lastBuildDate>Thu, 17 May 2012 17:38:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Gigi Kent</title>
		<link>http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2/comment-page-1#comment-242</link>
		<dc:creator>Gigi Kent</dc:creator>
		<pubDate>Tue, 08 Nov 2005 00:23:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.gamesfromwithin.dreamhosters.com/?p=336#comment-242</guid>
		<description>Visual Studio 2005 (just released) ships with a new version of VCBuild which supports parallel builds and has a whole new set of options.



This MSDN page lists some (but strangly, not all) of the command line options:

&lt;a href=&quot;http://msdn2.microsoft.com/en-us/library/cz553aa1&quot; rel=&quot;nofollow&quot;&gt;http://msdn2.microsoft.com/en-us/library/cz553aa1&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>Visual Studio 2005 (just released) ships with a new version of VCBuild which supports parallel builds and has a whole new set of options.</p>
<p>This MSDN page lists some (but strangly, not all) of the command line options:</p>
<p><a href="http://msdn2.microsoft.com/en-us/library/cz553aa1" rel="nofollow">http://msdn2.microsoft.com/en-us/library/cz553aa1</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: boklm</title>
		<link>http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2/comment-page-1#comment-241</link>
		<dc:creator>boklm</dc:creator>
		<pubDate>Wed, 02 Nov 2005 12:21:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.gamesfromwithin.dreamhosters.com/?p=336#comment-241</guid>
		<description>Two other interesting articles on the same subject :

&lt;a href=&quot;http://freshmeat.net/articles/view/1702/&quot; rel=&quot;nofollow&quot;&gt;http://freshmeat.net/articles/view/1702/&lt;/a&gt;

&lt;a href=&quot;http://freshmeat.net/articles/view/1715/&quot; rel=&quot;nofollow&quot;&gt;http://freshmeat.net/articles/view/1715/&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>Two other interesting articles on the same subject :</p>
<p><a href="http://freshmeat.net/articles/view/1702/" rel="nofollow">http://freshmeat.net/articles/view/1702/</a></p>
<p><a href="http://freshmeat.net/articles/view/1715/" rel="nofollow">http://freshmeat.net/articles/view/1715/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: boklm</title>
		<link>http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2/comment-page-1#comment-240</link>
		<dc:creator>boklm</dc:creator>
		<pubDate>Wed, 02 Nov 2005 12:18:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.gamesfromwithin.dreamhosters.com/?p=336#comment-240</guid>
		<description>&quot;Whatever you do, stay far, far away from BoostBuild and Scons. Their performance is simply so horrible there&#039;s no excuse to use them unless build times are of no importance to you at all.&quot;



Hey, you&#039;re talking only about performance. I don&#039;t think it&#039;s the only important factor when choosing a build system.

While SCons might be slower, it might still save you a lot of time :

- You don&#039;t have to write complexe makefiles, but instead can write much more simple SCons scripts.

- You don&#039;t waste time on a not-working build because some file was not recompiled while it should have been



SCons does a lot more than a simple Makefile. If use an external tools to add features like automatic implicit dependencies to you makefile, I&#039;m not sure SCons is much more slower.</description>
		<content:encoded><![CDATA[<p>&#8220;Whatever you do, stay far, far away from BoostBuild and Scons. Their performance is simply so horrible there&#8217;s no excuse to use them unless build times are of no importance to you at all.&#8221;</p>
<p>Hey, you&#8217;re talking only about performance. I don&#8217;t think it&#8217;s the only important factor when choosing a build system.</p>
<p>While SCons might be slower, it might still save you a lot of time :</p>
<p>- You don&#8217;t have to write complexe makefiles, but instead can write much more simple SCons scripts.</p>
<p>- You don&#8217;t waste time on a not-working build because some file was not recompiled while it should have been</p>
<p>SCons does a lot more than a simple Makefile. If use an external tools to add features like automatic implicit dependencies to you makefile, I&#8217;m not sure SCons is much more slower.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charl Fourie</title>
		<link>http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2/comment-page-1#comment-239</link>
		<dc:creator>Charl Fourie</dc:creator>
		<pubDate>Sat, 22 Oct 2005 19:56:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.gamesfromwithin.dreamhosters.com/?p=336#comment-239</guid>
		<description>Hi Noel



You might be interested in checking out the following url:



&lt;a href=&quot;http://www.martinfowler.com/articles/rake.html&quot; rel=&quot;nofollow&quot;&gt;http://www.martinfowler.com/articles/rake.html&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>Hi Noel</p>
<p>You might be interested in checking out the following url:</p>
<p><a href="http://www.martinfowler.com/articles/rake.html" rel="nofollow">http://www.martinfowler.com/articles/rake.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Noel Llopis</title>
		<link>http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2/comment-page-1#comment-238</link>
		<dc:creator>Noel Llopis</dc:creator>
		<pubDate>Tue, 27 Sep 2005 04:10:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.gamesfromwithin.dreamhosters.com/?p=336#comment-238</guid>
		<description>Barry, I updated the results section with timings of Scons with the MD5 checking turned off. Just like last time, it actually went slower. Hard to believe, I know. The script is there though, so feel free to run both and compare.</description>
		<content:encoded><![CDATA[<p>Barry, I updated the results section with timings of Scons with the MD5 checking turned off. Just like last time, it actually went slower. Hard to believe, I know. The script is there though, so feel free to run both and compare.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Noel Llopis</title>
		<link>http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2/comment-page-1#comment-237</link>
		<dc:creator>Noel Llopis</dc:creator>
		<pubDate>Tue, 27 Sep 2005 02:59:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.gamesfromwithin.dreamhosters.com/?p=336#comment-237</guid>
		<description>Jean,



When I said that about Make, I was thinking of a fairly clean division along the lines of just building the executable with Make, and leaving any other tasks such as zipping it up, creating install programs, copying it over the network, checking it/out of version control, etc in Nant. The Nant script would of course call the Make as part of its work.



I would see the Nant script being used primarely in the build server, and maybe by individual developers in the rare case they need to do some of those tasks by hand.</description>
		<content:encoded><![CDATA[<p>Jean,</p>
<p>When I said that about Make, I was thinking of a fairly clean division along the lines of just building the executable with Make, and leaving any other tasks such as zipping it up, creating install programs, copying it over the network, checking it/out of version control, etc in Nant. The Nant script would of course call the Make as part of its work.</p>
<p>I would see the Nant script being used primarely in the build server, and maybe by individual developers in the rare case they need to do some of those tasks by hand.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jean</title>
		<link>http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2/comment-page-1#comment-236</link>
		<dc:creator>Jean</dc:creator>
		<pubDate>Tue, 27 Sep 2005 02:11:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.gamesfromwithin.dreamhosters.com/?p=336#comment-236</guid>
		<description>Very interesting articles!!



I am planning a build system upgrade for my team.



I did not get the following statement:

&quot;You&#039;ll probably want to wrap Make in a more comprehensive build system (such as Ant) for your build server, packaging builds, etc. &quot;



Are you describing a design where you have 2 different build systems operating on the same code base?

How would you design such a system without a too high maintenance cost?

How would you teach your developers (let say a team of 10) to modify the source tree organization (add files, directories, etc) and keep the two systems in sync?



Okay, enough with the questions :) Thanks for the great work!</description>
		<content:encoded><![CDATA[<p>Very interesting articles!!</p>
<p>I am planning a build system upgrade for my team.</p>
<p>I did not get the following statement:</p>
<p>&#8220;You&#8217;ll probably want to wrap Make in a more comprehensive build system (such as Ant) for your build server, packaging builds, etc. &#8221;</p>
<p>Are you describing a design where you have 2 different build systems operating on the same code base?</p>
<p>How would you design such a system without a too high maintenance cost?</p>
<p>How would you teach your developers (let say a team of 10) to modify the source tree organization (add files, directories, etc) and keep the two systems in sync?</p>
<p>Okay, enough with the questions <img src='http://gamesfromwithin.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Thanks for the great work!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Barry</title>
		<link>http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2/comment-page-1#comment-235</link>
		<dc:creator>Barry</dc:creator>
		<pubDate>Mon, 26 Sep 2005 12:26:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.gamesfromwithin.dreamhosters.com/?p=336#comment-235</guid>
		<description>Noel,



I&#039;d like to see your SCons results using timestamps rather than md5 hashes for the files.  I suspect that would bring SCons times down a fair amount.



Cheers,



Barry.</description>
		<content:encoded><![CDATA[<p>Noel,</p>
<p>I&#8217;d like to see your SCons results using timestamps rather than md5 hashes for the files.  I suspect that would bring SCons times down a fair amount.</p>
<p>Cheers,</p>
<p>Barry.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Billy Zelsnack</title>
		<link>http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2/comment-page-1#comment-234</link>
		<dc:creator>Billy Zelsnack</dc:creator>
		<pubDate>Thu, 22 Sep 2005 07:46:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.gamesfromwithin.dreamhosters.com/?p=336#comment-234</guid>
		<description>I know you are going for quickest edit-compile-run times, but I think there are two competing things in cross-platform builds.



[1] making dependencies fast

[2] using the best available dev environment for a given platform.



I&#039;ll talk about [2] first.



I used to believe that the best idea for cross-platform development was to create some sort of master build script that kicked out builds for all of your various platforms.



Then the company I work at did just that. It was a nightmare to get up and running. It is mostly working now, but it is STILL under active development. It went from a small little side project to a very large ongoing project for this poor guy.



It would be awesome if it just worked, but there always ends up being little exceptions here an there. Soon your master build file ends up being a complex monster.



Here is what I currently believe:



You have platform specific code, so have platform specific builds!!



Yes it is more work to create and maintain a build for each platform, but as long as you follow two rules, it really is not bad.



1. No dead files allowed.

2. Platform specific code goes in its own directory.



The idea is basically to use a script for each build that generates the build using wildcards.



There are details along with a vc7 generator script in my blog. I&#039;ve since created a more elaborate vc71 script, if you want it, mail me.



&lt;a href=&quot;http://projectjanel.org/b2e_blogs/index.php?blog=2&amp;title=cross_platform_build_systems&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1&quot; rel=&quot;nofollow&quot;&gt;http://projectjanel.org/b2e_blogs/index.php?blog=2&amp;title=cross_platform_build_systems&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1&lt;/a&gt;



Back to [1]. Nothing I&#039;ve said goes against it. You just make the choice of the best dev environment for each and every platform. So if you want to have a vc6 AND vc7 builds for win32 because one of your guys refuses to switch, fine. If you want to use gnu make on linux because it works well there, fine.



The main idea is just not to try and shove all those builds into a single magic build. All that ends up giving you is the lowest common denominator.</description>
		<content:encoded><![CDATA[<p>I know you are going for quickest edit-compile-run times, but I think there are two competing things in cross-platform builds.</p>
<p>[1] making dependencies fast</p>
<p>[2] using the best available dev environment for a given platform.</p>
<p>I&#8217;ll talk about [2] first.</p>
<p>I used to believe that the best idea for cross-platform development was to create some sort of master build script that kicked out builds for all of your various platforms.</p>
<p>Then the company I work at did just that. It was a nightmare to get up and running. It is mostly working now, but it is STILL under active development. It went from a small little side project to a very large ongoing project for this poor guy.</p>
<p>It would be awesome if it just worked, but there always ends up being little exceptions here an there. Soon your master build file ends up being a complex monster.</p>
<p>Here is what I currently believe:</p>
<p>You have platform specific code, so have platform specific builds!!</p>
<p>Yes it is more work to create and maintain a build for each platform, but as long as you follow two rules, it really is not bad.</p>
<p>1. No dead files allowed.</p>
<p>2. Platform specific code goes in its own directory.</p>
<p>The idea is basically to use a script for each build that generates the build using wildcards.</p>
<p>There are details along with a vc7 generator script in my blog. I&#8217;ve since created a more elaborate vc71 script, if you want it, mail me.</p>
<p><a href="http://projectjanel.org/b2e_blogs/index.php?blog=2&#038;title=cross_platform_build_systems&#038;more=1&#038;c=1&#038;tb=1&#038;pb=1" rel="nofollow">http://projectjanel.org/b2e_blogs/index.php?blog=2&#038;title=cross_platform_build_systems&#038;more=1&#038;c=1&#038;tb=1&#038;pb=1</a></p>
<p>Back to [1]. Nothing I&#8217;ve said goes against it. You just make the choice of the best dev environment for each and every platform. So if you want to have a vc6 AND vc7 builds for win32 because one of your guys refuses to switch, fine. If you want to use gnu make on linux because it works well there, fine.</p>
<p>The main idea is just not to try and shove all those builds into a single magic build. All that ends up giving you is the lowest common denominator.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yan's Bits</title>
		<link>http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2/comment-page-1#comment-243</link>
		<dc:creator>Yan's Bits</dc:creator>
		<pubDate>Wed, 21 Sep 2005 14:41:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.gamesfromwithin.dreamhosters.com/?p=336#comment-243</guid>
		<description>&lt;strong&gt;Nice blog talking about build system&lt;/strong&gt;</description>
		<content:encoded><![CDATA[<p><strong>Nice blog talking about build system</strong></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jamie Fristrom</title>
		<link>http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2/comment-page-1#comment-233</link>
		<dc:creator>Jamie Fristrom</dc:creator>
		<pubDate>Tue, 20 Sep 2005 20:18:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.gamesfromwithin.dreamhosters.com/?p=336#comment-233</guid>
		<description>Electric Cloud hasn&#039;t been worth it for us.



How come no mention of a make under Windows?</description>
		<content:encoded><![CDATA[<p>Electric Cloud hasn&#8217;t been worth it for us.</p>
<p>How come no mention of a make under Windows?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: teaguecl</title>
		<link>http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2/comment-page-1#comment-232</link>
		<dc:creator>teaguecl</dc:creator>
		<pubDate>Tue, 20 Sep 2005 20:01:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.gamesfromwithin.dreamhosters.com/?p=336#comment-232</guid>
		<description>I don&#039;t think it&#039;s of any use to Noel, but Electric Cloud is an interesting product in this space.  If you are stuck with a gigantic set of recursive makefiles, this tool looks good.  It essentially nullifies the penalties for having a recursive make by sharing information between successive calls to make.  It&#039;s an interesting idea, which is very similar to Rational&#039;s Clearmake.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t think it&#8217;s of any use to Noel, but Electric Cloud is an interesting product in this space.  If you are stuck with a gigantic set of recursive makefiles, this tool looks good.  It essentially nullifies the penalties for having a recursive make by sharing information between successive calls to make.  It&#8217;s an interesting idea, which is very similar to Rational&#8217;s Clearmake.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Reece Dunn</title>
		<link>http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2/comment-page-1#comment-231</link>
		<dc:creator>Reece Dunn</dc:creator>
		<pubDate>Tue, 20 Sep 2005 19:24:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.gamesfromwithin.dreamhosters.com/?p=336#comment-231</guid>
		<description>I wouldn&#039;t be too harsh in telling people to avoid BoostBuild due to performance. A lot of work is going into developing and finetuning BBv2 (it hasn&#039;t officially been released yet, BBv1 is currently the build system being used by Boost, but should be phased out in the next Boost release). The current CVS version of BJam/BBv2 and the upcoming M11 release have significant improvements over M10 in both features and speed.



At the moment, the documentation is still in its early stages but is getting better and is one area they are focusing on. Aside from that, the mailing list is active with very talented people willing to answer your problems. In fact, the BJam/BB mailing list may have superceeded the Jam mailing list :).



In terms of cross-platform development, BoostBuild is definitely the way to go. However, if rebuild times is a priority, use the CVS version or wait for its release.</description>
		<content:encoded><![CDATA[<p>I wouldn&#8217;t be too harsh in telling people to avoid BoostBuild due to performance. A lot of work is going into developing and finetuning BBv2 (it hasn&#8217;t officially been released yet, BBv1 is currently the build system being used by Boost, but should be phased out in the next Boost release). The current CVS version of BJam/BBv2 and the upcoming M11 release have significant improvements over M10 in both features and speed.</p>
<p>At the moment, the documentation is still in its early stages but is getting better and is one area they are focusing on. Aside from that, the mailing list is active with very talented people willing to answer your problems. In fact, the BJam/BB mailing list may have superceeded the Jam mailing list <img src='http://gamesfromwithin.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>In terms of cross-platform development, BoostBuild is definitely the way to go. However, if rebuild times is a priority, use the CVS version or wait for its release.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: plunket</title>
		<link>http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2/comment-page-1#comment-230</link>
		<dc:creator>plunket</dc:creator>
		<pubDate>Tue, 20 Sep 2005 17:20:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.gamesfromwithin.dreamhosters.com/?p=336#comment-230</guid>
		<description>The strangest thing I ever saw was where, at a former job, a full rebuild of the project took about 15 minutes with Incredibuild, when there were 10-12 hosts helping the build, and the same build on only my dual hyperthreaded processor machine took only 7 if I used jam -j6.</description>
		<content:encoded><![CDATA[<p>The strangest thing I ever saw was where, at a former job, a full rebuild of the project took about 15 minutes with Incredibuild, when there were 10-12 hosts helping the build, and the same build on only my dual hyperthreaded processor machine took only 7 if I used jam -j6.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Noel Llopis</title>
		<link>http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2/comment-page-1#comment-229</link>
		<dc:creator>Noel Llopis</dc:creator>
		<pubDate>Tue, 20 Sep 2005 16:04:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.gamesfromwithin.dreamhosters.com/?p=336#comment-229</guid>
		<description>Don&#039;t get me started with Incredibuild again :-) &lt;a href=&quot;http://www.gamesfromwithin.com/articles/0502/000069.html&quot; rel=&quot;nofollow&quot;&gt;http://www.gamesfromwithin.com/articles/0502/000069.html&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>Don&#8217;t get me started with Incredibuild again <img src='http://gamesfromwithin.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  <a href="http://www.gamesfromwithin.com/articles/0502/000069.html" rel="nofollow">http://www.gamesfromwithin.com/articles/0502/000069.html</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>

