\section{Configuring and Building MLD2P4\label{sec:building}}
\markboth{\textsc{MLD2P4 User's and Reference Guide}}
         {\textsc{\ref{sec:building} Configuring and Building MLD2P4}}
To build MLD2P4 it is necessary to set up a Makefile with appropriate
values for your system; this is done by means of the \verb|configure|
script. The distribution also includes the autoconf and automake
sources employed to generate the script, but this should not normally
be needed to build the software. 

MLD2P4 is implemented almost entirely in Fortran~95, with some
interfaces to external libraries in C; we require the Fortran compiler
to support the Fortran~95 standard plus the extension TR15581, which
enhances the usability of \verb|ALLOCATABLE| variables. Most modern
Fortran compilers, including the GNU Fortran compiler, support this
language level. The software defines data types and interfaces for
real and complex data, in both single and double precision. 

\subsection{Prerequisites}
The following base libraries are needed: 
\begin{description}
\item[BLAS] The Basic Linear Algebra subprograms. Many vendors provide
  optimized versions; if no vendor version is available for a given 
  platform, the  ATLAS software  \verb!http://www.netlib.org/atlas!
  may be employed.  The reference BLAS from Netlib
  \verb|htt://www.netlib.org/blas| are meant to define the standard
  behaviour of the BLAS interface, so they not optimized for any
  particular plaftorm, and they should only be used as a last
  resort; note that BLAS computation form a relatively small part of
  the MLD2P4/PSBLAS computations, except when using preconditioners
  based on the UMFPACK or SuperLU third party libraries. 
\item[MPI] A version of MPI is available on most high performance
  computing system; we only require version 1.1.
\item[BLACS] The Basic Linear Algebra Communication Subroutines are
  available in source form from \verb|http://www.netlib.org/blacs|;
  some vendors  include them in their parallel computing
  support libraries. 
\end{description}

The MLD2P4 software requires PSBLAS version 2.3 (at least), available
from \verb|http://www.ce.uniroma2.it/psblas|; indeed, all the
prerequisites listed so fare are also prerequisites of PSBLAS. Please
note that to build the MLD2P4 library it is necessary to get access to
the source PSBLAS directory used to build the version under use; after
the build process completes, only the compiled form of the library is
necessary to build user applications.

Please note that all the libraries listed so fare (BLAS, MPI, BLACS,
PSBLAS) must have Fortran interfaces compatible with the MLD2P4;
usually this means that they should all be built with the same
compiler. 


\subsection{Optional third party libraries}

    - software `third party" (UMFPACK, SuperLU, SuperLUdist - specificare versioni e opzioni di 
    configure, dire che UMFPACK e SuperLU sono richiesti, rispettivamente, dalle versioni in 
    singola ed in doppia precisione.)\\
\subsection{Configuration options}
    - sistemi operativi e compilatori su cui MLD2P4 e' stato
    implementato con successo \\
    - sono previste opzioni di configurazione per il debugging o per il profiling? \\
    - albero delle directory generato al momento dell'installazione, con brevissima
    descrizione del contenuto delle directory - aggiungere la directory \texttt{examples}\\
