<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to BuildCodeAster</title><link>https://sourceforge.net/p/codeaster/wiki/BuildCodeAster/</link><description>Recent changes to BuildCodeAster</description><atom:link href="https://sourceforge.net/p/codeaster/wiki/BuildCodeAster/feed" rel="self"/><language>en</language><lastBuildDate>Tue, 25 Aug 2020 07:24:52 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/codeaster/wiki/BuildCodeAster/feed" rel="self" type="application/rss+xml"/><item><title>BuildCodeAster modified by codeaster</title><link>https://sourceforge.net/p/codeaster/wiki/BuildCodeAster/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -88,7 +88,7 @@

 * Here is an example of use of the configuration file created by the *aster-full*
-  package (extract from the [Tutorial][]):
+  package (extract from the [Tutorial](Tutorial)):

 ```
 #!bash
@@ -179,7 +179,7 @@
     ./waf_mpi install -p
 ```

-See the [Tutorial][] to add your development versions in `astk` and in `eficas`.
+See the [Tutorial](Tutorial) to add your development versions in `astk` and in `eficas`.


 ### Examples of configuration ###
@@ -279,7 +279,6 @@


 [code_aster]: http://www.code-aster.org
-[Tutorial]: http://hg.code.sf.net/p/codeaster/src/wiki/Tutorial
 [waf]: https://waf.io
 [waf book]: https://waf.io/book
 [waf_build_outputs]: https://waf.io/book/#_custom_build_outputs
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">codeaster</dc:creator><pubDate>Tue, 25 Aug 2020 07:24:52 -0000</pubDate><guid>https://sourceforge.net06434c519ba2c2305f433cae9b79b44ca26dc5ef</guid></item><item><title>BuildCodeAster modified by codeaster</title><link>https://sourceforge.net/p/codeaster/wiki/BuildCodeAster/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Table of contents:&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#building-code_aster-using-waf"&gt;Building code_aster using waf&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#prerequisites"&gt;Prerequisites&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#some-words-on-waf"&gt;Some words on waf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#customizing-the-configuration"&gt;Customizing the configuration&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#shell-environment"&gt;Shell environment&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#installation-of-the-testcases"&gt;Installation of the testcases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#using-several-configurations"&gt;Using several configurations&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#examples-of-configuration"&gt;Examples of configuration&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#additional-features"&gt;Additional features&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#running-testcases"&gt;Running testcases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#building-old-versions"&gt;Building old versions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#resources"&gt;Resources&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h1 id="building-code_aster-using-waf"&gt;Building code_aster using waf&lt;/h1&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;code_aster needs some pre-installed components before being built.&lt;/p&gt;
&lt;p&gt;This wiki supposes that you already installed a stable version of code_aster using the &lt;em&gt;aster-full&lt;/em&gt; packages.&lt;/p&gt;
&lt;p&gt;See &lt;a class="" href="https://www.code-aster.org/V2/spip.php?article90" rel="nofollow"&gt;download page&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="some-words-on-waf"&gt;Some words on waf&lt;/h2&gt;
&lt;p&gt;code_aster is using &lt;a href="https://waf.io" rel="nofollow"&gt;waf&lt;/a&gt; as build system, with extensions.&lt;/p&gt;
&lt;p&gt;It does the tasks of configuration (as &lt;code&gt;configure&lt;/code&gt; does for the &lt;code&gt;autotools&lt;/code&gt;),&lt;br/&gt;
of compilation (as &lt;code&gt;make&lt;/code&gt; does) and of installation (as a &lt;code&gt;make install&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Assuming that the prerequisites have been installed by the &lt;em&gt;aster-full&lt;/em&gt; package, you may run:&lt;/p&gt;
&lt;table class="codehilitetable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3
4&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;    &lt;span class="nb"&gt;source&lt;/span&gt; &lt;span class="nv"&gt;$ASTER_ROOT&lt;/span&gt;/&lt;span class="nv"&gt;$ASTER_VERSION&lt;/span&gt;/share/aster/profile_mfront.sh
    ./waf configure --use-config-dir&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ASTER_ROOT&lt;/span&gt;/&lt;span class="nv"&gt;$ASTER_VERSION&lt;/span&gt;/share/aster --use-config&lt;span class="o"&gt;=&lt;/span&gt;aster_full_config &lt;span class="se"&gt;\&lt;/span&gt;
                    --prefix&lt;span class="o"&gt;=&lt;/span&gt;../install/std
    ./waf install -p
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;This is an example&lt;/strong&gt;, please read further for more informations about the &lt;code&gt;--use-config&lt;/code&gt; option.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ASTER_ROOT&lt;/code&gt; is the installation prefix chosen during installation of the &lt;em&gt;aster-full&lt;/em&gt; package.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ASTER_VERSION&lt;/code&gt; is the version number: &lt;code&gt;13.4&lt;/code&gt; for example.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;aster-full&lt;/em&gt; package, since 13.4, provides an environment file for MFront (&lt;code&gt;profile_mfront.sh&lt;/code&gt;). You must source it before running &lt;code&gt;waf configure...&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;By default, the &lt;em&gt;variant&lt;/em&gt; named &lt;strong&gt;release&lt;/strong&gt; is built (it means &lt;em&gt;compilation with&lt;br/&gt;
optimization for performance&lt;/em&gt;).&lt;br/&gt;
Another variant named &lt;strong&gt;debug&lt;/strong&gt; is available (with debugging symbols).&lt;br/&gt;
To build the debug binary, just add &lt;code&gt;_debug&lt;/code&gt; to the command name.&lt;/p&gt;
&lt;p&gt;You can build the both variants with:&lt;/p&gt;
&lt;table class="codehilitetable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;    ./waf install install_debug -p
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;blockquote&gt;
&lt;p&gt;The both variants are using the same configuration variables.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The other commands are: &lt;code&gt;build&lt;/code&gt;, &lt;code&gt;clean&lt;/code&gt;, &lt;code&gt;uninstall&lt;/code&gt; (and their &lt;code&gt;_debug&lt;/code&gt; variants).&lt;/p&gt;
&lt;p&gt;See also the section &lt;em&gt;Using several configurations&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;waf manual with code_aster extensions:&lt;/p&gt;
&lt;table class="codehilitetable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;    ./waf --help
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;h2 id="customizing-the-configuration"&gt;Customizing the configuration&lt;/h2&gt;
&lt;p&gt;The libraries and header files are searched in standard paths by default.&lt;br/&gt;
The search paths can be customized using the environment variables &lt;code&gt;LIBPATH&lt;/code&gt;&lt;br/&gt;
and &lt;code&gt;INCLUDES&lt;/code&gt;. Compiler and linker options can also be changed using environment.&lt;br/&gt;
See &lt;code&gt;waf --help&lt;/code&gt; for details.&lt;/p&gt;
&lt;p&gt;Instead of defining a lot of environment variables, it is possible to store&lt;br/&gt;
all the parameters in a Python file that will be imported using the&lt;br/&gt;
&lt;code&gt;--use-config&lt;/code&gt; option.&lt;/p&gt;
&lt;p&gt;By default, configuration files are imported from the &lt;code&gt;./wafcfg/&lt;/code&gt; directory.&lt;br/&gt;
You can find some examples there.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Several configuration files can be imported. See the Examples sections later.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The related &lt;code&gt;--use-config-dir&lt;/code&gt; option defines a directory or an url that contains&lt;br/&gt;
the configuration files for different machines.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Here is an example of use of the configuration file created by the &lt;em&gt;aster-full&lt;/em&gt;&lt;br/&gt;
  package (extract from the &lt;a href="http://hg.code.sf.net/p/codeaster/src/wiki/Tutorial" rel="nofollow"&gt;Tutorial&lt;/a&gt;):&lt;/li&gt;
&lt;/ul&gt;
&lt;table class="codehilitetable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3
4&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;    &lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;$HOME&lt;/span&gt;/dev/codeaster/src
    ./waf configure --use-config-dir&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ASTER_ROOT&lt;/span&gt;/&lt;span class="nv"&gt;$ASTER_VERSION&lt;/span&gt;/share/aster --use-config&lt;span class="o"&gt;=&lt;/span&gt;aster_full_config &lt;span class="se"&gt;\&lt;/span&gt;
                    --prefix&lt;span class="o"&gt;=&lt;/span&gt;../install/std
    ./waf install -p
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;h3 id="shell-environment"&gt;Shell environment&lt;/h3&gt;
&lt;p&gt;If a specific environment is required for the compiler or a prerequisites,&lt;br/&gt;
you must source it before running &lt;code&gt;waf configure&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The environment variables &lt;code&gt;LD_LIBRARY_PATH&lt;/code&gt;, &lt;code&gt;PYTHONPATH&lt;/code&gt; and &lt;code&gt;PYTHONHOME&lt;/code&gt; will&lt;br/&gt;
be automatically exported in the code_aster environment at execution.&lt;/p&gt;
&lt;h2 id="installation-of-the-testcases"&gt;Installation of the testcases&lt;/h2&gt;
&lt;p&gt;The testcases are not installed by default.&lt;/p&gt;
&lt;p&gt;You can ask their installation during &lt;code&gt;waf configure&lt;/code&gt; (all following commands will use it)&lt;br/&gt;
by adding the &lt;code&gt;--install-tests&lt;/code&gt; option.&lt;/p&gt;
&lt;p&gt;You can also enable this option during installation:&lt;/p&gt;
&lt;table class="codehilitetable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;    ./waf install --install-tests
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;h2 id="using-several-configurations"&gt;Using several configurations&lt;/h2&gt;
&lt;p&gt;As previously explained, there are two build &lt;em&gt;variants&lt;/em&gt;: &lt;strong&gt;debug&lt;/strong&gt; and &lt;strong&gt;release&lt;/strong&gt;.&lt;br/&gt;
They use the same &lt;em&gt;configuration&lt;/em&gt;: the same compilation options, the same&lt;br/&gt;
libraries, the same installation prefix, etc.&lt;/p&gt;
&lt;p&gt;To build a version with different compilation options, different libraries,&lt;br/&gt;
and/or different compilers, another configuration must be defined.&lt;br/&gt;
So &lt;code&gt;waf configure...&lt;/code&gt; must be executed differently to have several configurations&lt;br/&gt;
in the same source tree.&lt;/p&gt;
&lt;p&gt;To do that with waf, we use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;the &lt;code&gt;--prefix=...&lt;/code&gt; option to define the installation directory&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;a configuration file with &lt;code&gt;--use-config=...&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;the &lt;code&gt;--out=...&lt;/code&gt; option to choose another build directory&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;and the environment variable &lt;code&gt;WAFLOCK&lt;/code&gt; to not mix the different configurations.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Okay... A simpler way is to use an alias script that set the &lt;code&gt;WAFLOCK&lt;/code&gt;&lt;br/&gt;
variable and pass the &lt;code&gt;--out&lt;/code&gt; option to waf:&lt;/p&gt;
&lt;table class="codehilitetable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;    &lt;span class="c1"&gt;#!/bin/bash&lt;/span&gt;
    &lt;span class="nv"&gt;suffix&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;basename &lt;span class="nv"&gt;$0&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sed &lt;span class="s1"&gt;'s/^waf_//'&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;
    &lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;WAFLOCK&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;.lock-&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;suffix&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;_build &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; ./waf --out&lt;span class="o"&gt;=&lt;/span&gt;build/&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;suffix&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="nv"&gt;$*&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;blockquote&gt;
&lt;p&gt;As you can see, the name of the script is used to define the &lt;code&gt;suffix&lt;/code&gt; variable.&lt;br/&gt;
So it can be copied several times to manage several configurations.&lt;br/&gt;
This script must be named &lt;code&gt;waf_xxx&lt;/code&gt; (usually &lt;code&gt;waf_mpi&lt;/code&gt;, &lt;code&gt;waf_intel&lt;/code&gt;...).&lt;br/&gt;
It already exists in the source tree and named &lt;code&gt;waf_variant&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Just add a symbolic link to this script to create an alias &lt;code&gt;waf_mpi&lt;/code&gt;:&lt;/p&gt;
&lt;table class="codehilitetable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;    &lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;$HOME&lt;/span&gt;/dev/codeaster/src
    ln -s waf_variant waf_mpi
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;Then, just call &lt;code&gt;waf_mpi&lt;/code&gt; instead of &lt;code&gt;waf&lt;/code&gt;:&lt;/p&gt;
&lt;table class="codehilitetable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;    ./waf_mpi configure --use-config&lt;span class="o"&gt;=&lt;/span&gt;xxxx_mpi --prefix&lt;span class="o"&gt;=&lt;/span&gt;../install/mpi
    ./waf_mpi install -p
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;See the &lt;a href="http://hg.code.sf.net/p/codeaster/src/wiki/Tutorial" rel="nofollow"&gt;Tutorial&lt;/a&gt; to add your development versions in &lt;code&gt;astk&lt;/code&gt; and in &lt;code&gt;eficas&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="examples-of-configuration"&gt;Examples of configuration&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Load more than one configuration file.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, to use the Intel compilers:&lt;/p&gt;
&lt;p&gt;This customization is provided in the code_aster source tree, in the &lt;code&gt;wafcfg&lt;/code&gt;&lt;br/&gt;
   directory. Assuming you already have a configuration named &lt;code&gt;computer.py&lt;/code&gt;&lt;br/&gt;
   in the &lt;code&gt;$HOME/mywafcfg&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To test another configuration using Intel compilers (and by keeping your standard&lt;br/&gt;
   build), you could run:&lt;/p&gt;
&lt;table class="codehilitetable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3
4
5
6
7&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;    &lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;$HOME&lt;/span&gt;/dev/codeaster/src
    ln -s waf_variant waf_intel

    ./waf_intel configure --use-config-dir&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;/mywafcfg --use-config&lt;span class="o"&gt;=&lt;/span&gt;intel,computer &lt;span class="se"&gt;\&lt;/span&gt;
                          --prefix&lt;span class="o"&gt;=&lt;/span&gt;../install/intel

    ./waf_intel install -p
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;h2 id="additional-features"&gt;Additional features&lt;/h2&gt;
&lt;h3 id="running-testcases"&gt;Running testcases&lt;/h3&gt;
&lt;p&gt;The feature has been added to quickly check a testcase.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;-n|--name&lt;/code&gt; option can be repeated to run several testcases. The idea is not&lt;br/&gt;
to replace &lt;code&gt;astout&lt;/code&gt; in &lt;code&gt;as_run&lt;/code&gt; but to have a very quick shortcut to check a testcase.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;table class="codehilitetable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;    $ ./waf &lt;span class="nb"&gt;test&lt;/span&gt; -n sslp114a -n ssnv15a

    Waf: Entering directory &lt;span class="sb"&gt;`&lt;/span&gt;/home/courtois/dev/codeaster/src/build/release&lt;span class="s1"&gt;'&lt;/span&gt;
&lt;span class="s1"&gt;    destination of output files: /tmp/runtest_pp3IwA&lt;/span&gt;
&lt;span class="s1"&gt;    running zzzz100c in '&lt;/span&gt;release&lt;span class="s1"&gt;'&lt;/span&gt;
&lt;span class="s1"&gt;    `- output in /tmp/runtest_pp3IwA/zzzz100c.output&lt;/span&gt;
&lt;span class="s1"&gt;    `- exit 0&lt;/span&gt;
&lt;span class="s1"&gt;    running zzzz100d in '&lt;/span&gt;release&lt;span class="s1"&gt;'&lt;/span&gt;
&lt;span class="s1"&gt;    `- output in /tmp/runtest_pp3IwA/zzzz100d.output&lt;/span&gt;
&lt;span class="s1"&gt;    `- exit 4&lt;/span&gt;
&lt;span class="s1"&gt;    Waf: Leaving directory `/home/courtois/dev/codeaster/src/build/release'&lt;/span&gt;
    &lt;span class="s1"&gt;'test'&lt;/span&gt; finished successfully &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;.134s&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;In this example, the first testcase passed with success (&lt;code&gt;exit 0&lt;/code&gt;), the second&lt;br/&gt;
failed (&lt;code&gt;exit 4&lt;/code&gt; in red). This is the exit code of &lt;code&gt;as_run&lt;/code&gt;.&lt;br/&gt;
Another possible value is &lt;code&gt;nook&lt;/code&gt; (in red).&lt;/p&gt;
&lt;p&gt;The testcases are run interactively (not using a batch scheduler). The results&lt;br/&gt;
are stored in a temporary directory.&lt;/p&gt;
&lt;p&gt;The command &lt;code&gt;waf test_debug&lt;/code&gt; works in the same manner using the binary installed&lt;br/&gt;
by &lt;code&gt;waf install_debug&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;More options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--exectool=debugger&lt;/code&gt;: run the testcase through the &lt;em&gt;debugger&lt;/em&gt; as configured&lt;br/&gt;
  in &lt;code&gt;astk/as_run&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--exectool=valgrind&lt;/code&gt;: run &lt;code&gt;valgrind&lt;/code&gt; (or another tool) as configured&lt;br/&gt;
  in &lt;code&gt;astk/as_run&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These options are usually called with the &lt;strong&gt;debug&lt;/strong&gt; variant, so with&lt;br/&gt;
&lt;code&gt;waf test_debug&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;table class="codehilitetable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;    waf test_debug --exectool&lt;span class="o"&gt;=&lt;/span&gt;debugger -n sslp114a
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;h2 id="building-old-versions"&gt;Building old versions&lt;/h2&gt;
&lt;p&gt;waf is only available starting from versions 11.4.0/12.0.0.&lt;br/&gt;
To build older versions (it should be possible), &lt;code&gt;bibpyt/Lecture_Cata_Ele&lt;/code&gt;&lt;br/&gt;
must be changed to a newer revision.&lt;/p&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href="https://waf.io/book" rel="nofollow"&gt;waf book&lt;/a&gt;, section on the &lt;a href="https://waf.io/book/#_custom_build_outputs" rel="nofollow"&gt;multiple configurations&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">codeaster</dc:creator><pubDate>Tue, 25 Aug 2020 07:21:59 -0000</pubDate><guid>https://sourceforge.netef1e3bfaa42e9da929704b5934b1e2c80de62014</guid></item></channel></rss>