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

vprConfig.h

Go to the documentation of this file.
00001 /****************** <VPR heading BEGIN do not edit this line> *****************
00002  *
00003  * VR Juggler Portable Runtime
00004  *
00005  * Original Authors:
00006  *   Allen Bierbaum, Patrick Hartling, Kevin Meinert, Carolina Cruz-Neira
00007  *
00008  * -----------------------------------------------------------------
00009  * File:          $RCSfile: vprConfig.h,v $
00010  * Date modified: $Date: 2004/04/04 17:27:56 $
00011  * Version:       $Revision: 1.29 $
00012  * -----------------------------------------------------------------
00013  *
00014  ****************** <VPR heading END do not edit this line> ******************/
00015 
00016 /*************** <auto-copyright.pl BEGIN do not edit this line> **************
00017  *
00018  * VR Juggler is (C) Copyright 1998-2003 by Iowa State University
00019  *
00020  * Original Authors:
00021  *   Allen Bierbaum, Christopher Just,
00022  *   Patrick Hartling, Kevin Meinert,
00023  *   Carolina Cruz-Neira, Albert Baker
00024  *
00025  * This library is free software; you can redistribute it and/or
00026  * modify it under the terms of the GNU Library General Public
00027  * License as published by the Free Software Foundation; either
00028  * version 2 of the License, or (at your option) any later version.
00029  *
00030  * This library is distributed in the hope that it will be useful,
00031  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00032  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00033  * Library General Public License for more details.
00034  *
00035  * You should have received a copy of the GNU Library General Public
00036  * License along with this library; if not, write to the
00037  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00038  * Boston, MA 02111-1307, USA.
00039  *
00040  *************** <auto-copyright.pl END do not edit this line> ***************/
00041 
00042 #ifndef _VPR_CONFIG_H_
00043 #define _VPR_CONFIG_H_
00044 /* #pragma once */
00045 
00046 /*
00047  * ----------------------------------------------------------------------------
00048  * This file (vprConfig.h) includes header files common to most, if not all,
00049  * files in the VPR source tree.  It must be included at the top of every .h
00050  * and .cpp file before any other headers because it includes system headers.
00051  * ----------------------------------------------------------------------------
00052  */
00053 
00054 /*
00055  * Protect against redefinition of symbols added by Autoconf 2.5x in
00056  * vprDefines.h.
00057  */
00058 #undef PACKAGE_BUGREPORT
00059 #undef PACKAGE_NAME
00060 #undef PACKAGE_STRING
00061 #undef PACKAGE_TARNAME
00062 #undef PACKAGE_VERSION
00063 
00064 /* This should always be included first. */
00065 #include <vpr/vprDefines.h>
00066 
00067 /* Get rid of symbols added by Autoconf 2.5x in vprDefines.h. */
00068 #undef PACKAGE_BUGREPORT
00069 #undef PACKAGE_NAME
00070 #undef PACKAGE_STRING
00071 #undef PACKAGE_TARNAME
00072 #undef PACKAGE_VERSION
00073 
00074 #ifdef _DEBUG
00075 #   define VPR_DEBUG
00076 #else
00077 #   define VPR_OPT
00078 #endif
00079 
00080 #ifdef WIN32
00081 /* Exclude rarely-used stuff from Windows headers */
00082 #define WIN32_LEAN_AND_MEAN
00083 
00084 /* identifier truncated to 255 characters in the debug information */
00085 #pragma warning(disable:4786)
00086 
00087 #include <windows.h>
00088 
00089 /* extern HINSTANCE g_hInst = NULL; */
00090 #endif   /* WIN32 */
00091 
00092 
00093 /* Common C++ includes. */
00094 /* Put here for pre-compiled headers. */
00095 #ifdef __cplusplus
00096 #include <iostream>
00097 
00098 /*
00099  * GCC 3.1 and beyond have non-standard STL stuff in the __gnu_cxx namespace.
00100  * The code below works around that behavior by bringing the __gnu_cxx
00101  * namespace into the std namespace.
00102  *
00103  * NOTE: The Intel C++ compiler masquerades as GCC by defining __GNUC__.  It
00104  * does not, however, do the __gnu_cxx namespace stuff, so we have to make
00105  * sure we are not using the Intel compiler when performing this operation.
00106  */
00107 #if ! defined(__INTEL_COMPILER) && defined(__GNUC__) && \
00108     ((__GNUC__ == 3 && __GNUC_MINOR__ >= 1) || __GNUC__ > 3)
00109 namespace std
00110 {
00111    using namespace __gnu_cxx;
00112 }
00113 #endif
00114 
00115 #endif   /* __cplusplus */
00116 
00117 /*
00118  * This is used to deal with various locations for the header that defines
00119  * std::hash_map and std::hash_set.  Files that need the header can test 
00120  * for the definition of VPR_HASH_MAP_INCLUDE to determine if any std::hash_map 
00121  * is available.
00122  */
00123 #if defined(HAVE_HASH_MAP)
00124 #  define VPR_HASH_MAP_INCLUDE <hash_map>
00125 #elif defined(HAVE_EXT_HASH_MAP)
00126 #  define VPR_HASH_MAP_INCLUDE <ext/hash_map>
00127 #elif defined(HAVE_HASH_MAP_H)
00128 #  define VPR_HASH_MAP_INCLUDE <hash_map.h>
00129 #endif
00130 
00131 #if defined(HAVE_HASH_MAP) || defined(HAVE_EXT_HASH_MAP) || defined(HAVE_HASH_MAP_H)
00132 #   define VPR_HAVE_HASH_MAP 1
00133 #endif
00134 
00135 #if defined(HAVE_HASH_SET)
00136 #  define VPR_HASH_SET_INCLUDE <hash_set>
00137 #elif defined(HAVE_EXT_HASH_SET)
00138 #  define VPR_HASH_SET_INCLUDE <ext/hash_set>
00139 #elif defined(HAVE_HASH_SET_H)
00140 #  define VPR_HASH_SET_INCLUDE <hash_set.h>
00141 #endif
00142 
00143 #if defined(HAVE_HASH_SET) || defined(HAVE_EXT_HASH_SET) || defined(HAVE_HASH_SET_H)
00144 #   define VPR_HAVE_HASH_SET  1
00145 #endif
00146 
00147 
00148 /*
00149  * ----------------------------------------------------------------------------
00150  * DLL-related macros.  These are based on the macros used by NSPR.  Use
00151  * VPR_EXTERN for the prototype and VPR_IMPLEMENT for the implementation.
00152  * ----------------------------------------------------------------------------
00153  */
00154 #ifdef VPR_OS_Win32
00155 
00156 #   if defined(__GNUC__)
00157 #       undef _declspec
00158 #       define _declspec(x) __declspec(x)
00159 #   endif
00160 
00161 #   define VPR_EXPORT(__type)      _declspec(dllexport) __type
00162 #   define VPR_EXPORT_CLASS        _declspec(dllexport)
00163 #   define VPR_EXPORT_DATA(__type) _declspec(dllexport) __type
00164 #   define VPR_IMPORT(__type)      _declspec(dllimport) __type
00165 #   define VPR_IMPORT_DATA(__type) _declspec(dllimport) __type
00166 #   define VPR_IMPORT_CLASS        _declspec(dllimport)
00167 
00168 #   define VPR_EXTERN(__type)         extern _declspec(dllexport) __type
00169 #   define VPR_IMPLEMENT(__type)      _declspec(dllexport) __type
00170 #   define VPR_EXTERN_DATA(__type)    extern _declspec(dllexport) __type
00171 #   define VPR_IMPLEMENT_DATA(__type) _declspec(dllexport) __type
00172 
00173 #   define VPR_CALLBACK
00174 #   define VPR_CALLBACK_DECL
00175 #   define VPR_STATIC_CALLBACK(__x) static __x
00176 
00177 #elif defined(VPR_OS_Mac)
00178 
00179 #   define VPR_EXPORT(__type)       __declspec(export) __type
00180 #   define VPR_EXPORT_CLASS         __declspec(export)
00181 #   define VPR_EXPORT_DATA(__type)  __declspec(export) __type
00182 #   define VPR_IMPORT(__type)       __declspec(export) __type
00183 #   define VPR_IMPORT_CLASS         __declspec(export)
00184 #   define VPR_IMPORT_DATA(__type)  __declspec(export) __type
00185 
00186 #   define VPR_EXTERN(__type)           extern __declspec(export) __type
00187 #   define VPR_IMPLEMENT(__type)        __declspec(export) __type
00188 #   define VPR_EXTERN_DATA(__type)      extern __declspec(export) __type
00189 #   define VPR_IMPLEMENT_DATA(__type)   __declspec(export) __type
00190 
00191 #   define VPR_CALLBACK
00192 #   define VPR_CALLBACK_DECL
00193 #   define VPR_STATIC_CALLBACK(__x) static __x
00194 
00195 #else   /* UNIX (where this stuff is simple!) */
00196 
00197 #   define VPR_EXPORT(__type)      __type
00198 #   define VPR_EXPORT_CLASS
00199 #   define VPR_EXPORT_DATA(__type) __type
00200 #   define VPR_IMPORT(__type)      __type
00201 #   define VPR_IMPORT_DATA(__type) __type
00202 #   define VPR_IMPORT_CLASS
00203 
00204 #   define VPR_EXTERN(__type)         extern __type
00205 #   define VPR_IMPLEMENT(__type)      __type
00206 #   define VPR_EXTERN_DATA(__type)    extern __type
00207 #   define VPR_IMPLEMENT_DATA(__type) __type
00208 
00209 #   define VPR_CALLBACK
00210 #   define VPR_CALLBACK_DECL
00211 #   define VPR_STATIC_CALLBACK(__x) static __x
00212 
00213 #endif  /* VPR_OS_Win32 */
00214 
00215 #ifdef _VPR_BUILD_
00216 #   define VPR_API(__type)      VPR_EXPORT(__type)
00217 #   define VPR_CLASS_API        VPR_EXPORT_CLASS
00218 #   define VPR_DATA_API(__type) VPR_EXPORT_DATA(__type)
00219 #else
00220 #   define VPR_API(__type)      VPR_IMPORT(__type)
00221 #   define VPR_CLASS_API        VPR_IMPORT_CLASS
00222 #   define VPR_DATA_API(__type) VPR_IMPORT_DATA(__type)
00223 #endif
00224 
00225 #include <vpr/vprDomain.h>
00226 
00227 #endif   /* _VPR_CONFIG_H_ */

Generated on Sun May 2 14:43:03 2004 for VR Juggler Portable Runtime by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002