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