SkPreConfig.h revision 87a2a317c4e99c547ecbfa81f40f7bd7f2932433
10910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project/*
20910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project * Copyright (C) 2006 The Android Open Source Project
30910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project *
40910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
50910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project * you may not use this file except in compliance with the License.
60910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project * You may obtain a copy of the License at
70910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project *
80910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project *
100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project * See the License for the specific language governing permissions and
140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project * limitations under the License.
150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project */
160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifndef SkPreConfig_DEFINED
180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define SkPreConfig_DEFINED
190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project//////////////////////////////////////////////////////////////////////
210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
22dab163f0b2658c2dba48839e72f81d3d8ee0ae8bMike Reed#if !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)
230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    #if defined(PALMOS_SDK_VERSION)
250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        #define SK_BUILD_FOR_PALM
260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    #elif defined(UNDER_CE)
270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        #define SK_BUILD_FOR_WINCE
280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    #elif defined(WIN32)
290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        #define SK_BUILD_FOR_WIN32
300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    #elif defined(__SYMBIAN32__)
310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        #define SK_BUILD_FOR_WIN32
320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    #elif defined(linux)
330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        #define SK_BUILD_FOR_UNIX
340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    #else
350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        #define SK_BUILD_FOR_MAC
360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    #endif
370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif
390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project//////////////////////////////////////////////////////////////////////
410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if !defined(SK_DEBUG) && !defined(SK_RELEASE)
430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    #ifdef NDEBUG
440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        #define SK_RELEASE
450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    #else
460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        #define SK_DEBUG
470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    #endif
480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif
490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
502c497e64d20a73267eb92ae88fdc51ba2a356b55Mike Reed#ifdef SK_BUILD_FOR_WIN32
512c497e64d20a73267eb92ae88fdc51ba2a356b55Mike Reed	#define SK_RESTRICT
522c497e64d20a73267eb92ae88fdc51ba2a356b55Mike Reed    #include "sk_stdint.h"
532c497e64d20a73267eb92ae88fdc51ba2a356b55Mike Reed#endif
542c497e64d20a73267eb92ae88fdc51ba2a356b55Mike Reed
550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project//////////////////////////////////////////////////////////////////////
560910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
570910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if !defined(SK_RESTRICT)
580910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    #define SK_RESTRICT __restrict__
590910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif
600910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
610910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project//////////////////////////////////////////////////////////////////////
620910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
630910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if !defined(SK_SCALAR_IS_FLOAT) && !defined(SK_SCALAR_IS_FIXED)
640910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    #define SK_SCALAR_IS_FLOAT
650910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    #define SK_CAN_USE_FLOAT
660910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif
670910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
680910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project//////////////////////////////////////////////////////////////////////
690910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
700910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if !defined(SK_CPU_BENDIAN) && !defined(SK_CPU_LENDIAN)
710910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    #if defined (__ppc__) || defined(__ppc64__)
720910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        #define SK_CPU_BENDIAN
730910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    #else
740910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        #define SK_CPU_LENDIAN
750910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    #endif
760910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif
770910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
780910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project//////////////////////////////////////////////////////////////////////
790910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
8087a2a317c4e99c547ecbfa81f40f7bd7f2932433Mike Reed#if (defined(__arm__) && !defined(__thumb__)) || defined(SK_BUILD_FOR_WINCE) || (defined(SK_BUILD_FOR_SYMBIAN) && !defined(__MARM_THUMB__))
810910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    /* e.g. the ARM instructions have conditional execution, making tiny branches cheap */
820910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    #define SK_CPU_HAS_CONDITIONAL_INSTR
830910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif
840910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
850910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif
860910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
87