// $Id: configureoptions.dox,v 1.2 2004/11/24 23:40:51 tgkolda Exp $ 
// $Source: /space/CVS-Acro/acro/packages/appspack/appspack/doc/input/configureoptions.dox,v $ 

/*!

\page pageConfigureOptions Configure Options

The following detail the configure options for %APPSPACK.
A complete list of configure options can be generated by typing <code>configure --help</code>.
See also \ref pageConfigure.


\section pageConfigureOptions_Vars Influential Environmental Variables

   <ul>
      <li> <b>\c CXX         </b>

             C++ compiler command

      <li> <b>\c CXXFLAGS    </b>

             C++ compiler flags 

      <li> <b>\c LDFLAGS</b>

             Specify linker flags

      <li> <b>\c CPPFLAGS</b>

             C/C++ preprocessor flags

      <li> <b>\c CXXCPP  </b>

             C++ preprocessor

      <li> <b>\c F77     </b>

             Fortran 77 compiler command <em>(used only in configure tests)</em>

      <li> <b>\c FFLAGS  </b>

             Fortran 77 compiler flags <em>(used only in configure tests)</em>
   </ul>

\section pageConfigureOptions_Opts Basic Configure Options

   <ul>
     <li> <b>\c --with-cppflags</b>

          Specify additional preprocessor flags (e.g., "-Dflag -Idir")

     <li> <b>\c --with-cxxflags</b>

          Specify additional C++ flags

     <li> <b>\c --with-ldflags</b>

          Specify additional linker flags (e.g., "-Ldir")

     <li> <b>\c --with-libs</b>

          Specify additional libraries (e.g., "-lfoo")

     <li> <b>\c --with-ar</b>

          Specify a special archiver command, the default is "ar cru".

   </ul>

\section pageConfigureOptions_MPI MPI Configure Options

<em>MPI is not enabled by default; it must be enabled by specifying 
appropriate configure options.</em>

Enabling MPI has the following effects.

<ol>

<li> Configure will test for the ability to preprocess the MPI header
     file. It will also test the ability to link with MPI (unless the
     \c --disable-executables configure option is specified).

<li> Defines HAVE_MPI in the APPSPACK_Config.hpp file that is created
     by configure. 

<li> Portions of the %APPSPACK library that depends on MPI will then
     function correctly. This includes the APPSPACK::GCI wrapper for
     MPI commands, the APPSPACK::Executor::MPI, and pack/unpack
     functions for the APPSPACK::Parameter objects.

<li> The MPI executable will be compiled (unless the \c
     --disable-executables configure option is specified); see \ref
     pageExecutables. 

</ol>

MPI can be enabled by using one of the three options below.

   <ul>
     <li> <b><tt> --with-mpi-compilers[=DIR] </tt></b> <em>(preferred option)</em>

         Use the MPI compilers (mpicxx or mpiCC, mpicc, and
         mpif77). If the optional DIR is used to specify a directory,
         then the MPI compilers in DIR are used. 

	 Note that for the C++ compiler, it looks for mpicxx first. If
         it doesn't find that, it defaults to mpiCC.

	 If this does not work for your system (i.e., the names are
         different), each compiler may be specified directly by using
         the CXX, CC, and F77 environmental variables and then using
         the \c --enable-mpi option.

	 No other MPI configure options should be used with this one.

\b Example:
\code
configure --with-mpi-compilers=/usr/local/mpich-1.2.4/bin
\endcode

     <li> <b>\c --with-mpi=MPIROOT</b>

          Specify the MPI root directory. 

	      The include directory is assumed to be 
              <tt>MPIROOT/include</tt> unless <tt>--with-mpi-incdir=DIR</tt> is
              specified. 

	      The lib directory is assumed to be <tt>MPIROOT/lib</tt>
	      unless <tt>--with-mpi-libdir=DIR</tt> is specified.

	      The library is assumed to be \c "-lmpi" unless \c
	      <tt>--with-mpi-libs="LIBS"</tt> is specified.

	      Do not use this with \c --with-mpi-compilers or \c
	      --enable-mpi with this option.


\b Example:
\code
configure --with-mpi=/usr/local/mpich-1.2.4 --with-mpi-libs="-lmpich"
\endcode

     <li> <b>\c --enable-mpi</b>

         Enables MPI mode. Assumes that the appropriate compilers and
         libraries have been specified.

	 No other MPI configure options should be used with this one.

\b Examples:
\code
configure CXX=/usr/local/mpich-1.2.4/bin/mpiCC CC=/usr/local/mpich-1.2.4/bin/mpicc --enable-mpi
\endcode

\code
configure --with-ldflags="-L/usr/local/mpich-1.2.4/lib" \
--with-cppflags="-I/usr/local/mpich-1.2.4/include" \
--with-libs="-lmpich" --enable-mpi
\endcode

   </ul>

\section pageConfigureOptions_Executables Turning the Executables On or Off

<ul>
<li> <b>\c --disable-executables</b>

No executables are built, only the library. Avoids all the configure
tests having to do with linking.

<li> <b>\c --disable-serial</b>

The serial executable (\c appspack_serial) is not built.

</ul>


\section pageConfigureOptions_Install Installation-Related Configure Options
   <ul>
   <li> <b>\c --prefix=PREFIX</b>

      Location to install architecture-independent files (like header files).

   <li> <b>\c --exec-prefix=PREFIX</b>

      Location to install architecutre-dependent files (like libraries and executables).

   <li> For more options, type <code>configure --help</code> and look
      at "Fine tuning of the installation directories".
</ul>


*/
