summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Lecher <jlec@gentoo.org>2015-12-27 17:34:31 +0100
committerJustin Lecher <jlec@gentoo.org>2015-12-27 17:34:31 +0100
commita32dafa1efb3a3f3bb748ae86f39ffd4fc6928f3 (patch)
treef8924f84ecd8c8f474426b31986c098a798d91e2
parentmedia-radio/xlog: move patch for underlinking to src_prepare phase (diff)
parentsci-biology/vaal: Remove old patches (diff)
downloadgentoo-a32dafa1efb3a3f3bb748ae86f39ffd4fc6928f3.tar.gz
gentoo-a32dafa1efb3a3f3bb748ae86f39ffd4fc6928f3.tar.bz2
gentoo-a32dafa1efb3a3f3bb748ae86f39ffd4fc6928f3.zip
Merge branch 'SoapZaNet-bug-568438'
* SoapZaNet-bug-568438: sci-biology/vaal: Remove old patches sci-biology/vaal: Gentoo-Bug: 568438, fix global namespace std:: clash.
-rw-r--r--sci-biology/vaal/files/vaal-1.2-as-needed.patch22
-rw-r--r--sci-biology/vaal/files/vaal-1.2-gcc-x86-no-autocast.patch39
-rw-r--r--sci-biology/vaal/files/vaal-1.2-respect-flags.patch60
-rw-r--r--sci-biology/vaal/files/vaal-1.6-gcc47.patch153
-rw-r--r--sci-biology/vaal/files/vaal-1.6-respect-flags.patch12
-rw-r--r--sci-biology/vaal/files/vaal-46233_remove-namespace-std.patch911
-rw-r--r--sci-biology/vaal/vaal-46233-r1.ebuild42
7 files changed, 953 insertions, 286 deletions
diff --git a/sci-biology/vaal/files/vaal-1.2-as-needed.patch b/sci-biology/vaal/files/vaal-1.2-as-needed.patch
deleted file mode 100644
index 31649010dbe3..000000000000
--- a/sci-biology/vaal/files/vaal-1.2-as-needed.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- VAAL.orig/MakeDepend.cc 2008-12-18 17:05:48.000000000 +0100
-+++ VAAL/MakeDepend.cc 2010-02-14 13:42:23.734370178 +0100
-@@ -1195,9 +1195,6 @@
- }
- }
- mf << " -L. -L$(LIB) -L$(OBJ) $(LINK_LIBS)";
-- for ( set<string>::iterator dep_iter = lib_deps.begin();
-- dep_iter != lib_deps.end(); ++dep_iter )
-- mf << " " << "$(" << *dep_iter << "_LFLAGS)";
- for ( set<string>::iterator dep_iter = sharedlib_deps.begin();
- dep_iter != sharedlib_deps.end(); ++dep_iter ) {
- // Extract the symbolic name of this library from its filename.
-@@ -1208,6 +1205,9 @@
- mf << " -l" << sharedlib_name;
- }
- mf << " -l" << libname;
-+ for ( set<string>::iterator dep_iter = lib_deps.begin();
-+ dep_iter != lib_deps.end(); ++dep_iter )
-+ mf << " " << "$(" << *dep_iter << "_LFLAGS)";
- mf << "\n\t" << "/bin/rm $(OBJ)/lib" << libname << ".a\n";
- }
- }
diff --git a/sci-biology/vaal/files/vaal-1.2-gcc-x86-no-autocast.patch b/sci-biology/vaal/files/vaal-1.2-gcc-x86-no-autocast.patch
deleted file mode 100644
index c021fadb44b1..000000000000
--- a/sci-biology/vaal/files/vaal-1.2-gcc-x86-no-autocast.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff -durr VAAL.orig/SortKmersImpl.h VAAL/SortKmersImpl.h
---- VAAL.orig/SortKmersImpl.h 2009-11-12 13:02:40.116993289 +0000
-+++ VAAL/SortKmersImpl.h 2009-11-12 13:04:59.416388534 +0000
-@@ -98,7 +98,7 @@
- { if ( reads[l].size( ) < KSPAN ) continue;
- unsigned int N = reads[l].size( ) - KSPAN + 1;
- if ( S + 2*N >= R.size( ) ) {
-- unsigned nn = Max( (long unsigned) ( 1.2 * R.size( ) ), (R.size( ) + 2*N) );
-+ unsigned nn = Max( (long unsigned) ( 1.2 * R.size( ) ), (long unsigned) (R.size( ) + 2*N) );
- if ( nn < R.size( ) ) FatalErr( "SortKmers<1>: Unsigned-int overflow (R=" << R.size( ) << ")" );
- R.resize(nn);
- }
-@@ -180,7 +180,7 @@
- }
- if ( q == N ) break;
- if ( S + 2*N >= R.size( ) ) {
-- unsigned nn = Max( (long unsigned) ( 1.2 * R.size( ) ), (R.size( ) + 2*N) );
-+ unsigned nn = Max( (long unsigned) ( 1.2 * R.size( ) ), (long unsigned) (R.size( ) + 2*N) );
- if ( nn < R.size( ) ) FatalErr( "SortKmers<10>: Unsigned-int overflow (R=" << R.size( ) << ")" );
- R.resize(nn);
- }
-@@ -207,7 +207,7 @@
- top += Min( N - top, (unsigned int) 10000 );
-
- if ( S + 20000 >= R.size( ) || S + 2*N >= R.size( ) ) {
-- unsigned nn = Max( (long unsigned) ( 1.2 * R.size( ) ), (R.size( ) + 2*N) );
-+ unsigned nn = Max( (long unsigned) ( 1.2 * R.size( ) ), (long unsigned) (R.size( ) + 2*N) );
- if ( nn < R.size( ) ) FatalErr( "SortKmers<10>: Unsigned-int overflow (R=" << R.size( ) << ")" );
- R.resize(nn);
- }
-@@ -318,7 +318,7 @@
-
- top += Min( N - top, 10000 );
- if ( S + 2*(top - q) >= R.size( ) ) {
-- unsigned nn = Max( (unsigned) ( 1.2 * R.size( ) ), (S + 2*(top - q)) );
-+ unsigned nn = Max( (unsigned) ( 1.2 * R.size( ) ), (unsigned) (S + 2*(top - q)) );
- if ( nn < R.size( ) ) FatalErr( "SortKmers<100>: Unsigned-int overflow (R=" << R.size( ) << ")" );
- R.resize(nn);
- }
diff --git a/sci-biology/vaal/files/vaal-1.2-respect-flags.patch b/sci-biology/vaal/files/vaal-1.2-respect-flags.patch
deleted file mode 100644
index d3420556b608..000000000000
--- a/sci-biology/vaal/files/vaal-1.2-respect-flags.patch
+++ /dev/null
@@ -1,60 +0,0 @@
---- VAAL.orig/Makefile.in 2009-04-02 21:43:42.000000000 +0200
-+++ VAAL/Makefile.in 2010-02-14 14:20:26.222370302 +0100
-@@ -161,12 +161,16 @@
- COMPILER = @CC@
- CPLUSPLUS = @CXX@
-
-+CFLAGS = @CFLAGS@
-+CXXFLAGS = @CXXFLAGS@
-+LDFLAGS = @LDFLAGS@
-+
- # QUIET=yes causes the compiler to be less verbose about warnings.
- QUIET = no
-
- # DEBUG=yes forces out-of-date executables to be built with symbolic
- # debugging information. Any other value is ignored.
--DEBUG = yes
-+DEBUG = no
-
- # OPTIM=<compiler optimization> forces user-defined optimizations to be used,
- # rather than the compiler-specific default.
-@@ -174,7 +178,7 @@
- # If OPTIM=none, then no optimization is used.
- # If unset, defaults are used.
- # -fno-exceptions
--OPTIM =
-+OPTIM = none
-
- # PROFILE=yes builds sampled-profiling (i.e. gprof) executables. Any other
- # value is ignored.
-@@ -317,6 +321,7 @@
- # Setup final compilation options:
-
- CPP_OPTIONS = \
-+ $(CXXFLAGS) \
- $(SYS_WARN) \
- $(SYS_OPT) \
- $(SYS_DEBUG) \
-@@ -328,6 +333,7 @@
- @INCLUDES@
-
- LINK_OPTIONS = \
-+ $(LDFLAGS) \
- $(SYS_DEBUG) \
- $(SYS_LINK) \
- $(OMP_LINK) \
-@@ -406,12 +406,12 @@
- $(CPLUSPLUS) $(CPPO) $(CPPC) $(SYS_LANG) $(MAKEDEPEND_OPTS) -o $(BIN)/MakeDepend $(SRC)/MakeDepend.cc
-
- checkLock: $(SRC)/util/checkLock.cc
-- $(CPLUSPLUS) $(SRC)/util/checkLock.cc -o $(BIN)/checkLock
-+ $(CPLUSPLUS) $(CXXFLAGS) $(SRC)/util/checkLock.cc $(LDFLAGS) -o $(BIN)/checkLock
-
- random/Random.o: random/Random.cc
- @ mkdir -p $(OBJ)/${@D}
- cp $(SRC)/random/Random.cc $(SRC)/random/Random.c
-- $(CC) $(SYS_LANG) -c $(SRC)/random/Random.cc -w -Drandom=randomx -Dsrandom=srandomx -o $(OBJ)/random/Random.o
-+ $(CC) $(CFLAGS) $(SYS_LANG) -c $(SRC)/random/Random.cc -w -Drandom=randomx -Dsrandom=srandomx -o $(OBJ)/random/Random.o
- rm $(SRC)/random/Random.c
-
- MemTracker.o: MemTracker.cc
diff --git a/sci-biology/vaal/files/vaal-1.6-gcc47.patch b/sci-biology/vaal/files/vaal-1.6-gcc47.patch
deleted file mode 100644
index 0d80f08d3c21..000000000000
--- a/sci-biology/vaal/files/vaal-1.6-gcc47.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-Fix building with gcc-4.7
-
-https://bugs.gentoo.org/show_bug.cgi?id=423497
-
-Patch written by Kacper Kowalik <xarthisius@gentoo.org>
---- a/src/feudal/MasterVec.h
-+++ b/src/feudal/MasterVec.h
-@@ -62,20 +62,20 @@
- /// This function is deprecated: Use reserve() instead.
- /// The pool size argument is ignored, anyway.
- MasterVec& Reserve( unsigned long raw_mem_size_ignored, size_type capacity )
-- { reserve(capacity); return *this; }
-+ { this->reserve(capacity); return *this; }
-
- /// This function is deprecated: Use clear().shrink_to_fit().
- MasterVec& destroy() { BaseT::clear(); BaseT::shrink_to_fit(); return *this; }
-
- /// This function is deprecated: Use push_back().
- MasterVec& push_back_external( T const& val )
-- { push_back(val); return *this; }
-+ { this->push_back(val); return *this; }
-
- /// This function is deprecated: Use push_back().
- MasterVec& push_back_reserve( T const& val,
- size_type growthIncr = 0,
- float growthFact = 1.3f )
-- { push_back(val,growthFact,growthIncr); return *this; }
-+ { this->push_back(val,growthFact,growthIncr); return *this; }
-
- /// This function is deprecated: Use append().
- MasterVec& Append( MasterVec const& that )
-@@ -83,7 +83,7 @@
-
- /// This function is deprecated: Use append().
- MasterVec& Append( MasterVec const& that, size_type from, size_type to )
-- { append(that.begin(from),that.begin(to)); return *this; }
-+ { this->append(that.begin(from),that.begin(to)); return *this; }
-
- MasterVec const& WriteAll( String const& fileName ) const
- { return WriteRange(fileName,0UL,BaseT::size()); return *this; }
-@@ -108,7 +108,7 @@
- { if ( !append ) BaseT::clear();
- FeudalFileReader rdr(fileName.c_str());
- size_type siz = rdr.getNElements();
-- reserve(BaseT::size()+siz);
-+ this->reserve(BaseT::size()+siz);
- preAlloc(rdr,0,siz);
- for ( size_type iii = 0; iii < siz; ++iii )
- appendFromReader(rdr,iii);
---- a/src/feudal/FeudalControlBlock.cc
-+++ b/src/feudal/FeudalControlBlock.cc
-@@ -24,6 +24,7 @@
- #include <string.h>
- #include <errno.h>
- #include <iostream>
-+#include <unistd.h>
-
- using std::cout;
- using std::endl;
---- a/src/feudal/SerfVec.h
-+++ b/src/feudal/SerfVec.h
-@@ -83,9 +83,9 @@
- { AssertLe(pos,that.size());
- AssertLe(len,that.size()-pos);
- if ( this != &that )
-- { assign(that.begin(pos),that.begin(pos+len)); }
-+ { this->assign(that.begin(pos),that.begin(pos+len)); }
- else
-- { erase(BaseT::begin(),BaseT::begin(pos));
-+ { this->erase(BaseT::begin(),BaseT::begin(pos));
- BaseT::resize(len); }
- return *this; }
-
---- a/src/system/ProcBuf.cc
-+++ b/src/system/ProcBuf.cc
-@@ -195,12 +195,12 @@
- Assert(M_internal_put_buffer == NULL);
- M_internal_put_buffer = new char_type [DEFAULT_PUT_BUFFER_SIZE];
- M_internal_put_buffer_end = M_internal_put_buffer+DEFAULT_PUT_BUFFER_SIZE;
-- setp(M_internal_put_buffer,
-+ this->setp(M_internal_put_buffer,
- M_internal_put_buffer_end);
- } else if (!flush())
- return traits_type::eof();
- if (!traits_type::eq_int_type(c, traits_type::eof()))
-- return sputc(c);
-+ return this->sputc(c);
- else
- return traits_type::not_eof(c);
- }
-@@ -240,7 +240,7 @@
- // (which is start of buffer)
- std::copy_backward(this->eback(), this->egptr(), this->egptr()+1);
- *(this->gptr()) = traits_type::to_char_type(c);
-- setg(this->eback(), this->gptr(), this->egptr()+1);
-+ this->setg(this->eback(), this->gptr(), this->egptr()+1);
- return traits_type::not_eof(c);
- } else
- return traits_type::eof();
-@@ -269,7 +269,7 @@
- // doing wchars and we write an odd # of bytes?
- return false;
- } else {
-- setp(this->pbase(), this->epptr());
-+ this->setp(this->pbase(), this->epptr());
- return true;
- }
- }
-@@ -283,7 +283,7 @@
- Assert(M_internal_get_buffer == NULL);
- M_internal_get_buffer = new char_type[DEFAULT_GET_BUFFER_SIZE];
- M_internal_get_buffer_end = M_internal_get_buffer + DEFAULT_GET_BUFFER_SIZE;
-- setg(M_internal_get_buffer, M_internal_get_buffer_end, M_internal_get_buffer_end);
-+ this->setg(M_internal_get_buffer, M_internal_get_buffer_end, M_internal_get_buffer_end);
- }
- // The "get" pointer should be at the end of the buffer - that's
- // why we need to fill it.
-@@ -318,7 +318,7 @@
- //
- // reset the get pointers
- //
-- setg(M_internal_get_buffer,
-+ this->setg(M_internal_get_buffer,
- M_internal_get_buffer,
- M_internal_get_buffer+numusable/sizeof(char_type));
- return true;
---- a/src/system/SysConf.cc
-+++ b/src/system/SysConf.cc
-@@ -19,6 +19,7 @@
- #include "system/SysConf.h"
- #include "system/Exit.h"
- #include <iostream>
-+#include <unistd.h>
-
- namespace
- {
---- a/src/Vec.h
-+++ b/src/Vec.h
-@@ -261,11 +261,11 @@
-
- template <class U>
- void append( const vec<U>& y )
-- { insert( this->end( ), y.begin( ), y.end( ) ); }
-+ { this->insert( this->end( ), y.begin( ), y.end( ) ); }
-
- void append( const vec<T>& y, size_type i, size_type j ) {
-- if ( j == y.size( ) ) insert( this->end( ), y.begin( ) + i, y.end( ) );
-- else insert( this->end( ), y.begin( ) + i, y.begin( ) + j );
-+ if ( j == y.size( ) ) this->insert( this->end( ), y.begin( ) + i, y.end( ) );
-+ else this->insert( this->end( ), y.begin( ) + i, y.begin( ) + j );
- }
-
- // appends values in y, but only those whose indices are in entries
diff --git a/sci-biology/vaal/files/vaal-1.6-respect-flags.patch b/sci-biology/vaal/files/vaal-1.6-respect-flags.patch
deleted file mode 100644
index 152fb423e924..000000000000
--- a/sci-biology/vaal/files/vaal-1.6-respect-flags.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -dur vaal-33805.orig/configure.ac vaal-33805/configure.ac
---- vaal-33805.orig/configure.ac 2010-09-20 04:37:49.858059826 +0000
-+++ vaal-33805/configure.ac 2010-09-20 04:39:41.178059477 +0000
-@@ -14,7 +14,7 @@
- AC_OPENMP
- AC_OPENMP_CEHCK
-
--CXXFLAGS=" -imacros config.h -Wextra -Wall -Wno-unused -ansi -pedantic -Wno-long-long -Wsign-promo -Woverloaded-virtual -Wendif-labels -O3 -ggdb3 -ftemplate-depth-50 -Wno-deprecated -Wno-parentheses -fno-strict-aliasing -mieee-fp -iquote ."
-+CXXFLAGS+=" -imacros config.h -Wextra -Wall -Wno-unused -ansi -pedantic -Wno-long-long -Wsign-promo -Woverloaded-virtual -Wendif-labels -ftemplate-depth-50 -Wno-deprecated -Wno-parentheses -fno-strict-aliasing -mieee-fp -iquote ."
-
- OS_RELEASE="`uname -r`"
- AC_SUBST(CXXFLAGS)
diff --git a/sci-biology/vaal/files/vaal-46233_remove-namespace-std.patch b/sci-biology/vaal/files/vaal-46233_remove-namespace-std.patch
new file mode 100644
index 000000000000..c3c3ec032481
--- /dev/null
+++ b/sci-biology/vaal/files/vaal-46233_remove-namespace-std.patch
@@ -0,0 +1,911 @@
+Remove 'using namespace std' causing massive havoc with newly
+introduced std::align in GCC-5. Fix bug
+https://bugs.gentoo.org/show_bug.cgi?id=568438
+
+--- vaal-46233/src/efasta/EfastaTools.cc
++++ vaal-46233/src/efasta/EfastaTools.cc
+@@ -18,6 +18,8 @@
+ #include "math/Functions.h"
+ #include "math/Array.h"
+
++using std::set;
++
+ #define Err(message) \
+ { cout << message << endl << "\nInvalid.\n" << endl; \
+ TracebackThisProcess( ); }
+--- vaal-46233/src/Equiv.cc
++++ vaal-46233/src/Equiv.cc
+@@ -9,6 +9,8 @@
+ #include "Equiv.h"
+ #include "Vec.h"
+
++using std::swap;
++
+ bool equivalence_relation::equiv(int a, int b) const
+ { if ( a == b ) return true;
+ int c = a;
+--- vaal-46233/src/FastaFilestream.cc
++++ vaal-46233/src/FastaFilestream.cc
+@@ -13,6 +13,8 @@
+
+ #include <strstream>
+
++using std::string;
++
+ template <typename vecT, typename seqT, typename convT, typename verifT>
+ FastaFilestream<vecT,seqT,convT,verifT>::FastaFilestream( const String& filename,
+ FastaNameParser* name_parser )
+--- vaal-46233/src/FastaFilestreamPreview.cc
++++ vaal-46233/src/FastaFilestreamPreview.cc
+@@ -11,6 +11,8 @@
+
+ #include <algorithm>
+
++using std::streamoff;
++
+ FastaFilestreamPreview::FastaFilestreamPreview(istream& filestream)
+ : max_sequence_size_(0), start_offset_(0)
+ {
+--- vaal-46233/src/FastaFilestreamPreview.h
++++ vaal-46233/src/FastaFilestreamPreview.h
+@@ -12,6 +12,8 @@
+
+ #include "Vec.h"
+
++using std::streampos;
++
+ // FastaFilestreamPreview understands just enough about the fasta
+ // format to be able to count the number of sequences in the specified
+ // filestream and to know where each sequence starts in that filestream.
+--- vaal-46233/src/Fastavector.cc
++++ vaal-46233/src/Fastavector.cc
+@@ -14,6 +14,8 @@
+ #include <istream>
+ #include <string>
+
++using std::max;
++
+ // Split this into chunks, separated by gaps ('n'), and return each chunk as a
+ // gapless fastavector.
+ // TODO: generalize this into a templatized STL algorithm.
+--- vaal-46233/src/Fastavector.h
++++ vaal-46233/src/Fastavector.h
+@@ -24,6 +24,9 @@
+ #include <iostream>
+ #include <unistd.h>
+
++using std::string;
++using std::istringstream;
++
+ typedef std::tuple<String, int, int> FastaRegion;
+
+ class fastaindex {
+--- vaal-46233/src/FetchReads.cc
++++ vaal-46233/src/FetchReads.cc
+@@ -36,6 +36,8 @@
+ #include "Qualvector.h"
+ #include "random/Random.h"
+
++using std::istringstream;
++
+ // Heuristic constants:
+
+ namespace
+--- vaal-46233/src/feudal/BaseVec.cc
++++ vaal-46233/src/feudal/BaseVec.cc
+@@ -21,6 +21,7 @@
+ using std::ostream;
+ using std::cout;
+ using std::endl;
++using std::max_element;
+
+ // Cap: in a given basevector, replace any sequence of N > n identical
+ // bases by n of the same base.
+--- vaal-46233/src/graph/Digraph.cc
++++ vaal-46233/src/graph/Digraph.cc
+@@ -16,6 +16,8 @@
+ #include "graph/Digraph.h"
+ #include "math/Functions.h"
+
++using std::make_pair;
++
+ Bool digraph::HasEdge( int v, int w ) const {
+ return find( from_[v].begin(), from_[v].end(), w ) != from_[v].end();
+ }
+--- vaal-46233/src/graph/DigraphTemplate.h
++++ vaal-46233/src/graph/DigraphTemplate.h
+@@ -34,6 +34,8 @@
+ #include "graph/Digraph.h"
+ #include <cstddef>
+
++using std::make_pair;
++
+ template<class E> vec<int> digraphE<E>::EdgesConnectedTo( const vec<int>& v ) const
+ { vec<int> G = VerticesConnectedTo(v), e;
+ for ( int x = 0; x < G.isize( ); x++ )
+--- vaal-46233/src/IndexedAlignmentPlusVector.cc
++++ vaal-46233/src/IndexedAlignmentPlusVector.cc
+@@ -9,6 +9,8 @@
+ #include "IndexedAlignmentPlusVector.h"
+ #include "VecAlignmentPlus.h"
+
++using std::streamoff;
++
+ // These strings are at the head of the vector and index files for verification purposes.
+
+ const String VecAlignmentPlusHeaderIO::mStrVectorHeader( "alignment_plus vector V.2\n" );
+--- vaal-46233/src/IndexedAlignmentPlusVector.h
++++ vaal-46233/src/IndexedAlignmentPlusVector.h
+@@ -15,6 +15,7 @@
+
+ #include "Alignment.h"
+
++using std::streampos;
+
+ // This class encapsulates the header information for both vectors and indices.
+
+--- vaal-46233/src/kmers/kmer_parcels/KmerParcelsBuilder.cc
++++ vaal-46233/src/kmers/kmer_parcels/KmerParcelsBuilder.cc
+@@ -10,6 +10,7 @@
+ #include "kmers/KmerParcels.h"
+ #include "system/WorklistN.h"
+
++using std::fixed;
+
+ inline String Tag(String S = "KPs") { return Date() + " (" + S + "): "; }
+
+--- vaal-46233/src/kmers/kmer_parcels/KmerParcelsClasses.h
++++ vaal-46233/src/kmers/kmer_parcels/KmerParcelsClasses.h
+@@ -6,6 +6,9 @@
+ // Institute is not responsible for its use, misuse, or functionality. //
+ ///////////////////////////////////////////////////////////////////////////////
+
++using std::hex;
++using std::dec;
++
+ // ---------------------------------
+ // NaifTimer
+ // ---------------------------------
+--- vaal-46233/src/kmers/kmer_parcels/KmerParcelsStatistics.h
++++ vaal-46233/src/kmers/kmer_parcels/KmerParcelsStatistics.h
+@@ -10,7 +10,7 @@
+ #ifndef KMERS__KMER_PARCELS__KMER_PARCELS_STATISTICS_H
+ #define KMERS__KMER_PARCELS__KMER_PARCELS_STATISTICS_H
+
+-
++using std::map;
+
+ // --------------------------------------
+ // MapOfCounters
+--- vaal-46233/src/layout/ContigActualloc.h
++++ vaal-46233/src/layout/ContigActualloc.h
+@@ -17,6 +17,8 @@
+ #include "system/Crash.h"
+ #include "Misc.h"
+
++using std::set;
++using std::map;
+
+ //
+ // Class contig_actualloc
+--- vaal-46233/src/lookup/ImperfectLookup.h
++++ vaal-46233/src/lookup/ImperfectLookup.h
+@@ -52,6 +52,8 @@
+ #include "lookup/AlignCollector.h"
+ #include "solid/Solid.h"
+
++using std::unique_ptr;
++
+ class TaskTimer;
+
+
+@@ -534,7 +536,7 @@
+ aligns.resize( nqueries );
+ }
+
+- auto_ptr<TaskTimer> t1, t2;
++ unique_ptr<TaskTimer> t1, t2;
+
+ if ( m_instr_level & IO_TIMER != 0 ) t1.reset( new TaskTimer() );
+ if ( m_instr_level & CPU_TIMER != 0 ) t2.reset( new TaskTimer() );
+--- vaal-46233/src/lookup/LookAlign.cc
++++ vaal-46233/src/lookup/LookAlign.cc
+@@ -29,6 +29,8 @@
+ #include "random/Random.h"
+ #include "system/ParsedArgs.h"
+
++using std::istrstream;
++
+ String QUERY("QUERY");
+
+ void look_align::ResetFromAlign(const align & al, const basevector & b1,
+--- vaal-46233/src/lookup/LookAlignFinder.h
++++ vaal-46233/src/lookup/LookAlignFinder.h
+@@ -12,6 +12,8 @@
+ #include "lookup/LookAlign.h"
+ #include "Vec.h"
+
++using std::set;
++
+ /**
+ Class: LookAlignFinder
+
+--- vaal-46233/src/lookup/LookAlignSort.h
++++ vaal-46233/src/lookup/LookAlignSort.h
+@@ -15,6 +15,8 @@
+
+ #include <functional>
+
++using std::set;
++
+ /// Read in look_aligns from file, sort, and load into vecs
+ /// \param fname name of look_align text file
+ /// \param aligns vector into which to put the alignments
+--- vaal-46233/src/lookup/LookupTable.h
++++ vaal-46233/src/lookup/LookupTable.h
+@@ -18,6 +18,8 @@
+
+ #include <set>
+
++using std::set;
++
+ typedef pair<unsigned int, unsigned int> LocSeq;
+
+ ///
+--- vaal-46233/src/lookup/QueryLookupTableCore.cc
++++ vaal-46233/src/lookup/QueryLookupTableCore.cc
+@@ -456,6 +456,9 @@
+ #include "system/ParsedArgs.h"
+ #include "system/file/FileReader.h"
+
++using std::istrstream;
++using std::less_equal;
++
+ #define ABORT(MSG) \
+ { out << MSG << " Abort." << endl << endl; \
+ exit(1); }
+--- vaal-46233/src/lookup/ShortQueryLookup.cc
++++ vaal-46233/src/lookup/ShortQueryLookup.cc
+@@ -32,6 +32,8 @@
+ #include "lookup/AlignCollector.h"
+ #include "lookup/ImperfectLookup.h"
+
++using std::ios_base;
++
+ // Run an alignment processing chain: seqs -> look -> receiver -> aligns
+ // That is, look turns seqs into hits, which receiver accepts
+ // and turns into alignments which are passed to aligns. The
+--- vaal-46233/src/Map.h
++++ vaal-46233/src/Map.h
+@@ -21,7 +21,7 @@
+ #include <map>
+ #include <ext/hash_map>
+ using namespace __gnu_cxx;
+-
++using std::map;
+
+ ///Return true if k is a key in map m
+ template<class Key, class Value, typename Cmp>
+--- vaal-46233/src/math/Array.h
++++ vaal-46233/src/math/Array.h
+@@ -12,6 +12,9 @@
+ #include "CoreTools.h"
+ #include "Vec.h"
+
++using std::map;
++using std::fill;
++
+ // ==============================================================================
+ // A fixed-size simple c-style 2D array that allocates faster than vec< vec<T> >
+ // The elements are uninitialized.
+--- vaal-46233/src/math/Functions.cc
++++ vaal-46233/src/math/Functions.cc
+@@ -10,8 +10,8 @@
+ #include "STLExtensions.h"
+ #include "math/Functions.h"
+
+-
+-
++using std::isfinite;
++using std::make_pair;
+
+ /* CombineNormalDistribution Filipe Ribeiro 2009-06-22
+ *
+--- vaal-46233/src/math/Functions.h
++++ vaal-46233/src/math/Functions.h
+@@ -14,6 +14,10 @@
+ #include <cmath>
+ #include <numeric>
+
++using std::min;
++using std::cerr;
++using std::swap;
++
+ // ===========================================================================
+ //
+ // Min functions
+--- vaal-46233/src/math/HoInterval.cc
++++ vaal-46233/src/math/HoInterval.cc
+@@ -10,6 +10,8 @@
+ #include "math/HoInterval.h"
+ #include "STLExtensions.h"
+
++using std::make_pair;
++
+ bool ho_interval::Merge(const ho_interval & o) {
+ if (!Meets(*this,o)) return false;
+ *this = Span(*this, o);
+--- vaal-46233/src/math/HoInterval.h
++++ vaal-46233/src/math/HoInterval.h
+@@ -14,6 +14,8 @@
+ #include "feudal/MasterVec.h"
+ #include "feudal/SerfVec.h"
+
++using std::max;
++
+ /// Class: ho_interval
+ /// A half-open interval [a, b).
+ class ho_interval {
+--- vaal-46233/src/PackAlign.h
++++ vaal-46233/src/PackAlign.h
+@@ -133,6 +133,8 @@
+ #include "pairwise_aligners/Mutmer.h"
+ #include "feudal/BinaryStream.h"
+
++using std::make_pair;
++
+ const int Bits2 = 3, Bits3 = 7, Bits4 = 15, Bits10 = 1023, Bits12 = 4095,
+ Bits16 = 65535;
+
+--- vaal-46233/src/pairwise_aligners/MakeAlignsMethod.cc
++++ vaal-46233/src/pairwise_aligners/MakeAlignsMethod.cc
+@@ -19,6 +19,9 @@
+ #include "pairwise_aligners/AlignFromMutmers.h"
+ #include "pairwise_aligners/SmithWatBandedA.h"
+
++using std::map;
++using std::set;
++
+ // If there's a perfect match of length at least perf but we produced no proper
+ // alignment, use banded Smith-Waterman to create one.
+
+--- vaal-46233/src/pairwise_aligners/MatchList.cc
++++ vaal-46233/src/pairwise_aligners/MatchList.cc
+@@ -9,6 +9,8 @@
+
+ #include "pairwise_aligners/MatchList.h"
+
++using std::max;
++
+ bool MatchList::FindMatchInSorted( const int id1, const Match& newMatch ) const
+ {
+ const vec<Match>& sortedMatches = m_sortedMatches[id1];
+--- vaal-46233/src/pairwise_aligners/SuffixTree.h
++++ vaal-46233/src/pairwise_aligners/SuffixTree.h
+@@ -23,6 +23,8 @@
+ #include <list>
+ #include <string>
+
++using std::list;
++
+ /**
+ * Implementation of a suffix tree for basevectors.
+ * This is a data structure for exact (sub)string matching.
+--- vaal-46233/src/paths/AlignHyperKmerPath.cc
++++ vaal-46233/src/paths/AlignHyperKmerPath.cc
+@@ -23,6 +23,9 @@
+ #include "paths/KmerBaseBroker.h"
+ #include "paths/KmerPath.h"
+
++using std::ostringstream;
++using std::set;
++
+ // Function: AlignHyperKmerPath
+ //
+ // AlignHyperKmerPath takes a HyperKmerPath h, whose KmerPath edges are assumed
+--- vaal-46233/src/paths/AlignSeqsToHyper.cc
++++ vaal-46233/src/paths/AlignSeqsToHyper.cc
+@@ -26,6 +26,7 @@
+ #include "paths/ReadsToPathsCoreX.h"
+ #include "paths/SeqOnHyper.h"
+
++using std::multimap;
+
+ // Local class: simple_align
+ //
+--- vaal-46233/src/paths/HyperKmerPath.cc
++++ vaal-46233/src/paths/HyperKmerPath.cc
+@@ -19,6 +19,8 @@
+ #include "paths/HyperKmerPath.h"
+ #include "paths/KmerBaseBroker.h"
+
++using std::ostrstream;
++using std::ends;
+
+ void HyperKmerPath::ReduceLoops( )
+ { for ( int v = 0; v < N( ); v++ )
+--- vaal-46233/src/paths/KmerBaseBroker.h
++++ vaal-46233/src/paths/KmerBaseBroker.h
+@@ -20,6 +20,8 @@
+ #include <algorithm> // for set_union
+ #include <map>
+
++using std::map;
++
+ /**
+ Class: KmerBaseBrokerTemplate
+
+--- vaal-46233/src/paths/KmerPath.h
++++ vaal-46233/src/paths/KmerPath.h
+@@ -22,6 +22,8 @@
+ #include "HashSimple.h"
+ #include "graph/Digraph.h"
+
++using std::make_pair;
++
+ class KmerPathLoc; // forward declaration
+
+ /**
+--- vaal-46233/src/paths/KmerPathInterval.h
++++ vaal-46233/src/paths/KmerPathInterval.h
+@@ -8,6 +8,8 @@
+ #include "CommonSemanticTypes.h"
+ #include "feudal/BinaryStreamTraits.h"
+
++using std::max;
++
+ // Portability note: endianness
+ // The implementations here would need to be changed for big endian architectures.
+
+@@ -285,6 +287,12 @@
+ Models <tagged read path interval>.
+ */
+ // TODO: potentially dangerous truncation of index by PathId, ReadId
++template<class TAG>
++void Contains( const vec<TAG>& segs, kmer_id_t index, vec<longlong>& answer, bool append = false, int cap = -1 );
++
++template<class TAG>
++void Contains( const vec<TAG>& segs, KmerPathInterval rpi, vec<longlong>& answer, bool append = false, int cap = -1 );
++
+ class tagged_rpint {
+
+ public: /* PUBLIC METHODS */
+@@ -362,11 +370,11 @@
+
+ template<class TAG>
+ friend void Contains( const vec<TAG>& segs, kmer_id_t index,
+- vec<longlong>& answer, bool append = false, int cap = -1 );
++ vec<longlong>& answer, bool append, int cap );
+
+ template<class TAG>
+ friend void Contains( const vec<TAG>& segs, KmerPathInterval rpi,
+- vec<longlong>& answer, bool append = false, int cap = -1 );
++ vec<longlong>& answer, bool append, int cap );
+
+ template<class TAG>
+ friend longlong Instance( const vec<TAG>& segs, kmer_id_t k );
+@@ -489,11 +497,11 @@
+
+ template<class TAG>
+ friend void Contains( const vec<TAG>& segs, kmer_id_t index,
+- vec<longlong>& answer, bool append = false, int cap = -1 );
++ vec<longlong>& answer, bool append, int cap );
+
+ template<class TAG>
+ friend void Contains( const vec<TAG>& segs, KmerPathInterval rpi,
+- vec<longlong>& answer, bool append = false, int cap = -1 );
++ vec<longlong>& answer, bool append, int cap );
+
+ template<class TAG>
+ friend longlong Instance( const vec<TAG>& segs, kmer_id_t k );
+@@ -620,11 +628,11 @@
+
+ template<class TAG>
+ friend void Contains( const vec<TAG>& segs, kmer_id_t index,
+- vec<longlong>& answer, bool append = false, int cap = -1 );
++ vec<longlong>& answer, bool append, int cap );
+
+ template<class TAG>
+ friend void Contains( const vec<TAG>& segs, KmerPathInterval rpi,
+- vec<longlong>& answer, bool append = false, int cap = -1 );
++ vec<longlong>& answer, bool append, int cap );
+
+ template<class TAG>
+ friend kmer_id_t Instance( const vec<TAG>& segs, kmer_id_t k );
+--- vaal-46233/src/paths/ReadsToPathsCoreX.cc
++++ vaal-46233/src/paths/ReadsToPathsCoreX.cc
+@@ -20,6 +20,8 @@
+ #include "paths/MakeAlignsPathsParallelX.h"
+ #include "paths/ReadsToPathsCoreX.h"
+
++using std::map;
++
+ static inline
+ String Tag(String S = "RTPCX") { return Date() + " (" + S + "): "; }
+
+--- vaal-46233/src/paths/SuperBaseVector.h
++++ vaal-46233/src/paths/SuperBaseVector.h
+@@ -10,6 +10,8 @@
+ #include <numeric>
+ #include <functional>
+
++using std::mem_fun_ref;
++
+ /// A simple class which holds a series of basevectors with
+ /// (possibly negative) gaps between them. This is what a
+ /// KmerPath logically maps to in sequence space. The function
+--- vaal-46233/src/polymorphism/VAAL2.cc
++++ vaal-46233/src/polymorphism/VAAL2.cc
+@@ -42,7 +42,7 @@
+ #include "feudal/BinaryStream.h"
+ #include "feudal/VirtualMasterVec.h"
+
+-using namespace std;
++
+
+ // Trim reads so that they contain only kmers in the unipaths.
+
+--- vaal-46233/src/polymorphism/VAAL3.cc
++++ vaal-46233/src/polymorphism/VAAL3.cc
+@@ -29,6 +29,8 @@
+ #include "polymorphism/VAALTools.h"
+ #include "solexa/SolexaTools.h"
+
++using std::ostringstream;
++
+ int main( int argc, char *argv[] )
+ {
+ RunTime( );
+--- vaal-46233/src/PrintAlignment.h
++++ vaal-46233/src/PrintAlignment.h
+@@ -14,6 +14,8 @@
+ #include "CoreTools.h"
+ #include "Qualvector.h"
+
++using std::ostringstream;
++
+ void PrintBlanks( ostream& out, int n );
+
+ template<class BASEVEC>
+--- vaal-46233/src/Qualvector.cc
++++ vaal-46233/src/Qualvector.cc
+@@ -10,6 +10,8 @@
+ #include "FastIfstream.h"
+ #include "Qualvector.h"
+
++using std::istrstream;
++
+ /// \file
+ /// \ingroup grp_quals
+ /// \copydoc Qualvector.h
+--- vaal-46233/src/SeqInterval.cc
++++ vaal-46233/src/SeqInterval.cc
+@@ -9,6 +9,8 @@
+ #include "SeqInterval.h"
+ #include "Vec.h"
+
++using std::max;
++using std::min;
+
+ /*
+ * seq_interval
+--- vaal-46233/src/SeqInterval.h
++++ vaal-46233/src/SeqInterval.h
+@@ -14,7 +14,9 @@
+ #include <algorithm>
+ #include <iostream>
+
+-using namespace std;
++using std::binary_function;
++using std::ostream;
++using std::istream;
+
+ /*
+ * class seq_interval
+--- vaal-46233/src/Set.h
++++ vaal-46233/src/Set.h
+@@ -16,7 +16,7 @@
+ #include <set>
+ #include "CoreTools.h"
+
+-using namespace std;
++using std::set;
+
+ template<class T> bool Member( const set<T>& the_set, const T& value )
+ { return the_set.find(value) != the_set.end( ); } // Breaks cxx
+--- vaal-46233/src/ShortVector.h
++++ vaal-46233/src/ShortVector.h
+@@ -14,6 +14,8 @@
+ #include "system/Types.h"
+ #include "feudal/BinaryStream.h"
+
++using std::uninitialized_fill_n;
++
+ // ================================================================================
+ //
+ // A shortvector holds a list of up to 255 things of any type T.
+--- vaal-46233/src/solexa/FourBase2.h
++++ vaal-46233/src/solexa/FourBase2.h
+@@ -15,6 +15,10 @@
+ #include "feudal/MasterVec.h"
+ #include "feudal/SerfVec.h"
+
++using std::max_element;
++using std::min_element;
++using std::accumulate;
++
+ class four_base2 {
+
+ public:
+--- vaal-46233/src/solexa/FourBase.cc
++++ vaal-46233/src/solexa/FourBase.cc
+@@ -9,6 +9,9 @@
+
+ #include "solexa/FourBase.h"
+
++using std::string;
++using std::istringstream;
++
+ int four_base::Call( ) const
+ {
+ int result = 0;
+--- vaal-46233/src/solexa/FourBase.h
++++ vaal-46233/src/solexa/FourBase.h
+@@ -16,6 +16,8 @@
+ #include "feudal/MasterVec.h"
+ #include "feudal/SerfVec.h"
+
++using std::max;
++
+ /*
+ Class: four_base
+
+--- vaal-46233/src/solexa/SolexaMetrics.h
++++ vaal-46233/src/solexa/SolexaMetrics.h
+@@ -42,6 +42,8 @@
+ #include "CommonSemanticTypes.h"
+ #include <map>
+
++using std::map;
++
+ /// Definition of general macros.
+
+ class solexa_metric_db {
+--- vaal-46233/src/solexa/SolexaTools.cc
++++ vaal-46233/src/solexa/SolexaTools.cc
+@@ -20,6 +20,8 @@
+ #include "FastaFileset.h"
+ #include "util/BaitMap.h"
+
++using std::ostringstream;
++
+ void SolexaPredictorParameters::SetFromFile(const String & fname) {
+ Ifstream(is, fname);
+ String params = Slurp(is);
+--- vaal-46233/src/STLExtensions.h
++++ vaal-46233/src/STLExtensions.h
+@@ -9,7 +9,7 @@
+ #ifndef STLEXTENSIONS_H
+ #define STLEXTENSIONS_H
+
+-using namespace std;
++
+
+ #include <functional>
+ #include <vector>
+@@ -21,6 +21,13 @@
+ #include "feudal/BinaryStream.h"
+ #include "system/StaticAssert.h"
+
++using std::binary_function;
++using std::unary_function;
++using std::pair;
++using std::bitset;
++using std::vector;
++using std::ostream;
++
+ /// minimum<T> is a function object.
+ ///
+ /// If f is an object of class minimum<T> and x and y are objects of
+--- vaal-46233/src/system/ParsedArgs.cc
++++ vaal-46233/src/system/ParsedArgs.cc
+@@ -26,6 +26,9 @@
+ #include "system/HostName.h"
+ #include "system/UseGDB.h"
+
++using std::istrstream;
++using std::mem_fun_ref;
++
+ #ifndef FatalErr
+ #define FatalErr(message) { cout << message << endl << endl; exit(-1); }
+ #endif
+--- vaal-46233/src/system/ParsedArgs.h
++++ vaal-46233/src/system/ParsedArgs.h
+@@ -97,6 +97,8 @@
+ #include "TokenizeString.h"
+ #include "ParseSet.h"
+
++using std::stringstream;
++
+ class parsed_arg_help {
+
+ public:
+--- vaal-46233/src/system/ProcBuf.cc
++++ vaal-46233/src/system/ProcBuf.cc
+@@ -15,6 +15,8 @@
+ #include <sys/wait.h>
+ #include <unistd.h>
+
++using std::ios_base;
++
+ namespace
+ {
+ size_t const BUFFER_SIZE = 8192;
+--- vaal-46233/src/system/RunTime.cc
++++ vaal-46233/src/system/RunTime.cc
+@@ -41,6 +41,10 @@
+ #include <unwind.h>
+ #endif
+
++using std::strstream;
++using std::hex;
++using std::setw;
++
+ /// ===========================================================================
+ ///
+ /// ReturnAddress(i), where 0 <= i <= 100: get the return address. The
+--- vaal-46233/src/system/RunTime.h
++++ vaal-46233/src/system/RunTime.h
+@@ -14,6 +14,8 @@
+ #include "system/Exit.h"
+ #include "system/Types.h"
+
++using std::ostream;
++
+ typedef void ArachneSignalHandler(int, siginfo_t*, void*);
+
+ void arachne_signal_handler( int signal_number, siginfo_t* info, void* context,
+--- vaal-46233/src/system/System.cc
++++ vaal-46233/src/system/System.cc
+@@ -35,6 +35,11 @@
+
+ #include <dirent.h>
+
++using std::istringstream;
++using std::istream_iterator;
++using std::ostrstream;
++using std::ends;
++
+ int SystemInternal( String command, const char *shell )
+ {
+ flush(cout);
+--- vaal-46233/src/system/System.h
++++ vaal-46233/src/system/System.h
+@@ -21,6 +21,17 @@
+ #include "system/Exit.h"
+ #include "system/file/TempFile.h"
+
++using std::vector;
++using std::ostream;
++using std::ofstream;
++using std::cout;
++using std::flush;
++using std::endl;
++using std::istream;
++using std::ifstream;
++using std::ios;
++using std::setprecision;
++
+ #ifndef InputErr
+ #define InputErr(message) \
+ { cout << "\nFatal error at " << Date( ) << ": " << message << endl; \
+--- vaal-46233/src/system/TraceVal.h
++++ vaal-46233/src/system/TraceVal.h
+@@ -24,6 +24,9 @@
+ #include "system/Types.h"
+ #include "system/Assert.h"
+
++using std::cout;
++using std::endl;
++
+ // Macros: Tracing macros
+ // TRACEVAL_ON - undefine if you're not doing tracing
+ // TRACEVAL_STOP_TRACING_COPIES -- call before an operation that shuffles
+--- vaal-46233/src/system/Types.h
++++ vaal-46233/src/system/Types.h
+@@ -14,7 +14,7 @@
+ #include <cstdlib>
+ #include <netinet/in.h>
+
+-using namespace std;
++
+
+ // This assumes that all suns run Solaris...
+ #if __sun == 1
+--- vaal-46233/src/util/BaitMap.cc
++++ vaal-46233/src/util/BaitMap.cc
+@@ -236,7 +236,7 @@
+ bool BaitMap::write(String file_name)
+ {
+ std::ofstream out(file_name.c_str());
+- ForceAssert(out);
++ ForceAssert(static_cast<bool>(out));
+
+ for (unsigned int i = 0; i < this->size(); i++)
+ {
+@@ -250,7 +250,7 @@
+ }
+
+ out.close();
+- ForceAssert(out);
++ ForceAssert(static_cast<bool>(out));
+
+ return true;
+ }
+@@ -260,7 +260,7 @@
+ bool BaitMap::write_names(String file_name)
+ {
+ std::ofstream out(file_name.c_str());
+- ForceAssert(out);
++ ForceAssert(static_cast<bool>(out));
+
+ for (unsigned int i = 0; i < this->size(); i++)
+ {
+@@ -268,7 +268,7 @@
+ }
+
+ out.close();
+- ForceAssert(out);
++ ForceAssert(static_cast<bool>(out));
+
+ return true;
+ }
+--- vaal-46233/src/util/BaitMap.h
++++ vaal-46233/src/util/BaitMap.h
+@@ -20,6 +20,8 @@
+
+ #include <map>
+
++using std::map;
++
+ class BaitMap
+ {
+ public:
+--- vaal-46233/src/util/Qualb.cc
++++ vaal-46233/src/util/Qualb.cc
+@@ -10,6 +10,8 @@
+ #include "FastIfstream.h"
+ #include "Qualvector.h"
+
++using std::istrstream;
++
+ int main( int argc, char *argv[] )
+ {
+ RunTime( );
+--- vaal-46233/src/Vec.h
++++ vaal-46233/src/Vec.h
+@@ -48,6 +48,14 @@
+ #include "Compare.h"
+ #include "system/file/FileReader.h"
+
++using std::initializer_list;
++using std::numeric_limits;
++using std::ostream_iterator;
++using std::less;
++using std::equal_to;
++using std::setfill;
++using std::setw;
++
+ /////////////////////////////////////////////////////////////////////////////
+ //
+ // vec Class Declaration and Template Definitions
+--- vaal-46233/src/VecUtilities.h
++++ vaal-46233/src/VecUtilities.h
+@@ -37,6 +37,7 @@
+ #include "Vec.h"
+ #include <cstddef>
+
++using std::greater;
+
+ /////////////////////////////////////////////////////////////////////////////
+ //
diff --git a/sci-biology/vaal/vaal-46233-r1.ebuild b/sci-biology/vaal/vaal-46233-r1.ebuild
new file mode 100644
index 000000000000..20b3bf0de466
--- /dev/null
+++ b/sci-biology/vaal/vaal-46233-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit autotools
+
+DESCRIPTION="Algorithm for detecting SNPs, indels, and other polymorphisms"
+HOMEPAGE="http://www.broadinstitute.org/science/programs/genome-biology/crd/"
+SRC_URI="
+ ftp://ftp.broad.mit.edu/pub/crd/VAAL/latest_source_code/${P}.tar.gz
+ ftp://ftp.broad.mit.edu/pub/crd/VAAL/VAAL_manual.doc"
+
+LICENSE="Whitehead-MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="openmp"
+
+DEPEND=">=dev-libs/boost-1.41.0-r3"
+RDEPEND="${DEPEND}"
+
+DOCS=( "${DISTDIR}/VAAL_manual.doc" )
+PATCHES=( "${FILESDIR}/${P}_remove-namespace-std.patch" )
+
+src_prepare() {
+ sed \
+ -e '/COPYING/d' \
+ -i src/Makefile.am || die
+
+ sed \
+ -e 's:-ggdb::g' \
+ -e '/AC_OPENMP_CEHCK/d' \
+ -i configure.ac || die
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable openmp)
+}