Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 2053a0d9eaaf755b990f80ce4df504a7 > files > 89

waf-1.5.9-1mdv2010.0.noarch.rpm

<?xml version='1.0'?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" >
<book>
	<bookinfo>
		<title>The Waf Book (v1.5.9)</title>
		<author><firstname>Thomas</firstname><surname>Nagy</surname></author>
		<copyright><year>2008-2009</year><holder>Thomas Nagy</holder></copyright>

	<legalnotice>
		<para>
			 Copies of this book may be redistributed, verbatim, and for non-commercial purposes. The license for this book is <ulink url="http://creativecommons.org/licenses/by-nc-nd/3.0/">by-nc-nd license</ulink>
		</para>
	</legalnotice>
	</bookinfo>

	<preface id="preface">
		<title>Preface</title>
		<section id="about_build_systems">
			<title>About build systems in general</title>
			<para>As software is becoming increasingly complex, the process of creating software is becoming more complex too. Today's software uses various languages, requires various compilers, and the input data is spread into many files.</para>
			<para>Software is now used to express the process of building software, it can take the form of simple scripts (shell scripts, makefiles), of compilers (CMake, Qmake), or complete applications (SCons, Waf). The term &quot;build system&quot; is used to design the tools used to build applications.</para>
		</section>
		<section id="waf_system">
			<title>The Waf approach</title>
			<para>Build systems make assumptions on software it is trying to build, and are typically limited where it comes to processing other languages or different projects. For example, Ant is better suited than Make for managing Java projects, but is more limited than Make for managing simple c projects.</para>
			<para>There are so many different languages that creating a build system to support all the possible kind of projects out-of-the-box is likely to be difficult. It looks much more interesting to create one which can be extended easily.</para>
			<para>The Waf approach is to provide a minimalistic and very flexible framework, which is packaged it with a significant amount of default build rules to be usable for most projects, and many recipes for the most complicated scenarios.</para>
		</section>
		<section id="objectives">
			<title>Objectives of this book</title>
			<para>The objectives of this book is to expose the use of the Waf build system though the use of Waf in practice, the description of the Waf extension system, and detailed review of the Waf internals. Those who are impatient to see Waf in action should open the folder <emphasis>demos/</emphasis> in the Waf distribution, and start looking at the examples.
			</para>
			<para>The first chapters contain a detailed description of the basic use of Waf. The chapters on Configuration, Tasks, and Task generators describe the internals. These chapters should be read carefully before trying to extend Waf. The next chapters contain examples for the languages such as C++, and for special scenarios which may occur in the most complicated builds. The last chapters are provided as a reference for those who may need to modify Waf itself.
			</para>
		</section>
	</preface>

<title>The Waf book</title>

<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="getting_started.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="execution.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="configuration.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="distributing.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="task_system.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="task_generators.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="task_schedulers.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="c_builds.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="scenarios.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="scripting.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="development.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="architecture.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="conclusion.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="glossary.xml"/>

<!--
<note>exemple de note</note>
<warning>exemple de warning</warning>
-->

</book>