latest version v1.9 - last update 10 Apr 2010 |
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