Helixis 1.0
Task Programming API
includes/hlx/compilers.h
Go to the documentation of this file.
00001 /*
00002 ** Copyright 2009-2011, helixis.org
00003 ** All rights reserved.
00004 **
00005 ** Redistribution and use in source and binary forms, with or without modification, are permitted provided
00006 ** that the following conditions are met:
00007 **
00008 ** Redistributions of source code must retain the above copyright notice, this list of conditions and the
00009 ** following disclaimer.
00010 **
00011 ** Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
00012 ** the following disclaimer in the documentation and/or other materials provided with the distribution.
00013 **
00014 ** Neither the name of the helixis.org nor the names of its contributors may be used to endorse or promote
00015 ** products derived from this software without specific prior written permission.
00016 **
00017 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
00018 ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
00019 ** PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
00020 ** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
00021 ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
00022 ** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00023 ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00024 ** POSSIBILITY OF SUCH DAMAGE.
00025 */
00026 
00027 #ifndef __HLX_COMPILERS_H__
00028 # define __HLX_COMPILERS_H__
00029 
00030 #ifdef __cplusplus
00031 extern "C"      {
00032 #endif
00033 
00034 /*
00035 ** MACROS
00036 */
00037 
00038 #if defined __COMO__
00039         #define COMPILER_COMO /*                                                Comeau C++ */
00040 #elif defined __DMC__
00041         #define COMPILER_DMC /*                                                 Digital Mars C++ */
00042 #elif defined(__INTEL_COMPILER) || defined(__ICL) || \
00043       defined(__ICC) || defined(__ECC)
00044         #define COMPILER_INTEL /*                                               Intel */
00045 #elif defined __GNUC__
00046         #define COMPILER_GNUC /*                                                GNU C/C++ */
00047 #elif defined __KCC
00048         #define COMPILER_KCC /*                                                 Kai C++ */
00049 #elif defined __sgi
00050         #define COMPILER_SGI /*                                                 SGI MIPSpro C++ */
00051 #elif defined __DECCXX
00052         #define COMPILER_COMPAQ /*                                              Compaq Tru64 Unix cxx */
00053 #elif defined(__ghs)
00054         #define COMPILER_GHS /*                                                 Greenhills C++ */
00055 #elif defined (__BCPLUSPLUS__) 
00056         #define COMPILER_BCPLUSPLUS /*                                  BC++ */
00057 #elif defined(__BORLANDC__)
00058         #define COMPILER_BORLAND /*                                             Borland */
00059 #elif defined(__MWERKS__)
00060         #define COMPILER_MWERKS /*                                              Metrowerks CodeWarrior */
00061 #elif defined(__SUNPRO_CC)
00062         #define COMPILER_SUNPRO /*                                              Sun Workshop Compiler C++ */
00063 #elif defined(__HP_aCC)
00064         #define COMPILER_HPACC /*                                               HP aCC */
00065 #elif defined(__MRC__) || defined(__SC__)
00066         #define COMPILER_MPW /*                                                 MPW MrCpp or SCpp */
00067 #elif defined(__IBMCPP__)
00068         #define COMPILER_IBMCPP /*                                              IBM Visual Age */
00069 #elif defined(_MSC_VER)
00070         #define COMPILER_MSC /*                                                 Microsoft Visual C++ */
00071         #if _MSC_VER < 1200
00072                 #define COMPILER_MSC_5_0
00073         #elif _MSC_VER < 1300
00074                 #define COMPILER_MSC_6_0
00075         #elif _MSC_VER == 1300
00076                 #define COMPILER_MSC_7_0
00077         #elif _MSC_VER == 1310
00078                 #define COMPILER_MSC_7_1
00079         #elif _MSC_VER == 1400
00080                 #define COMPILER_MSC_8_0
00081         #endif
00082 #else
00083         #warning "Unknown compiler. - please configure and report the results"
00084 #endif
00085 
00086 /* Ignore empty source files */
00087 #if defined(COMPILER_MSC)
00088 # pragma warning(disable: 4206)
00089 #endif
00090 
00091 /* INLINE */
00092 
00093 #if defined(COMPILER_MSC)
00094 # define INLINE                 extern __forceinline
00095 #else
00096 # define INLINE                 inline
00097 #endif
00098 
00099 /* ALIGN */
00100 
00101 #if defined(COMPILER_MSC)
00102 # define ALIGN(alignment)       __declspec( align(alignment) )
00103 #elif !defined(PLATFORM_NDS) /* Already defined in NDS */
00104 # define ALIGN(alignment)       __attribute__( (aligned(alignment)) )
00105 #endif
00106 
00107 #ifdef __cplusplus
00108 }
00109 #endif
00110 
00111 #endif /* !__HLX_COMPILERS_H__ */
00112 
00113 /*
00114 ** END OF FILE
00115 */
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines