are included
*/
#ifdef __MWERKS__
-# include <stddef.h>
+# include <stddef.h>
#endif
/*
# if defined(__MACH__)
# define __WXMAC_OSX__
# define __WXMAC_CARBON__
+# include <AvailabilityMacros.h>
+# ifndef MAC_OS_X_VERSION_10_4
+# define MAC_OS_X_VERSION_10_4 1040
+# endif
+# ifndef MAC_OS_X_VERSION_10_5
+# define MAC_OS_X_VERSION_10_5 1050
+# endif
# ifdef __WXMAC_XCODE__
# include <unistd.h>
# include "wx/mac/carbon/config_xcode.h"
# endif
#endif
+#if defined(__POCKETPC__) || defined(__SMARTPHONE__) || defined(__WXGPE__)
+# define __WXHANDHELD__
+#endif
+
/*
Include wx/setup.h for the Unix platform defines generated by configure and
the library compilation options
#endif
+/* test for old versions of Borland C, need at least 5.82, Turbo explorer,
+ available for free at http://www.turboexplorer.com/downloads
+*/
+#if defined(__BORLANDC__) && (__BORLANDC__ < 0x582)
+#error "This version of wxWidgets requires at least Borland 5.82 (Turbo Explorer); You may at your own risk remove this line and try your system"
+#endif /* __BORLANDC__ */
+
+
/*
This macro can be used to test the Open Watcom version.
*/
# define wxONLY_WATCOM_EARLIER_THAN(major,minor) ( __WATCOMC__ < wxWATCOM_VERSION(major,minor) )
#endif
-/*
- check the consistency of the settings in setup.h: note that this must be
- done after setting wxUSE_UNICODE correctly as it is used in wx/chkconf.h
- */
-#include "wx/chkconf.h"
-
-
-/*
- some compilers don't support iostream.h any longer, while some of theme
- are not updated with <iostream> yet, so override the users setting here
- in such case.
- */
-#if defined(_MSC_VER) && (_MSC_VER >= 1310)
-# undef wxUSE_IOSTREAMH
-# define wxUSE_IOSTREAMH 0
-#elif defined(__DMC__) || defined(__WATCOMC__)
-# undef wxUSE_IOSTREAMH
-# define wxUSE_IOSTREAMH 1
-#elif defined(__MINGW32__)
-# undef wxUSE_IOSTREAMH
-# define wxUSE_IOSTREAMH 0
-#endif /* compilers with/without iostream.h */
-
-/*
- old C++ headers (like <iostream.h>) declare classes in the global namespace
- while the new, standard ones (like <iostream>) do it in std:: namespace,
- unless it's an old gcc version.
-
- using this macro allows constuctions like "wxSTD iostream" to work in
- either case
- */
-#if !wxUSE_IOSTREAMH && (!defined(__GNUC__) || ( __GNUC__ > 2 ) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))
-# define wxSTD std::
-#else
-# define wxSTD
-#endif
-
/*
OS: first of all, test for MS-DOS platform. We must do this before testing
for Unix, because DJGPP compiler defines __unix__ under MS-DOS
# endif
# endif /* SGI */
-# if defined(sun) || defined(__SUN__)
-# ifndef __GNUG__
-# ifndef __SUNCC__
-# define __SUNCC__
-# endif /* Sun CC */
-# endif
-# endif /* Sun */
+# if defined(__SUNPRO_CC)
+# ifndef __SUNCC__
+# define __SUNCC__ __SUNPRO_CC
+# endif /* Sun CC */
+# endif /* Sun CC */
# ifdef __EMX__
# define OS2EMX_PLAIN_CHAR
... no gcc at all or gcc < 3.1 ...
# endif
*/
-#define wxCHECK_GCC_VERSION( major, minor ) \
- ( defined(__GNUC__) && defined(__GNUC_MINOR__) \
- && ( ( __GNUC__ > (major) ) \
- || ( __GNUC__ == (major) && __GNUC_MINOR__ >= (minor) ) ) )
+#if defined(__GNUC__) && defined(__GNUC_MINOR__)
+ #define wxCHECK_GCC_VERSION( major, minor ) \
+ ( ( __GNUC__ > (major) ) \
+ || ( __GNUC__ == (major) && __GNUC_MINOR__ >= (minor) ) )
+#else
+ #define wxCHECK_GCC_VERSION( major, minor ) 0
+#endif
+
+#if defined(__BORLANDC__) || (defined(__GNUC__) && __GNUC__ < 3)
+#define wxNEEDS_CHARPP
+#endif
/*
This macro can be used to check that the version of mingw32 compiler is
# define wxCHECK_W32API_VERSION(maj, min) (0)
#endif
+/**
+ This is similar to wxCHECK_GCC_VERSION but for Sun CC compiler.
+ */
+#ifdef __SUNCC__
+ /*
+ __SUNCC__ is 0xVRP where V is major version, R release and P patch level
+ */
+ #define wxCHECK_SUNCC_VERSION(maj, min) (__SUNCC__ >= (((maj)<<8) | ((min)<<4)))
+#else
+ #define wxCHECK_SUNCC_VERSION(maj, min) (0)
+#endif
+
#if defined (__WXMSW__)
# if !defined(__WATCOMC__)
# define wxHAVE_RAW_BITMAP
# endif
#endif
+/*
+ check the consistency of the settings in setup.h: note that this must be
+ done after setting wxUSE_UNICODE correctly as it is used in wx/chkconf.h
+ and after defining the compiler macros which are used in it too
+ */
+#include "wx/chkconf.h"
+
+
+/*
+ some compilers don't support iostream.h any longer, while some of theme
+ are not updated with <iostream> yet, so override the users setting here
+ in such case.
+ */
+#if defined(_MSC_VER) && (_MSC_VER >= 1310)
+# undef wxUSE_IOSTREAMH
+# define wxUSE_IOSTREAMH 0
+#elif defined(__DMC__) || defined(__WATCOMC__)
+# undef wxUSE_IOSTREAMH
+# define wxUSE_IOSTREAMH 1
+#elif defined(__MINGW32__)
+# undef wxUSE_IOSTREAMH
+# define wxUSE_IOSTREAMH 0
+#endif /* compilers with/without iostream.h */
+
+/*
+ old C++ headers (like <iostream.h>) declare classes in the global namespace
+ while the new, standard ones (like <iostream>) do it in std:: namespace,
+ unless it's an old gcc version.
+
+ using this macro allows constuctions like "wxSTD iostream" to work in
+ either case
+ */
+#if !wxUSE_IOSTREAMH && (!defined(__GNUC__) || ( __GNUC__ > 2 ) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))
+# define wxSTD std::
+#else
+# define wxSTD
+#endif
+
+/* On OpenVMS with the most recent HP C++ compiler some function (i.e. wscanf)
+ * are only available in the std-namespace. (BUG???)
+ */
+#if defined( __VMS ) && (__DECCXX_VER >= 70100000) && !defined(__STD_CFRONT) && !defined( __NONAMESPACE_STD )
+# define wxVMS_USE_STD std::
+#else
+# define wxVMS_USE_STD
+#endif
+
/* Choose which method we will use for updating menus
* - in OnIdle, or when we receive a wxEVT_MENU_OPEN event.
* Presently, only Windows and GTK+ support wxEVT_MENU_OPEN.