Sophie

Sophie

distrib > Mandriva > 2009.1 > x86_64 > media > contrib-backports > by-pkgid > 5449138d6297d4beefc46ffe46a8c51a > files > 90

waf-1.5.11-1mdv2009.1.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.11)</title>
		<author><firstname>Thomas</firstname><surname>Nagy</surname></author>
		<copyright><year>2008-2010</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 framework</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 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. For the impatients: 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. Although these chapters should be read carefully before trying to extend Waf, it may be necessary to consult the examples distributed along the Waf source code to avoid reinventing existing solutions. The next chapters detail examples for the c/c++ languages, and present techniques to address special scenarios which may occur in the most complicated builds. The last chapters are provided as a reference for modifying Waf itself and are aimed at developers.
			</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="build.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="variants.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_system.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>