#!/bin/bash LC_ALL=C function dri_help(){ cat <> ${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 $@