#!/bin/bash
+# ./autobuild.sh [user|u8m|uoffline|oob128|z1|4part|leakcheck|autoota|autootacli|obu|cm|ct] [debug|release] [clean]
+#
+# 通常三个参数可以用,每个是可选项,且三个参数输入的前后顺序可以随意。
+
+# 参数[debug|release]:
+# debug , 指定编译过程中生成完整的application.lst 编译会较慢,但查问题方便。
+# release , 指定编译过程中生成简化的application.lst 编译会较快,但查问题不方便。
+
+# 参数[clean]:
+# clean , 加此参数代表会清空output路径下对应的编译文件,重新编译,不加此参数属于增量编译,做release的时候,建议加clean参数。
+
+# 参数[user|u8m|uoffline|oob128|z1|4part|leakcheck|autoota|autootacli|obu|cm|ct]:
+# 此参数指定了要编译的不同配置版本。
+# 不加参数,为默认版本,nandflash资源为单分区。其他版本都是在此基础上的参数修改。
+# user, 取消串口打印
+# uoffline, 取消串口打印,开启离线日志(需要在调试ui上开启)
+# oob128, 编译nandflash的oob区为128的版本
+# z1, z1客户定制版本,修改了logo等内容。由于资源文件的变化,已经不能和现在的fd230的版本同步。
+# 4part, nandflash资源文件为4分区版本
+# leakcheck, 添加内存泄露检测的版本。
+# autoota, 添加autoota功能的版本,实际默认版本已经具备此能力。但需要在安全模式下才有。
+# autootacli, autoota的终端版本,对服务端进行升级的工具版本。
+# obu, 给公路设备做的接收端的演示版本,需要专门的手表,硬件不同。
+# cm, ChinaMobile 移动入库软件版本
+# ct, ChinaTelecom 电信入库软件版本
+#
version=HEAD
DATE=$(date +%Y%m%d_%H%M%S)
HOMEDIR=$PWD
DEFAULT_BUILD_TYPE=release
DEFAULT_TARGET_PACK_NAME=pack_brandy_native_js
-DEFAULT_CUSTOM_FW_VERSION=1.0.7
+DEFAULT_APPLICATION_NAME=brandy-native-js
+DEFAULT_RECOVERY_NAME=brandy-native-js-r
+DEFAULT_SSB_NAME=brandy-ssb
+DEFAULT_TARGET_PACK_NAME_USER=pack_brandy_native_js_user
+DEFAULT_APPLICATION_NAME_USER=brandy-native-js-user
+DEFAULT_CUSTOM_FW_VERSION=1.3.98
+
+TARGET_DATABASE_PATH=code/sdk/output/brandy/database_evb
TARGET_PACK_NAME=$DEFAULT_TARGET_PACK_NAME
+APPLICATION_NAME=$DEFAULT_APPLICATION_NAME
+RECOVERY_NAME=$DEFAULT_RECOVERY_NAME
RELEASE_BUILD=$DEFAULT_BUILD_TYPE
CLEAN=
-
+BUILD_NAME=
checkarguments()
{
if [ "$1" == "clean" ]
then
RELEASE_BUILD=release
fi
+
+if [ "$1" == "user" ]
+then
+TARGET_PACK_NAME=$DEFAULT_TARGET_PACK_NAME_USER
+APPLICATION_NAME=$DEFAULT_APPLICATION_NAME_USER
+BUILD_NAME=_USER
+fi
+if [ "$1" == "u8m" ]
+then
+TARGET_PACK_NAME=pack_brandy_native_js_u8m
+APPLICATION_NAME=brandy-native-js-u8m
+DEFAULT_SSB_NAME=brandy-ssb-u8m
+BUILD_NAME=_U8M
+fi
+
+if [ "$1" == "uoffline" ]
+then
+TARGET_PACK_NAME=pack_brandy_native_js_uoffline
+APPLICATION_NAME=brandy-native-js-uoffline
+BUILD_NAME=_OFFLINELOG
+fi
+
+if [ "$1" == "oob128" ]
+then
+TARGET_PACK_NAME=pack_brandy_native_js_oob128
+APPLICATION_NAME=brandy-native-js-oob128
+DEFAULT_SSB_NAME=brandy-ssb-oob128
+BUILD_NAME=_OOB128
+fi
+
+if [ "$1" == "z1" ]
+then
+TARGET_PACK_NAME=pack_brandy_native_js_z1
+APPLICATION_NAME=brandy-native-js-z1
+BUILD_NAME=_Z1
+fi
+
+if [ "$1" == "4part" ]
+then
+TARGET_PACK_NAME=pack_brandy_native_js_4part
+APPLICATION_NAME=brandy-native-js-4part
+RECOVERY_NAME=brandy-native-js-r-4part
+BUILD_NAME=_4PART
+fi
+if [ "$1" == "leakcheck" ]
+then
+TARGET_PACK_NAME=pack_brandy_native_js_leakcheck
+APPLICATION_NAME=brandy-native-js-leakcheck
+BUILD_NAME=_LEAKCHECK
+fi
+if [ "$1" == "autoota" ]
+then
+TARGET_PACK_NAME=pack_brandy_native_js_autoota
+APPLICATION_NAME=brandy-native-js-autoota
+BUILD_NAME=_AUTOOTA
+
+fi
+if [ "$1" == "autootacli" ]
+then
+TARGET_PACK_NAME=pack_brandy_native_js_autootacli
+APPLICATION_NAME=brandy-native-js-autootacli
+BUILD_NAME=_AUTOOTACLI
+fi
+if [ "$1" == "obu" ]
+then
+TARGET_PACK_NAME=pack_brandy_native_js_obu
+APPLICATION_NAME=brandy-native-js-obu
+BUILD_NAME=_OBU
+fi
+if [ "$1" == "cm" ]
+then
+TARGET_PACK_NAME=pack_brandy_native_js_cm
+APPLICATION_NAME=brandy-native-js-cm
+BUILD_NAME=_CM
+fi
+if [ "$1" == "ct" ]
+then
+TARGET_PACK_NAME=pack_brandy_native_js_ct
+APPLICATION_NAME=brandy-native-js-ct
+BUILD_NAME=_CT
+fi
+
}
CURRENT_BRANCH=`git branch |awk '$1=="*"{print $2}'`
COMMIT_ID=`git rev-parse HEAD`
SOURCE_MODIFIED=`git status --short`
cp_releasepackage()
{
- # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js/application.bin
- # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js/application.elf
- # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js/application.lst
- # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js/file.bin
- # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js-r/recovery.bin
- # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js-r/recovery.elf
- # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js-r/recovery.lst
- # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-ssb/ssb.bin
- # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-ssb/ssb.elf
- # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-ssb/ssb.lst
package_dir=$HOMEDIR/code/sdk/output/package/brandy/$TARGET_PACK_NAME/
- application_path=$package_dir/brandy-native-js/application.bin
- applicationelf_path=$package_dir/brandy-native-js/application.elf
- applicationlst_path=$package_dir/brandy-native-js/application.lst
- recovery_path=$package_dir/brandy-native-js-r/recovery.bin
- recoveryelf_path=$package_dir/brandy-native-js-r/recovery.elf
- recoverylst_path=$package_dir/brandy-native-js-r/recovery.lst
- ssb_path=$package_dir/brandy-ssb/ssb.bin
- ssbelf_path=$package_dir/brandy-ssb/ssb.elf
- ssblst_path=$package_dir/brandy-ssb/ssb.lst
+ application_path=$package_dir/$APPLICATION_NAME/application.bin
+ applicationelf_path=$package_dir/$APPLICATION_NAME/application.elf
+ applicationlst_path=$package_dir/$APPLICATION_NAME/application.lst
+ applicationmap_path=$package_dir/$APPLICATION_NAME/application.map
+ recovery_path=$package_dir/$RECOVERY_NAME/recovery.bin
+ recoveryelf_path=$package_dir/$RECOVERY_NAME/recovery.elf
+ recoverylst_path=$package_dir/$RECOVERY_NAME/recovery.lst
+ ssb_path=$package_dir/$DEFAULT_SSB_NAME/ssb.bin
+ ssbelf_path=$package_dir/$DEFAULT_SSB_NAME/ssb.elf
+ ssblst_path=$package_dir/$DEFAULT_SSB_NAME/ssb.lst
dspmain_path=$HOMEDIR/code/sdk/tools/pkg/bin/brandy/dsp/normal/dsp_main.bin
dspoverlay_path=$HOMEDIR/code/sdk/tools/pkg/bin/brandy/dsp/normal/dsp_overlay.bin
bt_path=$HOMEDIR/code/sdk/tools/pkg/bin/brandy/bt.bin
nv_path=$HOMEDIR/code/sdk/output/brandy/nv_bin/brandy_all_nv.bin
- resfile_path=$HOMEDIR/code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js/file.bin
+ resfile_path=$HOMEDIR/code/sdk/output/package/brandy/$TARGET_PACK_NAME/$APPLICATION_NAME/file.bin
filename=${TARGET_PACK_NAME}_${RELEASE_BUILD}_${DEFAULT_CUSTOM_FW_VERSION}_${DATE}_${USER}.fwpkg
- releasedir=$HOMEDIR/release/$TARGET_PACK_NAME/$RELEASE_BUILD/V${DEFAULT_CUSTOM_FW_VERSION}_${DATE}
+ releasedir=$HOMEDIR/release/$TARGET_PACK_NAME/$RELEASE_BUILD/V${DEFAULT_CUSTOM_FW_VERSION}_${DATE}${BUILD_NAME}
packsource=$HOMEDIR/code/sdk/tools/pkg/fwpkg/brandy/upload_app.fwpkg
echo do release copy
mkdir -p $releasedir/bin
- cp -r $application_path $applicationelf_path $applicationlst_path $releasedir/bin/
+ if [ -d $HOMEDIR/$TARGET_DATABASE_PATH ]
+ then
+ cp -r $HOMEDIR/$TARGET_DATABASE_PATH $releasedir/
+ fi
+ cp -r $application_path $applicationelf_path $applicationlst_path $applicationmap_path $releasedir/bin/
cp -r $recovery_path $recoveryelf_path $recoverylst_path $releasedir/bin/
cp -r $ssb_path $ssbelf_path $ssblst_path $releasedir/bin/
cp -r $bt_path $dspmain_path $dspoverlay_path $nv_path $releasedir/bin/
cp -r $resfile_path $releasedir/bin/
cp -r $HOMEDIR/build.log $releasedir/
- cp -r $HOMEDIR/cat1modem/* $releasedir/
+ cp -r $HOMEDIR/cat1modem/EG810MCNLAR06A01M08_VOLTE_OCPU_QPY_BETA0312* $releasedir/
cp $packsource $releasedir/$filename
-
+
echo $filename > $releasedir/readme.txt
echo branch name $CURRENT_BRANCH >> $releasedir/readme.txt
echo commit $COMMIT_ID >> $releasedir/readme.txt
cd $HOMEDIR/code/sdk/
echo ./build.py -nhso $CLEAN -$RELEASE_BUILD -build_time=$DATE -custom_fw_version=$DEFAULT_CUSTOM_FW_VERSION $TARGET_PACK_NAME 2>&1
- python ./build.py -nhso $CLEAN -$RELEASE_BUILD -build_time=$DATE $TARGET_PACK_NAME 2>&1
- # ./build.py $CLEAN -$RELEASE_BUILD -build_time=$DATE -custom_fw_version=$DEFAULT_CUSTOM_FW_VERSION $TARGET_PACK_NAME 2>&1
+if [ "$RELEASE_BUILD" == "debug" ]
+then
+ ./build.py -nhso $CLEAN -$RELEASE_BUILD -build_time=$DATE -custom_fw_version=$DEFAULT_CUSTOM_FW_VERSION $TARGET_PACK_NAME 2>&1
+else
+ ./build.py -nhso $CLEAN -$RELEASE_BUILD -build_time=$DATE -custom_fw_version=$DEFAULT_CUSTOM_FW_VERSION $TARGET_PACK_NAME 2>&1
+fi
#./build.py -nhso $CLEAN -$RELEASE_BUILD -build_time=$DATE $TARGET_PACK_NAME 2>&1
ret_code=$?
if [ $ret_code == 0 ]
checkarguments $1
checkarguments $2
checkarguments $3
+checkarguments $4
if [ "$CLEAN" == "-c" ]
then
echo $0 $TARGET_PACK_NAME $RELEASE_BUILD clean