Main Page | Modules | Class Hierarchy | Class List | Directories | File List | Class Members | Related Pages

xmog-config.h

00001 /*
00002  * Copyright 1999-2006 by Codemesh, Inc.  ALL RIGHTS RESERVED.
00003  */
00004 
00005 
00006 #ifndef XMOG_CONFIG_INC
00007 #define XMOG_CONFIG_INC
00008 
00009 
00010 #if defined(_AIX) || defined(__TOS_AIX__) || defined(__xlC__)
00011 #   define XMOG_AIX     1
00012 #   include "xmog-config-aix.h"
00013 #else // AIX
00014 #   define XMOG_AIX     0       
00015 #   endif // !AIX
00016 
00017 #if defined(hpux) || defined(__hpux) || defined(_HPUX_SOURCE)
00018 #   define XMOG_HPUX    1
00019 #   include "xmog-config-hpux.h"
00020 #else // HPUX
00021 #   define XMOG_HPUX    0       
00022 #   endif // !HPUX
00023 
00024 #if defined(__sgi) && defined(__mips)
00025 #   define XMOG_IRIX 1
00026 #   include "xmog-config-irix.h"
00027 #else // IRIX
00028 #   define XMOG_IRIX 0      
00029 #   endif // !IRIX
00030 
00031 #if defined(linux) || defined(__linux)
00032 #   define XMOG_LINUX 1
00033 #   include "xmog-config-linux.h"
00034 #else // LINUX
00035 #   define XMOG_LINUX 0     
00036 #   endif // !LINUX
00037 
00038 #if defined(__macos) || defined(DARWIN) || defined(__MACOSX__) || defined(__APPLE__)
00039 #   define XMOG_DARWIN 1
00040 #   include "xmog-config-darwin.h"
00041 #else // DARWIN
00042 #   define XMOG_DARWIN 0        
00043 #   endif // !DARWIN
00044 
00045 #if defined(sun) || defined(__sun__) || defined(__sun) || defined(__sunos) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
00046 #   define XMOG_SUNOS 1
00047 #   include "xmog-config-sunos.h"
00048 #else // SUNOS
00049 #   define XMOG_SUNOS 0     
00050 #   endif // !SUNOS
00051 
00052 #if defined(WIN32) || defined(WIN64) || defined(_WINDOWS) || defined(WINDOWS) || defined(_MSC_VER)
00053 #   define XMOG_WINDOWS 1
00054 #   include "xmog-config-windows.h"
00055 #else // WINDOWS
00056 #   define XMOG_WINDOWS 0
00057 #endif // !WINDOWS
00058 
00059 #if defined(__CYGWIN__)
00060 #   define XMOG_CYGWIN 1
00061 #   include "xmog-config-cygwin.h"
00062 #else // CYGWIN
00063 #   define XMOG_CYGWIN 0
00064 #endif // !CYGWIN
00065 
00066 #if defined(__MINGW32__)
00067 #   define XMOG_MINGW32 1
00068 #   include "xmog-config-mingw32.h"
00069 #else // MINGW32
00070 #   define XMOG_MINGW32 0
00071 #endif // !MINGW32
00072 
00073 // if we don't say that we want to use dummy JNI calls, we use real JNI
00074 #if !defined(XMOG_DUMMY_JNI)
00075 #   define XMOG_DUMMY_JNI 0
00076 #endif
00077 
00078 // if we don't say that we want to use external JNI definitions we don't
00079 #if !defined(XMOG_USE_EXTERNAL_JNI_DEFINITIONS)
00080 #   define XMOG_USE_EXTERNAL_JNI_DEFINITIONS 0
00081 #endif
00082 
00083 // if we don't say that we're not supporting JNI 1.1, we are supporting it
00084 #if !defined(XMOG_SUPPORTS_JNI_11)
00085 #   define XMOG_SUPPORTS_JNI_11 1
00086 #endif
00087 
00088 // if we don't say that we're building the runtime, we're not building the runtime
00089 #if !defined(XMOG_BUILD_XMOG)
00090 #   define XMOG_BUILD_XMOG 0
00091 #endif
00092 
00093 // if we don't say that we don't want legacy name support, we'll turn it on
00094 #if !defined(XMOG_PRE_3_0_SUPPORT)
00095 #   define XMOG_PRE_3_0_SUPPORT 1
00096 #endif
00097 
00098 // atomic pointer exchange class
00099 #define XMOG_JOBJECT_HOLDER     xmog_atomic_pointer
00100 #define XMOG_JOBJECT_VALUE(x)   (x.value())
00101 #define XMOG_JOBJECT_XCHG(x,y)  x = y
00102 
00103 // if we don't say that we're building a static library, we're not building a static library
00104 #if !defined(XMOG_BUILD_STATIC_LIBS)
00105 #   define XMOG_BUILD_STATIC_LIBS 0
00106 #endif
00107 
00108 // if we are building a static lib or if we're not building on Windows, we don't need to export anything
00109 // otherwise, we base our definition on what whether we're building
00110 // the runtime library or not
00111 #if (XMOG_BUILD_STATIC_LIBS!=0 || XMOG_WINDOWS!=1)
00112 #   if !defined(XMOG_DECLSPEC)
00113 #       define XMOG_DECLSPEC
00114 #   endif
00115 #elif !defined(XMOG_DECLSPEC)
00116 #   if (XMOG_BUILD_XMOG==1)
00117 #       define XMOG_DECLSPEC __declspec(dllexport)
00118 #   else
00119 #       define XMOG_DECLSPEC __declspec(dllimport)
00120 #   endif
00121 #endif
00122 
00123 //if we're not told not to load JVMs dynamically, we do it
00124 #if !defined(XMOG_DYNAMICALLY_LOADS_JVM)
00125 #   define XMOG_DYNAMICALLY_LOADS_JVM 1
00126 #endif
00127 
00128 //if we're not told not to publish the invocation interface, we do it
00129 //unless we're linked statically with a JVM (in that case we would clash
00130 //with the invocation interface entry points)
00131 #if !defined(XMOG_PUBLISHES_INVOCATION_INTERFACE)
00132 #   if (XMOG_DYNAMICALLY_LOADS_JVM==0)
00133 #       define XMOG_PUBLISHES_INVOCATION_INTERFACE 0
00134 #   else
00135 #       define XMOG_PUBLISHES_INVOCATION_INTERFACE 1
00136 #   endif
00137 #endif
00138 
00139 
00140 //if we're not told not to publish the remote implementations, we do it
00141 #if !defined(XMOG_IMPLEMENTS_REMOTE)
00142 #   define XMOG_IMPLEMENTS_REMOTE 1
00143 #endif
00144 
00145 #if (XMOG_IMPLEMENTS_REMOTE==1)
00146 
00147 #   if !defined(XMOG_IMPLEMENTS_REMOTE_CLIENT)
00148 #       define XMOG_IMPLEMENTS_REMOTE_CLIENT 1
00149 #   endif
00150 
00151 #   if !defined(XMOG_IMPLEMENTS_REMOTE_SERVER)
00152 #       define XMOG_IMPLEMENTS_REMOTE_SERVER 1
00153 #   endif
00154 
00155 #else
00156 
00157 #   define XMOG_IMPLEMENTS_REMOTE_CLIENT 0
00158 #   define XMOG_IMPLEMENTS_REMOTE_SERVER 0
00159 
00160 #endif
00161 
00162 #if (XMOG_IMPLEMENTS_REMOTE_CLIENT==1)
00163 
00164 #   if !defined(XMOG_IMPLEMENTS_REMOTE_IPV4_CLIENT)
00165 #       define XMOG_IMPLEMENTS_REMOTE_IPV4_CLIENT 1
00166 #   endif
00167 
00168 #   if !defined(XMOG_IMPLEMENTS_REMOTE_LSOCK_CLIENT)
00169 #       define XMOG_IMPLEMENTS_REMOTE_LSOCK_CLIENT 1
00170 #   endif
00171 
00172 #   if !defined(XMOG_IMPLEMENTS_REMOTE_SHMEM_CLIENT)
00173 #       define XMOG_IMPLEMENTS_REMOTE_SHMEM_CLIENT 1
00174 #   endif
00175 
00176 #   define XMOG_REMOTE_CLIENT_OPTIONS_INH   , public xmog_remote_client_options
00177 #   define XMOG_REMOTE_CLIENT_OPTIONS_IMPL1(x)  , xmog_remote_client_options( x )
00178 #   define XMOG_REMOTE_CLIENT_OPTIONS_IMPL2(x,y)    , xmog_remote_client_options( x, y )
00179 #   define XMOG_REMOTE_CLIENT_OPTIONS_IMPL3(x,y,z)  , xmog_remote_client_options( x, y, z )
00180 #   define XMOG_REMOTE_CLIENT_OPTIONS_IMPL4(x,y,z,u)    , xmog_remote_client_options( x, y, z, u )
00181 #   define XMOG_REMOTE_CLIENT_OPTIONS_IMPL5(x,y,z,u,v)  , xmog_remote_client_options( x, y, z, u, v )
00182 
00183 #else
00184 
00185 #   define XMOG_IMPLEMENTS_REMOTE_IPV4_CLIENT 0
00186 #   define XMOG_IMPLEMENTS_REMOTE_SHMEM_CLIENT 0
00187 #   define XMOG_IMPLEMENTS_REMOTE_LSOCK_CLIENT 0
00188 
00189 #   define XMOG_REMOTE_CLIENT_OPTIONS_INH
00190 #   define XMOG_REMOTE_CLIENT_OPTIONS_IMPL1
00191 #   define XMOG_REMOTE_CLIENT_OPTIONS_IMPL2
00192 #   define XMOG_REMOTE_CLIENT_OPTIONS_IMPL3
00193 #   define XMOG_REMOTE_CLIENT_OPTIONS_IMPL4
00194 #   define XMOG_REMOTE_CLIENT_OPTIONS_IMPL5
00195 
00196 #endif
00197 
00198 #if (XMOG_IMPLEMENTS_REMOTE_SERVER==1)
00199 
00200 #   if !defined(XMOG_IMPLEMENTS_REMOTE_IPV4_SERVER)
00201 #       define XMOG_IMPLEMENTS_REMOTE_IPV4_SERVER 1
00202 #   endif
00203 
00204 #   if !defined(XMOG_IMPLEMENTS_REMOTE_LSOCK_SERVER)
00205 #       define XMOG_IMPLEMENTS_REMOTE_LSOCK_SERVER 1
00206 #   endif
00207 
00208 #   if !defined(XMOG_IMPLEMENTS_REMOTE_SHMEM_SERVER)
00209 #       define XMOG_IMPLEMENTS_REMOTE_SHMEM_SERVER 1
00210 #   endif
00211 
00212 #   define XMOG_REMOTE_SERVER_OPTIONS_INH   , public xmog_remote_server_options
00213 #   define XMOG_REMOTE_SERVER_OPTIONS_IMPL1(x) , xmog_remote_server_options( x )
00214 #   define XMOG_REMOTE_SERVER_OPTIONS_IMPL2(x,y) , xmog_remote_server_options( x, y )
00215 #   define XMOG_REMOTE_SERVER_OPTIONS_IMPL3(x,y,z) , xmog_remote_server_options( x, y, z )
00216 #   define XMOG_REMOTE_SERVER_OPTIONS_IMPL4(x,y,z,u) , xmog_remote_server_options( x, y, z, u )
00217 #   define XMOG_REMOTE_SERVER_OPTIONS_IMPL5(x,y,z,u,v) , xmog_remote_server_options( x, y, z, u, v )
00218 
00219 #else
00220 
00221 #   define XMOG_IMPLEMENTS_REMOTE_IPV4_SERVER 0
00222 #   define XMOG_IMPLEMENTS_REMOTE_SHMEM_SERVER 0
00223 #   define XMOG_IMPLEMENTS_REMOTE_LSOCK_SERVER 0
00224 
00225 #   define XMOG_REMOTE_SERVER_OPTIONS_INH
00226 #   define XMOG_REMOTE_SERVER_OPTIONS_IMPL1(x) 
00227 #   define XMOG_REMOTE_SERVER_OPTIONS_IMPL2(x,y)
00228 #   define XMOG_REMOTE_SERVER_OPTIONS_IMPL3(x,y,z)
00229 #   define XMOG_REMOTE_SERVER_OPTIONS_IMPL4(x,y,z,u)
00230 #   define XMOG_REMOTE_SERVER_OPTIONS_IMPL5(x,y,z,u,v)
00231 
00232 #endif
00233 
00234 
00238 typedef XMOG_THREAD_FUNC_RETURN (*XMOG_THREAD_FUNC)(void *);
00239 
00240 
00241 #endif /* XMOG_CONFIG_INC */

Generated on Wed May 31 14:01:19 2006 for Shared Codemesh Runtime Library API Reference by  doxygen 1.4.1