[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/copySrcComp.pl b/mcu/tools/copySrcComp.pl
new file mode 100644
index 0000000..70cd789
--- /dev/null
+++ b/mcu/tools/copySrcComp.pl
@@ -0,0 +1,201 @@
+#!/usr/bin/perl

+#

+#  Copyright Statement:

+#  --------------------

+#  This software is protected by Copyright and the information contained

+#  herein is confidential. The software may not be copied and the information

+#  contained herein may not be used or disclosed except with the written

+#  permission of MediaTek Inc. (C) 2005

+#

+#  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES

+#  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")

+#  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON

+#  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,

+#  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF

+#  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.

+#  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE

+#  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR

+#  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH

+#  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO

+#  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S

+#  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.

+#

+#  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE

+#  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,

+#  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,

+#  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO

+#  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.

+#

+#  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE

+#  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF

+#  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND

+#  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER

+#  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).

+#

+#

+#!/usr/bin/perl

+# find out required .(hpp|h|dat|c|hex|incl|inc) for the header sources listed in .lis and in .dep

+use File::Basename;

+use File::Copy;

+use File::Path;

+# show usage

+sub usage

+{

+	print "USAGE: perl copySrcComp.pl <filename of .lis> <path of .dep> <tmp file path> <release dir>\n";

+	exit(0);

+}

+

+#

+# parsing command arguments

+#

+

+my $arg_idx=0;

+my $LIS_FILE;

+my $DEP_FILE;

+my $reading;

+

+if (!($ARGV[0] =~ /\.lis$/))

+{

+   usage();

+}

+

+#

+# open .lis & .dep

+#

+

+$LIS_FILE = $ARGV[0];

+open LIS_FILE,"$LIS_FILE" or die "cannot open $LIS_FILE\n";

+

+if ($ARGV[0] =~ /.+[\\\/](.+).lis/) {

+	$DEP_FILE = "$ARGV[1]/".$1.".dep";

+	$module = $1;

+} else {

+	die "Cannot get module name.";

+}

+print "$DEP_FILE\n";

+print "$module\n";

+

+open DEP_FILE,"$DEP_FILE" or die "cannot open $DEP_FILE\n";

+

+#print "$LIS_FILE and $DEP_FILE are OPENED\n";

+

+#

+#

+#

+

+@reading    = <LIS_FILE>;

+$obj_count  = 0;

+$obj_list   = '';

+foreach (@reading)

+{

+   if ((s/\S+[\\\/]([0-9a-zA-Z_.\-]+)\.cp?p?\s*$/\L$1.obj/i) || (s/\S+[\\\/]([0-9a-zA-Z_.\-]+)\.s\s*$/\L$1.obj/i))  # extract '*.c/cpp/s'

+   {

+      $obj_list .= " $_";

+#      print "$_\n";

+      $obj_count++;

+   }

+}

+close LIS_FILE;

+#print "$obj_count .obj will be checked for the dependency\n";

+#print $obj_list;

+

+@reading = <DEP_FILE>;

+$dep_count = 0;

+$hdr_count = 0;

+$needed_obj = 0;

+foreach (@reading)

+{

+   if (/\.obj/)

+   {

+      $reading = lc($_);

+

+      s/([0-9a-zA-Z_.\-]+\.obj).+\n/\L$1/;                # extract '*.obj' from .dep

+      if (index($obj_list, $_) > -1)         # if the '.obj' is needed in .lis

+      {

+         $needed_obj = 1;

+

+#         print "\n\n$dep_count\t";

+         while ($reading =~ /\b\S+\.(hpp|hex|dat|cpp|c|h|incl|inc|tbl|def|msg)/)      # find out next .(hpp|h|dat|c|hex) in this line

+         {

+            $hdr_name = "\L$&";

+            $reading = ($`).($');

+            if ( !($hdr_name =~ /c:/) )      # exclude the c:\progra~1\...\xxx.(hpp|h|dat|c|hex)

+            {

+               if ( !($req_hdr{$hdr_name}) ) # find out non-duplicated .(hpp|h|dat|c|hex)

+               {

+                  $req_hdr{$hdr_name} = 1;

+                  $hdr_count ++;

+#                  print "[$hdr_name]\t";

+               }

+               else

+               {

+                  $req_hdr{$hdr_name} ++;    # count duplication times of .(hpp|h|dat|c|hex), just for our info.

+               }

+            }

+         }

+         $dep_count++;

+      }

+      else

+      {

+         $needed_obj = 0;

+      }

+   }

+   elsif (/\.(hpp|hex|dat|cpp|c|h|incl|inc|tbl|def|msg)/ && $needed_obj == 1)

+   {

+      $reading = lc($_);

+

+      while ($reading =~ /\b\S+\.(hpp|hex|dat|c|h|incl|inc|tbl|def|msg)/)         # find out next .(hpp|h|dat|c|hex) in this line

+      {

+         $hdr_name = "\L$&";

+         $reading = ($`).($');

+         if ( !($hdr_name =~ /c:/) )      # exclude the c:\progra~1\...\xxx.(hpp|h|dat|c|hex)

+         {

+            if ( !($req_hdr{$hdr_name}) ) # find out non-duplicated .(hpp|h|dat|c|hex)

+            {

+               $req_hdr{$hdr_name} = 1;

+               $hdr_count ++;

+#               print "[$hdr_name]\t";

+            }

+            else

+            {

+               $req_hdr{$hdr_name} ++;    # count duplication times of .(hpp|h|dat|c|hex), just for our info.

+            }

+         }

+      }

+   }

+}

+close DEP_FILE;

+

+print "\n\n$hdr_count .(hpp|hex|dat|cpp|c|h|incl|inc|tbl|def|msg) will be copied: \n";

+$output = "~"."$module"."rh.tmp";

+print "out = $output\n";

+

+open(W,">$ARGV[2]/$output");

+while (($key, $value) = each %req_hdr)

+{

+   print W "$key\n";

+   # Copy header files at the same time.

+   my $targetfile = "$ARGV[3]"."\\$key";

+   if (!-e $targetfile) {

+      print "Copying file $key\n";

+      my $path = dirname($targetfile);

+      mkpath($path) if(! -d $path);

+      copy($key, $targetfile) or warn "Fail to copy $src";

+   }

+}

+close(W);

+

+# dump header file list to make\~srccomprh.tmp

+if (open(W, ">>make/~srccomprh.tmp"))

+{

+   while (($key, $value) = each %req_hdr)

+   {

+      print W "$key\n";

+   }

+   close W;

+}

+if (open(W, ">>make/module.tmp"))

+{

+   print W "$DEP_FILE $module\n";

+   close W;

+}