diff --git a/COPYING b/COPYING index 03909989b1189d27b0e134af6a1fea09395fc0b2..b7d3eb59f05d9142e6b998e9a9058d53672c1a88 100644 --- a/COPYING +++ b/COPYING @@ -12,6 +12,7 @@ Copyright holders: 2005--2010 Carsten Gräser 2010--2012 Christoph Grüninger 2006 Bernhard Haasdonk +2012 Olaf Ippisch 2009 Leonard Kern 2005--2007 Sreejith Pulloor Kuttanikkad 2003--2012 Robert Klöfkorn @@ -31,6 +32,7 @@ Copyright holders: 2006 Klaus Schneider 2004 Roland Schulz 2009--2011 Bård Skaflestad +2012 Matthias Wohlmuth 2011 Jonathan Youett diff --git a/am/doxygen b/am/doxygen index 36f6b37fbe285d34b6d1e56481bd943e1d371bf0..35f23cbbee3ab27af02236bf1af2eb647282796f 100644 --- a/am/doxygen +++ b/am/doxygen @@ -28,13 +28,15 @@ endif # DUNEWEB #### # how to build doxygen documentation -if DOXYGEN +# EXTRAINSTALL in the html subdirectory +DOXYGENHTMLFILES = *.html *.css *.png *.gif +DOXYGENINSTALL = $(DOXYGENHTMLFILES) ../doxygen.log ../doxyerr.log + +if DOXYGEN if BUILD_DOCS + # disable dependency tracking when working without doxygen/documentation DOXYGENTAG = doxygen-tag - # EXTRAINSTALL in the html subdirectory - DOXYGENHTMLFILES = *.html *.css *.png *.gif - DOXYGENINSTALL = $(DOXYGENHTMLFILES) ../doxygen.log ../doxyerr.log endif # BUILD_DOCS DUNEDOXYNIZE=@DUNE_COMMON_ROOT@/bin/dunedoxynize @@ -96,7 +98,6 @@ endif # BUILD_DOCS #### # how to install doxygen -if BUILD_DOCS install-doxygen: $(DOXYGENTAG) set -e; $(mkinstalldirs) $(DESTDIR)/$(doxygendir); \ @@ -110,8 +111,6 @@ uninstall-doxygen: install-documentation-local: install-doxygen uninstall-documentation-local: uninstall-doxygen -endif # BUILD_DOCS - #### # howto install doxygen in the web page include $(top_srcdir)/am/webstuff diff --git a/doc/buildsystem/buildsystem.tex b/doc/buildsystem/buildsystem.tex index 0e674dd29338a64cf72f2ee509a8e7315d170b5c..5e1320cf39527f2c446aefe31ca5cc0a699b929b 100644 --- a/doc/buildsystem/buildsystem.tex +++ b/doc/buildsystem/buildsystem.tex @@ -1541,6 +1541,22 @@ you options file the \configure cache is created. Be aware that the file persis between \dunecontrol runs. If you encounter any problems, you want to change the configuration or to rerun all checks, the cache file should be removed manually. +\minisec{Faster module search} +If the environment variable \texttt{DUNE\_CONTROL\_PATH} is not set, \dunecontrol +recursively searches for \dune modules below the working directory. Depending on +your installation, this search may take quite a bit of time. It can be +avoided by including the paths to the \texttt{dune.module} files of all modules in +\texttt{DUNE\_CONTROL\_PATH}. + +This list of paths can actually be created on the fly by a command. +Let us assume all \dune modules are in one directory, which is the working directory +for \dunecontrol, too. By adding the line +\begin{lstlisting}[language=make,showstringspaces=false] +DUNE_CONTROL_PATH="`ls */dune.module | tr '\n' ':'`" +\end{lstlisting} +to your opts file, no search will be performed. Instead, only the faster, non-recursive +\texttt{ls} command is called. + \section{Further documentation} \minisec{automake \& Makefile.am} diff --git a/doc/doxygen/Doxystyle b/doc/doxygen/Doxystyle index 9bed49a76d04014f9356951b5afdfa21c93cb4db..a328695659ab94d11186cb6a6365c586619eac75 100644 --- a/doc/doxygen/Doxystyle +++ b/doc/doxygen/Doxystyle @@ -142,7 +142,8 @@ EXPAND_ONLY_PREDEF = YES PREDEFINED = DOXYGEN \ HAVE_MPI:=1 \ _DEBUG_ALLOCATOR_H:=1 \ - "DUNE_DEPRECATED:=/** \deprecated */" + "DUNE_DEPRECATED:=/** \deprecated */" \ + "DUNE_DEPRECATED_MSG(A):=/** \deprecated A */" @DOT_TRUE@HAVE_DOT = YES diff --git a/dune.module b/dune.module index 68d32759f2d25300acb214737ffd10ac543b9aab..1102ff05fda147af40406cfb11c3804c5ff9f28f 100644 --- a/dune.module +++ b/dune.module @@ -1,3 +1,3 @@ Module: dune-common -Version: 2.2-svn +Version: 2.3-svn Maintainer: dune@dune-project.org diff --git a/dune/common/array.hh b/dune/common/array.hh index 5ad73ed46768601463f30c7d0dc0529ff43414e2..1da6228fbe9cddaaf604b4901769758b710e0082 100644 --- a/dune/common/array.hh +++ b/dune/common/array.hh @@ -5,7 +5,7 @@ #define DUNE_ARRAY_HH /** \file - \brief implementation of the stl array class (a static array) + \brief Fallback implementation of the std::array class (a static array) */ #include <iostream> diff --git a/dune/common/arraylist.hh b/dune/common/arraylist.hh index 6160320fe07ebb7b996060e739c89923625dbde6..58721f7dfe12a768fd836f02383558b98f5609bf 100644 --- a/dune/common/arraylist.hh +++ b/dune/common/arraylist.hh @@ -22,6 +22,8 @@ namespace Dune /** * @file + * \brief Implements a random-access container that can efficiently change size (similar to std::deque) + * * This file implements the class ArrayList which behaves like * dynamically growing array together with * the class ArrayListIterator which is random access iterator as needed diff --git a/dune/common/bartonnackmanifcheck.hh b/dune/common/bartonnackmanifcheck.hh index b0a10bac2ba299a2a3c168981bfaaad8c869f268..807363d0030dcb789b37f36d7d97ad7bbbb0d987 100644 --- a/dune/common/bartonnackmanifcheck.hh +++ b/dune/common/bartonnackmanifcheck.hh @@ -3,7 +3,8 @@ /** @file @author Robert Kloefkorn @brief Provides check for implementation of interface methods when using - static polymorphism, i.e. Barton-Nackman trick. + static polymorphism, i.e. the Barton-Nackman trick. + Use by invoking CHECK_INTERFACE_IMPLEMENTATION(asImp().methodToCheck()) and for template methods double ( CHECK_INTERFACE_IMPLEMENTATION((asImp().template methodToCheck<param> ())). diff --git a/dune/common/binaryfunctions.hh b/dune/common/binaryfunctions.hh index f5202ff2c8e75d4c9eca3cd2fb2731551f2d31b5..f741ba1b685531d881b863f456a43ece95a9ba14 100644 --- a/dune/common/binaryfunctions.hh +++ b/dune/common/binaryfunctions.hh @@ -3,6 +3,10 @@ #ifndef DUNE_BINARYFUNCTIONS_HH #define DUNE_BINARYFUNCTIONS_HH +/** \file + * \brief Various helper classes derived from from std::binary_function for + * stl-style functional programming + */ #include <functional> #include <algorithm> diff --git a/dune/common/collectivecommunication.hh b/dune/common/collectivecommunication.hh index cbc6c096bb07302e75f27ba99454df8d08bbb171..667271aec5b329c34569345cca5a7df498f2edd6 100644 --- a/dune/common/collectivecommunication.hh +++ b/dune/common/collectivecommunication.hh @@ -13,13 +13,15 @@ \ingroup Common Dune offers an abstraction to the basic methods of parallel - communication. It allows to switch parallel features on and of, + communication. It allows to switch parallel features on and off, without changing the code. */ /*! \file + \brief An abstraction to the basic methods of parallel communication, + following the message-passing paradigm. \ingroup ParallelCommunication */ @@ -34,7 +36,7 @@ namespace Dune CollectiveCommunication offers an abstraction to the basic methods of parallel communication, following the message-passing - paradigm. It allows to switch parallel features on and of, without + paradigm. It allows to switch parallel features on and off, without changing the code. Currently only MPI and sequential code are supported. diff --git a/dune/common/debugstream.hh b/dune/common/debugstream.hh index 6effacbf4f9ce24254f11153dedb5cf232ebe28c..88c7af4d8387507aca27a6b75807be48739e7581 100644 --- a/dune/common/debugstream.hh +++ b/dune/common/debugstream.hh @@ -5,6 +5,10 @@ #ifndef DUNE_DEBUGSTREAM_HH #define DUNE_DEBUGSTREAM_HH +/** \file + * \brief Defines several output streams for messages of different importance + */ + #include <iostream> #include <stack> diff --git a/dune/common/densematrix.hh b/dune/common/densematrix.hh index 1382159ecf1a4619ecf262b230c9794513486b49..8e85c0fefcaad4834a433b2f120e1af851868a19 100644 --- a/dune/common/densematrix.hh +++ b/dune/common/densematrix.hh @@ -57,8 +57,8 @@ namespace Dune /*! \file - \brief This file implements a matrix constructed from a given type - representing a field and compile-time given number of rows and columns. + \brief Implements a matrix constructed from a given type + representing a field and a compile-time given number of rows and columns. */ /** diff --git a/dune/common/densevector.hh b/dune/common/densevector.hh index 671499cf630c1d4603b608858ad3e6062b3c7219..f63d456565ce6a6c0541c30e866fcb118fa8da16 100644 --- a/dune/common/densevector.hh +++ b/dune/common/densevector.hh @@ -28,7 +28,7 @@ namespace Dune { */ /*! \file - * \brief This file implements a the dense vector interface, with an exchangeable storage class + * \brief Implements the dense vector interface, with an exchangeable storage class */ namespace fvmeta diff --git a/dune/common/deprecated.hh b/dune/common/deprecated.hh index 3075dac92ebb0cf4751e90a7b469885b46e2cf0e..f4ff85a9ab3460b7b4277c6dfdc86db61c34e25a 100644 --- a/dune/common/deprecated.hh +++ b/dune/common/deprecated.hh @@ -3,6 +3,11 @@ #ifndef DUNE_DEPRECATED_HH #define DUNE_DEPRECATED_HH +/** \file + * \brief Definition of the DUNE_DEPRECATED macro for the case that config.h + * is not available + */ + //! @addtogroup Common //! @{ #if defined(DOXYGEN) || !defined(HAS_ATTRIBUTE_DEPRECATED) diff --git a/dune/common/dynmatrix.hh b/dune/common/dynmatrix.hh index e2d4f3879d60024f00a6476ef70642555e91ffc8..c119b9e7824d3bc36fc40ad61aeb410ed1aac6bf 100644 --- a/dune/common/dynmatrix.hh +++ b/dune/common/dynmatrix.hh @@ -23,7 +23,7 @@ namespace Dune */ /*! \file - * \brief This file implements a dense vector with a dynamic size. + * \brief This file implements a dense matrix with dynamic numbers of rows and columns. */ template< class K > class DynamicMatrix; diff --git a/dune/common/finitestack.hh b/dune/common/finitestack.hh index 44b3b4c2255b5055b2d9ce36d4a92fefb3a8dee1..cae69124688208c88029562dfe073df12733ebcd 100644 --- a/dune/common/finitestack.hh +++ b/dune/common/finitestack.hh @@ -3,6 +3,10 @@ #ifndef DUNE_FINITE_STACK_HH #define DUNE_FINITE_STACK_HH +/** \file + * \brief Stack class of fixed maximum size (deprecated) + */ + #warning This file is deprecated and will be removed after the release of dune-common-2.2.\ Please use std::stack<Dune::ReservedVector> instead of FiniteStack. diff --git a/dune/common/float_cmp.hh b/dune/common/float_cmp.hh index feb8eb88db04c3e0ff322f91c0be4701561a659a..f5e7ccb3e9153c9be724f246eb79edefb8ae2dfb 100644 --- a/dune/common/float_cmp.hh +++ b/dune/common/float_cmp.hh @@ -3,6 +3,10 @@ #ifndef DUNE_COMMON_FLOAT_CMP_HH #define DUNE_COMMON_FLOAT_CMP_HH +/** \file + * \brief Various ways to compare floating-point numbers + */ + /** @addtogroup FloatCmp FloatCmp @ingroup Common diff --git a/dune/common/fmatrix.hh b/dune/common/fmatrix.hh index f0ab3bfbcdca3560daee16ff1fad5ddecbc6edc5..e79755dd002d56b1f23d8471f361b09842364e98 100644 --- a/dune/common/fmatrix.hh +++ b/dune/common/fmatrix.hh @@ -25,7 +25,7 @@ namespace Dune /*! \file - \brief This file implements a matrix constructed from a given type + \brief Implements a matrix constructed from a given type representing a field and compile-time given number of rows and columns. */ diff --git a/dune/common/fmatrixev.hh b/dune/common/fmatrixev.hh index d4619032f5cd0aeba91a40d9c5a52890547d0433..2f244eae4980bd3184f10af89d1b5f05cbc7c223 100644 --- a/dune/common/fmatrixev.hh +++ b/dune/common/fmatrixev.hh @@ -3,6 +3,10 @@ #ifndef DUNE_FMATRIXEIGENVALUES_HH #define DUNE_FMATRIXEIGENVALUES_HH +/** \file + * \brief Eigenvalue computations for the FieldMatrix class + */ + #include <iostream> #include <cmath> #include <cassert> diff --git a/dune/common/forloop.hh b/dune/common/forloop.hh index d51fb471122c7b2ceded6c7233b13fdee8864f08..cc637aa83c15180b8d2f5f15d6ffad8be06990e6 100644 --- a/dune/common/forloop.hh +++ b/dune/common/forloop.hh @@ -4,6 +4,10 @@ #ifndef DUNE_COMMON_FORLOOP_HH #define DUNE_COMMON_FORLOOP_HH +/** \file + * \brief A static for loop for template meta-programming + */ + #include <dune/common/static_assert.hh> namespace Dune diff --git a/dune/common/ftraits.hh b/dune/common/ftraits.hh index 1aa121160f7f56eb1ae31fbdde8b9deff1f3f186..b245b1e6b222d1b358662fcbd77b789972ca1a6f 100644 --- a/dune/common/ftraits.hh +++ b/dune/common/ftraits.hh @@ -4,15 +4,19 @@ #ifndef DUNE_FTRAITS_HH #define DUNE_FTRAITS_HH +/** \file + * \brief Type traits to determine the type of reals (when working with complex numbers) + */ + #include <complex> namespace Dune { /** @addtogroup DenseMatVec - \brief Type Traits to retrieve the field and the real type of classes + \brief Type traits to retrieve the field and the real type of classes - Type Traits to retrieve the field and the real type of classes + Type traits to retrieve the field and the real type of classes e.g. that of FieldVector or FieldMatrix */ template<class T> diff --git a/dune/common/fvector.hh b/dune/common/fvector.hh index 38d0c2738c03073f35d410c9bb9b1c3b0c4f7e97..b39038ff5b5edfdb91da1544fe5d3d0384b88aa7 100644 --- a/dune/common/fvector.hh +++ b/dune/common/fvector.hh @@ -32,7 +32,7 @@ namespace Dune { */ /*! \file - * \brief This file implements a vector constructed from a given type + * \brief Implements a vector constructed from a given type representing a field and a compile-time given size. */ diff --git a/dune/common/gcd.hh b/dune/common/gcd.hh index e27565ceecb5c4be9b90e8abfd8b10c372ac6ccf..b685fa07a6baa0ce6de96ac7cbff9abb7b3e2e31 100644 --- a/dune/common/gcd.hh +++ b/dune/common/gcd.hh @@ -12,8 +12,7 @@ namespace Dune */ /** * @file - * This file provides template constructs for calculation the - * greatest common divisor. + * \brief Statically compute the greatest common divisor of two integers */ #ifndef DOXYGEN diff --git a/dune/common/genericiterator.hh b/dune/common/genericiterator.hh index 981b8bd3e3151cbb8004899c22daf2eaca26558c..40af550f840dea98c253b45df2ebf5956ead569f 100644 --- a/dune/common/genericiterator.hh +++ b/dune/common/genericiterator.hh @@ -13,10 +13,10 @@ namespace Dune { \ingroup IteratorFacades \brief Generic Iterator class for writing stl conformant iterators - for any Container class with operator[] + for any container class with operator[] Using this template class you can create an iterator and a const_iterator - for any Container class. + for any container class. Imagine you have SimpleContainer and would like to have an iterator. All you have to do is provide operator[], begin() and end() @@ -70,16 +70,16 @@ namespace Dune { /** * @file - * @brief This file implements a generic iterator classes for writing stl conformant iterators. + * @brief Implements a generic iterator class for writing stl conformant iterators. * - * With using this generic iterator writing iterators for containers - * with operator[] is only a matter of seconds + * Using this generic iterator writing iterators for containers + * that implement operator[] is only a matter of seconds. */ /** - \brief get the 'const' version of a reference to amutable object + \brief Get the 'const' version of a reference to a mutable object - given a reference R=T& const_reference<R>::type gives you the typedef for const T& + Given a reference R=T& const_reference<R>::type gives you the typedef for const T& */ template<class R> struct const_reference @@ -140,7 +140,7 @@ namespace Dune { */ /** - * @brief Generic class for stl conformant iterators for container classes with operator[]. + * @brief Generic class for stl-conforming iterators for container classes with operator[]. * * If template parameter C has a const qualifier we are a const iterator, otherwise we * are a mutable iterator. @@ -161,7 +161,7 @@ namespace Dune { /** * @brief The type of container we are an iterator for. * - * The container type must provide a operator[] method. + * The container type must provide an operator[] method. * * If C has a const qualifier we are a const iterator, otherwise we * are a mutable iterator. @@ -171,7 +171,7 @@ namespace Dune { /** * @brief The value type of the iterator. * - * This is the return type of the iterator returned when derefencing. + * This is the return type when dereferencing the iterator. */ typedef T Value; @@ -185,15 +185,15 @@ namespace Dune { */ typedef R Reference; - // Constructors needed by the base iterators. + // Constructors needed by the base iterators GenericIterator() : container_(0), position_(0) {} /** - * @brief Constructor. - * @param cont Reference to the container we are an iterator for. - * @param pos The postion the Iterator will be positioned to. - * (e. g. 0 for an iterator return by Container::begin() or + * @brief Constructor + * @param cont Reference to the container we are an iterator for + * @param pos The postion the iterator will be positioned to + * (e.g. 0 for an iterator returned by Container::begin() or * the sizeof the container for an iterator returned by Container::end() */ GenericIterator(Container& cont, DifferenceType pos) @@ -201,11 +201,11 @@ namespace Dune { {} /** - * @brief Copy constructor. + * @brief Copy constructor * * This is somehow hard to understand, therefore play with the cases: - * 1. if we are mutable this is the only valid copy constructor, as the arguments is a mutable iterator - * 2. if we are a const iterator the argument is a mutable iterator => This is the needed conversion to initialize a const iterator form a mutable one. + * 1. if we are mutable this is the only valid copy constructor, as the argument is a mutable iterator + * 2. if we are a const iterator the argument is a mutable iterator => This is the needed conversion to initialize a const iterator from a mutable one. */ GenericIterator(const MutableIterator& other) : container_(other.container_), position_(other.position_) {} @@ -216,7 +216,7 @@ namespace Dune { * @warning Calling this method results in a compiler error, if this is a mutable iterator. * * This is somehow hard to understand, therefore play with the cases: - * 1. if we are mutable the arguments is a const iterator and therefore calling this method is mistake in the users code and results in a (probably not understandable compiler error + * 1. if we are mutable the arguments is a const iterator and therefore calling this method is mistake in the user's code and results in a (probably not understandable) compiler error * 2. If we are a const iterator this is the default copy constructor as the argument is a const iterator too. */ GenericIterator(const ConstIterator& other) : container_(other.container_), position_(other.position_) diff --git a/dune/common/gmpfield.hh b/dune/common/gmpfield.hh index 40bd8a968ba981d4784f9674f1f09103dc58e7c5..756930066fafdfbf883c4f058a00ed9a3742fb47 100644 --- a/dune/common/gmpfield.hh +++ b/dune/common/gmpfield.hh @@ -3,6 +3,10 @@ #ifndef DUNE_GMPFIELD_HH #define DUNE_GMPFIELD_HH +/** \file + * \brief Wrapper for the GNU multiprecision (GMP) library + */ + #include <iostream> #if HAVE_GMP diff --git a/dune/common/interfaces.hh b/dune/common/interfaces.hh index cc2870cc5cec610f6e44f6b0d5ae1a96176011e7..57f4b59b63990925ad4188baee9d2d198f4d741b 100644 --- a/dune/common/interfaces.hh +++ b/dune/common/interfaces.hh @@ -5,7 +5,7 @@ /** @file @author Robert Kloefkorn - @brief Provides a Interfaces for detection of specific behavior + @brief Provides interfaces for detection of specific behavior */ namespace Dune { diff --git a/dune/common/math.hh b/dune/common/math.hh index c402d5f7593e01fd0283d461da15a3239ff487bb..393baff975cd1973011fa00e3eedcecdc41244c2 100644 --- a/dune/common/math.hh +++ b/dune/common/math.hh @@ -3,6 +3,10 @@ #ifndef DUNE_MATH_HH #define DUNE_MATH_HH +/** \file + * \brief Some useful basic math stuff + */ + #include <cmath> namespace Dune diff --git a/dune/common/matvectraits.hh b/dune/common/matvectraits.hh index ab605833735cd7f7e9fa6c4f7d4a0630e30124f3..db67e68f7d4f6f4f18699147efea3c4699094c47 100644 --- a/dune/common/matvectraits.hh +++ b/dune/common/matvectraits.hh @@ -4,6 +4,10 @@ #ifndef DUNE_MATVECTRAITS_HH #define DUNE_MATVECTRAITS_HH +/** \file + * \brief Documentation of the traits classes you need to write for each implementation of DenseVector or DenseMatrix + */ + namespace Dune { /** diff --git a/dune/common/parallel/remoteindices.hh b/dune/common/parallel/remoteindices.hh index 8cc617dd35361ea53e8f89677d88dcd356a1d353..42a20635ffb831ecae6b9b544c41b0a5d35bd6f5 100644 --- a/dune/common/parallel/remoteindices.hh +++ b/dune/common/parallel/remoteindices.hh @@ -28,7 +28,7 @@ namespace Dune { */ /** * @file - * @brief Classes discribing a distributed indexset. + * @brief Classes describing a distributed indexset * @author Markus Blatt */ diff --git a/dune/common/parametertree.hh b/dune/common/parametertree.hh index ffcfe5e3a21bc07e5c27c5cfdc160b9ae45be92c..87e6b4d0859d640712ca9b3a2e407c384d2bb4ce 100644 --- a/dune/common/parametertree.hh +++ b/dune/common/parametertree.hh @@ -3,6 +3,10 @@ #ifndef DUNE_PARAMETERTREE_HH #define DUNE_PARAMETERTREE_HH +/** \file + * \brief A hierarchical structure of string parameters + */ + #include <cstddef> #include <iostream> #include <istream> diff --git a/dune/common/parametertreeparser.hh b/dune/common/parametertreeparser.hh index 814244c6fe0bcd073ec3fdbbeabd0ac8712fb15f..253cd61994a1686d178f3668316ba5980276f50a 100644 --- a/dune/common/parametertreeparser.hh +++ b/dune/common/parametertreeparser.hh @@ -3,6 +3,10 @@ #ifndef DUNE_PARAMETER_PARSER_HH #define DUNE_PARAMETER_PARSER_HH +/** \file + * \brief Various parser methods to get data into a ParameterTree object + */ + #include <istream> #include <string> diff --git a/dune/common/poolallocator.hh b/dune/common/poolallocator.hh index 5c200f56aaeb9356806423cee99b78a063937913..91d2824ae81c81278c8f5c00c064b1facaf2b8e1 100644 --- a/dune/common/poolallocator.hh +++ b/dune/common/poolallocator.hh @@ -4,6 +4,10 @@ #ifndef DUNE_COMMON_POOLALLOCATOR_HH #define DUNE_COMMON_POOLALLOCATOR_HH +/** \file + * \brief An stl-compliant pool allocator + */ + #include "alignment.hh" #include "static_assert.hh" #include "lcm.hh" diff --git a/dune/common/precision.hh b/dune/common/precision.hh index 3bdd830f25d5fac4a460356a0859e7c4be806497..f32ad1cc91bac2efe52f564302f2740e7009582f 100644 --- a/dune/common/precision.hh +++ b/dune/common/precision.hh @@ -3,6 +3,10 @@ #ifndef DUNE_PRECISION_HH #define DUNE_PRECISION_HH +/** \file + * \brief Various precision settings for calculations with FieldMatrix and FieldVector + */ + #include <stdlib.h> namespace Dune { diff --git a/dune/common/reservedvector.hh b/dune/common/reservedvector.hh index e5e5100030f3683fa19b6fa9477892baebbc5c7b..5174ce8cb15c31c2b443a0b7186d3bd74845edbe 100644 --- a/dune/common/reservedvector.hh +++ b/dune/common/reservedvector.hh @@ -3,6 +3,10 @@ #ifndef RESERVEDVECTOR_HH #define RESERVEDVECTOR_HH +/** \file + * \brief An stl-compliant random-access container which stores everything on the stack + */ + #include <iostream> #include <dune/common/genericiterator.hh> diff --git a/dune/common/singleton.hh b/dune/common/singleton.hh index 28b03a66c739ab64a7c6fadf8fb45f0d46d08592..a953c3a994d2aca916ac3e035b636ebf651163c6 100644 --- a/dune/common/singleton.hh +++ b/dune/common/singleton.hh @@ -7,9 +7,9 @@ /** * @file - * @brief Usefull wrapper for creating singletons. + * @brief Useful wrapper for creating singletons. * - * Inspirated by the article + * Inspired by the article * <a href="http://www.codeguru.com/cpp/cpp/cpp_mfc/singletons/article.php/c755/">CodeGuru: A Leak-Free Singleton class</a> */ namespace Dune @@ -20,8 +20,7 @@ namespace Dune * The class represented by the template parameter T must * have a parameterless constructor. * - * Class T can be publically - * derived from Singleton<T>: + * Class T can be publicly derived from Singleton<T>: * * \code * #include<dune/common/singleton.hh> diff --git a/dune/common/sllist.hh b/dune/common/sllist.hh index 90b5b8c4abf4c834bd3044cd8f1cfc5cbf4b03d5..ccb125023556ae722ab6d7f144ff61fbc609435e 100644 --- a/dune/common/sllist.hh +++ b/dune/common/sllist.hh @@ -1,8 +1,8 @@ // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- // vi: set et ts=4 sw=2 sts=2: // $Id$ -#ifndef DUNE__SLLIST_HH -#define DUNE__SLLIST_HH +#ifndef DUNE_SLLIST_HH +#define DUNE_SLLIST_HH #include <memory> #include <cassert> @@ -18,7 +18,7 @@ namespace Dune */ /** * @file - * \brief This file implements a single linked list together with + * \brief Implements a singly linked list together with * the necessary iterators. * @author Markus Blatt */ diff --git a/dune/common/static_assert.hh b/dune/common/static_assert.hh index 398468bdfcfa8e29ada466229383de063c7460f3..6c66ed31bdfa8bc3371ec1306a20d261cfc77e49 100644 --- a/dune/common/static_assert.hh +++ b/dune/common/static_assert.hh @@ -3,6 +3,10 @@ #ifndef DUNE_STATIC_ASSERT_HH #define DUNE_STATIC_ASSERT_HH +/** \file + * \brief Fallback implementation of the C++0x static_assert feature + */ + /** * @addtogroup Common * diff --git a/dune/common/stdstreams.hh b/dune/common/stdstreams.hh index 3e68d233b9d25ef43d66dd9fc6b29ba9c05a3496..fc60cd122d61bff68275013fbe76753f933f3507 100644 --- a/dune/common/stdstreams.hh +++ b/dune/common/stdstreams.hh @@ -39,6 +39,7 @@ namespace Dune { */ /*! \file + \brief Standard Dune debug streams The standard debug streams are compiled into libdune to exist globally. This file declares the stream types and the global debug diff --git a/dune/common/tuples.hh b/dune/common/tuples.hh index d4a432956a909c3ff471ad69d3a894217bb8afee..ce3f505465a30fab764013126cb9d426b3321320 100644 --- a/dune/common/tuples.hh +++ b/dune/common/tuples.hh @@ -22,7 +22,7 @@ namespace Dune { */ /** * @file - * @brief Contains classes that implement tuples. + * @brief Fallback implementation of the std::tuple class * * This a refined implementation of the approach defined in * in the article "Tuples and multiple return values diff --git a/dune/common/unused.hh b/dune/common/unused.hh index 391574a7ff18d779865ae47684b4fc95b520b2de..e9c2fec28550ea89d166a917d6036a707a1fe653 100644 --- a/dune/common/unused.hh +++ b/dune/common/unused.hh @@ -3,6 +3,11 @@ #ifndef DUNE_COMMON_UNUSED_HH #define DUNE_COMMON_UNUSED_HH +/** \file + * \brief Definition of the DUNE_UNUSED macro for the case that config.h + * is not available + */ + #ifndef HAS_ATTRIBUTE_UNUSED #define DUNE_UNUSED #else diff --git a/lib/dunemodules.lib b/lib/dunemodules.lib index 203e6a29c22023e1a9ee8fc1932c23255b431235..39aa025bf84801015d6b378937500232add19c77 100644 --- a/lib/dunemodules.lib +++ b/lib/dunemodules.lib @@ -58,24 +58,33 @@ parse_control() { # create and check variable name from module name export module_inst="no" export module=$(fix_variable_name $name) + if ! check_modname "$module"; then + echo "ERROR: $CONTROL files $1 contains an invalid Module entry" >&2 + exit 1 + fi # read dune.module file local deps="$(echo $($GREP "^[$BLANK]*Depends:" "$1" | cut -d ':' -f2))" local sugs="$(echo $($GREP "^[$BLANK]*Suggests:" "$1" | cut -d ':' -f2))" local vers="$(echo $($GREP "^[$BLANK]*Version:" "$1" | cut -d ':' -f2))" local main="$(echo $($GREP "^[$BLANK]*Maintainer:" "$1" | cut -d ':' -f2))" - # guess the path of the dune module: + # check whether the module is installed. + # - installed modules can be found via pkg-config + # - pkg-config --var=prefix should be the same as $path + # + # the path contains a different sub structure + # for installed and source modules # - installed module: ${path}/lib/dunecontrol/${name}/dune.module # and there is a file ${path}/lib/pkgconfig/${name}.pc # - source module: ${path}/dune.module # and there is a file ${path}/${name}.pc.in local path="$(canonicalpath "$1")" - if test -f $path/../../pkgconfig/${name}.pc; then - path=$(canonicalname "$path/../../../") + if pkg-config $name; then + local prefix="$(pkg-config --variable=prefix $name)" + local pkgpath=$(canonicalname "$prefix/lib/dunecontrol/${name}") + if test x"$pkgpath" = x"$path"; then + path="$prefix" export module_inst="yes" - fi - if ! check_modname "$module"; then - echo "ERROR: $CONTROL files $1 contains an invalid Module entry" >&2 - exit 1 + fi fi # avoid multiple definition of the same module if test "x$(eval echo \$HAVE_$module)" != "x"; then @@ -146,8 +155,8 @@ setup_control_path() { if pkg-config dune-common; then # try usual locations of installed modules for i in /usr/local/lib/dunecontrol/ /usr/lib/dunecontrol/; do - if test -d $i; then - DUNE_CONTROL_PATH=$DUNE_CONTROL_PATH:$i + if test -d $i; then + DUNE_CONTROL_PATH=$DUNE_CONTROL_PATH:"$i" fi done for i in `echo $PKG_CONFIG_PATH | tr ':' ' '`; do @@ -161,6 +170,17 @@ setup_control_path() { if test -n "$DUNE_OPTS_FILE"; then DUNE_CONTROL_PATH="$(. $DUNE_OPTS_FILE; eval echo $DUNE_CONTROL_PATH)" fi + # canonicalize path + local TMP="" + # foreach dir in $@ + while read dir; do + TMP=$TMP:"$(canonicalname $dir)" + done <<EOF + $(echo $DUNE_CONTROL_PATH | sed -e 's/:\+/:/g' | tr ':' '\n') +EOF + # sort+uniq path + DUNE_CONTROL_PATH="$(echo $TMP | tr ':' '\n' | sort -u | tr '\n' ':' | sed -e 's/^://' -e 's/:$//')" + # safe result export DUNE_CONTROL_PATH } diff --git a/m4/cxx0x_nullptr.m4 b/m4/cxx0x_nullptr.m4 index c3cf182faa2ed015aa67b066486e7589d24c25e4..5ada34a3e05734d02b8ca5ede2d5b92a57c1dfff 100644 --- a/m4/cxx0x_nullptr.m4 +++ b/m4/cxx0x_nullptr.m4 @@ -5,6 +5,7 @@ AC_DEFUN([NULLPTR_CHECK],[ AC_LANG_PUSH([C++]) AC_TRY_COMPILE([],[ char* ch = nullptr; + if(ch!=nullptr) { ; } ], dune_cv_nullptr_support=yes, dune_cv_nullptr_support=no) diff --git a/m4/parmetis.m4 b/m4/parmetis.m4 index bf3b38705e1cbd091cc4221ffc8d26aa4ee4f8f4..09954d1301bb2543ee1c9e20b1ec6d8ea186abc0 100644 --- a/m4/parmetis.m4 +++ b/m4/parmetis.m4 @@ -80,7 +80,7 @@ AC_DEFUN([DUNE_PATH_PARMETIS],[ if test x"$with_mpi" != x"no" && test x"$with_parmetis" != x"no" ; then # defaultpath - PARMETIS_LIB_PATH="$with_parmetis$lib_path" + PARMETIS_LIB_PATH="$with_parmetis/$lib_path" PARMETIS_INCLUDE_PATH="$with_parmetis/$include_path" PARMETIS_LIBS="-L$PARMETIS_LIB_PATH -l$with_metis_lib $DUNEMPILIBS -lm"