summaryrefslogtreecommitdiff
path: root/qmake
authoreilers <eilers>2003-11-03 16:52:18 (UTC)
committer eilers <eilers>2003-11-03 16:52:18 (UTC)
commitd34dc773591a2d467c68875a68a671d6a809f861 (patch) (unidiff)
treeb57e5ae15c51e3d87ca95d57aedfd1ca3db57bfe /qmake
parentce84f2d8bdd65c438821f0457cdad6bbbfa73380 (diff)
downloadopie-d34dc773591a2d467c68875a68a671d6a809f861.zip
opie-d34dc773591a2d467c68875a68a671d6a809f861.tar.gz
opie-d34dc773591a2d467c68875a68a671d6a809f861.tar.bz2
Porting Opie to MacOS-X.
The base system and all platform independent applications and platforms should work. Please see $OPIEDIR/development/macosx for details
Diffstat (limited to 'qmake') (more/less context) (ignore whitespace changes)
-rw-r--r--qmake/include/qglobal.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/qmake/include/qglobal.h b/qmake/include/qglobal.h
index d212bff..94e5607 100644
--- a/qmake/include/qglobal.h
+++ b/qmake/include/qglobal.h
@@ -1,349 +1,356 @@
1/**************************************************************************** 1/****************************************************************************
2** $Id$ 2** $Id$
3** 3**
4** Global type declarations and definitions 4** Global type declarations and definitions
5** 5**
6** Created : 920529 6** Created : 920529
7** 7**
8** Copyright (C) 1992-2002 Trolltech AS. All rights reserved. 8** Copyright (C) 1992-2002 Trolltech AS. All rights reserved.
9** 9**
10** This file is part of the tools module of the Qt GUI Toolkit. 10** This file is part of the tools module of the Qt GUI Toolkit.
11** 11**
12** This file may be distributed under the terms of the Q Public License 12** This file may be distributed under the terms of the Q Public License
13** as defined by Trolltech AS of Norway and appearing in the file 13** as defined by Trolltech AS of Norway and appearing in the file
14** LICENSE.QPL included in the packaging of this file. 14** LICENSE.QPL included in the packaging of this file.
15** 15**
16** This file may be distributed and/or modified under the terms of the 16** This file may be distributed and/or modified under the terms of the
17** GNU General Public License version 2 as published by the Free Software 17** GNU General Public License version 2 as published by the Free Software
18** Foundation and appearing in the file LICENSE.GPL included in the 18** Foundation and appearing in the file LICENSE.GPL included in the
19** packaging of this file. 19** packaging of this file.
20** 20**
21** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition 21** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
22** licenses may use this file in accordance with the Qt Commercial License 22** licenses may use this file in accordance with the Qt Commercial License
23** Agreement provided with the Software. 23** Agreement provided with the Software.
24** 24**
25** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 25** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
26** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 26** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
27** 27**
28** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for 28** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
29** information about Qt Commercial License Agreements. 29** information about Qt Commercial License Agreements.
30** See http://www.trolltech.com/qpl/ for QPL licensing information. 30** See http://www.trolltech.com/qpl/ for QPL licensing information.
31** See http://www.trolltech.com/gpl/ for GPL licensing information. 31** See http://www.trolltech.com/gpl/ for GPL licensing information.
32** 32**
33** Contact info@trolltech.com if any conditions of this licensing are 33** Contact info@trolltech.com if any conditions of this licensing are
34** not clear to you. 34** not clear to you.
35** 35**
36**********************************************************************/ 36**********************************************************************/
37 37
38#ifndef QGLOBAL_H 38#ifndef QGLOBAL_H
39#define QGLOBAL_H 39#define QGLOBAL_H
40 40
41#define QT_VERSION_STR "3.1.2" 41#define QT_VERSION_STR "3.1.2"
42/* 42/*
43 QT_VERSION is (major << 16) + (minor << 8) + patch. 43 QT_VERSION is (major << 16) + (minor << 8) + patch.
44 */ 44 */
45#define QT_VERSION 0x030102 45#define QT_VERSION 0x030102
46 46
47/* 47/*
48 The operating system, must be one of: (Q_OS_x) 48 The operating system, must be one of: (Q_OS_x)
49 49
50 MACX- Mac OS X 50 MACX- Mac OS X
51 MAC9- Mac OS 9 51 MAC9- Mac OS 9
52 MSDOS- MS-DOS and Windows 52 MSDOS- MS-DOS and Windows
53 OS2- OS/2 53 OS2- OS/2
54 OS2EMX- XFree86 on OS/2 (not PM) 54 OS2EMX- XFree86 on OS/2 (not PM)
55 WIN32- Win32 (Windows 95/98/ME and Windows NT/2000/XP) 55 WIN32- Win32 (Windows 95/98/ME and Windows NT/2000/XP)
56 CYGWIN- Cygwin 56 CYGWIN- Cygwin
57 SOLARIS- Sun Solaris 57 SOLARIS- Sun Solaris
58 HPUX- HP-UX 58 HPUX- HP-UX
59 ULTRIX- DEC Ultrix 59 ULTRIX- DEC Ultrix
60 LINUX- Linux 60 LINUX- Linux
61 FREEBSD- FreeBSD 61 FREEBSD- FreeBSD
62 NETBSD- NetBSD 62 NETBSD- NetBSD
63 OPENBSD- OpenBSD 63 OPENBSD- OpenBSD
64 BSDI- BSD/OS 64 BSDI- BSD/OS
65 IRIX- SGI Irix 65 IRIX- SGI Irix
66 OSF- HP Tru64 UNIX 66 OSF- HP Tru64 UNIX
67 SCO- SCO OpenServer 5 67 SCO- SCO OpenServer 5
68 UNIXWARE- UnixWare 7, Open UNIX 8 68 UNIXWARE- UnixWare 7, Open UNIX 8
69 AIX- AIX 69 AIX- AIX
70 HURD- GNU Hurd 70 HURD- GNU Hurd
71 DGUX- DG/UX 71 DGUX- DG/UX
72 RELIANT- Reliant UNIX 72 RELIANT- Reliant UNIX
73 DYNIX- DYNIX/ptx 73 DYNIX- DYNIX/ptx
74 QNX- QNX 74 QNX- QNX
75 QNX6- QNX RTP 6.1 75 QNX6- QNX RTP 6.1
76 LYNX- LynxOS 76 LYNX- LynxOS
77 BSD4- Any BSD 4.4 system 77 BSD4- Any BSD 4.4 system
78 UNIX- Any UNIX BSD/SYSV system 78 UNIX- Any UNIX BSD/SYSV system
79*/ 79*/
80 80
81#if defined(__APPLE__) && defined(__GNUC__) 81#if defined(__APPLE__) && defined(__GNUC__)
82# define Q_OS_MACX 82# define Q_OS_MACX
83#elif defined(__MACOSX__) 83#elif defined(__MACOSX__)
84# define Q_OS_MACX 84# define Q_OS_MACX
85#elif defined(macintosh) 85#elif defined(macintosh)
86# define Q_OS_MAC9 86# define Q_OS_MAC9
87#elif defined(__CYGWIN__) 87#elif defined(__CYGWIN__)
88# define Q_OS_CYGWIN 88# define Q_OS_CYGWIN
89#elif defined(MSDOS) || defined(_MSDOS) 89#elif defined(MSDOS) || defined(_MSDOS)
90# define Q_OS_MSDOS 90# define Q_OS_MSDOS
91#elif defined(__OS2__) 91#elif defined(__OS2__)
92# if defined(__EMX__) 92# if defined(__EMX__)
93# define Q_OS_OS2EMX 93# define Q_OS_OS2EMX
94# else 94# else
95# define Q_OS_OS2 95# define Q_OS_OS2
96# endif 96# endif
97#elif !defined(SAG_COM) && (defined(WIN64) || defined(_WIN64) || defined(__WIN64__)) 97#elif !defined(SAG_COM) && (defined(WIN64) || defined(_WIN64) || defined(__WIN64__))
98# define Q_OS_WIN32 98# define Q_OS_WIN32
99# define Q_OS_WIN64 99# define Q_OS_WIN64
100#elif !defined(SAG_COM) && (defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)) 100#elif !defined(SAG_COM) && (defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__))
101# define Q_OS_WIN32 101# define Q_OS_WIN32
102#elif defined(__MWERKS__) && defined(__INTEL__) 102#elif defined(__MWERKS__) && defined(__INTEL__)
103# define Q_OS_WIN32 103# define Q_OS_WIN32
104#elif defined(__sun) || defined(sun) 104#elif defined(__sun) || defined(sun)
105# define Q_OS_SOLARIS 105# define Q_OS_SOLARIS
106#elif defined(hpux) || defined(__hpux) 106#elif defined(hpux) || defined(__hpux)
107# define Q_OS_HPUX 107# define Q_OS_HPUX
108#elif defined(__ultrix) || defined(ultrix) 108#elif defined(__ultrix) || defined(ultrix)
109# define Q_OS_ULTRIX 109# define Q_OS_ULTRIX
110#elif defined(sinix) 110#elif defined(sinix)
111# define Q_OS_RELIANT 111# define Q_OS_RELIANT
112#elif defined(__linux__) || defined(__linux) 112#elif defined(__linux__) || defined(__linux)
113# define Q_OS_LINUX 113# define Q_OS_LINUX
114#elif defined(__FreeBSD__) 114#elif defined(__FreeBSD__)
115# define Q_OS_FREEBSD 115# define Q_OS_FREEBSD
116# define Q_OS_BSD4 116# define Q_OS_BSD4
117#elif defined(__NetBSD__) 117#elif defined(__NetBSD__)
118# define Q_OS_NETBSD 118# define Q_OS_NETBSD
119# define Q_OS_BSD4 119# define Q_OS_BSD4
120#elif defined(__OpenBSD__) 120#elif defined(__OpenBSD__)
121# define Q_OS_OPENBSD 121# define Q_OS_OPENBSD
122# define Q_OS_BSD4 122# define Q_OS_BSD4
123#elif defined(__bsdi__) 123#elif defined(__bsdi__)
124# define Q_OS_BSDI 124# define Q_OS_BSDI
125# define Q_OS_BSD4 125# define Q_OS_BSD4
126#elif defined(__sgi) 126#elif defined(__sgi)
127# define Q_OS_IRIX 127# define Q_OS_IRIX
128#elif defined(__osf__) 128#elif defined(__osf__)
129# define Q_OS_OSF 129# define Q_OS_OSF
130#elif defined(_AIX) 130#elif defined(_AIX)
131# define Q_OS_AIX 131# define Q_OS_AIX
132#elif defined(__Lynx__) 132#elif defined(__Lynx__)
133# define Q_OS_LYNX 133# define Q_OS_LYNX
134#elif defined(__GNU_HURD__) 134#elif defined(__GNU_HURD__)
135# define Q_OS_HURD 135# define Q_OS_HURD
136#elif defined(__DGUX__) 136#elif defined(__DGUX__)
137# define Q_OS_DGUX 137# define Q_OS_DGUX
138#elif defined(__QNXNTO__) 138#elif defined(__QNXNTO__)
139# define Q_OS_QNX6 139# define Q_OS_QNX6
140#elif defined(__QNX__) 140#elif defined(__QNX__)
141# define Q_OS_QNX 141# define Q_OS_QNX
142#elif defined(_SEQUENT_) 142#elif defined(_SEQUENT_)
143# define Q_OS_DYNIX 143# define Q_OS_DYNIX
144#elif defined(_SCO_DS) /* SCO OpenServer 5 + GCC */ 144#elif defined(_SCO_DS) /* SCO OpenServer 5 + GCC */
145# define Q_OS_SCO 145# define Q_OS_SCO
146#elif defined(__USLC__) /* all SCO platforms + UDK or OUDK */ 146#elif defined(__USLC__) /* all SCO platforms + UDK or OUDK */
147# define Q_OS_UNIXWARE 147# define Q_OS_UNIXWARE
148# define Q_OS_UNIXWARE7 148# define Q_OS_UNIXWARE7
149#elif defined(__svr4__) && defined(i386) /* Open UNIX 8 + GCC */ 149#elif defined(__svr4__) && defined(i386) /* Open UNIX 8 + GCC */
150# define Q_OS_UNIXWARE 150# define Q_OS_UNIXWARE
151# define Q_OS_UNIXWARE7 151# define Q_OS_UNIXWARE7
152#else 152#else
153# error "Qt has not been ported to this OS - talk to qt-bugs@trolltech.com" 153# error "Qt has not been ported to this OS - talk to qt-bugs@trolltech.com"
154#endif 154#endif
155 155
156#if defined(Q_OS_MAC9) || defined(Q_OS_MACX) 156#if defined(Q_OS_MAC9) || defined(Q_OS_MACX)
157# define Q_OS_MAC 157/* This hack forces the generater to compile qmake not for maxosx native. It is
158 * compiled for Linux and generates usual makefiles..
159 * Does anyone has a better solution for this ? (eilers)
160 */
161// # define Q_OS_MAC
162#define Q_OS_LINUX
163#warning "boeser Hack !! (se)"
164#undef Q_OS_MACX
158#endif 165#endif
159 166
160#if defined(Q_OS_MAC9) || defined(Q_OS_MSDOS) || defined(Q_OS_OS2) || defined(Q_OS_WIN32) || defined(Q_OS_WIN64) 167#if defined(Q_OS_MAC9) || defined(Q_OS_MSDOS) || defined(Q_OS_OS2) || defined(Q_OS_WIN32) || defined(Q_OS_WIN64)
161# undef Q_OS_UNIX 168# undef Q_OS_UNIX
162#elif !defined(Q_OS_UNIX) 169#elif !defined(Q_OS_UNIX)
163# define Q_OS_UNIX 170# define Q_OS_UNIX
164#endif 171#endif
165 172
166 173
167/* 174/*
168 The compiler, must be one of: (Q_CC_x) 175 The compiler, must be one of: (Q_CC_x)
169 176
170 SYM- Symantec C++ for both PC and Macintosh 177 SYM- Symantec C++ for both PC and Macintosh
171 MPW- MPW C++ 178 MPW- MPW C++
172 MWERKS- Metrowerks CodeWarrior 179 MWERKS- Metrowerks CodeWarrior
173 MSVC- Microsoft Visual C/C++ 180 MSVC- Microsoft Visual C/C++
174 BOR- Borland/Turbo C++ 181 BOR- Borland/Turbo C++
175 WAT- Watcom C++ 182 WAT- Watcom C++
176 GNU- GNU C++ 183 GNU- GNU C++
177 COMEAU- Comeau C++ 184 COMEAU- Comeau C++
178 EDG- Edison Design Group C++ 185 EDG- Edison Design Group C++
179 OC - CenterLine C++ 186 OC - CenterLine C++
180 SUN- Sun WorkShop, Forte Developer, or Sun ONE Studio C++ 187 SUN- Sun WorkShop, Forte Developer, or Sun ONE Studio C++
181 MIPS- MIPSpro C++ 188 MIPS- MIPSpro C++
182 DEC- DEC C++ 189 DEC- DEC C++
183 HP - HPUX C++ 190 HP - HPUX C++
184 HPACC- HPUX ANSI C++ 191 HPACC- HPUX ANSI C++
185 USLC- SCO OUDK, UDK, and UnixWare 2.X C++ 192 USLC- SCO OUDK, UDK, and UnixWare 2.X C++
186 CDS- Reliant C++ 193 CDS- Reliant C++
187 KAI- KAI C++ 194 KAI- KAI C++
188 INTEL- Intel C++ 195 INTEL- Intel C++
189 HIGHC- MetaWare High C/C++ 196 HIGHC- MetaWare High C/C++
190 PGI- Portland Group C++ 197 PGI- Portland Group C++
191 GHS- Green Hills Optimizing C++ Compilers 198 GHS- Green Hills Optimizing C++ Compilers
192 199
193 Should be sorted most to least authoritative. 200 Should be sorted most to least authoritative.
194*/ 201*/
195 202
196/* Symantec C++ is now Digital Mars */ 203/* Symantec C++ is now Digital Mars */
197#if defined(__DMC__) || defined(__SC__) 204#if defined(__DMC__) || defined(__SC__)
198# define Q_CC_SYM 205# define Q_CC_SYM
199/* "explicit" semantics implemented in 8.1e but keyword recognized since 7.5 */ 206/* "explicit" semantics implemented in 8.1e but keyword recognized since 7.5 */
200# if defined(__SC__) && __SC__ < 0x750 207# if defined(__SC__) && __SC__ < 0x750
201# define Q_NO_EXPLICIT_KEYWORD 208# define Q_NO_EXPLICIT_KEYWORD
202# endif 209# endif
203# define Q_NO_USING_KEYWORD 210# define Q_NO_USING_KEYWORD
204# if !defined(_CPPUNWIND) 211# if !defined(_CPPUNWIND)
205# define Q_NO_EXCEPTIONS 212# define Q_NO_EXCEPTIONS
206# endif 213# endif
207 214
208#elif defined(applec) 215#elif defined(applec)
209# define Q_CC_MPW 216# define Q_CC_MPW
210# define Q_NO_BOOL_TYPE 217# define Q_NO_BOOL_TYPE
211# define Q_NO_EXPLICIT_KEYWORD 218# define Q_NO_EXPLICIT_KEYWORD
212# define Q_NO_USING_KEYWORD 219# define Q_NO_USING_KEYWORD
213 220
214#elif defined(__MWERKS__) 221#elif defined(__MWERKS__)
215# define Q_CC_MWERKS 222# define Q_CC_MWERKS
216/* "explicit" recognized since 4.0d1 */ 223/* "explicit" recognized since 4.0d1 */
217# define QMAC_PASCAL pascal 224# define QMAC_PASCAL pascal
218# define Q_NO_USING_KEYWORD /* ### check "using" status */ 225# define Q_NO_USING_KEYWORD /* ### check "using" status */
219 226
220#elif defined(_MSC_VER) 227#elif defined(_MSC_VER)
221# define Q_CC_MSVC 228# define Q_CC_MSVC
222/* proper support of bool for _MSC_VER >= 1100 */ 229/* proper support of bool for _MSC_VER >= 1100 */
223# define Q_CANNOT_DELETE_CONSTANT 230# define Q_CANNOT_DELETE_CONSTANT
224# define Q_INLINE_TEMPLATES inline 231# define Q_INLINE_TEMPLATES inline
225/* Visual C++.Net issues for _MSC_VER >= 1300 */ 232/* Visual C++.Net issues for _MSC_VER >= 1300 */
226# if _MSC_VER >= 1300 233# if _MSC_VER >= 1300
227# define Q_CC_MSVC_NET 234# define Q_CC_MSVC_NET
228# if _MSC_VER < 1310 235# if _MSC_VER < 1310
229# define Q_TYPENAME 236# define Q_TYPENAME
230# endif 237# endif
231# endif 238# endif
232# define Q_NO_USING_KEYWORD /* ### check "using" status */ 239# define Q_NO_USING_KEYWORD /* ### check "using" status */
233 240
234#elif defined(__BORLANDC__) || defined(__TURBOC__) 241#elif defined(__BORLANDC__) || defined(__TURBOC__)
235# define Q_CC_BOR 242# define Q_CC_BOR
236# if __BORLANDC__ < 0x502 243# if __BORLANDC__ < 0x502
237# define Q_NO_BOOL_TYPE 244# define Q_NO_BOOL_TYPE
238# define Q_NO_EXPLICIT_KEYWORD 245# define Q_NO_EXPLICIT_KEYWORD
239# endif 246# endif
240# define Q_NO_USING_KEYWORD /* ### check "using" status */ 247# define Q_NO_USING_KEYWORD /* ### check "using" status */
241 248
242#elif defined(__WATCOMC__) 249#elif defined(__WATCOMC__)
243# define Q_CC_WAT 250# define Q_CC_WAT
244# if defined(Q_OS_QNX4) 251# if defined(Q_OS_QNX4)
245/* compiler flags */ 252/* compiler flags */
246# define Q_TYPENAME 253# define Q_TYPENAME
247# define Q_NO_BOOL_TYPE 254# define Q_NO_BOOL_TYPE
248# define Q_CANNOT_DELETE_CONSTANT 255# define Q_CANNOT_DELETE_CONSTANT
249# define mutable 256# define mutable
250/* ??? */ 257/* ??? */
251# define Q_BROKEN_TEMPLATE_SPECIALIZATION 258# define Q_BROKEN_TEMPLATE_SPECIALIZATION
252/* no template classes in QVariant */ 259/* no template classes in QVariant */
253# define QT_NO_TEMPLATE_VARIANT 260# define QT_NO_TEMPLATE_VARIANT
254/* Wcc does not fill in functions needed by valuelists, maps, and 261/* Wcc does not fill in functions needed by valuelists, maps, and
255 valuestacks implicitly */ 262 valuestacks implicitly */
256# define Q_FULL_TEMPLATE_INSTANTIATION 263# define Q_FULL_TEMPLATE_INSTANTIATION
257/* can we just compare the structures? */ 264/* can we just compare the structures? */
258# define Q_FULL_TEMPLATE_INSTANTIATION_MEMCMP 265# define Q_FULL_TEMPLATE_INSTANTIATION_MEMCMP
259/* these are not useful to our customers */ 266/* these are not useful to our customers */
260# define QT_QWS_NO_SHM 267# define QT_QWS_NO_SHM
261# define QT_NO_QWS_MULTIPROCESS 268# define QT_NO_QWS_MULTIPROCESS
262# define QT_NO_SQL 269# define QT_NO_SQL
263# define QT_NO_QWS_CURSOR 270# define QT_NO_QWS_CURSOR
264# endif 271# endif
265 272
266#elif defined(__GNUC__) 273#elif defined(__GNUC__)
267# define Q_CC_GNU 274# define Q_CC_GNU
268# define Q_C_CALLBACKS 275# define Q_C_CALLBACKS
269# if __GNUC__ == 2 && __GNUC_MINOR__ <= 7 276# if __GNUC__ == 2 && __GNUC_MINOR__ <= 7
270# define Q_FULL_TEMPLATE_INSTANTIATION 277# define Q_FULL_TEMPLATE_INSTANTIATION
271# endif 278# endif
272/* GCC 2.95 knows "using" but does not support it correctly */ 279/* GCC 2.95 knows "using" but does not support it correctly */
273# if __GNUC__ == 2 && __GNUC_MINOR__ <= 95 280# if __GNUC__ == 2 && __GNUC_MINOR__ <= 95
274# define Q_NO_USING_KEYWORD 281# define Q_NO_USING_KEYWORD
275# endif 282# endif
276/* GCC 3.1 and GCC 3.2 wrongly define _SB_CTYPE_MACROS on HP-UX */ 283/* GCC 3.1 and GCC 3.2 wrongly define _SB_CTYPE_MACROS on HP-UX */
277# if defined(Q_OS_HPUX) && __GNUC__ == 3 && __GNUC_MINOR__ >= 1 284# if defined(Q_OS_HPUX) && __GNUC__ == 3 && __GNUC_MINOR__ >= 1
278# define Q_WRONG_SB_CTYPE_MACROS 285# define Q_WRONG_SB_CTYPE_MACROS
279# endif 286# endif
280# if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP) 287# if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP)
281# define Q_PACKED __attribute__ ((packed)) 288# define Q_PACKED __attribute__ ((packed))
282# endif 289# endif
283# if !defined(__EXCEPTIONS) 290# if !defined(__EXCEPTIONS)
284# define Q_NO_EXCEPTIONS 291# define Q_NO_EXCEPTIONS
285# endif 292# endif
286 293
287/* IBM compiler versions are a bit messy. There are actually two products: 294/* IBM compiler versions are a bit messy. There are actually two products:
288 the C product, and the C++ product. The C++ compiler is always packaged 295 the C product, and the C++ product. The C++ compiler is always packaged
289 with the latest version of the C compiler. Version numbers do not always 296 with the latest version of the C compiler. Version numbers do not always
290 match. This little table (I'm not sure it's accurate) should be helpful: 297 match. This little table (I'm not sure it's accurate) should be helpful:
291 298
292 C++ product C product 299 C++ product C product
293 300
294 C Set 3.1 C Compiler 3.0 301 C Set 3.1 C Compiler 3.0
295 ... ... 302 ... ...
296 C++ Compiler 3.6.6 C Compiler 4.3 303 C++ Compiler 3.6.6 C Compiler 4.3
297 ... ... 304 ... ...
298 Visual Age C++ 4.0 ... 305 Visual Age C++ 4.0 ...
299 ... ... 306 ... ...
300 Visual Age C++ 5.0 C Compiler 5.0 307 Visual Age C++ 5.0 C Compiler 5.0
301 308
302 Now: 309 Now:
303 __xlC__ is the version of the C compiler in hexadecimal notation 310 __xlC__ is the version of the C compiler in hexadecimal notation
304 is only an approximation of the C++ compiler version 311 is only an approximation of the C++ compiler version
305 __IBMCPP__ is the version of the C++ compiler in decimal notation 312 __IBMCPP__ is the version of the C++ compiler in decimal notation
306 but it is not defined on older compilers like C Set 3.1 */ 313 but it is not defined on older compilers like C Set 3.1 */
307#elif defined(__xlC__) 314#elif defined(__xlC__)
308# define Q_CC_XLC 315# define Q_CC_XLC
309# define Q_FULL_TEMPLATE_INSTANTIATION 316# define Q_FULL_TEMPLATE_INSTANTIATION
310# if __xlC__ < 0x400 317# if __xlC__ < 0x400
311# define Q_NO_BOOL_TYPE 318# define Q_NO_BOOL_TYPE
312# define Q_NO_EXPLICIT_KEYWORD 319# define Q_NO_EXPLICIT_KEYWORD
313# define Q_NO_USING_KEYWORD 320# define Q_NO_USING_KEYWORD
314# define Q_TYPENAME 321# define Q_TYPENAME
315# define Q_INLINE_TEMPLATES inline 322# define Q_INLINE_TEMPLATES inline
316# define Q_BROKEN_TEMPLATE_SPECIALIZATION 323# define Q_BROKEN_TEMPLATE_SPECIALIZATION
317# define Q_CANNOT_DELETE_CONSTANT 324# define Q_CANNOT_DELETE_CONSTANT
318# endif 325# endif
319 326
320/* Older versions of DEC C++ do not define __EDG__ or __EDG - observed 327/* Older versions of DEC C++ do not define __EDG__ or __EDG - observed
321 on DEC C++ V5.5-004. New versions do define __EDG__ - observed on 328 on DEC C++ V5.5-004. New versions do define __EDG__ - observed on
322 Compaq C++ V6.3-002. 329 Compaq C++ V6.3-002.
323 This compiler is different enough from other EDG compilers to handle 330 This compiler is different enough from other EDG compilers to handle
324 it separately anyway. */ 331 it separately anyway. */
325#elif defined(__DECCXX) 332#elif defined(__DECCXX)
326# define Q_CC_DEC 333# define Q_CC_DEC
327/* Compaq C++ V6 compilers are EDG-based but I'm not sure about older 334/* Compaq C++ V6 compilers are EDG-based but I'm not sure about older
328 DEC C++ V5 compilers. */ 335 DEC C++ V5 compilers. */
329# if defined(__EDG__) 336# if defined(__EDG__)
330# define Q_CC_EDG 337# define Q_CC_EDG
331# endif 338# endif
332/* Compaq have disabled EDG's _BOOL macro and use _BOOL_EXISTS instead 339/* Compaq have disabled EDG's _BOOL macro and use _BOOL_EXISTS instead
333 - observed on Compaq C++ V6.3-002. 340 - observed on Compaq C++ V6.3-002.
334 In any case versions prior to Compaq C++ V6.0-005 do not have bool. */ 341 In any case versions prior to Compaq C++ V6.0-005 do not have bool. */
335# if !defined(_BOOL_EXISTS) 342# if !defined(_BOOL_EXISTS)
336# define Q_NO_BOOL_TYPE 343# define Q_NO_BOOL_TYPE
337# endif 344# endif
338/* Spurious (?) error messages observed on Compaq C++ V6.5-014. */ 345/* Spurious (?) error messages observed on Compaq C++ V6.5-014. */
339# define Q_NO_USING_KEYWORD 346# define Q_NO_USING_KEYWORD
340/* Apply to all versions prior to Compaq C++ V6.0-000 - observed on 347/* Apply to all versions prior to Compaq C++ V6.0-000 - observed on
341 DEC C++ V5.5-004. */ 348 DEC C++ V5.5-004. */
342# if __DECCXX_VER < 60060000 349# if __DECCXX_VER < 60060000
343# define Q_TYPENAME 350# define Q_TYPENAME
344# define Q_BROKEN_TEMPLATE_SPECIALIZATION 351# define Q_BROKEN_TEMPLATE_SPECIALIZATION
345# define Q_CANNOT_DELETE_CONSTANT 352# define Q_CANNOT_DELETE_CONSTANT
346# endif 353# endif
347/* avoid undefined symbol problems with out-of-line template members */ 354/* avoid undefined symbol problems with out-of-line template members */
348# define Q_INLINE_TEMPLATES inline 355# define Q_INLINE_TEMPLATES inline
349 356