source: svn/newcon3bcm2_21bu/nexus/build/module_vars.pl

Last change on this file was 76, checked in by megakiss, 10 years ago

1W 대기전력을 만족시키기 위하여 POWEROFF시 튜너를 Standby 상태로 함

  • Property svn:executable set to *
File size: 5.5 KB
Line 
1#############################################################################
2#    (c)2008-2011 Broadcom Corporation
3#
4# This program is the proprietary software of Broadcom Corporation and/or its licensors,
5# and may only be used, duplicated, modified or distributed pursuant to the terms and
6# conditions of a separate, written license agreement executed between you and Broadcom
7# (an "Authorized License").  Except as set forth in an Authorized License, Broadcom grants
8# no license (express or implied), right to use, or waiver of any kind with respect to the
9# Software, and Broadcom expressly reserves all rights in and to the Software and all
10# intellectual property rights therein.  IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU
11# HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY
12# NOTIFY BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
13#
14# Except as expressly set forth in the Authorized License,
15#
16# 1.     This program, including its structure, sequence and organization, constitutes the valuable trade
17# secrets of Broadcom, and you shall use all reasonable efforts to protect the confidentiality thereof,
18# and to use this information only in connection with your use of Broadcom integrated circuit products.
19#
20# 2.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
21# AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
22# WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO
23# THE SOFTWARE.  BROADCOM SPECIFICALLY DISCLAIMS ANY AND ALL IMPLIED WARRANTIES
24# OF TITLE, MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE,
25# LACK OF VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION
26# OR CORRESPONDENCE TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF
27# USE OR PERFORMANCE OF THE SOFTWARE.
28#
29# 3.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR ITS
30# LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL, INDIRECT, OR
31# EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY WAY RELATING TO YOUR
32# USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF BROADCOM HAS BEEN ADVISED OF
33# THE POSSIBILITY OF SUCH DAMAGES; OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT
34# ACTUALLY PAID FOR THE SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE
35# LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF
36# ANY LIMITED REMEDY.
37#
38# $brcm_Workfile: module_vars.pl $
39# $brcm_Revision: 8 $
40# $brcm_Date: 2/3/11 6:37p $
41#
42# Module Description:
43#
44# Revision History:
45#
46# $brcm_Log: /nexus/build/module_vars.pl $
47#
48# 8   2/3/11 6:37p vsilyaev
49# SW7420-1441: Use local (non proxied) implementation for function that
50#  flush CPU cache
51#
52# 7   12/15/10 12:00p erickson
53# SW35230-2585: build a recursive list of module DEPENDENCIES
54#
55# 6   7/27/10 5:30p jgarrett
56# SW7340-194: Removing warnings from kernel-mode 3rd party code
57#
58# 5   11/17/09 2:02p erickson
59# SW7405-3408: use $(filter) instead of $(findstring)
60#
61# 4   3/30/09 3:50p vsilyaev
62# PR 53611: Create the object directory only when needed
63#
64# 3   10/9/08 11:48a erickson
65# PR47329: rename var to NEXUS_EXCLUDED_MODULES
66#
67# 2   1/24/08 4:31p vsilyaev
68# PR 38682: Added proxy environment
69#
70#############################################################################
71my $i;
72my $module;
73
74open(OUTFILE, ">@ARGV[0]") or die "Unable to open output file @ARGV[0]";
75
76print OUTFILE "#####################################################\n";
77print OUTFILE "# This file is automatically generated.  Do not edit.\n";
78print OUTFILE "#####################################################\n";
79
80# The generated output from this file is as follows (for each XXX)
81# NEXUS_XXX_OBJECTS = $(addprefix $(NEXUS_OBJ_DIR)/XXX/,$(patsubst %.c,%.$(NEXUS_OBJ_SUFFIX),$(notdir $(NEXUS_XXX_SOURCES))))
82#
83# NEXUS_XXX_CFLAGS =  $(addprefix -I,$(NEXUS_XXX_PRIVATE_INCLUDES)) \
84#                     $(addprefix -I,$(NEXUS_XXX_PUBLIC_INCLUDES)) \
85#                     $(foreach depend,$(NEXUS_XXX_DEPENDENCIES), $(addprefix -I,$(NEXUS_$(depend)_PUBLIC_INCLUDES)))
86#
87
88print OUTFILE "# Check for circular module dependencies\n";
89print OUTFILE "define DEPENDENCY_template\n";
90print OUTFILE "\$(foreach dep,\$(NEXUS_\$(1)_DEPENDENCIES),\$(if \$(filter \$(1),\$(NEXUS_\$(dep)_DEPENDENCIES)),\$(error circular dependency for modules \$(1) and \$(dep))))\n";
91print OUTFILE "endef\n";
92print OUTFILE "\$(foreach module,\$(NEXUS_MODULES),\$(call DEPENDENCY_template,\$(module)))\n";
93print OUTFILE "\n";
94print OUTFILE "# Build recursive list of dependencies\n";
95print OUTFILE "define RECURSE_DEPENDENCIES_template\n";
96print OUTFILE "\$(NEXUS_\$(1)_DEPENDENCIES) \$(foreach mod,\$(NEXUS_\$(1)_DEPENDENCIES),\$(call RECURSE_DEPENDENCIES_template,\$(mod)))\n";
97print OUTFILE "endef\n";
98print OUTFILE "\n";
99
100for ($i=1;$i<=$#ARGV;$i++) {
101    $module = @ARGV[$i];
102    print OUTFILE "NEXUS_$module\_OBJECTS = \$(addprefix \$(NEXUS_OBJ_DIR)/$module/,\$(patsubst %.c,%.\$(NEXUS_OBJ_SUFFIX),\$(notdir \$(NEXUS_$module\_SOURCES) \$(NEXUS_$module\_LOCAL_SOURCES))))\n";
103    print OUTFILE "NEXUS_$module\_ALL_DEPENDENCIES = \$(call RECURSE_DEPENDENCIES_template,$module)\n";
104    print OUTFILE "NEXUS_$module\_CFLAGS = \\\n";
105    print OUTFILE "     \$(addprefix -I,\$(NEXUS_@ARGV[$i]_PRIVATE_INCLUDES)) \\\n";
106    print OUTFILE "     \$(addprefix -I,\$(NEXUS_$module\_PUBLIC_INCLUDES)) \\\n";
107    print OUTFILE "     \$(NEXUS_$module\_EXTRA_CFLAGS) \\\n";
108    # sort required to remove duplicates
109    print OUTFILE "     \$(sort \$(foreach depend,\$(NEXUS_$module\_ALL_DEPENDENCIES),\$(addprefix -I,\$(NEXUS_\$(depend)_PUBLIC_INCLUDES))))\n";
110    print OUTFILE "\n";
111}
112close OUTFILE;
113
Note: See TracBrowser for help on using the repository browser.