From 0dd1c0c23f306d64b6bc4302ba61d4d0a03d80e4 Mon Sep 17 00:00:00 2001
From: Markus Blatt <mblatt@dune-project.org>
Date: Sat, 16 Mar 2013 16:56:03 +0000
Subject: [PATCH] [Merge][Bugfix] r1895 from branches/release-cmake-2.2: 
 Prevent definition of HAVE_BOOST without value due to race conditions in some
 autoconf versions.

For some autoconf versions there was a race condition between ax_boost_base.m4 and dune_boost_base.m4 resulting in HAVE_BOOST being defined with no value (instead of ENABLE_BOOST). For others there were even two definitions of it (one with and one without value).

This patch renames the symbol being defined in dune_boost_base.m4 to HAVE_DUNE_BOOST and defines a value for it if boost is found.

Please change your code such the preprocessor directives checking for boost from
#if HAVE_BOOST
to
#if HAVE_DUNE_BOOST

Resolves flyspray 1265 and presumably 1249.

This time the patch is clean (as opposed to r1896 which was reverted in r1901).

[[Imported from SVN: r1902]]
---
 dune/istl/gsetc.hh                | 8 ++++----
 dune/istl/multitypeblockmatrix.hh | 4 ++--
 dune/istl/multitypeblockvector.hh | 4 ++--
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/dune/istl/gsetc.hh b/dune/istl/gsetc.hh
index 821426aa1..2770cf4ca 100644
--- a/dune/istl/gsetc.hh
+++ b/dune/istl/gsetc.hh
@@ -373,7 +373,7 @@ namespace Dune {
   template<int I>
   struct algmeta_itsteps {
 
-#if HAVE_BOOST
+#if HAVE_DUNE_BOOST
 #ifdef HAVE_BOOST_FUSION
 
     template<typename T11, typename T12, typename T13, typename T14,
@@ -421,7 +421,7 @@ namespace Dune {
       x.axpy(K(1)-w,xold);
     }
 
-#if HAVE_BOOST
+#if HAVE_DUNE_BOOST
 #ifdef HAVE_BOOST_FUSION
 
     template<typename T11, typename T12, typename T13, typename T14,
@@ -471,7 +471,7 @@ namespace Dune {
       }
     }
 
-#if HAVE_BOOST
+#if HAVE_DUNE_BOOST
 #ifdef HAVE_BOOST_FUSION
 
     template<typename T11, typename T12, typename T13, typename T14,
@@ -521,7 +521,7 @@ namespace Dune {
       }
     }
 
-#if HAVE_BOOST
+#if HAVE_DUNE_BOOST
 #ifdef HAVE_BOOST_FUSION
 
     template<typename T11, typename T12, typename T13, typename T14,
diff --git a/dune/istl/multitypeblockmatrix.hh b/dune/istl/multitypeblockmatrix.hh
index eb7ab3e2d..da0012ed9 100644
--- a/dune/istl/multitypeblockmatrix.hh
+++ b/dune/istl/multitypeblockmatrix.hh
@@ -8,7 +8,7 @@
 
 #include "istlexception.hh"
 
-#if HAVE_BOOST
+#if HAVE_DUNE_BOOST
 #ifdef HAVE_BOOST_FUSION
 
 #include <boost/fusion/sequence.hpp>
@@ -463,5 +463,5 @@ namespace Dune {
 } // end namespace
 
 #endif // HAVE_BOOST_FUSION
-#endif // HAVE_BOOST
+#endif // HAVE_DUNE_BOOST
 #endif
diff --git a/dune/istl/multitypeblockvector.hh b/dune/istl/multitypeblockvector.hh
index 63da325dc..39495b9de 100644
--- a/dune/istl/multitypeblockvector.hh
+++ b/dune/istl/multitypeblockvector.hh
@@ -3,7 +3,7 @@
 #ifndef DUNE_MULTITYPEVECTOR_HH
 #define DUNE_MULTITYPEVECTOR_HH
 
-#if HAVE_BOOST
+#if HAVE_DUNE_BOOST
 #ifdef HAVE_BOOST_FUSION
 
 #include <cmath>
@@ -317,6 +317,6 @@ namespace Dune {
 } // end namespace
 
 #endif // end HAVE_BOOST_FUSION
-#endif // end HAVE_BOOST
+#endif // end HAVE_DUNE_BOOST
 
 #endif
-- 
GitLab