summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/generated/builders.gen38
-rw-r--r--doc/generated/examples/caching_ex-random_1.xml2
-rw-r--r--doc/generated/examples/troubleshoot_explain1_3.xml2
-rw-r--r--doc/generated/functions.gen34
-rw-r--r--doc/generated/variables.gen11
-rw-r--r--doc/generated/variables.mod2
-rw-r--r--doc/man/scons-time.xml4
-rw-r--r--doc/man/scons.xml16
-rw-r--r--doc/man/sconsign.xml60
-rw-r--r--doc/scons.mod1
-rw-r--r--doc/user/depends.xml11
-rw-r--r--doc/user/less-simple.xml18
12 files changed, 145 insertions, 54 deletions
diff --git a/doc/generated/builders.gen b/doc/generated/builders.gen
index dc05443..7c62558 100644
--- a/doc/generated/builders.gen
+++ b/doc/generated/builders.gen
@@ -849,14 +849,16 @@ Compile files for languages defined in <filename>LINGUAS</filename> file
latest installed version, or the version specified by
<link xmlns="http://www.scons.org/dbxsd/v1.0" linkend="cv-MSVS_VERSION"><envar>$MSVS_VERSION</envar></link> in the Environment constructor). For
Visual Studio 6, it will generate a <filename>.dsp</filename>
- file. For Visual Studio 7 (.NET) and later versions, it will
- generate a <filename>.vcproj</filename> file.
+ file. For Visual Studio 7, 8, and 9, it will
+ generate a <filename>.vcproj</filename> file. For Visual
+ Studio 10 and later, it will generate a
+ <filename>.vcxproj</filename> file.
</para>
<para xmlns="http://www.scons.org/dbxsd/v1.0">
By default, this also generates a solution file for the
specified project, a <filename>.dsw</filename> file for
Visual Studio 6 or a <filename>.sln</filename> file for
- Visual Studio 7 (.NET). This behavior may be disabled by
+ Visual Studio 7 and later. This behavior may be disabled by
specifying <literal>auto_build_solution=0</literal> when you
call <function xmlns="http://www.scons.org/dbxsd/v1.0">MSVSProject</function>, in which case you presumably want to
build the solution file(s) by calling the <function xmlns="http://www.scons.org/dbxsd/v1.0">MSVSSolution</function>
@@ -929,6 +931,36 @@ Compile files for languages defined in <filename>LINGUAS</filename> file
</listitem>
</varlistentry>
<varlistentry>
+ <term>cppdefines</term>
+ <listitem>
+ <para>
+ Preprocessor definitions for the different variants.
+ The number of <literal>cppdefines</literal> entries
+ must match the number of <literal>variant</literal>
+ entries, or be empty (not specified). If you give
+ only one, it will automatically be propagated to all
+ variants. If you don't give this parameter, SCons
+ will use the invoking environment's
+ <literal>CPPDEFINES</literal> entry for all variants.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cpppaths</term>
+ <listitem>
+ <para>
+ Compiler include paths for the different variants.
+ The number of <literal>cpppaths</literal> entries
+ must match the number of <literal>variant</literal>
+ entries, or be empty (not specified). If you give
+ only one, it will automatically be propagated to all
+ variants. If you don't give this parameter, SCons
+ will use the invoking environment's
+ <literal>CPPPATH</literal> entry for all variants.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term>buildtarget</term>
<listitem>
<para>
diff --git a/doc/generated/examples/caching_ex-random_1.xml b/doc/generated/examples/caching_ex-random_1.xml
index 0a432e9..58ff6ae 100644
--- a/doc/generated/examples/caching_ex-random_1.xml
+++ b/doc/generated/examples/caching_ex-random_1.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
-cc -o f5.o -c f5.c
cc -o f3.o -c f3.c
cc -o f2.o -c f2.c
+cc -o f5.o -c f5.c
cc -o f1.o -c f1.c
cc -o f4.o -c f4.c
cc -o prog f1.o f2.o f3.o f4.o f5.o
diff --git a/doc/generated/examples/troubleshoot_explain1_3.xml b/doc/generated/examples/troubleshoot_explain1_3.xml
index ebc13f8..04b09fd 100644
--- a/doc/generated/examples/troubleshoot_explain1_3.xml
+++ b/doc/generated/examples/troubleshoot_explain1_3.xml
@@ -3,5 +3,5 @@
cp file.in file.oout
scons: warning: Cannot find target file.out after building
-File "/home/bdeegan/devel/scons/git/as_scons/src/script/scons.py", line 204, in &lt;module&gt;
+File "/home/bdeegan/devel/scons/git/as_scons/bootstrap/src/script/scons.py", line 204, in &lt;module&gt;
</screen>
diff --git a/doc/generated/functions.gen b/doc/generated/functions.gen
index 9fc9d4b..5e8bebb 100644
--- a/doc/generated/functions.gen
+++ b/doc/generated/functions.gen
@@ -480,7 +480,7 @@ string, in which case a list will be returned instead of a string.
</para>
<para xmlns="http://www.scons.org/dbxsd/v1.0">
-If
+If
<varname>delete_existing</varname>
is 0, then adding a path that already exists
will not move it to the end; it will stay where it is in the list.
@@ -518,7 +518,7 @@ then any value(s) that already exist in the
construction variable will
<emphasis>not</emphasis>
be added again to the list.
-However, if delete_existing is 1,
+However, if delete_existing is 1,
existing matching values are removed first, so
existing values in the arg list move to the end of the list.
</para>
@@ -820,12 +820,14 @@ env4 = env.Clone(tools = ['msvc', MyTool])
<para xmlns="http://www.scons.org/dbxsd/v1.0">
The
<varname>parse_flags</varname>
-keyword argument is also recognized:
+keyword argument is also recognized to allow merging command-line
+style arguments into the appropriate construction
+variables (see <link xmlns="http://www.scons.org/dbxsd/v1.0" linkend="f-MergeFlags"><function>env.MergeFlags</function></link>).
</para>
<example_commands xmlns="http://www.scons.org/dbxsd/v1.0">
# create an environment for compiling programs that use wxWidgets
-wx_env = env.Clone(parse_flags = '!wx-config --cflags --cxxflags')
+wx_env = env.Clone(parse_flags='!wx-config --cflags --cxxflags')
</example_commands>
</listitem>
</varlistentry>
@@ -1137,6 +1139,17 @@ size, or content signature.
</para>
</listitem>
</varlistentry>
+ <varlistentry>
+<term><parameter>repo_node</parameter></term>
+<listitem>
+<para>
+Use this node instead of the one specified by
+<varname>dependency</varname>
+ to determine if the dependency has changed.
+</para>
+</listitem>
+</varlistentry>
+
</variablelist>
</para>
@@ -1173,7 +1186,7 @@ Example:
</para>
<example_commands xmlns="http://www.scons.org/dbxsd/v1.0">
-def my_decider(dependency, target, prev_ni):
+def my_decider(dependency, target, prev_ni, repo_node=None):
return not os.path.exists(str(target))
env.Decider(my_decider)
@@ -2531,9 +2544,9 @@ as the dependency.
</para>
<para xmlns="http://www.scons.org/dbxsd/v1.0">
-Note that this will only remove the dependencies listed from
-the files built by default. It will still be built if that
-dependency is needed by another object being built.
+Note that this will only remove the dependencies listed from
+the files built by default. It will still be built if that
+dependency is needed by another object being built.
See the third and forth examples below.
</para>
@@ -2941,6 +2954,9 @@ and added to the following construction variables:
-frameworkdir= FRAMEWORKPATH
-include CCFLAGS
-isysroot CCFLAGS, LINKFLAGS
+-isystem CCFLAGS
+-iquote CCFLAGS
+-idirafter CCFLAGS
-I CPPPATH
-l LIBS
-L LIBPATH
@@ -3151,7 +3167,7 @@ then any value(s) that already exist in the
construction variable will
<emphasis>not</emphasis>
be added again to the list.
-However, if delete_existing is 1,
+However, if delete_existing is 1,
existing matching values are removed first, so
existing values in the arg list move to the front of the list.
</para>
diff --git a/doc/generated/variables.gen b/doc/generated/variables.gen
index c7048b4..28dfc59 100644
--- a/doc/generated/variables.gen
+++ b/doc/generated/variables.gen
@@ -4495,6 +4495,7 @@ constructor; setting it later has no effect.
<para xmlns="http://www.scons.org/dbxsd/v1.0">
Valid values for Windows are
+<literal>14.2</literal>,
<literal>14.1</literal>,
<literal>14.0</literal>,
<literal>14.0Exp</literal>,
@@ -7343,6 +7344,16 @@ The suffix used for tar file names.
</para>
</listitem>
</varlistentry>
+ <varlistentry id="cv-TEMPFILEARGJOIN">
+ <term>TEMPFILEARGJOIN</term>
+ <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+The string (or character) to be used to join the arguments passed to TEMPFILE when command line exceeds the limit set by <envar xmlns="http://www.scons.org/dbxsd/v1.0">$MAXLINELENGTH</envar>.
+The default value is a space. However for MSVC, MSLINK the default is a line seperator characters as defined by os.linesep.
+Note this value is used literally and not expanded by the subst logic.
+</para>
+</listitem>
+ </varlistentry>
<varlistentry id="cv-TEMPFILEPREFIX">
<term>TEMPFILEPREFIX</term>
<listitem>
diff --git a/doc/generated/variables.mod b/doc/generated/variables.mod
index 28c08dc..47576f4 100644
--- a/doc/generated/variables.mod
+++ b/doc/generated/variables.mod
@@ -544,6 +544,7 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
<!ENTITY cv-TARGET_OS "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$TARGET_OS</envar>">
<!ENTITY cv-TARGETS "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$TARGETS</envar>">
<!ENTITY cv-TARSUFFIX "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$TARSUFFIX</envar>">
+<!ENTITY cv-TEMPFILEARGJOIN "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$TEMPFILEARGJOIN</envar>">
<!ENTITY cv-TEMPFILEPREFIX "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$TEMPFILEPREFIX</envar>">
<!ENTITY cv-TEMPFILESUFFIX "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$TEMPFILESUFFIX</envar>">
<!ENTITY cv-TEX "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$TEX</envar>">
@@ -1183,6 +1184,7 @@ THIS IS AN AUTOMATICALLY-GENERATED FILE. DO NOT EDIT.
<!ENTITY cv-link-TARGET_OS "<link linkend='cv-TARGET_OS' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$TARGET_OS</envar></link>">
<!ENTITY cv-link-TARGETS "<link linkend='cv-TARGETS' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$TARGETS</envar></link>">
<!ENTITY cv-link-TARSUFFIX "<link linkend='cv-TARSUFFIX' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$TARSUFFIX</envar></link>">
+<!ENTITY cv-link-TEMPFILEARGJOIN "<link linkend='cv-TEMPFILEARGJOIN' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$TEMPFILEARGJOIN</envar></link>">
<!ENTITY cv-link-TEMPFILEPREFIX "<link linkend='cv-TEMPFILEPREFIX' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$TEMPFILEPREFIX</envar></link>">
<!ENTITY cv-link-TEMPFILESUFFIX "<link linkend='cv-TEMPFILESUFFIX' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$TEMPFILESUFFIX</envar></link>">
<!ENTITY cv-link-TEX "<link linkend='cv-TEX' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$TEX</envar></link>">
diff --git a/doc/man/scons-time.xml b/doc/man/scons-time.xml
index 80dc041..7251c9f 100644
--- a/doc/man/scons-time.xml
+++ b/doc/man/scons-time.xml
@@ -32,8 +32,8 @@
<refmeta>
<refentrytitle>SCONS-TIME</refentrytitle>
<manvolnum>1</manvolnum>
-<refmiscinfo class='source'>SCons 3.0.5</refmiscinfo>
-<refmiscinfo class='manual'>SCons 3.0.5</refmiscinfo>
+<refmiscinfo class='source'>SCons 3.1.0</refmiscinfo>
+<refmiscinfo class='manual'>SCons 3.1.0</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>scons-time</refname>
diff --git a/doc/man/scons.xml b/doc/man/scons.xml
index 2f5eb32..dd9fbdd 100644
--- a/doc/man/scons.xml
+++ b/doc/man/scons.xml
@@ -75,8 +75,8 @@
<refmeta>
<refentrytitle>SCONS</refentrytitle>
<manvolnum>1</manvolnum>
-<refmiscinfo class='source'>SCons 3.0.5</refmiscinfo>
-<refmiscinfo class='manual'>SCons 3.0.5</refmiscinfo>
+<refmiscinfo class='source'>SCons 3.1.0</refmiscinfo>
+<refmiscinfo class='manual'>SCons 3.1.0</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>scons</refname>
@@ -2043,7 +2043,7 @@ env['BAR'] = 'bar'
construction variables may also be set or modified by the
<emphasis>parse_flags</emphasis>
keyword argument, which applies the
-<emphasis role="bold">ParseFlags</emphasis>
+&f-link-env-MergeFlags;
method (described below) to the argument value
after all other processing is completed.
This is useful either if the exact content of the flags is unknown
@@ -2051,7 +2051,7 @@ This is useful either if the exact content of the flags is unknown
or if the flags are distributed to a number of construction variables.</para>
<literallayout class="monospaced">
-env = Environment(parse_flags = '-Iinclude -DEBUG -lm')
+env = Environment(parse_flags='-Iinclude -DEBUG -lm')
</literallayout>
<para>This example adds 'include' to
@@ -2439,10 +2439,14 @@ see the descriptions of these variables, below, for more information.)</para>
<para>It is also possible to use the
<emphasis>parse_flags</emphasis>
-keyword argument in an override:</para>
+keyword argument in an override,
+to merge command-line style arguments
+into the appropriate construction variables
+(see &f-link-env-MergeFlags;).
+</para>
<literallayout class="monospaced">
-env = Program('hello', 'hello.c', parse_flags = '-Iinclude -DEBUG -lm')
+env = Program('hello', 'hello.c', parse_flags='-Iinclude -DEBUG -lm')
</literallayout>
<para>This example adds 'include' to
diff --git a/doc/man/sconsign.xml b/doc/man/sconsign.xml
index 2f0d66c..f70bb62 100644
--- a/doc/man/sconsign.xml
+++ b/doc/man/sconsign.xml
@@ -32,20 +32,19 @@
<refmeta>
<refentrytitle>SCONSIGN</refentrytitle>
<manvolnum>1</manvolnum>
-<refmiscinfo class='source'>SCons 3.0.5</refmiscinfo>
-<refmiscinfo class='manual'>SCons 3.0.5</refmiscinfo>
+<refmiscinfo class='source'>SCons 3.1.0</refmiscinfo>
+<refmiscinfo class='manual'>SCons 3.1.0</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>sconsign</refname>
-<refpurpose>print SCons .sconsign file information</refpurpose>
+<refpurpose>print SCons signature file information</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>sconsign</command>
<arg choice='opt' rep='repeat'><replaceable>options</replaceable></arg>
- <arg choice='plain'><replaceable>file</replaceable></arg>
- <arg choice='opt'><replaceable>...</replaceable></arg>
+ <arg choice='opt' rep='repeat'><replaceable>file</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
@@ -54,30 +53,38 @@
<para>The
<command>sconsign</command>
command
-displays the contents of one or more
-<markup>.sconsign</markup>
+displays the contents of one or more signature
+("<markup>sconsign</markup>")
files specified by the user.</para>
<para>By default,
<command>sconsign</command>
dumps the entire contents of the
specified file(s).
-Each entry is printed in the following format:</para>
+Without the verbose option,
+each entry is printed in the following format:</para>
-<para> file: signature timestamp length
- implicit_dependency_1: signature timestamp length
- implicit_dependency_2: signature timestamp length
- action_signature [action string]</para>
+<literallayout class="monospaced">
+file: signature timestamp length
+ implicit_dependency_1: signature timestamp length
+ implicit_dependency_2: signature timestamp length
+ ...
+ action_signature [action string]
+</literallayout>
<para><emphasis role="bold">None</emphasis>
is printed
-in place of any missing timestamp, bsig, or csig
+in place of any missing timestamp, build signature ("bsig"),
+or content signature ("csig")
values for
any entry
or any of its dependencies.
If the entry has no implicit dependencies,
or no build action,
-the lines are simply omitted.</para>
+the lines are simply omitted.
+The verbose option expands the display into a more human
+readable format.
+</para>
<para>By default,
<command>sconsign</command>
@@ -90,7 +97,7 @@ signature entries for
more than one directory
(that is,
was specified by the
-<emphasis role="bold">SConsignFile ()</emphasis>
+<emphasis role="bold">SConsignFile</emphasis>
function).
Any
<emphasis>file</emphasis>
@@ -103,13 +110,21 @@ for a single directory.
If neither of those is true,
<command>sconsign</command>
attempts to guess the format.
-If that does not work,
+If that does not work,
an explicit format
may be specified using the
<option>-f</option>
or
<option>--format=</option>
-options.</para>
+options.
+</para>
+<para>
+If there are no
+<emphasis>file</emphasis>
+arguments, the name
+<filename>.sconsign.dblite</filename>
+is assumed.
+</para>
</refsect1>
@@ -175,7 +190,7 @@ Legal values are
<emphasis role="bold">dbm</emphasis>
(the DBM format used
when the
-<emphasis role="bold">SConsignFile</emphasis>()
+<emphasis role="bold">SConsignFile</emphasis>
function is used)
or
<command>sconsign</command>
@@ -197,7 +212,7 @@ file in each directory).</para>
<term>-i, --implicit</term>
<listitem>
<para>Prints the list of cached implicit dependencies
-for all entries or the the specified entries.</para>
+for all entries or for the specified entries.</para>
</listitem>
</varlistentry>
@@ -206,8 +221,8 @@ for all entries or the the specified entries.</para>
<listitem>
<para>Prints a pretty-printed representation
of the raw Python dictionary that holds
-build information about individual entry
-(both the entry itself or its implicit dependencies).
+build information about individual entries
+(both the entry itself and its implicit dependencies).
An entry's build action is still printed in its usual format.</para>
</listitem>
@@ -244,7 +259,8 @@ for all entries or the specified entries.</para>
<term>SCONS_LIB_DIR</term>
<listitem>
<para>Specifies the directory that contains the SCons Python module directory
-(e.g. /home/aroach/scons-src-0.01/src/engine).
+(e.g.
+<filename class='directory'>/home/aroach/scons-src-0.01/src/engine</filename>).
on the command line.</para>
</listitem>
diff --git a/doc/scons.mod b/doc/scons.mod
index ea9ad4e..cf46e3b 100644
--- a/doc/scons.mod
+++ b/doc/scons.mod
@@ -67,6 +67,7 @@
<!ENTITY Action "<classname xmlns='http://www.scons.org/dbxsd/v1.0'>Action</classname>">
<!ENTITY ActionBase "<classname xmlns='http://www.scons.org/dbxsd/v1.0'>ActionBase</classname>">
+<!ENTITY BuildInfo "<classname xmlns='http://www.scons.org/dbxsd/v1.0'>BuildInfo</classname>">
<!ENTITY CommandAction "<classname xmlns='http://www.scons.org/dbxsd/v1.0'>CommandAction</classname>">
<!ENTITY FunctionAction "<classname xmlns='http://www.scons.org/dbxsd/v1.0'>FunctionAction</classname>">
<!ENTITY ListAction "<classname xmlns='http://www.scons.org/dbxsd/v1.0'>ListAction</classname>">
diff --git a/doc/user/depends.xml b/doc/user/depends.xml
index 35372e7..bb0a142 100644
--- a/doc/user/depends.xml
+++ b/doc/user/depends.xml
@@ -517,7 +517,7 @@ cc -o hello hello.o
<scons_example name="depends_function">
<file name="SConstruct" printme="1">
Program('hello.c')
-def decide_if_changed(dependency, target, prev_ni):
+def decide_if_changed(dependency, target, prev_ni, repo_node=None):
if dependency.get_timestamp() != prev_ni.timestamp:
dep = str(dependency)
tgt = str(target)
@@ -561,6 +561,13 @@ int main() { printf("Hello, world!\n"); }
</para>
+ <para>
+ The fourth argument <varname>repo_node</varname>,
+ is the &Node; to use if it is not None when comparing &BuildInfo;.
+ This is typically only set when the target node only exists in a
+ &Repository;
+ </para>
+
<variablelist>
<varlistentry>
@@ -637,7 +644,7 @@ int main() { printf("Hello, world!\n"); }
<sconstruct>
env = Environment()
-def config_file_decider(dependency, target, prev_ni):
+def config_file_decider(dependency, target, prev_ni, repo_node=None):
import os.path
# We always have to init the .csig value...
diff --git a/doc/user/less-simple.xml b/doc/user/less-simple.xml
index 6de1075..e8ff44a 100644
--- a/doc/user/less-simple.xml
+++ b/doc/user/less-simple.xml
@@ -2,7 +2,7 @@
<!DOCTYPE sconsdoc [
<!ENTITY % scons SYSTEM "../scons.mod">
%scons;
-
+
<!ENTITY % builders-mod SYSTEM "../generated/builders.mod">
%builders-mod;
<!ENTITY % functions-mod SYSTEM "../generated/functions.mod">
@@ -257,7 +257,7 @@ Program('program', Glob('*.c'))
(see <xref linkend="chap-variants"></xref>, below)
and repositories
(see <xref linkend="chap-repositories"></xref>, below),
- excluding some files
+ excluding some files
and returning strings rather than Nodes.
</para>
@@ -311,7 +311,7 @@ Program('hello', ['hello.c'])
</para>
<important>
-
+
<para>
Although &SCons; functions
@@ -359,7 +359,7 @@ Program('program2', common_sources + ['program2.c'])
<para>
One drawback to the use of a Python list
- for source files is that
+ for source files is that
each file name must be enclosed in quotes
(either single quotes or double quotes).
This can get cumbersome and difficult to read
@@ -675,8 +675,10 @@ env.SharedLibrary('word', 'word.cpp',
<para>
- It is also possible to use the <literal>parse_flags</literal> keyword argument in an
- override:
+ It is also possible to use the <literal>parse_flags</literal>
+ keyword argument in an override to merge command-line
+ style arguments into the appropriate construction
+ variables (see &f-link-env-MergeFlags;).
</para>
@@ -688,7 +690,7 @@ env.SharedLibrary('word', 'word.cpp',
</para>
<programlisting>
-env = Program('hello', 'hello.c', parse_flags = '-Iinclude -DEBUG -lm')
+env = Program('hello', 'hello.c', parse_flags='-Iinclude -DEBUG -lm')
</programlisting>
<para>
@@ -701,4 +703,4 @@ env = Program('hello', 'hello.c', parse_flags = '-Iinclude -DEBUG -lm')
</section>
-</chapter> \ No newline at end of file
+</chapter>