⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rm_java.pl

📁 一些brew 代码
💻 PL
字号:
#!/usr/local/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).
# 

use Cwd;

($#ARGV != 5) && &Usage;

my $DEBUG_LOG;

###############################################################
# Get parameters
###############################################################
our $customer = uc($ARGV[0]);
our $project = uc($ARGV[1]);
our $protocol = uc($ARGV[2]); 
our $branch = uc($ARGV[3]);
our $version = uc($ARGV[4]);

if ( (uc($ARGV[5]) ne "RM_JAVA_LIB") && (uc($ARGV[5]) ne "CP_JAVA_SRC") )
{
	warn "Release_type must be RM_JAVA_LIB or CP_JAVA_SRC \n";
	
	&Usage;
}

our $type = uc($ARGV[5]);

###############################################################

my $makeFolder = "..\\make\\";

my $theMF = "${makeFolder}${project}_${protocol}.mak";

###############################################################
# Read from Makefile
###############################################################
open (FILE_HANDLE, "<$theMF") or die "cannot open $theMF\n";
while (<FILE_HANDLE>) {
  if (/^(\S+)\s*=\s*(\S+)/) {
    $keyname = lc($1);
    defined($${keyname}) && warn "$1 redefined in $theMF!\n";
    $${keyname} = uc($2);
  }
}
close FILE_HANDLE;
###############################################################

if ($j2me_support eq "NONE")
{
	print "Project $project does not turn on J2ME_SUPPORT. \n";
	print "It is not required to remove Java files. \n";
	
	exit;
}

if ($j2me_support eq "MTK_DUMMYVM")
{
	print "J2ME_SUPPORT = MTK_DUMMYVM \n";
	print "It is not required to remove Java files. \n";
	
	exit;
}

if ($j2me_support eq "JBLENDIA")
{
	print "J2ME_SUPPORT = JBLENDIA \n";
	print "It is not required to remove Java files. \n";
	
	exit;
}

my $java_type;
if ($j2me_support eq "JBLENDIA") {
	$java_vendor = "JBLENDIA";
}
else {
	$java_vendor = "IJET";
}


if ($j2me_support =~ /hi/i)
{
	$java_type = "j2me_hi";
}
elsif ($j2me_support =~ /JBLENDIA/i)
{
	$java_type = "jblendia";
}
else
{
	if ($branch =~ /CUSTOM|OCT|JUNE|05A/i)
	{
		$java_type = "j2me";
	}
	else
	{
		$java_type = "j2me_11";
	}
}


if ($type eq "CP_JAVA_SRC")
{
	print "Copy Java source files from official load...... \n";
	
	# Get Current folder name
	my $dir = getcwd;
	$dir =~ s/\//\\/g;

	# Get relealse folder name
	my @dir = split /\\/, $dir;
	my $official_load_folder = $dir[-3];

	pop @dir;
	my $original_mcu_path = join "\\", @dir;

	# Set Java folder path
	my $srcdir = $official_load_folder . "_Java_src_" . $java_vendor . "_($customer)";
	
	my $src_folder = "..\\..\\..\\$srcdir";
	my $src_mcu_folder = "..\\..\\..\\$srcdir\\mcu";	

	until (-e $src_folder) { mkdir $src_folder, 0755 or warn "cannot create folder $src_folder";}
	until (-e $src_mcu_folder) { mkdir $src_mcu_folder, 0755 or warn "cannot create folder $src_mcu_folder";}

	# copy Java source files
	if (-e "..\\j2me\\")
	{
		if ($java_type eq "jblendia") 
		{
			system ("robocopy ..\\j2me\\ $src_mcu_folder\\j2me\\ /XD $original_mcu_path\\j2me\\vm\\IJET /MIR ");
		} 
		else
		{
			system ("robocopy ..\\j2me\\ $src_mcu_folder\\j2me\\ /XD $original_mcu_path\\j2me\\vm\\Jblendia /MIR ");
		}
	}
	else
	{
		$DEBUG_LOG .= "(NOT COPY SRC)  ..\\j2me\\ \n";
	}

	if (-e "..\\custom\\j2me\\_DEFAULT_BB\\")
	{
		system ("robocopy ..\\custom\\j2me\\_DEFAULT_BB\\ $src_mcu_folder\\custom\\j2me\\_DEFAULT_BB\\ /MIR ");
	}
	else
	{
		$DEBUG_LOG .= "(NOT COPY SRC)  ..\\custom\\j2me\\_DEFAULT_BB\\ \n";
	}
	
	if (-e "..\\custom\\j2me\\$java_vendor\\_DEFAULT_BB\\")
	{
		system ("robocopy ..\\custom\\j2me\\$java_vendor\\_DEFAULT_BB\\ $src_mcu_folder\\custom\\j2me\\$java_vendor\\_DEFAULT_BB\\ /MIR ");
	}
	else
	{
		$DEBUG_LOG .= "(NOT COPY SRC)  ..\\custom\\j2me\\$java_vendor\\_DEFAULT_BB\\ \n";
	}
	
	if (-e "..\\custom\\j2me\\$board_ver\\")
	{
		system ("robocopy ..\\custom\\j2me\\$board_ver\\ $src_mcu_folder\\custom\\j2me\\$board_ver\\ /MIR");
	}
	else
	{
		$DEBUG_LOG .= "(NOT COPY SRC)  ..\\custom\\j2me\\$board_ver\\ \n";
	}

	if (-e "..\\custom\\j2me\\$java_vendor\\$board_ver\\")
	{
		system ("robocopy ..\\custom\\j2me\\$java_vendor\\$board_ver\\ $src_mcu_folder\\custom\\j2me\\$java_vendor\\$board_ver\\ /MIR");
	}
	else
	{
		$DEBUG_LOG .= "(NOT COPY SRC)  ..\\custom\\j2me\\$java_vendor\\$board_ver\\ \n";
	}	

	if (-e "..\\make\\$java_type\\")
	{
		system ("robocopy ..\\make\\$java_type\\ $src_mcu_folder\\make\\$java_type\\ /MIR");
	}
	else
	{
		$DEBUG_LOG .= "(NOT COPY SRC) ..\\make\\$java_type\\ \n";
	}


	# Generate release info
	my $RELEASE_LOG = "$src_mcu_folder\\Release.log";
	open (RELEASE_LOG, ">$RELEASE_LOG") or die "cannot open $RELEASE_LOG\n";
	print RELEASE_LOG &Release_Info;
	close RELEASE_LOG;
	
}
elsif ($type eq "RM_JAVA_LIB")
{
	print "Remove Java binary from custom release load...... \n";
	
	# Get Current folder name
	my $dir = getcwd;
	$dir =~ s/\//\\/g;

	# Get relealse folder name
	my @dir = split /\\/, $dir;
	
	my ($release_folder, $original_mcu_path, $libdir, $lib_folder);
	
	if (lc($dir[-2]) eq "mcu")
	{
		$release_folder = $dir[-3];
		pop @dir;
		pop @dir;

		$original_mcu_path = join "\\", @dir;

		# Set Java folder path
		$libdir = $release_folder . "_Java_lib_" . $java_vendor . "_($customer)";

		$lib_folder = "..\\..\\..\\$libdir";
	}
	else
	{
		$release_folder = $dir[-2];
		pop @dir;

		$original_mcu_path = join "\\", @dir;

		# Set Java folder path
		$libdir = $release_folder . "_Java_lib_" . $java_vendor . "_($customer)";

		$lib_folder = "..\\..\\$libdir";
	}

	until (-e $lib_folder) { mkdir $lib_folder, 0755 or die "cannnot create folder $lib_folder";}

	# copy Java lib files
	if (-e "..\\custom\\j2me\\$java_vendor\\_DEFAULT_BB\\")
	{
		system ("robocopy ..\\custom\\j2me\\$java_vendor\\_DEFAULT_BB\\ $lib_folder\\custom\\j2me\\$java_vendor\\_DEFAULT_BB\\ /MIR ");
	}
	else
	{
		$DEBUG_LOG .= "(NOT COPY LIB) ..\\custom\\j2me\\$java_vendor\\_DEFAULT_BB\\ \n";
	}

	if (-e "..\\custom\\j2me\\$java_vendor\\$board_ver\\")
	{
		system ("robocopy ..\\custom\\j2me\\$java_vendor\\$board_ver\\ $lib_folder\\custom\\j2me\\$java_vendor\\$board_ver\\ /MIR");
	}
	else
	{
		$DEBUG_LOG .=  "(NOT COPY LIB) ..\\custom\\j2me\\$java_vendor\\$board_ver\\ \n";
	}

	if (-e "..\\custom\\j2me\\_DEFAULT_BB\\")
	{
		system ("robocopy ..\\custom\\j2me\\_DEFAULT_BB\\ $lib_folder\\custom\\j2me\\_DEFAULT_BB\\ /MIR ");
	}
	else
	{
		$DEBUG_LOG .= "(NOT COPY LIB) ..\\custom\\j2me\\_DEFAULT_BB\\ \n";
	}

	if (-e "..\\custom\\j2me\\$board_ver\\")
	{
		system ("robocopy ..\\custom\\j2me\\$board_ver\\ $lib_folder\\custom\\j2me\\$board_ver\\ /MIR");
	}
	else
	{
		$DEBUG_LOG .=  "(NOT COPY LIB) ..\\custom\\j2me\\$board_ver\\ \n";
	}

	if (-e "..\\make\\$java_type\\")
	{
		system ("robocopy ..\\make\\$java_type\\ $lib_folder\\make\\$java_type\\ /MIR");
	}
	else
	{
		$DEBUG_LOG .=  "(NOT COPY LIB) ..\\make\\$java_type\\ \n";
	}

	if (-e "..\\j2me\\")
	{
		if ($java_type eq "jblendia")
		{
			system ("robocopy ..\\j2me\\ $lib_folder\\j2me\\ /XD $original_mcu_path\\j2me\\vm\\IJET /MIR ");
		}
		else
		{
			system ("robocopy ..\\j2me\\ $lib_folder\\j2me\\ /XD $original_mcu_path\\j2me\\vm\\Jblendia /MIR ");
		}
	}
	else
	{
		$DEBUG_LOG .=  "(NOT COPY LIB) ..\\j2me\\ \n";
	}

	# Remove Java lib files
	if (-e "..\\j2me\\vm\\$java_type")
	{
		system ("rmdir /s /q ..\\j2me\\vm\\$java_type");
	}
	else
	{
		$DEBUG_LOG .=  "(NOT REMOVE LIB) ..\\j2me\\vm\\$java_type \n";
	}	
	
	if (-e "..\\j2me\\$java_type.lib")
	{
		system ("del /f /q ..\\j2me\\$java_type.lib");
	}
	else
	{
		$DEBUG_LOG .=  "(NOT REMOVE LIB) ..\\j2me\\$java_type.lib \n";
	}
	
	if (-e "..\\make\\$java_type\\")
	{
		system ("rmdir /s /q ..\\make\\$java_type\\");
	}
	else
	{
		$DEBUG_LOG .=  "(NOT REMOVE LIB) ..\\make\\$java_type\\ \n";
	}

	if (-e "..\\custom\\j2me\\$java_vendor\\_DEFAULT_BB\\")
	{
		system ("rmdir /s /q ..\\custom\\j2me\\$java_vendor\\_DEFAULT_BB\\");
	}
	else
	{
		$DEBUG_LOG .=  "(NOT REMOVE LIB) ..\\custom\\j2me\\$java_vendor\\_DEFAULT_BB\\ \n";
	}

	if (-e "..\\custom\\j2me\\$java_vendor\\$board_ver\\")
	{
		system ("rmdir /s /q ..\\custom\\j2me\\$java_vendor\\$board_ver\\");
	}
	else
	{
		$DEBUG_LOG .=  "(NOT REMOVE LIB) ..\\custom\\j2me\\$java_vendor\\$board_ver\\ \n";
	}
	
	if (-e "..\\custom\\j2me\\_DEFAULT_BB\\")
	{
		system ("rmdir /s /q ..\\custom\\j2me\\_DEFAULT_BB\\");
	}
	else
	{
		$DEBUG_LOG .=  "(NOT REMOVE LIB) ..\\custom\\j2me\\_DEFAULT_BB\\ \n";
	}

	if (-e "..\\custom\\j2me\\$board_ver\\")
	{
		system ("rmdir /s /q ..\\custom\\j2me\\$board_ver\\");
	}
	else
	{
		$DEBUG_LOG .=  "(NOT REMOVE LIB) ..\\custom\\j2me\\$board_ver\\ \n";
	}

	# Generate release info
	my $RELEASE_LOG = "$lib_folder\\Release.log";
	open (RELEASE_LOG, ">$RELEASE_LOG") or die "cannot open $RELEASE_LOG\n";
	print RELEASE_LOG &Release_Info;
	close RELEASE_LOG;
}

# print warning log
print $DEBUG_LOG;

###############################################################
sub Release_Info
{
	my ($dayOfMonth, $month, $yearOffset) = (localtime(time))[3, 4, 5];

	my $year = 1900 + $yearOffset;
	my $RealMonth = 1 + $month;

	my $date = $year . "/" . $RealMonth . "/" . $dayOfMonth;
	my $full_project = $project. "_" . $protocol;

	my $release_info = << "__END_OF_INFO";
/********************************
Release Info of Java Files

Customer: $customer
Project: $full_project
Branch: $branch
Version: $version

Release Date: $date
*********************************/
__END_OF_INFO

	return $release_info;
}

###############################################################
sub Usage
{
	warn << "__END_OF_USAGE";

<Usage>
remove_java "customer" "project" "modem_type" "branch" "version" "release_type"

<Argument Example>

customer   = ASUS
		  = TCL
		  = EZZE
		  = ...
     
project    = Superman27_05C
		= ARIMA27_06A
		= X320
		= ...

modem_type   = gsm
			 = gprs
			 = ...
     
branch    = 06AW0628MP
		= 05CW0608MP
		= 05BW0540MP
		= 05AW0516MP
		= Custom_FT_08
		= Custom_MP_05
		= Oct04W0506MP
		= Jun04W0504FT
		= ...

version    = V12
		= F1
		= V6_F1
		= ...

release_type   = cp_Java_src  (copy Java related files)
			= rm_Java_lib      (remove Java related files)

<Command Example>

1. To copy Java source from official load

    rm_Java ASUS Superman27_05C gprs 05CW0608MP_1 V73 cp_Java_src

2. To remove Java library from custom release load

    rm_Java ASUS Superman27_05C gprs 05CW0608MP_1 V73 rm_Java_lib

__END_OF_USAGE

	exit 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -