AutoSense.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: AutoSense.hpp 568078 2007-08-21 11:43:25Z amassari $
00020  */
00021 
00022 #ifndef AUTOSENSE_HPP
00023 #define AUTOSENSE_HPP
00024 
00025 // ---------------------------------------------------------------------------
00026 //  This section attempts to auto detect the operating system. It will set
00027 //  up XercesC specific defines that are used by the rest of the code.
00028 // ---------------------------------------------------------------------------
00029 #if defined(_AIX)
00030     #define XML_AIX
00031     #define XML_UNIX
00032     #if defined(_AIXVERSION_430)
00033         #define XML_AIX43  // for use of POSIX compliant pthread functions
00034     #endif
00035 #elif defined(_SEQUENT_)
00036     #define XML_PTX
00037     #define XML_UNIX
00038 #elif defined(_HP_UX) || defined(__hpux) || defined(_HPUX_SOURCE)
00039     #define XML_HPUX
00040     #define XML_UNIX
00041 #elif defined(SOLARIS) || defined(__SVR4)
00042     #define XML_SOLARIS
00043     #define XML_UNIX
00044 #elif defined(_SCO_DS)
00045     #define XML_OPENSERVER
00046     #define XML_UNIX
00047 #elif defined(__UNIXWARE__) || defined(__USLC__)
00048     #define XML_UNIXWARE
00049     #define XML_UNIX
00050 #elif defined(__BEOS__)
00051     #define XML_BEOS
00052     #define XML_UNIX
00053 #elif defined(__QNXNTO__)
00054     #define XML_QNX
00055     #define XML_UNIX
00056 #elif defined(__linux__)
00057     #define XML_LINUX
00058     #define XML_UNIX
00059     #if defined(__s390__)
00060         #define XML_LINUX_390
00061     #endif
00062 #elif defined(__FreeBSD__)
00063     #define XML_FREEBSD
00064     #define XML_UNIX
00065 #elif defined(IRIX) || defined(__sgi)
00066     #define XML_IRIX
00067     #define XML_UNIX
00068 #elif defined(__MVS__)
00069     #define XML_OS390
00070     #define XML_UNIX
00071 #elif defined(EXM_OS390)
00072     #define XML_OS390
00073     #define XML_UNIX
00074 #elif defined(__OS400__)
00075     #define XML_AS400
00076     #define XML_UNIX
00077 #elif defined(__OS2__)
00078     #define XML_OS2
00079 #elif defined(__TANDEM)
00080     #define XML_TANDEM
00081     #define XML_UNIX
00082     #define XML_CSET
00083 #elif defined(__CYGWIN__)
00084     #define XML_CYGWIN
00085     #ifndef WIN32
00086       #define WIN32
00087     #endif
00088 #elif defined(_WIN32) || defined(WIN32)
00089     #define XML_WIN32
00090     #ifndef WIN32
00091       #define WIN32
00092     #endif
00093 #elif defined(__WINDOWS__)
00094 
00095     // IBM VisualAge special handling
00096     #if defined(__32BIT__)
00097         #define XML_WIN32
00098     #else
00099         #define XML_WIN16
00100     #endif
00101 #elif defined(__MSDXML__)
00102     #define XML_DOS
00103 
00104 #elif defined(macintosh) || (defined(__APPLE__) && defined(__MACH__))
00105     #define XML_MACOS
00106 #elif defined(__alpha) && defined(__osf__)
00107     #define XML_TRU64
00108 #elif defined(__NetBSD__)
00109     #define XML_NETBSD
00110 #elif defined(__INTERIX)
00111     #define XML_INTERIX
00112     #define XML_UNIX
00113 #else
00114     #error Code requires port to host OS!
00115 #endif
00116 
00117 
00118 // ---------------------------------------------------------------------------
00119 //  This section attempts to autodetect the compiler being used. It will set
00120 //  up Xerces specific defines that can be used by the rest of the code.
00121 // ---------------------------------------------------------------------------
00122 #if defined(__BORLANDC__)
00123     #define XML_BORLAND
00124 #elif defined(_MSC_VER)
00125     #define XML_VISUALCPP
00126 #elif defined(XML_SOLARIS)
00127     #if defined(__SUNPRO_CC) && (__SUNPRO_CC >=0x500)
00128         #define XML_SUNCC5
00129     #elif defined(__SUNPRO_CC) && (__SUNPRO_CC <0x500)
00130         #define XML_SUNCC
00131     #elif defined(_EDG_RUNTIME_USES_NAMESPACES)
00132         #define XML_SOLARIS_KAICC
00133     #elif defined(__GNUG__)
00134         #define XML_GCC
00135     #else
00136         #error Code requires port to current development environment
00137     #endif
00138 #elif defined (__QNXNTO__)
00139     #define XML_QCC
00140 #elif defined(__IBMC__) || defined(__IBMCPP__)
00141     #if defined(XML_WIN32)
00142         #define XML_IBMVAW32
00143     #elif defined(XML_OS2)
00144         #define XML_IBMVAOS2
00145         #if (__IBMC__ >= 400 || __IBMCPP__ >= 400)
00146             #define XML_IBMVA4_OS2
00147         #endif
00148     #elif defined(XML_AIX) || defined(__linux__)
00149         #define XML_CSET              
00150     #elif defined(__MVS__) && defined(__cplusplus)
00151         #define XML_MVSCPP
00152     #elif defined(EXM_OS390) && defined(__cplusplus)
00153         #define XML_MVSCPP
00154     #endif
00155 #elif defined (__GNUG__) || defined(__BEOS__) || defined(__linux__) || defined(__CYGWIN__)
00156     #define XML_GCC
00157 #elif defined(XML_HPUX)
00158     #if defined(EXM_HPUX)
00159         #define XML_HPUX_KAICC
00160     #elif (__cplusplus == 1)
00161         #define XML_HPUX_CC
00162     #elif (__cplusplus == 199707 || __cplusplus == 199711)
00163         #define XML_HPUX_aCC
00164     #endif
00165 #elif defined(XML_IRIX)
00166     #define XML_MIPSPRO_CC
00167 #elif defined(XML_PTX)
00168     #define XML_PTX_CC
00169 #elif defined(XML_TANDEM)
00170     #define XML_TANDEMCC
00171 #elif defined(__MVS__) && defined(__cplusplus)
00172     #define XML_MVSCPP
00173 #elif defined(EXM_OS390) && defined(__cplusplus)
00174     #define XML_MVSCPP
00175 #elif defined(XML_TRU64) && defined(__DECCXX)
00176     #define XML_DECCXX
00177 #elif defined(__MWERKS__)
00178     #define XML_METROWERKS
00179 #elif defined(__OS400__)
00180 #elif defined(XML_UNIXWARE)
00181     #define XML_SCOCC
00182 #else
00183     #error Code requires port to current development environment
00184 #endif
00185 
00186 // ---------------------------------------------------------------------------
00187 //  The gcc compiler 2.95... is generating an internal error for some template
00188 //  definitions. So, if we are compiling with gcc, have a specific define that
00189 //  we can later use in the code.
00190 // ---------------------------------------------------------------------------
00191 #if defined(__GNUC__)
00192 #define XML_GCC_VERSION (__GNUC__ * 10000 \
00193                          + __GNUC_MINOR__ * 100 \
00194                          + __GNUC_PATCHLEVEL__)
00195 #endif
00196 
00197 
00198 #endif

Generated on Thu Feb 19 11:35:43 2009 for Xerces-C++ by  doxygen 1.5.4