[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6
MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF modem version: NA
Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/tools/pack_dep_gcc.pl b/mcu/tools/pack_dep_gcc.pl
new file mode 100644
index 0000000..1c35c95
--- /dev/null
+++ b/mcu/tools/pack_dep_gcc.pl
@@ -0,0 +1,107 @@
+use strict;
+use File::Basename;
+
+my ($fileOut,$depDir,$hList,$hTempFOlder) = @ARGV;
+
+if ($#ARGV < 1)
+{
+ print "pack_dep_gcc.pl output_filename dep_input_dir htogether_list header_temp\n";
+ die "DIE\n";
+}
+
+$hTempFOlder =~ s/^\.\///;
+my %Hpath;
+if (defined $hList && -d "$hTempFOlder") {
+ open HEADER_LIST,"<$hList" or die "Error: cannot open $hList";
+ while(<HEADER_LIST>) {
+ if ($_ =~ /cp(\s+)(\S+)(\s+)(\S+)/) {
+ my $origi_file = $2;
+ $origi_file =~ s/^\.\///;
+ my $headerF = basename($origi_file);
+ $Hpath{"$hTempFOlder/$headerF"} = $origi_file;
+ }
+ }
+ close HEADER_LIST;
+}
+
+my $depContent;
+opendir DIRHANDLE, "$depDir" or die "Cannot open dir $depDir: $!";
+my @fileList = readdir DIRHANDLE;
+closedir DIRHANDLE;
+foreach my $file (sort @fileList)
+{
+ next if (($file eq ".") || ($file eq ".."));
+ if ($file =~ /\.d$/i)
+ {
+ ParseDep(\$depContent, "$depDir/$file");
+ }
+}
+exit 0 if($depContent eq "");
+open OUTPUTHANDLE, ">$fileOut" or die "Cannot write $fileOut\n";
+print OUTPUTHANDLE "$depContent";
+close OUTPUTHANDLE;
+
+sub ParseDep
+{
+ my %header_list;
+ my $refContent = shift @_;
+ my $fileInput = shift @_;
+ my $Backup = $/;
+ undef $/;
+ open INPUTHANDLE, "<$fileInput" or die "Cannot open file $fileInput\n";
+ my $fileContent = <INPUTHANDLE>;
+ close INPUTHANDLE;
+ $/ = $Backup;
+ $fileContent =~ s/\\\n//gs;
+ $fileContent =~ s/\\/\//gs;
+ my @fileList = split(/\s+/, $fileContent);
+ my $index = 0;
+ while (($fileList[$index] =~ /^\s*(\/)?$/) && ($index <= $#fileList))
+ {
+ $index++;
+ }
+ if ($index <= $#fileList)
+ {
+ $fileList[$index] =~ s/(\S*\/)?(\S+?)\.(o|obj)\:/$2.obj\:/i;
+ $$refContent .= "#UPDATE#\n";
+ $$refContent .= $fileList[$index];
+ $index++;
+ while ($index <= $#fileList)
+ {
+ my $line;
+ my $file = $fileList[$index];
+ if (exists $Hpath{$file}){
+ $line = " " . $Hpath{$file};
+ } else {
+ $line = " " . $file;
+ }
+ #$line = " " . $fileList[$index];
+ $line =~ s/\s*(\S*\/)?(\S+?)\.(o|obj)\:\s*//i;
+ if ($line =~ /tools[\\\/]gcc/i)
+ {
+ ++$index;
+ next;
+ }elsif(defined $header_list{"$line"})
+ {
+ ++$index;
+ next;
+ }elsif(($line =~ /(.*)\:/) && !($line =~ /(.*)\.(o|obj)\:/))
+ {
+ ++$index;
+ next;
+ }
+ $$refContent .= "$line \\\n";
+ $header_list{"$line"} = 1;
+ $index++;
+ }
+ while ($$refContent =~ /\s*\\\n$/)
+ {
+ $$refContent =~ s/\s*\\\n$/\n/;
+ }
+ $$refContent .= "#ENDUPDATE#\n";
+ }
+ else
+ {
+ print "Unexpected file: " . $fileInput . "\n";
+ }
+}