Skip to content
Snippets Groups Projects
Commit 8bc55bdb authored by Christian Engwer's avatar Christian Engwer
Browse files

updated installation instructions

[[Imported from SVN: r4905]]
parent f54c1b3c
Branches
Tags
No related merge requests found
# -*- html -*-
# $Id$
#use wml::layout::default title="DUNE - Installation Notes"
#use wml::layout::default title="DUNE - Constrib Software Installation Notes"
<h1>Installation Notes</h1>
<h1>Constrib Software Installation Notes</h1>
<h2>Grids with Dune support</h2>
<h2>Additional Grids supported by DUNE</h2>
<p>
The following external grids support the DUNE Grid interface:
<p>
......@@ -21,21 +21,21 @@ Within the DUNE source tree OneDGrid, SGrid and YaspGrid are
available.
</p>
<h2>External Packages needed by the Grids</h2>
<h2>ALBERTA Grid</h2>
<h3>ALBERTA Grid</h3>
<h3>Dependencies</h3>
<p>
The following packages are mandatory to compile ALBERTA:
</p>
<dl>
<dt>Fortran 77</dt><dd>compiler, e.&nbsp;g. g77</dd>
<dt>OpenGL</dt><dd> A free implementation is available from
<a href="http://www.mesa3d.org/">http://www.mesa3d.org/</a></dd>
<a href="http://www.mesa3d.org/">http://www.mesa3d.org/</a></dd>
<dt>BLAS</dt><dd><p>&quot;Basic Linear Algebra Subprograms&quot;</p>
<p>
This often comes as a package with Linux (for Debian sarge it
is called atlas3 and has to be installed together with the
header package atlas3-headers).
This often comes as a package with Linux (for Debian sarge it
is called atlas3 and has to be installed together with the
header package atlas3-headers).
</p><p>
If it does not come with your distribution you can get it from
http://math-atlas.sourceforge.net
......@@ -45,38 +45,20 @@ The following packages are mandatory to compile ALBERTA:
For optional packages see the README file of ALBERTA
</p>
<h3>ALUGrid</h3>
<p>
There are no mandatory packages for ALUGrid.
</p><p>
For optional packages see the README file of ALUGRID.
</p>
<h3>UGGrid</h3>
<p>
There are no mandatory packages for UGGrid.
</p>
<p>
You can (but you don't have to) create UGGrid objects from AmiraMesh files.
For this you'll need the <a href="http://www.amiravis.com/resources/Ext411-01-libamiramesh/index.html">AmiraMesh</a> library.
</p>
<h2>Compilation and Installation of the External Grids</h2>
<h3>ALBERTA</h3>
<h3>Compilation and Installation</h3>
<ol>
<li>Download at least version 1.2 of ALBERTA from the ALBERTA homepage
<a href="http://www.alberta-fem.de">http://www.alberta-fem.de</a> </li>
<li><p>Unpack it in a directory</p>
<kbd>tar xzf alberta-1.2.tar.gz</kbd>
<pre>tar xzf alberta-1.2.tar.gz</pre>
<p>and move to that directory</p>
<kbd>cd alberta-1.2</kbd>
<pre>cd alberta-1.2</pre>
</li>
<li><p>Configure ALBERTA, e. g.</p>
<kbd> ./configure --prefix=/directory/to/install/alberta/to \\
--with-blas-name=blas-3 --disable-shared \\
CXX=g++-3.4 CC=gcc-3.4
</kbd>
<pre>./configure --prefix=/directory/to/install/alberta/to \\
--with-blas-name=blas-3 --disable-shared \\
CXX=g++-3.4 CC=gcc-3.4</pre>
<p>
With --prefix the absolute path of the directory we install to has
to given, --with-blas-name we tell configure the name of our BLAS
......@@ -90,31 +72,35 @@ For this you'll need the <a href="http://www.amiravis.com/resources/Ext411-01-li
and linkers you will use to compile DUNE!!
</p>
<p> For more information and additional options see</p>
<kbd>./configure --help</kbd>
<pre>./configure --help</pre>
</li>
<li><p>Compile ALBERTA with</p> <kbd>make</kbd></li>
<li><p>Compile ALBERTA with</p> <pre>make</pre></li>
<li> <p>Install ALBERTA with</p> <kbd>make install</kbd></li>
<li> <p>Install ALBERTA with</p> <pre>make install</pre></li>
</ol>
<h3>ALUGrid</h3>
<h2>ALUGrid</h2>
<h3>Dependencies</h3>
<p>
There are no mandatory packages for ALUGrid.
</p><p>
For optional packages see the README file of ALUGRID.
</p>
<h3>Compilation and Installation</h3>
<ol>
<li>Download the latest version of ALUGrid from the <a href="http://www.mathematik.uni-freiburg.de/IAM/Research/alugrid/">ALUGrid homepage</a>.</li>
<li><p>Unpack it in a directory</p>
<kbd>tar xzf ALUGrid-0.x.tar.gz</kbd>
<pre>tar xzf ALUGrid-0.x.tar.gz</pre>
<p>and move to that directory</p>
<kbd>
cd ALUGrid-0.x
</kbd>
<pre>cd ALUGrid-0.x</pre>
<p>and read the README file first.</p>
</li>
<li><p>Configure ALUGrid, e. g.</p>
<kbd>
./configure --prefix=/directory/to/install/ALUGrid/to \\
CXX=g++-3.4 CC=gcc-3.4
</kbd>
<pre>./configure --prefix=/directory/to/install/ALUGrid/to \\
CXX=g++-3.4 CC=gcc-3.4</pre>
<p>for the sequential use of ALUGrid.</p>
<p>
With --prefix the absolute path of the directory we install to has
......@@ -141,17 +127,17 @@ For this you'll need the <a href="http://www.amiravis.com/resources/Ext411-01-li
In order to retrieve the CPPFLAGS and LDFLAGS necessary for MPI,
dune-common offers a script <i>dune-common/bin/mpi-config</i>:
</p>
<kbd>
Usage: mpi-config [OPTIONS] [LIBRARIES]
Options:
[--mpicc[=COMPILER]]
[--disable-cxx]
[--verbose]
[--version]
[--mpiversion]
[--libs]
[--cflags]
</kbd>
<pre>
Usage: mpi-config [OPTIONS] [LIBRARIES]
Options:
[--mpicc[=COMPILER]]
[--disable-cxx]
[--verbose]
[--version]
[--mpiversion]
[--libs]
[--cflags]
</pre>
<p>
mpi-config calls the MPI compiler and tries to extract the
parameters. One can specify which MPI compiler to use, by setting
......@@ -161,53 +147,66 @@ For this you'll need the <a href="http://www.amiravis.com/resources/Ext411-01-li
<p>
Using mpi-config one can pass the approriate CPPFLAGS and LDFLAGS
to configure. We suppose that dune-common/bin is in your path
(for bash you can do this with: export PATH=$PATH:/path/to/dune/modules/dune-common/bin.
(for bash you can do this with: export
PATH=$PATH:/path/to/dune/modules/dune-common/bin.
</p>
<p>
E. g. for the MPI compiler <i>/opt/foo-mpi/bin/mpicc</i> (for the
default MPI compiler just skip the --mpicc=/opt/foo-mpi/bin/mpicc
options):
</p>
<kbd>
./configure --prefix=/directory/to/install/ALUGrid/to \\
CXX=g++-3.4 CC=gcc-3.4 \\
CPPFLAGS="`mpi-config --cflags --disable-cxx --mpicc=/opt/foo-mpi/bin/mpicc`" \\
LDFLAGS="`mpi-config --libs --disable-cxx --mpicc=/opt/foo-mpi/bin/mpicc`"
</kbd>
<p>
For further information and additional options see
</p><kbd>./configure --help</kbd>
<pre>
./configure --prefix=/directory/to/install/ALUGrid/to \\
CXX=g++-3.4 CC=gcc-3.4 \\
CPPFLAGS="`mpi-config --cflags --disable-cxx --mpicc=/opt/foo-mpi/bin/mpicc`" \\
LDFLAGS="`mpi-config --libs --disable-cxx --mpicc=/opt/foo-mpi/bin/mpicc`"
</pre>
<p>For further information and additional options see</p>
<pre>./configure --help</pre>
</li>
<li><p>Compile ALUGrid with</p> <kbd>make</kbd></li>
<li><p>Install ALUGrid with</p> <kbd>make install</kbd></li>
<li><p>Compile ALUGrid with</p> <pre>make</pre></li>
<li><p>Install ALUGrid with</p> <pre>make install</pre></li>
</ol>
<h3>UGGrid</h3>
<h2>UGGrid</h2>
<h3>Dependencies</h3>
<p>
There are no mandatory packages for UGGrid.
</p>
<p>
You can (but you don't have to) create UGGrid objects from AmiraMesh
files. For this you'll need the <a
href="http://www.amiravis.com/resources/Ext411-01-libamiramesh/index.html">AmiraMesh</a>
library.
</p>
<h3>Compilation and Installation</h3>
<ol>
<li>
<p>
Get the UG library. If you intend to use the release 1.0 of DUNE you can
download to appropriate UG library at
<a href="http://sit.iwr.uni-heidelberg.de/~ug">http://sit.iwr.uni-heidelberg.de/~ug</a>.
For more recent versions of DUNE you will need a newer UG.
Please ask on the mailing list for details.
Get the UG library. If you intend to use the release 1.0 of DUNE you
can download to appropriate UG library at <a
href="http://sit.iwr.uni-heidelberg.de/~ug">http://sit.iwr.uni-heidelberg.de/~ug</a>.
For more recent versions of DUNE you will need a newer UG. Please ask
on the mailing list for details.
</p>
<li>Unpack the tarball and move into the UG source tree.
<pre>
<pre>
tar zxvf UG-3.9.1.tar.gz
cd UG-3.9.1
</pre>
</pre>
</li>
<li><p>Build the UG make system</p>
<kbd>
./configure --prefix=my_favourite_ug_installation_path --enable-dune CC=g++
</kbd>
<pre>
./configure --prefix=my_favourite_ug_installation_path --enable-dune CC=g++
</pre>
<ul>
<li>
<tt>--prefix</tt> determines the absolute path of the directory we install to.
<kbd>--prefix</kbd> determines the absolute path of the directory we install to.
</li>
<li>
<tt>--enable-dune</tt> enables special features needed by Dune.
<kbd>--enable-dune</kbd> enables special features needed by Dune.
</li>
<li>
CC=g++ tells the build system to compile everything as C++,
......@@ -217,81 +216,6 @@ cd UG-3.9.1
</li>
</ul>
</li>
<li>
<p>Compile UG with</p>
<kbd> make</kbd>
</li>
<li><p>Install UG with</p> <kbd>make install</kbd></li>
</ol>
<h2>Installation of DUNE modules</h2>
<ol>
<li><p>Download DUNE modules</p>
<p>
See <a
href="http://dune-project.org/download.html">Download
Section</a>
section for more details.
</p>
<p>
When using the unstable version via svn, you might be interested in
the <a href="http://dune-project.org/svn.html">DUNE SVN Developer
Info</a> section.
</p>
<p>
When using the svn version, you will have to have further packages
installled, but there are no tests for these, because they are needed
during the first build stage, by autogen.sh.
</p>
<ul>
<li>automake in version &ge; 1.5</li>
<li>autoconf in version &ge; 2.50</li>
<li>libtool</li>
<li>pkg-config</li>
</ul>
</li>
<li> <p>Building all DUNE modules</p>
<p>
Check out all dune modules into same directory (say dune-home)
</p>
<p>
Run dunecontrol script available in the base module dune-common/bin. This will run autogen.sh, configure and make for each module.
</p>
<kbd>./dune-common/bin/dunecontrol all</kbd>
<p>
Read the <a
href="http://dune-project.org/doc/buildsystem/buildsystem.pdf">DUNE
Build System Howto</a> section for more details.
</p>
</li>
<li> <p>Building a specific DUNE module (and its dependent modules)</p>
<p> Run dunecontrol script
<kbd>./dune-common/bin/dunecontrol --module=module_name all</kbd>
where module_name is the name of that particular module given in the dune.module file
</p>
<p> Read <a href="http://dune-project.org/dunemodule.html">Maintaining new Dune modules and applications</a> section for more details.
</p>
</li>
<li> <p>Building using certain configure options</p>
<p> Run dunecontrol script
<kbd>./dune-common/bin/dunecontrol --opts=/path_to/file.opts --module=module_name all</kbd>
where file.opts is the name of the file with configure options
specified (you can find an <a href="example.opts">example.opts</a>
file in the dune-common/doc directory)
</p>
<p>Read <a href="http://dune-project.org/dunemodule.html">Maintaining new Dune modules and applications</a> section for more details.
</p>
<p> <a
href="http://dune-project.org/doc/buildsystem/buildsystem.pdf">DUNE
Build System Howto</a> will also give you an excellent introduction to
the build system and how to create new modules/projects your own.
</p>
</li>
<li><p>Compile UG with</p> <pre>make</pre></li>
<li><p>Install UG with</p> <pre>make install</pre></li>
</ol>
<h2>Creating your own DUNE project module</h2>
<p>
You can create your own dune project module by using the duneproject script available in dune-common/bin directory.
Running the script will create a directory with supporting files (configure.ac ,Makefile.am etc.) and a sample .cc file.
After creating the module you can build this as explained above under "Building a specific DUNE module".
</p>
......@@ -54,9 +54,9 @@ your system and whether prerequisites within the modules are met. For
the ease of users we have designed a custom build system on top of the
automake tools. Run
</p>
<kbd>
<pre>
./dune-common/bin/dunecontrol all
</kbd>
</pre>
<p>
to commence those tests and build all modules you have
downloaded. Don't worry about messages telling you that libraries are
......@@ -67,16 +67,16 @@ developing.
You can customize the build to your specific needs by using an options file
(see below)
</p>
<kbd>
<pre>
./dune-common/bin/dunecontrol --opts=/path_to/file.opts
</kbd>
</pre>
<p>
If you did not tell dunecontrol to install with an options file you
need to run
</p>
<kbd>
<pre>
./dune-common/bin/dunecontrol make install
</kbd>
</pre>
<p>
to install DUNE (you may need root-permissions for the install
part depending on the prefix set)
......@@ -86,7 +86,29 @@ A more comprehensive introduction to the build system can be found in
the <a href="buildsystem/buildsystem.pdf">Dune Build System Howto</a>.
</p>
<h2>Passing options to the build process</h2>
<h3>Building a specific DUNE module (and its dependent modules)</h3>
<p>You can instruct dunecontrol to build only a certain dune module,
using the <kbd>--only=module_name&gt;</kbd> swtich.
Runnning dunecontrol script
<p>
<pre>
./dune-common/bin/dunecontrol --module=&lt;module_name&gt; all
</pre>
</p>
where &lt;module_name&gt; is the name of that particular module given in the
dune.module file, will build only the module &lt;module_name&gt;.
</p>
<p>If you want to build a module and the modules it depends on, you
must run:</p>
<pre>
./dune-common/bin/dunecontrol --module=module_name all
</pre>
<p> Read <a href="http://dune-project.org/dunemodule.html">Maintaining new Dune modules and applications</a> section for more details.
</p>
<h3>Passing options to the build process</h3>
<p>
Using the dunecontrol script the following atomic commands can be
......@@ -117,42 +139,42 @@ each module.
<p>
As it is often not convenient (and for the target all impossible) to
specify the options for each command as parameters after the call, one
can pass the options via file specified by the <tt>--opts=&lt;file&gt;</tt>
can pass the options via file specified by the <kbd>--opts=&lt;file&gt;</kbd>
option. For each atomic command one specify the options via a ine
</p>
<kbd>
<pre>
&lt;COMMANY_UPPERCASE&gt;_FLAGS=&lt;flags&gt; # e.g.: MAKE_FLAGS=install
</kbd>
</pre>
<p>
The available options for make and svn are the natural ones. The
configure commands available can be found by issuing
</p>
<kbd>
<pre>
dunecontrol --only=dune-common configure --help
</kbd>
</pre>
<p>
and for autogen by
</p>
<kbd>
<pre>
dunecontrol --only=dune-common autogen --help
</kbd>
</pre>
<p>
(In the svn version this has to be calles after running autogen.)
</p>
<p>
An example of an options file is
</p>
<kbd>
# use a special compiler (g++ version 3.4) and install to a custom
# directory, default is /usr/local/bin
CONFIGURE_FLAGS="CXX=g++-3.4 --prefix='/tmp/Hu Hu'"
# Set the default target of make to install. Now the call above will
# not just build the DUNE modules but also install it
<pre>
\# use a special compiler (g++ version 3.4) and install to a custom
\# directory, default is /usr/local/bin
CONFIGURE_FLAGS="CXX=g++-3.4 --prefix='/tmp/HuHu'"
\# Set the default target of make to install. Now the call above will
\# not just build the DUNE modules but also install it
MAKE_FLAGS=install
# The default versions of automake and autogen are not sufficient
# therefore we need to specify what versions to use
\# The default versions of automake and autogen are not sufficient
\# therefore we need to specify what versions to use
AUTOGEN_FLAGS="--ac=2.59 --am=1.9"
</kbd>
</pre>
<h2>Creating your own DUNE project module</h2>
<p>
......@@ -161,3 +183,8 @@ Running the script will create a directory with supporting files
(configure.ac, Makefile.am etc.) and a sample .cc file.
After creating the module you can build this as explained above under "Building a specific DUNE module".
</p>
<p>The <a
href="http://dune-project.org/doc/buildsystem/buildsystem.pdf">DUNE
Build System Howto</a> will also give you an excellent introduction to
the build system and how to create new modules/projects your own.
</p>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment