]> git.saurik.com Git - apple/libc.git/blame - xcodescripts/libc.xcconfig
Libc-1272.200.26.tar.gz
[apple/libc.git] / xcodescripts / libc.xcconfig
CommitLineData
ad3c9f2a
A
1#include "<DEVELOPER_DIR>/Makefiles/CoreOS/Xcode/BSD.xcconfig"
2
3// Standard settings
b061a43b 4SUPPORTED_PLATFORMS = macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator iphoneosnano iphonesimulatornano bridgeos
23e20b00 5SRCROOT_SEARCH_PATHS = $(SRCROOT) $(SRCROOT)/include $(SRCROOT)/gen $(SRCROOT)/locale $(SRCROOT)/locale/FreeBSD $(SRCROOT)/stdtime/FreeBSD $(SRCROOT)/darwin
ad3c9f2a 6SYSTEM_FRAMEWORK_HEADERS = $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
6465356a 7HEADER_SEARCH_PATHS = $($(TARGET_NAME)_SEARCH_PATHS) $(DERIVED_FILES_DIR)/dtrace $(SRCROOT_SEARCH_PATHS) $(SYSTEM_FRAMEWORK_HEADERS) $(SDKROOT)/usr/local/include $(inherited)
ad3c9f2a
A
8ALWAYS_SEARCH_USER_PATHS = YES
9USE_HEADERMAP = NO
10BUILD_VARIANTS = normal
11GCC_OPTIMIZATION_LEVEL = s
12GCC_C_LANGUAGE_STANDARD = gnu99
13GCC_ENABLE_OBJC_EXCEPTIONS = YES
14GCC_SYMBOLS_PRIVATE_EXTERN = NO
15GCC_DYNAMIC_NO_PIC = NO
16GCC_THUMB_SUPPORT = YES
6465356a 17GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
5f125488
A
18
19//CLANG_WARN_INT_CONVERSION = YES
20//CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES
21//GCC_WARN_64_TO_32_BIT_CONVERSION = YES
22//GCC_WARN_SHADOW = YES
6465356a
A
23GCC_WARN_UNINITIALIZED_AUTOS = YES;
24GCC_WARN_UNUSED_VARIABLE = YES;
25GCC_WARN_ABOUT_RETURN_TYPE = YES;
5f125488 26//WARNING_CFLAGS = -Wall -Wextra
b061a43b 27WARNING_CFLAGS = -Wall -Werror -Wno-error=shorten-64-to-32 -Wno-error=incompatible-pointer-types-discards-qualifiers -Wno-nullability-completeness
6465356a 28
ad3c9f2a
A
29COPY_PHASE_STRIP = NO
30SKIP_INSTALL = YES
31INSTALLHDRS_SCRIPT_PHASE = YES
70ad1dc8 32INSTALLHDRS_COPY_PHASE = YES
ad3c9f2a 33VERSIONING_SYSTEM =
70ad1dc8 34VERSION_INFO_PREFIX = __attribute__((visibility("hidden")))
ad3c9f2a
A
35COPY_PHASE_STRIP = NO
36STRIP_INSTALLED_PRODUCT = NO
37LD_DYLIB_INSTALL_NAME = /usr/lib/system/$(EXECUTABLE_NAME)
70ad1dc8 38IS_ZIPPERED = YES
ad3c9f2a
A
39
40BUILD_VARIANTS = normal debug
6465356a 41BUILD_ARCHIVES = Platform Base FreeBSD NetBSD TRE vCancelable vDarwinExtsn vDarwinExtsnCancelable vPre1050 vLegacy vInode32 FortifySource
ad3c9f2a 42
6465356a 43// clang is desired over llvm-gcc for OSAtomics. However, it isn't capable of building armv6 correctly.
ad3c9f2a
A
44GCC_VERSION = com.apple.compilers.llvm.clang.1_0
45GCC_VERSION[arch=armv6] = com.apple.compilers.llvmgcc42
46
47EXECUTABLE_PREFIX = libsystem_
5f125488
A
48INSTALL_PATH = /usr/lib/system
49PUBLIC_HEADERS_FOLDER_PATH = /usr/include
50PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include
ad3c9f2a 51
b061a43b
A
52DARWIN_PUBLIC_HEADERS_FOLDER_PATH = /usr/include/os
53DARWIN_PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/os
54
ad3c9f2a 55// Simulator
ad3c9f2a 56BASE_PREPROCESSOR_MACROS = __LIBC__ __DARWIN_UNIX03=1 __DARWIN_64_BIT_INO_T=1 __DARWIN_NON_CANCELABLE=1 __DARWIN_VERS_1050=1 _FORTIFY_SOURCE=0
6465356a 57OTHER_CFLAGS = -fdollars-in-identifiers -fno-common -fverbose-asm $($(TARGET_NAME)_CFLAGS) $(VARIANT_PREPROCESSOR_MACROS)
ad3c9f2a 58OTHER_CFLAGS_debug = -fstack-protector -fno-inline -O0 -DDEBUG=1
5f125488 59SIM_SUFFIX[sdk=*simulator*] = _sim
ad3c9f2a
A
60
61GCC_PREPROCESSOR_DEFINITIONS = $(BASE_PREPROCESSOR_MACROS)
ad3c9f2a
A
62
63// libsystem_c.dylib linking
23e20b00 64CR_LDFLAGS = -lCrashReporterClient
ad3c9f2a 65LIBCOMPILER_RT_LDFLAGS = -lcompiler_rt
6465356a 66LIBMALLOC_LDFLAGS = -lsystem_malloc
b061a43b
A
67LIBC_LDFLAGS = -lsystem_c
68LIBDISPATCH_LDFLAGS = -ldispatch
69LIBXPC_LDFLAGS = -lxpc
5f125488
A
70LIBPLATFORM_LDFLAGS = -lsystem$(SIM_SUFFIX)_platform
71LIBPTHREAD_LDFLAGS = -lsystem$(SIM_SUFFIX)_pthread
72LIBSYSCALL_LDFLAGS = -lsystem$(SIM_SUFFIX)_kernel
e07eda1a 73LIBM_LDFLAGS = -lsystem_m
6465356a 74LIBDYLD_LDFLAGS = -ldyld
b061a43b
A
75LIBSYSTEM_C_LDFLAGS = -all_load -nostdlib -L/usr/lib/system -umbrella System $(CR_LDFLAGS) $(LIBCOMPILER_RT_LDFLAGS) $(LIBDYLD_LDFLAGS) $(LIBSYSCALL_LDFLAGS) $(LIBM_LDFLAGS) $(LIBMALLOC_LDFLAGS) $(LIBPLATFORM_LDFLAGS) $(LIBPTHREAD_LDFLAGS) $(UPWARD_LDFLAGS) $(LIBSYSTEM_C_EXTRA_LDFLAGS_$(CURRENT_ARCH)) -Wl,-interposable_list,$(DERIVED_FILES_DIR)/interposable.list -Wl,-unexported_symbols_list,$(DERIVED_FILES_DIR)/unexport.list -Wl,-alias_list,$(SRCROOT)/xcodescripts/alias.list -Wl,-order_file,$(SRCROOT)/xcodescripts/Libc.order -Wl,-sectalign,__DATA,__data,1000 @$(BUILT_PRODUCTS_DIR)/$(CURRENT_VARIANT).linklist
76LIBSYSTEM_C_EXTRA_LDFLAGS_i386 = -Wl,-alias_list,$(SRCROOT)/xcodescripts/legacy_alias.list
6465356a
A
77
78// TODO: Remove upward links - mostly <rdar://problem/13183469>, macho is for assumes.c
e07eda1a 79UPWARD_LDFLAGS = -Wl,-upward-ldispatch -Wl,-upward-lmacho -Wl,-upward-lsystem_asl -Wl,-upward-lsystem_blocks -Wl,-upward-lsystem_info -Wl,-upward-lsystem_notify -Wl,-upward-lxpc -Wl,-upward-lcorecrypto -Wl,-upward-lsystem_trace
ad3c9f2a 80
b061a43b
A
81LIBSYSTEM_DARWIN_LDFLAGS = -all_load -nostdlib -L/usr/lib/system -umbrella System $(LIBCOMPILER_RT_LDFLAGS) $(LIBDYLD_LDFLAGS) $(LIBSYSCALL_LDFLAGS) $(LIBM_LDFLAGS) $(LIBMALLOC_LDFLAGS) $(LIBPLATFORM_LDFLAGS) $(LIBPTHREAD_LDFLAGS) $(LIBPLATFORM_LDFLAGS) $(LIBC_LDFLAGS) $(LIBDISPATCH_LDFLAGS) $(LIBXPC_LDFLAGS)
82
ad3c9f2a
A
83// libPlatform.a architectures
84ARCH_FAMILY = $(ARCH_FAMILY_$(CURRENT_ARCH))
85ARCH_FAMILY_x86_64 = x86_64
86ARCH_FAMILY_i386 = i386
87ARCH_FAMILY_armv6 = arm
88ARCH_FAMILY_armv7 = arm
065eae9f 89ARCH_FAMILY_armv7s = arm
ad3c9f2a
A
90ARCH_FAMILY_armv7f = arm
91ARCH_FAMILY_armv7k = arm
b061a43b 92ARCH_FAMILY_arm64 = arm64
ad3c9f2a 93
6465356a 94// Platform target
70ad1dc8 95Platform_INCLUDED_SOURCE_FILE_NAMES = forceLibcToBuild.c $(Platform_INCLUDED_SOURCE_FILE_NAMES_gen)
6465356a 96Platform_INCLUDED_SOURCE_FILE_NAMES_gen = $(ARCH_FAMILY)/gen/*.c $(ARCH_FAMILY)/gen/*.s $(ARCH_FAMILY)/gen/*.S
6465356a 97
ad3c9f2a
A
98// FreeBSD target
99FreeBSD_CFLAGS = -include $(SRCROOT)/fbsdcompat/_fbsd_compat_.h
100FreeBSD_SEARCH_PATHS = $(SRCROOT)/fbsdcompat $(SRCROOT)/gdtoa $(SRCROOT)/gdtoa/FreeBSD
101FreeBSD_EXCLUDED_SOURCE_GDTOA = gdtoa/FreeBSD/machdep* gdtoa-strtopx.c
102// Include the correct parts of gdtoa per-arch
70ad1dc8 103FreeBSD_INCLUDED_SOURCE_FILE_NAMES = $(FreeBSD_INCLUDED_SOURCE_FILE_NAMES_$(ARCH_FAMILY))
ad3c9f2a
A
104FreeBSD_INCLUDED_SOURCE_FILE_NAMES_x86_64 = gdtoa-strtopx.c machdep_ldisx.c
105FreeBSD_INCLUDED_SOURCE_FILE_NAMES_i386 = $(FreeBSD_INCLUDED_SOURCE_FILE_NAMES_x86_64)
70ad1dc8
A
106FreeBSD_INCLUDED_SOURCE_FILE_NAMES_arm = machdep_ldisd.c
107FreeBSD_INCLUDED_SOURCE_FILE_NAMES_arm64 = $(FreeBSD_INCLUDED_SOURCE_FILE_NAMES_arm)
ad3c9f2a 108
ad3c9f2a
A
109// NetBSD target
110NetBSD_CFLAGS = -include $(SRCROOT)/nbsdcompat/_nbsd_compat_.h
111NetBSD_SEARCH_PATHS = $(SRCROOT)/nbsdcompat
112
113// TRE target
114TRE_CFLAGS = -DHAVE_CONFIG_H
115TRE_SEARCH_PATHS = $(SRCROOT)/regex/TRE $(SRCROOT)/regex/FreeBSD
116
117// Files per architecture to exclude from the non-platform builds (because optimised versions exist in Platform)
70ad1dc8
A
118BASE_INCLUDED_SOURCE_FILE_NAMES = $(BASE_INCLUDED_SOURCE_FILE_NAMES_$(ARCH_FAMILY))
119BASE_EXCLUDED_SOURCE_FILE_NAMES = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_$(ARCH_FAMILY)) $(BASE_EXCLUDED_SOURCE_FILE_NAMES_$(VARIANT_PLATFORM_NAME))
120BASE_EXCLUDED_SOURCE_FILE_NAMES_x86_64 = kvm.c nlist.c
121BASE_EXCLUDED_SOURCE_FILE_NAMES_arm64 = kvm.c nlist.c
ad3c9f2a
A
122
123// Rune support isn't included on iOS but there's no better way to exclude their complication
23e20b00 124BASE_EXCLUDED_SOURCE_FILE_NAMES_macosx = OSMemoryNotification.c
ad3c9f2a 125BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneos = frune.c login.c logout.c mbrune.c runedepreciated.c setinvalidrune.c getmntinfo64.c
23e20b00 126BASE_EXCLUDED_SOURCE_FILE_NAMES_iphonesimulator = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneos)
5f125488
A
127BASE_EXCLUDED_SOURCE_FILE_NAMES_appletvos = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneos)
128BASE_EXCLUDED_SOURCE_FILE_NAMES_appletvsimulator = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphonesimulator)
129BASE_EXCLUDED_SOURCE_FILE_NAMES_watchos = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneos)
130BASE_EXCLUDED_SOURCE_FILE_NAMES_watchsimulator = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphonesimulator)
b061a43b 131BASE_EXCLUDED_SOURCE_FILE_NAMES_bridgeos = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneos)
5f125488
A
132
133// TODO: Remove these legacy platform names:
134BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneosnano = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_watchos)
135BASE_EXCLUDED_SOURCE_FILE_NAMES_iphonesimulatornano = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_watchsimulator)
ad3c9f2a 136
70ad1dc8
A
137// Enable installapi
138SUPPORTS_TEXT_BASED_API = YES
139TAPI_VERIFY_MODE = Pedantic
140OTHER_TAPI_FLAGS = --no-infer-include-paths -umbrella System -extra-public-header $(TAPI_PUBLIC_HEADER_PATH) -extra-private-header $(TAPI_PRIVATE_HEADER_PATH)
141TAPI_PUBLIC_HEADER_PATH = $(TAPI_PUBLIC_HEADER_PATH_$(DEPLOYMENT_LOCATION))
142TAPI_PUBLIC_HEADER_PATH_NO = $(BUILT_PRODUCTS_DIR)$(PUBLIC_HEADERS_FOLDER_PATH)
143TAPI_PUBLIC_HEADER_PATH_YES = $(DSTROOT)$(PUBLIC_HEADERS_FOLDER_PATH)
144TAPI_PRIVATE_HEADER_PATH = $(TAPI_PRIVATE_HEADER_PATH_$(DEPLOYMENT_LOCATION))
145TAPI_PRIVATE_HEADER_PATH_NO = $(BUILT_PRODUCTS_DIR)$(PRIVATE_HEADERS_FOLDER_PATH)
146TAPI_PRIVATE_HEADER_PATH_YES = $(DSTROOT)$(PRIVATE_HEADERS_FOLDER_PATH)
147TAPI_HEADER_SEARCH_PATHS =
148
149// TODO: Remove this hack once Marzipan bringup is done
150VARIANT_PLATFORM_NAME = $(VARIANT_PLATFORM_NAME_$(RC_MARZIPAN))
151VARIANT_PLATFORM_NAME_ = $(PLATFORM_NAME)
152VARIANT_PLATFORM_NAME_YES = macosx