forked from livecode/livecode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplatform.inc
More file actions
126 lines (111 loc) · 3.29 KB
/
platform.inc
File metadata and controls
126 lines (111 loc) · 3.29 KB
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# OSX options
DEVELOPER="${HOME}/Builds/Platforms/Xcode_3_2_6"
SDK="MacOSX10.5.sdk"
OSXGCCVERSION=4.2
OSXMIN="10.5"
# Generic options
export MAKEFLAGS="-j1"
# Was a platform specified?
if [ -z "${PLATFORM}" ] ; then
case $(uname) in
Darwin|Darwin64)
export PLATFORM="mac"
;;
*)
export PLATFORM="linux"
;;
esac
fi
# Which platform are we actually targeting?
case "${PLATFORM}" in
mac)
export ARCHS="i386 x86_64"
export CC_BASE="${DEVELOPER}/usr/bin/gcc-${OSXGCCVERSION} --sysroot=${DEVELOPER}/SDKs/${SDK} -isysroot ${DEVELOPER}/SDKs/${SDK} -mmacosx-version-min=${OSXMIN}"
export CXX_BASE="${DEVELOPER}/usr/bin/g++-${OSXGCCVERSION} --sysroot=${DEVELOPER}/SDKs/${SDK} -isysroot ${DEVELOPER}/SDKs/${SDK} -mmacosx-version-min=${OSXMIN}"
;;
linux)
export ARCHS="i386 x86_64"
export CC_BASE="clang"
export CXX_BASE="clang++"
;;
emscripten)
export ARCHS="js"
export EMMAKE="emmake"
export EMCONFIGURE="emconfigure"
;;
esac
# Allow the arch to be set manually
if [ ! -z "${CUSTOM_ARCH}" ] ; then
export ARCHS="${CUSTOM_ARCH}"
fi
if [ "${PLATFORM}" == "ios" ] ; then
source "${BASEDIR}/scripts/ios.inc"
fi
if [ "${PLATFORM}" == "android" ] ; then
source "${BASEDIR}/scripts/android.inc"
fi
function setArchs {
local SUBPLATFORM_INDEX=$1
export ARCHS=${IOS_ARCHS[$SUBPLATFORM_INDEX]}
}
function setCCForArch {
local ARCH=$1
local SUBPLATFORM_INDEX=$2
# Use the custom CC and CXX, if set
if [ ! -z "${CUSTOM_CC}" -a "${PLATFORM}" != "android" ] ; then
export CC="${CUSTOM_CC}"
export CXX="${CUSTOM_CXX}"
return
fi
case "${PLATFORM}" in
win32)
export CFLAGS="/MT"
export CXXFLAGS="/MT"
;;
mac)
export CC="${CC_BASE} -arch $1"
export CXX="${CXX_BASE} -arch $1"
;;
linux)
if [ "$1" == "x86_64" ] ; then
export CC="${CC_BASE} -m64"
export CXX="${CXX_BASE} -m64"
else
export CC="${CC_BASE} -m32"
export CXX="${CXX_BASE} -m32"
fi
;;
android)
if [ "$1" == "armv6" ] ; then
export CC="${ANDROID_CC} ${ANDROID_CFLAGS}"
export CXX="${ANDROID_CXX} ${ANDROID_CXXFLAGS}"
else
export CC="${ANDROID_CC} -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 ${ANDROID_CFLAGS}"
export CXX="${ANDROID_CXX} -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 ${ANDROID_CXXFLAGS}"
EXTRA_LDFLAGS="-march=armv7-a -Wl,--fix-cortex-a8"
fi
export LINK="${ANDROID_LINK} ${EXTRA_LDFLAGS} ${ANDROID_LDFLAGS}"
export LD="${LINK}"
;;
ios)
XCODE=${IOS_XCODE[$SUBPLATFORM_INDEX]}
SUBPLATFORM=${IOS_SUBPLATFORM[$SUBPLATFORM_INDEX]}
VERSION=${IOS_VERSION[$SUBPLATFORM_INDEX]}
export CROSS_TOP="${XCODE}/Platforms/${SUBPLATFORM}.platform/Developer"
export CROSS_SDK="${SUBPLATFORM}${VERSION}.sdk"
if [ "${ARCH}" == "armv7" -o "${ARCH}" == "armv7s" ] ; then
ARCH_FLAGS="-mthumb"
else
ARCH_FLAGS=
fi
if [ -x "${CROSS_TOP}/usr/bin/gcc" ] ; then
CCPATH="${CROSS_TOP}/usr/bin"
else
CCPATH="${XCODE}/usr/bin"
fi
export CC="${CCPATH}/gcc -arch ${ARCH} ${ARCH_FLAGS} -isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} -miphoneos-version-min=6.1"
export CXX="${CCPATH}/g++ -arch ${ARCH} ${ARCH_FLAGS} -isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} -miphoneos-version-min=6.1"
export LDFLAGS="-L${CROSS_TOP}/SDKs/${CROSS_SDK}/usr/lib -isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} -Wl,-dead_strip"
;;
esac
}