Darwin: Freshen gen scripts, remove old build-ios.sh
This commit is contained in:
67
build-ios.sh
67
build-ios.sh
@@ -1,67 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
PLATFORM_IOS=/Developer/Platforms/iPhoneOS.platform/
|
|
||||||
PLATFORM_IOS_SIM=/Developer/Platforms/iPhoneSimulator.platform/
|
|
||||||
SDK_IOS_VERSION="4.2"
|
|
||||||
MIN_IOS_VERSION="3.0"
|
|
||||||
OUTPUT_DIR="universal-ios"
|
|
||||||
|
|
||||||
build_target () {
|
|
||||||
local platform=$1
|
|
||||||
local sdk=$2
|
|
||||||
local arch=$3
|
|
||||||
local triple=$4
|
|
||||||
local builddir=$5
|
|
||||||
|
|
||||||
mkdir -p "${builddir}"
|
|
||||||
pushd "${builddir}"
|
|
||||||
export CC="${platform}"/Developer/usr/bin/gcc-4.2
|
|
||||||
export CFLAGS="-arch ${arch} -isysroot ${sdk} -miphoneos-version-min=${MIN_IOS_VERSION}"
|
|
||||||
../configure --host=${triple} && make
|
|
||||||
popd
|
|
||||||
}
|
|
||||||
|
|
||||||
# Build all targets
|
|
||||||
build_target "${PLATFORM_IOS}" "${PLATFORM_IOS}/Developer/SDKs/iPhoneOS${SDK_IOS_VERSION}.sdk/" armv6 arm-apple-darwin10 armv6-ios
|
|
||||||
build_target "${PLATFORM_IOS}" "${PLATFORM_IOS}/Developer/SDKs/iPhoneOS${SDK_IOS_VERSION}.sdk/" armv7 arm-apple-darwin10 armv7-ios
|
|
||||||
build_target "${PLATFORM_IOS_SIM}" "${PLATFORM_IOS_SIM}/Developer/SDKs/iPhoneSimulator${SDK_IOS_VERSION}.sdk/" i386 i386-apple-darwin10 i386-ios-sim
|
|
||||||
|
|
||||||
# Create universal output directories
|
|
||||||
mkdir -p "${OUTPUT_DIR}"
|
|
||||||
mkdir -p "${OUTPUT_DIR}/include"
|
|
||||||
mkdir -p "${OUTPUT_DIR}/include/armv6"
|
|
||||||
mkdir -p "${OUTPUT_DIR}/include/armv7"
|
|
||||||
mkdir -p "${OUTPUT_DIR}/include/i386"
|
|
||||||
|
|
||||||
# Create the universal binary
|
|
||||||
lipo -create armv6-ios/.libs/libffi.a armv7-ios/.libs/libffi.a i386-ios-sim/.libs/libffi.a -output "${OUTPUT_DIR}/libffi.a"
|
|
||||||
|
|
||||||
# Copy in the headers
|
|
||||||
copy_headers () {
|
|
||||||
local src=$1
|
|
||||||
local dest=$2
|
|
||||||
|
|
||||||
# Fix non-relative header reference
|
|
||||||
sed 's/<ffitarget.h>/"ffitarget.h"/' < "${src}/include/ffi.h" > "${dest}/ffi.h"
|
|
||||||
cp "${src}/include/ffitarget.h" "${dest}"
|
|
||||||
}
|
|
||||||
|
|
||||||
copy_headers armv6-ios "${OUTPUT_DIR}/include/armv6"
|
|
||||||
copy_headers armv7-ios "${OUTPUT_DIR}/include/armv7"
|
|
||||||
copy_headers i386-ios-sim "${OUTPUT_DIR}/include/i386"
|
|
||||||
|
|
||||||
# Create top-level header
|
|
||||||
(
|
|
||||||
cat << EOF
|
|
||||||
#ifdef __arm__
|
|
||||||
#include <arm/arch.h>
|
|
||||||
#ifdef _ARM_ARCH_6
|
|
||||||
#include "include/armv6/ffi.h"
|
|
||||||
#elif _ARM_ARCH_7
|
|
||||||
#include "include/armv7/ffi.h"
|
|
||||||
#endif
|
|
||||||
#elif defined(__i386__)
|
|
||||||
#include "include/i386/ffi.h"
|
|
||||||
#endif
|
|
||||||
EOF
|
|
||||||
) > "${OUTPUT_DIR}/ffi.h"
|
|
||||||
@@ -4,8 +4,6 @@ import re
|
|||||||
import os
|
import os
|
||||||
import errno
|
import errno
|
||||||
import collections
|
import collections
|
||||||
#developer_path =
|
|
||||||
|
|
||||||
|
|
||||||
class Platform(object):
|
class Platform(object):
|
||||||
pass
|
pass
|
||||||
@@ -57,11 +55,11 @@ class simulator_platform(Platform):
|
|||||||
sdk = 'iphonesimulator'
|
sdk = 'iphonesimulator'
|
||||||
arch = 'i386'
|
arch = 'i386'
|
||||||
short_arch = arch
|
short_arch = arch
|
||||||
triple = 'i386-apple-darwin10'
|
triple = 'i386-apple-darwin11'
|
||||||
sdkroot = sim_sdk_info['Path']
|
sdkroot = sim_sdk_info['Path']
|
||||||
version_min = '5.0'
|
version_min = '5.1.1'
|
||||||
|
|
||||||
prefix = "#if !defined(__arm__) && !defined(__arm64__) && !defined(__x86_64__) && defined(__i386__)\n\n"
|
prefix = "#ifdef __i386__\n\n"
|
||||||
suffix = "\n\n#endif"
|
suffix = "\n\n#endif"
|
||||||
|
|
||||||
|
|
||||||
@@ -71,9 +69,9 @@ class simulator64_platform(Platform):
|
|||||||
short_arch = arch
|
short_arch = arch
|
||||||
triple = 'x86_64-apple-darwin13'
|
triple = 'x86_64-apple-darwin13'
|
||||||
sdkroot = sim_sdk_info['Path']
|
sdkroot = sim_sdk_info['Path']
|
||||||
version_min = '5.0'
|
version_min = '7.0'
|
||||||
|
|
||||||
prefix = "#if !defined(__arm__) && !defined(__arm64__) && !defined(__i386__) && defined(__x86_64__)\n\n"
|
prefix = "#ifdef __x86_64__\n\n"
|
||||||
suffix = "\n\n#endif"
|
suffix = "\n\n#endif"
|
||||||
|
|
||||||
|
|
||||||
@@ -81,11 +79,11 @@ class device_platform(Platform):
|
|||||||
sdk = 'iphoneos'
|
sdk = 'iphoneos'
|
||||||
arch = 'armv7'
|
arch = 'armv7'
|
||||||
short_arch = 'arm'
|
short_arch = 'arm'
|
||||||
triple = 'arm-apple-darwin10'
|
triple = 'arm-apple-darwin11'
|
||||||
sdkroot = device_sdk_info['Path']
|
sdkroot = device_sdk_info['Path']
|
||||||
version_min = '5.0'
|
version_min = '5.1.1'
|
||||||
|
|
||||||
prefix = "#if !defined(__arm64__) && defined(__arm__)\n\n"
|
prefix = "#ifdef __arm__\n\n"
|
||||||
suffix = "\n\n#endif"
|
suffix = "\n\n#endif"
|
||||||
|
|
||||||
|
|
||||||
@@ -97,7 +95,7 @@ class device64_platform(Platform):
|
|||||||
sdkroot = device_sdk_info['Path']
|
sdkroot = device_sdk_info['Path']
|
||||||
version_min = '7.0'
|
version_min = '7.0'
|
||||||
|
|
||||||
prefix = "#if !defined(__arm__) && defined(__arm64__)\n\n"
|
prefix = "#ifdef __arm64__\n\n"
|
||||||
suffix = "\n\n#endif"
|
suffix = "\n\n#endif"
|
||||||
|
|
||||||
|
|
||||||
@@ -145,21 +143,21 @@ def move_source_tree(src_dir, dest_dir, dest_include_dir, arch=None, prefix=None
|
|||||||
suffix=suffix)
|
suffix=suffix)
|
||||||
elif relroot == 'arm':
|
elif relroot == 'arm':
|
||||||
move_dir(arch='arm',
|
move_dir(arch='arm',
|
||||||
prefix="#if !defined(__arm64__) && defined(__arm__)\n\n",
|
prefix="#ifdef __arm__\n\n",
|
||||||
suffix="\n\n#endif",
|
suffix="\n\n#endif",
|
||||||
files=['sysv.S', 'trampoline.S', 'ffi.c'])
|
files=['sysv.S', 'trampoline.S', 'ffi.c'])
|
||||||
elif relroot == 'aarch64':
|
elif relroot == 'aarch64':
|
||||||
move_dir(arch='arm64',
|
move_dir(arch='arm64',
|
||||||
prefix="#if !defined(__arm__) && defined(__arm64__)\n\n",
|
prefix="#ifdef __arm64__\n\n",
|
||||||
suffix="\n\n#endif",
|
suffix="\n\n#endif",
|
||||||
files=['sysv.S', 'ffi.c'])
|
files=['sysv.S', 'ffi.c'])
|
||||||
elif relroot == 'x86':
|
elif relroot == 'x86':
|
||||||
move_dir(arch='i386',
|
move_dir(arch='i386',
|
||||||
prefix="#if !defined(__arm__) && !defined(__arm64__) && !defined(__x86_64__) && defined(__i386__)\n\n",
|
prefix="#ifdef __i386__\n\n",
|
||||||
suffix="\n\n#endif",
|
suffix="\n\n#endif",
|
||||||
files=['darwin.S', 'ffi.c'])
|
files=['darwin.S', 'ffi.c'])
|
||||||
move_dir(arch='x86_64',
|
move_dir(arch='x86_64',
|
||||||
prefix="#if !defined(__arm__) && !defined(__arm64__) && !defined(__i386__) && defined(__x86_64__)\n\n",
|
prefix="#ifdef __x86_64__\n\n",
|
||||||
suffix="\n\n#endif",
|
suffix="\n\n#endif",
|
||||||
files=['darwin64.S', 'ffi64.c'])
|
files=['darwin64.S', 'ffi64.c'])
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
import subprocess
|
import subprocess
|
||||||
import re
|
import re
|
||||||
import os
|
import os
|
||||||
|
import errno
|
||||||
import collections
|
import collections
|
||||||
|
|
||||||
|
|
||||||
@@ -20,6 +21,16 @@ def sdkinfo(sdkname):
|
|||||||
ret[k] = v
|
ret[k] = v
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
def mkdir_p(path):
|
||||||
|
try:
|
||||||
|
os.makedirs(path)
|
||||||
|
except OSError as exc: # Python >2.5
|
||||||
|
if exc.errno == errno.EEXIST:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
raise
|
||||||
|
|
||||||
desktop_sdk_info = sdkinfo('macosx')
|
desktop_sdk_info = sdkinfo('macosx')
|
||||||
|
|
||||||
|
|
||||||
@@ -36,32 +47,32 @@ def latest_sdks():
|
|||||||
desktop_sdk = latest_sdks()
|
desktop_sdk = latest_sdks()
|
||||||
|
|
||||||
|
|
||||||
class desktop_platform_32(Platform):
|
class desktop32_platform(Platform):
|
||||||
sdk = 'macosx'
|
sdk = 'macosx'
|
||||||
arch = 'i386'
|
arch = 'i386'
|
||||||
name = 'mac32'
|
name = 'mac32'
|
||||||
triple = 'i386-apple-darwin10'
|
triple = 'i386-apple-darwin11'
|
||||||
sdkroot = desktop_sdk_info['Path']
|
sdkroot = desktop_sdk_info['Path']
|
||||||
|
version_min = '10.7'
|
||||||
|
|
||||||
prefix = "#if defined(__i386__) && !defined(__x86_64__)\n\n"
|
prefix = "#ifdef __i386__\n\n"
|
||||||
suffix = "\n\n#endif"
|
suffix = "\n\n#endif"
|
||||||
|
|
||||||
|
|
||||||
class desktop_platform_64(Platform):
|
class desktop64_platform(Platform):
|
||||||
sdk = 'macosx'
|
sdk = 'macosx'
|
||||||
arch = 'x86_64'
|
arch = 'x86_64'
|
||||||
name = 'mac'
|
name = 'mac'
|
||||||
triple = 'x86_64-apple-darwin10'
|
triple = 'x86_64-apple-darwin11'
|
||||||
sdkroot = desktop_sdk_info['Path']
|
sdkroot = desktop_sdk_info['Path']
|
||||||
|
version_min = '10.7'
|
||||||
|
|
||||||
prefix = "#if !defined(__i386__) && defined(__x86_64__)\n\n"
|
prefix = "#ifdef __x86_64__\n\n"
|
||||||
suffix = "\n\n#endif"
|
suffix = "\n\n#endif"
|
||||||
|
|
||||||
|
|
||||||
def move_file(src_dir, dst_dir, filename, file_suffix=None, prefix='', suffix=''):
|
def move_file(src_dir, dst_dir, filename, file_suffix=None, prefix='', suffix=''):
|
||||||
if not os.path.exists(dst_dir):
|
mkdir_p(dst_dir)
|
||||||
os.makedirs(dst_dir)
|
|
||||||
|
|
||||||
out_filename = filename
|
out_filename = filename
|
||||||
|
|
||||||
if file_suffix:
|
if file_suffix:
|
||||||
@@ -104,11 +115,11 @@ def move_source_tree(src_dir, dest_dir, dest_include_dir, arch=None, prefix=None
|
|||||||
suffix=suffix)
|
suffix=suffix)
|
||||||
elif relroot == 'x86':
|
elif relroot == 'x86':
|
||||||
move_dir(arch='i386',
|
move_dir(arch='i386',
|
||||||
prefix="#if defined(__i386__) && !defined(__x86_64__)\n\n",
|
prefix="#ifdef __i386__\n\n",
|
||||||
suffix="\n\n#endif",
|
suffix="\n\n#endif",
|
||||||
files=['darwin.S', 'ffi.c'])
|
files=['darwin.S', 'ffi.c'])
|
||||||
move_dir(arch='x86_64',
|
move_dir(arch='x86_64',
|
||||||
prefix="#if !defined(__i386__) && defined(__x86_64__)\n\n",
|
prefix="#ifdef __x86_64__\n\n",
|
||||||
suffix="\n\n#endif",
|
suffix="\n\n#endif",
|
||||||
files=['darwin64.S', 'ffi64.c'])
|
files=['darwin64.S', 'ffi64.c'])
|
||||||
|
|
||||||
@@ -122,7 +133,7 @@ def build_target(platform):
|
|||||||
os.makedirs(build_dir)
|
os.makedirs(build_dir)
|
||||||
env = dict(CC=xcrun_cmd('clang'),
|
env = dict(CC=xcrun_cmd('clang'),
|
||||||
LD=xcrun_cmd('ld'),
|
LD=xcrun_cmd('ld'),
|
||||||
CFLAGS='-arch %s -isysroot %s -mmacosx-version-min=10.6' % (platform.arch, platform.sdkroot))
|
CFLAGS='-arch %s -isysroot %s -mmacosx-version-min=%s' % (platform.arch, platform.sdkroot, platform.version_min))
|
||||||
working_dir = os.getcwd()
|
working_dir = os.getcwd()
|
||||||
try:
|
try:
|
||||||
os.chdir(build_dir)
|
os.chdir(build_dir)
|
||||||
@@ -145,8 +156,8 @@ def build_target(platform):
|
|||||||
def main():
|
def main():
|
||||||
move_source_tree('src', 'osx/src', 'osx/include')
|
move_source_tree('src', 'osx/src', 'osx/include')
|
||||||
move_source_tree('include', None, 'osx/include')
|
move_source_tree('include', None, 'osx/include')
|
||||||
build_target(desktop_platform_32)
|
build_target(desktop32_platform)
|
||||||
build_target(desktop_platform_64)
|
build_target(desktop64_platform)
|
||||||
|
|
||||||
for header_name, archs in headers_seen.iteritems():
|
for header_name, archs in headers_seen.iteritems():
|
||||||
basename, suffix = os.path.splitext(header_name)
|
basename, suffix = os.path.splitext(header_name)
|
||||||
|
|||||||
Reference in New Issue
Block a user