1133 lines
46 KiB
Bash
Executable File
1133 lines
46 KiB
Bash
Executable File
#!/bin/bash
|
|
LC_ALL=C
|
|
|
|
function dri_help(){
|
|
cat <<EOF
|
|
参数 作用
|
|
为空 cp 所有文件
|
|
--h,h custom_MemoryDevice.h
|
|
--xls,xls MemoryDeviceList_xxxx.xls
|
|
--dws,dws codegen_txxx.dws
|
|
--dts,dts yft_board_[dts_]config.h
|
|
注:需要在configs中配置 dts_cp_config=y 生效
|
|
--help,-h,help 帮助
|
|
|
|
--dists,dists 没有参数会检查当前分支lcm,cam与dists_info.config中当前分支的合法性
|
|
--p,p 生成当前分支的lcm和cam信息
|
|
--all,all 当前大分支的所有lcm和cam信息
|
|
--ch,ch 查看已经拉到本地的大分支信息,不需要 dists.log
|
|
注:需要在configs中配置 dists_check_config=y 生效
|
|
版本:v1.10.0
|
|
时间:2016-11-07
|
|
EOF
|
|
}
|
|
|
|
#CONFIG_LOG 决定了是否向dists.log 追加运行信息
|
|
# 为 y 写入,其它值为不写入
|
|
|
|
function yft_print_errors(){
|
|
echo -e "\033[01;31m${*}\033[0m"
|
|
[ "$CONFIG_LOG" == "y" ] && echo "" >> ${YFT_CONST_LOG_BUILD}
|
|
[ "$CONFIG_LOG" == "y" ] && echo "${*}" >> ${YFT_CONST_LOG_BUILD}
|
|
|
|
if [ "$CONFIG_WARNING" != "n" ];then
|
|
exit 1
|
|
fi
|
|
}
|
|
function yft_print_red(){
|
|
echo -e "\033[01;31m${*}\033[0m"
|
|
}
|
|
|
|
function yft_print_blue() {
|
|
echo -e "\033[01;34m${*}\033[0m"
|
|
}
|
|
|
|
function print_different(){
|
|
yft_print_red "ERROR: ${1} is difference "
|
|
yft_print_red "in file ${2%% *}:"
|
|
yft_print_red ${3}
|
|
yft_print_red "in file ${2#* }:"
|
|
yft_print_red ${4}
|
|
[ "$CONFIG_LOG" == "y" ] && echo -e "ERROR: ${1} is difference \nin file ${2%% *}:\n${3}\nin file ${2#* }:\n${4}" >> ${YFT_CONST_LOG_BUILD}
|
|
|
|
}
|
|
function dri_run(){
|
|
# [ "$CONFIG_WARNING" != "n" ] && set -e
|
|
local m_run_cmd="$*"
|
|
yft_print_blue "$m_run_cmd"
|
|
[ "$CONFIG_LOG" == "y" ] && echo "$m_run_cmd" >> ${YFT_CONST_LOG_BUILD}
|
|
${m_run_cmd}
|
|
}
|
|
|
|
function dri_ln(){
|
|
if [ "" == "$1" ] || [ "" == "$2" ];then
|
|
yft_print_errors "function dri_ln: Missing parameter"
|
|
return
|
|
fi
|
|
local dists_base=`basename $2`
|
|
local dists_dir=`dirname $2`
|
|
local PATH_CURRENT="`pwd`"
|
|
cd "$dists_dir"
|
|
if [ "" == "$3" ];then
|
|
ln -sf "${1/$dists_dir/.}" "$dists_base"
|
|
local tmp_log="create link: $dists_base -> ${1/$CONFIG_DIR/.}"
|
|
else
|
|
ln -sf "${1/$dists_dir/..}" "$3/$dists_base"
|
|
local tmp_log="create link: ${1/$dists_dir/..} -> $3/$dists_base"
|
|
fi
|
|
yft_print_blue "$tmp_log"
|
|
cd "$PATH_CURRENT"
|
|
[ "$CONFIG_LOG" == "y" ] && echo "$tmp_log" >> "${PATH_CURRENT}/${YFT_CONST_LOG_BUILD}"
|
|
}
|
|
|
|
function dri_cp_mem_h(){
|
|
|
|
[ -z "$FLASH_SIZE" ] && yft_print_blue "${MAIN} not found flash size"
|
|
local FLASH_H_NAME=custom_MemoryDevice
|
|
|
|
#add bom flash name check on 13/09/2017 by bcy
|
|
local tmp_mem_h_name=`ls dists/targets/$MAIN/$SUB/$mem_h_dists/ 2>/dev/null`
|
|
if [ -n "$tmp_mem_h_name" ];then
|
|
if [ "$tmp_mem_h_name" != "${FLASH_H_NAME}.h" ];then
|
|
yft_print_errors "Error: $tmp_mem_h_name should be not exist!"
|
|
return
|
|
fi
|
|
fi
|
|
#add share flash name check on 13/09/2017 by bcy
|
|
local tmp_mem_h_name=`ls dists/targets/$MAIN/share/$mem_h_dists/ 2>/dev/null`
|
|
if [ -n "$tmp_mem_h_name" ];then
|
|
if [ "$tmp_mem_h_name" != "${FLASH_H_NAME}.h" ];then
|
|
yft_print_errors "Error: $tmp_mem_h_name should be not exist!"
|
|
return
|
|
fi
|
|
fi
|
|
|
|
|
|
if [ -f "$mem_h_source/${FLASH_H_NAME}_${YFT_BOM_SUB}${FLASH_SIZE}.h" ];then
|
|
local MEM_NAME_FILE="$mem_h_source/${FLASH_H_NAME}_${YFT_BOM_SUB}${FLASH_SIZE}.h"
|
|
elif [ -f "$mem_h_source/${FLASH_H_NAME}_${YFT_BOM}${FLASH_SIZE}.h" ];then
|
|
local MEM_NAME_FILE="$mem_h_source/${FLASH_H_NAME}_${YFT_BOM}${FLASH_SIZE}.h"
|
|
elif [ -f "$mem_h_source/${FLASH_H_NAME}${FLASH_SIZE}_${YFT_MACH_TYPE}.h" ];then
|
|
local MEM_NAME_FILE="$mem_h_source/${FLASH_H_NAME}${FLASH_SIZE}_${YFT_MACH_TYPE}.h"
|
|
elif [ -f "$mem_h_source/${FLASH_H_NAME}${FLASH_SIZE}_${MTK_MACH_SUB_TYPE}.h" ];then
|
|
local MEM_NAME_FILE="$mem_h_source/${FLASH_H_NAME}${FLASH_SIZE}_${MTK_MACH_SUB_TYPE}.h"
|
|
elif [ -f "$mem_h_source/${FLASH_H_NAME}_${YFT_MACH_TYPE}${FLASH_SIZE}.h" ];then
|
|
local MEM_NAME_FILE="$mem_h_source/${FLASH_H_NAME}_${YFT_MACH_TYPE}${FLASH_SIZE}.h"
|
|
elif [ -f "$mem_h_source/${FLASH_H_NAME}_${YFT_MACH_TYPE}.h" ];then
|
|
local MEM_NAME_FILE="$mem_h_source/${FLASH_H_NAME}_${YFT_MACH_TYPE}.h"
|
|
else
|
|
yft_print_errors "Not found $mem_h_source/${FLASH_H_NAME}${FLASH_SIZE}.h"
|
|
return
|
|
fi
|
|
echo
|
|
dri_run "cp -aL ${MEM_NAME_FILE} ${mem_h_dists}/${FLASH_H_NAME}.h"
|
|
}
|
|
|
|
function dri_xls_read_config(){
|
|
source "${xls_source}/xls_configs"
|
|
eval "MACH_TYPE_TMP=\$${YFT}"
|
|
if [ "$MACH_TYPE_TMP" != "" ];then
|
|
local MACH_TYPE_TMP_SOURCE=`echo $MACH_TYPE_TMP|cut -d : -f 1`
|
|
local MACH_TYPE_TMP_DISTS=`echo $MACH_TYPE_TMP|cut -d : -f 2`
|
|
if [ "$MACH_TYPE_TMP_SOURCE" == '' ] || [ "$MACH_TYPE_TMP_DISTS" == '' ];then
|
|
yft_print_errors "Error:in file ${xls_source}/xls_configs: ${YFT}=$MACH_TYPE_TMP"
|
|
return
|
|
fi
|
|
|
|
MACH_TYPE=$MACH_TYPE_TMP_SOURCE
|
|
XLS_MACH_TYPE_DISTS=$MACH_TYPE_TMP_DISTS
|
|
fi
|
|
}
|
|
|
|
function dri_cp_xls(){
|
|
|
|
local XLS_NAME=MemoryDeviceList
|
|
local FLASH_SIZE_SUFFIX=`echo $FLASH_SIZE | awk 'match($0,"_[0-9]+g[0-9]+g([a-zA-Z]+)",a){print a[1]}'`
|
|
[ "$FLASH_SIZE_SUFFIX" != "" ] && FLASH_SIZE_SUFFIX="_$FLASH_SIZE_SUFFIX"
|
|
MACH_TYPE=`echo $YFT|cut -d '_' -f 1`
|
|
MACH_TYPE=`echo "MT${MACH_TYPE:3}"|tr '[a-z]' '[A-Z]'`
|
|
XLS_MACH_TYPE_DISTS=$MACH_TYPE
|
|
#vvvvvv flash_configs 的处理 vvvvvv
|
|
if [ -f "${xls_source}/xls_configs" ];then
|
|
dri_xls_read_config
|
|
fi
|
|
# echo "type:$MACH_TYPE"
|
|
#vvvvvv flash_configs 的处理 vvvvvv
|
|
|
|
if [ -f "$xls_source/${XLS_NAME}_${MACH_TYPE}${FLASH_SIZE_SUFFIX}_${YFT_BOM_SUB}.xls" ];then
|
|
local FLASH_CONFIG_XLS_NAME=${XLS_NAME}_${MACH_TYPE}${FLASH_SIZE_SUFFIX}_${YFT_BOM_SUB}.xls
|
|
elif [ -f "$xls_source/${XLS_NAME}_${MACH_TYPE}${FLASH_SIZE_SUFFIX}_${YFT_BOM}.xls" ];then
|
|
local FLASH_CONFIG_XLS_NAME=${XLS_NAME}_${MACH_TYPE}${FLASH_SIZE_SUFFIX}_${YFT_BOM}.xls
|
|
elif [ -f "$xls_source/${XLS_NAME}_${MACH_TYPE}${FLASH_SIZE_SUFFIX}.xls" ];then
|
|
local FLASH_CONFIG_XLS_NAME=${XLS_NAME}_${MACH_TYPE}${FLASH_SIZE_SUFFIX}.xls
|
|
else
|
|
yft_print_errors "Not found $xls_source/${XLS_NAME}_${MACH_TYPE}${FLASH_SIZE_SUFFIX}.xls"
|
|
return
|
|
fi
|
|
echo
|
|
dri_run "cp -aL ${xls_source}/${FLASH_CONFIG_XLS_NAME} ${xls_dists}/${XLS_NAME}_${XLS_MACH_TYPE_DISTS}.xls"
|
|
}
|
|
|
|
function dri_dws_read_config(){
|
|
[ ! -f "${dws_source}/dws_configs" ] && \
|
|
yft_print_errors "Not found ${dws_source}/dws_configs" && exit 1
|
|
|
|
local config=`cat "${dws_source}/dws_configs" | grep -E "^[^#]+[ \"']${YFT}[ \"']"`
|
|
[ -z "$config" ] && yft_print_errors "error:in file ${dws_source}/dws_configs: \"${YFT}\" is not found" && exit 1
|
|
if [[ `echo "$config"|wc -l` > 1 ]];then
|
|
yft_print_red "error:in file ${dws_source}/dws_configs: \"${YFT}\" is repeated definition:"
|
|
cat "${dws_source}/dws_configs" | grep -nE "^[^#]+[ \"']${YFT}[ \"']" | grep -E --color=always "^[0-9]+:"
|
|
yft_print_errors "Read ${dws_source}/dws_configs failed"
|
|
exit 1
|
|
fi
|
|
DWS_SUFFIX=`echo $config | cut -d '=' -f 1`
|
|
DWS_SUFFIX="_`echo $DWS_SUFFIX`"
|
|
[ -z "${DWS_SUFFIX}" ] && yft_print_errors "In file ${dws_source}/dws_configs: syntax error" && exit 1
|
|
}
|
|
|
|
function dri_cp_dws(){
|
|
local DWS_NAME=codegen
|
|
echo
|
|
export DWS_SUFFIX=''
|
|
[ "${dws_read_config}" == "y" ] && dri_dws_read_config
|
|
|
|
if [ -f "${dws_source}/${DWS_NAME}_${YFT_BOM_SUB}${DWS_SUFFIX}.dws" ];then
|
|
local DWS_NAME_FILE=${DWS_NAME}_${YFT_BOM_SUB}${DWS_SUFFIX}.dws
|
|
elif [ -f "${dws_source}/${DWS_NAME}_${YFT_BOM}${DWS_SUFFIX}.dws" ];then
|
|
local DWS_NAME_FILE=${DWS_NAME}_${YFT_BOM}${DWS_SUFFIX}.dws
|
|
else
|
|
yft_print_errors "Not found ${dws_source}/${DWS_NAME}_${YFT_BOM}${DWS_SUFFIX}.dws"
|
|
return
|
|
fi
|
|
|
|
for each in $dws_dists;do
|
|
dri_run "cp -aL ${dws_source}/${DWS_NAME_FILE} ${each}/${DWS_NAME}.dws"
|
|
done
|
|
}
|
|
|
|
function dri_cp_dts(){
|
|
echo
|
|
|
|
local BOARD_NAME_FILE=''
|
|
local DIS_DIS_INCLUDE_PATH="yft_include"
|
|
for each in $BOARD_LIST;do
|
|
if [ -f "${dts_source}/${YFT_BOM_SUB}_${each}" ];then
|
|
BOARD_NAME_FILE=${YFT_BOM_SUB}_${each}
|
|
elif [ -f "${dts_source}/${YFT_BOM}_${each}" ];then
|
|
BOARD_NAME_FILE=${YFT_BOM}_${each}
|
|
else
|
|
BOARD_NAME_FILE=''
|
|
yft_print_errors "Not found ${dts_source}/${YFT_BOM}_${each}"
|
|
fi
|
|
if [ ! -z "$BOARD_NAME_FILE" ];then
|
|
dri_ln "${dts_source}/${BOARD_NAME_FILE}" "${dts_dists}/${each}" "${DIS_DIS_INCLUDE_PATH}"
|
|
# dri_run "cp -aL ${dts_source}/${BOARD_NAME_FILE} ${dts_dists}/${DIS_DIS_INCLUDE_PATH}/${each}"
|
|
|
|
fi
|
|
done
|
|
}
|
|
|
|
function dri_cp_imgsensorh(){
|
|
echo
|
|
|
|
if [ "$MTK_MACH_TYPE" == "mt6761" ];then
|
|
echo "$MTK_MACH_TYPE kd_imgsensor.h no need for links at the moment"
|
|
elif [ "$MTK_MACH_TYPE" == "mt6762" ];then
|
|
echo "$MTK_MACH_TYPE kd_imgsensor.h no need for links at the moment"
|
|
elif [ "$MTK_MACH_TYPE" == "mt6765" ];then
|
|
echo "$MTK_MACH_TYPE kd_imgsensor.h no need for links at the moment"
|
|
elif [ "$MTK_MACH_TYPE" == "mt6739" ];then
|
|
echo "$MTK_MACH_TYPE kd_imgsensor.h no need for links at the moment"
|
|
elif [ "$MTK_MACH_TYPE" == "mt6769" ];then
|
|
echo "$MTK_MACH_TYPE kd_imgsensor.h no need for links at the moment"
|
|
elif [ "$MTK_MACH_TYPE" == "mt6771" ];then
|
|
echo "$MTK_MACH_TYPE kd_imgsensor.h no need for links at the moment"
|
|
elif [ "$MTK_MACH_TYPE" == "mt6779" ];then
|
|
echo "$MTK_MACH_TYPE kd_imgsensor.h no need for links at the moment"
|
|
elif [ "$MTK_MACH_TYPE" == "mt6580" ];then
|
|
echo "$MTK_MACH_TYPE kd_imgsensor.h no need for links at the moment"
|
|
elif [ "$MTK_MACH_TYPE" == "mt6757" ];then
|
|
echo "$MTK_MACH_TYPE kd_imgsensor.h no need for links at the moment"
|
|
elif [ "$MTK_MACH_TYPE" == "mt6873" ];then
|
|
echo "$MTK_MACH_TYPE kd_imgsensor.h no need for links at the moment"
|
|
elif [ "$MTK_MACH_TYPE" == "mt6853" ];then
|
|
echo "$MTK_MACH_TYPE kd_imgsensor.h no need for links at the moment"
|
|
elif [ "$MTK_MACH_TYPE" == "mt6833" ];then
|
|
echo "$MTK_MACH_TYPE kd_imgsensor.h no need for links at the moment"
|
|
elif [ "$MTK_MACH_TYPE" == "mt6877" ];then
|
|
echo "$MTK_MACH_TYPE kd_imgsensor.h no need for links at the moment"
|
|
elif [ "$MTK_MACH_TYPE" == "mt6789" ];then
|
|
echo "$MTK_MACH_TYPE kd_imgsensor.h no need for links at the moment"
|
|
elif [ "$MTK_MACH_TYPE" == "mt6885" ];then
|
|
echo "$MTK_MACH_TYPE kd_imgsensor.h no need for links at the moment"
|
|
elif [ "$MTK_MACH_TYPE" == "mt6893" ];then
|
|
echo "$MTK_MACH_TYPE kd_imgsensor.h no need for links at the moment"
|
|
elif [ "$MTK_MACH_TYPE" == "mt6891" ];then
|
|
echo "$MTK_MACH_TYPE kd_imgsensor.h no need for links at the moment"
|
|
else
|
|
rm device/mediatek/common/kernel-headers/kd_imgsensor.h
|
|
dri_ln "../../../../${KERNEL_DIR}/drivers/misc/mediatek/imgsensor/inc/kd_imgsensor.h" "device/mediatek/common/kernel-headers/kd_imgsensor.h"
|
|
fi
|
|
}
|
|
|
|
function get_mk_list(){
|
|
local mk=$1 mod=$2
|
|
local list=`cat ${mk} | grep "^${mod}"|cut -d '=' -f 2|sed "s/\"\|\'//g"|tr ' ' '\n'|sort`
|
|
echo ${list//\"/}|tr ' ' '\n'|sort
|
|
}
|
|
|
|
function yft_is_yft(){
|
|
local YFT_CONST_DIR_PROJECT_FLAG=`grep "YFT_CONST_DIR_PROJECT_FLAG=" -m1 -r dists/scripts/main|cut -d '=' -f2|sed "s/['\"]//g"`
|
|
|
|
[ ! -d "${DISTS_PRJT_DIR}/${YFT_CONST_DIR_PROJECT_FLAG}" ] && yft_print_red "Not found ${DISTS_PRJT_DIR}/${YFT_CONST_DIR_PROJECT_FLAG}" 1>&2 && return 1
|
|
|
|
export YFT_HAL_MK=$(find ${DISTS_PRJT_DIR}/${YFT_CONST_DIR_PROJECT_FLAG} -name ProjectConfig.mk -print)
|
|
if [ "1" -ne "`echo "${YFT_HAL_MK}"| wc -l`" ]; then
|
|
yft_print_red "error: There are NOT ONLY one project.mk in ${DISTS_PRJT_DIR}!"
|
|
return 1
|
|
fi
|
|
# if [ -z "$YFT" ];then
|
|
YFT=$(echo ${YFT_HAL_MK} | sed "s|.*${YFT_CONST_DIR_PROJECT_FLAG}/||g" | sed 's|/.*||g')
|
|
# fi
|
|
|
|
echo "yft_is_yft ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
|
|
echo "yft_is_yft YFT_MACH_TYPE=$YFT_MACH_TYPE"
|
|
echo "yft_is_yft MTK_MACH_TYPE=$MTK_MACH_TYPE"
|
|
echo "yft_is_yft YFT_HAL_CAM_DIR=$YFT_HAL_CAM_DIR"
|
|
echo "yft_is_yft YFT_HAL_LENS_DIR=$YFT_HAL_LENS_DIR"
|
|
echo "yft_is_yft ARM_DIR=$ARM_DIR"
|
|
echo "yft_is_yft KERNEL_DIR=$KERNEL_DIR"
|
|
echo "yft_is_yft ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
|
|
if [ "$MTK_MACH_TYPE" == "mt6789" ];then
|
|
export YFT_LK_MK=${DISTS_PRJT_DIR}/vendor/mediatek/proprietary/bootable/bootloader/lk2/project/yft_bootable_config.mk
|
|
export YFT_LK_LCM_DIR=vendor/mediatek/proprietary/bootable/bootloader/lk2/dev/lcm
|
|
else
|
|
export YFT_LK_MK=${DISTS_PRJT_DIR}/vendor/mediatek/proprietary/bootable/bootloader/lk/project/yft_bootable_config.mk
|
|
export YFT_LK_LCM_DIR=vendor/mediatek/proprietary/bootable/bootloader/lk/dev/lcm
|
|
fi
|
|
|
|
if [ "$YFT_37T_MACH_TYPE" == "true" ];then
|
|
export YFT_KERNEL_CAM_DIR=$KERNEL_DIR/drivers/misc/mediatek/imgsensor/src/mt6735
|
|
elif [ "$MTK_MACH_TYPE" == "mt6762" ];then
|
|
export YFT_KERNEL_CAM_DIR=$KERNEL_DIR/drivers/misc/mediatek/imgsensor/src/mt6765
|
|
elif [ "$MTK_MACH_TYPE" == "mt6765" ];then
|
|
export YFT_KERNEL_CAM_DIR=$KERNEL_DIR/drivers/misc/mediatek/imgsensor/src/mt6765
|
|
else
|
|
export YFT_KERNEL_CAM_DIR=$KERNEL_DIR/drivers/misc/mediatek/imgsensor/src/$MTK_MACH_TYPE
|
|
fi
|
|
export YFT_KERNEL_LCM_DIR=$KERNEL_DIR/drivers/misc/mediatek/lcm
|
|
|
|
if [ "$MTK_MACH_TYPE" == "mt6789" ];then
|
|
export YFT_KERNEL_MK_USR=${DISTS_PRJT_DIR}/$KERNEL_DIR/arch/${ARM_DIR}/configs/mgk_64_k510_defconfig
|
|
else
|
|
export YFT_KERNEL_MK_DEBUG=${DISTS_PRJT_DIR}/$KERNEL_DIR/arch/${ARM_DIR}/configs/${YFT}_debug_defconfig
|
|
export YFT_KERNEL_MK_USR=${DISTS_PRJT_DIR}/$KERNEL_DIR/arch/${ARM_DIR}/configs/${YFT}_defconfig
|
|
fi
|
|
|
|
if [ -f "${DISTS_PRJT_DIR}/$KERNEL_DIR/arch/${ARM_DIR}/configs/yft_kernel_config" ];then
|
|
export YFT_KERNEL_MK_DEBUG=${DISTS_PRJT_DIR}/$KERNEL_DIR/arch/${ARM_DIR}/configs/yft_kernel_config
|
|
if [ "$MTK_MACH_TYPE" == "mt6789" ];then
|
|
local lk_lcmlist=`get_mk_list ${YFT_LK_MK} MTK_LCM_LIST_SUPPORT`
|
|
export k_lcmlist_eng=`get_mk_list ${YFT_LK_MK} MTK_LCM_LIST_SUPPORT`
|
|
else
|
|
local lk_lcmlist=`get_mk_list ${YFT_LK_MK} CUSTOM_LK_LCM`
|
|
export k_lcmlist_eng=`get_mk_list ${YFT_LK_MK} CUSTOM_LK_LCM`
|
|
fi
|
|
export k_camlist_eng=`get_mk_list ${YFT_KERNEL_MK_DEBUG} CONFIG_CUSTOM_KERNEL_IMGSENSOR`
|
|
|
|
echo bob.chen-checkconfig41 $k_lcmlist_eng
|
|
echo bob.chen-checkconfig42 $k_camlist_eng
|
|
echo bob.chen-checkconfig43 ${YFT_KERNEL_MK_DEBUG}
|
|
|
|
|
|
[[ "$lk_lcmlist" != "$k_lcmlist_eng" ]] && print_different LCM "${YFT_LK_MK} ${YFT_KERNEL_MK_DEBUG}" "$lk_lcmlist" "$k_lcmlist_eng" && return 1
|
|
elif [ -f "$YFT_KERNEL_MK_DEBUG" ];then
|
|
|
|
if [ "$MTK_MACH_TYPE" == "mt6789" ];then
|
|
local lk_lcmlist=`get_mk_list ${YFT_LK_MK} MTK_LCM_LIST_SUPPORT`
|
|
export k_lcmlist_eng=`get_mk_list ${YFT_LK_MK} MTK_LCM_LIST_SUPPORT`
|
|
else
|
|
local lk_lcmlist=`get_mk_list ${YFT_LK_MK} CUSTOM_LK_LCM`
|
|
export k_lcmlist_eng=`get_mk_list ${YFT_LK_MK} CUSTOM_LK_LCM`
|
|
fi
|
|
local k_lcmlist_usr=`get_mk_list ${YFT_KERNEL_MK_USR} CONFIG_CUSTOM_KERNEL_LCM`
|
|
export k_camlist_eng=`get_mk_list ${YFT_KERNEL_MK_DEBUG} CONFIG_CUSTOM_KERNEL_IMGSENSOR`
|
|
local k_camlist_usr=`get_mk_list ${YFT_KERNEL_MK_USR} CONFIG_CUSTOM_KERNEL_IMGSENSOR`
|
|
|
|
echo bob.chen-checkconfig3 $k_camlist_eng
|
|
|
|
[[ "$k_lcmlist_eng" != "$k_lcmlist_usr" ]] && print_different LCM "${YFT_KERNEL_MK_DEBUG} ${YFT_KERNEL_MK_USR}" "$k_lcmlist_eng" "$k_lcmlist_usr" && return 1
|
|
[[ "$k_camlist_eng" != "$k_camlist_usr" ]] && print_different CAM "${YFT_KERNEL_MK_DEBUG} ${YFT_KERNEL_MK_USR}" "$k_camlist_eng" "$k_camlist_usr" && return 1
|
|
[[ "$lk_lcmlist" != "$k_lcmlist_eng" ]] && print_different LCM "${YFT_LK_MK} ${YFT_KERNEL_MK_DEBUG}" "$lk_lcmlist" "$k_lcmlist_eng" && return 1
|
|
else
|
|
yft_print_errors "ERROR: ${YFT_KERNEL_MK_DEBUG} is not found !" ; return 1
|
|
fi
|
|
export p_lenslist=`get_mk_list ${YFT_HAL_MK} CUSTOM_HAL_LENS`
|
|
return 0
|
|
}
|
|
|
|
function mmi_ln_to_backup(){
|
|
local BACKUP_DIR=vendor/yft/drivers/backup
|
|
local prefix="../../../../.."
|
|
local each=
|
|
|
|
[ ! -d "$BACKUP_DIR/lk" ] && mkdir -p $BACKUP_DIR/lk
|
|
[ ! -d "$BACKUP_DIR/kernel" ] && mkdir -p $BACKUP_DIR/kernel
|
|
[ ! -d "$BACKUP_DIR/hal" ] && mkdir -p $BACKUP_DIR/hal
|
|
|
|
for each in $k_lcmlist_eng;do
|
|
if [ -d "$YFT_LK_LCM_DIR/$each" ];then
|
|
dri_ln "$prefix/$YFT_LK_LCM_DIR/$each" $BACKUP_DIR/lk/$each
|
|
fi
|
|
dri_ln "$prefix/$YFT_KERNEL_LCM_DIR/$each" $BACKUP_DIR/kernel/$each
|
|
done
|
|
for each in $k_camlist_eng;do
|
|
dri_ln "$prefix/$YFT_KERNEL_CAM_DIR/$each" $BACKUP_DIR/kernel/$each
|
|
dri_ln "$prefix/$YFT_HAL_CAM_DIR/$each" $BACKUP_DIR/hal/$each
|
|
done
|
|
for each in $p_lenslist;do
|
|
if [ -d $YFT_HAL_LENS_DIR/$each ];then
|
|
dri_ln "$prefix/$YFT_HAL_LENS_DIR/$each" $BACKUP_DIR/hal/$each
|
|
else
|
|
local lens_name
|
|
if [ "$each" == "dummy_lens" ];then
|
|
lens_name="lens_para_Dummy.cpp"
|
|
else
|
|
lens_name=`cat $YFT_HAL_LENS_DIR/Android.mk | grep -i $each | cut -d '=' -f 2`
|
|
lens_name=${lens_name// /}
|
|
fi
|
|
dri_ln "$prefix/$YFT_HAL_LENS_DIR/$lens_name" $BACKUP_DIR/hal/$lens_name
|
|
fi
|
|
done
|
|
}
|
|
|
|
|
|
function dri_check_dists_config(){
|
|
# yft_is_yft ;exit
|
|
local len=0; #行数
|
|
local lcmlist=''
|
|
local camlist=''
|
|
local lenslist=""
|
|
local tmp=""
|
|
local last_flag=">:"
|
|
local file=dists/targets/${MAIN}/dists_info.config
|
|
local rf_list=
|
|
if [ ! -f "${file}" ];then
|
|
yft_print_errors "ERROR: Not found ${file}" ; return 1
|
|
fi
|
|
|
|
local str="`cat ${file} | grep -nE "^>:[[:space:]]*${SUB}[[:space:]]*\$"`"
|
|
local tmp=`echo "$str"|wc -l`
|
|
# echo -e "tmp : $tmp\n str:----$str----"
|
|
if [[ -z "$str" ]]; then
|
|
yft_print_errors "ERROR: Not found ${SUB} in file ${file}" ; return 1
|
|
elif [[ $tmp > 1 ]];then
|
|
yft_print_errors "ERROR: ${SUB} is Duplication in file ${file}:\n$str" ; return 1
|
|
fi
|
|
if [ "$dists_check_config" == "y" ];then
|
|
yft_is_yft
|
|
[ $? != 0 ] && yft_print_errors "ERROR: fuck16. check ${file} failed" && return 1
|
|
fi
|
|
len=`echo $str|cut -d ':' -f 1`
|
|
[ "$CONFIG_LOG" == "y" ] && echo
|
|
while read string;do
|
|
# 合并多余空格
|
|
((len++))
|
|
str=`echo $string`
|
|
if [[ "${str}" == "" || "${str:0:1}" == "#" ]];then
|
|
[ "${str}" == "" ] && last_flag=""
|
|
continue
|
|
elif [[ "${str:0:4}" == "LCM:" ]]; then
|
|
last_flag="${str:0:4}"
|
|
tmp=${str:4}
|
|
[[ `echo $tmp|wc -w` != 2 ]] && yft_print_errors "syntax error: at line ${len} in file ${file}:\n$string " && return 1
|
|
lcmlist="${lcmlist} $(echo $tmp|cut -d ' ' -f 2)"
|
|
[ "$CONFIG_LOG" == "y" ] && echo "$string" | tee -a "$YFT_CONST_LOG_BUILD"
|
|
elif [[ "${str:0:4}" == "CAM:" ]]; then
|
|
last_flag="${str:0:4}"
|
|
tmp=${str:4}
|
|
str=`echo $tmp|wc -w`
|
|
if [[ "$str" == 2 || "$str" == 3 ]];then
|
|
camlist="${camlist} $(echo $tmp|cut -d ' ' -f 2)"
|
|
if [ $str == 3 ];then
|
|
# 是否开启检查...
|
|
if [ "$dists_check_config" == "y" ];then
|
|
lens="$(echo $tmp|cut -d ' ' -f 3)"
|
|
if [ -z "$(echo "$p_lenslist"|grep -w "$lens")" ];then
|
|
yft_print_errors "ERROR:lens '${lens}' is not config in file ${YFT_HAL_MK} (CUSTOM_HAL_LENS)\nit's in ${file}:\n${len}:$string"
|
|
exit 1
|
|
fi
|
|
fi
|
|
fi
|
|
[ "$CONFIG_LOG" == "y" ] && echo "$string" | tee -a "$YFT_CONST_LOG_BUILD"
|
|
else
|
|
yft_print_errors "syntax error: at line ${len} in file ${file}:\n$string "; return 1
|
|
fi
|
|
elif [[ "${str:0:3}" == "RF:" ]]; then
|
|
last_flag="${str:0:3}"
|
|
tmp=${str:3}
|
|
if [ ! -z "$rf_list" ];then
|
|
yft_print_errors "ERROR: RF is not only one in file ${file}"
|
|
fi
|
|
str=`echo $tmp|wc -w`
|
|
if [[ "$str" != 1 ]];then
|
|
yft_print_errors "ERROR: RF is not only one in file ${file}"
|
|
fi
|
|
rf_list=`echo ${tmp}`
|
|
elif [[ "${str:0:2}" == ">:" ]];then
|
|
if [ "$last_flag" == ">:" ];then
|
|
continue
|
|
else
|
|
break
|
|
fi
|
|
else
|
|
yft_print_errors "syntax error: at line ${len} in file ${file}\n${len}:$string " ; return 1
|
|
fi
|
|
done <<< "`tail -n +$((len+1)) $file`"
|
|
|
|
if [ "$dists_check_config" == "y" ];then
|
|
[ -z "$lcmlist" ] && yft_print_errors "ERROR: LCM: is not found in file ${file}" && return 1
|
|
lcmlist=`echo ${lcmlist//\"/}|tr ' ' '\n'|sort`
|
|
tmp=`echo "$lcmlist"|uniq -d`
|
|
[ ! -z "$tmp" ] && yft_print_errors "ERROR: LCM: is duplication in file ${file}" && return 1
|
|
[ -z "$camlist" ] && yft_print_errors "ERROR: CAM:'${tmp}' is not found in file ${file}" && return 1
|
|
camlist=`echo ${camlist//\"/}|tr ' ' '\n'|sort`
|
|
tmp=`echo "$camlist"|uniq -d`
|
|
[ ! -z "$tmp" ] && yft_print_errors "ERROR: CAM:'${tmp}' is duplication in file ${file}" && return 1
|
|
|
|
[[ "$lcmlist" != "$k_lcmlist_eng" ]] && print_different LCM "${file} ${YFT_KERNEL_MK_DEBUG}" "$lcmlist" "$k_lcmlist_eng" && exit 1
|
|
echo bob.chen-checkconfig1 $camlist
|
|
echo bob.chen-checkconfig2 $k_camlist_eng
|
|
[[ "$camlist" != "$k_camlist_eng" ]] && print_different CAM "${file} ${YFT_KERNEL_MK_DEBUG}" "$camlist" "$k_camlist_eng" && exit 1
|
|
fi
|
|
if [ -z "${rf_list}" ];then
|
|
yft_print_errors "ERROR:not found 'RF:' in file ${file} "
|
|
fi
|
|
[ "$CONFIG_LOG" == "y" ] && echo "RF_MODE=${rf_list}" | tee -a "$YFT_CONST_LOG_BUILD"
|
|
}
|
|
|
|
|
|
function dri_check_dists_print(){
|
|
yft_is_yft
|
|
[ $? != 0 ] && return 1
|
|
echo -e "\n>: ${SUB}"
|
|
echo "$k_lcmlist_eng" |awk '{print "LCM: - " $0}'
|
|
echo "$k_camlist_eng" |awk '{print "CAM: - " $0}'
|
|
}
|
|
|
|
function dri_check_dists_print_all(){
|
|
sublist=`ls -1 dists/targets/${MAIN}|grep -iEv "share|yft_custom|dists_info\.config"`
|
|
[ -z "$sublist" ] && yft_print_red "ERROR: ${MAIN_PATH} is not found project" && return
|
|
echo "# dists/targets/${MAIN}"
|
|
for SUB in $sublist;do
|
|
[ ! -d "dists/targets/${MAIN}/$SUB" ] && continue
|
|
DISTS_PRJT_DIR=dists/targets/${MAIN}/${SUB}
|
|
dri_check_dists_print
|
|
done
|
|
}
|
|
|
|
function dri_change_dists(){
|
|
local MAINALL=`ls -1 dists/targets|grep -iEv "share|yft_custom|dists_info\.config"`
|
|
local max_len=`echo "$MAINALL"|wc -L`
|
|
MAINALL=($MAINALL)
|
|
local i=0
|
|
local bool=0
|
|
for each in ${MAINALL[@]};do
|
|
((i++))
|
|
if [ $bool == 1 ];then
|
|
bool=0
|
|
printf " %2s: %s\n" $i $each
|
|
else
|
|
bool=1
|
|
printf " %2s: %-${max_len}s" $i $each
|
|
fi
|
|
done
|
|
echo
|
|
echo -n ">: "
|
|
read n
|
|
[ -z "`echo "$n" | grep -E '^[0-9]+$'`" ] && yft_print_errors "Input error"
|
|
(( $n > $i )) && yft_print_errors "Input error"
|
|
(( $n <= 0 )) && yft_print_errors "Input error"
|
|
((n--))
|
|
MAIN=${MAINALL[$n]}
|
|
dri_check_dists_print_all
|
|
}
|
|
|
|
function dri_check_dists(){
|
|
#"$dists_check_config" == "y"
|
|
case "$1" in
|
|
"" ) dri_check_dists_config ;;
|
|
"p"|"--p" ) dri_check_dists_print ;;
|
|
"all"|"--all" ) dri_check_dists_print_all ;;
|
|
"ch"|"--ch" ) dri_change_dists ;;
|
|
* ) echo "Without this parameter: $1" ;;
|
|
esac
|
|
}
|
|
|
|
function yft_parse_var(){
|
|
echo "yft_parse_var ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
|
|
echo "yft_parse_var YFT: ${YFT}"
|
|
part2=${YFT%%_*}
|
|
echo "yft_parse_var part2: ${part2}"
|
|
part2=${part2:1:4}
|
|
echo "yft_parse_var--- part2: ${part2}"
|
|
if [[ "${part2}" == 63v1 ]];then
|
|
export MTK_MACH_TYPE=mt6763
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/imgsensor/ver2
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/lens
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
elif [[ "${part2}" == 62v1 ]];then
|
|
export MTK_MACH_TYPE=mt6762
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/mt6765/hal/imgsensor/ver1
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/mt6765/hal/lens
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "b" ];then
|
|
export ARM_DIR=arm
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
elif [[ "${part2}" == 65v1 ]];then
|
|
export MTK_MACH_TYPE=mt6765
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/mt6765/hal/imgsensor/ver1
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/mt6765/hal/lens
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "b" ];then
|
|
export ARM_DIR=arm
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
elif [[ "${part2}" == 69v1 ]];then
|
|
export MTK_MACH_TYPE=mt6769
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/mt6768/hal/imgsensor/ver1
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/mt6768/hal/lens
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "b" ];then
|
|
export ARM_DIR=arm
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
elif [[ "${part2}" == 39tv ]];then
|
|
export MTK_MACH_TYPE=mt6739
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/imgsensor
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/lens
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "b" ];then
|
|
export ARM_DIR=arm
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
elif [[ "${part2}" == 39tv ]];then
|
|
export MTK_MACH_TYPE=mt6739
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/imgsensor
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/lens
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "b" ];then
|
|
export ARM_DIR=arm
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
elif [[ "${part2}" == 61v1 ]];then
|
|
export MTK_MACH_TYPE=mt6761
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/imgsensor
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/lens
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "b" ];then
|
|
export ARM_DIR=arm
|
|
elif [ "$part3" == "3" ];then
|
|
export ARM_DIR=arm
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
|
|
elif [[ "${part2}" == 37mv ]];then
|
|
export MTK_MACH_TYPE=mt6737t
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/mt6735/hal/D1/imgsensor
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/mt6735/hal/D1/lens
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "-sbsb-------------yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
export YFT_37T_MACH_TYPE=true
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "b" ];then
|
|
export ARM_DIR=arm
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
|
|
elif [[ "${part2}" == 71v1 ]];then
|
|
export MTK_MACH_TYPE=mt6771
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/imgsensor
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/lens
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
|
|
elif [[ "${part2}" == 79v1 ]];then
|
|
export MTK_MACH_TYPE=mt6779
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/imgsensor
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/lens
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
elif [[ "${part2}" == 6873 ]];then
|
|
export MTK_MACH_TYPE=mt6873
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/imgsensor
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/lens
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
elif [[ "${part2}" == 6853 ]];then
|
|
export MTK_MACH_TYPE=mt6853
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/imgsensor
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/lens
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
elif [[ "${part2}" == 6833 ]];then
|
|
export MTK_MACH_TYPE=mt6853
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/imgsensor
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/lens
|
|
export MTK_MACH_TYPE=mt6833 #bob.chen reset it again. only cam use 6853.
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
elif [[ "${part2}" == 6877 ]];then
|
|
export MTK_MACH_TYPE=mt6853
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/imgsensor
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/lens
|
|
export MTK_MACH_TYPE=mt6877 #bob.chen reset it again. only cam use 6853.
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
elif [[ "${part2}" == 6893 ]];then
|
|
export MTK_MACH_TYPE=mt6885
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/imgsensor
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/lens
|
|
export MTK_MACH_TYPE=mt6893 #bob.chen reset it again. only cam use 6893.
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
elif [[ "${part2}" == 6891 ]];then
|
|
export MTK_MACH_TYPE=mt6885
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/imgsensor
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/lens
|
|
export MTK_MACH_TYPE=mt6891 #bob.chen reset it again. only cam use 6891.
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
elif [[ "${part2}" == 80h || "${part2}" == 80 ]];then
|
|
export MTK_MACH_TYPE=mt6580
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/imgsensor
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/lens
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "b" ];then
|
|
export ARM_DIR=arm
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
elif [[ "${part2}" == 57p ]];then
|
|
export MTK_MACH_TYPE=mt6757
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/mt6757/hal/imgsensor/ver2
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/mt6757/hal/lens/ver2
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 3`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red mt6757不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
#6753 / 6735 / 6735m
|
|
elif [[ "${part2}" == 6789 ]];then
|
|
export MTK_MACH_TYPE=mt6789
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/imgsensor
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/$MTK_MACH_TYPE/hal/lens
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "b" ];then
|
|
export ARM_DIR=arm
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
else
|
|
if [[ "${part2}" == 37m ]];then
|
|
export MTK_MACH_SUB_TYPE=MT6737
|
|
export MTK_MACH_SUB2_TYPE=MT6735
|
|
echo "yft-drv this is 37m base. " $MTK_MACH_SUB_TYPE $MTK_MACH_SUB2_TYPE
|
|
fi
|
|
export MTK_MACH_TYPE
|
|
case "${part2}" in
|
|
"37m")
|
|
local HAL_DIR=D2
|
|
MTK_MACH_TYPE=mt6735m
|
|
;;
|
|
"37t")
|
|
local HAL_DIR=D1
|
|
MTK_MACH_TYPE=mt6735
|
|
;;
|
|
"53v")
|
|
local HAL_DIR=D1
|
|
MTK_MACH_TYPE=mt6753
|
|
;;
|
|
*) yft_print_red "不能识别的项目2\"${YFT}\""
|
|
#return 1
|
|
;;
|
|
esac
|
|
export YFT_HAL_CAM_DIR=vendor/mediatek/proprietary/custom/mt6735/hal/${HAL_DIR}/imgsensor
|
|
export YFT_HAL_LENS_DIR=vendor/mediatek/proprietary/custom/mt6735/hal/${HAL_DIR}/lens
|
|
|
|
# 区分cpu是32还是64位
|
|
part3=`echo ${YFT}|cut -d '_' -f 2`
|
|
echo "yft_parse_var part3: ${part3}";
|
|
part3=${part3:0:1}
|
|
echo "yft_parse_var part3: ${part3}";
|
|
if [ "$part3" == "6" ];then
|
|
export ARM_DIR=arm64
|
|
elif [ "$part3" == "4" ];then
|
|
export ARM_DIR=arm64
|
|
else
|
|
export ARM_DIR=arm
|
|
yft_print_red $MTK_MACH_TYPE不能识别的项目64bit as 32bit project=\"${YFT}\"
|
|
#return 1
|
|
fi
|
|
fi
|
|
|
|
# echo "yft 111: $YFT";
|
|
part4=`echo ${YFT}|cut -d '_' -f 3`
|
|
echo "yft_parse_var part4: $part4";
|
|
if [ "$part4" == "k419" ];then
|
|
export KERNEL_DIR=kernel-4.19
|
|
elif [[ $MTK_MACH_TYPE == mt6739 || $MTK_MACH_TYPE == mt6771 || $MTK_MACH_TYPE == mt6873 || $MTK_MACH_TYPE == mt6853 || $MTK_MACH_TYPE == mt6877 || $MTK_MACH_TYPE == mt6833 ]];then
|
|
export KERNEL_DIR=kernel-4.14
|
|
elif [[ $MTK_MACH_TYPE == mt6763 || $MTK_MACH_TYPE == mt6761 || $MTK_MACH_TYPE == mt6762 || $MTK_MACH_TYPE == mt6765 || $MTK_MACH_TYPE == mt6779 || $MTK_MACH_TYPE == mt6757 || $MTK_MACH_TYPE == mt6769 || $MTK_MACH_TYPE == mt6893 || $MTK_MACH_TYPE == mt6891 ]];then
|
|
export KERNEL_DIR=kernel-4.19
|
|
elif [[ $MTK_MACH_TYPE == mt6580 ]];then
|
|
export KERNEL_DIR=kernel-4.19-lc
|
|
elif [[ $MTK_MACH_TYPE == mt6789 ]];then
|
|
export KERNEL_DIR=kernel-5.10
|
|
else
|
|
export KERNEL_DIR=kernel-3.18
|
|
fi
|
|
export YFT_MACH_TYPE=MT${MTK_MACH_TYPE:2}
|
|
|
|
echo "yft_parse_var --------------------------------------------------------------------------"
|
|
echo "yft_parse_var YFT_MACH_TYPE=$YFT_MACH_TYPE"
|
|
echo "yft_parse_var MTK_MACH_TYPE=$MTK_MACH_TYPE"
|
|
echo "yft_parse_var YFT_HAL_CAM_DIR=$YFT_HAL_CAM_DIR"
|
|
echo "yft_parse_var YFT_HAL_LENS_DIR=$YFT_HAL_LENS_DIR"
|
|
echo "yft_parse_var ARM_DIR=$ARM_DIR"
|
|
echo "yft_parse_var KERNEL_DIR=$KERNEL_DIR"
|
|
echo "yft_parse_var ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
|
|
}
|
|
|
|
function yft_generated_var(){
|
|
readonly YFT_CONST_GENERATED="yft_generated_var.ini"
|
|
if [ -e "${YFT_CONST_GENERATED}" ]; then
|
|
rm ${YFT_CONST_GENERATED}
|
|
fi
|
|
|
|
yft_parse_var
|
|
|
|
echo "yft_generated_var +++++++++++++------yft_generated_var.ini------++++++++++++++++++++++++"
|
|
echo "YFT_MACH_TYPE=$YFT_MACH_TYPE" | tee -a ${YFT_CONST_GENERATED}
|
|
echo "MTK_MACH_TYPE=$MTK_MACH_TYPE" | tee -a ${YFT_CONST_GENERATED}
|
|
echo "YFT_HAL_CAM_DIR=$YFT_HAL_CAM_DIR" | tee -a ${YFT_CONST_GENERATED}
|
|
echo "YFT_HAL_LENS_DIR=$YFT_HAL_LENS_DIR" | tee -a ${YFT_CONST_GENERATED}
|
|
echo "ARM_DIR=$ARM_DIR" | tee -a ${YFT_CONST_GENERATED}
|
|
echo "KERNEL_DIR=$KERNEL_DIR" | tee -a ${YFT_CONST_GENERATED}
|
|
echo "yft_generated_var ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
|
|
|
|
}
|
|
|
|
function drivers_main(){
|
|
readonly YFT_CONST_LOG_BUILD="dists.log"
|
|
|
|
local P_ONE=$1 #yft
|
|
local P_TWO=$2 #main
|
|
|
|
if [ "$3" == "" ];then
|
|
CONFIG_DIR=vendor/yft/drivers
|
|
if [ -f "${CONFIG_DIR}/configs" ];then
|
|
:
|
|
elif [[ -f "./configs" && -f "../../../repo" ]]; then
|
|
cd ../../..
|
|
else
|
|
yft_print_errors "PATH ERROR"
|
|
exit 1
|
|
fi
|
|
[ "$1" == "" ] && P_ONE="all"
|
|
else
|
|
CONFIG_DIR="$3"
|
|
fi
|
|
|
|
if [ "$1" == "dists" ] && [ "$2" == "ch" ];then
|
|
source ${CONFIG_DIR}/configs
|
|
dri_change_dists
|
|
exit
|
|
fi
|
|
|
|
[ ! -f "${YFT_CONST_LOG_BUILD}" ] && yft_print_errors "Not found ${YFT_CONST_LOG_BUILD}" && return
|
|
local YFT_CONST_LOG_INFO=`cat ${YFT_CONST_LOG_BUILD}`
|
|
|
|
export YFT=`echo "${YFT_CONST_LOG_INFO}" | grep ENV_YFT_BUILD_PLATFORM_NAME | cut -d '=' -f 2`
|
|
[ -z "$YFT" ] && yft_print_errors "Not found ENV_YFT_BUILD_PLATFORM_NAME" && return
|
|
export MAIN=`echo "${YFT_CONST_LOG_INFO}" | grep ENV_YFT_BUILD_PROJECT_DIR_PARENT | cut -d '=' -f 2`
|
|
[ -z "$MAIN" ] && yft_print_errors "Not found ENV_YFT_BUILD_PROJECT_DIR_PARENT" && return
|
|
export SUB=`echo "${YFT_CONST_LOG_INFO}" | grep ENV_YFT_BUILD_PROJECT_NAME | cut -d '=' -f 2`
|
|
[ -z "$SUB" ] && yft_print_errors "Not found ENV_YFT_BUILD_PROJECT_NAME" && return
|
|
unset YFT_CONST_LOG_INFO
|
|
|
|
yft_generated_var
|
|
source ${CONFIG_DIR}/configs
|
|
|
|
typeset -l YFT_BOM=`echo ${MAIN}|cut -d '_' -f 1`
|
|
typeset -l YFT_BOM_SUB=`echo ${SUB}| awk -F'[-_]' '{print $1}'`
|
|
|
|
#yft-drv modify for cobom flash begin 20180224
|
|
local Is_combo=`echo ${MAIN} | grep -Eo '[\_]cobom[\_]'`
|
|
echo "is_combo=${Is_combo}"
|
|
if [ -z "$Is_combo" ] ;
|
|
then
|
|
FLASH_SIZE=`echo ${MAIN} | tail -c 3 | tr a-z A-Z`
|
|
else
|
|
FLASH_SIZE=`echo ${MAIN} | grep -Eo '_[0-9]{1,4}g[0-9]{1,3}g_[0-9]{1,4}g[0-9]{1,3}g[a-zA-Z]*'`
|
|
fi
|
|
#yft-drv modify for cobom flash end 20180224
|
|
|
|
|
|
export DISTS_PRJT_DIR=dists/targets/${MAIN}/${SUB}
|
|
|
|
case "$P_ONE" in
|
|
"$YFT"|"all")
|
|
[ "$P_TWO" == "$MAIN" ] && CONFIG_LOG='y' #写入日志 dists.log
|
|
dri_cp_xls
|
|
dri_cp_mem_h
|
|
dri_cp_dws
|
|
[ "$dts_cp_config" == "y" ] && dri_cp_dts
|
|
dri_cp_imgsensorh
|
|
dri_check_dists_config
|
|
mmi_ln_to_backup
|
|
;;
|
|
"h"|"--h") dri_cp_mem_h ;;
|
|
"xls"|"--xls") dri_cp_xls ;;
|
|
"dws"|"--dws") dri_cp_dws ;;
|
|
"help"|"-h"|"--help") dri_help ;;
|
|
"dists"|"--dists") dri_check_dists ${@#$1} ;;
|
|
*)
|
|
# if [ "$P_ONE" == "--dists" ] || [ "$P_ONE" == "dists" ];then
|
|
# if [ "$dists_check_config" == "y" ] ;then
|
|
# dri_check_dists ${@#$1}
|
|
# else
|
|
# yft_print_errors "if you want to used this parameter 'dists',please open dists_check_config=y in ${CONFIG_DIR}/configs"
|
|
# fi
|
|
# return
|
|
if [ "$P_ONE" == "--dts" ] || [ "$P_ONE" == "dts" ];then
|
|
if [ "$dts_cp_config" == "y" ];then
|
|
dri_cp_dts ; return
|
|
else
|
|
yft_print_errors "if you want to used this parameter 'dts',please open dts_cp_config=y in ${CONFIG_DIR}/configs"
|
|
fi
|
|
return
|
|
fi
|
|
yft_print_errors "Without this parameter: $P_ONE"
|
|
exit 1
|
|
;;
|
|
esac
|
|
echo
|
|
}
|
|
|
|
drivers_main $@
|