blob: 27e26c77163007b9507d84462461a8f08a04e639 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001#!/usr/bin/perl
2#
3# Copyright Statement:
4# --------------------
5# This software is protected by Copyright and the information contained
6# herein is confidential. The software may not be copied and the information
7# contained herein may not be used or disclosed except with the written
8# permission of MediaTek Inc. (C) 2008
9#
10# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
11# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
12# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
13# AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
14# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
15# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
16# NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
17# SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
18# SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
19# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
20# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
21# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
22#
23# BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
24# LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
25# AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
26# OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
27# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
28#
29# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
30# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
31# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
32# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
33# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
34#
35#
36#*****************************************************************************
37#*
38#* Filename:
39#* ---------
40#* copyDirs.pl
41#*
42#* Project:
43#* --------
44#* Maui_Software
45#*
46#* Description:
47#* ------------
48#* To avoid "The inout line is too long" issue on Windows2000.
49#*
50#* Author:
51#* -------
52#*
53#*
54#*============================================================================
55#* HISTORY
56#* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
57#*------------------------------------------------------------------------------
58#*
59#*------------------------------------------------------------------------------
60#* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
61#*============================================================================
62#****************************************************************************/
63$FIXPATH = $ARGV[0];
64print "$FIXPATH\n";
65
66$RELEASE_DIR = $ARGV[1];
67print "$RELEASE_DIR\n";
68$DIRLIST = $ARGV[2];
69print "$DIRLIST\n";
70
71@tempDirs = ();
72open(LIS_FILE,"<$DIRLIST") or die "Cannot open $file: $!";
73while(<LIS_FILE>){
74 chomp;
75 if(/\\$/){
76 chop;
77 }
78 print "$FIXPATH\\$_\n";
79 if(-e "$FIXPATH\\$_"){
80 push @tempDirs, $_;
81 }
82}
83close(LIS_FILE);
84
85@Dirs = ();
86&RemovalSubdir();
87
88open FILE_HANDLE, ">build\\xcopy_exclude.txt" or die "Fail to write build\\xcopy_exclude.txt";
89print FILE_HANDLE "pcore\\tools\\GCC\\\n";
90print FILE_HANDLE "pcore\\tools\\MinGW\\\n";
91print FILE_HANDLE "pcore\\tools\\MSYS\\\n";
92close FILE_HANDLE;
93
94for my $dir(@Dirs) {
95 if (-e $dir){
96 print "xcopy /e /y /q $FIXPATH\\$dir $RELEASE_DIR\\$dir\\*.* /EXCLUDE:build\\xcopy_exclude.txt\n";
97 system("xcopy /e /y /q $FIXPATH\\$dir $RELEASE_DIR\\$dir\\*.* /EXCLUDE:build\\xcopy_exclude.txt");
98 }
99 else{
100 chop($dir);
101 print "xcopy /e /y $FIXPATH\\$dir $RELEASE_DIR\\$dir\\*.* /EXCLUDE:build\\xcopy_exclude.txt\n";
102 system("xcopy /e /y $FIXPATH\\$dir $RELEASE_DIR\\$dir\\*.* /EXCLUDE:build\\xcopy_exclude.txt");
103 }
104}
105
106sub RemovalSubdir{
107 @tempDirs = sort @tempDirs;
108 my $predir = shift @tempDirs;
109 push @Dirs, $predir;
110 $predir = quotemeta($predir);
111 for my $dir(@tempDirs){
112 my $tempdir = quotemeta($dir);
113 if($tempdir =~ /^$predir/i){
114 next;
115 }
116 else{
117 push @Dirs, $dir;
118 $predir = $tempdir;
119 }
120 }
121}