Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

snxConfig.h

Go to the documentation of this file.
00001 /****************** <SNX heading BEGIN do not edit this line> *****************
00002  *
00003  * sonix
00004  *
00005  * Original Authors:
00006  *   Kevin Meinert, Carolina Cruz-Neira
00007  *
00008  * -----------------------------------------------------------------
00009  * File:          $RCSfile: snxConfig.h,v $
00010  * Date modified: $Date: 2003/05/20 16:17:13 $
00011  * Version:       $Revision: 1.6 $
00012  * -----------------------------------------------------------------
00013  *
00014  ****************** <SNX 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 _SNX_CONFIG_H_
00043 #define _SNX_CONFIG_H_
00044 /* #pragma once */
00045 
00046 /*
00047  * ----------------------------------------------------------------------------
00048  * This file (snxConfig.h) includes header files common to most, if not
00049  * all, files in the sonix source tree.  It must be included at the top of
00050  * every .h and .cpp file before any other headers because it includes system
00051  * headers.
00052  * ----------------------------------------------------------------------------
00053  */
00054 
00055 /* This should always be included first. */
00056 #include <snx/snxDefines.h>
00057 
00058 /* Get rid of symbols added by Autoconf 2.5x. */
00059 /* XXX: There is probably a better way to do this... (-PH 5/20/2003) */
00060 #undef PACKAGE_BUGREPORT
00061 #undef PACKAGE_NAME
00062 #undef PACKAGE_STRING
00063 #undef PACKAGE_TARNAME
00064 #undef PACKAGE_VERSION
00065 
00066 #ifdef _DEBUG
00067 #   define SNX_DEBUG
00068 #else
00069 #   define SNX_OPT
00070 #endif
00071 
00072 #ifdef WIN32
00073 /* Exclude rarely-used stuff from Windows headers */
00074 #define WIN32_LEAN_AND_MEAN
00075 
00076 /* identifier truncated to 255 characters in the debug information */
00077 #pragma warning(disable:4786)
00078 
00079 #include <windows.h>
00080 
00081 #endif   /* WIN32 */
00082 
00083 /*
00084  * ----------------------------------------------------------------------------
00085  * DLL-related macros.  These are based on the macros used by NSPR.  Use
00086  * SNX_EXTERN for the prototype and SNX_IMPLEMENT for the
00087  * implementation.
00088  * ----------------------------------------------------------------------------
00089  */
00090 #ifdef WIN32
00091 
00092 #   if defined(__GNUC__)
00093 #       undef _declspec
00094 #       define _declspec(x) __declspec(x)
00095 #   endif
00096 
00097 #   define SNX_EXPORT(__type)      _declspec(dllexport) __type
00098 #   define SNX_EXPORT_CLASS        _declspec(dllexport)
00099 #   define SNX_EXPORT_DATA(__type) _declspec(dllexport) __type
00100 #   define SNX_IMPORT(__type)      _declspec(dllimport) __type
00101 #   define SNX_IMPORT_DATA(__type) _declspec(dllimport) __type
00102 #   define SNX_IMPORT_CLASS        _declspec(dllimport)
00103 
00104 #   define SNX_EXTERN(__type)         extern _declspec(dllexport) __type
00105 #   define SNX_IMPLEMENT(__type)      _declspec(dllexport) __type
00106 #   define SNX_EXTERN_DATA(__type)    extern _declspec(dllexport) __type
00107 #   define SNX_IMPLEMENT_DATA(__type) _declspec(dllexport) __type
00108 
00109 #   define SNX_CALLBACK
00110 #   define SNX_CALLBACK_DECL
00111 #   define SNX_STATIC_CALLBACK(__x) static __x
00112 
00113 #else   /* UNIX (where this stuff is simple!) */
00114 
00115 #   define SNX_EXPORT(__type)      __type
00116 #   define SNX_EXPORT_CLASS
00117 #   define SNX_EXPORT_DATA(__type) __type
00118 #   define SNX_IMPORT(__type)      __type
00119 #   define SNX_IMPORT_CLASS
00120 #   define SNX_IMPORT_DATA(__type) __type
00121 
00122 #   define SNX_EXTERN(__type)         extern __type
00123 #   define SNX_IMPLEMENT(__type)      __type
00124 #   define SNX_EXTERN_DATA(__type)    extern __type
00125 #   define SNX_IMPLEMENT_DATA(__type) __type
00126 
00127 #   define SNX_CALLBACK
00128 #   define SNX_CALLBACK_DECL
00129 #   define SNX_STATIC_CALLBACK(__x) static __x
00130 
00131 #endif   /* WIN32 */
00132 
00133 #ifdef _SNX_BUILD_
00134 #   define SNX_API(__type) SNX_EXPORT(__type)
00135 #   define SNX_CLASS_API   SNX_EXPORT_CLASS
00136 #   define SNX_DATA_API(__type)  SNX_EXPORT_DATA(__type)
00137 #else
00138 #   define SNX_API(__type) SNX_IMPORT(__type)
00139 #   define SNX_CLASS_API   SNX_IMPORT_CLASS
00140 #   define SNX_DATA_API(__type)  SNX_IMPORT_DATA(__type)
00141 #endif
00142 
00143 #endif   /* _SNX_CONFIG_H_ */

Generated on Sun May 2 14:39:26 2004 for Juggler Sonix by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002