Created
September 29, 2014 05:38
-
-
Save zilongshanren/29241e55455178d2aba1 to your computer and use it in GitHub Desktop.
build spidermonkey on ios
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
## this script is supposed to be run one directory below the original configure script | |
## usually in build-ios | |
MIN_IOS_VERSION=4.3 | |
IOS_SDK=7.1 | |
LIPO="xcrun -sdk iphoneos lipo" | |
STRIP="xcrun -sdk iphoneos strip" | |
cpus=$(sysctl hw.ncpu | awk '{print $2}') | |
# remove everything but the static library and this script | |
#ls | grep -v libjs_static.armv7.a | grep -v libjs_static.armv7s.a | grep -v build.sh | xargs rm -rf | |
# | |
# create i386 version (simulator) | |
# | |
#../configure --with-ios-target=iPhoneSimulator --with-ios-version=$IOS_SDK --with-ios-min-version=$MIN_IOS_VERSION --disable-shared-js --disable-tests --disable-ion --enable-llvm-hacks --enable-debug | |
../configure --with-ios-target=iPhoneSimulator --with-ios-version=$IOS_SDK --with-ios-min-version=$MIN_IOS_VERSION --with-ios-arch=i386 \ | |
--disable-shared-js --disable-tests --disable-ion --disable-jm --disable-tm --enable-llvm-hacks --disable-methodjit --disable-monoic --disable-polyic \ | |
--enable-optimize=-O3 --enable-strip --enable-install-strip \ | |
--disable-debug --without-intl-api --disable-threadsafe --enable-trace-jscalls | |
make -j$cpus | |
if (( $? )) ; then | |
echo "error when compiling i386 (iOS Simulator) version of the library" | |
exit | |
fi | |
mv libjs_static.a libjs_static.i386.a | |
# | |
# create x86_64 version (simulator) | |
# | |
#../configure --with-ios-target=iPhoneSimulator --with-ios-version=$IOS_SDK --with-ios-min-version=$MIN_IOS_VERSION --disable-shared-js --disable-tests --disable-ion --enable-llvm-hacks --enable-debug | |
../configure --with-ios-target=iPhoneSimulator --with-ios-version=$IOS_SDK --with-ios-min-version=$MIN_IOS_VERSION --with-ios-arch=x86_64 \ | |
--disable-shared-js --disable-tests --disable-ion --disable-jm --disable-tm --enable-llvm-hacks --disable-methodjit --disable-monoic --disable-polyic \ | |
--enable-optimize=-O3 --enable-strip --enable-install-strip \ | |
--disable-debug --without-intl-api --disable-threadsafe --enable-trace-jscalls | |
make -j$cpus | |
if (( $? )) ; then | |
echo "error when compiling x86_64 (iOS Simulator) version of the library" | |
exit | |
fi | |
mv libjs_static.a libjs_static.x86_64.a | |
# | |
# create ios version (armv7) | |
# | |
../configure --with-ios-target=iPhoneOS --with-ios-version=$IOS_SDK --with-ios-min-version=$MIN_IOS_VERSION --with-ios-arch=armv7 \ | |
--disable-shared-js --disable-tests --disable-ion --disable-jm --disable-tm --enable-llvm-hacks --disable-methodjit --disable-monoic --disable-polyic --disable-yarr-jit \ | |
--enable-optimize=-O3 --with-thumb=yes --enable-strip --enable-install-strip --without-intl-api --disable-debug --disable-threadsafe --enable-trace-jscalls | |
make -j$cpus | |
if (( $? )) ; then | |
echo "error when compiling iOS version of the library" | |
exit | |
fi | |
mv libjs_static.a libjs_static.armv7.a | |
# | |
# create ios version (armv7s) | |
# | |
#../configure --with-ios-target=iPhoneOS --with-ios-version=$IOS_SDK --with-ios-min-version=$MIN_IOS_VERSION --with-ios-arch=armv7s --disable-shared-js --disable-tests --disable-ion --disable-jm --disable-tm --enable-llvm-hacks --disable-methodjit --with-thumb=yes --enable-strip --enable-install-strip --disable-monoic --disable-polyic --disable-ion --enable-optimize=-O1 | |
../configure --with-ios-target=iPhoneOS --with-ios-version=$IOS_SDK --with-ios-min-version=$MIN_IOS_VERSION --with-ios-arch=armv7s \ | |
--disable-shared-js --disable-tests --disable-ion --disable-jm --disable-tm --enable-llvm-hacks --disable-methodjit --disable-monoic --disable-polyic --disable-yarr-jit \ | |
--enable-optimize=-O3 --with-thumb=yes --enable-strip --enable-install-strip --without-intl-api --disable-debug --disable-threadsafe --enable-trace-jscalls | |
make -j$cpus | |
if (( $? )) ; then | |
echo "error when compiling iOS version of the library" | |
exit | |
fi | |
mv libjs_static.a libjs_static.armv7s.a | |
# | |
# create ios version (arm64) | |
# | |
../configure --with-ios-target=iPhoneOS --with-ios-version=$IOS_SDK --with-ios-min-version=$MIN_IOS_VERSION --with-ios-arch=arm64 \ | |
--disable-shared-js --disable-tests --disable-ion --disable-jm --disable-tm --enable-llvm-hacks --disable-methodjit --disable-monoic --disable-polyic --disable-yarr-jit \ | |
--enable-optimize=-O3 --with-thumb=yes --enable-strip --enable-install-strip --without-intl-api --disable-debug --disable-threadsafe --enable-trace-jscalls | |
make -j$cpus | |
if (( $? )) ; then | |
echo "error when compiling iOS version of the library" | |
exit | |
fi | |
mv libjs_static.a libjs_static.arm64.a | |
# | |
# lipo create | |
# | |
if [ -e libjs_static.i386.a ] && [ -e libjs_static.x86_64.a ] && [ -e libjs_static.armv7.a ] && [ -e libjs_static.armv7s.a ] && [ -e libjs_static.arm64.a ] ; then | |
echo "creating fat version of the library" | |
$LIPO -create -output libjs_static.a libjs_static.i386.a libjs_static.x86_64.a libjs_static.armv7.a libjs_static.armv7s.a libjs_static.arm64.a | |
# remove debugging info | |
$STRIP -S libjs_static.a | |
$LIPO -info libjs_static.a | |
fi | |
# | |
# done | |
# | |
echo "*** DONE ***" | |
echo "If you want to use spidermonkey, copy the 'dist' directory to some accesible place" | |
echo "e.g. 'cp -pr dist ~/path/to/your/project'" | |
echo "and then add the proper search paths for headers and libraries in your Xcode project" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment