Index: trunk/SophyaLib/TArray/spesqmtx.cc
===================================================================
--- trunk/SophyaLib/TArray/spesqmtx.cc	(revision 3824)
+++ trunk/SophyaLib/TArray/spesqmtx.cc	(revision 3831)
@@ -4,4 +4,5 @@
 //  (C) R. Ansari, C.Magneville    2009  
 
+#define SPESQMTX_CC_BFILE  // avoid extern template declarations 
 #include "spesqmtx.h"
 #include "pexceptions.h"
Index: trunk/SophyaLib/TArray/spesqmtx.h
===================================================================
--- trunk/SophyaLib/TArray/spesqmtx.h	(revision 3824)
+++ trunk/SophyaLib/TArray/spesqmtx.h	(revision 3831)
@@ -263,4 +263,24 @@
   { SpecialSquareMatrix<T> result; result.CloneOrShare(a); 
     result.SetTemp(true);  result.DivElt(b); return result; }
+
+//--------- extern template declarations (if needed) -----------
+#if defined ( NEED_EXT_DECL_TEMP ) && !defined( SPESQMTX_CC_BFILE )
+extern template class SpecialSquareMatrix<uint_1>;
+extern template class SpecialSquareMatrix<uint_2>;
+extern template class SpecialSquareMatrix<uint_4>;
+extern template class SpecialSquareMatrix<uint_8>;
+extern template class SpecialSquareMatrix<int_1>;
+extern template class SpecialSquareMatrix<int_2>;
+extern template class SpecialSquareMatrix<int_4>;
+extern template class SpecialSquareMatrix<int_8>;
+extern template class SpecialSquareMatrix<r_4>;
+extern template class SpecialSquareMatrix<r_8>;
+extern template class SpecialSquareMatrix< complex<r_4> >;
+extern template class SpecialSquareMatrix< complex<r_8> >;
+#ifdef SO_LDBLE128
+extern template class SpecialSquareMatrix<r_16>;
+extern template class SpecialSquareMatrix< complex<r_16> >;
+#endif
+#endif  // Fin de if defined ( NEED_EXT_DECL_TEMP )
   
 }   // namespace SOPHYA
Index: trunk/SophyaLib/TArray/tarray.cc
===================================================================
--- trunk/SophyaLib/TArray/tarray.cc	(revision 3824)
+++ trunk/SophyaLib/TArray/tarray.cc	(revision 3831)
@@ -10,4 +10,6 @@
 
 #include "pexceptions.h"
+
+#define TARRAY_CC_BFILE  // avoid extern template declarations 
 #include "tarray.h"
 
Index: trunk/SophyaLib/TArray/tarray.h
===================================================================
--- trunk/SophyaLib/TArray/tarray.h	(revision 3824)
+++ trunk/SophyaLib/TArray/tarray.h	(revision 3831)
@@ -481,4 +481,24 @@
 typedef TArray<r_8> Array;
 
+//--------- extern template declarations (if needed) -----------
+#if defined ( NEED_EXT_DECL_TEMP ) && !defined( TARRAY_CC_BFILE )
+extern template class TArray<uint_1>; 
+extern template class TArray<uint_2>;
+extern template class TArray<uint_4>;
+extern template class TArray<uint_8>;
+extern template class TArray<int_1>; 
+extern template class TArray<int_2>;  
+extern template class TArray<int_4>;
+extern template class TArray<int_8>;
+extern template class TArray<r_4>;
+extern template class TArray<r_8>;
+extern template class TArray< complex<r_4> >;
+extern template class TArray< complex<r_8> >;
+#ifdef SO_LDBLE128
+extern template class TArray<r_16>;
+extern template class TArray< complex<r_16> >;
+#endif
+#endif  // Fin de if defined ( NEED_EXT_DECL_TEMP )
+
 } // Fin du namespace
 
