00001 /* 00002 * Copyright (c) 2005 Palmsource, Inc. 00003 * 00004 * This software is licensed as described in the file LICENSE, which 00005 * you should have received as part of this distribution. The terms 00006 * are also available at http://www.openbinder.org/license.html. 00007 * 00008 * This software consists of voluntary contributions made by many 00009 * individuals. For the exact contribution history, see the revision 00010 * history and logs, available at http://www.openbinder.org 00011 */ 00012 00013 #ifndef _SUPPORT_BUILD_H 00014 #define _SUPPORT_BUILD_H 00015 00021 #if (defined(__CC_ARM) || defined(_MSC_VER)) 00022 #define _SUPPORTS_WARNING 0 00023 #define _SUPPORTS_FEATURE_SHORT_PATH_MAX 0 00024 #endif 00025 00026 #include <BuildDefaults.h> 00027 00028 #if TARGET_HOST == TARGET_HOST_WIN32 00029 # define _SUPPORTS_WINDOWS_FILE_PATH 1 00030 #else 00031 # define _SUPPORTS_UNIX_FILE_PATH 1 00032 #endif 00033 00034 #ifndef LIBBE_BOOTSTRAP 00035 #define LIBBE_BOOTSTRAP 0 00036 #endif 00037 00038 #ifndef _SUPPORTS_FEATURE_SHORT_PATH_MAX 00039 #define _SUPPORTS_FEATURE_SHORT_PATH_MAX 0 00040 #endif 00041 00042 #ifndef _NO_INLINE_ASM 00043 #define _NO_INLINE_ASM 0 00044 #endif 00045 00046 #if defined(NO_RUNTIME_SHARED_LIBRARIES) && defined(__arm) 00047 // prevent r9 (sb) from being used in PalmOS so that changes 00048 // we make to it are maintained for applications 00049 __global_reg(6) unsigned long sb; 00050 #endif 00051 00052 #if defined(__GNUC__) 00053 #define _UNUSED(x) x 00054 #define _PACKED __attribute__((packed)) 00055 #endif 00056 00057 #ifdef _MSC_VER 00058 // This is warning is not particularly useful, and causes lots of spewage when 00059 // the StaticValue.h macros are used. 00060 #pragma warning (disable:4003) 00061 // The following warning actually -is- useful, but in many places we do things 00062 // that instigate it where there isn't really a problem. 00063 #pragma warning (disable:4355) 00064 // disable warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning) 00065 #if _MSC_VER <= 1300 00066 #pragma warning (disable:4800) 00067 #endif 00068 #endif 00069 00070 #ifndef _BUILDING_SUPPORT 00071 #define _BUILDING_SUPPORT 0 00072 #endif 00073 00074 #if LIBBE_BOOTSTRAP 00075 #undef _EXPORT 00076 #undef _IMPORT 00077 #define _EXPORT 00078 #define _IMPORT 00079 #endif 00080 00081 #if _BUILDING_SUPPORT 00082 #define _IMPEXP_SUPPORT _EXPORT 00083 #else 00084 #define _IMPEXP_SUPPORT _IMPORT 00085 #endif 00086 00087 #ifdef __cplusplus 00088 extern "C++" { // the BeOS standard C++ library is indirectly including this file inside an extern "C" 00089 00090 #if _SUPPORTS_NAMESPACE 00091 namespace palmos { 00092 #endif 00093 00094 #if _SUPPORTS_NAMESPACE 00095 namespace package { 00096 #endif 00097 00098 #if TARGET_HOST == TARGET_HOST_WIN32 00099 class _IMPEXP_SUPPORT BPackageManager; 00100 #endif 00101 00102 #if _SUPPORTS_NAMESPACE 00103 } // package 00104 #endif 00105 00106 00107 #if _SUPPORTS_NAMESPACE 00108 namespace storage { 00109 #endif 00110 00111 class _IMPEXP_SUPPORT BFile; 00112 00113 #if _SUPPORTS_NAMESPACE 00114 } // storage 00115 #endif 00116 00117 00118 00119 #if _SUPPORTS_NAMESPACE 00120 namespace support { 00121 #endif 00122 00123 /* These are always exported because they are really just collections of 00124 inline functions. If we don't export them, we get warnings from any 00125 "real" classes using them, which themselves are being exported 00126 */ 00127 template<class TYPE> class _EXPORT atom_ptr; 00128 template<class TYPE> class _EXPORT atom_ref; 00129 template<class TYPE> class _EXPORT SVector; 00130 template<class TYPE> class _EXPORT SSortedVector; 00131 template<class KEY, class VALUE> class _EXPORT SKeyedVector; 00132 template<class INTERFACE> class _EXPORT BnInterface; 00133 00134 /* support kit */ 00135 #if TARGET_HOST == TARGET_HOST_WIN32 00136 class _IMPEXP_SUPPORT SAbstractList; 00137 class _IMPEXP_SUPPORT SAbstractSortedVector; 00138 class _IMPEXP_SUPPORT SAbstractVector; 00139 class _IMPEXP_SUPPORT BArmInputStream; 00140 class _IMPEXP_SUPPORT BArmOutputStream; 00141 class _IMPEXP_SUPPORT SAtom; 00142 class _IMPEXP_SUPPORT BBinder; 00143 class _IMPEXP_SUPPORT SBitfield; 00144 class _IMPEXP_SUPPORT BByteStream; 00145 class _IMPEXP_SUPPORT BBufferedPipe; 00146 class _IMPEXP_SUPPORT SCallStack; 00147 class _IMPEXP_SUPPORT BContainer; 00148 class _IMPEXP_SUPPORT BContext; 00149 class _IMPEXP_SUPPORT BController; 00150 class _IMPEXP_SUPPORT BDictionary; 00151 class _IMPEXP_SUPPORT BFlattenable; 00152 class _IMPEXP_SUPPORT SFloatDump; 00153 // class _IMPEXP_SUPPORT BHandler; 00154 class _IMPEXP_SUPPORT SHasher; 00155 class _IMPEXP_SUPPORT SHexDump; 00156 class _IMPEXP_SUPPORT BSharedObject; 00157 class _IMPEXP_SUPPORT BKernelIStr; 00158 class _IMPEXP_SUPPORT BKernelOStr; 00159 class _IMPEXP_SUPPORT SLocker; 00160 class _IMPEXP_SUPPORT SLooper; 00161 class _IMPEXP_SUPPORT BMallocStore; 00162 class _IMPEXP_SUPPORT BMemoryStore; 00163 class _IMPEXP_SUPPORT BMemory; 00164 class _IMPEXP_SUPPORT BLocalMemory; 00165 class _IMPEXP_SUPPORT BMemoryHeap; 00166 class _IMPEXP_SUPPORT SMessage; 00167 class _IMPEXP_SUPPORT SMessageList; 00168 class _IMPEXP_SUPPORT SNestedLocker; 00169 class _IMPEXP_SUPPORT SParcel; 00170 class _IMPEXP_SUPPORT BPipe; 00171 class _IMPEXP_SUPPORT SPrintf; 00172 class _IMPEXP_SUPPORT SReadWriteLocker; 00173 class _IMPEXP_SUPPORT BRoot; 00174 class _IMPEXP_SUPPORT SSharedBuffer; 00175 class _IMPEXP_SUPPORT BStreamInputPipe; 00176 class _IMPEXP_SUPPORT BStreamOutputPipe; 00177 class _IMPEXP_SUPPORT BStreamPipe; 00178 class _IMPEXP_SUPPORT SString; 00179 class _IMPEXP_SUPPORT BStringBuffer; 00180 class _IMPEXP_SUPPORT BStringIO; 00181 class _IMPEXP_SUPPORT BProcess; 00182 class _IMPEXP_SUPPORT BTextOutput; 00183 class _IMPEXP_SUPPORT STypeCode; 00184 class _IMPEXP_SUPPORT SUrl; 00185 class _IMPEXP_SUPPORT SValue; 00186 class _IMPEXP_SUPPORT SVectorIO; 00187 class _IMPEXP_SUPPORT IBinder; 00188 class _IMPEXP_SUPPORT IByteInput; 00189 class _IMPEXP_SUPPORT IByteOutput; 00190 class _IMPEXP_SUPPORT IByteSeekable; 00191 class _IMPEXP_SUPPORT BnFeatures; 00192 class _IMPEXP_SUPPORT BnVaultManagerServer; 00193 class _IMPEXP_SUPPORT IHandler; 00194 class _IMPEXP_SUPPORT IInterface; 00195 class _IMPEXP_SUPPORT IManifestParser; 00196 class _IMPEXP_SUPPORT IMemory; 00197 class _IMPEXP_SUPPORT IMemoryHeap; 00198 class _IMPEXP_SUPPORT IMemoryDealer; 00199 class _IMPEXP_SUPPORT IStorage; 00200 class _IMPEXP_SUPPORT ITask; 00201 class _IMPEXP_SUPPORT IProcess; 00202 class _IMPEXP_SUPPORT ITextOutput; 00203 class _IMPEXP_SUPPORT IValueInput; 00204 class _IMPEXP_SUPPORT IValueOutput; 00205 class _IMPEXP_SUPPORT IVirtualMachine; 00206 class _IMPEXP_SUPPORT BnByteInput; 00207 class _IMPEXP_SUPPORT BnByteOutput; 00208 class _IMPEXP_SUPPORT BnByteSeekable; 00209 class _IMPEXP_SUPPORT BnHandler; 00210 class _IMPEXP_SUPPORT BnMemory; 00211 class _IMPEXP_SUPPORT BnMemoryHeap; 00212 class _IMPEXP_SUPPORT BnMemoryDealer; 00213 class _IMPEXP_SUPPORT BnStorage; 00214 class _IMPEXP_SUPPORT BnTask; 00215 class _IMPEXP_SUPPORT BnProcess; 00216 class _IMPEXP_SUPPORT BnValueInput; 00217 class _IMPEXP_SUPPORT BnValueOutput; 00218 class _IMPEXP_SUPPORT BnVirtualMachine; 00219 class _IMPEXP_SUPPORT SFlattenable; 00220 class _IMPEXP_SUPPORT BpAtom; 00221 00222 class _IMPEXP_SUPPORT SKeyID; 00223 class _IMPEXP_SUPPORT SCallTreeNode; 00224 class _IMPEXP_SUPPORT SCallTree; 00225 class _IMPEXP_SUPPORT SEventFlag; 00226 class _IMPEXP_SUPPORT SRegExp; 00227 #endif 00228 00229 #if _SUPPORTS_NAMESPACE 00230 } // namespace support 00231 #endif 00232 00233 // services kit 00234 00235 #if _SUPPORTS_NAMESPACE 00236 namespace services { 00237 #endif 00238 00239 #if TARGET_HOST == TARGET_HOST_WIN32 00240 class _IMPEXP_SUPPORT IFeatures; 00241 #endif 00242 00243 #if TARGET_HOST == TARGET_HOST_WIN32 00244 class _IMPEXP_SUPPORT IVaultManagerServer; 00245 #endif 00246 00247 #if _SUPPORTS_NAMESPACE 00248 } // namespace services 00249 #endif 00250 00251 00252 // xml kit 00253 00254 #if _SUPPORTS_NAMESPACE 00255 namespace xml { 00256 #endif 00257 00258 #if TARGET_HOST == TARGET_HOST_WIN32 00259 class _IMPEXP_SUPPORT BCreator; 00260 class _IMPEXP_SUPPORT BOutputStream; 00261 class _IMPEXP_SUPPORT BParser; 00262 class _IMPEXP_SUPPORT BWriter; 00263 class _IMPEXP_SUPPORT BXML2ValueCreator; 00264 class _IMPEXP_SUPPORT BXML2ValueParser; 00265 class _IMPEXP_SUPPORT BXMLBufferSource; 00266 class _IMPEXP_SUPPORT BXMLDataSource; 00267 class _IMPEXP_SUPPORT BXMLIByteInputSource; 00268 class _IMPEXP_SUPPORT BXMLParseContext; 00269 class _IMPEXP_SUPPORT BXMLParser; 00270 class _IMPEXP_SUPPORT CXMLOStr; 00271 class _IMPEXP_SUPPORT IXMLOStr; 00272 #endif 00273 00274 #if _SUPPORTS_NAMESPACE 00275 } // namespace xml 00276 #endif 00277 00278 #if _SUPPORTS_NAMESPACE 00279 } // namespace palmos:: 00280 #endif 00281 00282 } // extern "C++" 00283 #endif /* __cplusplus */ 00284 00285 #endif