192 lines
6.0 KiB
Bash
192 lines
6.0 KiB
Bash
|
|
BUILD_SCRIPT_DIR=$(dirname `readlink -f $0`)
|
||
|
|
TOP_DIR=${BUILD_SCRIPT_DIR}/../../../..
|
||
|
|
|
||
|
|
BUILD_TYPE=userdebug
|
||
|
|
BUILD_MODE=r
|
||
|
|
MAKE_OTA_PACKAGE=no
|
||
|
|
START_BUILD=yes
|
||
|
|
MODEL_NAME=UP01
|
||
|
|
BUILD_TARGET=MT6893
|
||
|
|
|
||
|
|
BUILD_SYSTEM_TARGET=mssi_64_ww_armv82
|
||
|
|
SYSTEM_DIR=${TOP_DIR}/../system
|
||
|
|
SYSTEM_OUT_DIR=${SYSTEM_DIR}/out_sys/target/product/$BUILD_SYSTEM_TARGET
|
||
|
|
|
||
|
|
BUILD_VENDOR_TARGET=k6893v1_64_k419
|
||
|
|
VENDOR_DIR=${TOP_DIR}
|
||
|
|
VENDOR_OUT_DIR=${VENDOR_DIR}/out/target/product/$BUILD_VENDOR_TARGET
|
||
|
|
|
||
|
|
|
||
|
|
function build_sw_out_dir()
|
||
|
|
{
|
||
|
|
export SW_OUT_DIR=${VENDOR_DIR}/download_images
|
||
|
|
}
|
||
|
|
|
||
|
|
build_sw_out_dir
|
||
|
|
|
||
|
|
function print_env()
|
||
|
|
{
|
||
|
|
echo -e "\033[32m ---------------- print all build related parameters start ---------------- \033[0m"
|
||
|
|
build_sw_out_dir
|
||
|
|
echo -e "\033[32m system target:$BUILD_SYSTEM_TARGET; system dir:$SYSTEM_DIR; system out:$SYSTEM_OUT_DIR; lunch: sys_${BUILD_SYSTEM_TARGET}-${BUILD_TYPE}\033[0m"
|
||
|
|
echo -e "\033[32m vendor target:$BUILD_VENDOR_TARGET; vendor dir:$VENDOR_DIR; vendor out:$VENDOR_OUT_DIR; lucnh vnd_${BUILD_VENDOR_TARGET}-${BUILD_TYPE}\033[0m"
|
||
|
|
echo -e "\033[32m sw out dir:$SW_OUT_DIR\033[0m"
|
||
|
|
echo -e "\033[32m build type:$BUILD_TYPE; build mode:$BUILD_MODE; build ota:$MAKE_OTA_PACKAGE; model name:$MODEL_NAME\033[0m"
|
||
|
|
echo -e "\033[32m ---------------- print end ---------------- \033[0m"
|
||
|
|
}
|
||
|
|
|
||
|
|
function remove_build_prop()
|
||
|
|
{
|
||
|
|
if [ a$1 == a"sys" ] && [ -d "$SYSTEM_OUT_DIR" ]; then
|
||
|
|
find $SYSTEM_OUT_DIR -name "build.prop" -exec rm -f {} \;
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ a$1 == a"vendor" ] && [ -d "$VENDOR_OUT_DIR" ]; then
|
||
|
|
find $VENDOR_OUT_DIR -name "build.prop" -exec rm -f {} \;
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
function build()
|
||
|
|
{
|
||
|
|
build_sys
|
||
|
|
build_vendor
|
||
|
|
split_build
|
||
|
|
}
|
||
|
|
|
||
|
|
function build_sys()
|
||
|
|
{
|
||
|
|
echo -e "\033[32m ---------------- Start Build mssi ---------------- \033[0m"
|
||
|
|
cd ${SYSTEM_DIR}
|
||
|
|
remove_build_prop sys
|
||
|
|
source build/envsetup.sh
|
||
|
|
export OUT_DIR=out_sys
|
||
|
|
echo -e "\033[32m ---------------- lunch sys_${BUILD_SYSTEM_TARGET}-${BUILD_TYPE} ${OUT_DIR} ---------------- \033[0m"
|
||
|
|
lunch sys_${BUILD_SYSTEM_TARGET}-${BUILD_TYPE}
|
||
|
|
if [ a${BUILD_MODE} == a"new" ]; then
|
||
|
|
make clean
|
||
|
|
fi
|
||
|
|
echo -e "\033[32m ---------------- Start make ---------------- \033[0m"
|
||
|
|
make sys_images -j40 2>&1 | tee build_system.log
|
||
|
|
if [ "$(grep -c 'failed to build some targets' ${SYSTEM_DIR}/build_system.log)" -eq 1 ]; then
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
function build_vendor()
|
||
|
|
{
|
||
|
|
echo -e "\033[32m ---------------- Start Build vendor ---------------- \033[0m"
|
||
|
|
cd ${VENDOR_DIR}
|
||
|
|
remove_build_prop vendor
|
||
|
|
source build/envsetup.sh
|
||
|
|
export OUT_DIR=out
|
||
|
|
echo -e "\033[32m ---------------- lunch vnd_${BUILD_VENDOR_TARGET}-${BUILD_TYPE} ${OUT_DIR} ---------------- \033[0m"
|
||
|
|
lunch vnd_${BUILD_VENDOR_TARGET}-${BUILD_TYPE}
|
||
|
|
if [ a${BUILD_MODE} == a"new" ]; then
|
||
|
|
make clean
|
||
|
|
fi
|
||
|
|
make vnd_images krn_images -j40 2>&1 | tee build_vendor.log
|
||
|
|
if [ "$(grep -c 'failed to build some targets' ${VENDOR_DIR}/build_vendor.log)" -eq 1 ]; then
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
function build_sw_ver_out_dir()
|
||
|
|
{
|
||
|
|
export SW_OUT_DIR=${VENDOR_DIR}/${BUILD_TARGET}_${MODEL_NAME}_
|
||
|
|
swv=$(cat ${VENDOR_DIR}/vendor/unplugged/proprietary/build/UpVendorConfig.mk | grep 'CUSTOMER_PRODUCT_BUILD_NUMBER = ')
|
||
|
|
swv=${swv// /}
|
||
|
|
swv=${swv#*=}
|
||
|
|
swv=${swv//$'\r'}
|
||
|
|
if [ -n $swv ]; then
|
||
|
|
SW_OUT_DIR=${SW_OUT_DIR}${swv}_
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
function split_build()
|
||
|
|
{
|
||
|
|
build_sw_out_dir
|
||
|
|
|
||
|
|
cd ${VENDOR_DIR}
|
||
|
|
if [ a${MAKE_OTA_PACKAGE} == a"yes" ]; then
|
||
|
|
export out_folder=${SW_OUT_DIR}
|
||
|
|
#${BUILD_TYPE}_ota_$(date +%Y%m%d%H%M)
|
||
|
|
echo -e "\033[32m ---------------- split build ota package ---------------- \033[0m"
|
||
|
|
python ${SYSTEM_OUT_DIR}/images/split_build.py --system-dir ${SYSTEM_OUT_DIR}/images --vendor-dir ${VENDOR_OUT_DIR}/images --kernel-dir ${VENDOR_OUT_DIR}/images --output-dir ${out_folder} --otapackage
|
||
|
|
else
|
||
|
|
export out_folder=${SW_OUT_DIR}
|
||
|
|
#${BUILD_TYPE}
|
||
|
|
echo -e "\033[32m ---------------- split build ---------------- \033[0m"
|
||
|
|
python ${SYSTEM_OUT_DIR}/images/split_build.py --system-dir ${SYSTEM_OUT_DIR}/images --vendor-dir ${VENDOR_OUT_DIR}/images --kernel-dir ${VENDOR_OUT_DIR}/images --output-dir ${out_folder}
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
function remove_out_temp_dir()
|
||
|
|
{
|
||
|
|
rm -rf ${SW_OUT_DIR}/temp
|
||
|
|
}
|
||
|
|
|
||
|
|
trap remove_out_temp_dir EXIT
|
||
|
|
|
||
|
|
for arg in $*
|
||
|
|
do
|
||
|
|
case $arg in
|
||
|
|
-h|--help)
|
||
|
|
echo -e "\033[32m Usage:\n build_6707.sh [MT6877|mt6877]:reference 6707 build [userdebug|user]:userdebug is default [ota]:build ota image [split_ota]:packing ota only \n \033[0m"
|
||
|
|
echo -e "\033[32m [split]:packing images only [env_log]:print [new]:clean build [build_v]:vendor build only [build_sys]:system build only\n \033[0m"
|
||
|
|
echo -e "\033[32m Used the command of ./build_6707.sh will build userdebug sw \n \033[0m"
|
||
|
|
START_BUILD=no
|
||
|
|
print_env
|
||
|
|
break;
|
||
|
|
;;
|
||
|
|
MT6877|mt6877)
|
||
|
|
BUILD_VENDOR_TARGET=k6877v1_64_k419
|
||
|
|
BUILD_SYSTEM_TARGET=mssi_64_cn_armv82
|
||
|
|
BUILD_TARGET=MT6877
|
||
|
|
VENDOR_OUT_DIR=${VENDOR_DIR}/out/target/product/$BUILD_VENDOR_TARGET
|
||
|
|
SYSTEM_OUT_DIR=${SYSTEM_DIR}/out_sys/target/product/$BUILD_SYSTEM_TARGET
|
||
|
|
;;
|
||
|
|
split_ota)
|
||
|
|
START_BUILD=no
|
||
|
|
MAKE_OTA_PACKAGE=yes
|
||
|
|
split_build
|
||
|
|
break;
|
||
|
|
;;
|
||
|
|
split)
|
||
|
|
START_BUILD=no
|
||
|
|
split_build
|
||
|
|
break;
|
||
|
|
;;
|
||
|
|
ota)
|
||
|
|
MAKE_OTA_PACKAGE=yes
|
||
|
|
;;
|
||
|
|
userdebug|-d)
|
||
|
|
BUILD_TYPE=userdebug
|
||
|
|
;;
|
||
|
|
user|-u)
|
||
|
|
BUILD_TYPE=user
|
||
|
|
;;
|
||
|
|
new)
|
||
|
|
BUILD_MODE=new
|
||
|
|
;;
|
||
|
|
env_log)
|
||
|
|
print_env
|
||
|
|
;;
|
||
|
|
build_v)
|
||
|
|
START_BUILD=no
|
||
|
|
build_vendor
|
||
|
|
split_build
|
||
|
|
break;
|
||
|
|
;;
|
||
|
|
build_sys)
|
||
|
|
START_BUILD=no
|
||
|
|
build_sys
|
||
|
|
split_build
|
||
|
|
break;
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
done
|
||
|
|
if [ a${START_BUILD} == a"yes" ]; then
|
||
|
|
build
|
||
|
|
fi
|
||
|
|
|