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 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_platform.h

Go to the documentation of this file.
00001 /* 
00002  * File:        recls_platform.h
00003  *
00004  * Purpose:     Platform discrimination for the recls API.
00005  *
00006  * Created:     15th August 2003
00007  * Updated:     2nd November 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_PLATFORM
00059 #define RECLS_INCL_H_RECLS_PLATFORM
00060 
00061 /* File version */
00062 #ifndef RECLS_DOCUMENTATION_SKIP_SECTION
00063 # define RECLS_VER_H_RECLS_PLATFORM_MAJOR       1
00064 # define RECLS_VER_H_RECLS_PLATFORM_MINOR       2
00065 # define RECLS_VER_H_RECLS_PLATFORM_REVISION    2
00066 # define RECLS_VER_H_RECLS_PLATFORM_EDIT        10
00067 #endif /* !RECLS_DOCUMENTATION_SKIP_SECTION */
00068 
00071 /* 
00072  * Platform recognition
00073  *
00074  * Define the symbol RECLS_OVERRIDE_PLATFORM to provide your own platform
00075  * discrimination
00076  */
00077 
00078 #ifndef RECLS_OVERRIDE_PLATFORM
00079 # if defined(WIN32) || \
00080      defined(_WIN32)
00081 #  define RECLS_PLATFORM_IS_WIN32
00082 # elif defined(unix) || \
00083        defined(UNIX) || \
00084        defined(__unix) || \
00085        defined(__unix__) || \
00086        ( defined(__xlC__) && \
00087          defined(_POWER) && \
00088          defined(_AIX))
00089 #  define RECLS_PLATFORM_IS_UNIX
00090 # else
00091 #  error Platform not (yet) recognised
00092 # endif /* platform */
00093 #endif /* !RECLS_OVERRIDE_PLATFORM */
00094 
00095 /* 
00096  * Includes
00097  */
00098 
00099 #if defined(RECLS_PLATFORM_IS_WIN32)
00100 # include <windows.h>
00101 #elif defined(RECLS_PLATFORM_IS_UNIX)
00102 # include <unistd.h>
00103 #else
00104 # error Platform not (yet) recognised
00105 #endif /* platform */
00106 
00107 /* 
00108  * Namespace
00109  */
00110 
00111 #if !defined(RECLS_NO_NAMESPACE)
00112 namespace recls
00113 {
00114 #endif /* !RECLS_NO_NAMESPACE */
00115 
00116 /* 
00117  * Constants and definitions
00118  */
00119 
00122 #if defined(RECLS_PLATFORM_IS_WIN32)
00123 
00124 # define RECLS_PATH_MAX             (_MAX_PATH)
00125 
00126 #elif defined(RECLS_PLATFORM_IS_UNIX)
00127 
00128 # define RECLS_PATH_MAX             (PATH_MAX)
00129 
00130 #else
00131 
00132 # error Platform not (yet) recognised
00133 
00134 #endif /* platform */
00135 
00136 /* 
00137  * Namespace
00138  */
00139 
00140 #if !defined(RECLS_NO_NAMESPACE)
00141 } /* namespace recls */
00142 #endif /* !RECLS_NO_NAMESPACE */
00143 
00144 /* 
00145 
00146 #endif /* !RECLS_INCL_H_RECLS_PLATFORM */
00147 
00148 /* 

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