在makefile中打印输出信息的方法是:$(warning xxxxx)或者$(error xxxxx)
输出变量方式为:$(warning $(XXX))
Android编译顺序小结
Android编译:
1、build.sh脚本: 该脚本根据传进来的参数选择编译的项目: 例如./build.sh XXX systemimage 因为$1=P729B_CN则会进入if语句中。
if [ "$1" = "XXX" ] ]; then source ./$1/customize.sh//执行定制目录拷贝脚本 ./build_blade.sh update-api//生成current.xml文件,更新api。 ./build_blade.sh $2 //根据传进来的第二个参数systemimage来编译版本。既:./build_mooncake.sh systemimage fi 2、build_XXX.sh脚本
通过上面我们可以看到,版本的编译进入了./build_XXX.sh systemimage命令的执行。在这个脚本中: source build/envsetup.sh > /dev/null ///设置环境变量 choosecombo Device releaseXXXeng //选择设备 make -j4 $1 //进行编译。这里相当于make -j4 systemimage 当然这里的-j4根据自己的机器配置来选择编译的级别。 其中source build/envsetup.sh > /dev/null 设置环境变量,也是作为mm的一个解析器;
choosecombo Device release XXX eng 这条中的choosecombo是Google自带的一个函数,实际上在这里他调用的其他几个文件: choosesim $1 选择目标设备 choosetype $2 选择目标代码格式 chooseproduct $3 选择产品平台(mooncake) choosevariant $4 选择版本的模式 set_stuff_for_environment 通过build/core/config.mk进行配置 printconfig 打印出我们刚才选择的信息 我们执行这条命令的时候,会直接打印出
============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=2.1-update1 TARGET_PRODUCT=XXX TARGET_BUILD_VARIANT=user
TARGET_SIMULATOR=false TARGET_BUILD_TYPE=release TARGET_ARCH=arm HOST_ARCH=x86 HOST_OS=linux HOST_BUILD_TYPE=release BUILD_ID=ERE27 ============================================ 而我们没有选择的余地,如果想自己diy版本,则可以直接执行choosecombo可以进行手动选择。 而我们在单独执行choosesim $1 ,在下面的函数中,我们看到,每次执行一次choosesim $1便会做一次set_stuff_for_environment
case `uname -s` in Linux) function choosesim() { echo "Build for the simulator or the device?" echo " 1. Device" echo " 2. Simulator" echo export TARGET_SIMULATOR=
local ANSWER while [ -z $TARGET_SIMULATOR ] do echo -n "Which would you like? [1] " if [ -z "$1" ] ; then read ANSWER else echo $1 ANSWER=$1 fi case $ANSWER in "") export TARGET_SIMULATOR=false ;; 1) export TARGET_SIMULATOR=false ;; Device) export TARGET_SIMULATOR=false ;; 2) export TARGET_SIMULATOR=true ;; Simulator) export TARGET_SIMULATOR=true ;; *) echo echo "I didn't understand your response. Please try again." echo ;; esac if [ -n "$1" ] ; then break fi done set_stuff_for_environment
} ;; *) choosecombo Device release mooncake设备
本篇文章来源于 Linux公社网站(www.) 原文链接:http://www./Linux/2011-05/35787.htm
|
|