00001 /* 00002 * The Apache Software License, Version 1.1 00003 * 00004 * Copyright (c) 1999-2002 The Apache Software Foundation. All rights 00005 * reserved. 00006 * 00007 * Redistribution and use in source and binary forms, with or without 00008 * modification, are permitted provided that the following conditions 00009 * are met: 00010 * 00011 * 1. Redistributions of source code must retain the above copyright 00012 * notice, this list of conditions and the following disclaimer. 00013 * 00014 * 2. Redistributions in binary form must reproduce the above copyright 00015 * notice, this list of conditions and the following disclaimer in 00016 * the documentation and/or other materials provided with the 00017 * distribution. 00018 * 00019 * 3. The end-user documentation included with the redistribution, 00020 * if any, must include the following acknowledgment: 00021 * "This product includes software developed by the 00022 * Apache Software Foundation (http://www.apache.org/)." 00023 * Alternately, this acknowledgment may appear in the software itself, 00024 * if and wherever such third-party acknowledgments normally appear. 00025 * 00026 * 4. The names "Xerces" and "Apache Software Foundation" must 00027 * not be used to endorse or promote products derived from this 00028 * software without prior written permission. For written 00029 * permission, please contact apache\@apache.org. 00030 * 00031 * 5. Products derived from this software may not be called "Apache", 00032 * nor may "Apache" appear in their name, without prior written 00033 * permission of the Apache Software Foundation. 00034 * 00035 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 00036 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00037 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00038 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 00039 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00040 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00041 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 00042 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 00043 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00044 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 00045 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00046 * SUCH DAMAGE. 00047 * ==================================================================== 00048 * 00049 * This software consists of voluntary contributions made by many 00050 * individuals on behalf of the Apache Software Foundation, and was 00051 * originally based on software copyright (c) 1999, International 00052 * Business Machines, Inc., http://www.ibm.com . For more information 00053 * on the Apache Software Foundation, please see 00054 * <http://www.apache.org/>. 00055 */ 00056 00057 /* 00058 * $Log: AutoSense.hpp,v $ 00059 * Revision 1.1 2002/05/11 20:25:37 bhavani 00060 * CR#CR062582# adding xercesc 1.7 file 00061 * 00062 * Revision 1.3 2002/03/04 20:31:14 tng 00063 * [Bug 2868] AIX 4.3.3 mutex/atomic-operation changes for build. 00064 * 00065 * Revision 1.2 2002/02/27 22:38:34 peiyongz 00066 * Bug# 6445 Caldera (SCO) OpenServer Port : patch from Martin Kalen 00067 * 00068 * Revision 1.1.1.1 2002/02/01 22:22:09 peiyongz 00069 * sane_include 00070 * 00071 * Revision 1.21 2001/11/29 18:25:18 tng 00072 * FreeBSD support by Michael Huedepohl. 00073 * 00074 * Revision 1.20 2001/05/11 13:26:26 tng 00075 * Copyright update. 00076 * 00077 * Revision 1.19 2001/03/23 19:01:25 tng 00078 * [Bug 1018] AutoSense looks for "IRIX" when it should look for "sgi" or "__sgi". By Jeff Harrell. 00079 * 00080 * Revision 1.18 2001/02/09 14:40:01 tng 00081 * Update support for SCO UnixWare 7 (gcc). Tested under UnixWare 7.1.1 with gcc version 2.95.2 19991024 (release) with gmake 3.79.1. Updated by Martin Kalen. 00082 * 00083 * Revision 1.17 2001/01/26 21:59:25 tng 00084 * Change bug-todo list to xml format. Other documentation fixes. 00085 * 00086 * Revision 1.16 2000/10/09 18:15:43 jberry 00087 * Modify sensing of Mac OS X. 00088 * PR: 00089 * Obtained from: 00090 * Submitted by: 00091 * Reviewed by: 00092 * PR: 00093 * Obtained from: 00094 * Submitted by: 00095 * Reviewed by: 00096 * 00097 * Revision 1.15 2000/09/21 00:54:18 aruna1 00098 * OS2 related changes given by Bill Schindler 00099 * 00100 * Revision 1.14 2000/08/01 18:26:02 aruna1 00101 * Tru64 support added 00102 * 00103 * Revision 1.13 2000/07/18 18:25:58 andyh 00104 * Mac OS update. 00105 * Contributed by James Berry <jberry@criticalpath.com> 00106 * 00107 * Revision 1.12 2000/04/04 20:11:29 abagchi 00108 * Added PTX support 00109 * 00110 * Revision 1.11 2000/03/02 19:54:37 roddey 00111 * This checkin includes many changes done while waiting for the 00112 * 1.1.0 code to be finished. I can't list them all here, but a list is 00113 * available elsewhere. 00114 * 00115 * Revision 1.10 2000/03/02 01:51:00 aruna1 00116 * Sun CC 5.0 related changes 00117 * 00118 * Revision 1.9 2000/02/24 20:05:23 abagchi 00119 * Swat for removing Log from API docs 00120 * 00121 * Revision 1.8 2000/02/22 01:00:10 aruna1 00122 * GNUGDefs references removed. Now only GCCDefs is used instead 00123 * 00124 * Revision 1.7 2000/02/06 07:48:00 rahulj 00125 * Year 2K copyright swat. 00126 * 00127 * Revision 1.6 2000/02/01 23:43:22 abagchi 00128 * AS/400 related change 00129 * 00130 * Revision 1.5 2000/01/21 22:12:29 abagchi 00131 * OS390 Change: changed OE390 to OS390 00132 * 00133 * Revision 1.4 1999/12/18 00:47:01 rahulj 00134 * Merged in some changes for OS390. 00135 * 00136 * Revision 1.3 1999/12/17 01:28:53 rahulj 00137 * Merged in changes submitted for UnixWare 7 port. Platform 00138 * specific files are still missing. 00139 * 00140 * Revision 1.2 1999/12/01 17:16:16 rahulj 00141 * Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel 00142 * 00143 * Revision 1.1.1.1 1999/11/09 01:03:55 twl 00144 * Initial checkin 00145 * 00146 * Revision 1.2 1999/11/08 20:45:03 rahul 00147 * Swat for adding in Product name and CVS comment log variable. 00148 * 00149 */ 00150 00151 #ifndef AUTOSENSE_HPP 00152 #define AUTOSENSE_HPP 00153 00154 // --------------------------------------------------------------------------- 00155 // This section attempts to auto detect the operating system. It will set 00156 // up XercesC specific defines that are used by the rest of the code. 00157 // --------------------------------------------------------------------------- 00158 #if defined(_AIX) 00159 #define XML_AIX 00160 #define XML_UNIX 00161 #if defined(_AIXVERSION_430) 00162 #define XML_AIX43 // for use of POSIX compliant pthread functions 00163 #endif 00164 #elif defined(_SEQUENT_) 00165 #define XML_PTX 00166 #define XML_UNIX 00167 #elif defined(_HP_UX) || defined(__hpux) || defined(_HPUX_SOURCE) 00168 #define XML_HPUX 00169 #define XML_UNIX 00170 #elif defined(SOLARIS) || defined(__SVR4) 00171 #define XML_SOLARIS 00172 #define XML_UNIX 00173 #elif defined(_SCO_DS) 00174 #define XML_OPENSERVER 00175 #define XML_UNIX 00176 #elif defined(__UNIXWARE__) || defined(__USLC__) 00177 #define XML_UNIXWARE 00178 #define XML_UNIX 00179 #elif defined(__linux__) 00180 #define XML_LINUX 00181 #define XML_UNIX 00182 #elif defined(__FreeBSD__) 00183 #define XML_FREEBSD 00184 #define XML_UNIX 00185 #elif defined(IRIX) || defined(__sgi) 00186 #define XML_IRIX 00187 #define XML_UNIX 00188 #elif defined(__MVS__) 00189 #define XML_OS390 00190 #define XML_UNIX 00191 #elif defined(EXM_OS390) 00192 #define XML_OS390 00193 #define XML_UNIX 00194 #elif defined(__OS400__) 00195 #define XML_AS400 00196 #define XML_UNIX 00197 #elif defined(__OS2__) 00198 #define XML_OS2 00199 #elif defined(__TANDEM) 00200 #define XML_TANDEM 00201 #define XML_UNIX 00202 #define XML_CSET 00203 #elif defined(_WIN32) || defined(WIN32) 00204 #define XML_WIN32 00205 #ifndef WIN32 00206 #define WIN32 00207 #endif 00208 #elif defined(__WINDOWS__) 00209 00210 // IBM VisualAge special handling 00211 #if defined(__32BIT__) 00212 #define XML_WIN32 00213 #else 00214 #define XML_WIN16 00215 #endif 00216 #elif defined(__MSDXML__) 00217 #define XML_DOS 00218 00219 #elif defined(macintosh) 00220 #define XML_MACOS 00221 #elif defined(__APPLE__) && defined(__MACH__) 00222 #define XML_MACOSX 00223 #elif defined(__alpha) && defined(__osf__) 00224 #define XML_TRU64 00225 #else 00226 #error Code requires port to host OS! 00227 #endif 00228 00229 00230 // --------------------------------------------------------------------------- 00231 // This section attempts to autodetect the compiler being used. It will set 00232 // up Xerces specific defines that can be used by the rest of the code. 00233 // --------------------------------------------------------------------------- 00234 #if defined(__BORLANDC__) 00235 #define XML_BORLAND 00236 #elif defined(_MSC_VER) 00237 #define XML_VISUALCPP 00238 #elif defined(__xlC__) 00239 #define XML_CSET 00240 #elif defined(XML_SOLARIS) 00241 #if defined(__SUNPRO_CC) & __SUNPRO_CC >=0x500 00242 #define XML_SUNCC5 00243 #elif defined(__SUNPRO_CC) & __SUNPRO_CC <0x500 00244 #define XML_SUNCC 00245 #elif defined(_EDG_RUNTIME_USES_NAMESPACES) 00246 #define XML_SOLARIS_KAICC 00247 #elif defined(__GNUG__) 00248 #define XML_GCC 00249 #else 00250 #error Code requires port to current development environment 00251 #endif 00252 #elif defined (__GNUG__) || defined(__linux__) 00253 #define XML_GCC 00254 #elif defined(XML_HPUX) 00255 #if defined(EXM_HPUX) 00256 #define XML_HPUX_KAICC 00257 #elif (__cplusplus == 1) 00258 #define XML_HPUX_CC 00259 #elif (__cplusplus == 199707 || __cplusplus == 199711) 00260 #define XML_HPUX_aCC 00261 #endif 00262 #elif defined(XML_IRIX) 00263 #define XML_MIPSPRO_CC 00264 #elif defined(XML_PTX) 00265 #define XML_PTX_CC 00266 #elif defined(XML_TANDEM) 00267 #define XML_TANDEMCC 00268 #elif defined(__MVS__) && defined(__cplusplus) 00269 #define XML_MVSCPP 00270 #elif defined(EXM_OS390) && defined(__cplusplus) 00271 #define XML_MVSCPP 00272 #elif defined(__IBMC__) || defined(__IBMCPP__) 00273 #if defined(XML_WIN32) 00274 #define XML_IBMVAW32 00275 #elif defined(XML_OS2) 00276 #define XML_IBMVAOS2 00277 #if (__IBMC__ >= 400 || __IBMCPP__ >= 400) 00278 #define XML_IBMVA4_OS2 00279 #endif 00280 #endif 00281 #elif defined(XML_TRU64) && defined(__DECCXX) 00282 #define XML_DECCXX 00283 #elif defined(__MWERKS__) 00284 #define XML_METROWERKS 00285 #elif defined(__OS400__) 00286 #else 00287 #error Code requires port to current development environment 00288 #endif 00289 00290 #endif