<?xml version="1.0" ?>
<notes>
<h2>System Requirements</h2>
To build run <em>CScout</em> your system must satisfy the following
requirements:
<ul>
	<li>Have a relatively modern C++ compiler that supports
	the <code>-std=c++11</code> flag.  <em>CScout</em>
	has been built and tested both with GCC and LLVM.
<li> Have an installation of the <a href="http://www.perl.org">Perl</a>
interpreter
<li> Contain the include files of the compiler your programs use
<!-- (unless your programs only include the ANSI C include files from
the system's include directory) -->
<li> Support a Web browser (text or graphics-based).
<em>CScout</em> uses vanilla HTML and has been tested with
Firefox, SeaMonkey, Mozilla, Safari,
the Microsoft Internet Explorer, and Lynx.
<li> (Optional, needed only for displaying call and dependency graphs.)
Have an installation of the AT&amp;T
<a href="http://www.graphviz.org">GraphViz</a> <em>dot</em>
program in the executable file path, and a Web browser supporting,
directly or via a plugin, the display of SVG (scalable vector graphics)
content.
<li> Have SQLite installed.
	(This is required for testing.)
</ul>

<h2>Installation and Configuration</h2>
From this point onward we use the term Unix to refer to Unix-like systems
like GNU/Linux and FreeBSD, and Windows to refer to Microsoft Windows
systems.
<p>
You install <em>CScout</em> in five steps:
<ol>
	<li> Clone the source code from <a href="https://github.com/dspinellis/cscout/">GitHub</a></li>
	<li> Enter the <em>CScout</em> directory with <code>cd cscout</code></li>
	<li> Run <code>make</code></li>
	<li> Run <code>make test</code> (optional, but highly recommended)</li>
	<li> Run <code>sudo make install</code>. If you want the installation
to use a different directory hierarchy than the default
<code>/usr/local</code></li>, you can specify this on the command
line with the <code>PREFIX</code> variable.
For example, you run <code>make install PREFIX=/home/mydir</code>
to install <em>CScout</em> under your home directory or
<code>sudo make install PREFIX=/usr</code>
to install <em>CScout</em> under /usr.
</ol>

<p>
	By default the installation will create in <code>/usr/local/include/cscout</code>
	headers corresponding to a generic standard C compilation and to your
	host's specific configuration.
	If you want to process programs based on other host configurations
	you can modify these files or create a local version of the files
	in your home or the project's current directory.
</p>

<p>
In most cases you want <em>CScout</em> to process your code using
the include files of the compiler you are normally using.
This will allow <em>CScout</em> to handle programs using the libraries
and facilities available in your environment
(e.g. Unix system calls or the Windows API).
In the other hand it exposes <em>CScout</em> to the extensions and quirks
that might reside in your system's header files.
You can typically reslove these problems by adding a few additional
macro definitions that neutralize unknown compiler extensions.
As an example,
if your compiler supports a <code>quad_double</code> type and associated
keyword with semantics roughly equivalent to <code>double</code>
you would add a line in <code>host-defs.h</code>:
<pre>
#define quad_double double
</pre>
Have a look in the existing <code>host-defs.h</code> file to see
what might be required.
If your programs are written in standard C and do not use any additional
include files, you can use the generic header files.
</p>

</notes>
