<div dir="ltr">On Tue, Jan 11, 2011 at 7:09 AM, Shachar Shemesh <span dir="ltr"><<a href="mailto:shachar@shemesh.biz">shachar@shemesh.biz</a>></span> wrote:<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Sure, it makes total sense to compare a software that is 93 files, about 36,000 lines of code (including tests) and no documented dependencies to VLC, 1340 source files, 590,000 lines of code and tons of understandable dependencies due to external codecs and stuff. I can see how, except for the choice of build system, the two are on par.<br>
</blockquote><div><br></div><div>I really don't think the dependencies and sizes really matters for the problem I've had, but instead of arguing about it I see your VLC and I raise you by the go programming language.</div>
<div><br></div><div>The go programming language is a fairly complex beast, is cross compiled to ARM architecture, support gcc front ends, and does not need any of the autotools. <a href="http://golang.org/doc/install.html">http://golang.org/doc/install.html</a></div>
<div><br></div><div>You can probably find small details that don't work exactly as they could with the autosuite, but this software is working and compiling really easily with less maintenance hassle for 99.9% of its users. This is a living testimony that projects can have a good build system and be fairly portable even without the autosuite, and you must agree with me that the autosuite isn't exactly straightforward, and makes simple things more complex:</div>
<div><br></div><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; ">
<meta http-equiv="content-type" content="text/html; charset=utf-8"><span class="Apple-style-span" style="font-family: Vera, 'Trebuchet MS', Tahoma, sans-serif; font-size: 12px; color: rgb(51, 51, 51); "><p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
Using autotools for a very simple piece of software still requires a few steps:</p><ol><li>Move the Makefile to Makefile.in</li><li>Run autoscan</li><li>Edit the <code style="font-family: courier, courier-new, new-courier, sans-serif; font-weight: normal; color: rgb(68, 119, 85); "><a href="http://configure.in">configure.in</a></code> file</li>
<li>Run autoconf</li><li>Test <code style="font-family: courier, courier-new, new-courier, sans-serif; font-weight: normal; color: rgb(68, 119, 85); ">./configure</code></li><li>make any final adjustments</li></ol></span></blockquote>
<meta http-equiv="content-type" content="text/html; charset=utf-8"><div>If this is simple, I don't want to know what complicated is. Compare that to godag <a href="http://code.google.com/p/godag/wiki/Compiling">http://code.google.com/p/godag/wiki/Compiling</a> or ANT[1], the initial script which just compiles everything and keeps dependencies is extremely simple.</div>
<div><br></div><div>Maybe in the old days the autotools was mandatory because, you could not afford checking things at runtime or compiling things you don't 100% need into the executable (thus using config.h to ifdef pieces of code out).</div>
<div>But nowadays this is wrong both from practical POV (you can afford those extra bytes in order to make building the software more straightforward), and both from philosophical POV, I want the source code to be the same in all platforms if possible, and defer the checks I have to make to runtime, this makes things easier (a user has a bug - did you compile your software with --can-haz-cheeseburget?), autosuite encourage me to go to this direction.</div>
<div><br></div><div>[1]</div><div><div><project></div><div> <target name="compile"></div><div> <mkdir dir="build/classes"/></div><div> <javac srcdir="src" destdir="build/classes"/></div>
<div> </target></div><div><br></div><div> <target name="jar"></div><div> <mkdir dir="build/jar"/></div><div> <jar destfile="build/jar/HelloWorld.jar" basedir="build/classes"></div>
<div> </jar></div><div> </target></div><div></project></div></div><div><br></div></div></div>