summaryrefslogtreecommitdiff
path: root/config/ios.config
blob: 20930b89f0a2c191ef7ab9f74a67b38369bc51f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# This file contains the default configuration to compile for iPhoneOS
# platforms. It contains sensitive enviroment configuration that
# shouldn't be modified unless you know what you are doing.
# PLEASE, DO NOT EDIT THIS FILE

import os
from cerbero.utils import shell
from cerbero.config import Architecture, DistroVersion

# We don't want anything from macports detected in configure and
# used later. System libs are passed through the -isysroot option
allow_system_libs=False

# The linker crashes if minversion is set to 6.0
# Setting it to 5.2 (that doesn't exist) makes the minversion
# effectively be 6.0 without making it crash
min_version='5.2'

if target_distro_version == DistroVersion.IOS_6_0:
    v = '6.0'
elif target_distro_version == DistroVersion.IOS_6_1:
    v = '6.1'
else:
  raise FatalError("Distro version %s not supported" %(target_distro_version))

if not ios_platform:
    if target_arch == Architecture.X86:
        ios_platform = 'iPhoneSimulator'
    else:
        ios_platform = 'iPhoneOS'

iphone_platform = '/Applications/Xcode.app/Contents/Developer/Platforms/%s.platform/Developer' % ios_platform
_toolchain_root = '%s/usr/bin' % iphone_platform
sysroot = os.path.join(iphone_platform, 'SDKs', '%s%s.sdk' %(ios_platform, v))

ccache = use_ccache and 'ccache ' or ''
extra_cflags='-Wall -g -Os'
if target_arch == Architecture.ARMv7:
    arch_cflags = ' -arch armv7 -mcpu=cortex-a8 -pipe'
    host = 'arm-apple-darwin10'
elif target_arch == Architecture.ARM:
    arch_cflags = ' -arch armv6 -mcpu=arm1176jzf-s -pipe'
    host = 'arm-apple-darwin10'
elif target_arch == Architecture.X86:
    arch_cflags = ' -arch i386 '
    host = 'i386-apple-darwin10'
    extra_cflags='-D__IPHONE_OS_VERSION_MIN_REQUIRED=%s0000' % min_version.replace('.', '')
elif target_arch == Architecture.UNIVERSAL:
    arch_cflags=''
else:
  raise FatalError("Arch not supported")

# Toolchain environment
os.environ['PATH'] = '%s:%s' % (_toolchain_root, os.environ['PATH'])
os.environ['CC']= 'llvm-gcc-4.2'
os.environ['OBJC'] = os.environ['CC']
os.environ['CXX']= 'llvm-g++-4.2'
os.environ['CPP']= "%s -E" % os.environ['CC']
os.environ['CXXPP']= os.environ['CPP']
os.environ['LD']= 'ld'
os.environ['AR']= 'ar'
os.environ['NM']= 'nm'
os.environ['NMEDIT']= 'nmedit'
os.environ['RANLIB']= 'ranlib'
os.environ['AS']= 'as'
os.environ['GAS']= '%s %s' % ('gas-preprocessor.pl', os.environ['CC'])
os.environ['CFLAGS'] = '%s -isysroot %s -miphoneos-version-min=%s %s' %(arch_cflags, sysroot, min_version, extra_cflags)
os.environ['OBJCFLAGS'] = os.environ['CFLAGS']
os.environ['LDFLAGS'] = '%s -isysroot %s  -Wl,-iphoneos_version_min,%s -Wl,-undefined,error -Wl,-headerpad_max_install_names' %(arch_cflags, sysroot, min_version)
os.environ['OBJLDFLAGS'] = os.environ['LDFLAGS']
os.environ['CPPFLAGS'] = '%s -isysroot %s' % (arch_cflags, sysroot)
os.environ['CXXFLAGS'] = os.environ['CFLAGS']


if ios_platform == "iPhoneOS":
    simulator_headers = '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator%s.sdk/usr/include' % v
    for missing_header in ["bzlib.h", "crt_externs.h"]:
        missing_path = os.path.join(sysroot, "usr", "include", missing_header)
        if not os.path.lexists(missing_path):
            # FIXME This is not smart especially as we need to sudo
            print "We need to create a syslink between %s and %s as they are missing in the device SDK" %(os.path.join(simulator_headers, missing_header), missing_path)
            shell.call("sudo ln -s %s %s" %(os.path.join(simulator_headers, missing_header), missing_path))


if use_ccache:
    os.environ['CC'] = 'ccache  %s' % os.environ['CC']
    os.environ['CXX'] = 'ccache  %s' % os.environ['CXX']

# For GLib
os.environ['glib_cv_stack_grows'] = 'yes'
os.environ['glib_cv_uscore'] = 'no'
os.environ['ac_cv_func_posix_getpwuid_r'] = 'yes'
os.environ['ac_cv_func_posix_getgrgid_r'] = 'yes'
os.environ['gt_cv_c_wchar_t'] = 'no'

# For pixman
os.environ['ac_cv_tls'] = 'none'