<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Daniel’s Blog</title>
	<atom:link href="http://danielkitta.org/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://danielkitta.org/blog</link>
	<description>Delusional ramblings of a narcistic individual.</description>
	<lastBuildDate>Fri, 15 Oct 2010 21:14:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Heartbeat</title>
		<link>http://danielkitta.org/blog/2010/10/15/heartbeat/</link>
		<comments>http://danielkitta.org/blog/2010/10/15/heartbeat/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 21:14:53 +0000</pubDate>
		<dc:creator>Daniel Elstner</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[University]]></category>

		<guid isPermaLink="false">http://danielkitta.org/blog/?p=217</guid>
		<description><![CDATA[Just a quick note to reassure everyone that I&#8217;m still alive and kicking. I&#8217;ve been pretty busy with university work and and general life stuff. Well, I finally managed to complete one semester of formal university education, and it turns out I have passed all six subjects nicely. I had to put GNOME work in [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick note to reassure everyone that I&#8217;m still alive and kicking. I&#8217;ve been pretty busy with <a href="http://www.htw-berlin.de/">university</a> work and and general life stuff. Well, I finally managed to complete one semester of formal university education, and it turns out I have passed all six subjects nicely.</p>
<p>I had to put <a href="http://www.gnome.org/">GNOME</a> work in general and <a href="http://www.gtkmm.org/">gtkmm</a> work in particular on hold for the time being. This is unlikely to change anytime soon, but I&#8217;m sure things are going on well without my indefatigable pedantry. <img src='http://danielkitta.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://danielkitta.org/blog/2010/10/15/heartbeat/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bjarne Stroupstrup on C++0x</title>
		<link>http://danielkitta.org/blog/2010/03/18/bjarne-stroupstrup-on-c0x/</link>
		<comments>http://danielkitta.org/blog/2010/03/18/bjarne-stroupstrup-on-c0x/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 12:09:54 +0000</pubDate>
		<dc:creator>Daniel Elstner</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://danielkitta.org/blog/?p=211</guid>
		<description><![CDATA[I&#8217;m just back from Aalto University School of Science and Technology in Espoo, Finland, where I attended Bjarne Stroustrup&#8216;s roadshow talk on C++0x. In the talk, Stroustrup provided a very nice overview of the features in the C++ standard and how they fit into the evolution of the C++ programming language. Bjarne Stroustrup made the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m just back from <a href="http://www.tkk.fi/en/">Aalto University School of Science and Technology</a> in Espoo, Finland, where I attended <a href="http://www2.research.att.com/~bs/homepage.html">Bjarne Stroustrup</a>&#8216;s roadshow talk on C++0x. In the talk, Stroustrup provided a very nice overview of the features in the C++ standard and how they fit into the evolution of the C++ programming language.</p>
<p>Bjarne Stroustrup made the impression of a down-to-earth guy with a very healthy attitude about C++ features and their development. I was excited to learn that the C++0x draft standard had just been declared final the week before. That means the content of the standard is de-facto finished now, and it will be formalized as an ISO standard in about one year. There sure are quite a number of nice goodies in C++0x, I can&#8217;t wait to get my hands dirty on code using it.</p>
<p>For the C++ groupies among us, I took <a href="http://www.flickr.com/photos/45158207@N08/sets/72157623644005870/">photographs</a> of all presentation slides and of course also of Bjarne Stroustrup himself.</p>
]]></content:encoded>
			<wfw:commentRss>http://danielkitta.org/blog/2010/03/18/bjarne-stroupstrup-on-c0x/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Why I hate Qt</title>
		<link>http://danielkitta.org/blog/2010/02/25/why-i-hate-qt/</link>
		<comments>http://danielkitta.org/blog/2010/02/25/why-i-hate-qt/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 17:21:27 +0000</pubDate>
		<dc:creator>Daniel Elstner</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Qt]]></category>

		<guid isPermaLink="false">http://danielkitta.org/blog/?p=203</guid>
		<description><![CDATA[Although I&#8217;m a GNOME and gtkmm guy, my paid work involves Qt. It&#8217;s no secret that I have a very strong antipathy towards the Qt mania to assimilate everything into their framework, the culture of their community, and their nonchalant abuse of the C++ programming language. Often, people suggest that I&#8217;m exaggerating the faults of [...]]]></description>
			<content:encoded><![CDATA[<p>Although I&#8217;m a GNOME and gtkmm guy, my paid work involves Qt. It&#8217;s no secret that I have a very strong antipathy towards the Qt mania to assimilate everything into their framework, the culture of their community, and their nonchalant abuse of the C++ programming language. Often, people suggest that I&#8217;m exaggerating the faults of Qt, and that there are much worse alternatives out there. Fair enough.</p>
<p>But today I happened onto another one of those little inanities which so often add up to a huge stinking pile. I decided to share this particular example, as I think it may help people to understand why I&#8217;m feeling so strongly about Qt.</p>
<p>A while ago, I filed <a href="http://bugreports.qt.nokia.com/browse/QTBUG-5732">Qt bug #5732</a>, together with a patch to fix the problem. In addition to the fix for the central problem reported in the bug, I also provided a second patch to correct another problem I stumbled upon while I worked on the actual bug fix. The bug was acknowledged by a Qt developer and the code got fixed. They decided to fix it their own way instead of applying my patch, which is fair enough. I may not have agreed with the way it was implemented, but the problem I reported was fixed.</p>
<p>Today, I again looked at the Qt OpenGL code, and happened to stumble upon the OpenGL extension checks. Apparently, the extension checking had now finally <a href="http://qt.gitorious.org/qt/qt/commit/bf9456c5a2d8dfe9a35a2175186630cb426858ad">been factored out</a> into a separate class, with a more efficient implementation to avoid the numerous temporary memory allocations of the string splitting method that was used before. Of course I was curious and had a look at the code which implements the string parsing.</p>
<p>Here is how it looks like:</p>
<div class="box-code">
<div><code><span style="color: #666666;">// This class can be used to match GL extensions without doing any mallocs. The</span></code></div>
<div><code><span style="color: #666666;">// class assumes that the GL extension string ends with a space character,</span></code></div>
<div><code><span style="color: #666666;">// which it should do on all conformant platforms. Create the object and pass</span></code></div>
<div><code><span style="color: #666666;">// in a pointer to the extension string, then call match() on each extension</span></code></div>
<div><code><span style="color: #666666;">// that should be matched. The match() function takes the extension name</span></code></div>
<div><code><span style="color: #666666;">// *without* the terminating space character as input.</span></code></div>
<div><code>&nbsp;</code></div>
<div><code><span style="color: #0000ff;">class</span> QGLExtensionMatcher</code></div>
<div><code><span style="color: #008000;">&#123;</span></code></div>
<div><code><span style="color: #0000ff;">public</span><span style="color: #008080;">:</span></code></div>
<div><code>&nbsp; &nbsp; QGLExtensionMatcher<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span> <span style="color: #000040;">*</span>str<span style="color: #008000;">&#41;</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080;">:</span> gl_extensions<span style="color: #008000;">&#40;</span>str<span style="color: #008000;">&#41;</span>, gl_extensions_length<span style="color: #008000;">&#40;</span>qstrlen<span style="color: #008000;">&#40;</span>str<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span></code></div>
<div><code>&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><span style="color: #008000;">&#125;</span></code></div>
<div><code>&nbsp;</code></div>
<div><code>&nbsp; &nbsp; <span style="color: #0000ff;">bool</span> match<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span> <span style="color: #000040;">*</span>str<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">int</span> str_length <span style="color: #000080;">=</span> qstrlen<span style="color: #008000;">&#40;</span>str<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span> <span style="color: #000040;">*</span>extensions <span style="color: #000080;">=</span> gl_extensions<span style="color: #008080;">;</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">int</span> extensions_length <span style="color: #000080;">=</span> gl_extensions_length<span style="color: #008080;">;</span></code></div>
<div><code>&nbsp;</code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666;">// the total length that needs to be matched is the str_length +</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666;">// the space character that terminates the extension name</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>extensions_length <span style="color: #000080;">&lt;</span> str_length <span style="color: #000040;">+</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>qstrncmp<span style="color: #008000;">&#40;</span>extensions, str, str_length<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">0</span> <span style="color: #000040;">&amp;&amp;</span> extensions<span style="color: #008000;">&#91;</span>str_length<span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> <span style="color: #FF0000;">' '</span><span style="color: #008000;">&#41;</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span></code></div>
<div><code>&nbsp;</code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">int</span> split_pos <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span>split_pos <span style="color: #000080;">&lt;</span> extensions_length <span style="color: #000040;">&amp;&amp;</span> extensions<span style="color: #008000;">&#91;</span>split_pos<span style="color: #008000;">&#93;</span> <span style="color: #000040;">!</span><span style="color: #000080;">=</span> <span style="color: #FF0000;">' '</span><span style="color: #008000;">&#41;</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000040;">++</span>split_pos<span style="color: #008080;">;</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000040;">++</span>split_pos<span style="color: #008080;">;</span> <span style="color: #666666;">// added for the terminating space character</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; extensions <span style="color: #000040;">+</span><span style="color: #000080;">=</span> split_pos<span style="color: #008080;">;</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; extensions_length <span style="color: #000040;">-</span><span style="color: #000080;">=</span> split_pos<span style="color: #008080;">;</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span></code></div>
<div><code>&nbsp; &nbsp; <span style="color: #008000;">&#125;</span></code></div>
<div><code>&nbsp;</code></div>
<div><code><span style="color: #0000ff;">private</span><span style="color: #008080;">:</span></code></div>
<div><code>&nbsp; &nbsp; <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span> <span style="color: #000040;">*</span>gl_extensions<span style="color: #008080;">;</span></code></div>
<div><code>&nbsp; &nbsp; <span style="color: #0000ff;">int</span> gl_extensions_length<span style="color: #008080;">;</span></code></div>
<div><code><span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span></code></div>
</div>
<p>According to the log message the piece of code just shown went through internal code review. For comparison, here is the equivalent piece of code from my original patch, which was not considered good enough to be applied:</p>
<div class="box-code">
<div><code><span style="color: #0000ff;">static</span> <span style="color: #0000ff;">bool</span> parse_extensions_string<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span><span style="color: #000040;">*</span> extensions, <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span><span style="color: #000040;">*</span> name<span style="color: #008000;">&#41;</span></code></div>
<div><code><span style="color: #008000;">&#123;</span></code></div>
<div><code>&nbsp; <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">size_t</span> name_length <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>name<span style="color: #008000;">&#41;</span> <span style="color: #008080;">?</span> <span style="color: #0000dd;">strlen</span><span style="color: #008000;">&#40;</span>name<span style="color: #008000;">&#41;</span> <span style="color: #008080;">:</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span></code></div>
<div><code>&nbsp;</code></div>
<div><code>&nbsp; Q_ASSERT<span style="color: #008000;">&#40;</span>name_length <span style="color: #000080;">&gt;</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></code></div>
<div><code>&nbsp;</code></div>
<div><code>&nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>extensions<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></code></div>
<div><code>&nbsp; &nbsp; <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span><span style="color: #000040;">*</span> pos <span style="color: #000080;">=</span> extensions<span style="color: #008080;">;</span></code></div>
<div><code>&nbsp;</code></div>
<div><code>&nbsp; &nbsp; <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span> <span style="color: #000040;">*</span><span style="color: #0000ff;">const</span> space <span style="color: #000080;">=</span> <span style="color: #0000dd;">strchr</span><span style="color: #008000;">&#40;</span>pos, <span style="color: #FF0000;">' '</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">size_t</span> length <span style="color: #000080;">=</span> space <span style="color: #000040;">-</span> pos<span style="color: #008080;">;</span></code></div>
<div><code>&nbsp;</code></div>
<div><code>&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>length <span style="color: #000080;">==</span> name_length <span style="color: #000040;">&amp;&amp;</span> <span style="color: #0000dd;">memcmp</span><span style="color: #008000;">&#40;</span>pos, name, length<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span></code></div>
<div><code>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span></code></div>
<div><code>&nbsp;</code></div>
<div><code>&nbsp; &nbsp; &nbsp; pos <span style="color: #000080;">=</span> space <span style="color: #000040;">+</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span></code></div>
<div><code>&nbsp; &nbsp; <span style="color: #008000;">&#125;</span></code></div>
<div><code>&nbsp; &nbsp; <span style="color: #0000ff;">return</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">strcmp</span><span style="color: #008000;">&#40;</span>pos, name<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></code></div>
<div><code>&nbsp; <span style="color: #008000;">&#125;</span></code></div>
<div><code>&nbsp; <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span></code></div>
<div><code><span style="color: #008000;">&#125;</span></code></div>
</div>
<p>So, instead of just taking the code handed to them on a silver platter, the Qt developers decided to roll their own version. Which I wouldn&#8217;t even consider a problem if it weren&#8217;t for the fact that the code that went in is longer, less readable, and generally ugly. It&#8217;s also broken, because there is not a single word in the OpenGL specification about <code>glGetString()</code> always returning a list terminated by a space character, contrary to what the code comment claims about &#8220;all conformant platforms&#8221;.</p>
<p><img src="http://danielkitta.org/blog/wp-content/uploads/2010/02/wtf-is-this-shit.jpg" alt="What the fuck is this shit?" title="What the fuck is this shit?" width="306" height="227" /></p>
]]></content:encoded>
			<wfw:commentRss>http://danielkitta.org/blog/2010/02/25/why-i-hate-qt/feed/</wfw:commentRss>
		<slash:comments>55</slash:comments>
		</item>
		<item>
		<title>Simon Singh Wins Leave to Appeal!</title>
		<link>http://danielkitta.org/blog/2009/10/14/simon-singh-wins-leave-to-appeal/</link>
		<comments>http://danielkitta.org/blog/2009/10/14/simon-singh-wins-leave-to-appeal/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 18:39:31 +0000</pubDate>
		<dc:creator>Daniel Elstner</dc:creator>
				<category><![CDATA[Politics]]></category>

		<guid isPermaLink="false">http://danielkitta.org/blog/?p=195</guid>
		<description><![CDATA[Rejoice! Simon Singh wins leave to appeal in BCA libel case! And now it begins!]]></description>
			<content:encoded><![CDATA[<p>Rejoice! <a href="http://www.indexoncensorship.org/2009/10/simon-singh-wins-leave-to-appeal-in-bca-libel-case/">Simon Singh wins leave to appeal in <abbr title="British Chiropractic Association">BCA</abbr> libel case</a>!</p>
<p><em>And now it begins!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://danielkitta.org/blog/2009/10/14/simon-singh-wins-leave-to-appeal/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using config.site to set default options</title>
		<link>http://danielkitta.org/blog/2009/09/21/using-config-site-to-set-default-options/</link>
		<comments>http://danielkitta.org/blog/2009/09/21/using-config-site-to-set-default-options/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 17:20:22 +0000</pubDate>
		<dc:creator>Daniel Elstner</dc:creator>
				<category><![CDATA[Openismus]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://danielkitta.org/blog/?p=182</guid>
		<description><![CDATA[Just a quick note about a little-used feature of GNU Autoconf: site defaults. Until recently, I used to have a long list of assignments to module_autogenargs['...'] in my ~/.jhbuildrc file to set up default configure options for various modules. This became unwieldy and there was always one module I forgot. Autoconf comes to the rescue [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick note about a little-used feature of <abbr title="GNU’s Not Unix">GNU</abbr> <a href="http://www.gnu.org/software/autoconf/">Autoconf</a>: site defaults.</p>
<p>Until recently, I used to have a long list of assignments to <code>module_autogenargs['...']</code> in my <code>~/.jhbuildrc</code> file to set up default <code>configure</code> options for various modules. This became unwieldy and there was always one module I forgot.</p>
<p>Autoconf comes to the rescue with its support for <a href="http://www.gnu.org/software/autoconf/manual/html_node/Site-Defaults.html">site defaults</a>. For illustration, here is my <code>${prefix}/etc/config.site</code> file:</p>
<div class="box-code">
<div><code># Autoconf site defaults</code></div>
<div><code>test -n "$enable_silent_rules" || enable_silent_rules=yes</code></div>
<div><code>test -n "$enable_static" || enable_static=no</code></div>
<div><code>test -n "$enable_warnings" || enable_warnings=fatal</code></div>
</div>
<p>The effect is as if I had passed <code>--enable-silent-rules --disable-static --enable-warnings=fatal</code> to every module&#8217;s <code>./autogen.sh</code>, except that I don&#8217;t get any annoying warnings if a module doesn&#8217;t actually support a particular option. The <code>test</code> conditionals ensure that command-line arguments have precedence over the default values in the <code>config.site</code> file.</p>
<p>Read the manual for the gory details, if you want to. Otherwise, enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://danielkitta.org/blog/2009/09/21/using-config-site-to-set-default-options/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

