18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 2635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 30bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * Copyright (C) 2007-2009 Torch Mobile, Inc. 46c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * Copyright (C) Research In Motion Limited 2010. All rights reserved. 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met: 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer. 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation and/or other materials provided with the distribution. 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef WTF_Platform_h 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define WTF_Platform_h 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 31d0825bca7fe65beaee391d30da42e937db621564Steve Block/* ==== PLATFORM handles OS, operating environment, graphics API, and 32d0825bca7fe65beaee391d30da42e937db621564Steve Block CPU. This macro will be phased out in favor of platform adaptation 33d0825bca7fe65beaee391d30da42e937db621564Steve Block macros, policy decision macros, and top-level port definitions. ==== */ 340bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#define PLATFORM(WTF_FEATURE) (defined WTF_PLATFORM_##WTF_FEATURE && WTF_PLATFORM_##WTF_FEATURE) 35d0825bca7fe65beaee391d30da42e937db621564Steve Block 36d0825bca7fe65beaee391d30da42e937db621564Steve Block 37d0825bca7fe65beaee391d30da42e937db621564Steve Block/* ==== Platform adaptation macros: these describe properties of the target environment. ==== */ 38d0825bca7fe65beaee391d30da42e937db621564Steve Block 39d0825bca7fe65beaee391d30da42e937db621564Steve Block/* COMPILER() - the compiler being used to build the project */ 400bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#define COMPILER(WTF_FEATURE) (defined WTF_COMPILER_##WTF_FEATURE && WTF_COMPILER_##WTF_FEATURE) 41d0825bca7fe65beaee391d30da42e937db621564Steve Block/* CPU() - the target CPU architecture */ 42d0825bca7fe65beaee391d30da42e937db621564Steve Block#define CPU(WTF_FEATURE) (defined WTF_CPU_##WTF_FEATURE && WTF_CPU_##WTF_FEATURE) 43d0825bca7fe65beaee391d30da42e937db621564Steve Block/* HAVE() - specific system features (headers, functions or similar) that are present or not */ 440bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#define HAVE(WTF_FEATURE) (defined HAVE_##WTF_FEATURE && HAVE_##WTF_FEATURE) 45d0825bca7fe65beaee391d30da42e937db621564Steve Block/* OS() - underlying operating system; only to be used for mandated low-level services like 46d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual memory, not to choose a GUI toolkit */ 47d0825bca7fe65beaee391d30da42e937db621564Steve Block#define OS(WTF_FEATURE) (defined WTF_OS_##WTF_FEATURE && WTF_OS_##WTF_FEATURE) 48d0825bca7fe65beaee391d30da42e937db621564Steve Block 49d0825bca7fe65beaee391d30da42e937db621564Steve Block 50d0825bca7fe65beaee391d30da42e937db621564Steve Block/* ==== Policy decision macros: these define policy choices for a particular port. ==== */ 51d0825bca7fe65beaee391d30da42e937db621564Steve Block 52d0825bca7fe65beaee391d30da42e937db621564Steve Block/* USE() - use a particular third-party library or optional OS service */ 530bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#define USE(WTF_FEATURE) (defined WTF_USE_##WTF_FEATURE && WTF_USE_##WTF_FEATURE) 54d0825bca7fe65beaee391d30da42e937db621564Steve Block/* ENABLE() - turn on a specific feature of WebKit */ 550bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#define ENABLE(WTF_FEATURE) (defined ENABLE_##WTF_FEATURE && ENABLE_##WTF_FEATURE) 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 58d0825bca7fe65beaee391d30da42e937db621564Steve Block 59d0825bca7fe65beaee391d30da42e937db621564Steve Block/* ==== COMPILER() - the compiler being used to build the project ==== */ 60d0825bca7fe65beaee391d30da42e937db621564Steve Block 61d0825bca7fe65beaee391d30da42e937db621564Steve Block/* COMPILER(MSVC) Microsoft Visual C++ */ 6221939df44de1705786c545cd1bf519d47250322dBen Murdoch/* COMPILER(MSVC7_OR_LOWER) Microsoft Visual C++ 2003 or lower*/ 6321939df44de1705786c545cd1bf519d47250322dBen Murdoch/* COMPILER(MSVC9_OR_LOWER) Microsoft Visual C++ 2008 or lower*/ 64d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(_MSC_VER) 65d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_COMPILER_MSVC 1 66d0825bca7fe65beaee391d30da42e937db621564Steve Block#if _MSC_VER < 1400 6721939df44de1705786c545cd1bf519d47250322dBen Murdoch#define WTF_COMPILER_MSVC7_OR_LOWER 1 6821939df44de1705786c545cd1bf519d47250322dBen Murdoch#elif _MSC_VER < 1600 6921939df44de1705786c545cd1bf519d47250322dBen Murdoch#define WTF_COMPILER_MSVC9_OR_LOWER 1 70d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 71d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 72d0825bca7fe65beaee391d30da42e937db621564Steve Block 73d0825bca7fe65beaee391d30da42e937db621564Steve Block/* COMPILER(RVCT) - ARM RealView Compilation Tools */ 74cad810f21b803229eb11403f9209855525a25d57Steve Block/* COMPILER(RVCT4_OR_GREATER) - ARM RealView Compilation Tools 4.0 or greater */ 75d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(__CC_ARM) || defined(__ARMCC__) 76d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_COMPILER_RVCT 1 7765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define RVCT_VERSION_AT_LEAST(major, minor, patch, build) (__ARMCC_VERSION >= (major * 100000 + minor * 10000 + patch * 1000 + build)) 7865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#else 7965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch/* Define this for !RVCT compilers, just so we can write things like RVCT_VERSION_AT_LEAST(3, 0, 0, 0). */ 8065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define RVCT_VERSION_AT_LEAST(major, minor, patch, build) 0 81d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 82d0825bca7fe65beaee391d30da42e937db621564Steve Block 83d0825bca7fe65beaee391d30da42e937db621564Steve Block/* COMPILER(GCC) - GNU Compiler Collection */ 84d0825bca7fe65beaee391d30da42e937db621564Steve Block/* --gnu option of the RVCT compiler also defines __GNUC__ */ 85d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(__GNUC__) && !COMPILER(RVCT) 86d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_COMPILER_GCC 1 87d0825bca7fe65beaee391d30da42e937db621564Steve Block#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) 880617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen#define GCC_VERSION_AT_LEAST(major, minor, patch) (GCC_VERSION >= (major * 10000 + minor * 100 + patch)) 890617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen#else 9065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch/* Define this for !GCC compilers, just so we can write things like GCC_VERSION_AT_LEAST(4, 1, 0). */ 910617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen#define GCC_VERSION_AT_LEAST(major, minor, patch) 0 92d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 93d0825bca7fe65beaee391d30da42e937db621564Steve Block 94d0825bca7fe65beaee391d30da42e937db621564Steve Block/* COMPILER(MINGW) - MinGW GCC */ 95dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/* COMPILER(MINGW64) - mingw-w64 GCC - only used as additional check to exclude mingw.org specific functions */ 96dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#if defined(__MINGW32__) 97d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_COMPILER_MINGW 1 98dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include <_mingw.h> /* private MinGW header */ 99dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block #if defined(__MINGW64_VERSION_MAJOR) /* best way to check for mingw-w64 vs mingw.org */ 100dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block #define WTF_COMPILER_MINGW64 1 101dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block #endif /* __MINGW64_VERSION_MAJOR */ 102dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif /* __MINGW32__ */ 103d0825bca7fe65beaee391d30da42e937db621564Steve Block 104d0825bca7fe65beaee391d30da42e937db621564Steve Block/* COMPILER(WINSCW) - CodeWarrior for Symbian emulator */ 105d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(__WINSCW__) 106d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_COMPILER_WINSCW 1 107dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/* cross-compiling, it is not really windows */ 108dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#undef WIN32 109dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#undef _WIN32 110d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 111d0825bca7fe65beaee391d30da42e937db621564Steve Block 11206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen/* COMPILER(INTEL) - Intel C++ Compiler */ 11306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#if defined(__INTEL_COMPILER) 11406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#define WTF_COMPILER_INTEL 1 11506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#endif 116d0825bca7fe65beaee391d30da42e937db621564Steve Block 1172bde8e466a4451c7319e3a072d118917957d6554Steve Block/* COMPILER(SUNCC) */ 1182bde8e466a4451c7319e3a072d118917957d6554Steve Block#if defined(__SUNPRO_CC) || defined(__SUNPRO_C) 1192bde8e466a4451c7319e3a072d118917957d6554Steve Block#define WTF_COMPILER_SUNCC 1 1202bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif 1212bde8e466a4451c7319e3a072d118917957d6554Steve Block 122d0825bca7fe65beaee391d30da42e937db621564Steve Block/* ==== CPU() - the target CPU architecture ==== */ 123d0825bca7fe65beaee391d30da42e937db621564Steve Block 124d0825bca7fe65beaee391d30da42e937db621564Steve Block/* This also defines CPU(BIG_ENDIAN) or CPU(MIDDLE_ENDIAN) or neither, as appropriate. */ 125d0825bca7fe65beaee391d30da42e937db621564Steve Block 126d0825bca7fe65beaee391d30da42e937db621564Steve Block/* CPU(ALPHA) - DEC Alpha */ 127d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(__alpha__) 128d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_CPU_ALPHA 1 129d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 130d0825bca7fe65beaee391d30da42e937db621564Steve Block 131d0825bca7fe65beaee391d30da42e937db621564Steve Block/* CPU(IA64) - Itanium / IA-64 */ 132d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(__ia64__) 133d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_CPU_IA64 1 134dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/* 32-bit mode on Itanium */ 135dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#if !defined(__LP64__) 136dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define WTF_CPU_IA64_32 1 137dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif 138dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif 139dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 140dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/* CPU(MIPS) - MIPS 32-bit */ 141dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/* Note: Only O32 ABI is tested, so we enable it for O32 ABI for now. */ 142cad810f21b803229eb11403f9209855525a25d57Steve Block#if (defined(mips) || defined(__mips__) || defined(MIPS) || defined(_MIPS_)) \ 143dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block && defined(_ABIO32) 144dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define WTF_CPU_MIPS 1 145dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#if defined(__MIPSEB__) 146dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define WTF_CPU_BIG_ENDIAN 1 147d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 148dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define WTF_MIPS_PIC (defined __PIC__) 149dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define WTF_MIPS_ARCH __mips 150dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define WTF_MIPS_ISA(v) (defined WTF_MIPS_ARCH && WTF_MIPS_ARCH == v) 151dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define WTF_MIPS_ISA_AT_LEAST(v) (defined WTF_MIPS_ARCH && WTF_MIPS_ARCH >= v) 152dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define WTF_MIPS_ARCH_REV __mips_isa_rev 153dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define WTF_MIPS_ISA_REV(v) (defined WTF_MIPS_ARCH_REV && WTF_MIPS_ARCH_REV == v) 154dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define WTF_MIPS_DOUBLE_FLOAT (defined __mips_hard_float && !defined __mips_single_float) 1555abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick#define WTF_MIPS_FP64 (defined __mips_fpr && __mips_fpr == 64) 156dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch/* MIPS requires allocators to use aligned memory */ 157dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#define WTF_USE_ARENA_ALLOC_ALIGNMENT_INTEGER 1 158dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif /* MIPS */ 159d0825bca7fe65beaee391d30da42e937db621564Steve Block 160d0825bca7fe65beaee391d30da42e937db621564Steve Block/* CPU(PPC) - PowerPC 32-bit */ 161d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(__ppc__) \ 162d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__PPC__) \ 163d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__powerpc__) \ 164d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__powerpc) \ 165d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__POWERPC__) \ 166d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(_M_PPC) \ 167d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__PPC) 168d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_CPU_PPC 1 169d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_CPU_BIG_ENDIAN 1 170d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 171d0825bca7fe65beaee391d30da42e937db621564Steve Block 172d0825bca7fe65beaee391d30da42e937db621564Steve Block/* CPU(PPC64) - PowerPC 64-bit */ 173d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(__ppc64__) \ 174d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__PPC64__) 175d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_CPU_PPC64 1 176d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_CPU_BIG_ENDIAN 1 177d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 178d0825bca7fe65beaee391d30da42e937db621564Steve Block 179d0825bca7fe65beaee391d30da42e937db621564Steve Block/* CPU(SH4) - SuperH SH-4 */ 180d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(__SH4__) 181d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_CPU_SH4 1 182d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 183d0825bca7fe65beaee391d30da42e937db621564Steve Block 184d0825bca7fe65beaee391d30da42e937db621564Steve Block/* CPU(SPARC32) - SPARC 32-bit */ 185d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(__sparc) && !defined(__arch64__) || defined(__sparcv8) 186d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_CPU_SPARC32 1 187d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_CPU_BIG_ENDIAN 1 188d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 189d0825bca7fe65beaee391d30da42e937db621564Steve Block 190d0825bca7fe65beaee391d30da42e937db621564Steve Block/* CPU(SPARC64) - SPARC 64-bit */ 191d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(__sparc__) && defined(__arch64__) || defined (__sparcv9) 192d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_CPU_SPARC64 1 193d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_CPU_BIG_ENDIAN 1 194d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 195d0825bca7fe65beaee391d30da42e937db621564Steve Block 196d0825bca7fe65beaee391d30da42e937db621564Steve Block/* CPU(SPARC) - any SPARC, true for CPU(SPARC32) and CPU(SPARC64) */ 197d0825bca7fe65beaee391d30da42e937db621564Steve Block#if CPU(SPARC32) || CPU(SPARC64) 198dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define WTF_CPU_SPARC 1 199d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 200d0825bca7fe65beaee391d30da42e937db621564Steve Block 2016b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner/* CPU(S390X) - S390 64-bit */ 2026b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#if defined(__s390x__) 2036b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#define WTF_CPU_S390X 1 2046b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#define WTF_CPU_BIG_ENDIAN 1 2056b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#endif 2066b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner 2076b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner/* CPU(S390) - S390 32-bit */ 2086b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#if defined(__s390__) 2096b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#define WTF_CPU_S390 1 2106b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#define WTF_CPU_BIG_ENDIAN 1 2116b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#endif 2126b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner 213d0825bca7fe65beaee391d30da42e937db621564Steve Block/* CPU(X86) - i386 / x86 32-bit */ 214d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(__i386__) \ 215d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(i386) \ 216d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(_M_IX86) \ 217d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(_X86_) \ 218d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__THW_INTEL) 219d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_CPU_X86 1 220d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 221d0825bca7fe65beaee391d30da42e937db621564Steve Block 222d0825bca7fe65beaee391d30da42e937db621564Steve Block/* CPU(X86_64) - AMD64 / Intel64 / x86_64 64-bit */ 223d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(__x86_64__) \ 224d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(_M_X64) 225d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_CPU_X86_64 1 226d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 227d0825bca7fe65beaee391d30da42e937db621564Steve Block 228d0825bca7fe65beaee391d30da42e937db621564Steve Block/* CPU(ARM) - ARM, any version*/ 229d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(arm) \ 230dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block || defined(__arm__) \ 231dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block || defined(ARM) \ 232dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block || defined(_ARM_) 233d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_CPU_ARM 1 234d0825bca7fe65beaee391d30da42e937db621564Steve Block 235e14391e94c850b8bd03680c23b38978db68687a8John Reck#if defined(__ARMEB__) || (COMPILER(RVCT) && defined(__BIG_ENDIAN)) 236d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_CPU_BIG_ENDIAN 1 237d0825bca7fe65beaee391d30da42e937db621564Steve Block 238d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif !defined(__ARM_EABI__) \ 239d0825bca7fe65beaee391d30da42e937db621564Steve Block && !defined(__EABI__) \ 240d0825bca7fe65beaee391d30da42e937db621564Steve Block && !defined(__VFP_FP__) \ 241dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block && !defined(_WIN32_WCE) \ 242d0825bca7fe65beaee391d30da42e937db621564Steve Block && !defined(ANDROID) 243d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_CPU_MIDDLE_ENDIAN 1 244d0825bca7fe65beaee391d30da42e937db621564Steve Block 245d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 246d0825bca7fe65beaee391d30da42e937db621564Steve Block 247d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_ARM_ARCH_AT_LEAST(N) (CPU(ARM) && WTF_ARM_ARCH_VERSION >= N) 248d0825bca7fe65beaee391d30da42e937db621564Steve Block 249d0825bca7fe65beaee391d30da42e937db621564Steve Block/* Set WTF_ARM_ARCH_VERSION */ 250d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(__ARM_ARCH_4__) \ 251d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_4T__) \ 252d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__MARM_ARMV4__) \ 253d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(_ARMV4I_) 254d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_ARM_ARCH_VERSION 4 255d0825bca7fe65beaee391d30da42e937db621564Steve Block 256d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif defined(__ARM_ARCH_5__) \ 257d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_5T__) \ 258d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__MARM_ARMV5__) 259d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_ARM_ARCH_VERSION 5 260d0825bca7fe65beaee391d30da42e937db621564Steve Block 2616c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#elif defined(__ARM_ARCH_5E__) \ 2626c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen || defined(__ARM_ARCH_5TE__) \ 2636c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen || defined(__ARM_ARCH_5TEJ__) 2646c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#define WTF_ARM_ARCH_VERSION 5 2656c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen/*ARMv5TE requires allocators to use aligned memory*/ 2666c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#define WTF_USE_ARENA_ALLOC_ALIGNMENT_INTEGER 1 2676c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 268d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif defined(__ARM_ARCH_6__) \ 269d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_6J__) \ 270d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_6K__) \ 271d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_6Z__) \ 272d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_6ZK__) \ 273d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_6T2__) \ 274d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARMV6__) 275d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_ARM_ARCH_VERSION 6 276d0825bca7fe65beaee391d30da42e937db621564Steve Block 277d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif defined(__ARM_ARCH_7A__) \ 278d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_7R__) 279d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_ARM_ARCH_VERSION 7 280d0825bca7fe65beaee391d30da42e937db621564Steve Block 281d0825bca7fe65beaee391d30da42e937db621564Steve Block/* RVCT sets _TARGET_ARCH_ARM */ 282d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif defined(__TARGET_ARCH_ARM) 283d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_ARM_ARCH_VERSION __TARGET_ARCH_ARM 284d0825bca7fe65beaee391d30da42e937db621564Steve Block 2856c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#if defined(__TARGET_ARCH_5E) \ 2866c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen || defined(__TARGET_ARCH_5TE) \ 2876c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen || defined(__TARGET_ARCH_5TEJ) 2886c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen/*ARMv5TE requires allocators to use aligned memory*/ 2896c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#define WTF_USE_ARENA_ALLOC_ALIGNMENT_INTEGER 1 2906c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#endif 2916c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 292d0825bca7fe65beaee391d30da42e937db621564Steve Block#else 293d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_ARM_ARCH_VERSION 0 294d0825bca7fe65beaee391d30da42e937db621564Steve Block 295d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 296d0825bca7fe65beaee391d30da42e937db621564Steve Block 297d0825bca7fe65beaee391d30da42e937db621564Steve Block/* Set WTF_THUMB_ARCH_VERSION */ 298d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(__ARM_ARCH_4T__) 299d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_THUMB_ARCH_VERSION 1 300d0825bca7fe65beaee391d30da42e937db621564Steve Block 301d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif defined(__ARM_ARCH_5T__) \ 302d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_5TE__) \ 303d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_5TEJ__) 304d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_THUMB_ARCH_VERSION 2 305d0825bca7fe65beaee391d30da42e937db621564Steve Block 306d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif defined(__ARM_ARCH_6J__) \ 307d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_6K__) \ 308d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_6Z__) \ 309d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_6ZK__) \ 310d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_6M__) 311d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_THUMB_ARCH_VERSION 3 312d0825bca7fe65beaee391d30da42e937db621564Steve Block 313d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif defined(__ARM_ARCH_6T2__) \ 314d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_7__) \ 315d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_7A__) \ 316d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_7R__) \ 317d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__ARM_ARCH_7M__) 318d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_THUMB_ARCH_VERSION 4 319d0825bca7fe65beaee391d30da42e937db621564Steve Block 320d0825bca7fe65beaee391d30da42e937db621564Steve Block/* RVCT sets __TARGET_ARCH_THUMB */ 321d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif defined(__TARGET_ARCH_THUMB) 322d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_THUMB_ARCH_VERSION __TARGET_ARCH_THUMB 323d0825bca7fe65beaee391d30da42e937db621564Steve Block 324d0825bca7fe65beaee391d30da42e937db621564Steve Block#else 325d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_THUMB_ARCH_VERSION 0 326d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 327d0825bca7fe65beaee391d30da42e937db621564Steve Block 328d0825bca7fe65beaee391d30da42e937db621564Steve Block 329d0825bca7fe65beaee391d30da42e937db621564Steve Block/* CPU(ARMV5_OR_LOWER) - ARM instruction set v5 or earlier */ 330d0825bca7fe65beaee391d30da42e937db621564Steve Block/* On ARMv5 and below the natural alignment is required. 331d0825bca7fe65beaee391d30da42e937db621564Steve Block And there are some other differences for v5 or earlier. */ 332d0825bca7fe65beaee391d30da42e937db621564Steve Block#if !defined(ARMV5_OR_LOWER) && !WTF_ARM_ARCH_AT_LEAST(6) 333d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_CPU_ARMV5_OR_LOWER 1 334d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 335d0825bca7fe65beaee391d30da42e937db621564Steve Block 336d0825bca7fe65beaee391d30da42e937db621564Steve Block 337d0825bca7fe65beaee391d30da42e937db621564Steve Block/* CPU(ARM_TRADITIONAL) - Thumb2 is not available, only traditional ARM (v4 or greater) */ 338d0825bca7fe65beaee391d30da42e937db621564Steve Block/* CPU(ARM_THUMB2) - Thumb2 instruction set is available */ 339d0825bca7fe65beaee391d30da42e937db621564Steve Block/* Only one of these will be defined. */ 340d0825bca7fe65beaee391d30da42e937db621564Steve Block#if !defined(WTF_CPU_ARM_TRADITIONAL) && !defined(WTF_CPU_ARM_THUMB2) 341d0825bca7fe65beaee391d30da42e937db621564Steve Block# if defined(thumb2) || defined(__thumb2__) \ 342d0825bca7fe65beaee391d30da42e937db621564Steve Block || ((defined(__thumb) || defined(__thumb__)) && WTF_THUMB_ARCH_VERSION == 4) 343d0825bca7fe65beaee391d30da42e937db621564Steve Block# define WTF_CPU_ARM_TRADITIONAL 0 344d0825bca7fe65beaee391d30da42e937db621564Steve Block# define WTF_CPU_ARM_THUMB2 1 345d0825bca7fe65beaee391d30da42e937db621564Steve Block# elif WTF_ARM_ARCH_AT_LEAST(4) 346d0825bca7fe65beaee391d30da42e937db621564Steve Block# define WTF_CPU_ARM_TRADITIONAL 1 347d0825bca7fe65beaee391d30da42e937db621564Steve Block# define WTF_CPU_ARM_THUMB2 0 348d0825bca7fe65beaee391d30da42e937db621564Steve Block# else 349d0825bca7fe65beaee391d30da42e937db621564Steve Block# error "Not supported ARM architecture" 350d0825bca7fe65beaee391d30da42e937db621564Steve Block# endif 351d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif CPU(ARM_TRADITIONAL) && CPU(ARM_THUMB2) /* Sanity Check */ 352d0825bca7fe65beaee391d30da42e937db621564Steve Block# error "Cannot use both of WTF_CPU_ARM_TRADITIONAL and WTF_CPU_ARM_THUMB2 platforms" 353d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif /* !defined(WTF_CPU_ARM_TRADITIONAL) && !defined(WTF_CPU_ARM_THUMB2) */ 354d0825bca7fe65beaee391d30da42e937db621564Steve Block 3552daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#if defined(__ARM_NEON__) && !defined(WTF_CPU_ARM_NEON) 3562daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#define WTF_CPU_ARM_NEON 1 3572daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#endif 3582daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 359d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif /* ARM */ 360d0825bca7fe65beaee391d30da42e937db621564Steve Block 36181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#if CPU(ARM) || CPU(MIPS) 36281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#define WTF_CPU_NEEDS_ALIGNED_ACCESS 1 36381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#endif 364d0825bca7fe65beaee391d30da42e937db621564Steve Block 365d0825bca7fe65beaee391d30da42e937db621564Steve Block/* ==== OS() - underlying operating system; only to be used for mandated low-level services like 366d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual memory, not to choose a GUI toolkit ==== */ 367d0825bca7fe65beaee391d30da42e937db621564Steve Block 368d0825bca7fe65beaee391d30da42e937db621564Steve Block/* OS(ANDROID) - Android */ 369d0825bca7fe65beaee391d30da42e937db621564Steve Block#ifdef ANDROID 370d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_OS_ANDROID 1 371d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 372d0825bca7fe65beaee391d30da42e937db621564Steve Block 373d0825bca7fe65beaee391d30da42e937db621564Steve Block/* OS(AIX) - AIX */ 374d0825bca7fe65beaee391d30da42e937db621564Steve Block#ifdef _AIX 375d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_OS_AIX 1 376d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 377d0825bca7fe65beaee391d30da42e937db621564Steve Block 378d0825bca7fe65beaee391d30da42e937db621564Steve Block/* OS(DARWIN) - Any Darwin-based OS, including Mac OS X and iPhone OS */ 3798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef __APPLE__ 380d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_OS_DARWIN 1 381d0825bca7fe65beaee391d30da42e937db621564Steve Block 382d0825bca7fe65beaee391d30da42e937db621564Steve Block/* FIXME: BUILDING_ON_.., and TARGETING... macros should be folded into the OS() system */ 3838f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#include <AvailabilityMacros.h> 3848f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#if !defined(MAC_OS_X_VERSION_10_5) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5 3858f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#define BUILDING_ON_TIGER 1 3868f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#elif !defined(MAC_OS_X_VERSION_10_6) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6 3878f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#define BUILDING_ON_LEOPARD 1 388d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif !defined(MAC_OS_X_VERSION_10_7) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7 389d0825bca7fe65beaee391d30da42e937db621564Steve Block#define BUILDING_ON_SNOW_LEOPARD 1 3908f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#endif 391643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#if !defined(MAC_OS_X_VERSION_10_5) || MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5 392643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#define TARGETING_TIGER 1 393643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#elif !defined(MAC_OS_X_VERSION_10_6) || MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6 394643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#define TARGETING_LEOPARD 1 395d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif !defined(MAC_OS_X_VERSION_10_7) || MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7 396d0825bca7fe65beaee391d30da42e937db621564Steve Block#define TARGETING_SNOW_LEOPARD 1 397643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#endif 3985f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#include <TargetConditionals.h> 399d0825bca7fe65beaee391d30da42e937db621564Steve Block 4008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 4018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 402dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch/* OS(IOS) - iOS */ 403dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch/* OS(MAC_OS_X) - Mac OS X (not including iOS) */ 404d0825bca7fe65beaee391d30da42e937db621564Steve Block#if OS(DARWIN) && ((defined(TARGET_OS_EMBEDDED) && TARGET_OS_EMBEDDED) \ 405d0825bca7fe65beaee391d30da42e937db621564Steve Block || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) \ 406d0825bca7fe65beaee391d30da42e937db621564Steve Block || (defined(TARGET_IPHONE_SIMULATOR) && TARGET_IPHONE_SIMULATOR)) 407dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#define WTF_OS_IOS 1 408d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif OS(DARWIN) && defined(TARGET_OS_MAC) && TARGET_OS_MAC 409d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_OS_MAC_OS_X 1 4108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 4118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 412d0825bca7fe65beaee391d30da42e937db621564Steve Block/* OS(FREEBSD) - FreeBSD */ 41381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#if defined(__FreeBSD__) || defined(__DragonFly__) 414d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_OS_FREEBSD 1 4158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 4168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 417d0825bca7fe65beaee391d30da42e937db621564Steve Block/* OS(HAIKU) - Haiku */ 418d0825bca7fe65beaee391d30da42e937db621564Steve Block#ifdef __HAIKU__ 419d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_OS_HAIKU 1 420d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 421d0825bca7fe65beaee391d30da42e937db621564Steve Block 422d0825bca7fe65beaee391d30da42e937db621564Steve Block/* OS(LINUX) - Linux */ 4235f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#ifdef __linux__ 424d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_OS_LINUX 1 4255f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#endif 4265f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 427d0825bca7fe65beaee391d30da42e937db621564Steve Block/* OS(NETBSD) - NetBSD */ 428d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(__NetBSD__) 429a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#define WTF_OS_NETBSD 1 4308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 4318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 432d0825bca7fe65beaee391d30da42e937db621564Steve Block/* OS(OPENBSD) - OpenBSD */ 4338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef __OpenBSD__ 434d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_OS_OPENBSD 1 4358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 4368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 437d0825bca7fe65beaee391d30da42e937db621564Steve Block/* OS(QNX) - QNX */ 438d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(__QNXNTO__) 439d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_OS_QNX 1 4408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 4418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 442d0825bca7fe65beaee391d30da42e937db621564Steve Block/* OS(SOLARIS) - Solaris */ 443d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(sun) || defined(__sun) 444d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_OS_SOLARIS 1 445635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#endif 446635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 447d0825bca7fe65beaee391d30da42e937db621564Steve Block/* OS(WINCE) - Windows CE; note that for this platform OS(WINDOWS) is also defined */ 448d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(_WIN32_WCE) 449d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_OS_WINCE 1 450d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 451635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 452d0825bca7fe65beaee391d30da42e937db621564Steve Block/* OS(WINDOWS) - Any version of Windows */ 453d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined(WIN32) || defined(_WIN32) 454d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_OS_WINDOWS 1 455635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#endif 456635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 457d0825bca7fe65beaee391d30da42e937db621564Steve Block/* OS(SYMBIAN) - Symbian */ 458d0825bca7fe65beaee391d30da42e937db621564Steve Block#if defined (__SYMBIAN32__) 459d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_OS_SYMBIAN 1 460d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 461d0825bca7fe65beaee391d30da42e937db621564Steve Block 462d0825bca7fe65beaee391d30da42e937db621564Steve Block/* OS(UNIX) - Any Unix-like system */ 463d0825bca7fe65beaee391d30da42e937db621564Steve Block#if OS(AIX) \ 464d0825bca7fe65beaee391d30da42e937db621564Steve Block || OS(ANDROID) \ 465d0825bca7fe65beaee391d30da42e937db621564Steve Block || OS(DARWIN) \ 466d0825bca7fe65beaee391d30da42e937db621564Steve Block || OS(FREEBSD) \ 467d0825bca7fe65beaee391d30da42e937db621564Steve Block || OS(HAIKU) \ 468d0825bca7fe65beaee391d30da42e937db621564Steve Block || OS(LINUX) \ 469d0825bca7fe65beaee391d30da42e937db621564Steve Block || OS(NETBSD) \ 470d0825bca7fe65beaee391d30da42e937db621564Steve Block || OS(OPENBSD) \ 471d0825bca7fe65beaee391d30da42e937db621564Steve Block || OS(QNX) \ 472d0825bca7fe65beaee391d30da42e937db621564Steve Block || OS(SOLARIS) \ 473d0825bca7fe65beaee391d30da42e937db621564Steve Block || OS(SYMBIAN) \ 474d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(unix) \ 475d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__unix) \ 476d0825bca7fe65beaee391d30da42e937db621564Steve Block || defined(__unix__) 477d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_OS_UNIX 1 4788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 4798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* Operating environments */ 4818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 482d0825bca7fe65beaee391d30da42e937db621564Steve Block/* FIXME: these are all mixes of OS, operating environment and policy choices. */ 4838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* PLATFORM(CHROMIUM) */ 4848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* PLATFORM(QT) */ 485643ca7872b450ea4efacab6188849e5aac2ba161Steve Block/* PLATFORM(WX) */ 4868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* PLATFORM(GTK) */ 487643ca7872b450ea4efacab6188849e5aac2ba161Steve Block/* PLATFORM(HAIKU) */ 4888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* PLATFORM(MAC) */ 4898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* PLATFORM(WIN) */ 4908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if defined(BUILDING_CHROMIUM__) 4918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define WTF_PLATFORM_CHROMIUM 1 4928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#elif defined(BUILDING_QT__) 4938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define WTF_PLATFORM_QT 1 4948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#elif defined(BUILDING_WX__) 4958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define WTF_PLATFORM_WX 1 4968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#elif defined(BUILDING_GTK__) 4978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define WTF_PLATFORM_GTK 1 498231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#elif defined(BUILDING_HAIKU__) 499231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define WTF_PLATFORM_HAIKU 1 5005e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#elif defined(BUILDING_BREWMP__) 5015e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#define WTF_PLATFORM_BREWMP 1 5025e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#if defined(AEE_SIMULATOR) 5035e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#define WTF_PLATFORM_BREWMP_SIMULATOR 1 5045e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#else 5055e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#define WTF_PLATFORM_BREWMP_SIMULATOR 0 5065e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#endif 5078a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block#undef WTF_OS_WINDOWS 5088a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block#undef WTF_PLATFORM_WIN 509d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif OS(DARWIN) 5108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define WTF_PLATFORM_MAC 1 511d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif OS(WINDOWS) 5128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define WTF_PLATFORM_WIN 1 5138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 5148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 515dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch/* PLATFORM(IOS) */ 516d0825bca7fe65beaee391d30da42e937db621564Steve Block/* FIXME: this is sometimes used as an OS switch and sometimes for higher-level things */ 5175f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#if (defined(TARGET_OS_EMBEDDED) && TARGET_OS_EMBEDDED) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) 518dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#define WTF_PLATFORM_IOS 1 5195f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#endif 5205f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 521dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch/* PLATFORM(IOS_SIMULATOR) */ 5225f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#if defined(TARGET_IPHONE_SIMULATOR) && TARGET_IPHONE_SIMULATOR 523dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#define WTF_PLATFORM_IOS 1 524dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#define WTF_PLATFORM_IOS_SIMULATOR 1 5255f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#else 526dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#define WTF_PLATFORM_IOS_SIMULATOR 0 5275f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#endif 5285f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 529dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#if !defined(WTF_PLATFORM_IOS) 530dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#define WTF_PLATFORM_IOS 0 5315f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#endif 5325f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 5332cbe13df1515446fdaf8669483ab6025fd1c9833Steve Block/* PLATFORM(ANDROID) */ 534d0825bca7fe65beaee391d30da42e937db621564Steve Block/* FIXME: this is sometimes used as an OS() switch, and other times to drive 535d0825bca7fe65beaee391d30da42e937db621564Steve Block policy choices */ 5362cbe13df1515446fdaf8669483ab6025fd1c9833Steve Block#if defined(ANDROID) 5372cbe13df1515446fdaf8669483ab6025fd1c9833Steve Block#define WTF_PLATFORM_ANDROID 1 5382cbe13df1515446fdaf8669483ab6025fd1c9833Steve Block#endif 5392cbe13df1515446fdaf8669483ab6025fd1c9833Steve Block 5408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* Graphics engines */ 5418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5422daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch/* USE(CG) and PLATFORM(CI) */ 543dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#if PLATFORM(MAC) || PLATFORM(IOS) 5442daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#define WTF_USE_CG 1 5455f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#endif 5462daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#if PLATFORM(MAC) || PLATFORM(IOS) || (PLATFORM(WIN) && USE(CG)) 5472daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#define WTF_USE_CA 1 548f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch#endif 5498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 55081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch/* USE(SKIA) for Win/Linux, CG for Mac */ 5518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if PLATFORM(CHROMIUM) 552d0825bca7fe65beaee391d30da42e937db621564Steve Block#if OS(DARWIN) 5532daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#define WTF_USE_CG 1 554635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#define WTF_USE_ATSUI 1 555d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_USE_CORE_TEXT 1 55628040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu#define WTF_USE_ICCJPEG 1 557635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#else 55881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#define WTF_USE_SKIA 1 5594576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang#define WTF_USE_CHROMIUM_NET 1 5608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 561635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#endif 5628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 563e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block#if PLATFORM(BREWMP) 56481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#define WTF_USE_SKIA 1 565e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block#endif 566e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block 567d0825bca7fe65beaee391d30da42e937db621564Steve Block#if PLATFORM(GTK) 5682daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#define WTF_USE_CAIRO 1 5698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 5708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 571231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 572f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick#if OS(WINCE) 5736c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#include <ce_time.h> 5742fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#define WTF_USE_MERSENNE_TWISTER_19937 1 575635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#endif 576635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 5772bde8e466a4451c7319e3a072d118917957d6554Steve Block#if PLATFORM(QT) && OS(UNIX) && !OS(SYMBIAN) && !OS(DARWIN) 5782bde8e466a4451c7319e3a072d118917957d6554Steve Block#define WTF_USE_PTHREAD_BASED_QT 1 5792bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif 5802bde8e466a4451c7319e3a072d118917957d6554Steve Block 5812bde8e466a4451c7319e3a072d118917957d6554Steve Block#if (PLATFORM(GTK) || PLATFORM(IOS) || PLATFORM(MAC) || PLATFORM(WIN) || (PLATFORM(QT) && (OS(DARWIN) || USE(PTHREAD_BASED_QT)) && !ENABLE(SINGLE_THREADED))) && !defined(ENABLE_JSC_MULTIPLE_THREADS) 5828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define ENABLE_JSC_MULTIPLE_THREADS 1 5838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 5848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5850bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch/* On Windows, use QueryPerformanceCounter by default */ 586d0825bca7fe65beaee391d30da42e937db621564Steve Block#if OS(WINDOWS) 5870bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#define WTF_USE_QUERY_PERFORMANCE_COUNTER 1 5880bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#endif 5890bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 590d0825bca7fe65beaee391d30da42e937db621564Steve Block#if OS(WINCE) && !PLATFORM(QT) 591d0825bca7fe65beaee391d30da42e937db621564Steve Block#define NOMINMAX /* Windows min and max conflict with standard macros */ 592d0825bca7fe65beaee391d30da42e937db621564Steve Block#define NOSHLWAPI /* shlwapi.h not available on WinCe */ 5930bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 594d0825bca7fe65beaee391d30da42e937db621564Steve Block/* MSDN documentation says these functions are provided with uspce.lib. But we cannot find this file. */ 595d0825bca7fe65beaee391d30da42e937db621564Steve Block#define __usp10__ /* disable "usp10.h" */ 5960bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 597d0825bca7fe65beaee391d30da42e937db621564Steve Block#define _INC_ASSERT /* disable "assert.h" */ 5980bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#define assert(x) 5990bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 600d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif /* OS(WINCE) && !PLATFORM(QT) */ 6010bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 602643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#if PLATFORM(QT) 6038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define WTF_USE_QT4_UNICODE 1 604d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif OS(WINCE) 6050bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#define WTF_USE_WINCE_UNICODE 1 606a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#elif PLATFORM(BREWMP) 607a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#define WTF_USE_BREWMP_UNICODE 1 6088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#elif PLATFORM(GTK) 6098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* The GTK+ Unicode backend is configurable */ 6108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else 6118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define WTF_USE_ICU_UNICODE 1 6128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 6138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 614dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#if PLATFORM(MAC) && !PLATFORM(IOS) 615d0825bca7fe65beaee391d30da42e937db621564Steve Block#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_TIGER) && CPU(X86_64) 616231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define WTF_USE_PLUGIN_HOST_PROCESS 1 617231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif 6182fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) 6192fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#define ENABLE_GESTURE_EVENTS 1 6202fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#define ENABLE_RUBBER_BANDING 1 6212fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#define WTF_USE_WK_SCROLLBAR_PAINTER 1 6222fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#endif 62321939df44de1705786c545cd1bf519d47250322dBen Murdoch#if !defined(ENABLE_JAVA_BRIDGE) 62421939df44de1705786c545cd1bf519d47250322dBen Murdoch#define ENABLE_JAVA_BRIDGE 1 6258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 6268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if !defined(ENABLE_DASHBOARD_SUPPORT) 6278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define ENABLE_DASHBOARD_SUPPORT 1 6288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 62981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#define WTF_USE_CF 1 6302fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#define WTF_USE_PTHREADS 1 6312fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#define HAVE_PTHREAD_RWLOCK 1 6328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_READLINE 1 6338f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#define HAVE_RUNLOOP_TIMER 1 6345ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#define ENABLE_FULLSCREEN_API 1 6356b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner#define ENABLE_SMOOTH_SCROLLING 1 6362fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#define ENABLE_WEB_ARCHIVE 1 637dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#endif /* PLATFORM(MAC) && !PLATFORM(IOS) */ 6388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 639d0825bca7fe65beaee391d30da42e937db621564Steve Block#if PLATFORM(CHROMIUM) && OS(DARWIN) 64081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#define WTF_USE_CF 1 641635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#define WTF_USE_PTHREADS 1 642cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block#define HAVE_PTHREAD_RWLOCK 1 643635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#endif 644635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 645ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block#if PLATFORM(BREWMP) 646ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block#define ENABLE_SINGLE_THREADED 1 647ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block#endif 648ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 649d0825bca7fe65beaee391d30da42e937db621564Steve Block#if PLATFORM(QT) && OS(DARWIN) 65081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#define WTF_USE_CF 1 651643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#endif 652643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 6535ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#if OS(DARWIN) && !defined(BUILDING_ON_TIGER) && !PLATFORM(GTK) && !PLATFORM(QT) 6545ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#define ENABLE_PURGEABLE_MEMORY 1 6555ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#endif 6565ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 657dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#if PLATFORM(IOS) 658231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define ENABLE_CONTEXT_MENUS 0 659231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define ENABLE_DRAG_SUPPORT 0 66081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#define ENABLE_DATA_TRANSFER_ITEMS 0 6615f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define ENABLE_FTPDIR 1 6625f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define ENABLE_GEOLOCATION 1 663231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define ENABLE_ICONDATABASE 0 664231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define ENABLE_INSPECTOR 0 66521939df44de1705786c545cd1bf519d47250322dBen Murdoch#define ENABLE_JAVA_BRIDGE 0 6665f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define ENABLE_NETSCAPE_PLUGIN_API 0 667231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define ENABLE_ORIENTATION_EVENTS 1 6685f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define ENABLE_REPAINT_THROTTLING 1 669231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define HAVE_READLINE 1 67081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#define WTF_USE_CF 1 671231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define WTF_USE_PTHREADS 1 672cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block#define HAVE_PTHREAD_RWLOCK 1 6732fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#define ENABLE_WEB_ARCHIVE 1 6745f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#endif 6755f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 6762cbe13df1515446fdaf8669483ab6025fd1c9833Steve Block#if PLATFORM(ANDROID) 677d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define WEBCORE_NAVIGATOR_VENDOR "Google Inc." 678d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block 679d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define LOG_DISABLED 1 680d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// This must be defined before we include FastMalloc.h in config.h. 681d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define USE_SYSTEM_MALLOC 1 682d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block 683d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// USE defines 6842cbe13df1515446fdaf8669483ab6025fd1c9833Steve Block#define WTF_USE_PTHREADS 1 6857fb1198349cf58688611c0b98189560871faa49fBen Murdoch#define WTF_USE_SKIA 1 686d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#if !defined WTF_USE_ACCELERATED_COMPOSITING 687d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define WTF_USE_ACCELERATED_COMPOSITING 1 688d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_3D_RENDERING 1 689d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#endif 690d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block 691d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// ENABLE guards 69221939df44de1705786c545cd1bf519d47250322dBen Murdoch#define ENABLE_JAVA_BRIDGE 1 693d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// Prevents Webkit from drawing the caret in textfields and textareas 694d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// This prevents unnecessary invals. 6952cbe13df1515446fdaf8669483ab6025fd1c9833Steve Block#define ENABLE_TEXT_CARET 1 6962cbe13df1515446fdaf8669483ab6025fd1c9833Steve Block#define ENABLE_JAVASCRIPT_DEBUGGER 0 6974b81185780aaef7695b652ceb7770e2307867c59Patrick Scott#define ENABLE_ORIENTATION_EVENTS 1 6980617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen#if !defined(ENABLE_JIT) && !ENABLE(ANDROID_JSC_JIT) 6990617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen#define ENABLE_JIT 0 7000617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen#endif 701d73b16bdebb9d20b17be0a30e626dc9e66b6d868Steve Block#define ENABLE_WEB_ARCHIVE 1 702d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_FULLSCREEN_API 1 703d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_DOM_STORAGE 1 704d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_FTPDIR 0 705d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#ifndef ENABLE_SVG 706d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_SVG 0 707d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#endif 708d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_VIDEO 1 709d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#if ENABLE_SVG 710d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#if !defined(ENABLE_SVG_ANIMATION) 711d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_SVG_ANIMATION 0 712d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#endif 713d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_SVG_AS_IMAGE 1 714d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_SVG_FILTERS 1 715d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_SVG_FONTS 1 716d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_SVG_FOREIGN_OBJECT 1 717d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_SVG_USE 1 718d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#endif 719d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_XBL 0 720d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_XHTMLMP 0 721d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_XPATH 1 722d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_XSLT 1 723d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_OFFLINE_WEB_APPLICATIONS 1 724d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_TOUCH_EVENTS 1 725d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_GEOLOCATION 1 726d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_INSPECTOR 0 727d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_EVENT_SOURCE 0 728d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_DEVICE_ORIENTATION 1 729d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_FILE_READER 1 730d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_BLOB 1 731d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// Converts ListBoxes to dropdown popup lists. 732d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_NO_LISTBOX_RENDERING 1 733d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_LINK_PREFETCH 1 734b4d8044b71fecca026f297f220ba85ef67c7e42eSteve Block#define ENABLE_WEB_TIMING 1 735d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block 736d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// Android ENABLE guards not present upstream 737d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_COMPOSITED_FIXED_ELEMENTS 1 // FIXME: Rename to ENABLE_ANDROID_COMPOSITED_FIXED_ELEMENTS 738d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_APPLICATION_INSTALLED 1 // FIXME: Rename to ENABLE_ANDROID_APPLICATION_INSTALLED 739d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_ANDROID_INSTALLABLE_WEB_APPS 1 740d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// Enable scrollable divs in separate layers. This might be upstreamed to 741d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// webkit.org but for now, it is just an Android feature. 742d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ENABLE_ANDROID_OVERFLOW_SCROLL 1 743d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block 744d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// Other Android guards not present upstream 745d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_FLATTEN_FRAMESET 746d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_LAYOUT 747d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_FIX 748d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// Ensure that the fixed elements are always relative to the top document. 749d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_FIXED_ELEMENTS 750d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// Passes the webkit-originated changes of a focused textfield to our UI 751d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// thread 752d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_ACCEPT_CHANGES_TO_FOCUSED_TEXTFIELDS 753d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// Allow us to turn off the blinking caret as desired. 754d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_ALLOW_TURNING_OFF_CARET 755d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_META_SUPPORT 756d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_MULTIPLE_WINDOWS 757d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_CSS_RING 758d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_CSS_TAP_HIGHLIGHT_COLOR 759d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_BLOCK_NETWORK_IMAGE 760d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// Changes needed to support native plugins (npapi.h). If the change is generic, 761d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// it may be under a different #define (see: PLUGIN_PLATFORM_SETVALUE, 762d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// PLUGIN_SCHEDULE_TIMER) 763d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_PLUGINS 764d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// This enables a portable implementation of NPN_[Un]ScheduleTimer 765d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// Will submit this as a patch to apple 766d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define PLUGIN_SCHEDULE_TIMER // FIXME: Rename to ANDROID_PLUGIN_SCHEDULE_TIMER 767d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// This adds platformInit() and platformSetValue() to pluginview 768d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// Will submit this as a patch to apple 769d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define PLUGIN_PLATFORM_SETVALUE // FIXME: Rename to ANDROID_PLUGIN_PLATFORM_SETVALUE 770d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// This enables logging the DOM tree, Render tree even for the release build 771d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_DOM_LOGGING 772d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// Notify WebViewCore when a clipped out rectangle is drawn, 773d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// so that all invals are captured by the display tree. 774d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_CAPTURE_OFFSCREEN_PAINTS 775d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// Enable dumping the display tree to a file (triggered in WebView.java) 776d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_DUMP_DISPLAY_TREE 777d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// Animated GIF support. 778d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_ANIMATED_GIF 779d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// apple-touch-icon support in <link> tags 780d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_APPLE_TOUCH_ICON 781d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// track changes to the style that may change what is drawn 782d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define ANDROID_STYLE_VERSION 783d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block 784d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#if !defined(WTF_USE_CHROME_NETWORK_STACK) 785d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define WTF_USE_CHROME_NETWORK_STACK 0 786d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#endif /* !defined(WTF_USE_CHROME_NETWORK_STACK) */ 787d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block 788d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block// This is present in JavaScriptCore/config.h, which Android does not use. 789d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#define WTF_CHANGES 1 790d2c5226a647dc21d0c15267e09a3d19cf3e0d593Steve Block#endif /* PLATFORM(ANDROID) */ 7912cbe13df1515446fdaf8669483ab6025fd1c9833Steve Block 7924576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang#if PLATFORM(WIN) && !OS(WINCE) 79381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#define WTF_USE_CF 1 794dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#define WTF_USE_PTHREADS 0 7958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 7968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 79781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#if PLATFORM(WIN) && !OS(WINCE) && !PLATFORM(CHROMIUM) && !defined(WIN_CAIRO) 79881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#define WTF_USE_CFNETWORK 1 79981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#endif 80081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 80181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#if USE(CFNETWORK) || PLATFORM(MAC) 80281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#define WTF_USE_CFURLCACHE 1 80381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#define WTF_USE_CFURLSTORAGESESSIONS 1 80481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#endif 80581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 8062fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#if PLATFORM(WIN) && !OS(WINCE) && !PLATFORM(CHROMIUM) && !PLATFORM(QT) 8072fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#define ENABLE_WEB_ARCHIVE 1 8082fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#endif 8092fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 8108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if PLATFORM(WX) 8115f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define ENABLE_ASSEMBLER 1 812dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define ENABLE_GLOBAL_FASTMALLOC_NEW 0 813d0825bca7fe65beaee391d30da42e937db621564Steve Block#if OS(DARWIN) 81481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#define WTF_USE_CF 1 81521939df44de1705786c545cd1bf519d47250322dBen Murdoch#ifndef BUILDING_ON_TIGER 81621939df44de1705786c545cd1bf519d47250322dBen Murdoch#define WTF_USE_CORE_TEXT 1 8172fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#define ENABLE_WEB_ARCHIVE 1 81821939df44de1705786c545cd1bf519d47250322dBen Murdoch#else 81921939df44de1705786c545cd1bf519d47250322dBen Murdoch#define WTF_USE_ATSUI 1 82021939df44de1705786c545cd1bf519d47250322dBen Murdoch#endif 821643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#endif 8228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 8238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 8248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if PLATFORM(GTK) 8258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if HAVE(PTHREAD_H) 8268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define WTF_USE_PTHREADS 1 827cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block#define HAVE_PTHREAD_RWLOCK 1 8288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 8298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 8308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 831231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#if PLATFORM(HAIKU) 832231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define HAVE_POSIX_MEMALIGN 1 833231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define WTF_USE_CURL 1 834231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define WTF_USE_PTHREADS 1 835cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block#define HAVE_PTHREAD_RWLOCK 1 836231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define USE_SYSTEM_MALLOC 1 837231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define ENABLE_NETSCAPE_PLUGIN_API 0 838231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif 839231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 8408a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block#if PLATFORM(BREWMP) 8418a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block#define USE_SYSTEM_MALLOC 1 8428a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block#endif 8438a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block 844a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#if PLATFORM(BREWMP_SIMULATOR) 845a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#define ENABLE_JIT 0 846a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#endif 847a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 848635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#if !defined(HAVE_ACCESSIBILITY) 849dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#if PLATFORM(IOS) || PLATFORM(MAC) || PLATFORM(WIN) || PLATFORM(GTK) || PLATFORM(CHROMIUM) 8508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_ACCESSIBILITY 1 8518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 852635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#endif /* !defined(HAVE_ACCESSIBILITY) */ 8538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 854d0825bca7fe65beaee391d30da42e937db621564Steve Block#if OS(UNIX) && !OS(SYMBIAN) 8550bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#define HAVE_SIGNAL_H 1 8560bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#endif 8570bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 8582fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#if !defined(HAVE_STRNSTR) 8592fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#if OS(DARWIN) || OS(FREEBSD) 8602fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#define HAVE_STRNSTR 1 8612fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#endif 8622fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#endif 8632fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 864d0825bca7fe65beaee391d30da42e937db621564Steve Block#if !OS(WINDOWS) && !OS(SOLARIS) && !OS(QNX) \ 865d0825bca7fe65beaee391d30da42e937db621564Steve Block && !OS(SYMBIAN) && !OS(HAIKU) && !OS(RVCT) \ 8665e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block && !OS(ANDROID) && !PLATFORM(BREWMP) 8670bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#define HAVE_TM_GMTOFF 1 8680bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#define HAVE_TM_ZONE 1 8690bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#define HAVE_TIMEGM 1 870d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 8710bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 872d0825bca7fe65beaee391d30da42e937db621564Steve Block#if OS(DARWIN) 8738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 8748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_ERRNO_H 1 8758f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#define HAVE_LANGINFO_H 1 8768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_MMAP 1 8778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_MERGESORT 1 8788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_SBRK 1 8798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_STRINGS_H 1 8808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_SYS_PARAM_H 1 8818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_SYS_TIME_H 1 8828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_SYS_TIMEB_H 1 8832daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#define WTF_USE_ACCELERATE 1 8848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 885545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch#if !defined(TARGETING_TIGER) && !defined(TARGETING_LEOPARD) 886d0825bca7fe65beaee391d30da42e937db621564Steve Block 887d0825bca7fe65beaee391d30da42e937db621564Steve Block#define HAVE_DISPATCH_H 1 888ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block#define HAVE_HOSTED_CORE_ANIMATION 1 889d0825bca7fe65beaee391d30da42e937db621564Steve Block 890dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#if !PLATFORM(IOS) 8918f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#define HAVE_MADV_FREE_REUSE 1 8925f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define HAVE_MADV_FREE 1 893231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define HAVE_PTHREAD_SETNAME_NP 1 8945f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#endif 8955f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 896d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 897d0825bca7fe65beaee391d30da42e937db621564Steve Block 898dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#if PLATFORM(IOS) 8995f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define HAVE_MADV_FREE 1 9008f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#endif 9018f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 902d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif OS(WINDOWS) 9038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 904d0825bca7fe65beaee391d30da42e937db621564Steve Block#if OS(WINCE) 905635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#define HAVE_ERRNO_H 0 906635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#else 9078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_SYS_TIMEB_H 1 908dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#define HAVE_ALIGNED_MALLOC 1 909bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#define HAVE_ISDEBUGGERPRESENT 1 910635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#endif 9118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_VIRTUALALLOC 1 9128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 913d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif OS(SYMBIAN) 914635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 915635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#define HAVE_ERRNO_H 1 916635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#define HAVE_MMAP 0 917635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#define HAVE_SBRK 1 918635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 919635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#define HAVE_SYS_TIME_H 1 920635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#define HAVE_STRINGS_H 1 921635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 922635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#if !COMPILER(RVCT) 923635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#define HAVE_SYS_PARAM_H 1 924635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#endif 925635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 9265e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#elif PLATFORM(BREWMP) 9275e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block 9285e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#define HAVE_ERRNO_H 1 9295e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block 930d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif OS(QNX) 9318f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 9328f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#define HAVE_ERRNO_H 1 9333f252f84468859d129a8c6a9302412d2e6e5a3faSteve Block#define HAVE_MMAP 1 9343f252f84468859d129a8c6a9302412d2e6e5a3faSteve Block#define HAVE_SBRK 1 9353f252f84468859d129a8c6a9302412d2e6e5a3faSteve Block#define HAVE_STRINGS_H 1 9363f252f84468859d129a8c6a9302412d2e6e5a3faSteve Block#define HAVE_SYS_PARAM_H 1 9373f252f84468859d129a8c6a9302412d2e6e5a3faSteve Block#define HAVE_SYS_TIME_H 1 9383f252f84468859d129a8c6a9302412d2e6e5a3faSteve Block 939d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif OS(ANDROID) 9403f252f84468859d129a8c6a9302412d2e6e5a3faSteve Block 9413f252f84468859d129a8c6a9302412d2e6e5a3faSteve Block#define HAVE_ERRNO_H 1 9428f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#define HAVE_LANGINFO_H 0 9438f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#define HAVE_MMAP 1 9448f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#define HAVE_SBRK 1 9458f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#define HAVE_STRINGS_H 1 9468f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#define HAVE_SYS_PARAM_H 1 9478f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#define HAVE_SYS_TIME_H 1 9488f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 9498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else 9508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* FIXME: is this actually used or do other platforms generate their own config.h? */ 9528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_ERRNO_H 1 954231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block/* As long as Haiku doesn't have a complete support of locale this will be disabled. */ 955d0825bca7fe65beaee391d30da42e937db621564Steve Block#if !OS(HAIKU) 9568f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#define HAVE_LANGINFO_H 1 957231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif 9588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_MMAP 1 9598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_SBRK 1 9608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_STRINGS_H 1 9618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_SYS_PARAM_H 1 9628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HAVE_SYS_TIME_H 1 9638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 9658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* ENABLE macro defaults */ 9678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 968dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#if PLATFORM(QT) 96928040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu/* We must not customize the global operator new and delete for the Qt port. */ 970dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define ENABLE_GLOBAL_FASTMALLOC_NEW 0 9712fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#if !OS(UNIX) || OS(SYMBIAN) 9722fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#define USE_SYSTEM_MALLOC 1 9732fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#endif 974dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif 975dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 9765f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian/* fastMalloc match validation allows for runtime verification that 9775f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian new is matched by delete, fastMalloc is matched by fastFree, etc. */ 9785f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#if !defined(ENABLE_FAST_MALLOC_MATCH_VALIDATION) 9795f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define ENABLE_FAST_MALLOC_MATCH_VALIDATION 0 9805f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#endif 9815f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 9828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if !defined(ENABLE_ICONDATABASE) 9838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define ENABLE_ICONDATABASE 1 9848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 9858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if !defined(ENABLE_DATABASE) 9878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define ENABLE_DATABASE 1 9888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 9898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if !defined(ENABLE_JAVASCRIPT_DEBUGGER) 9918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define ENABLE_JAVASCRIPT_DEBUGGER 1 9928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 9938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if !defined(ENABLE_FTPDIR) 9958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define ENABLE_FTPDIR 1 9968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 9978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 998231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#if !defined(ENABLE_CONTEXT_MENUS) 999231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define ENABLE_CONTEXT_MENUS 1 1000231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif 1001231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 1002231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#if !defined(ENABLE_DRAG_SUPPORT) 1003231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define ENABLE_DRAG_SUPPORT 1 1004231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif 1005231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 100681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#if !defined(ENABLE_DATA_TRANSFER_ITEMS) 100781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#define ENABLE_DATA_TRANSFER_ITEMS 0 100881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#endif 100981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 10108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if !defined(ENABLE_DASHBOARD_SUPPORT) 10118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define ENABLE_DASHBOARD_SUPPORT 0 10128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 10138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1014231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#if !defined(ENABLE_INSPECTOR) 1015231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define ENABLE_INSPECTOR 1 1016231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif 1017231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 101821939df44de1705786c545cd1bf519d47250322dBen Murdoch#if !defined(ENABLE_JAVA_BRIDGE) 101921939df44de1705786c545cd1bf519d47250322dBen Murdoch#define ENABLE_JAVA_BRIDGE 0 10208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 10218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 10228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if !defined(ENABLE_NETSCAPE_PLUGIN_API) 10238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define ENABLE_NETSCAPE_PLUGIN_API 1 10248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 10258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 10265ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#if !defined(ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE) 10275ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#define ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE 0 10285ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#endif 10295ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 10305ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#if !defined(ENABLE_PURGEABLE_MEMORY) 10315ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#define ENABLE_PURGEABLE_MEMORY 0 10325ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#endif 10335ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 1034231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#if !defined(WTF_USE_PLUGIN_HOST_PROCESS) 1035231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define WTF_USE_PLUGIN_HOST_PROCESS 0 1036231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif 1037231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 1038231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#if !defined(ENABLE_ORIENTATION_EVENTS) 1039231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define ENABLE_ORIENTATION_EVENTS 0 1040231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif 1041231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 10428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if !defined(ENABLE_OPCODE_STATS) 10438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define ENABLE_OPCODE_STATS 0 10448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 10458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1046dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#if !defined(ENABLE_GLOBAL_FASTMALLOC_NEW) 1047dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define ENABLE_GLOBAL_FASTMALLOC_NEW 1 1048dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif 1049dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 105021939df44de1705786c545cd1bf519d47250322dBen Murdoch#define ENABLE_DEBUG_WITH_BREAKPOINT 0 10515f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define ENABLE_SAMPLING_COUNTERS 0 10525f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define ENABLE_SAMPLING_FLAGS 0 10535f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define ENABLE_OPCODE_SAMPLING 0 10548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define ENABLE_CODEBLOCK_SAMPLING 0 10555f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#if ENABLE(CODEBLOCK_SAMPLING) && !ENABLE(OPCODE_SAMPLING) 10565f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#error "CODEBLOCK_SAMPLING requires OPCODE_SAMPLING" 10578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 10585f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#if ENABLE(OPCODE_SAMPLING) || ENABLE(SAMPLING_FLAGS) 10595f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define ENABLE_SAMPLING_THREAD 1 10608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 10618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 10628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if !defined(ENABLE_GEOLOCATION) 10638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define ENABLE_GEOLOCATION 0 10648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 10658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 10662bde8e466a4451c7319e3a072d118917957d6554Steve Block#if !defined(ENABLE_GESTURE_RECOGNIZER) 10672bde8e466a4451c7319e3a072d118917957d6554Steve Block#define ENABLE_GESTURE_RECOGNIZER 0 10682bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif 10692bde8e466a4451c7319e3a072d118917957d6554Steve Block 1070231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#if !defined(ENABLE_NOTIFICATIONS) 1071231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define ENABLE_NOTIFICATIONS 0 1072231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif 1073231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 1074dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#if PLATFORM(IOS) 1075dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define ENABLE_TEXT_CARET 0 1076dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif 1077dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 10788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if !defined(ENABLE_TEXT_CARET) 10798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define ENABLE_TEXT_CARET 1 10808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 10818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 10828f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#if !defined(ENABLE_ON_FIRST_TEXTAREA_FOCUS_SELECT_ALL) 10838f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#define ENABLE_ON_FIRST_TEXTAREA_FOCUS_SELECT_ALL 0 10848f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#endif 10858f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 10865ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#if !defined(ENABLE_FULLSCREEN_API) 10875ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#define ENABLE_FULLSCREEN_API 0 10885ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#endif 10895ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 1090a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#if !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32_64) 1091dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS))) \ 1092dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block || (CPU(IA64) && !CPU(IA64_32)) \ 1093dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block || CPU(ALPHA) \ 1094dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch || CPU(SPARC64) \ 10956b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner || CPU(S390X) \ 1096dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch || CPU(PPC64) 10970bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#define WTF_USE_JSVALUE64 1 10980bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#else 10990bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#define WTF_USE_JSVALUE32_64 1 11008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 1101a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#endif /* !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32_64) */ 11028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 11038f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#if !defined(ENABLE_REPAINT_THROTTLING) 11048f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#define ENABLE_REPAINT_THROTTLING 0 11058f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#endif 11068f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 110765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch/* Disable the JIT on versions of GCC prior to 4.1 */ 110865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if !defined(ENABLE_JIT) && COMPILER(GCC) && !GCC_VERSION_AT_LEAST(4, 1, 0) 11090617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen#define ENABLE_JIT 0 1110e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#endif 1111e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 11125abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick/* JIT is not implemented for 64 bit on MSVC */ 11135abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick#if !defined(ENABLE_JIT) && COMPILER(MSVC) && CPU(X86_64) 11145abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick#define ENABLE_JIT 0 11155abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick#endif 11165abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 11170617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen/* The JIT is enabled by default on all x86, x64-64, ARM & MIPS platforms. */ 11180617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen#if !defined(ENABLE_JIT) \ 11190617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen && (CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(MIPS)) \ 112065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch && (OS(DARWIN) || !COMPILER(GCC) || GCC_VERSION_AT_LEAST(4, 1, 0)) \ 1121bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen && !OS(WINCE) 11220617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen#define ENABLE_JIT 1 1123e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#endif 1124e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 11252bde8e466a4451c7319e3a072d118917957d6554Steve Block/* Currently only implemented for JSVALUE64, only tested on PLATFORM(MAC) */ 11262bde8e466a4451c7319e3a072d118917957d6554Steve Block#if ENABLE(JIT) && USE(JSVALUE64) && PLATFORM(MAC) 11272bde8e466a4451c7319e3a072d118917957d6554Steve Block#define ENABLE_DFG_JIT 1 11282bde8e466a4451c7319e3a072d118917957d6554Steve Block/* Enabled with restrictions to circumvent known performance regressions. */ 11292bde8e466a4451c7319e3a072d118917957d6554Steve Block#define ENABLE_DFG_JIT_RESTRICTIONS 1 11302bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif 11312bde8e466a4451c7319e3a072d118917957d6554Steve Block 11320617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen/* Ensure that either the JIT or the interpreter has been enabled. */ 11330617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen#if !defined(ENABLE_INTERPRETER) && !ENABLE(JIT) 11340617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen#define ENABLE_INTERPRETER 1 1135545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch#endif 11360617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen#if !(ENABLE(JIT) || ENABLE(INTERPRETER)) 11370617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen#error You have to have at least one execution model enabled to build JSC 113806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#endif 11398a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block 11402daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#if CPU(SH4) && PLATFORM(QT) 11412daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#define ENABLE_JIT 1 11422daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#define ENABLE_YARR 1 11432daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#define ENABLE_YARR_JIT 1 11442daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#define WTF_USE_JIT_STUB_ARGUMENT_REGISTER 1 11452daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#define ENABLE_ASSEMBLER 1 11462daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#endif 11472daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 11480617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen/* Configure the JIT */ 11490bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#if ENABLE(JIT) 11504576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang #if CPU(ARM) 11510617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen #if !defined(ENABLE_JIT_USE_SOFT_MODULO) && WTF_ARM_ARCH_AT_LEAST(5) 11520617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen #define ENABLE_JIT_USE_SOFT_MODULO 1 11530617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen #endif 11540617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen #endif 11550617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen 11560617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen #ifndef ENABLE_JIT_OPTIMIZE_CALL 11570617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen #define ENABLE_JIT_OPTIMIZE_CALL 1 11580617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen #endif 11590617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen #ifndef ENABLE_JIT_OPTIMIZE_NATIVE_CALL 11600617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen #define ENABLE_JIT_OPTIMIZE_NATIVE_CALL 1 11610617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen #endif 11620617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen #ifndef ENABLE_JIT_OPTIMIZE_PROPERTY_ACCESS 11630617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen #define ENABLE_JIT_OPTIMIZE_PROPERTY_ACCESS 1 11640617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen #endif 11650617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen #ifndef ENABLE_JIT_OPTIMIZE_METHOD_CALLS 11660617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen #define ENABLE_JIT_OPTIMIZE_METHOD_CALLS 1 11670617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen #endif 11680bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#endif 11695f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 1170d0825bca7fe65beaee391d30da42e937db621564Steve Block#if CPU(X86) && COMPILER(MSVC) 11715f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define JSC_HOST_CALL __fastcall 1172d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif CPU(X86) && COMPILER(GCC) 11735f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define JSC_HOST_CALL __attribute__ ((fastcall)) 11745f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#else 11755f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define JSC_HOST_CALL 11765f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#endif 11775f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 11780617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen/* Configure the interpreter */ 117965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if COMPILER(GCC) || (RVCT_VERSION_AT_LEAST(4, 0, 0, 0) && defined(__GNUC__)) 11805f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define HAVE_COMPUTED_GOTO 1 1181635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#endif 1182e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#if HAVE(COMPUTED_GOTO) && ENABLE(INTERPRETER) 1183e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#define ENABLE_COMPUTED_GOTO_INTERPRETER 1 1184e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#endif 1185e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 11865abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick/* Regular Expression Tracing - Set to 1 to trace RegExp's in jsc. Results dumped at exit */ 11875abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick#define ENABLE_REGEXP_TRACING 0 11885abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 11890617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen/* Yet Another Regex Runtime - turned on by default for JIT enabled ports. */ 11902fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#if PLATFORM(CHROMIUM) 11912fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#define ENABLE_YARR_JIT 0 11922fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 11932fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#elif ENABLE(JIT) && !defined(ENABLE_YARR_JIT) 11945f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define ENABLE_YARR_JIT 1 1195cad810f21b803229eb11403f9209855525a25d57Steve Block 1196cad810f21b803229eb11403f9209855525a25d57Steve Block/* Setting this flag compares JIT results with interpreter results. */ 1197cad810f21b803229eb11403f9209855525a25d57Steve Block#define ENABLE_YARR_JIT_DEBUG 0 11985f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#endif 11990bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 12005f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#if ENABLE(JIT) || ENABLE(YARR_JIT) 1201635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#define ENABLE_ASSEMBLER 1 12028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 12035f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian/* Setting this flag prevents the assembler from using RWX memory; this may improve 12045f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian security but currectly comes at a significant performance cost. */ 1205dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#if PLATFORM(IOS) 12065f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#define ENABLE_ASSEMBLER_WX_EXCLUSIVE 1 12075f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#endif 12088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1209e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke/* Pick which allocator to use; we only need an executable allocator if the assembler is compiled in. 1210e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke On x86-64 we use a single fixed mmap, on other platforms we mmap on demand. */ 1211e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#if ENABLE(ASSEMBLER) 1212e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#if CPU(X86_64) 1213e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#define ENABLE_EXECUTABLE_ALLOCATOR_FIXED 1 1214e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#else 1215e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#define ENABLE_EXECUTABLE_ALLOCATOR_DEMAND 1 1216e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#endif 1217e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#endif 1218e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 1219d0825bca7fe65beaee391d30da42e937db621564Steve Block#if !defined(ENABLE_PAN_SCROLLING) && OS(WINDOWS) 12208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define ENABLE_PAN_SCROLLING 1 12218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 12228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 122368513a70bcd92384395513322f1b801e7bf9c729Steve Block#if !defined(ENABLE_SMOOTH_SCROLLING) 122468513a70bcd92384395513322f1b801e7bf9c729Steve Block#define ENABLE_SMOOTH_SCROLLING 0 122568513a70bcd92384395513322f1b801e7bf9c729Steve Block#endif 122668513a70bcd92384395513322f1b801e7bf9c729Steve Block 12272fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#if !defined(ENABLE_WEB_ARCHIVE) 12282fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#define ENABLE_WEB_ARCHIVE 0 12292fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#endif 12302fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 1231545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch/* Use the QXmlStreamReader implementation for XMLDocumentParser */ 1232231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block/* Use the QXmlQuery implementation for XSLTProcessor */ 12338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if PLATFORM(QT) 12348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define WTF_USE_QXMLSTREAM 1 1235231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define WTF_USE_QXMLQUERY 1 12368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 12378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 12380bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#if PLATFORM(MAC) 1239dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch/* Complex text framework */ 1240dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) 1241dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#define WTF_USE_ATSUI 0 1242dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#define WTF_USE_CORE_TEXT 1 1243dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#else 1244dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#define WTF_USE_ATSUI 1 1245dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#define WTF_USE_CORE_TEXT 0 1246dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#endif 12470bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#endif 12480bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 12494326279fef480892cd059ad1c738f1320601d33fJohn Reck/* Accelerated compositing */ 1250e14391e94c850b8bd03680c23b38978db68687a8John Reck#if (PLATFORM(MAC) && !defined(BUILDING_ON_TIGER)) || PLATFORM(IOS) || PLATFORM(QT) || (PLATFORM(WIN) && !OS(WINCE) &&!defined(WIN_CAIRO)) 1251d0825bca7fe65beaee391d30da42e937db621564Steve Block#define WTF_USE_ACCELERATED_COMPOSITING 1 1252643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#endif 1253643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 1254dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#if (PLATFORM(MAC) && !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD)) || PLATFORM(IOS) 125521939df44de1705786c545cd1bf519d47250322dBen Murdoch#define WTF_USE_PROTECTION_SPACE_AUTH_CALLBACK 1 125621939df44de1705786c545cd1bf519d47250322dBen Murdoch#endif 125721939df44de1705786c545cd1bf519d47250322dBen Murdoch 12582bde8e466a4451c7319e3a072d118917957d6554Steve Block#if PLATFORM(MAC) && !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) 12592bde8e466a4451c7319e3a072d118917957d6554Steve Block#define WTF_USE_AVFOUNDATION 1 12602bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif 12612bde8e466a4451c7319e3a072d118917957d6554Steve Block 1262231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#if COMPILER(GCC) 1263231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define WARN_UNUSED_RETURN __attribute__ ((warn_unused_result)) 1264231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#else 1265231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define WARN_UNUSED_RETURN 1266231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif 1267231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 1268d0825bca7fe65beaee391d30da42e937db621564Steve Block#if !ENABLE(NETSCAPE_PLUGIN_API) || (ENABLE(NETSCAPE_PLUGIN_API) && ((OS(UNIX) && (PLATFORM(QT) || PLATFORM(WX))) || PLATFORM(GTK))) 1269cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block#define ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH 1 1270cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block#endif 1271cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block 1272231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block/* Set up a define for a common error that is intended to cause a build error -- thus the space after Error. */ 1273231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define WTF_PLATFORM_CFNETWORK Error USE_macro_should_be_used_with_CFNETWORK 1274231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 1275643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#define ENABLE_JSC_ZOMBIES 0 1276643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 127706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen/* FIXME: Eventually we should enable this for all platforms and get rid of the define. */ 127868513a70bcd92384395513322f1b801e7bf9c729Steve Block#if PLATFORM(MAC) || PLATFORM(WIN) || PLATFORM(QT) 127906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#define WTF_USE_PLATFORM_STRATEGIES 1 128006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#endif 128106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 1282f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch#if PLATFORM(WIN) 1283f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch#define WTF_USE_CROSS_PLATFORM_CONTEXT_MENUS 1 1284f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch#endif 1285f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch 1286967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch/* Geolocation request policy. pre-emptive policy is to acquire user permission before acquiring location. 1287967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch Client based implementations will have option to choose between pre-emptive and nonpre-emptive permission policy. 1288967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch pre-emptive permission policy is enabled by default for all client-based implementations. */ 1289967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch#if ENABLE(CLIENT_BASED_GEOLOCATION) 1290967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch#define WTF_USE_PREEMPT_GEOLOCATION_PERMISSION 1 1291967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch#endif 1292967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch 1293dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#if CPU(ARM_THUMB2) 1294dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#define ENABLE_BRANCH_COMPACTION 1 1295dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#endif 1296dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 1297bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen#if ENABLE(GLIB_SUPPORT) 12985abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick#include "GTypedefs.h" 12995ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#endif 13005ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 13012bde8e466a4451c7319e3a072d118917957d6554Steve Block/* FIXME: This define won't be needed once #27551 is fully landed. However, 13022bde8e466a4451c7319e3a072d118917957d6554Steve Block since most ports try to support sub-project independence, adding new headers 13032bde8e466a4451c7319e3a072d118917957d6554Steve Block to WTF causes many ports to break, and so this way we can address the build 13042bde8e466a4451c7319e3a072d118917957d6554Steve Block breakages one port at a time. */ 13052bde8e466a4451c7319e3a072d118917957d6554Steve Block#define WTF_USE_EXPORT_MACROS 0 13062bde8e466a4451c7319e3a072d118917957d6554Steve Block 13072daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#if PLATFORM(QT) || PLATFORM(GTK) 13082daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#define WTF_USE_UNIX_DOMAIN_SOCKETS 1 13092daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#endif 13102daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 13118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif /* WTF_Platform_h */ 1312