*/
#if defined(HAVE_CONFIG_H) && HAVE_CONFIG_H
+#ifdef BUILDING_WITH_CMAKE
+#include "cmakeconfig.h"
+#else
#include "autotoolsconfig.h"
#endif
+#endif
#include <wtf/Platform.h>
-
-#if PLATFORM(WIN_OS) && !defined(BUILDING_WX__) && !COMPILER(GCC)
-#if defined(BUILDING_JavaScriptCore) || defined(BUILDING_WTF)
-#define JS_EXPORTDATA __declspec(dllexport)
-#else
-#define JS_EXPORTDATA __declspec(dllimport)
+#include <wtf/ExportMacros.h>
+// WTF cannot depend on JSC even if USE(JSC).
+#if USE(JSC) && !defined(BUILDING_WTF)
+#include "JSExportMacros.h"
+#elif PLATFORM(CHROMIUM)
+// Chromium doesn't have runtime/ in its include paths.
+#include "runtime/JSExportMacros.h"
#endif
-#else
-#define JS_EXPORTDATA
+
+#if OS(WINDOWS)
+
+#ifndef _WIN32_WINNT
+#define _WIN32_WINNT 0x0500
#endif
-#if PLATFORM(WIN_OS)
+#ifndef WINVER
+#define WINVER 0x0500
+#endif
// If we don't define these, they get defined in windef.h.
// We want to use std::min and std::max
#define max max
#define min min
-#if !COMPILER(MSVC7) && !PLATFORM(WINCE)
+#if !COMPILER(MSVC7_OR_LOWER) && !OS(WINCE)
// We need to define this before the first #include of stdlib.h or it won't contain rand_s.
#ifndef _CRT_RAND_S
#define _CRT_RAND_S
#endif
-#if PLATFORM(FREEBSD) || PLATFORM(OPENBSD)
-#define HAVE_PTHREAD_NP_H 1
-#endif
-
-/* FIXME: if all platforms have these, do they really need #defines? */
-#define HAVE_STDINT_H 1
-#define HAVE_STRING_H 1
-
#define WTF_CHANGES 1
#ifdef __cplusplus
#endif
// this breaks compilation of <QFontDatabase>, at least, so turn it off for now
-// Also generates errors on wx on Windows, because these functions
-// are used from wx headers.
-#if !PLATFORM(QT) && !PLATFORM(WX)
+// Also generates errors on wx on Windows and QNX, because these functions
+// are used from wx and QNX headers.
+#if !PLATFORM(QT) && !PLATFORM(WX) && !OS(QNX)
#include <wtf/DisallowCType.h>
#endif
+#if COMPILER(MSVC)
+#define SKIP_STATIC_CONSTRUCTORS_ON_MSVC 1
+#else
+#define SKIP_STATIC_CONSTRUCTORS_ON_GCC 1
+#endif