<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/1.5.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: The GNU Configure and Build System</title>
	<link>http://www.airs.com/blog/archives/95</link>
	<description>Ian Lance Taylor</description>
	<pubDate>Sun,  6 Jul 2008 03:19:33 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.2</generator>

	<item>
 		<title>Comment on The GNU Configure and Build System by: Ian Lance Taylor</title>
		<link>http://www.airs.com/blog/archives/95#comment-12186</link>
		<pubDate>Sat, 05 Apr 2008 01:33:01 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/95#comment-12186</guid>
					<description>Clearly one can reasonably make different choices about which dependencies are acceptable and which are not when it comes to building software.  My feeling right now is that GNU make is acceptable.  The kinds of programs I write are never going to build with Visual Studio, which means that a Windows user has to install cygwin before they can build them--and that means that they have GNU make.  However, I don't have cmake installed on any system, so that seems like a less acceptable dependency.</description>
		<content:encoded><![CDATA[	<p>Clearly one can reasonably make different choices about which dependencies are acceptable and which are not when it comes to building software.  My feeling right now is that GNU make is acceptable.  The kinds of programs I write are never going to build with Visual Studio, which means that a Windows user has to install cygwin before they can build them&#8211;and that means that they have GNU make.  However, I don&#8217;t have cmake installed on any system, so that seems like a less acceptable dependency.
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on The GNU Configure and Build System by: cruz44</title>
		<link>http://www.airs.com/blog/archives/95#comment-12175</link>
		<pubDate>Fri, 04 Apr 2008 20:26:25 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/95#comment-12175</guid>
					<description>As somebody that's use their own various build system for many years (because quite honestly, autotools suck... they're complex, weird and just don't work under Windows), I've also wanted to write my own &quot;final solution&quot; for this too. The problem is, it requires a lot of testing, user cases and platforms to play.

I've tried a bunch of new build systems like Waf and Scons too. Finally though, I've settled on cmake. Quite simply, it's really nice. It works on all the major platforms, and it's easy to use (has optional graphical configuration screens too, and works great under Windows).

I don't think having to install cmake is some kind of onerous requirement on someone who wants to compile software on their system. I'd rather type &quot;apt-get install cmake&quot; than deal with some kind assembled from matchsticks system like autotools is, or this new gmake based one may be.

Besides, gnu make isn't installed on that many platforms out of the box. In particular a Windows box/Visual Studio developer almost definately doesn't have it installed. Installing cmake on windows is a 2 click install there, too. Although I'm primarily a Linux developer, using the same build system (one that works with Visual Studio directly) is a god send.

Lets not reinvent the wheel, lets just all use cmake and be happy, like those KDE guys :)</description>
		<content:encoded><![CDATA[	<p>As somebody that&#8217;s use their own various build system for many years (because quite honestly, autotools suck&#8230; they&#8217;re complex, weird and just don&#8217;t work under Windows), I&#8217;ve also wanted to write my own &#8220;final solution&#8221; for this too. The problem is, it requires a lot of testing, user cases and platforms to play.</p>
	<p>I&#8217;ve tried a bunch of new build systems like Waf and Scons too. Finally though, I&#8217;ve settled on cmake. Quite simply, it&#8217;s really nice. It works on all the major platforms, and it&#8217;s easy to use (has optional graphical configuration screens too, and works great under Windows).</p>
	<p>I don&#8217;t think having to install cmake is some kind of onerous requirement on someone who wants to compile software on their system. I&#8217;d rather type &#8220;apt-get install cmake&#8221; than deal with some kind assembled from matchsticks system like autotools is, or this new gmake based one may be.</p>
	<p>Besides, gnu make isn&#8217;t installed on that many platforms out of the box. In particular a Windows box/Visual Studio developer almost definately doesn&#8217;t have it installed. Installing cmake on windows is a 2 click install there, too. Although I&#8217;m primarily a Linux developer, using the same build system (one that works with Visual Studio directly) is a god send.</p>
	<p>Lets not reinvent the wheel, lets just all use cmake and be happy, like those KDE guys <img src='http://www.airs.com/blog/wp-images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on The GNU Configure and Build System by: Ian Lance Taylor</title>
		<link>http://www.airs.com/blog/archives/95#comment-11642</link>
		<pubDate>Sat, 22 Mar 2008 19:34:35 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/95#comment-11642</guid>
					<description>Tom Tromey has started working on some of the ideas in the post.  See http://code.google.com/p/quagmire .</description>
		<content:encoded><![CDATA[	<p>Tom Tromey has started working on some of the ideas in the post.  See <a href='http://code.google.com/p/quagmire' rel='nofollow'>http://code.google.com/p/quagmire</a> .
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on The GNU Configure and Build System by: Logiciel Libre &#187; Blog Archive &#187; What&#8217;s wrong with the GNU autotools?</title>
		<link>http://www.airs.com/blog/archives/95#comment-9669</link>
		<pubDate>Sat, 26 Jan 2008 21:39:31 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/95#comment-9669</guid>
					<description>[...] Ian Lance Taylor captures what&amp;#8217;s wrong with autotools quite nicely. Ian says Cmake isn&amp;#8217;t a suitable replacement, but perhaps it could evolve into one [...]</description>
		<content:encoded><![CDATA[	<p>[&#8230;] Ian Lance Taylor captures what&#8217;s wrong with autotools quite nicely. Ian says Cmake isn&#8217;t a suitable replacement, but perhaps it could evolve into one [&#8230;]
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on The GNU Configure and Build System by: Ian Lance Taylor</title>
		<link>http://www.airs.com/blog/archives/95#comment-7530</link>
		<pubDate>Mon, 03 Dec 2007 23:33:03 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/95#comment-7530</guid>
					<description>I don't doubt that cmake could work.  There are actually a number of tools that can work.

However, I think the only tool which can succeed is one which does not impose any requirements on the system on which the program is built.  It's OK to impose requirements on developers, but it's not OK to impose them on people who build the source code.  That is why the autotools have been successful: they do not impose any requirements.

As far as I can tell, cmake does impose a requirement: the system on which the program is built must have cmake installed.</description>
		<content:encoded><![CDATA[	<p>I don&#8217;t doubt that cmake could work.  There are actually a number of tools that can work.</p>
	<p>However, I think the only tool which can succeed is one which does not impose any requirements on the system on which the program is built.  It&#8217;s OK to impose requirements on developers, but it&#8217;s not OK to impose them on people who build the source code.  That is why the autotools have been successful: they do not impose any requirements.</p>
	<p>As far as I can tell, cmake does impose a requirement: the system on which the program is built must have cmake installed.
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on The GNU Configure and Build System by: renoX</title>
		<link>http://www.airs.com/blog/archives/95#comment-7493</link>
		<pubDate>Sun, 02 Dec 2007 17:01:40 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/95#comment-7493</guid>
					<description>Cmake has been used as a replacement for auto tools for the KDE projects.
Given the size of KDE, for me this is a good indication that Cmake could replace auto tools for C/C++ projects.</description>
		<content:encoded><![CDATA[	<p>Cmake has been used as a replacement for auto tools for the KDE projects.<br />
Given the size of KDE, for me this is a good indication that Cmake could replace auto tools for C/C++ projects.
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on The GNU Configure and Build System by: jmmv</title>
		<link>http://www.airs.com/blog/archives/95#comment-7270</link>
		<pubDate>Tue, 27 Nov 2007 11:14:09 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/95#comment-7270</guid>
					<description>Speaking of system-wide configuration, check &quot;autoswc&quot;, a little tool/package I wrote for the NetBSD packaging system:

http://cvsweb.netbsd.se/cgi-bin/bsdweb.cgi/pkgsrc/pkgtools/autoswc/

With some manual changes it could be made to work outside of pkgsrc.

It does exactly that: generate a system-wide configuration cache for autoconf scripts so that you can add to it some tests, run them once and later reuse their results automatically.  Speeds things up quite a bit in old machines.</description>
		<content:encoded><![CDATA[	<p>Speaking of system-wide configuration, check &#8220;autoswc&#8221;, a little tool/package I wrote for the NetBSD packaging system:</p>
	<p><a href='http://cvsweb.netbsd.se/cgi-bin/bsdweb.cgi/pkgsrc/pkgtools/autoswc/' rel='nofollow'>http://cvsweb.netbsd.se/cgi-bin/bsdweb.cgi/pkgsrc/pkgtools/autoswc/</a></p>
	<p>With some manual changes it could be made to work outside of pkgsrc.</p>
	<p>It does exactly that: generate a system-wide configuration cache for autoconf scripts so that you can add to it some tests, run them once and later reuse their results automatically.  Speeds things up quite a bit in old machines.
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on The GNU Configure and Build System by: Ian Lance Taylor</title>
		<link>http://www.airs.com/blog/archives/95#comment-7247</link>
		<pubDate>Tue, 27 Nov 2007 03:20:07 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/95#comment-7247</guid>
					<description>Hi Russ.  A config.d makes sense, though we would probably also want the config.h for easier use and compatibility.

The problem that autoconf has had with system-wide information in the past is that some tests are compiler dependent or even compiler-option dependent.  Also of course when you update the OS the test results may change.  These are not insoluble problems, but they are the reasons that autoconf generally does not use a system-wide cache file.</description>
		<content:encoded><![CDATA[	<p>Hi Russ.  A config.d makes sense, though we would probably also want the config.h for easier use and compatibility.</p>
	<p>The problem that autoconf has had with system-wide information in the past is that some tests are compiler dependent or even compiler-option dependent.  Also of course when you update the OS the test results may change.  These are not insoluble problems, but they are the reasons that autoconf generally does not use a system-wide cache file.
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on The GNU Configure and Build System by: RussNelson</title>
		<link>http://www.airs.com/blog/archives/95#comment-7229</link>
		<pubDate>Mon, 26 Nov 2007 19:42:20 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/95#comment-7229</guid>
					<description>May I suggest instead of using a single config.h which determines the configuration, that you use a config.d holding all the configuration files?

First, because you see this design pattern all over Unix, where single config files are replaced by multiple files in a foo.d directory.  E.g. init.d, and crontab.d.  Second, because then, a file need only include the config.d/whatever.h file it depends upon.  Then, since every whatever.h has its own timestamp, when you change whatever.h, only those files which depend upon it need to be rebuilt.

Also, what about having a single directory which holds system-wide information?  Run the tests, do the discernment once, and then it becomes available to all autotools.  Dare I suggest /var/autotools/?</description>
		<content:encoded><![CDATA[	<p>May I suggest instead of using a single config.h which determines the configuration, that you use a config.d holding all the configuration files?</p>
	<p>First, because you see this design pattern all over Unix, where single config files are replaced by multiple files in a foo.d directory.  E.g. init.d, and crontab.d.  Second, because then, a file need only include the config.d/whatever.h file it depends upon.  Then, since every whatever.h has its own timestamp, when you change whatever.h, only those files which depend upon it need to be rebuilt.</p>
	<p>Also, what about having a single directory which holds system-wide information?  Run the tests, do the discernment once, and then it becomes available to all autotools.  Dare I suggest /var/autotools/?
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on The GNU Configure and Build System by: The Cliffs of Inanity &#187; Blog Archive &#187; Replacing Automake</title>
		<link>http://www.airs.com/blog/archives/95#comment-7117</link>
		<pubDate>Fri, 23 Nov 2007 23:56:25 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/95#comment-7117</guid>
					<description>[...] Inspired by Ian, this past weekend I took a look at replacing the auto tools with GNU make code. [...]</description>
		<content:encoded><![CDATA[	<p>[&#8230;] Inspired by Ian, this past weekend I took a look at replacing the auto tools with GNU make code. [&#8230;]
</p>
]]></content:encoded>
				</item>
</channel>
</rss>
