blob: 7c0becaf9387f6942e6f29a255f8d4ae1a92350a [file] [log] [blame]
yu.dongc33b3072024-08-21 23:14:49 -07001#!/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) 2006
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#* Filename:
38#* ---------
39#* chk_feature_option.pl
40#*
41#* Project:
42#* --------
43#*
44#*
45#* Description:
46#* ------------
47#* This script will check whether feature options are redefined in project
48#* makefile and these redefined options value are different
49#*
50#*
51#*------------------------------------------------------------------------------
52#* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
53#*============================================================================
54#****************************************************************************/
55
56my ($makefile, $log_fld) = @ARGV;
57
58open (FILE_HANDLE, "$makefile") or die "Cannot open $makefile.\n";
59while (<FILE_HANDLE>) {
60 if ((/^([^\#]*)\#?.*/) && ($1 =~ /^(\w+)\s*=\s*(.*\S)\s*$/)) {
61 $keyname = uc($1);
62 $fvalue = uc($2);
63
64 if(defined($${keyname})) {
65 if(!defined $option{"$keyname=$fvalue"}){
66 $repeat{uc"$keyname=$fvalue"}=1;
67 $repeat{uc"$keyname=$${keyname}"}=1;
68 }
69 }
70
71 $${keyname} = uc($2);
72 if(!defined $option{"$keyname=$fvalue"}){
73 $option{"$keyname=$fvalue"} = 1;
74 }
75 }
76}
77close FILE_HANDLE;
78
79if(keys(%repeat) > 0){
80 my $msg = "Error: feature options are redefined in $makefile. Please check $log_fld\/chk_feature_option.log for more detail!";
81 print STDERR "$msg\n";
82 print "$msg\n";
83 print "[Result] The following feature options are redefined in $makefile. Please check it!\n";
84 foreach $mykey (sort keys %repeat){
85 print "$mykey\n";
86 }
87 exit 1;
88}
89exit 0;