+ To keep wx authors from screwing this up, only enable __WXOSX_OR_COCOA__ for wxCocoa when
+ not compiling the base library. We determine this by first checking if
+ wxUSE_BASE is not defined. If it is not defined, then we're not buildling
+ the base library, and possibly not building wx at all (but actually building
+ user code that's using wx). If it is defined then we must check to make sure
+ it is not true. If it is true, we're building base.
+
+ If you want it in the common darwin base library then use __DARWIN__. You
+ can use any Darwin-available libraries like CoreFoundation but please avoid
+ using OS X libraries like Carbon or CoreServices.
+
+ */
+#if defined(__WXOSX__) || (defined(__WXCOCOA__) && (!defined(wxUSE_BASE) || !wxUSE_BASE))
+# define __WXOSX_OR_COCOA__ 1
+#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
+
+#ifdef __VMS
+#define XtDisplay XTDISPLAY
+#ifdef __WXMOTIF__
+#define XtParent XTPARENT
+#define XtScreen XTSCREEN
+#define XtWindow XTWINDOW
+#endif
+#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.
+ */
+#ifndef wxUSE_IDLEMENUUPDATES
+# if (defined(__WXMSW__) || defined(__WXGTK__)) && !defined(__WXUNIVERSAL__)
+# define wxUSE_IDLEMENUUPDATES 0
+# else
+# define wxUSE_IDLEMENUUPDATES 1
+# endif
+#endif
+
+/*
+ * Define symbols that are not yet in
+ * configure or possibly some setup.h files.
+ * They will need to be added.
+ */
+
+#ifndef wxUSE_FILECONFIG
+# if wxUSE_CONFIG && wxUSE_TEXTFILE
+# define wxUSE_FILECONFIG 1
+# else
+# define wxUSE_FILECONFIG 0
+# endif
+#endif
+
+#ifndef wxUSE_HOTKEY
+# define wxUSE_HOTKEY 0
+#endif
+
+#if !defined(wxUSE_WXDIB) && defined(__WXMSW__)
+# define wxUSE_WXDIB 1
+#endif
+
+#if defined (__WXPALMOS__)
+#include "wx/palmos/missing.h"
+#endif /* __WXPALMOS__ */
+
+#if !defined (__WXPALMOS5__)
+#define POSSEC_APPBASE
+#define POSSEC_ARCHIVE
+#define POSSEC_CLNTDATA
+#define POSSEC_CMDLINE
+#define POSSEC_CONFIG
+#define POSSEC_DATETIME
+#define POSSEC_DATETIME2
+#define POSSEC_DATSTRM
+#define POSSEC_DIRCMN
+#define POSSEC_DYNARRAY
+#define POSSEC_DYNLIB
+#define POSSEC_DYNLOAD
+#define POSSEC_ENCCONV
+#define POSSEC_EXTENDED
+#define POSSEC_FFILE
+#define POSSEC_FILE
+#define POSSEC_FILECONF
+#define POSSEC_FILEFN
+#endif /* __WXPALMOS5__ */
+
+/*
+ Optionally supported C++ features.
+ */
+
+/*
+ RTTI: if it is disabled in build/msw/makefile.* then this symbol will
+ already be defined but it's also possible to do it from configure (with
+ g++) or by editing project files with MSVC so test for it here too.
+ */
+#ifndef wxNO_RTTI
+ /*
+ Only 4.3 defines __GXX_RTTI by default so its absence is not an
+ indication of disabled RTTI with the previous versions.
+ */
+# if wxCHECK_GCC_VERSION(4, 3)
+# ifndef __GXX_RTTI
+# define wxNO_RTTI
+# endif
+# elif defined(_MSC_VER)
+# ifndef _CPPRTTI
+# define wxNO_RTTI
+# endif
+# endif
+#endif /* wxNO_RTTI */
+
+#endif /* _WX_PLATFORM_H_ */