Index: trunk/SophyaLib/TArray/tmatrix.cc
===================================================================
--- trunk/SophyaLib/TArray/tmatrix.cc	(revision 3824)
+++ trunk/SophyaLib/TArray/tmatrix.cc	(revision 3831)
@@ -1,3 +1,3 @@
-// $Id: tmatrix.cc,v 1.39 2010-03-03 20:46:07 ansari Exp $
+// $Id: tmatrix.cc,v 1.40 2010-08-05 12:16:19 ansari Exp $
 //                         C.Magneville          04/99
 #include "sopnamsp.h"
@@ -8,4 +8,6 @@
 #include <stdlib.h>
 #include "pexceptions.h"
+
+#define TMATRIX_CC_BFILE  // avoid extern template declarations 
 #include "tmatrix.h"
 
Index: trunk/SophyaLib/TArray/tmatrix.h
===================================================================
--- trunk/SophyaLib/TArray/tmatrix.h	(revision 3824)
+++ trunk/SophyaLib/TArray/tmatrix.h	(revision 3831)
@@ -242,4 +242,25 @@
 typedef TMatrix<r_8> Matrix;
 
+//--------- extern template declarations (if needed) -----------
+#if defined ( NEED_EXT_DECL_TEMP ) && !defined( TMATRIX_CC_BFILE )
+extern template class TMatrix<uint_1>;
+extern template class TMatrix<uint_2>;
+extern template class TMatrix<uint_4>;
+extern template class TMatrix<uint_8>;
+extern template class TMatrix<int_1>;
+extern template class TMatrix<int_2>;
+extern template class TMatrix<int_4>;
+extern template class TMatrix<int_8>;
+extern template class TMatrix<r_4>;
+extern template class TMatrix<r_8>;
+extern template class TMatrix< complex<r_4> >;
+extern template class TMatrix< complex<r_8> >;
+#ifdef SO_LDBLE128
+extern template class TMatrix<r_16>;
+extern template class TMatrix< complex<r_16> >;
+#endif
+#endif  // Fin de if defined ( NEED_EXT_DECL_TEMP )
+
+
 } // Fin du namespace
 
Index: trunk/SophyaLib/TArray/tvector.cc
===================================================================
--- trunk/SophyaLib/TArray/tvector.cc	(revision 3824)
+++ trunk/SophyaLib/TArray/tvector.cc	(revision 3831)
@@ -1,3 +1,3 @@
-// $Id: tvector.cc,v 1.24 2010-03-03 20:46:07 ansari Exp $
+// $Id: tvector.cc,v 1.25 2010-08-05 12:16:20 ansari Exp $
 //                         C.Magneville          04/99
 #include "sopnamsp.h"
@@ -5,4 +5,6 @@
 #include <stdlib.h>
 #include "pexceptions.h"
+
+#define TVECTOR_CC_BFILE  // avoid extern template declarations 
 #include "tvector.h"
 
Index: trunk/SophyaLib/TArray/tvector.h
===================================================================
--- trunk/SophyaLib/TArray/tvector.h	(revision 3824)
+++ trunk/SophyaLib/TArray/tvector.h	(revision 3831)
@@ -123,4 +123,24 @@
 typedef TVector<r_8> Vector;
 
+//--------- extern template declarations (if needed) -----------
+#if defined ( NEED_EXT_DECL_TEMP ) && !defined( TVECTOR_CC_BFILE )
+extern template class TVector<uint_1>;
+extern template class TVector<uint_2>;
+extern template class TVector<uint_4>;
+extern template class TVector<uint_8>;
+extern template class TVector<int_1>;
+extern template class TVector<int_2>;
+extern template class TVector<int_4>;
+extern template class TVector<int_8>;
+extern template class TVector<r_4>;
+extern template class TVector<r_8>;
+extern template class TVector< complex<r_4> >;
+extern template class TVector< complex<r_8> >;
+#ifdef SO_LDBLE128
+extern template class TVector<r_16>;
+extern template class TVector< complex<r_16> >;
+#endif
+#endif  // Fin de if defined ( NEED_EXT_DECL_TEMP )
+
 } // Fin du namespace
 
