C/C++ User's Journal Synesis Software STLSoft - ... Robust, Lightweight, Cross-platform, Template Software ... ATLSTL - where the Standard Template Library meets the Active Template Library COMSTL - where the Standard Template Library meets the Component Object Model InetSTL - where the Standard Template Library meets the Internet UNIXSTL - Template Software for the UNIX Operating System WinSTL - where the Standard Template Library meets the Win32 API

Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

/API/include/recls_compiler.h

Go to the documentation of this file.
00001 /* 
00002  * File:        recls_compiler.h
00003  *
00004  * Purpose:     Compiler discrimination for the recls API.
00005  *
00006  * Created:     15th August 2003
00007  * Updated:     8th June 2004
00008  *
00009  * License:     (Licensed under the Synesis Software Standard Source License)
00010  *
00011  *              Copyright (C) 2002-2004, Synesis Software Pty Ltd.
00012  *
00013  *              All rights reserved.
00014  *
00015  *              www:        http://www.synesis.com.au/software
00016  *                          http://www.recls.org/
00017  *
00018  *              email:      submissions@recls.org  for submissions
00019  *                          admin@recls.org        for other enquiries
00020  *
00021  *              Redistribution and use in source and binary forms, with or
00022  *              without modification, are permitted provided that the following
00023  *              conditions are met:
00024  *
00025  *              (i) Redistributions of source code must retain the above
00026  *              copyright notice and contact information, this list of
00027  *              conditions and the following disclaimer.
00028  *
00029  *              (ii) Any derived versions of this software (howsoever modified)
00030  *              remain the sole property of Synesis Software.
00031  *
00032  *              (iii) Any derived versions of this software (howsoever modified)
00033  *              remain subject to all these conditions.
00034  *
00035  *              (iv) Neither the name of Synesis Software nor the names of any
00036  *              subdivisions, employees or agents of Synesis Software, nor the
00037  *              names of any other contributors to this software may be used to
00038  *              endorse or promote products derived from this software without
00039  *              specific prior written permission.
00040  *
00041  *              This source code is provided by Synesis Software "as is" and any
00042  *              warranties, whether expressed or implied, including, but not
00043  *              limited to, the implied warranties of merchantability and
00044  *              fitness for a particular purpose are disclaimed. In no event
00045  *              shall the Synesis Software be liable for any direct, indirect,
00046  *              incidental, special, exemplary, or consequential damages
00047  *              (including, but not limited to, procurement of substitute goods
00048  *              or services; loss of use, data, or profits; or business
00049  *              interruption) however caused and on any theory of liability,
00050  *              whether in contract, strict liability, or tort (including
00051  *              negligence or otherwise) arising in any way out of the use of
00052  *              this software, even if advised of the possibility of such
00053  *              damage.
00054  *
00055  * 
00056 
00057 
00058 #ifndef RECLS_INCL_H_RECLS_COMPILER
00059 #define RECLS_INCL_H_RECLS_COMPILER
00060 
00061 /* File version */
00062 #ifndef RECLS_DOCUMENTATION_SKIP_SECTION
00063 # define RECLS_VER_H_RECLS_COMPILER_MAJOR       2
00064 # define RECLS_VER_H_RECLS_COMPILER_MINOR       2
00065 # define RECLS_VER_H_RECLS_COMPILER_REVISION    1
00066 # define RECLS_VER_H_RECLS_COMPILER_EDIT        10
00067 #endif /* !RECLS_DOCUMENTATION_SKIP_SECTION */
00068 
00071 /* 
00072  * Compiler detection
00073  */
00074 
00075 #if defined(__COMO__)
00076 # define RECLS_COMPILER_IS_COMO
00077 #elif defined(__BORLANDC__)
00078 # define RECLS_COMPILER_IS_BORLAND
00079 #elif defined(__DMC__)
00080 # define RECLS_COMPILER_IS_DMC
00081 #elif defined(__GNUC__)
00082 # define RECLS_COMPILER_IS_GCC
00083 #elif defined(__INTEL_COMPILER)
00084 # define RECLS_COMPILER_IS_INTEL
00085 #elif defined(__MWERKS__)
00086 # define RECLS_COMPILER_IS_MWERKS
00087 #elif defined(__VECTORC)
00088 # define RECLS_COMPILER_IS_VECTORC
00089 #elif defined(__WATCOMC__)
00090 # define RECLS_COMPILER_IS_WATCOM
00091 #elif defined(_MSC_VER)
00092 # define RECLS_COMPILER_IS_MSVC
00093 #else
00094 # error Compiler not recognised
00095 #endif /* compiler */
00096 
00097 /* 
00098  * Includes
00099  */
00100 
00101 #if defined(RECLS_COMPILER_IS_COMO)
00102 # include "recls_compiler_como.h"
00103 #elif defined(RECLS_COMPILER_IS_BORLAND)
00104 # include "recls_compiler_borland.h"
00105 #elif defined(RECLS_COMPILER_IS_DMC)
00106 # include "recls_compiler_dmc.h"
00107 #elif defined(RECLS_COMPILER_IS_GCC)
00108 # include "recls_compiler_gcc.h"
00109 #elif defined(RECLS_COMPILER_IS_INTEL)
00110 # include "recls_compiler_intel.h"
00111 #elif defined(RECLS_COMPILER_IS_MSVC)
00112 # include "recls_compiler_msvc.h"
00113 #elif defined(RECLS_COMPILER_IS_MWERKS)
00114 # include "recls_compiler_mwerks.h"
00115 #elif defined(RECLS_COMPILER_IS_VECTORC)
00116 # include "recls_compiler_vectorc.h"
00117 #elif defined(RECLS_COMPILER_IS_WATCOM)
00118 # include "recls_compiler_watcom.h"
00119 #else
00120 # error Compiler not recognised. recls recognises Borland, CodeWarrior, Digital Mars, GCC, Intel, Visual C++ and Watcom.
00121 #endif /* compiler */
00122 
00123 /* 
00124  * Calling convention
00125  */
00126 
00133 #define RECLS_CALLCONV_NULL
00134 #ifdef RECLS_DOCUMENTATION_SKIP_SECTION
00135 # define RECLS_CALLCONV_CDECL
00136 # define RECLS_CALLCONV_STDDECL
00137 # define RECLS_CALLCONV_FASTDECL
00138 # define RECLS_CALLCONV_DEFAULT
00139 #elif defined(RECLS_PLATFORM_IS_WIN32)
00140 # define RECLS_CALLCONV_CDECL               __cdecl
00141 # define RECLS_CALLCONV_STDDECL             __stdcall
00142 # define RECLS_CALLCONV_FASTDECL            __fastcall
00143 # define RECLS_CALLCONV_DEFAULT             __cdecl
00144 #elif defined(RECLS_PLATFORM_IS_WIN16)
00145 # define RECLS_CALLCONV_CDECL               _cdecl
00146 # define RECLS_CALLCONV_STDDECL             _pascal
00147 # define RECLS_CALLCONV_FASTDECL            _pascal
00148 # define RECLS_CALLCONV_DEFAULT             _cdecl
00149 #elif defined(RECLS_PLATFORM_IS_UNIX)
00150 # define RECLS_CALLCONV_CDECL
00151 # define RECLS_CALLCONV_STDDECL
00152 # define RECLS_CALLCONV_FASTDECL
00153 # define RECLS_CALLCONV_DEFAULT
00154 #else
00155 # error Platform not recognised
00156 #endif /* __SYNSOFT_VAL_OS_WIN16 */
00157 
00158 /* 
00159  * Namespace
00160  */
00161 
00162 #if !defined(RECLS_NO_NAMESPACE)
00163 namespace recls
00164 {
00165 #endif /* !RECLS_NO_NAMESPACE */
00166 
00167 /* 
00168  * Typedefs
00169  */
00170 
00172 typedef unsigned int        recls_bool_t;
00173 
00174 /* 
00175  * Namespace typedefs
00176  */
00177 
00178 #if !defined(RECLS_NO_NAMESPACE)
00179 typedef recls_sint8_t       sint8_t;
00180 typedef recls_uint8_t       uint8_t;
00181 
00182 typedef recls_sint16_t      sint16_t;
00183 typedef recls_uint16_t      uint16_t;
00184 
00185 typedef recls_sint32_t      sint32_t;
00186 typedef recls_uint32_t      uint32_t;
00187 
00188 typedef recls_sint64_t      sint64_t;
00189 typedef recls_uint64_t      uint64_t;
00190 
00191 typedef recls_bool_t        bool_t;
00192 #endif /* !RECLS_NO_NAMESPACE */
00193 
00194 /* 
00195  * Constants and definitions
00196  */
00197 
00198 /* 
00199  * Namespace
00200  */
00201 
00202 #if !defined(RECLS_NO_NAMESPACE)
00203 } /* namespace recls */
00204 #endif /* !RECLS_NO_NAMESPACE */
00205 
00206 /* 
00207 
00208 #endif /* !RECLS_INCL_H_RECLS_COMPILER */
00209 
00210 /* 

recls Library documentation © Synesis Software Pty Ltd, 2001-2004