[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/tools/sortlib.pl b/mcu/tools/sortlib.pl
new file mode 100644
index 0000000..2e14b90
--- /dev/null
+++ b/mcu/tools/sortlib.pl
@@ -0,0 +1,124 @@
+#!/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) 2007

+#

+#  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).

+#

+#*****************************************************************************

+#

+# Filename: 

+# ---------

+#  sortLib.pl

+#

+# Description: 

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

+#  To sort libraries in ~libs.tmp file before linking(armlink.exe).

+#

+# Auther: 

+# -------

+#  Frank Wu

+# 

+# Note:

+# -----

+#  none.

+#

+# Log: 

+# -----

+#  2007/04/25   Create.

+#

+# Usage:

+# -----

+# sortib.pl make\~libs.tmp $(strip $(COMPOBJS))

+open(lib,"$ARGV[0]") || die "Cannot open $ARGV[0]: $!";

+open(sortlib,">$ARGV[1]/~sortedLibs.tmp") || die "Cannot open $ARGV[1]/~sortedLibs.tmp: $!";

+my $i = 0;

+my $j = 0;

+my %path = "";

+my @file = "";

+my @specialFile = "";

+while(<lib>){

+	if($i > 0){

+		if($_ =~ /(.+)\/(.+lib)[\s]/){

+			if(index($_, $ARGV[2]) >= 0){

+				$specialFile[$i] = $_;

+			} else {

+				$path{$2} = $1; 

+				$file[$i] = $2;

+			}

+		} else {

+			$specialFile[$i] = $_;

+		}

+	} else {

+		print sortlib $_;

+	}

+	$i++;

+}

+close(lib);

+

+my @sortedLibs = sort @file;

+foreach $item(@sortedLibs){

+	if(length($specialFile[$j]) > 0){

+		chomp($specialFile[$j]);

+		print sortlib "$specialFile[$j]\n";

+	} 

+	if(length($item) > 0){

+		print sortlib "$path{$item}/$item\n";

+	}

+	$j++;

+}

+while($j <= $#specialFile){

+	if(length($specialFile[$j]) > 0){

+		chomp($specialFile[$j]);

+		print sortlib "$specialFile[$j]\n";

+	}

+	$j++;

+}

+close(sortlib);

+

+#To confirm ~libs.tmp and ~sortedLibs.tmp have the same line numbers.

+open(lib,"$ARGV[0]") || die "Cannot open $ARGV[0]: $!";

+my $originalLine = 0;

+while(<lib>){

+	$originalLine++;

+}

+close(lib);

+

+open(sortlib,"$ARGV[1]/~sortedLibs.tmp") || die "Cannot open $ARGV[1]/~sortedLibs.tmp: $!";

+my $sortedLine = 0;

+while(<sortlib>){

+	$sortedLine++;

+}

+close(sortlib);

+

+if($originalLine!=$sortedLine){

+	print "The library may be lost after sorting libraries. Please compare $ARGV[0] and make/pcore/~sortedLibs.tmp.";

+	exit(1);

+}