diff armadillo-3.900.4/include/armadillo_bits/compiler_setup.hpp @ 49:1ec0e2823891

Switch to using subrepo copies of qm-dsp, nnls-chroma, vamp-plugin-sdk; update Armadillo version; assume build without external BLAS/LAPACK
author Chris Cannam
date Thu, 13 Jun 2013 10:25:24 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/armadillo-3.900.4/include/armadillo_bits/compiler_setup.hpp	Thu Jun 13 10:25:24 2013 +0100
@@ -0,0 +1,252 @@
+// Copyright (C) 2008-2013 NICTA (www.nicta.com.au)
+// Copyright (C) 2008-2013 Conrad Sanderson
+// 
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+
+#define arma_hot
+#define arma_cold
+#define arma_pure
+#define arma_const
+#define arma_aligned
+#define arma_align_mem
+#define arma_warn_unused
+#define arma_deprecated
+#define arma_malloc
+#define arma_inline            inline
+#define arma_noinline
+#define arma_ignore(variable)  ((void)(variable))
+
+
+#if defined(ARMA_BLAS_UNDERSCORE)
+  #define arma_fortran2_noprefix(function) function##_
+  #define arma_fortran2_prefix(function)   wrapper_##function##_
+#else
+  #define arma_fortran2_noprefix(function) function
+  #define arma_fortran2_prefix(function)   wrapper_##function
+#endif
+
+#if defined(ARMA_USE_WRAPPER)
+  #define arma_fortran(function) arma_fortran2_prefix(function)
+  #define arma_atlas(function)   wrapper_##function
+#else
+  #define arma_fortran(function) arma_fortran2_noprefix(function)
+  #define arma_atlas(function)   function
+#endif
+
+#define arma_fortran_prefix(function)   arma_fortran2_prefix(function)
+#define arma_fortran_noprefix(function) arma_fortran2_noprefix(function)
+
+
+#define ARMA_INCFILE_WRAP(x) <x>
+
+
+#if ( ((_POSIX_C_SOURCE >= 200112L) || (_XOPEN_SOURCE >= 600)) && !defined(__MINGW32__) && !defined(__APPLE__) )
+  #define ARMA_HAVE_POSIX_MEMALIGN
+#endif
+
+
+#if (__cplusplus >= 201103L)
+  #if !defined(ARMA_USE_CXX11)
+    #define ARMA_USE_CXX11
+  #endif
+#endif
+
+
+#if defined(ARMA_USE_CXX11)
+  #if !defined(ARMA_USE_U64S64)
+    #define ARMA_USE_U64S64
+  #endif
+#endif
+
+
+#if defined(ARMA_64BIT_WORD)
+  #if !defined(ARMA_USE_U64S64)
+    #define ARMA_USE_U64S64
+  #endif
+#endif
+
+
+#if defined(__INTEL_COMPILER)
+  
+  #if (__INTEL_COMPILER < 1000)
+    #error "*** Need a newer compiler ***"
+  #endif
+  
+  #define ARMA_GOOD_COMPILER
+  #undef  ARMA_HAVE_STD_TR1
+  
+  #if (__INTEL_COMPILER <= 1110)
+    #undef ARMA_HAVE_STD_ISFINITE
+  #endif
+  
+  // #undef  arma_aligned
+  // #define arma_aligned __attribute__((aligned(16)))
+  
+  #if defined(_MSC_VER)
+    #undef  arma_align_mem
+    #define arma_align_mem __declspec(align(16))
+  #else
+    #undef  arma_align_mem
+    #define arma_align_mem __attribute__((aligned(16)))
+  #endif
+  
+  #define ARMA_HAVE_ALIGNED_ATTRIBUTE
+  #define ARMA_HAVE_ICC_ASSUME_ALIGNED
+  
+#elif defined(__GNUG__)
+  
+  #if (__GNUC__ < 4)
+    #error "*** Need a newer compiler ***"
+  #endif
+  
+  #define ARMA_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
+  
+  #define ARMA_GOOD_COMPILER
+  #undef  ARMA_HAVE_STD_TR1
+  
+  #undef  arma_pure
+  #undef  arma_const
+  #undef  arma_aligned
+  #undef  arma_align_mem
+  #undef  arma_warn_unused
+  #undef  arma_deprecated
+  #undef  arma_malloc
+  #undef  arma_inline
+  #undef  arma_noinline
+  
+  #define arma_pure               __attribute__((__pure__))
+  #define arma_const              __attribute__((__const__))
+  #define arma_aligned            __attribute__((__aligned__))
+  #define arma_align_mem          __attribute__((__aligned__(16)))
+  #define arma_warn_unused        __attribute__((__warn_unused_result__))
+  #define arma_deprecated         __attribute__((__deprecated__))
+  #define arma_malloc             __attribute__((__malloc__))
+  #define arma_inline      inline __attribute__((__always_inline__))
+  #define arma_noinline           __attribute__((__noinline__))
+  
+  #define ARMA_HAVE_ALIGNED_ATTRIBUTE
+  
+  #if (ARMA_GCC_VERSION >= 40300)
+    #undef  arma_hot
+    #undef  arma_cold
+    
+    #define arma_hot  __attribute__((__hot__))
+    #define arma_cold __attribute__((__cold__))
+  #endif
+  
+  #if (ARMA_GCC_VERSION >= 40200)
+    #if defined(_GLIBCXX_USE_C99_MATH_TR1) && defined(_GLIBCXX_USE_C99_COMPLEX_TR1)
+      #define ARMA_HAVE_STD_TR1
+    #endif
+  #endif
+  
+  #if defined(__GXX_EXPERIMENTAL_CXX0X__)
+    #undef ARMA_HAVE_STD_TR1
+    
+    #if !defined(ARMA_USE_CXX11)
+      #define ARMA_USE_CXX11
+    #endif
+  #endif
+  
+  #if defined(__clang__)
+    #undef ARMA_HAVE_STD_TR1
+    //#undef ARMA_GOOD_COMPILER
+  #endif
+  
+  #if ( (ARMA_GCC_VERSION >= 40700) && (ARMA_GCC_VERSION <= 40701) )
+    #error "gcc versions 4.7.0 and 4.7.1 are unsupported; use 4.7.2 or later"
+    // due to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53549
+  #endif
+  
+  #if (ARMA_GCC_VERSION >= 40700)
+    #define ARMA_HAVE_GCC_ASSUME_ALIGNED
+    // TODO: future versions of clang may also have __builtin_assume_aligned
+  #endif
+  
+  #undef ARMA_GCC_VERSION
+  
+#endif
+
+
+#if defined(__APPLE__)
+  #define ARMA_BLAS_SDOT_BUG
+#endif
+
+
+#if defined(_MSC_VER)
+  
+  #if (_MSC_VER < 1500)
+    #error "*** Need a newer compiler ***"
+  #endif
+  
+  #undef ARMA_GOOD_COMPILER
+  #undef ARMA_HAVE_STD_ISFINITE
+  #undef ARMA_HAVE_STD_SNPRINTF
+  #undef ARMA_HAVE_LOG1P
+  #undef ARMA_HAVE_STD_ISINF
+  #undef ARMA_HAVE_STD_ISNAN
+  #undef ARMA_HAVE_STD_TR1
+  
+  // #undef  arma_inline
+  // #define arma_inline inline __forceinline
+  
+  #pragma warning(push)
+  
+  #pragma warning(disable: 4127)  // conditional expression is constant
+  #pragma warning(disable: 4510)  // default constructor could not be generated
+  #pragma warning(disable: 4511)  // copy constructor can't be generated
+  #pragma warning(disable: 4512)  // assignment operator can't be generated
+  #pragma warning(disable: 4513)  // destructor can't be generated
+  #pragma warning(disable: 4514)  // unreferenced inline function has been removed
+  #pragma warning(disable: 4522)  // multiple assignment operators specified
+  #pragma warning(disable: 4623)  // default constructor can't be generated
+  #pragma warning(disable: 4624)  // destructor can't be generated
+  #pragma warning(disable: 4625)  // copy constructor can't be generated
+  #pragma warning(disable: 4626)  // assignment operator can't be generated
+  #pragma warning(disable: 4710)  // function not inlined
+  #pragma warning(disable: 4711)  // call was inlined
+  #pragma warning(disable: 4714)  // __forceinline can't be inlined
+  
+  #if (_MANAGED == 1) || (_M_CEE == 1)
+    
+    // don't do any alignment when compiling in "managed code" mode 
+    
+  #else
+    // #undef  arma_aligned
+    // #define arma_aligned __declspec(align(16))
+    
+    #undef  arma_align_mem
+    #define arma_align_mem __declspec(align(16))
+    
+    #define ARMA_HAVE_ALIGNED_ATTRIBUTE
+    
+    // disable warnings: "structure was padded due to __declspec(align(16))"
+    #pragma warning(disable: 4324)
+    
+  #endif
+  
+#endif
+
+
+#if defined(__CUDACC__)
+  #undef ARMA_HAVE_STD_ISFINITE
+  #undef ARMA_HAVE_STD_SNPRINTF
+  #undef ARMA_HAVE_LOG1P
+  #undef ARMA_HAVE_STD_ISINF
+  #undef ARMA_HAVE_STD_ISNAN
+  #undef ARMA_HAVE_STD_TR1
+#endif
+
+
+#if defined(__SUNPRO_CC)
+  #undef ARMA_HAVE_STD_ISFINITE
+  #undef ARMA_HAVE_STD_SNPRINTF
+  #undef ARMA_HAVE_LOG1P
+  #undef ARMA_HAVE_STD_ISINF
+  #undef ARMA_HAVE_STD_ISNAN
+  #undef ARMA_HAVE_STD_TR1
+#endif