1 mike 1.18 //%/////////////////////////////////////////////////////////////////////////////
2 //
|
3 kumpf 1.29 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,
4 // The Open Group, Tivoli Systems
|
5 mike 1.18 //
6 // Permission is hereby granted, free of charge, to any person obtaining a copy
|
7 karl 1.26 // of this software and associated documentation files (the "Software"), to
8 // deal in the Software without restriction, including without limitation the
9 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
10 mike 1.18 // sell copies of the Software, and to permit persons to whom the Software is
11 // furnished to do so, subject to the following conditions:
|
12 kumpf 1.29 //
|
13 karl 1.26 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
14 mike 1.18 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
15 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
16 karl 1.26 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
17 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
18 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
19 mike 1.18 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 //
22 //==============================================================================
23 //
24 // Author: Mike Brasher (mbrasher@bmc.com)
25 //
|
26 mike 1.22 // Modified By: Rudy Schuet (rudy.schuet@compaq.com) 11/25/01
|
27 kumpf 1.35 // K. Schopmeyer
|
28 kumpf 1.32 // Carol Ann Krug Graves, Hewlett-Packard Company
29 // (carolann_graves@hp.com)
|
30 david.eger 1.40.4.1 // David Eger (dteger@us.ibm.com)
|
31 mike 1.18 //
32 //%/////////////////////////////////////////////////////////////////////////////
33
34 #ifndef Pegasus_Config_h
35 #define Pegasus_Config_h
36
37 #if defined(PEGASUS_PLATFORM_WIN32_IX86_MSVC)
38 # include <Pegasus/Common/Platform_WIN32_IX86_MSVC.h>
39 #elif defined (PEGASUS_PLATFORM_LINUX_IX86_GNU)
40 # include <Pegasus/Common/Platform_LINUX_IX86_GNU.h>
41 #elif defined (PEGASUS_PLATFORM_AIX_RS_IBMCXX)
42 # include <Pegasus/Common/Platform_AIX_RS_IBMCXX.h>
43 #elif defined (PEGASUS_PLATFORM_HPUX_PARISC_ACC)
44 # include <Pegasus/Common/Platform_HPUX_PARISC_ACC.h>
|
45 kumpf 1.36 #elif defined (PEGASUS_PLATFORM_HPUX_IA64_ACC)
46 # include <Pegasus/Common/Platform_HPUX_IA64_ACC.h>
|
47 mike 1.19 #elif defined (PEGASUS_PLATFORM_TRU64_ALPHA_DECCXX)
48 # include <Pegasus/Common/Platform_TRU64_ALPHA_DECCXX.h>
|
49 mike 1.21 #elif defined (PEGASUS_PLATFORM_SOLARIS_SPARC_GNU)
50 # include <Pegasus/Common/Platform_SOLARIS_SPARC_GNU.h>
|
51 mike 1.22 #elif defined (PEGASUS_PLATFORM_ZOS_ZSERIES_IBM)
52 # include <Pegasus/Common/Platform_ZOS_ZSERIES_IBM.h>
53 #elif defined (PEGASUS_PLATFORM_NSK_NONSTOP_NMCPLUS)
54 # include <Pegasus/Common/Platform_NSK_NONSTOP_NMCPLUS.h>
|
55 kumpf 1.27 #elif defined (PEGASUS_PLATFORM_LINUX_IA64_GNU)
56 # include <Pegasus/Common/Platform_LINUX_IA64_GNU.h>
|
57 david.eger 1.40.4.1 #elif defined (PEGASUS_PLATFORM_LINUX_PPC_GNU)
58 # include <Pegasus/Common/Platform_LINUX_PPC_GNU.h>
|
59 david.eger 1.40.4.2 #elif defined (PEGASUS_PLATFORM_LINUX_ZSERIES_GNU)
60 # include <Pegasus/Common/Platform_LINUX_ZSERIES_GNU.h>
|
61 chuck 1.33 #elif defined (__OS400__)
62 # if !defined (PEGASUS_PLATFORM_OS400_ISERIES_IBM)
63 # define PEGASUS_PLATFORM_OS400_ISERIES_IBM
64 # endif
65 # include <Pegasus/Common/Platform_OS400_ISERIES_IBM.h>
|
66 mike 1.18 #else
67 # error "<Pegasus/Common/Config.h>: Unsupported Platform"
68 #endif
69
|
70 mday 1.39
71
72
73 //<<< Sun Apr 6 19:28:00 2003 mdd >>>
74 //
75 // COMPILER Checks
76 //
77 // This is to allow a check for GCC > 3.2
78 // It needs to be the first thing we check because the next lines load
79 // further source files
80
81 #if defined(__GNUC__)
82 #define GCC_VERSION (__GNUC__ * 10000 \
83 + __GNUC_MINOR__ * 100 \
84 + __GNUC_PATCHLEVEL__)
85
86 // To test for GCC > 3.2.0:
87 // #if GCC_VERSION > 30200
88
89 #endif
90
91 mday 1.39
|
92 mike 1.22 #include <cstdlib>
93
|
94 kumpf 1.35 // used for Windows only
|
95 kumpf 1.32 #ifndef PEGASUS_EXPORT
96 #define PEGASUS_EXPORT /* empty */
97 #endif
|
98 mike 1.22
|
99 mike 1.18 #ifdef PEGASUS_HAVE_NAMESPACES
100 # define PEGASUS_NAMESPACE_BEGIN namespace Pegasus {
101 # define PEGASUS_NAMESPACE_END }
|
102 mike 1.22
103 #ifndef PEGASUS_HAVE_NO_STD
|
104 mike 1.18 # define PEGASUS_STD(X) std::X
105 # define PEGASUS_USING_STD using namespace std
|
106 mike 1.22 #else
107 # define PEGASUS_STD(X) X
108 # define PEGASUS_USING_STD
109 #endif
|
110 mike 1.18 # define PEGASUS_USING_PEGASUS using namespace Pegasus
111 #else
112 # define PEGASUS_NAMESPACE_BEGIN /* empty */
113 # define PEGASUS_NAMESPACE_END /* empty */
114 # define PEGASUS_STD(X) X
115 # define PEGASUS_USING_STD
116 # define PEGASUS_USING_PEGASUS
117 #endif
118
119 #ifdef PEGASUS_HAVE_EXPLICIT
120 # define PEGASUS_EXPLICIT explicit
121 #else
122 # define PEGASUS_EXPLICIT /* empty */
123 #endif
124
125 #ifdef PEGASUS_HAVE_MUTABLE
126 # define PEGASUS_MUTABLE mutable
127 #else
128 # define PEGASUS_MUTABLE /* empty */
129 #endif
130
131 mike 1.18 #ifndef PEGASUS_HAVE_FOR_SCOPE
132 # define for if (0) ; else for
133 #endif
134
135 #ifdef PEGASUS_HAVE_TEMPLATE_SPECIALIZATION
136 # define PEGASUS_TEMPLATE_SPECIALIZATION template <>
137 #else
138 # define PEGASUS_TEMPLATE_SPECIALIZATION
|
139 karl 1.24 #endif
140
|
141 kumpf 1.32 #ifdef PEGASUS_HAVE_IOS_BINARY
142 #define PEGASUS_IOS_BINARY ,std::ios::binary
143 #define PEGASUS_OR_IOS_BINARY | std::ios::binary
144 #else
145 #define PEGASUS_IOS_BINARY /* empty */
146 #define PEGASUS_OR_IOS_BINARY /* empty */
147 #endif
148
|
149 kumpf 1.34 #ifndef PEGASUS_SINT64_LITERAL
|
150 kumpf 1.37 #define PEGASUS_SINT64_LITERAL(X) (Sint64 (X##LL))
|
151 kumpf 1.34 #endif
152 #ifndef PEGASUS_UINT64_LITERAL
|
153 kumpf 1.37 #define PEGASUS_UINT64_LITERAL(X) (Uint64 (X##ULL))
|
154 kumpf 1.34 #endif
|
155 mike 1.18
|
156 kumpf 1.40 // Used in printf and scanf conversion strings for Uint64 and Sint64 arguments
157 #ifndef PEGASUS_64BIT_CONVERSION_WIDTH
158 #define PEGASUS_64BIT_CONVERSION_WIDTH "ll"
159 #endif
160
|
161 mike 1.18 PEGASUS_NAMESPACE_BEGIN
162
|
163 kumpf 1.35 typedef bool Boolean; // If platform w/o bool, add flag and include Boolean.h
|
164 mike 1.18 typedef unsigned char Uint8;
165 typedef char Sint8;
166 typedef unsigned short Uint16;
167 typedef short Sint16;
168 typedef unsigned int Uint32;
169 typedef int Sint32;
170 typedef float Real32;
171 typedef double Real64;
172 typedef PEGASUS_UINT64 Uint64;
173 typedef PEGASUS_SINT64 Sint64;
174
175 #define PEG_NOT_FOUND Uint32(-1)
176
177 PEGASUS_NAMESPACE_END
178
|
179 mike 1.20 #ifdef PEGASUS_SUPPRESS_UNREACHABLE_STATEMENTS
180 # define PEGASUS_UNREACHABLE(CODE)
181 #else
182 # define PEGASUS_UNREACHABLE(CODE) CODE
183 #endif
184
|
185 kumpf 1.30 #ifdef PEGASUS_HAVE_EBCDIC
186 # define PEGASUS_MAX_PRINTABLE_CHAR 255
187 #else
188 # define PEGASUS_MAX_PRINTABLE_CHAR 127
189 #endif
190
|
191 sage 1.25 // used for zOS only
192 #ifndef PEGASUS_STATIC_CDECL
193 #define PEGASUS_STATIC_CDECL
194 #endif
|
195 mday 1.39
|
196 sage 1.25
|
197 mike 1.18 #endif /* Pegasus_Config_h */
|