C/C++ User's Journal Synesis Software STLSoft - ... Robust, Lightweight, Cross-platform, Template Software ... UNIXSTL - Template Software for the UNIX Operating System WinSTL - where the Standard Template Library meets the Win32 API

Main Page   Modules   Alphabetical List   Compound List   File List   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:     23rd September 2003
00008  *
00009  * License:     (Licensed under the Synesis Software Standard Source License)
00010  *
00011  *              Copyright (C) 2002-2003, 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       1
00064 # define RECLS_VER_H_RECLS_COMPILER_MINOR       0
00065 # define RECLS_VER_H_RECLS_COMPILER_REVISION    6
00066 # define RECLS_VER_H_RECLS_COMPILER_EDIT        6
00067 #endif /* !RECLS_DOCUMENTATION_SKIP_SECTION */
00068 
00071 /* 
00072  * Compiler detection
00073  */
00074 
00075 #if defined(__BORLANDC__)
00076 # define RECLS_COMPILER_IS_BORLAND
00077 #elif defined(__DMC__)
00078 # define RECLS_COMPILER_IS_DMC
00079 #elif defined(__GNUC__)
00080 # define RECLS_COMPILER_IS_GCC
00081 #elif defined(__INTEL_COMPILER)
00082 # define RECLS_COMPILER_IS_INTEL
00083 #elif defined(__MWERKS__)
00084 # define RECLS_COMPILER_IS_MWERKS
00085 #elif defined(__WATCOMC__)
00086 # define RECLS_COMPILER_IS_WATCOM
00087 #elif defined(_MSC_VER)
00088 # define RECLS_COMPILER_IS_MSVC
00089 #else
00090 # error Compiler not recognised
00091 #endif /* compiler */
00092 
00093 /* 
00094  * Includes
00095  */
00096 
00097 #if defined(RECLS_COMPILER_IS_BORLAND)
00098 # include "recls_compiler_borland.h"
00099 #elif defined(RECLS_COMPILER_IS_DMC)
00100 # include "recls_compiler_dmc.h"
00101 #elif defined(RECLS_COMPILER_IS_GCC)
00102 # include "recls_compiler_gcc.h"
00103 #elif defined(RECLS_COMPILER_IS_INTEL)
00104 # include "recls_compiler_intel.h"
00105 #elif defined(RECLS_COMPILER_IS_MWERKS)
00106 # include "recls_compiler_mwerks.h"
00107 #elif defined(RECLS_COMPILER_IS_WATCOM)
00108 # include "recls_compiler_watcom.h"
00109 #elif defined(RECLS_COMPILER_IS_MSVC)
00110 # include "recls_compiler_msvc.h"
00111 #else
00112 # error Compiler not recognised. recls recognises Borland, CodeWarrior, Digital Mars, GCC, Intel, Visual C++ and Watcom.
00113 #endif /* compiler */
00114 
00115 /* 
00116  * Calling convention
00117  */
00118 
00125 #define RECLS_CALLCONV_NULL
00126 #ifdef RECLS_DOCUMENTATION_SKIP_SECTION
00127 # define RECLS_CALLCONV_CDECL
00128 # define RECLS_CALLCONV_STDDECL
00129 # define RECLS_CALLCONV_FASTDECL
00130 # define RECLS_CALLCONV_DEFAULT
00131 #elif defined(RECLS_PLATFORM_IS_WIN32)
00132 # define RECLS_CALLCONV_CDECL               __cdecl
00133 # define RECLS_CALLCONV_STDDECL             __stdcall
00134 # define RECLS_CALLCONV_FASTDECL            __fastcall
00135 # define RECLS_CALLCONV_DEFAULT             __stdcall
00136 #elif defined(RECLS_PLATFORM_IS_WIN16)
00137 # define RECLS_CALLCONV_CDECL               _cdecl
00138 # define RECLS_CALLCONV_STDDECL             _pascal
00139 # define RECLS_CALLCONV_FASTDECL            _pascal
00140 # define RECLS_CALLCONV_DEFAULT             _pascal
00141 #elif defined(RECLS_PLATFORM_IS_UNIX)
00142 # define RECLS_CALLCONV_CDECL
00143 # define RECLS_CALLCONV_STDDECL
00144 # define RECLS_CALLCONV_FASTDECL
00145 # define RECLS_CALLCONV_DEFAULT
00146 #else
00147 # error Platform not recognised
00148 #endif /* __SYNSOFT_VAL_OS_WIN16 */
00149 
00150 /* 
00151  * Namespace
00152  */
00153 
00154 #if !defined(RECLS_NO_NAMESPACE)
00155 namespace recls
00156 {
00157 #endif /* !RECLS_NO_NAMESPACE */
00158 
00159 /* 
00160  * Typedefs
00161  */
00162 
00164 typedef unsigned int        recls_bool_t;
00165 
00166 /* 
00167  * Namespace typedefs
00168  */
00169 
00170 #if !defined(RECLS_NO_NAMESPACE)
00171 typedef recls_sint8_t       sint8_t;
00172 typedef recls_uint8_t       uint8_t;
00173 
00174 typedef recls_sint16_t      sint16_t;
00175 typedef recls_uint16_t      uint16_t;
00176 
00177 typedef recls_sint32_t      sint32_t;
00178 typedef recls_uint32_t      uint32_t;
00179 
00180 typedef recls_sint64_t      sint64_t;
00181 typedef recls_uint64_t      uint64_t;
00182 
00183 typedef recls_bool_t        bool_t;
00184 #endif /* !RECLS_NO_NAMESPACE */
00185 
00186 /* 
00187  * Constants and definitions
00188  */
00189 
00190 /* 
00191  * Namespace
00192  */
00193 
00194 #if !defined(RECLS_NO_NAMESPACE)
00195 } /* namespace recls */
00196 #endif /* !RECLS_NO_NAMESPACE */
00197 
00198 /* 
00199 
00200 #endif /* !RECLS_INCL_H_RECLS_COMPILER */
00201 
00202 /* 

recls Library documentation Synesis Software Pty Ltd, 2001-2003