<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't have to code the relationships yourself.</div><div>3) it supports "out of source" 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"><<a href="mailto:DjPfulio@jdpfu.com" target="_blank">DjPfulio@jdpfu.com</a>></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'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'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, "Scott M. Jones" <<a href="mailto:eff@dragoncon.org" target="_blank">eff@dragoncon.org</a>> 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's<br>probably OK. Still, if he's teaching the command line way I'm surprised<br>he isn't using cc directly from the command line. I'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 "do this, but don't worry<br> if you don't understand it" 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>