xref: /utopia/UTPA2-700.0.x/projects/build/Reduced.sh (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
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