LTI-Lib latest version v1.9 - last update 10 Apr 2010

ltiMacroSymbols.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
00003  * Lehrstuhl fuer Technische Informatik, RWTH-Aachen, Germany
00004  *
00005  * This file is part of the LTI-Computer Vision Library (LTI-Lib)
00006  *
00007  * The LTI-Lib is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU Lesser General Public License (LGPL)
00009  * as published by the Free Software Foundation; either version 2.1 of
00010  * the License, or (at your option) any later version.
00011  *
00012  * The LTI-Lib is distributed in the hope that it will be
00013  * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
00014  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  * GNU Lesser General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Lesser General Public
00018  * License along with the LTI-Lib; see the file LICENSE.  If
00019  * not, write to the Free Software Foundation, Inc., 59 Temple Place -
00020  * Suite 330, Boston, MA 02111-1307, USA.
00021  */
00022 
00023 
00024 /*----------------------------------------------------------------
00025  * project ....: LTI Digital Image/Signal Processing Library
00026  * file .......: ltiMacroSymbols.h
00027  * authors ....: Pablo Alvarado
00028  * organization: LTI, RWTH Aachen
00029  * creation ...: 01.04.99
00030  * revisions ..: $Id: ltiMacroSymbols.h,v 1.10 2008/08/17 22:17:29 alvarado Exp $
00031  */
00032 
00033 #ifndef _LTI_MACRO_SYMBOLS_H_
00034 #define _LTI_MACRO_SYMBOLS_H_
00035 
00036 /**
00037  * \file ltiMacroSymbols.h contains several definitions of macros to
00038  *       determine which compiler is being used.  Since this file is
00039  *       included by ltiObject.h, their contents should be defined in every
00040  *       LTI-Lib file.
00041  */
00042 
00043 /**
00044  * Macro to recognize if the Windows 32-bit library is available
00045  */
00046 #if defined(_WIN32) 
00047 #define _LTI_WIN32 _WIN32
00048 #elif defined(WIN32) 
00049 #define _LTI_WIN32 WIN32
00050 #endif
00051 
00052 /**
00053  * Macro to recognize if the MS Visual C++ compiler 6.0 or higher
00054  * (including the .NET family) is being used.
00055  */
00056 #if defined(_MSC_VER) 
00057 #define _LTI_MSC_VER _MSC_VER
00058 #elif defined(MSC_VER)
00059 #define _LTI_MSC_VER MSC_VER
00060 #endif
00061 
00062 /**
00063  * Macro to recognize if a MS Visual C++ compiler from the .NET series
00064  * is being used.
00065  */
00066 #if defined(_LTI_MSC_VER) && (_LTI_MSC_VER >= 1310)
00067 #define _LTI_MSC_DOT_NET _LTI_MSC_VER
00068 #endif
00069 
00070 /**
00071  * Macro to recognize if a previous version of MS Visual C++ compiler
00072  * .NET 2003 is being used.
00073  */
00074 #if defined(_LTI_MSC_VER) && (_LTI_MSC_VER < 1310)
00075 #define _LTI_MSC_6 _LTI_MSC_VER
00076 #endif
00077 
00078 /**
00079  * Macro to recognize if the MS Visual C++ compiler .NET 2003 is being
00080  * used.
00081  */
00082 #if defined(_LTI_MSC_DOT_NET) && (_LTI_MSC_VER < 1400)
00083 #define _LTI_MSC_DOT_NET_2003 _LTI_MSC_VER
00084 #endif
00085 
00086 /**
00087  * Macro to recognize if the MS Visual C++ compiler .NET 2005 is being
00088  * used.
00089  */
00090 #if defined(_LTI_MSC_DOT_NET) && (_LTI_MSC_VER >= 1400)
00091 #define _LTI_MSC_DOT_NET_2005 _LTI_MSC_VER
00092 #endif
00093 
00094 /**
00095  * Macro to recognize if a GNU C++ compiler is being used
00096  */
00097 #if defined(__GNUC__) 
00098 #define _LTI_GNUC __GNUC__
00099 #endif
00100 
00101 /**
00102  * Macro to recognize if a GNU C++ compiler 2.95 is being used
00103  */
00104 #if defined(_LTI_GNUC) && (_LTI_GNUC <= 2)
00105 #define _LTI_GNUC_2 _LTI_GNUC
00106 #endif
00107 
00108 /**
00109  * Macro to recognize if a GNU C++ compiler 3.0 or greater is being used
00110  */
00111 #if defined(_LTI_GNUC) && (_LTI_GNUC >= 3)
00112 #define _LTI_GNUC_3 _LTI_GNUC
00113 #endif
00114 
00115 /**
00116  * Macro to recognize if a GNU C++ compiler 3.4.0 or greater is being used
00117  */
00118 #if defined(_LTI_GNUC) && (_LTI_GNUC >= 3) && (__GNUC_MINOR__ >= 4)
00119 #define _LTI_GNUC_3_4 _LTI_GNUC
00120 #endif
00121 
00122 /**
00123  * Macro to recognize if a GNU C++ compiler 4.0.0 or greater is being used
00124  */
00125 #if defined(_LTI_GNUC) && (_LTI_GNUC >= 4)
00126 #define _LTI_GNUC_4 _LTI_GNUC
00127 #endif
00128 
00129 #if defined(_LTI_GNUC) && (_LTI_GNUC >= 4) && (__GNUC_MINOR__ >= 3)
00130 /**
00131  * \def _LTI_GNUC_4_3
00132  * Macro to recognize if a GNU C++ compiler 4.3.x or greater is being used
00133  */
00134 #define _LTI_GNUC_4_3 _LTI_GNUC
00135 #endif
00136 
00137 
00138 #if defined(__INTEL_COMPILER)
00139 /**
00140  * \def _LTI_ICC 
00141  *
00142  * Macro to recognize if an Intel compiler is being used. Note that
00143  * _LTI_GNUC and some _LTI_GNUC_x are also defined in this case
00144  * (unless switched off manually). This is quite useful in most cases
00145  * since gcc and icc behave mostly equivalently.
00146  */
00147 #define _LTI_ICC __INTEL_COMPILER
00148 #endif
00149 
00150 /**
00151  * Macro to recognize if a Linux system is being used
00152  */ 
00153 #if defined(__linux__) 
00154 #define _LTI_LINUX
00155 #endif
00156 
00157 /**
00158  * Macro to recognize if a CygWin system is being used
00159  */
00160 #if defined(__CYGWIN__) || defined(__CYGWIN32) || defined(__MINGW32__)
00161 #define _LTI_CYGWIN
00162 #endif
00163 
00164 /**
00165  * Macro to recognize if an Apple system is used
00166  */
00167 #if defined(__APPLE__)
00168 #define _LTI_MACOSX
00169 #endif
00170 
00171 
00172 #endif

Generated on Sat Apr 10 15:25:48 2010 for LTI-Lib by Doxygen 1.6.1