53 lines
1.3 KiB
Bash
Executable File
53 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
PLATFORM_NAME="${PLATFORM_NAME:-iphoneos}"
|
|
CURRENT_ARCH="${CURRENT_ARCH}"
|
|
|
|
if [ -z "$CURRENT_ARCH" ] || [ "$CURRENT_ARCH" == "undefined_arch" ]; then
|
|
# Xcode 10 beta sets CURRENT_ARCH to "undefined_arch", this leads to incorrect linker arg.
|
|
# it's better to rely on platform name as fallback because architecture differs between simulator and device
|
|
|
|
if [[ "$PLATFORM_NAME" == *"simulator"* ]]; then
|
|
CURRENT_ARCH="x86_64"
|
|
else
|
|
CURRENT_ARCH="armv7"
|
|
fi
|
|
fi
|
|
|
|
export CC="$(xcrun -find -sdk $PLATFORM_NAME cc) -arch $CURRENT_ARCH -isysroot $(xcrun -sdk $PLATFORM_NAME --show-sdk-path)"
|
|
export CXX="$CC"
|
|
|
|
# Remove automake symlink if it exists
|
|
if [ -h "test-driver" ]; then
|
|
rm test-driver
|
|
fi
|
|
|
|
./configure --host arm-apple-darwin
|
|
|
|
# Fix build for tvOS
|
|
cat << EOF >> src/config.h
|
|
|
|
/* Add in so we have Apple Target Conditionals */
|
|
#ifdef __APPLE__
|
|
#include <TargetConditionals.h>
|
|
#include <Availability.h>
|
|
#endif
|
|
|
|
/* Special configuration for AppleTVOS */
|
|
#if TARGET_OS_TV
|
|
#undef HAVE_SYSCALL_H
|
|
#undef HAVE_SYS_SYSCALL_H
|
|
#undef OS_MACOSX
|
|
#endif
|
|
|
|
/* Special configuration for ucontext */
|
|
#undef HAVE_UCONTEXT_H
|
|
#undef PC_FROM_UCONTEXT
|
|
#if defined(__x86_64__)
|
|
#define PC_FROM_UCONTEXT uc_mcontext->__ss.__rip
|
|
#elif defined(__i386__)
|
|
#define PC_FROM_UCONTEXT uc_mcontext->__ss.__eip
|
|
#endif
|
|
EOF
|