<div dir="ltr">I have given up on make for any new project.<div>scons is the way to go for C based projects.</div><div><br></div><div>Here is why:</div><div>1) the rule file is just python.  So you have a rich well documented syntax to follow.</div><div>2) scons knows about .h and .c file relationships by scanning code.  You don&#39;t have to code the relationships yourself.</div><div>3) it supports &quot;out of source&quot; builds.</div><div>4) it uses checksums rather than timestamps to determine that a file changed.</div><div>5) it knows when rules change and will recompile because a rule changed.</div><div>6) you can write customer builders in python.</div><div><br></div><div>The downside is that it is harder to learn than make.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 14, 2015 at 2:30 PM, DjPfulio <span dir="ltr">&lt;<a href="mailto:DjPfulio@jdpfu.com" target="_blank">DjPfulio@jdpfu.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Yep, the first thing I did was bring over an old, simple, makefile for an old C project.<br>
<br>
The second thing I did was a youtube search for introduction to makefiles. Watched three of them and was disappointed. They didn&#39;t cover the simplest stuff.<br>
<br>
It is generally impossible to count on the built-in rules of a make program because it doesn&#39;t have include directories or libraries, and most production code will include both of those for any specific project.<br><br><div class="gmail_quote"><span class="">On 14 December 2015 12:53:03 GMT-05:00, &quot;Scott M. Jones&quot; &lt;<a href="mailto:eff@dragoncon.org" target="_blank">eff@dragoncon.org</a>&gt; wrote:</span><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<pre><span class="">I was surprised to find he is using the built-in rules of make rather<br>than running cc directly on the command line.  In production code I made<br>a personal rule to never depend on built in rules of make and to put all<br>rules explicitly in the makefile, but for educational purposes it&#39;s<br>probably OK.  Still, if he&#39;s teaching the command line way I&#39;m surprised<br>he isn&#39;t using cc directly from the command line.  I&#39;ve also seen<br>systems with cc/gcc installed but no make installed.<br><br>-Scott<br><br>On 12/14/15 10:54 AM, DJ-Pfulio wrote:<br><blockquote class="gmail_quote" style="margin:0pt 0pt 1ex 0.8ex;border-left:1px solid #729fcf;padding-left:1ex"> <br> If anyone has already started their journey to learning C with Leam, great!<br> <br> I worked through the first 8 exercises this morning using the online book -<br> <a href="http://c.learncodethehardway.org/book" target="_blank">http://c.learncodethehardway.org/book</a>/<br> <br> There are many subtle things not covered, but worth knowing.<br> <br> He writes about makefiles, valgrind and printf() in a &quot;do this, but don&#39;t worry<br> if you don&#39;t understand it&quot; way. Perhaps the author will come back later for<br> deeper explanation? I dunno.<br></blockquote><br><hr><br></span><span class="">Ale mailing list<br><a href="mailto:Ale@ale.org" target="_blank">Ale@ale.org</a><br><a href="http://mail.ale.org/mailman/listinfo/ale" target="_blank">http://mail.ale.org/mailman/listinfo/ale</a><br>See JOBS, ANNOUNCE and SCHOOLS lists at<br><a href="http://mail.ale.org/mailman/listinfo" target="_blank">http://mail.ale.org/mailman/listinfo</a><br></span></pre></blockquote></div><span class="HOEnZb"><font color="#888888"><br>
-- <br>
Sent from my Android device with K-9 Mail. Please excuse my brevity.</font></span></div><br>_______________________________________________<br>
Ale mailing list<br>
<a href="mailto:Ale@ale.org">Ale@ale.org</a><br>
<a href="http://mail.ale.org/mailman/listinfo/ale" rel="noreferrer" target="_blank">http://mail.ale.org/mailman/listinfo/ale</a><br>
See JOBS, ANNOUNCE and SCHOOLS lists at<br>
<a href="http://mail.ale.org/mailman/listinfo" rel="noreferrer" target="_blank">http://mail.ale.org/mailman/listinfo</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Michael Potter<br>  Tapp Solutions, LLC</div><div>   <a href="http://www.tappsolutions.com" target="_blank">www.tappsolutions.com</a><br>+1 770 815 6142  ** Atlanta ** <a href="mailto:michael@potter.name" target="_blank">michael@potter.name</a>  **  <a href="http://www.linkedin.com/in/michaelpotter" target="_blank">www.linkedin.com/in/michaelpotter</a></div></div></div></div></div>
</div>