11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 20910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project/* 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project 40910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project * 51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file. 70910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project */ 80910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 91cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifndef SkPreConfig_DEFINED 110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define SkPreConfig_DEFINED 120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 1340528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger#ifdef WEBKIT_VERSION_MIN_REQUIRED 1440528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger #include "config.h" 1540528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger#endif 1640528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger 170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project////////////////////////////////////////////////////////////////////// 180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 191cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#if !defined(SK_BUILD_FOR_ANDROID) && !defined(SK_BUILD_FOR_ANDROID_NDK) && !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_PALM) && !defined(SK_BUILD_FOR_WINCE) && !defined(SK_BUILD_FOR_WIN32) && !defined(SK_BUILD_FOR_SYMBIAN) && !defined(SK_BUILD_FOR_UNIX) && !defined(SK_BUILD_FOR_MAC) && !defined(SK_BUILD_FOR_SDL) && !defined(SK_BUILD_FOR_BREW) 2040528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger 2140528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger #ifdef __APPLE__ 2240528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger #include "TargetConditionals.h" 2340528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger #endif 240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #if defined(PALMOS_SDK_VERSION) 260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define SK_BUILD_FOR_PALM 270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #elif defined(UNDER_CE) 280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define SK_BUILD_FOR_WINCE 290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #elif defined(WIN32) 300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define SK_BUILD_FOR_WIN32 310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #elif defined(__SYMBIAN32__) 320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define SK_BUILD_FOR_WIN32 331cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger #elif defined(ANDROID_NDK) 341cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger #define SK_BUILD_FOR_ANDROID_NDK 351cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger #elif defined(ANDROID) 361cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger #define SK_BUILD_FOR_ANDROID 371cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger #elif defined(linux) || defined(__FreeBSD__) || defined(__OpenBSD__) || \ 381cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger defined(__sun) || defined(__NetBSD__) || defined(__DragonFly__) 390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define SK_BUILD_FOR_UNIX 4040528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger #elif TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR 4140528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger #define SK_BUILD_FOR_IOS 420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #else 430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define SK_BUILD_FOR_MAC 440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #endif 450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 461cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#endif 471cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 481cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/* Even if the user only defined the NDK variant we still need to build 491cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * the default Android code. Therefore, when attempting to include/exclude 501cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * something from the NDK variant check first that we are building for 511cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Android then check the status of the NDK define. 521cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */ 531cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#if defined(SK_BUILD_FOR_ANDROID_NDK) && !defined(SK_BUILD_FOR_ANDROID) 541cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger #define SK_BUILD_FOR_ANDROID 550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 560910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 570910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project////////////////////////////////////////////////////////////////////// 580910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 590910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if !defined(SK_DEBUG) && !defined(SK_RELEASE) 600910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #ifdef NDEBUG 610910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define SK_RELEASE 620910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #else 630910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define SK_DEBUG 640910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #endif 650910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 660910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 672c497e64d20a73267eb92ae88fdc51ba2a356b55Mike Reed#ifdef SK_BUILD_FOR_WIN32 681cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger #if !defined(SK_RESTRICT) 691cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger #define SK_RESTRICT __restrict 701cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger #endif 712c497e64d20a73267eb92ae88fdc51ba2a356b55Mike Reed #include "sk_stdint.h" 722c497e64d20a73267eb92ae88fdc51ba2a356b55Mike Reed#endif 732c497e64d20a73267eb92ae88fdc51ba2a356b55Mike Reed 740910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project////////////////////////////////////////////////////////////////////// 750910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 760910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if !defined(SK_RESTRICT) 770910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define SK_RESTRICT __restrict__ 780910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 790910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 800910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project////////////////////////////////////////////////////////////////////// 810910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 820910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if !defined(SK_SCALAR_IS_FLOAT) && !defined(SK_SCALAR_IS_FIXED) 830910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define SK_SCALAR_IS_FLOAT 840910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define SK_CAN_USE_FLOAT 850910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 860910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 870910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project////////////////////////////////////////////////////////////////////// 880910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 890910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if !defined(SK_CPU_BENDIAN) && !defined(SK_CPU_LENDIAN) 900910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #if defined (__ppc__) || defined(__ppc64__) 910910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define SK_CPU_BENDIAN 920910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #else 930910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define SK_CPU_LENDIAN 940910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #endif 950910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 960910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 970910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project////////////////////////////////////////////////////////////////////// 980910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 9987a2a317c4e99c547ecbfa81f40f7bd7f2932433Mike Reed#if (defined(__arm__) && !defined(__thumb__)) || defined(SK_BUILD_FOR_WINCE) || (defined(SK_BUILD_FOR_SYMBIAN) && !defined(__MARM_THUMB__)) 1000910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project /* e.g. the ARM instructions have conditional execution, making tiny branches cheap */ 1010910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project #define SK_CPU_HAS_CONDITIONAL_INSTR 1020910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 1030910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 104137a4ca42423bbb6d683067ea544c9a48f18f06cDerek Sollenberger////////////////////////////////////////////////////////////////////// 105137a4ca42423bbb6d683067ea544c9a48f18f06cDerek Sollenberger 106137a4ca42423bbb6d683067ea544c9a48f18f06cDerek Sollenberger#if !defined(SKIA_IMPLEMENTATION) 107137a4ca42423bbb6d683067ea544c9a48f18f06cDerek Sollenberger #define SKIA_IMPLEMENTATION 0 108137a4ca42423bbb6d683067ea544c9a48f18f06cDerek Sollenberger#endif 10935e2e62b55598210f6999fc2ea26ff8f41446ffeDerek Sollenberger 11035e2e62b55598210f6999fc2ea26ff8f41446ffeDerek Sollenberger#if defined(SKIA_DLL) 11135e2e62b55598210f6999fc2ea26ff8f41446ffeDerek Sollenberger #if defined(WIN32) 11235e2e62b55598210f6999fc2ea26ff8f41446ffeDerek Sollenberger #if SKIA_IMPLEMENTATION 11335e2e62b55598210f6999fc2ea26ff8f41446ffeDerek Sollenberger #define SK_API __declspec(dllexport) 11435e2e62b55598210f6999fc2ea26ff8f41446ffeDerek Sollenberger #else 11535e2e62b55598210f6999fc2ea26ff8f41446ffeDerek Sollenberger #define SK_API __declspec(dllimport) 11635e2e62b55598210f6999fc2ea26ff8f41446ffeDerek Sollenberger #endif 117137a4ca42423bbb6d683067ea544c9a48f18f06cDerek Sollenberger #else 11835e2e62b55598210f6999fc2ea26ff8f41446ffeDerek Sollenberger #define SK_API __attribute__((visibility("default"))) 119137a4ca42423bbb6d683067ea544c9a48f18f06cDerek Sollenberger #endif 120137a4ca42423bbb6d683067ea544c9a48f18f06cDerek Sollenberger#else 121137a4ca42423bbb6d683067ea544c9a48f18f06cDerek Sollenberger #define SK_API 122137a4ca42423bbb6d683067ea544c9a48f18f06cDerek Sollenberger#endif 123137a4ca42423bbb6d683067ea544c9a48f18f06cDerek Sollenberger 1240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 1250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 126