1*53ee8cc1Swenshuai.xi# How to use: 2*53ee8cc1Swenshuai.xi#@sh Reduced.sh api_with_header_file.csv OneUtopia1.0 ../mxlib/ 3*53ee8cc1Swenshuai.xi# arg1 = CSV file ex:path =api_with_header_file.csv 4*53ee8cc1Swenshuai.xi# arg2 = The LOCAL path 5*53ee8cc1Swenshuai.xi# arg3 = Use Additional Contents ex:OneUtopia1.0 6*53ee8cc1Swenshuai.xi 7*53ee8cc1Swenshuai.xifilename=$1 8*53ee8cc1Swenshuai.xiLOCAL_PATH=$2 9*53ee8cc1Swenshuai.xiUtopiaVersion=$3 10*53ee8cc1Swenshuai.xidos2unix $filename 11*53ee8cc1Swenshuai.xi 12*53ee8cc1Swenshuai.xi# ********************************************** 13*53ee8cc1Swenshuai.xi# Environment 14*53ee8cc1Swenshuai.xi# ********************************************** 15*53ee8cc1Swenshuai.xiROOTLIB=$LOCAL_PATH'/mxlib' 16*53ee8cc1Swenshuai.xiBSP_PATH=$LOCAL_PATH'/build/bsp' 17*53ee8cc1Swenshuai.xiBSPINC_PATH=$LOCAL_PATH'/build/bsp/include' 18*53ee8cc1Swenshuai.xiBuild_PATH=$LOCAL_PATH'/build' 19*53ee8cc1Swenshuai.xiLOG_PATH=$LOCAL_PATH'/build/outputlog' 20*53ee8cc1Swenshuai.xi 21*53ee8cc1Swenshuai.xiMAX_SCAN=255 22*53ee8cc1Swenshuai.xi 23*53ee8cc1Swenshuai.xi#Scan First Row and pair 24*53ee8cc1Swenshuai.xifunction FindSuitableCell() 25*53ee8cc1Swenshuai.xi{ 26*53ee8cc1Swenshuai.xi #Find a suitable pair about filename 27*53ee8cc1Swenshuai.xi for ((jndex=1;jndex<$MAX_SCAN; jndex++)); do 28*53ee8cc1Swenshuai.xi used=$(awk -F"," -v var=$jndex 'NR==1 {print $var}' $filename) 29*53ee8cc1Swenshuai.xi #The pairing is successful 30*53ee8cc1Swenshuai.xi if [ "$used" == "API_NAME" ]; then 31*53ee8cc1Swenshuai.xi AIP_NAMECell=$jndex 32*53ee8cc1Swenshuai.xi break 33*53ee8cc1Swenshuai.xi fi 34*53ee8cc1Swenshuai.xi done 35*53ee8cc1Swenshuai.xi 36*53ee8cc1Swenshuai.xi #Find a suitable pair about topiaVersion 37*53ee8cc1Swenshuai.xi for ((jndex=1;jndex<$MAX_SCAN; jndex++)); do 38*53ee8cc1Swenshuai.xi used=$(awk -F"," -v var=$jndex 'NR==1 {print $var}' $filename) 39*53ee8cc1Swenshuai.xi #The pairing is successful 40*53ee8cc1Swenshuai.xi if [ "$used" == "HEAD_FILE" ]; then 41*53ee8cc1Swenshuai.xi HEAD_FILECell=$jndex 42*53ee8cc1Swenshuai.xi break 43*53ee8cc1Swenshuai.xi fi 44*53ee8cc1Swenshuai.xi done 45*53ee8cc1Swenshuai.xi 46*53ee8cc1Swenshuai.xi #Find a suitable pair about topiaVersion 47*53ee8cc1Swenshuai.xi for ((jndex=1;jndex<$MAX_SCAN; jndex++)); do 48*53ee8cc1Swenshuai.xi used=$(awk -F"," -v var=$jndex 'NR==1 {print $var}' $filename) 49*53ee8cc1Swenshuai.xi #The pairing is successful 50*53ee8cc1Swenshuai.xi if [ "$used" == $"" ];then 51*53ee8cc1Swenshuai.xi break 52*53ee8cc1Swenshuai.xi else 53*53ee8cc1Swenshuai.xi if [ "$used" == "$UtopiaVersion" ];then 54*53ee8cc1Swenshuai.xi UtopiaVersionCell=$jndex 55*53ee8cc1Swenshuai.xi break 56*53ee8cc1Swenshuai.xi elif [ "$used" != $"" ];then 57*53ee8cc1Swenshuai.xi UtopiaVersionCell=$jndex 58*53ee8cc1Swenshuai.xi fi 59*53ee8cc1Swenshuai.xi fi 60*53ee8cc1Swenshuai.xi done 61*53ee8cc1Swenshuai.xi #printf "%d" $AIP_NAMECell 62*53ee8cc1Swenshuai.xi #printf "%d" $HEAD_FILECell 63*53ee8cc1Swenshuai.xi #printf "%d" $UtopiaVersionCell 64*53ee8cc1Swenshuai.xi #printf "Use : %s\n" $(awk -F"," -v var=$UtopiaVersionCell 'NR==1 {print $var}' $filename) 65*53ee8cc1Swenshuai.xi} 66*53ee8cc1Swenshuai.xifunction ReadCVSFile() 67*53ee8cc1Swenshuai.xi{ 68*53ee8cc1Swenshuai.xi itemndex=0 69*53ee8cc1Swenshuai.xi temp=$itemndex 70*53ee8cc1Swenshuai.xi temp_AIP_File=0 71*53ee8cc1Swenshuai.xi while read line 72*53ee8cc1Swenshuai.xi do 73*53ee8cc1Swenshuai.xi TARGET_AIP_NAME[$itemndex]=$(echo $line | awk -F"," -v var=$AIP_NAMECell '{print $var}') 74*53ee8cc1Swenshuai.xi TARGET_AIP_use[$itemndex]=$(echo $line | awk -F"," -v var=$UtopiaVersionCell '{print $var}') 75*53ee8cc1Swenshuai.xi TARGET_AIP_File[$itemndex]=$(echo $line | awk -F"," -v var=$HEAD_FILECell '{print $var}' ) 76*53ee8cc1Swenshuai.xi if [ ${TARGET_AIP_use[$itemndex]} == "1" ]; then 77*53ee8cc1Swenshuai.xi if [ "${TARGET_AIP_File[$itemndex]}" != "$temp_AIP_File" ]; then 78*53ee8cc1Swenshuai.xi temp2="${TARGET_AIP_File[$itemndex]}" 79*53ee8cc1Swenshuai.xi temp_AIP_File=$temp2 80*53ee8cc1Swenshuai.xi printf "%s" ${TARGET_AIP_File[$itemndex]},>>$LOG_PATH/filename.csv 81*53ee8cc1Swenshuai.xi printf "\n">>$LOG_PATH/filename.csv 82*53ee8cc1Swenshuai.xi fi 83*53ee8cc1Swenshuai.xi fi 84*53ee8cc1Swenshuai.xi #printf "get %s %s\n" ${TARGET_AIP_NAME[$itemndex]}, ${TARGET_AIP_use[$itemndex]} 85*53ee8cc1Swenshuai.xi temp=$itemndex 86*53ee8cc1Swenshuai.xi itemndex=$[$temp+1]; 87*53ee8cc1Swenshuai.xi 88*53ee8cc1Swenshuai.xi done < $filename 89*53ee8cc1Swenshuai.xi 90*53ee8cc1Swenshuai.xi} 91*53ee8cc1Swenshuai.xifunction do_parsingHeadfile2() 92*53ee8cc1Swenshuai.xi{ 93*53ee8cc1Swenshuai.xi while read line 94*53ee8cc1Swenshuai.xi do 95*53ee8cc1Swenshuai.xi hfile=$(echo $line | awk -F"," '{print $1}' ) 96*53ee8cc1Swenshuai.xi printf " %s \n",$hfile 97*53ee8cc1Swenshuai.xi find -L $ROOTLIB -name $hfile -exec cp {} $BSPINC_PATH/ \; 2> $LOG_PATH/error.log 98*53ee8cc1Swenshuai.xi done < $LOG_PATH/filename.csv 99*53ee8cc1Swenshuai.xi cp -f $ROOTLIB/api/njpeg_ex/apiJPEG_priv.h $BSPINC_PATH/ \; 2> $LOG_PATH/error.log 100*53ee8cc1Swenshuai.xi 101*53ee8cc1Swenshuai.xi} 102*53ee8cc1Swenshuai.xifunction do_parsingHeadfile_Contents() 103*53ee8cc1Swenshuai.xi{ 104*53ee8cc1Swenshuai.xi #Remove_First_line=0 105*53ee8cc1Swenshuai.xi for ((jndex=1; jndex<${#TARGET_AIP_NAME[@]}; jndex++)); do 106*53ee8cc1Swenshuai.xi # Choose must remove API function 107*53ee8cc1Swenshuai.xi if [ ${TARGET_AIP_use[$jndex]} == "0" ]; then 108*53ee8cc1Swenshuai.xi # Check the file exists on bsp/include/ 109*53ee8cc1Swenshuai.xi if [ -f $BSPINC_PATH/${TARGET_AIP_File[$jndex]} ]; then 110*53ee8cc1Swenshuai.xi #remove unused item 111*53ee8cc1Swenshuai.xi sh $Build_PATH/mcomment.sh ${TARGET_AIP_NAME[$jndex]} $BSPINC_PATH/${TARGET_AIP_File[$jndex]} " " 112*53ee8cc1Swenshuai.xi #printf "mark API: %s" ${TARGET_AIP_NAME[$jndex]} 113*53ee8cc1Swenshuai.xi #printf " h_file: %s" $BSPINC_PATH/${TARGET_AIP_File[$jndex]} 114*53ee8cc1Swenshuai.xi #printf "\n" 115*53ee8cc1Swenshuai.xi fi 116*53ee8cc1Swenshuai.xi #printf "mark API: %s" $api_name 117*53ee8cc1Swenshuai.xi #printf "h_file: %s"$hfile 118*53ee8cc1Swenshuai.xi #printf "\n" 119*53ee8cc1Swenshuai.xi fi 120*53ee8cc1Swenshuai.xi done 121*53ee8cc1Swenshuai.xi} 122*53ee8cc1Swenshuai.xifunction do_RemoveTab() 123*53ee8cc1Swenshuai.xi{ 124*53ee8cc1Swenshuai.xi rm -rf $LOG_PATH/filename.txt 125*53ee8cc1Swenshuai.xi ls $BSPINC_PATH/ --color=never >$LOG_PATH/filename.txt 126*53ee8cc1Swenshuai.xi 127*53ee8cc1Swenshuai.xi 128*53ee8cc1Swenshuai.xi while read line 129*53ee8cc1Swenshuai.xi do 130*53ee8cc1Swenshuai.xi hfile=$(echo $line | awk -F"\n" '{print $1}' ) 131*53ee8cc1Swenshuai.xi #printf "==>%s\n" $hfile 132*53ee8cc1Swenshuai.xi sed 's/\t/ /g' $BSPINC_PATH/$hfile >$LOG_PATH/temp.h 133*53ee8cc1Swenshuai.xi mv -f $LOG_PATH/temp.h $BSPINC_PATH/$hfile 134*53ee8cc1Swenshuai.xi 135*53ee8cc1Swenshuai.xi done < $LOG_PATH/filename.txt 136*53ee8cc1Swenshuai.xi} 137*53ee8cc1Swenshuai.xiFindSuitableCell 138*53ee8cc1Swenshuai.xiReadCVSFile 139*53ee8cc1Swenshuai.xido_parsingHeadfile2>>$LOG_PATH/test.log 140*53ee8cc1Swenshuai.xish $Build_PATH/special_case.sh $LOCAL_PATH 141*53ee8cc1Swenshuai.xido_RemoveTab 142*53ee8cc1Swenshuai.xido_parsingHeadfile_Contents>>$LOG_PATH/test.log 143*53ee8cc1Swenshuai.xi#do_CPBackup2mxlib 144*53ee8cc1Swenshuai.xi 145