<?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: Nobody Cares About Your Makefile</title>
	<atom:link href="http://codex.grimoire.ca/2008/10/01/nobody-cares-about-your-makefile/feed/" rel="self" type="application/rss+xml" />
	<link>http://codex.grimoire.ca/2008/10/01/nobody-cares-about-your-makefile/</link>
	<description>Any insufficiently advanced magic is indistinguishable from technology.</description>
	<pubDate>Mon, 06 Sep 2010 04:50:47 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Rudolf Olah</title>
		<link>http://codex.grimoire.ca/2008/10/01/nobody-cares-about-your-makefile/comment-page-1/#comment-34</link>
		<dc:creator>Rudolf Olah</dc:creator>
		<pubDate>Sat, 27 Dec 2008 05:55:09 +0000</pubDate>
		<guid isPermaLink="false">http://codex.grimoire.ca/?p=28#comment-34</guid>
		<description>You should check out SCons if you want a replacement for GNU Make. It's Python, reads well and does a lot of things magically (with lots of room for configuration when the defaults aren't good enough).</description>
		<content:encoded><![CDATA[<p>You should check out SCons if you want a replacement for GNU Make. It&#8217;s Python, reads well and does a lot of things magically (with lots of room for configuration when the defaults aren&#8217;t good enough).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Owen</title>
		<link>http://codex.grimoire.ca/2008/10/01/nobody-cares-about-your-makefile/comment-page-1/#comment-26</link>
		<dc:creator>Owen</dc:creator>
		<pubDate>Wed, 19 Nov 2008 04:51:19 +0000</pubDate>
		<guid isPermaLink="false">http://codex.grimoire.ca/?p=28#comment-26</guid>
		<description>@Plouj: ...crud, you're right. I even recall reminding myself to fix that when I was writing the post. It's fixed now.</description>
		<content:encoded><![CDATA[<p>@Plouj: &#8230;crud, you&#8217;re right. I even recall reminding myself to fix that when I was writing the post. It&#8217;s fixed now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Plouj</title>
		<link>http://codex.grimoire.ca/2008/10/01/nobody-cares-about-your-makefile/comment-page-1/#comment-25</link>
		<dc:creator>Plouj</dc:creator>
		<pubDate>Tue, 18 Nov 2008 15:35:28 +0000</pubDate>
		<guid isPermaLink="false">http://codex.grimoire.ca/?p=28#comment-25</guid>
		<description>Shouldn't those include lines be #include "logging.h" and not #include "example-1.h"?</description>
		<content:encoded><![CDATA[<p>Shouldn&#8217;t those include lines be #include &#8220;logging.h&#8221; and not #include &#8220;example-1.h&#8221;?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Owen</title>
		<link>http://codex.grimoire.ca/2008/10/01/nobody-cares-about-your-makefile/comment-page-1/#comment-24</link>
		<dc:creator>Owen</dc:creator>
		<pubDate>Tue, 18 Nov 2008 07:19:44 +0000</pubDate>
		<guid isPermaLink="false">http://codex.grimoire.ca/?p=28#comment-24</guid>
		<description>@jsled, @Michael S.: Make's biggest problem is not Make, but the languages it was built to work with. C (and to a lesser extent, Fortran) are not well-suited to static analysis. Figuring out if a given symbol exists in a complete C program involves running the preprocessor - and &lt;a href="http://www.ioccc.org/2001/herrmann1.c" rel="nofollow"&gt;people have written Turing machines&lt;/a&gt; for it, proving that it can compute completely arbitrary things in arbitrary time.

Most newer languages have some sort of easy-to-detect dependency information. Java's classfile format makes references to other classes very obvious in the constant pool, and the source format is relatively easy to parse. Ruby and Python both have hookable module systems: PyUnit takes advantage of this to "roll back" any imports that happen during test evaluation, but you could just as easily hook it to log the dependencies that are actually used during a test run.

Even Objective-C (and gcc, incidentaly) has #import, which is a step in the right direction: it describes what the author wants to do (use a given library) rather than how to do it (paste this source file here).</description>
		<content:encoded><![CDATA[<p>@jsled, @Michael S.: Make&#8217;s biggest problem is not Make, but the languages it was built to work with. C (and to a lesser extent, Fortran) are not well-suited to static analysis. Figuring out if a given symbol exists in a complete C program involves running the preprocessor - and <a href="http://www.ioccc.org/2001/herrmann1.c" rel="nofollow">people have written Turing machines</a> for it, proving that it can compute completely arbitrary things in arbitrary time.</p>
<p>Most newer languages have some sort of easy-to-detect dependency information. Java&#8217;s classfile format makes references to other classes very obvious in the constant pool, and the source format is relatively easy to parse. Ruby and Python both have hookable module systems: PyUnit takes advantage of this to &#8220;roll back&#8221; any imports that happen during test evaluation, but you could just as easily hook it to log the dependencies that are actually used during a test run.</p>
<p>Even Objective-C (and gcc, incidentaly) has #import, which is a step in the right direction: it describes what the author wants to do (use a given library) rather than how to do it (paste this source file here).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jsled</title>
		<link>http://codex.grimoire.ca/2008/10/01/nobody-cares-about-your-makefile/comment-page-1/#comment-23</link>
		<dc:creator>jsled</dc:creator>
		<pubDate>Mon, 17 Nov 2008 22:37:07 +0000</pubDate>
		<guid isPermaLink="false">http://codex.grimoire.ca/?p=28#comment-23</guid>
		<description>@Michael S.: in case you're unaware, that's what the "clear as mud" "$(CC) -M […]" block referenced in the article is.  It may be a sub optimal way of doing it (the output probably shouldn't need to be sed-post-processed given probably the only thing anyone ever uses the output for is Make dependency generation) … but it's not like the author of this article is actually suggesting an alternative.</description>
		<content:encoded><![CDATA[<p>@Michael S.: in case you&#8217;re unaware, that&#8217;s what the &#8220;clear as mud&#8221; &#8220;$(CC) -M […]&#8221; block referenced in the article is.  It may be a sub optimal way of doing it (the output probably shouldn&#8217;t need to be sed-post-processed given probably the only thing anyone ever uses the output for is Make dependency generation) … but it&#8217;s not like the author of this article is actually suggesting an alternative.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael S.</title>
		<link>http://codex.grimoire.ca/2008/10/01/nobody-cares-about-your-makefile/comment-page-1/#comment-22</link>
		<dc:creator>Michael S.</dc:creator>
		<pubDate>Mon, 17 Nov 2008 20:24:28 +0000</pubDate>
		<guid isPermaLink="false">http://codex.grimoire.ca/?p=28#comment-22</guid>
		<description>I've always thought that the tools themselves, e.g. the $(CC) compiler and associated linker, should be able to build the dependency graphs of the files they are depending on for creating the output file(s). It is only the tools themselves who can know what they are depending on. Humans - as makefile creators - are bound to fail. E.g. because the forget to add the file into the dependency tree.

/Michael</description>
		<content:encoded><![CDATA[<p>I&#8217;ve always thought that the tools themselves, e.g. the $(CC) compiler and associated linker, should be able to build the dependency graphs of the files they are depending on for creating the output file(s). It is only the tools themselves who can know what they are depending on. Humans - as makefile creators - are bound to fail. E.g. because the forget to add the file into the dependency tree.</p>
<p>/Michael</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kit</title>
		<link>http://codex.grimoire.ca/2008/10/01/nobody-cares-about-your-makefile/comment-page-1/#comment-12</link>
		<dc:creator>kit</dc:creator>
		<pubDate>Thu, 02 Oct 2008 03:01:58 +0000</pubDate>
		<guid isPermaLink="false">http://codex.grimoire.ca/?p=28#comment-12</guid>
		<description>it must be said that anything using $@.$$$$ in an example usage is on its way to loss.</description>
		<content:encoded><![CDATA[<p>it must be said that anything using $@.$$$$ in an example usage is on its way to loss.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
