unplugged-vendor/vendor/yft/drivers/drivers_script

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 $@