|         |      1 // Copyright (C) 2009 Apple Inc. All rights reserved. | 
|         |      2 // | 
|         |      3 // Redistribution and use in source and binary forms, with or without | 
|         |      4 // modification, are permitted provided that the following conditions | 
|         |      5 // are met: | 
|         |      6 // 1. Redistributions of source code must retain the above copyright | 
|         |      7 //    notice, this list of conditions and the following disclaimer. | 
|         |      8 // 2. Redistributions in binary form must reproduce the above copyright | 
|         |      9 //    notice, this list of conditions and the following disclaimer in the | 
|         |     10 //    documentation and/or other materials provided with the distribution. | 
|         |     11 // | 
|         |     12 // THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY | 
|         |     13 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 
|         |     14 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 
|         |     15 // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR | 
|         |     16 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | 
|         |     17 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | 
|         |     18 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | 
|         |     19 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY | 
|         |     20 // OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
|         |     21 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 
|         |     22 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  | 
|         |     23  | 
|         |     24 DEBUG_INFORMATION_FORMAT = dwarf; | 
|         |     25 GCC_C_LANGUAGE_STANDARD = gnu99; | 
|         |     26 GCC_DEBUGGING_SYMBOLS = default; | 
|         |     27 GCC_DYNAMIC_NO_PIC = NO; | 
|         |     28 GCC_ENABLE_CPP_EXCEPTIONS = NO; | 
|         |     29 GCC_ENABLE_CPP_RTTI = NO; | 
|         |     30 GCC_ENABLE_OBJC_EXCEPTIONS = YES; | 
|         |     31 GCC_ENABLE_OBJC_GC = $(GCC_ENABLE_OBJC_GC_$(REAL_PLATFORM_NAME)); | 
|         |     32 GCC_ENABLE_OBJC_GC_iphoneos = NO; | 
|         |     33 GCC_ENABLE_OBJC_GC_iphonesimulator = NO; | 
|         |     34 GCC_ENABLE_OBJC_GC_macosx = supported; | 
|         |     35 GCC_ENABLE_SYMBOL_SEPARATION = NO; | 
|         |     36 GCC_FAST_OBJC_DISPATCH = YES; | 
|         |     37 GCC_GENERATE_DEBUGGING_SYMBOLS = YES; | 
|         |     38 GCC_INLINES_ARE_PRIVATE_EXTERN = YES; | 
|         |     39 GCC_MODEL_TUNING = G5; | 
|         |     40 GCC_OBJC_CALL_CXX_CDTORS = YES; | 
|         |     41 GCC_PRECOMPILE_PREFIX_HEADER = YES; | 
|         |     42 GCC_PREPROCESSOR_DEFINITIONS = $(DEBUG_DEFINES) HAVE_DTRACE=$(HAVE_DTRACE) WEBKIT_VERSION_MIN_REQUIRED=WEBKIT_VERSION_LATEST $(GCC_PREPROCESSOR_DEFINITIONS); | 
|         |     43 GCC_STRICT_ALIASING = YES; | 
|         |     44 GCC_THREADSAFE_STATICS = NO; | 
|         |     45 GCC_TREAT_WARNINGS_AS_ERRORS = YES; | 
|         |     46 GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; | 
|         |     47 GCC_WARN_ABOUT_MISSING_NEWLINE = YES; | 
|         |     48 GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; | 
|         |     49 GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; | 
|         |     50 LINKER_DISPLAYS_MANGLED_NAMES = YES; | 
|         |     51 PREBINDING = NO; | 
|         |     52 VALID_ARCHS = i386 ppc x86_64 ppc64 $(ARCHS_UNIVERSAL_IPHONE_OS); | 
|         |     53 WARNING_CFLAGS = $(WARNING_CFLAGS_$(CURRENT_ARCH)); | 
|         |     54 WARNING_CFLAGS_BASE = -Wall -Wextra -Wcast-align -Wcast-qual -Wchar-subscripts -Wextra-tokens -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings; | 
|         |     55 WARNING_CFLAGS_ = $(WARNING_CFLAGS_BASE) -Wshorten-64-to-32; | 
|         |     56 WARNING_CFLAGS_i386 = $(WARNING_CFLAGS_BASE) -Wshorten-64-to-32; | 
|         |     57 WARNING_CFLAGS_ppc = $(WARNING_CFLAGS_BASE) -Wshorten-64-to-32; | 
|         |     58 // FIXME: JavaScriptCore 64-bit builds should build with -Wshorten-64-to-32 | 
|         |     59 WARNING_CFLAGS_ppc64 = $(WARNING_CFLAGS_BASE); | 
|         |     60 WARNING_CFLAGS_x86_64 = $(WARNING_CFLAGS_BASE); | 
|         |     61 HEADER_SEARCH_PATHS = . icu $(HEADER_SEARCH_PATHS); | 
|         |     62  | 
|         |     63  | 
|         |     64 REAL_PLATFORM_NAME = $(REAL_PLATFORM_NAME_$(PLATFORM_NAME)); | 
|         |     65 REAL_PLATFORM_NAME_ = $(REAL_PLATFORM_NAME_macosx); | 
|         |     66 REAL_PLATFORM_NAME_iphoneos = iphoneos; | 
|         |     67 REAL_PLATFORM_NAME_iphonesimulator = iphonesimulator; | 
|         |     68 REAL_PLATFORM_NAME_macosx = macosx; | 
|         |     69  | 
|         |     70 TARGET_MAC_OS_X_VERSION_MAJOR = $(MAC_OS_X_VERSION_MAJOR); | 
|         |     71  | 
|         |     72  | 
|         |     73 // DEBUG_DEFINES, GCC_OPTIMIZATION_LEVEL, STRIP_INSTALLED_PRODUCT and DEAD_CODE_STRIPPING vary between the debug and normal variants. | 
|         |     74 // We set up the values for each variant here, and have the Debug configuration in the Xcode project use the _debug variant. | 
|         |     75 DEBUG_DEFINES_debug = ; | 
|         |     76 DEBUG_DEFINES_normal = NDEBUG; | 
|         |     77 DEBUG_DEFINES = $(DEBUG_DEFINES_$(CURRENT_VARIANT)); | 
|         |     78  | 
|         |     79 GCC_OPTIMIZATION_LEVEL = $(GCC_OPTIMIZATION_LEVEL_$(CURRENT_VARIANT)); | 
|         |     80 GCC_OPTIMIZATION_LEVEL_normal = 3; | 
|         |     81 GCC_OPTIMIZATION_LEVEL_debug = 0; | 
|         |     82  | 
|         |     83 STRIP_INSTALLED_PRODUCT = $(STRIP_INSTALLED_PRODUCT_$(CURRENT_VARIANT)); | 
|         |     84 STRIP_INSTALLED_PRODUCT_normal = YES; | 
|         |     85 STRIP_INSTALLED_PRODUCT_debug = NO; | 
|         |     86  | 
|         |     87 DEAD_CODE_STRIPPING_debug = NO; | 
|         |     88 DEAD_CODE_STRIPPING_normal = YES; | 
|         |     89 DEAD_CODE_STRIPPING = $(DEAD_CODE_STRIPPING_$(CURRENT_VARIANT)); | 
|         |     90  | 
|         |     91 SECTORDER_FLAGS = -sectorder __TEXT __text JavaScriptCore.order; | 
|         |     92  | 
|         |     93 // Use GCC 4.2 with Xcode 3.1, which includes GCC 4.2 but defaults to GCC 4.0. | 
|         |     94 // Note that Xcode versions as new as 3.1.2 use XCODE_VERSION_ACTUAL for the minor version | 
|         |     95 // number.  Newer versions of Xcode use XCODE_VERSION_MINOR for the minor version, and | 
|         |     96 // XCODE_VERSION_ACTUAL for the full version number. | 
|         |     97 TARGET_GCC_VERSION = $(TARGET_GCC_VERSION_$(TARGET_MAC_OS_X_VERSION_MAJOR)); | 
|         |     98 TARGET_GCC_VERSION_ = $(TARGET_GCC_VERSION_1040); | 
|         |     99 TARGET_GCC_VERSION_1040 = GCC_40; | 
|         |    100 TARGET_GCC_VERSION_1050 = $(TARGET_GCC_VERSION_1050_$(XCODE_VERSION_MINOR)); | 
|         |    101 TARGET_GCC_VERSION_1050_ = $(TARGET_GCC_VERSION_1050_$(XCODE_VERSION_ACTUAL)); | 
|         |    102 TARGET_GCC_VERSION_1050_0310 = GCC_42; | 
|         |    103 TARGET_GCC_VERSION_1050_0320 = GCC_42; | 
|         |    104 TARGET_GCC_VERSION_1060 = GCC_42; | 
|         |    105 TARGET_GCC_VERSION_1070 = LLVM_GCC_42; | 
|         |    106  | 
|         |    107 GCC_VERSION = $(GCC_VERSION_$(TARGET_GCC_VERSION)); | 
|         |    108 GCC_VERSION_GCC_40 = 4.0; | 
|         |    109 GCC_VERSION_GCC_42 = 4.2; | 
|         |    110 GCC_VERSION_LLVM_GCC_42 = com.apple.compilers.llvmgcc42; | 
|         |    111  | 
|         |    112 // If the target Mac OS X version does not match the current Mac OS X version then we'll want to build using the target version's SDK. | 
|         |    113 SDKROOT = $(SDKROOT_$(MAC_OS_X_VERSION_MAJOR)_$(TARGET_MAC_OS_X_VERSION_MAJOR)); | 
|         |    114 SDKROOT_1050_1040 = macosx10.4; | 
|         |    115 SDKROOT_1060_1040 = macosx10.4; | 
|         |    116 SDKROOT_1060_1050 = macosx10.5; | 
|         |    117 SDKROOT_1070_1040 = macosx10.4; | 
|         |    118 SDKROOT_1070_1050 = macosx10.5; | 
|         |    119 SDKROOT_1070_1060 = macosx10.6; | 
|         |    120  | 
|         |    121  | 
|         |    122 // HAVE_DTRACE is disabled on Leopard due to <rdar://problem/5628149> | 
|         |    123 HAVE_DTRACE = $(HAVE_DTRACE_$(REAL_PLATFORM_NAME)); | 
|         |    124 HAVE_DTRACE_iphoneos = 1; | 
|         |    125 HAVE_DTRACE_iphonesimulator = 0; | 
|         |    126 HAVE_DTRACE_macosx = $(HAVE_DTRACE_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR)); | 
|         |    127 HAVE_DTRACE_macosx_ = $(HAVE_DTRACE_macosx_1040); | 
|         |    128 HAVE_DTRACE_macosx_1040 = 0; | 
|         |    129 HAVE_DTRACE_macosx_1050 = 0; | 
|         |    130 HAVE_DTRACE_macosx_1060 = 1; | 
|         |    131 HAVE_DTRACE_macosx_1070 = 1; |