WALi and OpenNWA
- Boost (old versions are OK; we actually variously use 1.33.1 and 1.42)
- G++ or MSVC
Optional prerequsites for the
scons tests pseudotarget (or
- internet connection (will download Google Test automatically; no system-wide installation is done)
Optional prerequsites for Doxygen documentation:
- Doxygen (we use 1.7.1)
Optional prerequsites for Latex documentation:
- Latex (we use TexLive 2010, but it has also built with MikTex)
- pygments <http://pygments.org/>
- dot2tex <http://www.fauskes.net/code/dot2tex/> (optional even if you are building the documentation; we have 2.8.7)
Building the Library
To build, simply run
scons. By default, this will build the library (a
shared library with GCC and a static library for MSVC) and OpenNWA
executables. Other possible targets are:
addonsBuild the contents of
AddOns/, such as the XML WPDS parser
examplesBuild the contents of
testsBuild the contents of
Tests/, including the NWA unit tests. The NWA unit tests build to
unit-tests.exe) but are not automatically run. The tests must be run from the
Tests/harness/unit-testsdirectory, but a wrapper script
unit-tests.shexists at the top level to change to that directory and run them.
CMake either needs to be picked up by SCons by default (and it does NOT look at your
$PATH) or set the
$CMAKEenvironment variable to point to the executable.
The NWA tests are actually reasonably complete, relative to the Latex documentation. TODO.txt mentions the omissions. Also mostly omitted are a number of functions that did not make it into the Latex documentation.
allBuild everything! (This target is currently broken. Sorry.)
You can pass
arch=x86 to SCons if you are on a 64-bit Linux machine to get
a 32-bit build. (The 32 and 64 bit builds live next to each other, so they can
coexist.) Note: because of the way
cmake is called for the Google Test
library, you probably won't be able to do this for the
You can also pass
CXX=... to pick the particular compiler, e.g.
CXX=icc. (If you are using compilers other than GCC or CL, you'll probably
also have to pass
strong_warnings=0 to disable a bunch of -W flags that
your compiler probably doesn't understand.)
There is also a Visual Studio 2005 project, though the NWA unit tests aren't hooked up for this at all.
WALi and OpenNWA are built to a single library, which will be copied into the lib/ or lib64/ directory. Addons will be built to other shared libraries in that directory.
To get Doxygen output, run
doxygen Doxyfile from the top-level directory.
By default, it will generate HTML output to
Doc/doxygen/html and Latex
make in the latter directory to
build the Latex to a PDF.)
To build the NWA documentation, change to
Doc/opennwa/ and run
-shell-escape is required by the pygmentize package,
used for source-highlighting the example code at the beginning.) If you would
like to rebuild the figures (though this is not necessary if you do not
change them), change to Doc/opennwa/Figures and run
make. Note that a
couple of the figures used in the official version of the NWA manual have
been modified by hand, and regenerating them will cause those changes to be
The NWA documentation is a little bit... strange. It doesn't quite know what it wants to be. It's way too long to just sit down and read, but is probably less convenient to use as a reference than, say, Doxygen comments would be. (The exception is the function tables at the end of the document.) But... we also have Doxygen comments, and they aren't usually the same. So at some point in the future, we need to unify the comments. (In virtually all cases, the Latex documentation is far more detailed.)
My suggestion is to look over sections 1 ("Library Overview") and 3 ("The NWA class"), and then refer to the more detailed sections as appropriate.