将NDK以及mono源码解压到桌面的Mono目录,在mono源码目录执行以下脚本。

#!/bin/bash
BUILD_MAC_X64=0
BUILD_ARMv7_ANDROID=1
BUILD_I386_IOS_SIM=0
BUILD_ARMV7_IPHONE=0
BUILD_ARMV7S_IPHONE=0
BUILD_TARGET=mono_target




IOS_MIN_SDK=6.1
(
PWD=`pwd`
PREFIX=${PWD}/${BUILD_TARGET}






EXTRA_MAKE_FLAGS="-j4"




if [ $BUILD_MAC_X64 -eq 1 ]
then


echo "##################"
echo " x64 for MAC "
echo "##################"
(
rm -rf ${PREFIX}/mac

make clean
./configure -prefix="${PREFIX}/mac" —enable-nls=no
make ${EXTRA_MAKE_FLAGS}
make ${EXTRA_MAKE_FLAGS} install
)
fi


if [ $BUILD_ARMv7_ANDROID -eq 1 ]
then




echo "##################"
echo " armv7 for android"
echo "##################"
(
rm -rf ${PREFIX}/android/ARMv7


make clean


export NDK=/Users/user/Desktop/Mono/android-ndk-r10e
#$NDK/build/tools/make-standalone-toolchain.sh --platform=android-19 --install-dir=/Users/user/Desktop/Mono/tmp/my-android-toolchain --arch=arm
export PATH=/Users/user/Desktop/Mono/tmp/my-android-toolchain/bin:$PATH
export CC="arm-linux-androideabi-gcc -DPLATFORM_ANDROID"
export CXX=arm-linux-androideabi-g++
export AR=arm-linux-androideabi-ar
export AS=arm-linux-androideabi-as
export CPP=arm-linux-androideabi-cpp
export LD=arm-linux-androideabi-ld
export RANLIB=arm-linux-androideabi-ranlib
export STRIP=arm-linux-androideabi-strip
export SYSROOT=$NDK/plarforms/android-19/arch-arm

./configure -prefix="${PREFIX}/android/ARMv7" --host=armv7-linux-androideabi --enable-minimal=profiler,logging --with-tls=pthread --with-monotouch=no --without-mcs-docs --with-sigaltstack=no --disable-mcs-build --enable-nls=no
make ${EXTRA_MAKE_FLAGS}
make ${EXTRA_MAKE_FLAGS} install
)
fi


echo "##################"
echo " armv7 for android End "
echo "##################"




XCODEDIR=`xcode-select --print-path`




IOS_SDK=$(xcodebuild -showsdks | grep iphoneos | sort | head -n 1 | awk '{print $NF}')
SIM_SDK=$(xcodebuild -showsdks | grep iphonesimulator | sort | head -n 1 | awk '{print $NF}')




IPHONEOS_PLATFORM=${XCODEDIR}/Platforms/iPhoneOS.platform
IPHONEOS_SYSROOT=${IPHONEOS_PLATFORM}/Developer/SDKs/${IOS_SDK}.sdk




IPHONESIMULATOR_PLATFORM=${XCODEDIR}/Platforms/iPhoneSimulator.platform
IPHONESIMULATOR_SYSROOT=${IPHONESIMULATOR_PLATFORM}/Developer/SDKs/${SIM_SDK}.sdk




CC=clang
CFLAGS="-O2 -std=gnu99 -DHOST_IOS"
CXX=clang
CXXFLAGS="${CFLAGS} -stdlib=libc++"
LDFLAGS="-stdlib=libc++"
LIBS="-lc++ -lc++abi"
CPP="xcrun -sdk iphoneos cpp"
AR="xcrun -sdk iphoneos ar rcu"
CPPFLAGS="${CFLAGS}"




if [ $BUILD_ARMV7_IPHONE -eq 1 ]
then




echo "##################"
echo " armv7 for iPhone"
echo "##################"
(
rm -rf ${PREFIX}/armv7

make clean
./configure --enable-small-config=yes --with-ikvm-native=no --with-sigaltstack=no --with-tls=pthread --without-mcs-docs --disable-mcs-build --enable-nls=no --enable-minimal=profiler,logging,full_messages,reflection_emit,reflection_emit_save --build=x86_64-apple-darwin --host=armv7-apple-darwin --prefix="${PREFIX}/armv7" CC=clang "CFLAGS=${CFLAGS} -miphoneos-version-min=${IOS_MIN_SDK} -arch armv7 -isysroot ${IPHONEOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -arch armv7 -isysroot ${IPHONEOS_SYSROOT}" LDFLAGS="-arch armv7 -miphoneos-version-min=${IOS_MIN_SDK} ${LDFLAGS}" "LIBS=${LIBS}"
make ${EXTRA_MAKE_FLAGS}
make ${EXTRA_MAKE_FLAGS} install
)




fi
if [ $BUILD_ARMV7S_IPHONE -eq 1 ]
then
echo "###################"
echo " armv7s for iPhone"
echo "###################"
(
rm -rf ${PREFIX}/armv7s
make clean
./configure --enable-small-config=yes --with-ikvm-native=no --with-sigaltstack=no --with-tls=pthread --without-mcs-docs --disable-mcs-build --enable-nls=no --enable-minimal=profiler,logging,full_messages,reflection_emit,reflection_emit_save --build=x86_64-apple-darwin --host=armv7s-apple-darwin --prefix="${PREFIX}/armv7s" "CC=${CC}" "CFLAGS=${CFLAGS} -miphoneos-version-min=${IOS_MIN_SDK} -arch armv7s -isysroot ${IPHONEOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -arch armv7s -isysroot ${IPHONEOS_SYSROOT}" LDFLAGS="-arch armv7s -miphoneos-version-min=${IOS_MIN_SDK} ${LDFLAGS}" "LIBS=${LIBS}"
make ${EXTRA_MAKE_FLAGS}
make ${EXTRA_MAKE_FLAGS} install
)
fi




if [ $BUILD_I386_IOS_SIM -eq 1 ]
then
echo "###########################"
echo " i386 for iPhone Simulator"
echo "###########################"
(
rm -rf ${PREFIX}/sim
make clean
./configure --enable-small-config=yes --with-ikvm-native=no --with-sigaltstack=no --with-tls=pthread --without-mcs-docs --disable-mcs-build --enable-nls=no --enable-minimal=profiler,logging,full_messages,reflection_emit,reflection_emit_save --build=x86_64-apple-darwin --host=i386-apple-darwin --prefix="${PREFIX}/sim" "CC=${CC}" "CFLAGS=${CFLAGS} -miphoneos-version-min=${IOS_MIN_SDK} -arch i386 -isysroot ${IPHONESIMULATOR_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -arch i386 -isysroot ${IPHONESIMULATOR_SYSROOT}" LDFLAGS="-arch i386 -miphoneos-version-min=${IOS_MIN_SDK} ${LDFLAGS}" "LIBS=${LIBS}"
make ${EXTRA_MAKE_FLAGS}
make ${EXTRA_MAKE_FLAGS} install
)
fi




) 2>&1
#) >build.log 2>&1




echo "done"

更多相关文章

  1. Android(安卓)P系统设置之默认打开定位开关(默认使用位置服务)
  2. [置顶] Android开源项目和应用源码分析
  3. cling-java,android的协议栈
  4. 下载android 源码
  5. GIT和repo使用方法:下载内核 android源码包
  6. Android(安卓)Sudio 开发环境配置
  7. 打造自己的Android源码学习环境之五:编译Android源代码
  8. Android(安卓)5.0 Binder编译问题及解决方案
  9. Android(安卓)Studio重写方法时参数显示异常的解决方法

随机推荐

  1. [置顶] Android异步更新UI-线程池-Future
  2. 代码中进行RelativeLayout布局的修改添加
  3. Android中的JSON详细总结
  4. Android凭什么斩杀苹果: 硬件繁荣 开源系
  5. [置顶] 关于android安装sdk时找不到jdk的
  6. Android应用性能剖析全攻略
  7. 深入解析:Android热修复技术选择和原理
  8. Android中常用的位图操作(View与Bitmap转
  9. 【Android 开发】:UI控件之 Menu 菜单的的
  10. Android各版本查询和开启悬浮窗权限